Merge "Publish system update info when updates are in progress" into main am: a6bec4e541

Original change: https://android-review.googlesource.com/c/platform/packages/apps/Settings/+/2930333

Change-Id: I95643df37fae5dbe700914fe93f6b403e1bf07a9
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
diff --git a/src/com/android/settings/development/Enable16kPagesPreferenceController.java b/src/com/android/settings/development/Enable16kPagesPreferenceController.java
index 37357fe..3f9da57 100644
--- a/src/com/android/settings/development/Enable16kPagesPreferenceController.java
+++ b/src/com/android/settings/development/Enable16kPagesPreferenceController.java
@@ -176,6 +176,7 @@
     public void on16kPagesDialogDismissed() {}
 
     private void installUpdate() {
+        // Check if there is any pending system update
         SystemUpdateManager manager = mContext.getSystemService(SystemUpdateManager.class);
         Bundle data = manager.retrieveSystemUpdateInfo();
         int status = data.getInt(SystemUpdateManager.KEY_STATUS);
@@ -184,6 +185,10 @@
             throw new RuntimeException("System has pending update!");
         }
 
+        // Publish system update info
+        PersistableBundle info = createUpdateInfo(SystemUpdateManager.STATUS_IN_PROGRESS);
+        manager.updateSystemUpdateInfo(info);
+
         String updateFilePath = mEnable16k ? OTA_16K_PATH : OTA_4K_PATH;
         try {
             File updateFile = new File(updateFilePath);
@@ -315,10 +320,10 @@
                         mEnable16k ? ENABLE_16K_PAGE_SIZE : ENABLE_4K_PAGE_SIZE);
 
                 // Publish system update info
-                SystemUpdateManager manager =
-                        (SystemUpdateManager)
-                                mContext.getSystemService(Context.SYSTEM_UPDATE_SERVICE);
-                manager.updateSystemUpdateInfo(getUpdateInfo());
+                SystemUpdateManager manager = mContext.getSystemService(SystemUpdateManager.class);
+                PersistableBundle info =
+                        createUpdateInfo(SystemUpdateManager.STATUS_WAITING_REBOOT);
+                manager.updateSystemUpdateInfo(info);
 
                 // Restart device to complete update
                 PowerManager pm = mContext.getSystemService(PowerManager.class);
@@ -345,10 +350,9 @@
         return builder.create();
     }
 
-    private PersistableBundle getUpdateInfo() {
+    private PersistableBundle createUpdateInfo(int status) {
         PersistableBundle infoBundle = new PersistableBundle();
-        infoBundle.putInt(
-                SystemUpdateManager.KEY_STATUS, SystemUpdateManager.STATUS_WAITING_REBOOT);
+        infoBundle.putInt(SystemUpdateManager.KEY_STATUS, status);
         infoBundle.putBoolean(SystemUpdateManager.KEY_IS_SECURITY_UPDATE, false);
         infoBundle.putString(SystemUpdateManager.KEY_TITLE, EXPERIMENTAL_UPDATE_TITLE);
         return infoBundle;