diff options
author | Stefan Niedermann <info@niedermann.it> | 2020-06-30 13:55:32 +0300 |
---|---|---|
committer | Stefan Niedermann <info@niedermann.it> | 2020-06-30 13:55:32 +0300 |
commit | c883f46bb9506a3faffb6e714e2dd37496ed839a (patch) | |
tree | 47443c8049c17b8bdd552e741c6ae11e7b6b81dd /app/src/main/java | |
parent | a51df7357ec8cd561922acac1a75adb5ef95d3c8 (diff) |
Fix #570 Background sync does run even if it is turned off in the settings
Diffstat (limited to 'app/src/main/java')
-rw-r--r-- | app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/SyncWorker.java | 33 | ||||
-rw-r--r-- | app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/adapters/db/DeckDatabase.java | 9 |
2 files changed, 27 insertions, 15 deletions
diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/SyncWorker.java b/app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/SyncWorker.java index 25c8b726b..f43cbd34f 100644 --- a/app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/SyncWorker.java +++ b/app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/SyncWorker.java @@ -36,11 +36,11 @@ public class SyncWorker extends Worker { SharedPreferences.Editor sharedPreferencesEditor = sharedPreferences.edit(); SyncManager syncManager = new SyncManager(getApplicationContext(), null); if (syncManager.hasInternetConnection()) { - DeckLog.log("Starting background synchronization"); + DeckLog.info("Starting background synchronization"); sharedPreferencesEditor.putLong(getApplicationContext().getString(R.string.shared_preference_last_background_sync), System.currentTimeMillis()); sharedPreferencesEditor.apply(); boolean success = syncManager.synchronizeEverything(); - DeckLog.log("Finishing background synchronization with result " + success); + DeckLog.info("Finishing background synchronization with result " + success); return success ? Result.failure() : Result.success(); } return Result.success(); @@ -53,25 +53,30 @@ public class SyncWorker extends Worker { public static void update(@NonNull Context context, String preferenceValue) { deregister(context); - if (!context.getString(R.string.pref_value_background_sync_off).equals(preferenceValue)) { - int repeatInterval = 15; - TimeUnit unit = TimeUnit.MINUTES; - if (context.getString(R.string.pref_value_background_1_hour).equals(preferenceValue)) { - repeatInterval = 1; - unit = TimeUnit.HOURS; - } else if (context.getString(R.string.pref_value_background_6_hours).equals(preferenceValue)) { - repeatInterval = 6; - unit = TimeUnit.HOURS; - } + int repeatInterval = -1; + TimeUnit unit = null; + if (context.getString(R.string.pref_value_background_15_minutes).equals(preferenceValue)) { + repeatInterval = 15; + unit = TimeUnit.MINUTES; + } else if (context.getString(R.string.pref_value_background_1_hour).equals(preferenceValue)) { + repeatInterval = 1; + unit = TimeUnit.HOURS; + } else if (context.getString(R.string.pref_value_background_6_hours).equals(preferenceValue)) { + repeatInterval = 6; + unit = TimeUnit.HOURS; + } + if (unit == null) { + DeckLog.info("Do not register a new " + SyncWorker.class.getSimpleName() + " because setting " + preferenceValue + " is not a valid time frame"); + } else { final PeriodicWorkRequest work = new PeriodicWorkRequest.Builder(SyncWorker.class, repeatInterval, unit) .setConstraints(constraints).build(); - DeckLog.log("Registering worker running each " + repeatInterval + " " + unit); + DeckLog.info("Registering " + SyncWorker.class.getSimpleName() + " running each " + repeatInterval + " " + unit); WorkManager.getInstance(context.getApplicationContext()).enqueueUniquePeriodicWork(SyncWorker.WORKER_TAG, ExistingPeriodicWorkPolicy.REPLACE, work); } } private static void deregister(@NonNull Context context) { - DeckLog.log("Deregistering all workers with tag \"" + WORKER_TAG + "\""); + DeckLog.info("Deregistering all " + SyncWorker.class.getSimpleName() + " with tag \"" + WORKER_TAG + "\""); WorkManager.getInstance(context.getApplicationContext()).cancelAllWorkByTag(WORKER_TAG); } } diff --git a/app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/adapters/db/DeckDatabase.java b/app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/adapters/db/DeckDatabase.java index 82fb86c6e..c8babbf9c 100644 --- a/app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/adapters/db/DeckDatabase.java +++ b/app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/adapters/db/DeckDatabase.java @@ -32,6 +32,7 @@ import it.niedermann.nextcloud.deck.model.ocs.Activity; import it.niedermann.nextcloud.deck.model.ocs.comment.DeckComment; import it.niedermann.nextcloud.deck.model.ocs.comment.Mention; import it.niedermann.nextcloud.deck.model.widget.singlecard.SingleCardWidgetModel; +import it.niedermann.nextcloud.deck.persistence.sync.SyncWorker; import it.niedermann.nextcloud.deck.persistence.sync.adapters.db.dao.AccessControlDao; import it.niedermann.nextcloud.deck.persistence.sync.adapters.db.dao.AccountDao; import it.niedermann.nextcloud.deck.persistence.sync.adapters.db.dao.ActivityDao; @@ -73,7 +74,7 @@ import it.niedermann.nextcloud.deck.persistence.sync.adapters.db.dao.UserDao; SingleCardWidgetModel.class, }, exportSchema = false, - version = 14 + version = 15 ) @TypeConverters({DateTypeConverter.class}) public abstract class DeckDatabase extends RoomDatabase { @@ -201,6 +202,12 @@ public abstract class DeckDatabase extends RoomDatabase { .addMigrations(MIGRATION_11_12) .addMigrations(MIGRATION_12_13) .addMigrations(MIGRATION_13_14) + .addMigrations(new Migration(14, 15) { + @Override + public void migrate(@NonNull SupportSQLiteDatabase database) { + SyncWorker.update(context); + } + }) .fallbackToDestructiveMigration() .addCallback(ON_CREATE_CALLBACK) .build(); |