Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/stefan-niedermann/nextcloud-deck.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/app/src
diff options
context:
space:
mode:
authorStefan Niedermann <info@niedermann.it>2020-06-30 13:55:32 +0300
committerStefan Niedermann <info@niedermann.it>2020-06-30 13:55:32 +0300
commitc883f46bb9506a3faffb6e714e2dd37496ed839a (patch)
tree47443c8049c17b8bdd552e741c6ae11e7b6b81dd /app/src
parenta51df7357ec8cd561922acac1a75adb5ef95d3c8 (diff)
Fix #570 Background sync does run even if it is turned off in the settings
Diffstat (limited to 'app/src')
-rw-r--r--app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/SyncWorker.java33
-rw-r--r--app/src/main/java/it/niedermann/nextcloud/deck/persistence/sync/adapters/db/DeckDatabase.java9
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();