diff --git a/android_app/app/app.iml b/android_app/app/app.iml
index 8b876c4d..6477ca1b 100644
--- a/android_app/app/app.iml
+++ b/android_app/app/app.iml
@@ -77,12 +77,15 @@
+
+
+
diff --git a/android_app/app/src/main/java/com/health/openscale/gui/preferences/ReminderPreferences.java b/android_app/app/src/main/java/com/health/openscale/gui/preferences/ReminderPreferences.java
index fee72e4b..f90f88f4 100644
--- a/android_app/app/src/main/java/com/health/openscale/gui/preferences/ReminderPreferences.java
+++ b/android_app/app/src/main/java/com/health/openscale/gui/preferences/ReminderPreferences.java
@@ -42,79 +42,176 @@ import java.util.Iterator;
import java.util.List;
import java.util.Set;
-public class ReminderPreferences extends PreferenceFragment implements SharedPreferences.OnSharedPreferenceChangeListener {
+public class ReminderPreferences extends PreferenceFragment
+ implements SharedPreferences.OnSharedPreferenceChangeListener
+{
+ private static final String PREFERENCE_KEY_REMINDER_ENABLE = "reminderEnable";
+ private static final String PREFERENCE_KEY_REMINDER_WEEKDAYS = "reminderWeekdays";
+ private static final String PREFERENCE_KEY_REMINDER_TIME = "reminderTime";
+ private static final String PREFERENCE_KEY_REMINDER_NOTIFY_TEXT = "reminderNotifyText";
+
+ private static ArrayList pendingAlarms = new ArrayList<>();
private CheckBoxPreference reminderEnable;
private MultiSelectListPreference reminderWeekdays;
private TimePreferenceDialog reminderTime;
private EditTextPreference reminderNotifyText;
- private static ArrayList pendingAlarms = new ArrayList<>();
+ public static void scheduleAlarms(Context context)
+ {
+ SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context);
+
+ Set reminderWeekdays = prefs.getStringSet(PREFERENCE_KEY_REMINDER_WEEKDAYS, new HashSet());
+ Long reminderTimeInMillis = prefs.getLong(PREFERENCE_KEY_REMINDER_TIME, System.currentTimeMillis());
+
+ Iterator iterWeekdays = reminderWeekdays.iterator();
+
+ disableAllAlarms(context);
+
+ while (iterWeekdays.hasNext())
+ {
+ String strWeekdays = iterWeekdays.next();
+ switch (strWeekdays)
+ {
+ case "Monday":
+ pendingAlarms.add(enableAlarm(context, Calendar.MONDAY, reminderTimeInMillis));
+ break;
+ case "Tuesday":
+ pendingAlarms.add(enableAlarm(context, Calendar.TUESDAY, reminderTimeInMillis));
+ break;
+ case "Wednesday":
+ pendingAlarms.add(enableAlarm(context, Calendar.WEDNESDAY, reminderTimeInMillis));
+ break;
+ case "Thursday":
+ pendingAlarms.add(enableAlarm(context, Calendar.THURSDAY, reminderTimeInMillis));
+ break;
+ case "Friday":
+ pendingAlarms.add(enableAlarm(context, Calendar.FRIDAY, reminderTimeInMillis));
+ break;
+ case "Saturday":
+ pendingAlarms.add(enableAlarm(context, Calendar.SATURDAY, reminderTimeInMillis));
+ break;
+ case "Sunday":
+ pendingAlarms.add(enableAlarm(context, Calendar.SUNDAY, reminderTimeInMillis));
+ break;
+ }
+ }
+ }
+
+ public static PendingIntent enableAlarm(Context context, int dayOfWeek, long timeInMillis)
+ {
+ Calendar alarmCal = Calendar.getInstance();
+ alarmCal.setTimeInMillis(timeInMillis);
+ alarmCal.set(Calendar.DAY_OF_WEEK, dayOfWeek);
+
+ // Check we aren't setting it in the past which would trigger it to fire instantly
+ if (alarmCal.getTimeInMillis() < System.currentTimeMillis())
+ {
+ alarmCal.add(Calendar.DAY_OF_YEAR, 7);
+ }
+
+ //Log.d("ReminderPreferences", "Set alarm to " + calendar.getTime());
+
+ AlarmManager alarmMgr = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
+
+ Intent alarmIntent = new Intent(context, ReminderBootReceiver.class);
+ alarmIntent.putExtra("alarmIntent", true);
+
+ PendingIntent alarmPendingIntent =
+ PendingIntent.getBroadcast(context, dayOfWeek, alarmIntent, PendingIntent.FLAG_UPDATE_CURRENT);
+
+ alarmMgr.setInexactRepeating(AlarmManager.RTC_WAKEUP, alarmCal.getTimeInMillis(), AlarmManager.INTERVAL_DAY * 7,
+ alarmPendingIntent);
+
+ return alarmPendingIntent;
+ }
+
+ public static void disableAllAlarms(Context context)
+ {
+ AlarmManager alarmMgr = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
+
+ for (int i = 0; i < pendingAlarms.size(); i++)
+ {
+ alarmMgr.cancel(pendingAlarms.get(i));
+ }
+
+ pendingAlarms.clear();
+ }
@Override
- public void onCreate(Bundle savedInstanceState) {
+ public void onCreate(Bundle savedInstanceState)
+ {
super.onCreate(savedInstanceState);
addPreferencesFromResource(R.xml.reminder_preferences);
- reminderEnable = (CheckBoxPreference)findPreference("reminderEnable");
- reminderWeekdays = (MultiSelectListPreference)findPreference("reminderWeekdays");
- reminderTime = (TimePreferenceDialog)findPreference("reminderTime");
- reminderNotifyText = (EditTextPreference)findPreference("reminderNotifyText");
+ reminderEnable = (CheckBoxPreference) findPreference(PREFERENCE_KEY_REMINDER_ENABLE);
+ reminderWeekdays = (MultiSelectListPreference) findPreference(PREFERENCE_KEY_REMINDER_WEEKDAYS);
+ reminderTime = (TimePreferenceDialog) findPreference(PREFERENCE_KEY_REMINDER_TIME);
+ reminderNotifyText = (EditTextPreference) findPreference(PREFERENCE_KEY_REMINDER_NOTIFY_TEXT);
updateAlarmPreferences();
initSummary(getPreferenceScreen());
}
- private void initSummary(Preference p) {
- if (p instanceof PreferenceGroup) {
+ private void initSummary(Preference p)
+ {
+ if (p instanceof PreferenceGroup)
+ {
PreferenceGroup pGrp = (PreferenceGroup) p;
- for (int i = 0; i < pGrp.getPreferenceCount(); i++) {
+ for (int i = 0; i < pGrp.getPreferenceCount(); i++)
+ {
initSummary(pGrp.getPreference(i));
}
- } else {
+ }
+ else
+ {
updatePrefSummary(p);
}
}
@Override
- public void onResume() {
+ public void onResume()
+ {
super.onResume();
getPreferenceManager().getSharedPreferences().registerOnSharedPreferenceChangeListener(this);
-
}
@Override
- public void onPause() {
+ public void onPause()
+ {
getPreferenceManager().getSharedPreferences().unregisterOnSharedPreferenceChangeListener(this);
super.onPause();
}
@Override
- public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) {
+ public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key)
+ {
updatePrefSummary(findPreference(key));
updateAlarmPreferences();
}
- public void updateAlarmPreferences() {
+ public void updateAlarmPreferences()
+ {
ComponentName receiver = new ComponentName(getActivity().getApplicationContext(), ReminderBootReceiver.class);
PackageManager pm = getActivity().getApplicationContext().getPackageManager();
- if (reminderEnable.isChecked()) {
+ if (reminderEnable.isChecked())
+ {
scheduleAlarms(getActivity());
- pm.setComponentEnabledSetting(receiver,
- PackageManager.COMPONENT_ENABLED_STATE_ENABLED,
+ pm.setComponentEnabledSetting(receiver, PackageManager.COMPONENT_ENABLED_STATE_ENABLED,
PackageManager.DONT_KILL_APP);
reminderWeekdays.setEnabled(true);
reminderTime.setEnabled(true);
reminderNotifyText.setEnabled(true);
- } else {
+ }
+ else
+ {
disableAllAlarms(getActivity());
- pm.setComponentEnabledSetting(receiver,
- PackageManager.COMPONENT_ENABLED_STATE_DISABLED,
+ pm.setComponentEnabledSetting(receiver, PackageManager.COMPONENT_ENABLED_STATE_DISABLED,
PackageManager.DONT_KILL_APP);
reminderWeekdays.setEnabled(false);
@@ -123,23 +220,29 @@ public class ReminderPreferences extends PreferenceFragment implements SharedPr
}
}
- private void updatePrefSummary(Preference p) {
- if (p instanceof ListPreference) {
+ private void updatePrefSummary(Preference p)
+ {
+ if (p instanceof ListPreference)
+ {
ListPreference listPref = (ListPreference) p;
p.setSummary(listPref.getEntry());
}
- if (p instanceof EditTextPreference) {
+ if (p instanceof EditTextPreference)
+ {
EditTextPreference editTextPref = (EditTextPreference) p;
if (p.getTitle().toString().contains("assword"))
{
p.setSummary("******");
- } else {
+ }
+ else
+ {
p.setSummary(editTextPref.getText());
}
}
- if (p instanceof MultiSelectListPreference) {
+ if (p instanceof MultiSelectListPreference)
+ {
MultiSelectListPreference editMultiListPref = (MultiSelectListPreference) p;
CharSequence[] entries = editMultiListPref.getEntries();
@@ -148,86 +251,12 @@ public class ReminderPreferences extends PreferenceFragment implements SharedPr
Set currentEntryValues = editMultiListPref.getValues();
for (int i = 0; i < entries.length; i++)
- if (currentEntryValues.contains(entryValues[i]))
- currentEntries.add(entries[i].toString());
+ {
+ if (currentEntryValues.contains(entryValues[i].toString())) currentEntries.add(entries[i].toString());
+ }
p.setSummary(currentEntries.toString());
}
}
-
- public static void scheduleAlarms(Context context) {
- SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(context);
-
- Set reminderWeekdays = prefs.getStringSet("reminderWeekdays", new HashSet());
- Long reminderTimeInMillis = prefs.getLong("reminderTime", System.currentTimeMillis());
-
- Iterator iterWeekdays = reminderWeekdays.iterator();
-
- disableAllAlarms(context);
-
- while (iterWeekdays.hasNext()) {
- String strWeekdays = iterWeekdays.next().toString();
-
- switch (Integer.parseInt(strWeekdays)){
- case 0:
- pendingAlarms.add(enableAlarm(context, Calendar.MONDAY, reminderTimeInMillis));
- break;
- case 1:
- pendingAlarms.add(enableAlarm(context, Calendar.TUESDAY, reminderTimeInMillis));
- break;
- case 2:
- pendingAlarms.add(enableAlarm(context, Calendar.WEDNESDAY, reminderTimeInMillis));
- break;
- case 3:
- pendingAlarms.add(enableAlarm(context, Calendar.THURSDAY, reminderTimeInMillis));
- break;
- case 4:
- pendingAlarms.add(enableAlarm(context, Calendar.FRIDAY, reminderTimeInMillis));
- break;
- case 5:
- pendingAlarms.add(enableAlarm(context, Calendar.SATURDAY, reminderTimeInMillis));
- break;
- case 6:
- pendingAlarms.add(enableAlarm(context, Calendar.SUNDAY, reminderTimeInMillis));
- break;
- }
- }
-
- }
-
- public static PendingIntent enableAlarm(Context context, int dayOfWeek, long timeInMillis) {
- Calendar alarmCal = Calendar.getInstance();
- alarmCal.setTimeInMillis(timeInMillis);
- alarmCal.set(Calendar.DAY_OF_WEEK, dayOfWeek);
-
- // Check we aren't setting it in the past which would trigger it to fire instantly
- if(alarmCal.getTimeInMillis() < System.currentTimeMillis()) {
- alarmCal.add(Calendar.DAY_OF_YEAR, 7);
- }
-
- //Log.d("ReminderPreferences", "Set alarm to " + calendar.getTime());
-
- AlarmManager alarmMgr = (AlarmManager)context.getSystemService(Context.ALARM_SERVICE);
-
- Intent alarmIntent = new Intent(context, ReminderBootReceiver.class);
- alarmIntent.putExtra("alarmIntent", true);
-
- PendingIntent alarmPendingIntent = PendingIntent.getBroadcast(context, dayOfWeek, alarmIntent, PendingIntent.FLAG_UPDATE_CURRENT);
-
- alarmMgr.setInexactRepeating(AlarmManager.RTC_WAKEUP, alarmCal.getTimeInMillis(),
- AlarmManager.INTERVAL_DAY * 7, alarmPendingIntent);
-
- return alarmPendingIntent;
- }
-
- public static void disableAllAlarms(Context context) {
- AlarmManager alarmMgr = (AlarmManager)context.getSystemService(Context.ALARM_SERVICE);
-
- for (int i=0; iLöschbestätigung
Wollen Sie wirklich den Datenbankeintrag löschen?
Punkt auf den Datenpunkt
+ Montag
+ Dienstag
+ Mittwoch
+ Donnerstag
+ Freitag
+ Samstag
+ Sonntag
\ No newline at end of file
diff --git a/android_app/app/src/main/res/values/strings.xml b/android_app/app/src/main/res/values/strings.xml
index 985019cc..585e147d 100644
--- a/android_app/app/src/main/res/values/strings.xml
+++ b/android_app/app/src/main/res/values/strings.xml
@@ -132,4 +132,12 @@
Your waist circumference was
Your hip circumference was
on
+
+ Monday
+ Tuesday
+ Wednesday
+ Thursday
+ Friday
+ Saturday
+ Sunday
diff --git a/android_app/app/src/main/res/values/type_weekdays.xml b/android_app/app/src/main/res/values/type_weekdays.xml
index 68aecbf4..2b14f1b4 100644
--- a/android_app/app/src/main/res/values/type_weekdays.xml
+++ b/android_app/app/src/main/res/values/type_weekdays.xml
@@ -1,6 +1,16 @@
+ - @string/Monday
+ - @string/Tuesday
+ - @string/Wednesday
+ - @string/Thursday
+ - @string/Friday
+ - @string/Saturday
+ - @string/Sunday
+
+
+
- Monday
- Tuesday
- Wednesday
@@ -10,15 +20,5 @@
- Sunday
-
- - 0
- - 1
- - 2
- - 3
- - 4
- - 5
- - 6
-
-
-
+
\ No newline at end of file