From 3224946f43a64e552f9f1075c119cf3f203dde2e Mon Sep 17 00:00:00 2001 From: Caesar2011 Date: Thu, 17 Jan 2019 18:46:32 +0100 Subject: [PATCH] Sync frequency adjustable --- .../java/de/sebse/fuplanner/MainActivity.java | 2 +- .../fuplanner/fragments/PrefsFragment.java | 22 ++++++++++++++++++- .../services/kvv/sync/KVVSyncAdapter.java | 1 - app/src/main/res/values-de/arrays.xml | 9 ++++++++ app/src/main/res/values-de/strings.xml | 3 +++ app/src/main/res/values/arrays.xml | 17 ++++++++++++++ app/src/main/res/values/preferences.xml | 7 ++++++ app/src/main/res/values/strings.xml | 3 +++ app/src/main/res/xml/preferences.xml | 8 +++++++ 9 files changed, 69 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/de/sebse/fuplanner/MainActivity.java b/app/src/main/java/de/sebse/fuplanner/MainActivity.java index 0eade76..a81611b 100644 --- a/app/src/main/java/de/sebse/fuplanner/MainActivity.java +++ b/app/src/main/java/de/sebse/fuplanner/MainActivity.java @@ -369,7 +369,7 @@ public class MainActivity extends AppCompatActivity accountByType, KVVContentProvider.PROVIDER_NAME, Bundle.EMPTY, - AccountGeneral.SYNC_INTERVAL); + Long.parseLong(Preferences.getString(this, R.array.pref_sync_frequency))); } } diff --git a/app/src/main/java/de/sebse/fuplanner/fragments/PrefsFragment.java b/app/src/main/java/de/sebse/fuplanner/fragments/PrefsFragment.java index 3b69850..1b715e6 100644 --- a/app/src/main/java/de/sebse/fuplanner/fragments/PrefsFragment.java +++ b/app/src/main/java/de/sebse/fuplanner/fragments/PrefsFragment.java @@ -1,12 +1,19 @@ package de.sebse.fuplanner.fragments; +import android.accounts.Account; +import android.content.ContentResolver; import android.content.SharedPreferences; import android.os.Bundle; + import androidx.preference.ListPreference; import androidx.preference.Preference; import androidx.preference.PreferenceFragmentCompat; - +import de.sebse.fuplanner.MainActivity; import de.sebse.fuplanner.R; +import de.sebse.fuplanner.services.fulogin.AccountGeneral; +import de.sebse.fuplanner.services.kvv.sync.KVVContentProvider; +import de.sebse.fuplanner.tools.CustomAccountManager; +import de.sebse.fuplanner.tools.Preferences; import de.sebse.fuplanner.tools.logging.Logger; public class PrefsFragment extends PreferenceFragmentCompat implements SharedPreferences.OnSharedPreferenceChangeListener { @@ -46,5 +53,18 @@ public class PrefsFragment extends PreferenceFragmentCompat implements SharedPre Preference preference = getPreferenceScreen().findPreference(s); if (preference instanceof ListPreference) preference.setSummary(((ListPreference) preference).getEntry()); + + if (getActivity() != null && getActivity() instanceof MainActivity) { + CustomAccountManager accountManager = ((MainActivity) getActivity()).getAccountManager(); + Account accountByType = accountManager.getAccountByType(AccountGeneral.ACCOUNT_TYPE); + if (accountByType != null) { + ContentResolver.setSyncAutomatically(accountByType, KVVContentProvider.PROVIDER_NAME, true); + ContentResolver.addPeriodicSync( + accountByType, + KVVContentProvider.PROVIDER_NAME, + Bundle.EMPTY, + Long.parseLong(Preferences.getString(getActivity(), R.array.pref_sync_frequency))); + } + } } } \ No newline at end of file diff --git a/app/src/main/java/de/sebse/fuplanner/services/kvv/sync/KVVSyncAdapter.java b/app/src/main/java/de/sebse/fuplanner/services/kvv/sync/KVVSyncAdapter.java index 4314afd..efc2663 100644 --- a/app/src/main/java/de/sebse/fuplanner/services/kvv/sync/KVVSyncAdapter.java +++ b/app/src/main/java/de/sebse/fuplanner/services/kvv/sync/KVVSyncAdapter.java @@ -55,7 +55,6 @@ public class KVVSyncAdapter extends AbstractThreadedSyncAdapter { private void init(Context context) { mKVV = new KVV(new KVVListener() { - CustomAccountManager accountManager = null; @Override public CustomAccountManager getAccountManager() { diff --git a/app/src/main/res/values-de/arrays.xml b/app/src/main/res/values-de/arrays.xml index 44b5afe..feb7eb4 100644 --- a/app/src/main/res/values-de/arrays.xml +++ b/app/src/main/res/values-de/arrays.xml @@ -6,4 +6,13 @@ Angestellter Andere + + + Jede Stunde + Alle 2 Stunden + Alle 4 Stunden + Alle 6 Stunden + Alle 12 Stunden + Alle 24 Stunden + \ No newline at end of file diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml index 64f53fa..4360cdf 100644 --- a/app/src/main/res/values-de/strings.xml +++ b/app/src/main/res/values-de/strings.xml @@ -43,6 +43,9 @@ Kantinenpreisgruppe Zeige nur Preise einer Gruppe Preisgruppe + Synchronisationshäufigkeit + Stellt Häufigkeit der automatischen Synchronisation ein + Sync-Frequenz Hauptgerichte Spezial Gerichte Beilagen diff --git a/app/src/main/res/values/arrays.xml b/app/src/main/res/values/arrays.xml index d52ccdf..9a02081 100644 --- a/app/src/main/res/values/arrays.xml +++ b/app/src/main/res/values/arrays.xml @@ -12,4 +12,21 @@ employee other + + + Every hour + Every 2 hours + Every 4 hours + Every 6 hours + Every 12 hours + Every 24 hours + + + 1 + 2 + 4 + 6 + 12 + 24 + \ No newline at end of file diff --git a/app/src/main/res/values/preferences.xml b/app/src/main/res/values/preferences.xml index d1535fd..9b36f25 100644 --- a/app/src/main/res/values/preferences.xml +++ b/app/src/main/res/values/preferences.xml @@ -10,4 +10,11 @@ pref_last_visited_news pref_set_auto_sync_on_startup + + + @string/pref_sync_frequency + @string/pref_sync_frequency_default + + pref_sync_frequency + 6 \ No newline at end of file diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 40b35d6..247a2ca 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -50,6 +50,9 @@ Canteen Price Group Only show specific price category Price Group Selection + Sync frequency + Set automatic background sync frequency + Frequency selection Meals Special meals Side Dishes diff --git a/app/src/main/res/xml/preferences.xml b/app/src/main/res/xml/preferences.xml index 64392eb..c05cc82 100644 --- a/app/src/main/res/xml/preferences.xml +++ b/app/src/main/res/xml/preferences.xml @@ -9,6 +9,14 @@ android:entries="@array/pref_price_group_entries" android:entryValues="@array/pref_price_group_values" android:dialogTitle="@string/pref_price_group_dialog" /> +