Sync frequency adjustable

This commit is contained in:
Caesar2011
2019-01-17 18:46:32 +01:00
parent 7fe38cd60f
commit 3224946f43
9 changed files with 69 additions and 3 deletions

View File

@@ -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)));
}
}

View File

@@ -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)));
}
}
}
}

View File

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

View File

@@ -6,4 +6,13 @@
<item>Angestellter</item>
<item>Andere</item>
</string-array>
<string-array name="pref_sync_frequency_entries">
<item>Jede Stunde</item>
<item>Alle 2 Stunden</item>
<item>Alle 4 Stunden</item>
<item>Alle 6 Stunden</item>
<item>Alle 12 Stunden</item>
<item>Alle 24 Stunden</item>
</string-array>
</resources>

View File

@@ -43,6 +43,9 @@
<string name="pref_price_group_title">Kantinenpreisgruppe</string>
<string name="pref_price_group_summary">Zeige nur Preise einer Gruppe</string>
<string name="pref_price_group_dialog">Preisgruppe</string>
<string name="pref_sync_frequency_title">Synchronisationshäufigkeit</string>
<string name="pref_sync_frequency_summary">Stellt Häufigkeit der automatischen Synchronisation ein</string>
<string name="pref_sync_frequency_dialog">Sync-Frequenz</string>
<string name="meals">Hauptgerichte</string>
<string name="special_meals">Spezial Gerichte</string>
<string name="side_dishes">Beilagen</string>

View File

@@ -12,4 +12,21 @@
<item>employee</item>
<item>other</item>
</string-array>
<string-array name="pref_sync_frequency_entries">
<item>Every hour</item>
<item>Every 2 hours</item>
<item>Every 4 hours</item>
<item>Every 6 hours</item>
<item>Every 12 hours</item>
<item>Every 24 hours</item>
</string-array>
<string-array name="pref_sync_frequency_values" translatable="false">
<item>1</item>
<item>2</item>
<item>4</item>
<item>6</item>
<item>12</item>
<item>24</item>
</string-array>
</resources>

View File

@@ -10,4 +10,11 @@
<string name="pref_last_visited_news" translatable="false">pref_last_visited_news</string>
<string name="pref_set_auto_sync_on_startup" translatable="false">pref_set_auto_sync_on_startup</string>
<string-array name="pref_sync_frequency" translatable="false">
<item>@string/pref_sync_frequency</item>
<item>@string/pref_sync_frequency_default</item>
</string-array>
<string name="pref_sync_frequency" translatable="false">pref_sync_frequency</string>
<string name="pref_sync_frequency_default" translatable="false">6</string>
</resources>

View File

@@ -50,6 +50,9 @@
<string name="pref_price_group_title">Canteen Price Group</string>
<string name="pref_price_group_summary">Only show specific price category</string>
<string name="pref_price_group_dialog">Price Group Selection</string>
<string name="pref_sync_frequency_title">Sync frequency</string>
<string name="pref_sync_frequency_summary">Set automatic background sync frequency</string>
<string name="pref_sync_frequency_dialog">Frequency selection</string>
<string name="meals">Meals</string>
<string name="special_meals">Special meals</string>
<string name="side_dishes">Side Dishes</string>

View File

@@ -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" />
<ListPreference
android:key="@string/pref_sync_frequency"
android:defaultValue="@string/pref_sync_frequency_default"
android:title="@string/pref_sync_frequency_title"
android:summary="@string/pref_sync_frequency_summary"
android:entries="@array/pref_sync_frequency_entries"
android:entryValues="@array/pref_sync_frequency_values"
android:dialogTitle="@string/pref_sync_frequency_dialog" />
<PreferenceScreen
android:title="@string/open_data_policy"
android:summary="@string/open_data_policy_summary">