Skip to content

Commit 211a340

Browse files
committed
rewrite database parsers and add partial support for new database features (fixes #46)
1 parent 2679dfb commit 211a340

27 files changed

+816
-976
lines changed

app/src/debug/java/eu/jonahbauer/qed/util/Debug.java

Lines changed: 12 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -41,13 +41,13 @@ public static Person dummyPerson() {
4141
Registration registration;
4242

4343
registration = new Registration(Registration.NO_ID);
44-
registration.setStatus(Status.PENDING);
44+
registration.setStatus(Status.UNKNOWN);
4545
registration.setEventTitle("Akademie 2021");
4646
registration.setPerson(person);
4747
person.getEvents().add(registration);
4848

4949
registration = new Registration(Registration.NO_ID);
50-
registration.setStatus(Status.CONFIRMED);
50+
registration.setStatus(Status.UNKNOWN);
5151
registration.setEventTitle("Musterstadt 2020");
5252
registration.setPerson(person);
5353
person.getEvents().add(registration);
@@ -59,7 +59,7 @@ public static Person dummyPerson() {
5959
person.getEvents().add(registration);
6060

6161
registration = new Registration(Registration.NO_ID);
62-
registration.setStatus(Status.CONFIRMED);
62+
registration.setStatus(Status.UNKNOWN);
6363
registration.setOrganizer(true);
6464
registration.setEventTitle("Testseminar");
6565
registration.setPerson(person);
@@ -92,14 +92,14 @@ public static Event dummyEvent() {
9292

9393
Registration registration;
9494
registration = new Registration(Registration.NO_ID);
95-
registration.setStatus(Status.CONFIRMED);
95+
registration.setStatus(Status.UNKNOWN);
9696
registration.setOrganizer(true);
9797
registration.setPersonName("Max Mustermann");
9898
registration.setEvent(event);
9999
event.getParticipants().add(registration);
100100

101101
registration = new Registration(Registration.NO_ID);
102-
registration.setStatus(Status.PENDING);
102+
registration.setStatus(Status.UNKNOWN);
103103
registration.setOrganizer(true);
104104
registration.setPersonName("Erika Musterfrau");
105105
registration.setEvent(event);
@@ -153,7 +153,7 @@ public static Message dummyMessage() {
153153

154154
public static Registration dummyRegistration() {
155155
var registration = new Registration(Registration.NO_ID);
156-
registration.setStatus(Status.PENDING);
156+
registration.setStatus(Status.UNKNOWN);
157157
registration.setOrganizer(true);
158158

159159
registration.setEventId(Event.NO_ID);
@@ -174,12 +174,16 @@ public static Registration dummyRegistration() {
174174
registration.setRailcard("50");
175175
registration.setOvernightStays(3);
176176

177-
registration.setPaymentAmount(100d);
178177
registration.setPaymentDone(true);
179-
registration.setPaymentTime(new ParsedLocalDate("30.01.2020", LocalDate.of(2020, 1, 30)));
180178
registration.setMemberAbatement(true);
181179
registration.setOtherAbatement(null);
182180

181+
var payment = new Registration.Payment();
182+
payment.setAmount(100d);
183+
payment.setType(Registration.Payment.Type.TRANSFER);
184+
payment.setDate(new ParsedLocalDate("30.01.2020", LocalDate.of(2020, 1, 30)));
185+
registration.getPayments().add(payment);
186+
183187
registration.setLoaded(Instant.now());
184188

185189
return registration;

app/src/main/java/eu/jonahbauer/qed/activities/sheets/event/EventInfoFragment.java

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -3,34 +3,34 @@
33
import android.app.PendingIntent;
44
import android.os.Bundle;
55
import android.util.TypedValue;
6-
import android.view.*;
6+
import android.view.LayoutInflater;
7+
import android.view.View;
8+
import android.view.ViewGroup;
79
import android.widget.LinearLayout;
8-
10+
import androidx.annotation.NonNull;
11+
import androidx.annotation.Nullable;
12+
import androidx.annotation.StyleRes;
13+
import androidx.databinding.BindingAdapter;
914
import androidx.navigation.NavDeepLinkBuilder;
15+
import androidx.navigation.Navigation;
1016
import eu.jonahbauer.qed.R;
1117
import eu.jonahbauer.qed.activities.MainActivity;
1218
import eu.jonahbauer.qed.activities.main.EventFragmentArgs;
1319
import eu.jonahbauer.qed.activities.main.EventFragmentDirections;
1420
import eu.jonahbauer.qed.activities.main.RegistrationFragmentArgs;
1521
import eu.jonahbauer.qed.activities.sheets.InfoFragment;
1622
import eu.jonahbauer.qed.databinding.FragmentInfoEventBinding;
17-
import eu.jonahbauer.qed.ui.views.ListItem;
1823
import eu.jonahbauer.qed.model.Event;
1924
import eu.jonahbauer.qed.model.Registration;
2025
import eu.jonahbauer.qed.model.viewmodel.EventViewModel;
2126
import eu.jonahbauer.qed.network.util.NetworkConstants;
27+
import eu.jonahbauer.qed.ui.views.ListItem;
2228

2329
import java.util.Collection;
2430
import java.util.Locale;
2531
import java.util.Objects;
2632
import java.util.stream.Collectors;
2733

28-
import androidx.annotation.NonNull;
29-
import androidx.annotation.Nullable;
30-
import androidx.annotation.StyleRes;
31-
import androidx.databinding.BindingAdapter;
32-
import androidx.navigation.Navigation;
33-
3434
public class EventInfoFragment extends InfoFragment {
3535
private static final String SAVED_EXPANDED = "expanded";
3636

@@ -134,8 +134,8 @@ public static void bindOrganizers(ViewGroup parent, Collection<Registration> org
134134
public static void bindParticipants(ViewGroup parent, Collection<Registration> participants) {
135135
var nonOrganizers = participants.stream().filter(r -> !r.isOrganizer()).collect(Collectors.toList());
136136
bindList(parent, nonOrganizers, (registration, item) -> {
137-
var status = Objects.requireNonNullElse(registration.getStatus(), Registration.Status.PENDING);
138-
item.setIcon(status.getDrawableRes());
137+
var status = Objects.requireNonNullElse(registration.getStatus(), Registration.Status.UNKNOWN);
138+
item.setIcon(status.getEventDrawableRes());
139139
item.setTitle(registration.getPersonName());
140140
item.setSubtitle(status.getStringRes());
141141
item.setOnClickListener(v -> showRegistration(parent, registration));

app/src/main/java/eu/jonahbauer/qed/activities/sheets/person/PersonInfoFragment.java

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -18,11 +18,11 @@
1818
import eu.jonahbauer.qed.activities.main.RegistrationFragmentArgs;
1919
import eu.jonahbauer.qed.activities.sheets.InfoFragment;
2020
import eu.jonahbauer.qed.databinding.FragmentInfoPersonBinding;
21-
import eu.jonahbauer.qed.ui.views.ListItem;
2221
import eu.jonahbauer.qed.model.Person;
2322
import eu.jonahbauer.qed.model.Registration;
2423
import eu.jonahbauer.qed.model.viewmodel.PersonViewModel;
2524
import eu.jonahbauer.qed.network.util.NetworkConstants;
25+
import eu.jonahbauer.qed.ui.views.ListItem;
2626
import eu.jonahbauer.qed.util.Actions;
2727
import eu.jonahbauer.qed.util.Preferences;
2828
import eu.jonahbauer.qed.util.TextUtils;
@@ -223,20 +223,24 @@ public static void bindContacts(ViewGroup parent, Person person) {
223223
public static void bindPayments(ViewGroup parent, Collection<Person.Payment> payments) {
224224
bindList(parent, payments, (payment, item) -> {
225225
var context = item.getContext();
226-
var type = payment.getType();
226+
var purpose = payment.getPurpose();
227227
item.setIcon(R.drawable.ic_person_payment);
228228
item.setTitle(TextUtils.formatRange(context, TimeUtils::format, payment.getStart(), payment.getEnd()));
229-
item.setSubtitle(type != null ? type.getStringRes() : R.string.empty);
229+
item.setSubtitle(purpose != null ? purpose.getStringRes() : 0);
230230
});
231231
}
232232

233233
@BindingAdapter("person_registrations")
234234
public static void bindRegistrations(ViewGroup parent, Collection<Registration> registrations) {
235235
bindList(parent, registrations, (registration, item) -> {
236-
var status = registration.getStatus();
237-
item.setIcon(R.drawable.ic_person_event);
236+
var status = Objects.requireNonNullElse(registration.getStatus(), Registration.Status.UNKNOWN);
237+
item.setIcon(status.getPersonDrawableRes());
238238
item.setTitle(registration.getEventTitle());
239-
item.setSubtitle(status != null ? status.getStringRes() : R.string.empty);
239+
var subtitle = item.getResources().getString(status.getStringRes());
240+
if (registration.isOrganizer()) {
241+
subtitle += " (" + item.getResources().getString(R.string.registration_orga) + ")";
242+
}
243+
item.setSubtitle(subtitle);
240244
item.setOnClickListener(v -> showRegistration(v, registration));
241245
});
242246
}

app/src/main/java/eu/jonahbauer/qed/activities/sheets/registration/RegistrationInfoFragment.java

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -5,26 +5,24 @@
55
import android.view.LayoutInflater;
66
import android.view.View;
77
import android.view.ViewGroup;
8-
98
import androidx.annotation.NonNull;
109
import androidx.annotation.Nullable;
1110
import androidx.navigation.NavDeepLinkBuilder;
1211
import androidx.navigation.Navigation;
13-
1412
import com.google.android.material.snackbar.Snackbar;
1513
import eu.jonahbauer.qed.R;
1614
import eu.jonahbauer.qed.activities.MainActivity;
15+
import eu.jonahbauer.qed.activities.main.EventFragmentArgs;
16+
import eu.jonahbauer.qed.activities.main.PersonFragmentArgs;
17+
import eu.jonahbauer.qed.activities.main.RegistrationFragmentArgs;
18+
import eu.jonahbauer.qed.activities.main.RegistrationFragmentDirections;
1719
import eu.jonahbauer.qed.activities.sheets.InfoFragment;
1820
import eu.jonahbauer.qed.databinding.FragmentInfoRegistrationBinding;
1921
import eu.jonahbauer.qed.model.Event;
2022
import eu.jonahbauer.qed.model.Person;
2123
import eu.jonahbauer.qed.model.Registration;
2224
import eu.jonahbauer.qed.model.viewmodel.RegistrationViewModel;
2325
import eu.jonahbauer.qed.network.util.NetworkConstants;
24-
import eu.jonahbauer.qed.activities.main.EventFragmentArgs;
25-
import eu.jonahbauer.qed.activities.main.PersonFragmentArgs;
26-
import eu.jonahbauer.qed.activities.main.RegistrationFragmentArgs;
27-
import eu.jonahbauer.qed.activities.main.RegistrationFragmentDirections;
2826

2927
import java.util.Locale;
3028
import java.util.Objects;

app/src/main/java/eu/jonahbauer/qed/model/Person.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -215,7 +215,7 @@ public static class Payment implements Parcelable {
215215
private ParsedLocalDate start;
216216
private ParsedLocalDate end;
217217
private String comment;
218-
private Type type;
218+
private Purpose purpose;
219219
private Double amount;
220220

221221
@Override
@@ -228,7 +228,7 @@ public void writeToParcel(Parcel dest, int flags) {
228228
dest.writeTypedObject(start, flags);
229229
dest.writeTypedObject(end, flags);
230230
dest.writeString(comment);
231-
dest.writeTypedObject(type, flags);
231+
dest.writeTypedObject(purpose, flags);
232232
dest.writeValue(amount);
233233
}
234234

@@ -238,22 +238,22 @@ public void writeToParcel(Parcel dest, int flags) {
238238
payment.setStart(source.readTypedObject(ParsedLocalDate.CREATOR));
239239
payment.setEnd(source.readTypedObject(ParsedLocalDate.CREATOR));
240240
payment.setComment(source.readString());
241-
payment.setType(source.readTypedObject(Type.CREATOR));
241+
payment.setPurpose(source.readTypedObject(Purpose.CREATOR));
242242
payment.setAmount((Double) source.readValue(null));
243243
return payment;
244244
});
245245

246246
@Getter
247247
@RequiredArgsConstructor
248-
public enum Type implements ParcelableEnum {
248+
public enum Purpose implements ParcelableEnum {
249249
REGULAR_MEMBER(R.string.person_payment_regular_member),
250250
SPONSOR_MEMBER(R.string.person_payment_sponsor_member),
251251
DONATION(R.string.person_payment_donation),
252252
OTHER(R.string.person_payment_other),
253253
FREE_MEMBER(R.string.person_payment_free_member),
254254
SPONSOR_AND_MEMBER(R.string.person_payment_sponsor_and_member);
255255

256-
public static final Parcelable.Creator<Type> CREATOR = new ParcelableEnum.Creator<>(Type.values(), Type[]::new);
256+
public static final Parcelable.Creator<Purpose> CREATOR = new ParcelableEnum.Creator<>(Purpose.values(), Purpose[]::new);
257257

258258
private final @StringRes int stringRes;
259259
}

0 commit comments

Comments
 (0)