From 78cd11ad93ecdae9e207e01fd40ba61b7fc9cfbc Mon Sep 17 00:00:00 2001 From: Daniele Gobbetti Date: Thu, 17 Dec 2015 17:02:00 +0100 Subject: [PATCH] Hide the last N reserved alarm slots from the Alarm activity. The original values remain stored in the preferences, they are just not available to the user anymore, further they are not sent to the device. --- .../gadgetbridge/activities/ConfigureAlarms.java | 4 +++- .../gadgetbridge/adapter/GBAlarmListAdapter.java | 5 ++++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/ConfigureAlarms.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/ConfigureAlarms.java index 6dfbe1e75..a640faff2 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/ConfigureAlarms.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/activities/ConfigureAlarms.java @@ -14,6 +14,7 @@ import java.util.Set; import nodomain.freeyourgadget.gadgetbridge.GBApplication; import nodomain.freeyourgadget.gadgetbridge.R; import nodomain.freeyourgadget.gadgetbridge.adapter.GBAlarmListAdapter; +import nodomain.freeyourgadget.gadgetbridge.devices.miband.MiBandConst; import nodomain.freeyourgadget.gadgetbridge.impl.GBAlarm; import static nodomain.freeyourgadget.gadgetbridge.devices.miband.MiBandConst.PREF_MIBAND_ALARMS; @@ -67,8 +68,9 @@ public class ConfigureAlarms extends ListActivity { private void updateAlarmsFromPrefs() { SharedPreferences sharedPrefs = PreferenceManager.getDefaultSharedPreferences(this); preferencesAlarmListSet = sharedPrefs.getStringSet(PREF_MIBAND_ALARMS, new HashSet()); + int reservedSlots = Integer.parseInt(sharedPrefs.getString(MiBandConst.PREF_MIBAND_RESERVE_ALARM_FOR_CALENDAR, "0")); - mGBAlarmListAdapter.setAlarmList(preferencesAlarmListSet); + mGBAlarmListAdapter.setAlarmList(preferencesAlarmListSet, reservedSlots); mGBAlarmListAdapter.notifyDataSetChanged(); } diff --git a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/adapter/GBAlarmListAdapter.java b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/adapter/GBAlarmListAdapter.java index 55b197bb3..fec4c9290 100644 --- a/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/adapter/GBAlarmListAdapter.java +++ b/app/src/main/java/nodomain/freeyourgadget/gadgetbridge/adapter/GBAlarmListAdapter.java @@ -49,7 +49,7 @@ public class GBAlarmListAdapter extends ArrayAdapter { Collections.sort(alarmList); } - public void setAlarmList(Set preferencesAlarmListSet) { + public void setAlarmList(Set preferencesAlarmListSet, int reservedSlots) { alarmList = new ArrayList<>(); for (String alarmString : preferencesAlarmListSet) { @@ -57,6 +57,9 @@ public class GBAlarmListAdapter extends ArrayAdapter { } Collections.sort(alarmList); + + //cannot do this earlier because the Set is not guaranteed to be in order by ID + alarmList.subList(alarmList.size() - reservedSlots, alarmList.size()).clear(); } public ArrayList getAlarmList() {