diff --git a/app/src/main/java/com/philliphsu/clock2/alarms/AlarmViewHolder.java b/app/src/main/java/com/philliphsu/clock2/alarms/AlarmViewHolder.java index 91bd78f..75a5b68 100644 --- a/app/src/main/java/com/philliphsu/clock2/alarms/AlarmViewHolder.java +++ b/app/src/main/java/com/philliphsu/clock2/alarms/AlarmViewHolder.java @@ -68,9 +68,9 @@ public class AlarmViewHolder extends BaseViewHolder implements AlarmCount @OnClick(R.id.dismiss) void dismiss() { - // TOneverDO: AlarmUtils.cancelAlarm() otherwise it will be called twice mSwitch.setPressed(true); // needed so the OnCheckedChange event calls through bindSwitch(false); // fires OnCheckedChange to do the binding for you + // TOneverDO: AlarmUtils.cancelAlarm() otherwise it will be called twice /* AlarmUtils.cancelAlarm(getContext(), getAlarm()); if (!getAlarm().isEnabled()) { @@ -123,11 +123,10 @@ public class AlarmViewHolder extends BaseViewHolder implements AlarmCount bindCountdown(true, alarm.ringsIn()); bindDismissButton(alarm); } else { - AlarmUtils.cancelAlarm(getContext(), alarm, true); // might save repo + AlarmUtils.cancelAlarm(getContext(), alarm, true); // saves repo bindCountdown(false, -1); bindDismissButton(false, ""); } - save(); // TODO: Problem! If cancelAlarm() saves the repo, this is a redundant call! mSwitch.setPressed(false); // clear the pressed focus, esp. if setPressed(true) was called manually } } diff --git a/app/src/main/java/com/philliphsu/clock2/alarms/AlarmsFragment.java b/app/src/main/java/com/philliphsu/clock2/alarms/AlarmsFragment.java index 819e8ec..2cff0fd 100644 --- a/app/src/main/java/com/philliphsu/clock2/alarms/AlarmsFragment.java +++ b/app/src/main/java/com/philliphsu/clock2/alarms/AlarmsFragment.java @@ -80,6 +80,12 @@ public class AlarmsFragment extends Fragment implements BaseRepository.DataObser return view; } + @Override + public void onPause() { + super.onPause(); + AlarmsRepository.getInstance(getActivity()).saveItems(); + } + @Override public void onDestroyView() { super.onDestroyView(); diff --git a/app/src/main/java/com/philliphsu/clock2/util/AlarmUtils.java b/app/src/main/java/com/philliphsu/clock2/util/AlarmUtils.java index a4772ff..bf22203 100644 --- a/app/src/main/java/com/philliphsu/clock2/util/AlarmUtils.java +++ b/app/src/main/java/com/philliphsu/clock2/util/AlarmUtils.java @@ -91,14 +91,14 @@ public final class AlarmUtils { if (a.isSnoozed()) { a.stopSnoozing(); - save(c); // TODO: not necessary? } if (!a.hasRecurrence()) { a.setEnabled(false); - save(c); // TODO: not necessary? } + save(c); // Save any changes + // If service is not running, nothing happens // TODO: Since RingtoneService is a bound service, will this destroy the service after returning? // Note that if a stopped service still has ServiceConnection objects bound to it with the @@ -109,7 +109,7 @@ public final class AlarmUtils { public static void snoozeAlarm(Context c, Alarm a) { a.snooze(AlarmUtils.snoozeDuration(c)); AlarmUtils.scheduleAlarm(c, a); - save(c); // TODO: not necessary? + save(c); } public static void removeUpcomingAlarmNotification(Context c, Alarm a) {