diff options
Diffstat (limited to 'core/src/main/java/de/danoeh/antennapod')
5 files changed, 26 insertions, 22 deletions
diff --git a/core/src/main/java/de/danoeh/antennapod/core/preferences/UserPreferences.java b/core/src/main/java/de/danoeh/antennapod/core/preferences/UserPreferences.java index 476c2cd9e..cb5a405c0 100644 --- a/core/src/main/java/de/danoeh/antennapod/core/preferences/UserPreferences.java +++ b/core/src/main/java/de/danoeh/antennapod/core/preferences/UserPreferences.java @@ -695,7 +695,7 @@ public class UserPreferences { .apply(); // when updating with an interval, we assume the user wants // to update *now* and then every 'hours' interval thereafter. - AutoUpdateManager.restartUpdateAlarm(); + AutoUpdateManager.restartUpdateAlarm(context); } /** @@ -705,14 +705,14 @@ public class UserPreferences { prefs.edit() .putString(PREF_UPDATE_INTERVAL, hourOfDay + ":" + minute) .apply(); - AutoUpdateManager.restartUpdateAlarm(); + AutoUpdateManager.restartUpdateAlarm(context); } - public static void disableAutoUpdate() { + public static void disableAutoUpdate(Context context) { prefs.edit() .putString(PREF_UPDATE_INTERVAL, "0") .apply(); - AutoUpdateManager.disableAutoUpdate(); + AutoUpdateManager.disableAutoUpdate(context); } public static boolean gpodnetNotificationsEnabled() { diff --git a/core/src/main/java/de/danoeh/antennapod/core/receiver/FeedUpdateReceiver.java b/core/src/main/java/de/danoeh/antennapod/core/receiver/FeedUpdateReceiver.java index af0a0d426..b667b154c 100644 --- a/core/src/main/java/de/danoeh/antennapod/core/receiver/FeedUpdateReceiver.java +++ b/core/src/main/java/de/danoeh/antennapod/core/receiver/FeedUpdateReceiver.java @@ -20,7 +20,7 @@ public class FeedUpdateReceiver extends BroadcastReceiver { Log.d(TAG, "Received intent"); ClientConfig.initialize(context); - AutoUpdateManager.runOnce(); + AutoUpdateManager.runOnce(context); } } diff --git a/core/src/main/java/de/danoeh/antennapod/core/service/FeedUpdateWorker.java b/core/src/main/java/de/danoeh/antennapod/core/service/FeedUpdateWorker.java index 8811faf8a..6265fc30d 100644 --- a/core/src/main/java/de/danoeh/antennapod/core/service/FeedUpdateWorker.java +++ b/core/src/main/java/de/danoeh/antennapod/core/service/FeedUpdateWorker.java @@ -39,7 +39,7 @@ public class FeedUpdateWorker extends Worker { if (!isRunOnce && UserPreferences.isAutoUpdateTimeOfDay()) { // WorkManager does not allow to set specific time for repeated tasks. // We repeatedly schedule a OneTimeWorkRequest instead. - AutoUpdateManager.restartUpdateAlarm(); + AutoUpdateManager.restartUpdateAlarm(getApplicationContext()); } return Result.success(); diff --git a/core/src/main/java/de/danoeh/antennapod/core/sync/SyncService.java b/core/src/main/java/de/danoeh/antennapod/core/sync/SyncService.java index 828691737..e9e224851 100644 --- a/core/src/main/java/de/danoeh/antennapod/core/sync/SyncService.java +++ b/core/src/main/java/de/danoeh/antennapod/core/sync/SyncService.java @@ -168,7 +168,7 @@ public class SyncService extends Worker { public static void sync(Context context) { OneTimeWorkRequest workRequest = getWorkRequest().build(); - WorkManager.getInstance().enqueueUniqueWork(WORK_ID_SYNC, ExistingWorkPolicy.REPLACE, workRequest); + WorkManager.getInstance(context).enqueueUniqueWork(WORK_ID_SYNC, ExistingWorkPolicy.REPLACE, workRequest); EventBus.getDefault().postSticky(new SyncServiceEvent(R.string.sync_status_started)); } @@ -176,7 +176,7 @@ public class SyncService extends Worker { OneTimeWorkRequest workRequest = getWorkRequest() .setInitialDelay(0L, TimeUnit.SECONDS) .build(); - WorkManager.getInstance().enqueueUniqueWork(WORK_ID_SYNC, ExistingWorkPolicy.REPLACE, workRequest); + WorkManager.getInstance(context).enqueueUniqueWork(WORK_ID_SYNC, ExistingWorkPolicy.REPLACE, workRequest); EventBus.getDefault().postSticky(new SyncServiceEvent(R.string.sync_status_started)); } @@ -192,7 +192,7 @@ public class SyncService extends Worker { .setInitialDelay(0L, TimeUnit.SECONDS) .setBackoffCriteria(BackoffPolicy.EXPONENTIAL, 1, TimeUnit.MINUTES) .build(); - WorkManager.getInstance().enqueueUniqueWork(WORK_ID_SYNC, ExistingWorkPolicy.REPLACE, workRequest); + WorkManager.getInstance(context).enqueueUniqueWork(WORK_ID_SYNC, ExistingWorkPolicy.REPLACE, workRequest); EventBus.getDefault().postSticky(new SyncServiceEvent(R.string.sync_status_started)); } diff --git a/core/src/main/java/de/danoeh/antennapod/core/util/download/AutoUpdateManager.java b/core/src/main/java/de/danoeh/antennapod/core/util/download/AutoUpdateManager.java index fc04d82cc..991089910 100644 --- a/core/src/main/java/de/danoeh/antennapod/core/util/download/AutoUpdateManager.java +++ b/core/src/main/java/de/danoeh/antennapod/core/util/download/AutoUpdateManager.java @@ -32,24 +32,25 @@ public class AutoUpdateManager { /** * Start / restart periodic auto feed refresh + * @param context Context */ - public static void restartUpdateAlarm() { + public static void restartUpdateAlarm(Context context) { if (UserPreferences.isAutoUpdateDisabled()) { - disableAutoUpdate(); + disableAutoUpdate(context); } else if (UserPreferences.isAutoUpdateTimeOfDay()) { int[] timeOfDay = UserPreferences.getUpdateTimeOfDay(); Log.d(TAG, "timeOfDay: " + Arrays.toString(timeOfDay)); - restartUpdateTimeOfDayAlarm(timeOfDay[0], timeOfDay[1]); + restartUpdateTimeOfDayAlarm(timeOfDay[0], timeOfDay[1], context); } else { long milliseconds = UserPreferences.getUpdateInterval(); - restartUpdateIntervalAlarm(milliseconds); + restartUpdateIntervalAlarm(milliseconds, context); } } /** * Sets the interval in which the feeds are refreshed automatically */ - private static void restartUpdateIntervalAlarm(long intervalMillis) { + private static void restartUpdateIntervalAlarm(long intervalMillis, Context context) { Log.d(TAG, "Restarting update alarm."); PeriodicWorkRequest workRequest = new PeriodicWorkRequest.Builder(FeedUpdateWorker.class, @@ -57,14 +58,14 @@ public class AutoUpdateManager { .setConstraints(getConstraints()) .build(); - WorkManager.getInstance().enqueueUniquePeriodicWork( + WorkManager.getInstance(context).enqueueUniquePeriodicWork( WORK_ID_FEED_UPDATE, ExistingPeriodicWorkPolicy.REPLACE, workRequest); } /** * Sets time of day the feeds are refreshed automatically */ - private static void restartUpdateTimeOfDayAlarm(int hoursOfDay, int minute) { + private static void restartUpdateTimeOfDayAlarm(int hoursOfDay, int minute, Context context) { Log.d(TAG, "Restarting update alarm."); Calendar now = Calendar.getInstance(); @@ -81,7 +82,8 @@ public class AutoUpdateManager { .setInitialDelay(triggerAtMillis, TimeUnit.MILLISECONDS) .build(); - WorkManager.getInstance().enqueueUniqueWork(WORK_ID_FEED_UPDATE, ExistingWorkPolicy.REPLACE, workRequest); + WorkManager.getInstance(context).enqueueUniqueWork(WORK_ID_FEED_UPDATE, + ExistingWorkPolicy.REPLACE, workRequest); } /** @@ -89,8 +91,9 @@ public class AutoUpdateManager { * * Callers from UI should use {@link #runImmediate(Context)}, as it will guarantee * the refresh be run immediately. + * @param context Context */ - public static void runOnce() { + public static void runOnce(Context context) { Log.d(TAG, "Run auto update once, as soon as OS allows."); OneTimeWorkRequest workRequest = new OneTimeWorkRequest.Builder(FeedUpdateWorker.class) @@ -102,7 +105,8 @@ public class AutoUpdateManager { ) .build(); - WorkManager.getInstance().enqueueUniqueWork(WORK_ID_FEED_UPDATE_ONCE, ExistingWorkPolicy.REPLACE, workRequest); + WorkManager.getInstance(context).enqueueUniqueWork(WORK_ID_FEED_UPDATE_ONCE, + ExistingWorkPolicy.REPLACE, workRequest); } @@ -110,7 +114,7 @@ public class AutoUpdateManager { /** * Run auto feed refresh once in background immediately, using its own thread. * - * Callers where the additional threads is not suitable should use {@link #runOnce()} + * Callers where the additional threads is not suitable should use {@link #runOnce(Context)} */ public static void runImmediate(@NonNull Context context) { Log.d(TAG, "Run auto update immediately in background."); @@ -119,8 +123,8 @@ public class AutoUpdateManager { }, "ManualRefreshAllFeeds").start(); } - public static void disableAutoUpdate() { - WorkManager.getInstance().cancelUniqueWork(WORK_ID_FEED_UPDATE); + public static void disableAutoUpdate(Context context) { + WorkManager.getInstance(context).cancelUniqueWork(WORK_ID_FEED_UPDATE); } private static Constraints getConstraints() { |