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" />
+