Merge "Remove backing fields for ColorAndMotionScreen" into main
diff --git a/src/com/android/settings/fuelgauge/batteryusage/DatabaseUtils.java b/src/com/android/settings/fuelgauge/batteryusage/DatabaseUtils.java
index ad487ef..0998e2d 100644
--- a/src/com/android/settings/fuelgauge/batteryusage/DatabaseUtils.java
+++ b/src/com/android/settings/fuelgauge/batteryusage/DatabaseUtils.java
@@ -31,8 +31,6 @@
 import android.os.AsyncTask;
 import android.os.BatteryManager;
 import android.os.BatteryUsageStats;
-import android.os.Handler;
-import android.os.Looper;
 import android.os.RemoteException;
 import android.os.SystemClock;
 import android.os.UserManager;
@@ -66,12 +64,6 @@
 public final class DatabaseUtils {
     private static final String TAG = "DatabaseUtils";
     private static final String SHARED_PREFS_FILE = "battery_usage_shared_prefs";
-    private static final boolean EXPLICIT_CLEAR_MEMORY_ENABLED = false;
-
-    /** Clear memory threshold for device booting phase. */
-    private static final long CLEAR_MEMORY_THRESHOLD_MS = Duration.ofMinutes(5).toMillis();
-
-    private static final long CLEAR_MEMORY_DELAYED_MS = Duration.ofSeconds(2).toMillis();
     private static final long INVALID_TIMESTAMP = 0L;
 
     static final int DATA_RETENTION_INTERVAL_DAY = 9;
@@ -593,7 +585,6 @@
                 String.format(
                         "sendAppUsageEventData() size=%d in %d/ms",
                         size, (System.currentTimeMillis() - startTime)));
-        clearMemory();
         return valuesList;
     }
 
@@ -613,7 +604,6 @@
                 String.format(
                         "sendBatteryEventData() in %d/ms",
                         (System.currentTimeMillis() - startTime)));
-        clearMemory();
         return contentValues;
     }
 
@@ -647,7 +637,6 @@
                 String.format(
                         "sendBatteryEventData() size=%d in %d/ms",
                         size, (System.currentTimeMillis() - startTime)));
-        clearMemory();
         return valuesList;
     }
 
@@ -681,7 +670,6 @@
                 String.format(
                         "sendBatteryUsageSlotData() size=%d in %d/ms",
                         size, (System.currentTimeMillis() - startTime)));
-        clearMemory();
         return valuesList;
     }
 
@@ -695,7 +683,6 @@
         final Intent intent = BatteryUtils.getBatteryIntent(context);
         if (intent == null) {
             Log.e(TAG, "sendBatteryEntryData(): cannot fetch battery intent");
-            clearMemory();
             return null;
         }
         final int batteryLevel = BatteryStatus.getBatteryLevel(intent);
@@ -796,7 +783,6 @@
         if (isFullChargeStart) {
             recordDateTime(context, KEY_LAST_UPLOAD_FULL_CHARGE_TIME);
         }
-        clearMemory();
         return valuesList;
     }
 
@@ -992,20 +978,4 @@
             writer.println(String.format("\t\t%s: %s", prefix, results.toString()));
         }
     }
-
-    private static void clearMemory() {
-        if (!EXPLICIT_CLEAR_MEMORY_ENABLED
-                || SystemClock.uptimeMillis() > CLEAR_MEMORY_THRESHOLD_MS) {
-            return;
-        }
-        final Handler mainHandler = new Handler(Looper.getMainLooper());
-        mainHandler.postDelayed(
-                () -> {
-                    System.gc();
-                    System.runFinalization();
-                    System.gc();
-                    Log.w(TAG, "invoke clearMemory()");
-                },
-                CLEAR_MEMORY_DELAYED_MS);
-    }
 }
diff --git a/src/com/android/settings/network/telephony/NetworkSelectSettings.java b/src/com/android/settings/network/telephony/NetworkSelectSettings.java
index a16f4b5..4ae51ab 100644
--- a/src/com/android/settings/network/telephony/NetworkSelectSettings.java
+++ b/src/com/android/settings/network/telephony/NetworkSelectSettings.java
@@ -219,7 +219,7 @@
         setProgressBarVisible(true);
         mNetworkScanJob = mNetworkScanRepository.launchNetworkScan(getViewLifecycleOwner(),
                 (networkScanResult) -> {
-                    if (isPreferenceScreenEnabled()) {
+                    if (isPreferenceScreenEnabled() && !isFinishingOrDestroyed()) {
                         scanResultHandler(networkScanResult);
                     }
 
diff --git a/src/com/android/settings/users/AddUserWhenLockedPreferenceController.java b/src/com/android/settings/users/AddUserWhenLockedPreferenceController.java
index fe90a2a..2dc5b2d 100644
--- a/src/com/android/settings/users/AddUserWhenLockedPreferenceController.java
+++ b/src/com/android/settings/users/AddUserWhenLockedPreferenceController.java
@@ -46,8 +46,6 @@
                 restrictedSwitchPreference.setVisible(true);
                 if (mUserCaps.mDisallowAddUserSetByAdmin) {
                     restrictedSwitchPreference.setDisabledByAdmin(mUserCaps.mEnforcedAdmin);
-                } else if (mUserCaps.mDisallowAddUser) {
-                    restrictedSwitchPreference.setVisible(false);
                 }
             } else {
                 restrictedSwitchPreference.setDisabledByAdmin(
@@ -62,7 +60,11 @@
         if (!mUserCaps.isAdmin()) {
             return DISABLED_FOR_USER;
         } else if (android.multiuser.Flags.newMultiuserSettingsUx()) {
-            return AVAILABLE;
+            if (mUserCaps.mDisallowAddUser && !mUserCaps.mDisallowAddUserSetByAdmin) {
+                return DISABLED_FOR_USER;
+            } else {
+                return AVAILABLE;
+            }
         } else if (mUserCaps.disallowAddUser() || mUserCaps.disallowAddUserSetByAdmin()) {
             return DISABLED_FOR_USER;
         } else {