diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index f95e2124..0daf605f 100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -35,7 +35,11 @@
-
+
+
+
+
+
diff --git a/src/org/lineageos/updater/UpdaterReceiver.java b/src/org/lineageos/updater/UpdaterReceiver.java
index 7bdaa4ca..ca099144 100644
--- a/src/org/lineageos/updater/UpdaterReceiver.java
+++ b/src/org/lineageos/updater/UpdaterReceiver.java
@@ -18,7 +18,11 @@ package org.lineageos.updater;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
+import android.content.SharedPreferences;
import android.os.PowerManager;
+import android.support.v7.preference.PreferenceManager;
+
+import org.lineageos.updater.misc.Constants;
public class UpdaterReceiver extends BroadcastReceiver {
@@ -30,6 +34,9 @@ public class UpdaterReceiver extends BroadcastReceiver {
if (ACTION_INSTALL_REBOOT.equals(intent.getAction())) {
PowerManager pm = (PowerManager) context.getSystemService(Context.POWER_SERVICE);
pm.reboot(null);
+ } else if (Intent.ACTION_BOOT_COMPLETED.equals(intent.getAction())) {
+ SharedPreferences pref = PreferenceManager.getDefaultSharedPreferences(context);
+ pref.edit().remove(Constants.PREF_NEEDS_REBOOT).apply();
}
}
}
diff --git a/src/org/lineageos/updater/controller/ABUpdateInstaller.java b/src/org/lineageos/updater/controller/ABUpdateInstaller.java
index 294dd4a1..2dc90931 100644
--- a/src/org/lineageos/updater/controller/ABUpdateInstaller.java
+++ b/src/org/lineageos/updater/controller/ABUpdateInstaller.java
@@ -42,7 +42,6 @@ class ABUpdateInstaller {
private static final String TAG = "ABUpdateInstaller";
private static final String PREF_INSTALLING_AB_ID = "installing_ab_id";
- private static final String PREF_NEEDS_REBOOT = "needs_reboot";
private static ABUpdateInstaller sInstance = null;
@@ -119,13 +118,13 @@ class ABUpdateInstaller {
static synchronized boolean isInstallingUpdate(Context context) {
SharedPreferences pref = PreferenceManager.getDefaultSharedPreferences(context);
return pref.getString(ABUpdateInstaller.PREF_INSTALLING_AB_ID, null) != null ||
- pref.getBoolean(ABUpdateInstaller.PREF_NEEDS_REBOOT, false);
+ pref.getBoolean(Constants.PREF_NEEDS_REBOOT, false);
}
static synchronized boolean isInstallingUpdate(Context context, String downloadId) {
SharedPreferences pref = PreferenceManager.getDefaultSharedPreferences(context);
return downloadId.equals(pref.getString(ABUpdateInstaller.PREF_INSTALLING_AB_ID, null)) ||
- pref.getBoolean(ABUpdateInstaller.PREF_NEEDS_REBOOT, false);
+ pref.getBoolean(Constants.PREF_NEEDS_REBOOT, false);
}
private ABUpdateInstaller(Context context, UpdaterController updaterController) {
@@ -233,7 +232,7 @@ class ABUpdateInstaller {
private void installationDone(boolean needsReboot) {
PreferenceManager.getDefaultSharedPreferences(mContext).edit()
- .putBoolean(PREF_NEEDS_REBOOT, needsReboot)
+ .putBoolean(Constants.PREF_NEEDS_REBOOT, needsReboot)
.remove(PREF_INSTALLING_AB_ID)
.apply();
}
diff --git a/src/org/lineageos/updater/misc/Constants.java b/src/org/lineageos/updater/misc/Constants.java
index fe67a4d5..6318874a 100644
--- a/src/org/lineageos/updater/misc/Constants.java
+++ b/src/org/lineageos/updater/misc/Constants.java
@@ -27,6 +27,7 @@ public final class Constants {
public static final String PREF_AUTO_UPDATES_CHECK = "auto_updates_check";
public static final String PREF_AUTO_DELETE_UPDATES = "auto_delete_updates";
public static final String PREF_MOBILE_DATA_WARNING = "pref_mobile_data_warning";
+ public static final String PREF_NEEDS_REBOOT = "needs_reboot";
public static final String UNCRYPT_FILE_EXT = ".uncrypt";