From 36fc5f3c213fdc70dc546d94d22cf27d7b88bb2b Mon Sep 17 00:00:00 2001 From: Christopher Beckmann Date: Fri, 3 Nov 2017 04:09:30 +0100 Subject: [PATCH] timer scheduling now working.. Fixed #4. --- .../activities/SettingsActivity.java | 35 +++++++++++++++--- .../receivers/TimerSchedulerReceiver.java | 4 +- app/src/main/res/drawable/ic_law.png | Bin 686 -> 0 bytes app/src/main/res/xml/pref_headers.xml | 2 +- 4 files changed, 33 insertions(+), 8 deletions(-) delete mode 100644 app/src/main/res/drawable/ic_law.png diff --git a/app/src/main/java/org/secuso/privacyfriendlybreakreminder/activities/SettingsActivity.java b/app/src/main/java/org/secuso/privacyfriendlybreakreminder/activities/SettingsActivity.java index ea1edf2..0250661 100644 --- a/app/src/main/java/org/secuso/privacyfriendlybreakreminder/activities/SettingsActivity.java +++ b/app/src/main/java/org/secuso/privacyfriendlybreakreminder/activities/SettingsActivity.java @@ -5,10 +5,10 @@ package org.secuso.privacyfriendlybreakreminder.activities; import android.annotation.TargetApi; import android.content.Context; import android.content.SharedPreferences; +import android.content.SharedPreferences.OnSharedPreferenceChangeListener; import android.content.res.Configuration; import android.os.Build; import android.os.Bundle; -import android.os.Handler; import android.preference.ListPreference; import android.preference.MultiSelectListPreference; import android.preference.Preference; @@ -18,12 +18,13 @@ import android.view.MenuItem; import org.secuso.privacyfriendlybreakreminder.R; import org.secuso.privacyfriendlybreakreminder.activities.helper.AppCompatPreferenceActivity; +import org.secuso.privacyfriendlybreakreminder.activities.tutorial.PrefManager; +import org.secuso.privacyfriendlybreakreminder.receivers.TimerSchedulerReceiver; -import java.util.Arrays; -import java.util.Collections; import java.util.HashSet; import java.util.List; -import java.util.Set; + +import static org.secuso.privacyfriendlybreakreminder.activities.tutorial.PrefManager.PREF_SCHEDULE_EXERCISE_ENABLED; /** * @author Christopher Beckmann @@ -82,7 +83,7 @@ public class SettingsActivity extends AppCompatPreferenceActivity { @Override protected boolean isValidFragment(String fragmentName) { return ExercisePreferenceFragment.class.getName().equals(fragmentName) - || TimerPreferenceFragment.class.getName().equals(fragmentName); + || TimerSchedulePreferenceFragment.class.getName().equals(fragmentName); } @@ -199,7 +200,16 @@ public class SettingsActivity extends AppCompatPreferenceActivity { } } - public static class TimerPreferenceFragment extends PreferenceFragment { + public static class TimerSchedulePreferenceFragment extends PreferenceFragment { + + private OnSharedPreferenceChangeListener listener = new OnSharedPreferenceChangeListener() { + @Override + public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) { + // if anything changed with this settings .. reset the alarm + TimerSchedulerReceiver.scheduleNextAlarm(getActivity().getApplicationContext()); + } + }; + @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); @@ -207,6 +217,19 @@ public class SettingsActivity extends AppCompatPreferenceActivity { setHasOptionsMenu(true); bindPreferenceSummaryToValue(findPreference("pref_schedule_exercise_days")); + + PreferenceManager.getDefaultSharedPreferences(getActivity().getApplicationContext()) + .registerOnSharedPreferenceChangeListener(listener); } + + @Override + public void onDetach() { + PreferenceManager.getDefaultSharedPreferences(getActivity().getApplicationContext()) + .unregisterOnSharedPreferenceChangeListener(listener); + + super.onDetach(); + } + + } } \ No newline at end of file diff --git a/app/src/main/java/org/secuso/privacyfriendlybreakreminder/receivers/TimerSchedulerReceiver.java b/app/src/main/java/org/secuso/privacyfriendlybreakreminder/receivers/TimerSchedulerReceiver.java index b5166e4..69521ee 100644 --- a/app/src/main/java/org/secuso/privacyfriendlybreakreminder/receivers/TimerSchedulerReceiver.java +++ b/app/src/main/java/org/secuso/privacyfriendlybreakreminder/receivers/TimerSchedulerReceiver.java @@ -66,8 +66,10 @@ public class TimerSchedulerReceiver extends WakefulBroadcastReceiver { public static void scheduleNextAlarm(@NonNull Context context) { SharedPreferences pref = PreferenceManager.getDefaultSharedPreferences(context); + // delete any previous set alarm + deleteScheduledAlarm(context); + if(!pref.getBoolean(PREF_SCHEDULE_EXERCISE_ENABLED, false)) { - deleteScheduledAlarm(context); return; } diff --git a/app/src/main/res/drawable/ic_law.png b/app/src/main/res/drawable/ic_law.png deleted file mode 100644 index cf39bc6d96fe2cd9eb80bba7d472214b846ef111..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 686 zcmV;f0#W^mP)rECx6oy|a&<@ZJumYt5u>!FJsX(j%I=~LZ3d9P44(LFwK=LHBWU|bDd*+<8vYRl; zmwZ3w^1SCZm)+CG+up|c^(^42J-DO?jwPK*`XlLsq?;wgE+qi?iwgLcq<32pFouVF zGXh%he~a~3A3}5RFG~oK6KO3g2Q2VEB^{Jx{wnD*Lq&#w9{8I1s#K?tN1_6}@PiQG z41_vxHMuPIv{dt72hV z2K*p`>V$F3%`1QfUP&U9D2I2Fdc&p#iS=Licp)NS41kdLX46e~{3Pj{b)HNCEc(&9 z@Q!|6VU#JL&I_-O+j4Fqln7Bg`lEzsbIwcwEWqyi)=6K(*Lw_N-b{(e7Vx=TVtO@9 z!4LCrA!?qTG6l4DW{Z$Hc;=uoQRyDFECEZx@2pB00-g*WcSHru!Lv(~g!?1kTf)Y) zA4CLL;3=(~aY$}{2uXvFc%TQqHa@i-kMNtC!({nkQjZ6`@U@T>c#j7%;92)~IsDb4 zx-9SUKo&e}{~IN>3%-4qT!(}DWG-Yj2MKmL<1N6{~{m?YZ||#2TTCbPR|0O7L1O+2L#=* UG0uaSu>b%707*qoM6N<$f