Moved methods into AutoUpdateManager
This commit is contained in:
parent
b3e02e215c
commit
443f6315fa
@ -2,7 +2,6 @@ package de.danoeh.antennapod.core.preferences;
|
|||||||
|
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.content.SharedPreferences;
|
import android.content.SharedPreferences;
|
||||||
import android.os.Build;
|
|
||||||
import android.preference.PreferenceManager;
|
import android.preference.PreferenceManager;
|
||||||
import android.support.annotation.IntRange;
|
import android.support.annotation.IntRange;
|
||||||
import android.support.annotation.NonNull;
|
import android.support.annotation.NonNull;
|
||||||
@ -25,7 +24,6 @@ import java.io.IOException;
|
|||||||
import java.net.Proxy;
|
import java.net.Proxy;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
import java.util.Calendar;
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.concurrent.TimeUnit;
|
import java.util.concurrent.TimeUnit;
|
||||||
|
|
||||||
@ -776,49 +774,14 @@ public class UserPreferences {
|
|||||||
int[] timeOfDay = getUpdateTimeOfDay();
|
int[] timeOfDay = getUpdateTimeOfDay();
|
||||||
Log.d(TAG, "timeOfDay: " + Arrays.toString(timeOfDay));
|
Log.d(TAG, "timeOfDay: " + Arrays.toString(timeOfDay));
|
||||||
if (timeOfDay.length == 2) {
|
if (timeOfDay.length == 2) {
|
||||||
restartUpdateTimeOfDayAlarm(timeOfDay[0], timeOfDay[1]);
|
AutoUpdateManager.restartUpdateTimeOfDayAlarm(context, timeOfDay[0], timeOfDay[1]);
|
||||||
} else {
|
} else {
|
||||||
long milliseconds = getUpdateInterval();
|
long milliseconds = getUpdateInterval();
|
||||||
long startTrigger = milliseconds;
|
long startTrigger = milliseconds;
|
||||||
if (now) {
|
if (now) {
|
||||||
startTrigger = TimeUnit.SECONDS.toMillis(10);
|
startTrigger = TimeUnit.SECONDS.toMillis(10);
|
||||||
}
|
}
|
||||||
restartUpdateIntervalAlarm(startTrigger, milliseconds);
|
AutoUpdateManager.restartUpdateIntervalAlarm(context, startTrigger, milliseconds);
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Sets the interval in which the feeds are refreshed automatically
|
|
||||||
*/
|
|
||||||
private static void restartUpdateIntervalAlarm(long triggerAtMillis, long intervalMillis) {
|
|
||||||
Log.d(TAG, "Restarting update alarm.");
|
|
||||||
|
|
||||||
if (Build.VERSION.SDK_INT >= 24) {
|
|
||||||
AutoUpdateManager.restartJobServiceInterval(context, intervalMillis);
|
|
||||||
} else {
|
|
||||||
AutoUpdateManager.restartAlarmManagerInterval(context, triggerAtMillis, intervalMillis);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Sets time of day the feeds are refreshed automatically
|
|
||||||
*/
|
|
||||||
private static void restartUpdateTimeOfDayAlarm(int hoursOfDay, int minute) {
|
|
||||||
Log.d(TAG, "Restarting update alarm.");
|
|
||||||
|
|
||||||
Calendar now = Calendar.getInstance();
|
|
||||||
Calendar alarm = (Calendar)now.clone();
|
|
||||||
alarm.set(Calendar.HOUR_OF_DAY, hoursOfDay);
|
|
||||||
alarm.set(Calendar.MINUTE, minute);
|
|
||||||
if (alarm.before(now) || alarm.equals(now)) {
|
|
||||||
alarm.add(Calendar.DATE, 1);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (Build.VERSION.SDK_INT >= 24) {
|
|
||||||
long triggerAtMillis = alarm.getTimeInMillis() - now.getTimeInMillis();
|
|
||||||
AutoUpdateManager.restartJobServiceTriggerAt(context, triggerAtMillis);
|
|
||||||
} else {
|
|
||||||
AutoUpdateManager.restartAlarmManagerTimeOfDay(context, alarm);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -25,6 +25,41 @@ public class AutoUpdateManager {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sets the interval in which the feeds are refreshed automatically
|
||||||
|
*/
|
||||||
|
public static void restartUpdateIntervalAlarm(Context context, long triggerAtMillis, long intervalMillis) {
|
||||||
|
Log.d(TAG, "Restarting update alarm.");
|
||||||
|
|
||||||
|
if (Build.VERSION.SDK_INT >= 24) {
|
||||||
|
restartJobServiceInterval(context, intervalMillis);
|
||||||
|
} else {
|
||||||
|
restartAlarmManagerInterval(context, triggerAtMillis, intervalMillis);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sets time of day the feeds are refreshed automatically
|
||||||
|
*/
|
||||||
|
public static void restartUpdateTimeOfDayAlarm(Context context, int hoursOfDay, int minute) {
|
||||||
|
Log.d(TAG, "Restarting update alarm.");
|
||||||
|
|
||||||
|
Calendar now = Calendar.getInstance();
|
||||||
|
Calendar alarm = (Calendar)now.clone();
|
||||||
|
alarm.set(Calendar.HOUR_OF_DAY, hoursOfDay);
|
||||||
|
alarm.set(Calendar.MINUTE, minute);
|
||||||
|
if (alarm.before(now) || alarm.equals(now)) {
|
||||||
|
alarm.add(Calendar.DATE, 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (Build.VERSION.SDK_INT >= 24) {
|
||||||
|
long triggerAtMillis = alarm.getTimeInMillis() - now.getTimeInMillis();
|
||||||
|
restartJobServiceTriggerAt(context, triggerAtMillis);
|
||||||
|
} else {
|
||||||
|
restartAlarmManagerTimeOfDay(context, alarm);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@RequiresApi(api = Build.VERSION_CODES.LOLLIPOP)
|
@RequiresApi(api = Build.VERSION_CODES.LOLLIPOP)
|
||||||
private static JobInfo.Builder getFeedUpdateJobBuilder(Context context) {
|
private static JobInfo.Builder getFeedUpdateJobBuilder(Context context) {
|
||||||
ComponentName serviceComponent = new ComponentName(context, FeedUpdateJobService.class);
|
ComponentName serviceComponent = new ComponentName(context, FeedUpdateJobService.class);
|
||||||
@ -35,7 +70,7 @@ public class AutoUpdateManager {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@RequiresApi(api = Build.VERSION_CODES.N)
|
@RequiresApi(api = Build.VERSION_CODES.N)
|
||||||
public static void restartJobServiceInterval(Context context, long intervalMillis) {
|
private static void restartJobServiceInterval(Context context, long intervalMillis) {
|
||||||
JobScheduler jobScheduler = context.getSystemService(JobScheduler.class);
|
JobScheduler jobScheduler = context.getSystemService(JobScheduler.class);
|
||||||
if (jobScheduler == null) {
|
if (jobScheduler == null) {
|
||||||
Log.d(TAG, "JobScheduler was null.");
|
Log.d(TAG, "JobScheduler was null.");
|
||||||
@ -61,7 +96,7 @@ public class AutoUpdateManager {
|
|||||||
Log.d(TAG, "JobScheduler was set at interval " + intervalMillis);
|
Log.d(TAG, "JobScheduler was set at interval " + intervalMillis);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void restartAlarmManagerInterval(Context context, long triggerAtMillis, long intervalMillis) {
|
private static void restartAlarmManagerInterval(Context context, long triggerAtMillis, long intervalMillis) {
|
||||||
AlarmManager alarmManager = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
|
AlarmManager alarmManager = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
|
||||||
|
|
||||||
if (alarmManager == null) {
|
if (alarmManager == null) {
|
||||||
@ -85,7 +120,7 @@ public class AutoUpdateManager {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@RequiresApi(api = Build.VERSION_CODES.N)
|
@RequiresApi(api = Build.VERSION_CODES.N)
|
||||||
public static void restartJobServiceTriggerAt(Context context, long triggerAtMillis) {
|
private static void restartJobServiceTriggerAt(Context context, long triggerAtMillis) {
|
||||||
JobScheduler jobScheduler = context.getSystemService(JobScheduler.class);
|
JobScheduler jobScheduler = context.getSystemService(JobScheduler.class);
|
||||||
if (jobScheduler == null) {
|
if (jobScheduler == null) {
|
||||||
Log.d(TAG, "JobScheduler was null.");
|
Log.d(TAG, "JobScheduler was null.");
|
||||||
@ -99,7 +134,7 @@ public class AutoUpdateManager {
|
|||||||
Log.d(TAG, "JobScheduler was set for " + triggerAtMillis);
|
Log.d(TAG, "JobScheduler was set for " + triggerAtMillis);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void restartAlarmManagerTimeOfDay(Context context, Calendar alarm) {
|
private static void restartAlarmManagerTimeOfDay(Context context, Calendar alarm) {
|
||||||
AlarmManager alarmManager = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
|
AlarmManager alarmManager = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
|
||||||
|
|
||||||
if (alarmManager == null) {
|
if (alarmManager == null) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user