diff --git a/android/app/src/main/java/com/static1/fishylottery/view/events/EventDetailsFragment.java b/android/app/src/main/java/com/static1/fishylottery/view/events/EventDetailsFragment.java index a6c84e1..85394e6 100644 --- a/android/app/src/main/java/com/static1/fishylottery/view/events/EventDetailsFragment.java +++ b/android/app/src/main/java/com/static1/fishylottery/view/events/EventDetailsFragment.java @@ -160,6 +160,18 @@ public View onCreateView(@NonNull LayoutInflater inflater, ivEventPoster.setVisibility(View.GONE); } + Integer maxWaitlist = event.getMaxWaitlistSize(); + Integer currentWaitlistCount = event.countEntries(); // how many are currently on waitlist + + boolean waitlistFull = maxWaitlist != null + && currentWaitlistCount != null + && currentWaitlistCount >= maxWaitlist; + + if (waitlistFull) { + buttonJoinWaitlist.setEnabled(false); + buttonJoinWaitlist.setText("Waitlist Full"); + } + // Enable only if registration deadline is in the future (or not set) Date deadline = event.getRegistrationCloses(); boolean canJoin = (deadline == null) || deadline.after(new Date()); diff --git a/android/app/src/main/java/com/static1/fishylottery/viewmodel/EventDetailsViewModel.java b/android/app/src/main/java/com/static1/fishylottery/viewmodel/EventDetailsViewModel.java index 5d7d755..3c0db0a 100644 --- a/android/app/src/main/java/com/static1/fishylottery/viewmodel/EventDetailsViewModel.java +++ b/android/app/src/main/java/com/static1/fishylottery/viewmodel/EventDetailsViewModel.java @@ -152,6 +152,14 @@ public void joinWaitlist(Context context) { return; } + Integer maxWaitlist = e.getMaxWaitlistSize(); + Integer current = waitlistCount.getValue(); + + if (maxWaitlist != null && current != null && current >= maxWaitlist) { + message.setValue("Waitlist is full"); + return; + } + String uid = AuthManager.getInstance().getUserId(); if (uid == null) { @@ -163,6 +171,13 @@ public void joinWaitlist(Context context) { LocationService locationService = LocationService.create(context); + if (uid == null) { + message.setValue("Please sign in first"); + return; + } + + loading.setValue(true); + locationService.getCurrentLocation(new LocationService.LocationCallback() { @Override public void onLocationResult(Location location) {