summaryrefslogtreecommitdiff
path: root/core/src/main/java
diff options
context:
space:
mode:
authorByteHamster <info@bytehamster.com>2018-05-04 22:23:15 +0200
committerByteHamster <info@bytehamster.com>2018-05-04 22:23:15 +0200
commita97b524a05ad40335822b9cb492692b2386d89de (patch)
treeaa97b72ea3d03ae6b935d33fcd1a5855fe0dc0ce /core/src/main/java
parentf66e19845c123160ba6174c2dec337070a6d9b22 (diff)
downloadAntennaPod-a97b524a05ad40335822b9cb492692b2386d89de.zip
Review changes #2
Diffstat (limited to 'core/src/main/java')
-rw-r--r--core/src/main/java/de/danoeh/antennapod/core/preferences/UserPreferences.java17
-rw-r--r--core/src/main/java/de/danoeh/antennapod/core/receiver/FeedUpdateReceiver.java9
-rw-r--r--core/src/main/java/de/danoeh/antennapod/core/service/FeedUpdateJobService.java4
-rw-r--r--core/src/main/java/de/danoeh/antennapod/core/storage/DBTasks.java1
-rw-r--r--core/src/main/java/de/danoeh/antennapod/core/util/FeedUpdateUtils.java21
5 files changed, 38 insertions, 14 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 d2ef5d2a6..6012e5b49 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
@@ -807,11 +807,6 @@ public class UserPreferences {
private static void restartUpdateIntervalAlarm(long triggerAtMillis, long intervalMillis) {
Log.d(TAG, "Restarting update alarm.");
- if (intervalMillis <= 0) {
- Log.d(TAG, "Automatic update was deactivated");
- return;
- }
-
if (Build.VERSION.SDK_INT >= 24) {
JobScheduler jobScheduler = context.getSystemService(JobScheduler.class);
if (jobScheduler != null) {
@@ -820,6 +815,12 @@ public class UserPreferences {
JobInfo.Builder builder = getFeedUpdateJobBuilder();
builder.setPeriodic(intervalMillis);
jobScheduler.cancel(JOB_ID_FEED_UPDATE);
+
+ if (intervalMillis <= 0) {
+ Log.d(TAG, "Automatic update was deactivated");
+ return;
+ }
+
jobScheduler.schedule(builder.build());
Log.d(TAG, "JobScheduler was set at interval " + intervalMillis);
} else {
@@ -833,6 +834,12 @@ public class UserPreferences {
Intent intent = new Intent(context, FeedUpdateReceiver.class);
PendingIntent updateIntent = PendingIntent.getBroadcast(context, 0, intent, 0);
alarmManager.cancel(updateIntent);
+
+ if (intervalMillis <= 0) {
+ Log.d(TAG, "Automatic update was deactivated");
+ return;
+ }
+
alarmManager.set(AlarmManager.ELAPSED_REALTIME_WAKEUP,
SystemClock.elapsedRealtime() + triggerAtMillis,
updateIntent);
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 9bbeb7c88..f1a316954 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
@@ -7,8 +7,7 @@ import android.util.Log;
import de.danoeh.antennapod.core.ClientConfig;
import de.danoeh.antennapod.core.preferences.UserPreferences;
-import de.danoeh.antennapod.core.storage.DBTasks;
-import de.danoeh.antennapod.core.util.NetworkUtils;
+import de.danoeh.antennapod.core.util.FeedUpdateUtils;
/**
* Refreshes all feeds when it receives an intent
@@ -21,11 +20,7 @@ public class FeedUpdateReceiver extends BroadcastReceiver {
public void onReceive(Context context, Intent intent) {
Log.d(TAG, "Received intent");
ClientConfig.initialize(context);
- if (NetworkUtils.networkAvailable() && NetworkUtils.isDownloadAllowed()) {
- DBTasks.refreshAllFeeds(context, null);
- } else {
- Log.d(TAG, "Blocking automatic update: no wifi available / no mobile updates allowed");
- }
+ FeedUpdateUtils.startAutoUpdate(context);
UserPreferences.restartUpdateAlarm(false);
}
diff --git a/core/src/main/java/de/danoeh/antennapod/core/service/FeedUpdateJobService.java b/core/src/main/java/de/danoeh/antennapod/core/service/FeedUpdateJobService.java
index d9a7e31cc..2d418218d 100644
--- a/core/src/main/java/de/danoeh/antennapod/core/service/FeedUpdateJobService.java
+++ b/core/src/main/java/de/danoeh/antennapod/core/service/FeedUpdateJobService.java
@@ -7,7 +7,7 @@ import android.support.annotation.RequiresApi;
import android.util.Log;
import de.danoeh.antennapod.core.ClientConfig;
import de.danoeh.antennapod.core.preferences.UserPreferences;
-import de.danoeh.antennapod.core.storage.DBTasks;
+import de.danoeh.antennapod.core.util.FeedUpdateUtils;
@RequiresApi(api = Build.VERSION_CODES.LOLLIPOP)
public class FeedUpdateJobService extends JobService {
@@ -17,7 +17,7 @@ public class FeedUpdateJobService extends JobService {
public boolean onStartJob(JobParameters params) {
Log.d(TAG, "Job started");
ClientConfig.initialize(getApplicationContext());
- DBTasks.refreshAllFeeds(getApplicationContext(), null);
+ FeedUpdateUtils.startAutoUpdate(getApplicationContext());
UserPreferences.restartUpdateAlarm(false);
return true;
}
diff --git a/core/src/main/java/de/danoeh/antennapod/core/storage/DBTasks.java b/core/src/main/java/de/danoeh/antennapod/core/storage/DBTasks.java
index 74f69406f..b6a203cb8 100644
--- a/core/src/main/java/de/danoeh/antennapod/core/storage/DBTasks.java
+++ b/core/src/main/java/de/danoeh/antennapod/core/storage/DBTasks.java
@@ -124,6 +124,7 @@ public final class DBTasks {
media);
}
}
+ // Needs to be called even if the service is already running to deliver the new media intent
PlaybackService.startService(context, media, startWhenPrepared, shouldStream);
if (showPlayer) {
// Launch media player
diff --git a/core/src/main/java/de/danoeh/antennapod/core/util/FeedUpdateUtils.java b/core/src/main/java/de/danoeh/antennapod/core/util/FeedUpdateUtils.java
new file mode 100644
index 000000000..4d2dde88c
--- /dev/null
+++ b/core/src/main/java/de/danoeh/antennapod/core/util/FeedUpdateUtils.java
@@ -0,0 +1,21 @@
+package de.danoeh.antennapod.core.util;
+
+import android.content.Context;
+import android.util.Log;
+import de.danoeh.antennapod.core.storage.DBTasks;
+
+public class FeedUpdateUtils {
+ private static final String TAG = "FeedUpdateUtils";
+
+ private FeedUpdateUtils() {
+
+ }
+
+ public static void startAutoUpdate(Context context) {
+ if (NetworkUtils.networkAvailable() && NetworkUtils.isDownloadAllowed()) {
+ DBTasks.refreshAllFeeds(context, null);
+ } else {
+ Log.d(TAG, "Blocking automatic update: no wifi available / no mobile updates allowed");
+ }
+ }
+}