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() {