diff --git a/src/org/lineageos/updater/UpdatesCheckReceiver.java b/src/org/lineageos/updater/UpdatesCheckReceiver.java index 5d195efd915bd9205d7ab4198a80e22942e77634..a2f03fd384dca98300647d09e56498056250093a 100644 --- a/src/org/lineageos/updater/UpdatesCheckReceiver.java +++ b/src/org/lineageos/updater/UpdatesCheckReceiver.java @@ -93,7 +93,7 @@ public class UpdatesCheckReceiver extends BroadcastReceiver { try { if (json.exists() && Utils.checkForNewUpdates(jsonNew)) { showNotification(context); - updateRepeatingUpdatesCheck(context); + scheduleRepeatingUpdatesCheck(context); } //noinspection ResultOfMethodCallIgnored jsonNew.renameTo(json); @@ -149,11 +149,6 @@ public class UpdatesCheckReceiver extends BroadcastReceiver { return PendingIntent.getBroadcast(context, 0, intent, PendingIntent.FLAG_IMMUTABLE); } - public static void updateRepeatingUpdatesCheck(Context context) { - cancelRepeatingUpdatesCheck(context); - scheduleRepeatingUpdatesCheck(context); - } - public static void scheduleRepeatingUpdatesCheck(Context context) { if (!Utils.isUpdateCheckEnabled(context)) { return; @@ -161,8 +156,8 @@ public class UpdatesCheckReceiver extends BroadcastReceiver { PendingIntent updateCheckIntent = getRepeatingUpdatesCheckIntent(context); AlarmManager alarmMgr = context.getSystemService(AlarmManager.class); - alarmMgr.setRepeating(AlarmManager.RTC, System.currentTimeMillis() + - Utils.getUpdateCheckInterval(context), Utils.getUpdateCheckInterval(context), + alarmMgr.setExactAndAllowWhileIdle(AlarmManager.RTC, + System.currentTimeMillis() + Utils.getUpdateCheckInterval(context), updateCheckIntent); Date nextCheckDate = new Date(System.currentTimeMillis() + @@ -170,11 +165,6 @@ public class UpdatesCheckReceiver extends BroadcastReceiver { Log.d(TAG, "Setting automatic updates check: " + nextCheckDate); } - public static void cancelRepeatingUpdatesCheck(Context context) { - AlarmManager alarmMgr = context.getSystemService(AlarmManager.class); - alarmMgr.cancel(getRepeatingUpdatesCheckIntent(context)); - } - private static PendingIntent getUpdatesCheckIntent(Context context) { Intent intent = new Intent(context, UpdatesCheckReceiver.class); intent.setAction(ONESHOT_CHECK_ACTION); @@ -185,7 +175,7 @@ public class UpdatesCheckReceiver extends BroadcastReceiver { long millisToNextCheck = AlarmManager.INTERVAL_HOUR * 2; PendingIntent updateCheckIntent = getUpdatesCheckIntent(context); AlarmManager alarmMgr = context.getSystemService(AlarmManager.class); - alarmMgr.set(AlarmManager.ELAPSED_REALTIME, + alarmMgr.setExactAndAllowWhileIdle(AlarmManager.ELAPSED_REALTIME, SystemClock.elapsedRealtime() + millisToNextCheck, updateCheckIntent);