mirror of
https://github.com/nextcloud/notes-android.git
synced 2024-11-22 21:06:09 +03:00
Migration is added to enable background sync
This commit is contained in:
parent
0483063a10
commit
a8593aabc1
4 changed files with 20 additions and 35 deletions
|
@ -44,23 +44,12 @@ public class SyncWorker extends Worker {
|
|||
return Result.success();
|
||||
}
|
||||
|
||||
public static void update(@NonNull Context context, @NonNull String preferenceValue) {
|
||||
public static void update(@NonNull Context context) {
|
||||
deregister(context);
|
||||
if (!context.getString(R.string.pref_value_sync_off).equals(preferenceValue)) {
|
||||
int repeatInterval = 15;
|
||||
TimeUnit unit = TimeUnit.MINUTES;
|
||||
if (context.getString(R.string.pref_value_sync_1_hour).equals(preferenceValue)) {
|
||||
repeatInterval = 1;
|
||||
unit = TimeUnit.HOURS;
|
||||
} else if (context.getString(R.string.pref_value_sync_6_hours).equals(preferenceValue)) {
|
||||
repeatInterval = 6;
|
||||
unit = TimeUnit.HOURS;
|
||||
}
|
||||
PeriodicWorkRequest work = new PeriodicWorkRequest.Builder(SyncWorker.class, repeatInterval, unit)
|
||||
PeriodicWorkRequest work = new PeriodicWorkRequest.Builder(SyncWorker.class, 15, TimeUnit.MINUTES)
|
||||
.setConstraints(constraints).build();
|
||||
WorkManager.getInstance(context.getApplicationContext()).enqueueUniquePeriodicWork(WORKER_TAG, ExistingPeriodicWorkPolicy.REPLACE, work);
|
||||
Log.i(TAG, "Registering worker running each " + repeatInterval + " " + unit);
|
||||
}
|
||||
Log.i(TAG, "Registering worker running each " + 15 + " " + TimeUnit.MINUTES);
|
||||
}
|
||||
|
||||
private static void deregister(@NonNull Context context) {
|
||||
|
|
|
@ -8,8 +8,6 @@ import androidx.preference.PreferenceManager;
|
|||
import androidx.room.migration.Migration;
|
||||
import androidx.sqlite.db.SupportSQLiteDatabase;
|
||||
|
||||
// CS304 issue link : https://github.com/stefan-niedermann/nextcloud-notes/issues/1168
|
||||
|
||||
public class Migration_21_22 extends Migration {
|
||||
@NonNull
|
||||
private final Context context;
|
||||
|
@ -18,17 +16,18 @@ public class Migration_21_22 extends Migration {
|
|||
super(21, 22);
|
||||
this.context = context;
|
||||
}
|
||||
|
||||
/**
|
||||
* Enabling Set backgroundSync to every 15 minutes, and wifiOnly to true
|
||||
* @param database no use just implement
|
||||
* Enabling backgroundSync, set from {@link String} values to {@link Boolean} value true
|
||||
* https://github.com/stefan-niedermann/nextcloud-deck/issues/531
|
||||
*/
|
||||
@Override
|
||||
public void migrate(@NonNull SupportSQLiteDatabase database) {
|
||||
SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(context);
|
||||
SharedPreferences.Editor editor = sharedPreferences.edit();
|
||||
editor.putBoolean("wifiOnly", true);
|
||||
editor.putString("backgroundSync", "15_minutes");
|
||||
if (sharedPreferences.contains("backgroundSync")) {
|
||||
editor.remove("backgroundSync");
|
||||
}
|
||||
editor.putBoolean("backgroundSync", true);
|
||||
editor.apply();
|
||||
}
|
||||
}
|
||||
|
|
|
@ -31,6 +31,7 @@ public class PreferencesFragment extends PreferenceFragmentCompat implements Bra
|
|||
private BrandedSwitchPreference wifiOnlyPref;
|
||||
private BrandedSwitchPreference gridViewPref;
|
||||
private BrandedSwitchPreference preventScreenCapturePref;
|
||||
private BrandedSwitchPreference backgroundSyncPref;
|
||||
|
||||
@Override
|
||||
public void onCreate(@Nullable Bundle savedInstanceState) {
|
||||
|
@ -91,11 +92,11 @@ public class PreferencesFragment extends PreferenceFragmentCompat implements Bra
|
|||
return true;
|
||||
});
|
||||
|
||||
final ListPreference syncPref = findPreference(getString(R.string.pref_key_background_sync));
|
||||
assert syncPref != null;
|
||||
syncPref.setOnPreferenceChangeListener((preference, newValue) -> {
|
||||
Log.i(TAG, "syncPref: " + preference + " - newValue: " + newValue);
|
||||
SyncWorker.update(requireContext(), newValue.toString());
|
||||
backgroundSyncPref = findPreference(getString(R.string.pref_key_background_sync));
|
||||
assert backgroundSyncPref != null;
|
||||
backgroundSyncPref.setOnPreferenceChangeListener((preference, newValue) -> {
|
||||
Log.i(TAG, "backgroundSync: " + newValue);
|
||||
SyncWorker.update(requireContext());
|
||||
return true;
|
||||
});
|
||||
}
|
||||
|
|
|
@ -11,17 +11,13 @@
|
|||
android:icon="@drawable/ic_network_wifi_grey600_24dp"
|
||||
android:key="@string/pref_key_wifi_only"
|
||||
android:layout="@layout/item_pref"
|
||||
android:title="@string/settings_wifi_only"
|
||||
app:defaultValue="true" />
|
||||
android:title="@string/settings_wifi_only" />
|
||||
|
||||
<ListPreference
|
||||
android:defaultValue="@string/pref_value_sync_15_minutes"
|
||||
android:entries="@array/sync_entries"
|
||||
android:entryValues="@array/sync_values"
|
||||
<it.niedermann.owncloud.notes.branding.BrandedSwitchPreference
|
||||
android:defaultValue="true"
|
||||
android:icon="@drawable/ic_sync_black_24dp"
|
||||
android:key="@string/pref_key_background_sync"
|
||||
android:layout="@layout/item_pref"
|
||||
android:summary="%s"
|
||||
android:title="@string/settings_background_sync" />
|
||||
</it.niedermann.owncloud.notes.branding.BrandedPreferenceCategory>
|
||||
|
||||
|
|
Loading…
Reference in a new issue