Merge "Explain why keywords_memtag is not translatable."
diff --git a/res/values/strings.xml b/res/values/strings.xml
index c8e1052..c73f3a5 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -2274,6 +2274,12 @@
     <string name="screensaver_settings_summary_dock">While docked</string>
     <!-- Display settings screen, summary fragment for screen saver options, activated never [CHAR LIMIT=35] -->
     <string name="screensaver_settings_summary_never">Never</string>
+    <!-- Display settings screen, summary for screen saver options, screen saver is turned on [CHAR LIMIT=50] -->
+    <string name="screensaver_settings_summary_on">
+        On / <xliff:g id="screen_saver" example="Art gallery">%1$s</xliff:g>
+    </string>
+    <!-- Display settings screen, summary for screen saver options, screen saver is turned off [CHAR LIMIT=20] -->
+    <string name="screensaver_settings_summary_off">Off</string>
     <!-- Dream settings screen, action label, when to dream [CHAR LIMIT=20] -->
     <string name="screensaver_settings_when_to_dream">When to start</string>
     <!-- [CHAR LIMIT=40] Display settings screen, setting option name to change whether the device wakes up when a lift gesture is detected. -->
diff --git a/res/xml/reset_dashboard_fragment.xml b/res/xml/reset_dashboard_fragment.xml
index d2c8ca0..5502558 100644
--- a/res/xml/reset_dashboard_fragment.xml
+++ b/res/xml/reset_dashboard_fragment.xml
@@ -26,6 +26,7 @@
         android:title="@string/reset_network_title"
         settings:userRestriction="no_network_reset"
         settings:useAdminDisabledSummary="true"
+        settings:isPreferenceVisible="@bool/config_show_sim_info"
         android:fragment="com.android.settings.ResetNetwork" />
 
     <!-- Bluetooth and WiFi reset -->
diff --git a/src/com/android/settings/deviceinfo/simstatus/SimStatusPreferenceController.java b/src/com/android/settings/deviceinfo/simstatus/SimStatusPreferenceController.java
index 3ea8cb4..b75853d 100644
--- a/src/com/android/settings/deviceinfo/simstatus/SimStatusPreferenceController.java
+++ b/src/com/android/settings/deviceinfo/simstatus/SimStatusPreferenceController.java
@@ -72,6 +72,9 @@
 
     @Override
     public int getAvailabilityStatus() {
+        if (getSimSlotIndex() == SubscriptionManager.INVALID_SIM_SLOT_INDEX) {
+            return UNSUPPORTED_ON_DEVICE;
+        }
         boolean isAvailable = SubscriptionUtil.isSimHardwareVisible(mContext) &&
                 mContext.getSystemService(UserManager.class).isAdminUser() &&
                 !Utils.isWifiOnly(mContext);
@@ -81,7 +84,7 @@
     @Override
     public void displayPreference(PreferenceScreen screen) {
         super.displayPreference(screen);
-        if (!SubscriptionUtil.isSimHardwareVisible(mContext)) {
+        if ((!SubscriptionUtil.isSimHardwareVisible(mContext)) || (mSlotSimStatus == null)) {
             return;
         }
         String basePreferenceKey = mSlotSimStatus.getPreferenceKey(
@@ -133,17 +136,23 @@
                 R.string.sim_status_title);
     }
 
-    private CharSequence getCarrierName(int simSlot) {
+    private SubscriptionInfo getSubscriptionInfo(int simSlot) {
         final List<SubscriptionInfo> subscriptionInfoList =
                 mSubscriptionManager.getActiveSubscriptionInfoList();
         if (subscriptionInfoList != null) {
             for (SubscriptionInfo info : subscriptionInfoList) {
                 if (info.getSimSlotIndex() == simSlot) {
-                    return info.getCarrierName();
+                    return info;
                 }
             }
         }
-        return mContext.getText(R.string.device_info_not_available);
+        return null;
+    }
+
+    private CharSequence getCarrierName(int simSlot) {
+        SubscriptionInfo subInfo = getSubscriptionInfo(simSlot);
+        return (subInfo != null) ? subInfo.getCarrierName() :
+                mContext.getText(R.string.device_info_not_available);
     }
 
     @VisibleForTesting
diff --git a/src/com/android/settings/display/BrightnessLevelPreferenceController.java b/src/com/android/settings/display/BrightnessLevelPreferenceController.java
index 2d549fc..b6a0ca3 100644
--- a/src/com/android/settings/display/BrightnessLevelPreferenceController.java
+++ b/src/com/android/settings/display/BrightnessLevelPreferenceController.java
@@ -30,15 +30,9 @@
 import android.net.Uri;
 import android.os.Handler;
 import android.os.Looper;
-import android.os.PowerManager;
-import android.os.RemoteException;
-import android.os.ServiceManager;
 import android.provider.Settings.System;
-import android.service.vr.IVrManager;
 import android.text.TextUtils;
-import android.util.Log;
 
-import androidx.annotation.VisibleForTesting;
 import androidx.preference.Preference;
 import androidx.preference.PreferenceScreen;
 
@@ -58,11 +52,8 @@
 
     private static final String TAG = "BrightnessPrefCtrl";
     private static final String KEY_BRIGHTNESS = "brightness";
-    private static final Uri BRIGHTNESS_FOR_VR_URI;
     private static final Uri BRIGHTNESS_ADJ_URI;
 
-    private final float mMinVrBrightness;
-    private final float mMaxVrBrightness;
     private final ContentResolver mContentResolver;
     private final Handler mHandler = new Handler(Looper.getMainLooper());
     private final DisplayManager mDisplayManager;
@@ -70,7 +61,6 @@
     private Preference mPreference;
 
     static {
-        BRIGHTNESS_FOR_VR_URI = System.getUriFor(System.SCREEN_BRIGHTNESS_FOR_VR);
         BRIGHTNESS_ADJ_URI = System.getUriFor(System.SCREEN_AUTO_BRIGHTNESS_ADJ);
     }
 
@@ -105,12 +95,6 @@
         if (lifecycle != null) {
             lifecycle.addObserver(this);
         }
-        final PowerManager powerManager = context.getSystemService(PowerManager.class);
-
-        mMinVrBrightness = powerManager.getBrightnessConstraint(
-                PowerManager.BRIGHTNESS_CONSTRAINT_TYPE_MINIMUM_VR);
-        mMaxVrBrightness = powerManager.getBrightnessConstraint(
-                PowerManager.BRIGHTNESS_CONSTRAINT_TYPE_MAXIMUM_VR);
         mContentResolver = mContext.getContentResolver();
     }
 
@@ -137,7 +121,6 @@
 
     @Override
     public void onStart() {
-        mContentResolver.registerContentObserver(BRIGHTNESS_FOR_VR_URI, false, mBrightnessObserver);
         mContentResolver.registerContentObserver(BRIGHTNESS_ADJ_URI, false, mBrightnessObserver);
         mDisplayManager.registerDisplayListener(mDisplayListener, mHandler,
                 DisplayManager.EVENT_FLAG_DISPLAY_BRIGHTNESS);
@@ -174,16 +157,10 @@
 
     private double getCurrentBrightness() {
         int value = 0;
-        if (isInVrMode()) {
-            value = convertLinearToGammaFloat(System.getFloat(mContentResolver,
-                    System.SCREEN_BRIGHTNESS_FOR_VR_FLOAT, mMaxVrBrightness),
-                    mMinVrBrightness, mMaxVrBrightness);
-        } else {
-            final BrightnessInfo info = mContext.getDisplay().getBrightnessInfo();
-            if (info != null) {
-                value = convertLinearToGammaFloat(info.brightness, info.brightnessMinimum,
-                        info.brightnessMaximum);
-            }
+        final BrightnessInfo info = mContext.getDisplay().getBrightnessInfo();
+        if (info != null) {
+            value = convertLinearToGammaFloat(info.brightness, info.brightnessMinimum,
+                    info.brightnessMaximum);
         }
         return getPercentage(value, GAMMA_SPACE_MIN, GAMMA_SPACE_MAX);
     }
@@ -197,23 +174,4 @@
         }
         return (value - min) / (max - min);
     }
-
-    @VisibleForTesting
-    IVrManager safeGetVrManager() {
-        return IVrManager.Stub.asInterface(ServiceManager.getService(
-                Context.VR_SERVICE));
-    }
-
-    @VisibleForTesting
-    boolean isInVrMode() {
-        IVrManager vrManager = safeGetVrManager();
-        if (vrManager != null) {
-            try {
-                return vrManager.getVrModeState();
-            } catch (RemoteException e) {
-                Log.e(TAG, "Failed to check vr mode!", e);
-            }
-        }
-        return false;
-    }
 }
diff --git a/src/com/android/settings/dream/DreamSettings.java b/src/com/android/settings/dream/DreamSettings.java
index 80b321d..acc6973 100644
--- a/src/com/android/settings/dream/DreamSettings.java
+++ b/src/com/android/settings/dream/DreamSettings.java
@@ -138,10 +138,11 @@
 
     @VisibleForTesting
     static CharSequence getSummaryTextFromBackend(DreamBackend backend, Context context) {
-        if (!backend.isEnabled()) {
-            return context.getString(R.string.off);
+        if (backend.isEnabled()) {
+            return context.getString(R.string.screensaver_settings_summary_on,
+                    backend.getActiveDreamName());
         } else {
-            return backend.getActiveDreamName();
+            return context.getString(R.string.screensaver_settings_summary_off);
         }
     }
 
diff --git a/src/com/android/settings/fuelgauge/batteryusage/BatteryDiffData.java b/src/com/android/settings/fuelgauge/batteryusage/BatteryDiffData.java
index b5d4dde..caf2cf3 100644
--- a/src/com/android/settings/fuelgauge/batteryusage/BatteryDiffData.java
+++ b/src/com/android/settings/fuelgauge/batteryusage/BatteryDiffData.java
@@ -26,23 +26,14 @@
     private final List<BatteryDiffEntry> mAppEntries;
     private final List<BatteryDiffEntry> mSystemEntries;
 
-    /** Constructor for the diff entries which already have totalConsumePower value. */
+    /** Constructor for the diff entries. */
     public BatteryDiffData(
             @NonNull List<BatteryDiffEntry> appDiffEntries,
             @NonNull List<BatteryDiffEntry> systemDiffEntries) {
         mAppEntries = appDiffEntries;
         mSystemEntries = systemDiffEntries;
-        sortEntries();
-    }
-
-    /** Constructor for the diff entries which have not set totalConsumePower value. */
-    public BatteryDiffData(
-            @NonNull List<BatteryDiffEntry> appDiffEntries,
-            @NonNull List<BatteryDiffEntry> systemDiffEntries,
-            final double totalConsumePower) {
-        mAppEntries = appDiffEntries;
-        mSystemEntries = systemDiffEntries;
-        setTotalConsumePowerForAllEntries(totalConsumePower);
+        setTotalConsumePowerForAllEntries(mAppEntries);
+        setTotalConsumePowerForAllEntries(mSystemEntries);
         sortEntries();
     }
 
@@ -55,9 +46,14 @@
     }
 
     // Sets total consume power for each entry.
-    private void setTotalConsumePowerForAllEntries(final double totalConsumePower) {
-        mAppEntries.forEach(diffEntry -> diffEntry.setTotalConsumePower(totalConsumePower));
-        mSystemEntries.forEach(diffEntry -> diffEntry.setTotalConsumePower(totalConsumePower));
+    private void setTotalConsumePowerForAllEntries(List<BatteryDiffEntry> batteryDiffEntries) {
+        double totalConsumePower = 0.0;
+        for (BatteryDiffEntry batteryDiffEntry : batteryDiffEntries) {
+            totalConsumePower += batteryDiffEntry.mConsumePower;
+        }
+        for (BatteryDiffEntry batteryDiffEntry : batteryDiffEntries) {
+            batteryDiffEntry.setTotalConsumePower(totalConsumePower);
+        }
     }
 
     // Sorts entries based on consumed percentage.
diff --git a/src/com/android/settings/fuelgauge/batteryusage/BatteryEntry.java b/src/com/android/settings/fuelgauge/batteryusage/BatteryEntry.java
index 2b56cc1..e9e0347 100644
--- a/src/com/android/settings/fuelgauge/batteryusage/BatteryEntry.java
+++ b/src/com/android/settings/fuelgauge/batteryusage/BatteryEntry.java
@@ -200,16 +200,13 @@
 
     /** Battery entry for a power component of AggregateBatteryConsumer */
     public BatteryEntry(Context context, int powerComponentId, double devicePowerMah,
-            double appsPowerMah, long usageDurationMs) {
+            long usageDurationMs) {
         mContext = context;
         mBatteryConsumer = null;
         mUid = Process.INVALID_UID;
         mIsHidden = false;
         mPowerComponentId = powerComponentId;
-        mConsumedPower =
-                powerComponentId == BatteryConsumer.POWER_COMPONENT_SCREEN
-                        ? devicePowerMah
-                        : devicePowerMah - appsPowerMah;
+        mConsumedPower = devicePowerMah;
         mUsageDurationMs = usageDurationMs;
         mConsumerType = ConvertUtils.CONSUMER_TYPE_SYSTEM_BATTERY;
 
@@ -224,7 +221,7 @@
 
     /** Battery entry for a custom power component of AggregateBatteryConsumer */
     public BatteryEntry(Context context, int powerComponentId, String powerComponentName,
-            double devicePowerMah, double appsPowerMah) {
+            double devicePowerMah) {
         mContext = context;
         mBatteryConsumer = null;
         mUid = Process.INVALID_UID;
@@ -234,10 +231,7 @@
         mIconId = R.drawable.ic_power_system;
         mIcon = context.getDrawable(mIconId);
         mName = powerComponentName;
-        mConsumedPower =
-                powerComponentId == BatteryConsumer.POWER_COMPONENT_SCREEN
-                        ? devicePowerMah
-                        : devicePowerMah - appsPowerMah;
+        mConsumedPower = devicePowerMah;
         mConsumerType = ConvertUtils.CONSUMER_TYPE_SYSTEM_BATTERY;
     }
 
diff --git a/src/com/android/settings/fuelgauge/batteryusage/DataProcessor.java b/src/com/android/settings/fuelgauge/batteryusage/DataProcessor.java
index b510e5b..0f02d1c 100644
--- a/src/com/android/settings/fuelgauge/batteryusage/DataProcessor.java
+++ b/src/com/android/settings/fuelgauge/batteryusage/DataProcessor.java
@@ -372,7 +372,7 @@
 
     @VisibleForTesting
     static long[] findNearestTimestamp(final List<Long> timestamps, final long target) {
-        final long[] results = new long[] {Long.MIN_VALUE, Long.MAX_VALUE};
+        final long[] results = new long[]{Long.MIN_VALUE, Long.MAX_VALUE};
         // Searches the nearest lower and upper timestamp value.
         timestamps.forEach(timestamp -> {
             if (timestamp <= target && timestamp > results[0]) {
@@ -398,7 +398,7 @@
     }
 
     /**
-     *  Returns whether currentSlot will be used in daily chart.
+     * Returns whether currentSlot will be used in daily chart.
      */
     @VisibleForTesting
     static boolean isForDailyChart(final boolean isStartOrEnd, final long currentSlot) {
@@ -468,13 +468,11 @@
                 userHandle != null ? userHandle.getIdentifier() : Integer.MIN_VALUE;
         final List<BatteryDiffEntry> appEntries = new ArrayList<>();
         final List<BatteryDiffEntry> systemEntries = new ArrayList<>();
-        double totalConsumePower = 0f;
         double consumePowerFromOtherUsers = 0f;
 
         for (BatteryHistEntry entry : batteryHistEntryList) {
             final boolean isFromOtherUsers = isConsumedFromOtherUsers(
                     currentUserId, workProfileUserId, entry);
-            totalConsumePower += entry.mConsumePower;
             if (isFromOtherUsers) {
                 consumePowerFromOtherUsers += entry.mConsumePower;
             } else {
@@ -504,7 +502,7 @@
             return null;
         }
 
-        return new BatteryDiffData(appEntries, systemEntries, totalConsumePower);
+        return new BatteryDiffData(appEntries, systemEntries);
     }
 
     /**
@@ -588,9 +586,7 @@
                             || (entry.getConsumedPower() == 0
                             && (foregroundMs != 0 || backgroundMs != 0));
                 })
-                .map(entry -> ConvertUtils.convertToBatteryHistEntry(
-                                entry,
-                                batteryUsageStats))
+                .map(entry -> ConvertUtils.convertToBatteryHistEntry(entry, batteryUsageStats))
                 .collect(Collectors.toList());
     }
 
@@ -949,7 +945,6 @@
         allBatteryHistEntryKeys.addAll(nextBatteryHistMap.keySet());
         allBatteryHistEntryKeys.addAll(nextTwoBatteryHistMap.keySet());
 
-        double totalConsumePower = 0.0;
         double consumePowerFromOtherUsers = 0f;
         // Calculates all packages diff usage data in a specific time slot.
         for (String key : allBatteryHistEntryKeys) {
@@ -1028,7 +1023,6 @@
                 backgroundUsageConsumePower = backgroundUsageConsumePower * ratio;
                 cachedUsageConsumePower = cachedUsageConsumePower * ratio;
             }
-            totalConsumePower += consumePower;
 
             final boolean isFromOtherUsers = isConsumedFromOtherUsers(
                     currentUserId, workProfileUserId, selectedBatteryEntry);
@@ -1061,9 +1055,7 @@
             return null;
         }
 
-        final BatteryDiffData resultDiffData =
-                new BatteryDiffData(appEntries, systemEntries, totalConsumePower);
-        return resultDiffData;
+        return new BatteryDiffData(appEntries, systemEntries);
     }
 
     private static boolean isConsumedFromOtherUsers(
@@ -1078,7 +1070,6 @@
     @Nullable
     private static BatteryDiffData getAccumulatedUsageDiffData(
             final Collection<BatteryDiffData> diffEntryListData) {
-        double totalConsumePower = 0f;
         final Map<String, BatteryDiffEntry> diffEntryMap = new HashMap<>();
         final List<BatteryDiffEntry> appEntries = new ArrayList<>();
         final List<BatteryDiffEntry> systemEntries = new ArrayList<>();
@@ -1089,18 +1080,14 @@
             }
             for (BatteryDiffEntry entry : diffEntryList.getAppDiffEntryList()) {
                 computeUsageDiffDataPerEntry(entry, diffEntryMap);
-                totalConsumePower += entry.mConsumePower;
             }
             for (BatteryDiffEntry entry : diffEntryList.getSystemDiffEntryList()) {
                 computeUsageDiffDataPerEntry(entry, diffEntryMap);
-                totalConsumePower += entry.mConsumePower;
             }
         }
 
         final Collection<BatteryDiffEntry> diffEntryList = diffEntryMap.values();
         for (BatteryDiffEntry entry : diffEntryList) {
-            // Sets total daily consume power data into all BatteryDiffEntry.
-            entry.setTotalConsumePower(totalConsumePower);
             if (entry.isSystemEntry()) {
                 systemEntries.add(entry);
             } else {
@@ -1243,14 +1230,11 @@
 
         final BatteryConsumer deviceConsumer = batteryUsageStats.getAggregateBatteryConsumer(
                 BatteryUsageStats.AGGREGATE_BATTERY_CONSUMER_SCOPE_DEVICE);
-        final BatteryConsumer appsConsumer = batteryUsageStats.getAggregateBatteryConsumer(
-                BatteryUsageStats.AGGREGATE_BATTERY_CONSUMER_SCOPE_ALL_APPS);
 
         for (int componentId = 0; componentId < BatteryConsumer.POWER_COMPONENT_COUNT;
                 componentId++) {
             results.add(new BatteryEntry(context, componentId,
                     deviceConsumer.getConsumedPower(componentId),
-                    appsConsumer.getConsumedPower(componentId),
                     deviceConsumer.getUsageDurationMillis(componentId)));
         }
 
@@ -1260,8 +1244,7 @@
                 componentId++) {
             results.add(new BatteryEntry(context, componentId,
                     deviceConsumer.getCustomPowerComponentName(componentId),
-                    deviceConsumer.getConsumedPowerForCustomComponent(componentId),
-                    appsConsumer.getConsumedPowerForCustomComponent(componentId)));
+                    deviceConsumer.getConsumedPowerForCustomComponent(componentId)));
         }
 
         final List<UserBatteryConsumer> userBatteryConsumers =
diff --git a/src/com/android/settings/network/MobileNetworkRepository.java b/src/com/android/settings/network/MobileNetworkRepository.java
index 5de4c72..42f15c8 100644
--- a/src/com/android/settings/network/MobileNetworkRepository.java
+++ b/src/com/android/settings/network/MobileNetworkRepository.java
@@ -264,8 +264,7 @@
                         mIsActive = portInfo.isActive();
                         mPortIndex = portInfo.getPortIndex();
                     } else if (DEBUG) {
-                        Log.d(TAG,
-                                "Can not get port index and physicalSlotIndex for subId "
+                        Log.d(TAG, "Can not get port index and physicalSlotIndex for subId "
                                         + mSubId);
                     }
                 });
@@ -297,8 +296,7 @@
         setActiveSubInfoList(mActiveSubInfoEntityList);
     }
 
-    private void setActiveSubInfoList(
-            List<SubscriptionInfoEntity> activeSubInfoEntityList) {
+    private void setActiveSubInfoList(List<SubscriptionInfoEntity> activeSubInfoEntityList) {
         if (DEBUG) {
             Log.d(TAG,
                     "onActiveSubInfoChanged, activeSubInfoEntityList = " + activeSubInfoEntityList);
@@ -460,11 +458,16 @@
             if (DEBUG) {
                 Log.d(TAG, "availableSudInfoList from framework is empty, remove all subs");
             }
-            for (SubscriptionInfoEntity info : mAvailableSubInfoEntityList) {
+
+            SubscriptionInfoEntity[] availableInfoArray = mAvailableSubInfoEntityList.toArray(
+                    new SubscriptionInfoEntity[0]);
+            for (SubscriptionInfoEntity info : availableInfoArray) {
                 deleteAllInfoBySubId(info.subId);
             }
+
         } else if (availableInfoList != null) {
-            for (SubscriptionInfo subInfo : availableInfoList) {
+            SubscriptionInfo[] infoArray = availableInfoList.toArray(new SubscriptionInfo[0]);
+            for (SubscriptionInfo subInfo : infoArray) {
                 mSubscriptionInfoMap.remove(subInfo.getSubscriptionId());
                 if (DEBUG) {
                     Log.d(TAG,
diff --git a/src/com/android/settings/network/NetworkResetPreferenceController.java b/src/com/android/settings/network/NetworkResetPreferenceController.java
index 58a5383..8842c61 100644
--- a/src/com/android/settings/network/NetworkResetPreferenceController.java
+++ b/src/com/android/settings/network/NetworkResetPreferenceController.java
@@ -19,6 +19,7 @@
 import android.content.Context;
 
 import com.android.settings.core.PreferenceControllerMixin;
+import com.android.settings.network.SubscriptionUtil;
 import com.android.settingslib.core.AbstractPreferenceController;
 
 public class NetworkResetPreferenceController extends AbstractPreferenceController
@@ -33,7 +34,8 @@
 
     @Override
     public boolean isAvailable() {
-        return !mRestrictionChecker.hasUserRestriction();
+        return (SubscriptionUtil.isSimHardwareVisible(mContext) &&
+                (!mRestrictionChecker.hasUserRestriction()));
     }
 
     @Override
diff --git a/src/com/android/settings/network/telephony/MobileNetworkSettings.java b/src/com/android/settings/network/telephony/MobileNetworkSettings.java
index 88c3656..60f35cd 100644
--- a/src/com/android/settings/network/telephony/MobileNetworkSettings.java
+++ b/src/com/android/settings/network/telephony/MobileNetworkSettings.java
@@ -464,10 +464,6 @@
 
     @Override
     public void onAvailableSubInfoChanged(List<SubscriptionInfoEntity> subInfoEntityList) {
-    }
-
-    @Override
-    public void onActiveSubInfoChanged(List<SubscriptionInfoEntity> subInfoEntityList) {
         if (DataServiceUtils.shouldUpdateEntityList(mSubInfoEntityList, subInfoEntityList)) {
 
             // Check the current subId is existed or not, if so, finish it.
@@ -500,6 +496,10 @@
     }
 
     @Override
+    public void onActiveSubInfoChanged(List<SubscriptionInfoEntity> subInfoEntityList) {
+    }
+
+    @Override
     public void onAllUiccInfoChanged(List<UiccInfoEntity> uiccInfoEntityList) {
     }
 
diff --git a/src/com/android/settings/system/ResetDashboardFragment.java b/src/com/android/settings/system/ResetDashboardFragment.java
index c352b92..aea92aa 100644
--- a/src/com/android/settings/system/ResetDashboardFragment.java
+++ b/src/com/android/settings/system/ResetDashboardFragment.java
@@ -24,6 +24,7 @@
 import com.android.settings.dashboard.DashboardFragment;
 import com.android.settings.network.EraseEuiccDataController;
 import com.android.settings.network.NetworkResetPreferenceController;
+import com.android.settings.network.SubscriptionUtil;
 import com.android.settings.search.BaseSearchIndexProvider;
 import com.android.settingslib.core.AbstractPreferenceController;
 import com.android.settingslib.core.lifecycle.Lifecycle;
@@ -61,7 +62,9 @@
     @Override
     public void onAttach(Context context) {
         super.onAttach(context);
-        use(EraseEuiccDataController.class).setFragment(this);
+        if (SubscriptionUtil.isSimHardwareVisible(context)) {
+            use(EraseEuiccDataController.class).setFragment(this);
+        }
     }
 
     @Override
@@ -72,7 +75,9 @@
     private static List<AbstractPreferenceController> buildPreferenceControllers(Context context,
             Lifecycle lifecycle) {
         final List<AbstractPreferenceController> controllers = new ArrayList<>();
-        controllers.add(new NetworkResetPreferenceController(context));
+        if (SubscriptionUtil.isSimHardwareVisible(context)) {
+            controllers.add(new NetworkResetPreferenceController(context));
+        }
         controllers.add(new FactoryResetPreferenceController(context));
         controllers.add(new ResetAppPrefPreferenceController(context, lifecycle));
         return controllers;
diff --git a/tests/robotests/src/com/android/settings/display/BrightnessLevelPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/display/BrightnessLevelPreferenceControllerTest.java
index 82c6b70..4fedeae 100644
--- a/tests/robotests/src/com/android/settings/display/BrightnessLevelPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/display/BrightnessLevelPreferenceControllerTest.java
@@ -21,7 +21,6 @@
 import static com.google.common.truth.Truth.assertThat;
 
 import static org.mockito.ArgumentMatchers.anyString;
-import static org.mockito.Mockito.doReturn;
 import static org.mockito.Mockito.spy;
 import static org.mockito.Mockito.verify;
 import static org.mockito.Mockito.when;
@@ -82,16 +81,11 @@
                 PowerManager.BRIGHTNESS_CONSTRAINT_TYPE_MINIMUM)).thenReturn(0.0f);
         when(mPowerManager.getBrightnessConstraint(
                 PowerManager.BRIGHTNESS_CONSTRAINT_TYPE_MAXIMUM)).thenReturn(1.0f);
-        when(mPowerManager.getBrightnessConstraint(
-                PowerManager.BRIGHTNESS_CONSTRAINT_TYPE_MINIMUM_VR)).thenReturn(0.0f);
-        when(mPowerManager.getBrightnessConstraint(
-                PowerManager.BRIGHTNESS_CONSTRAINT_TYPE_MAXIMUM_VR)).thenReturn(1.0f);
         ShadowApplication.getInstance().setSystemService(POWER_SERVICE,
                 mPowerManager);
         when(mScreen.findPreference(anyString())).thenReturn(mPreference);
         when(mContext.getDisplay()).thenReturn(mDisplay);
         mController = spy(new BrightnessLevelPreferenceController(mContext, null));
-        doReturn(false).when(mController).isInVrMode();
     }
 
     @Test
@@ -100,12 +94,6 @@
     }
 
     @Test
-    public void isInVrMode_noVrManager_shouldAlwaysReturnFalse() {
-        doReturn(null).when(mController).safeGetVrManager();
-        assertThat(mController.isInVrMode()).isFalse();
-    }
-
-    @Test
     public void onStart_shouldRegisterObserver() {
         BrightnessLevelPreferenceController controller =
                 new BrightnessLevelPreferenceController(mContext, null);
@@ -114,8 +102,6 @@
         controller.onStart();
 
         assertThat(shadowContentResolver.getContentObservers(
-                System.getUriFor(System.SCREEN_BRIGHTNESS_FOR_VR))).isNotEmpty();
-        assertThat(shadowContentResolver.getContentObservers(
                 System.getUriFor(System.SCREEN_AUTO_BRIGHTNESS_ADJ))).isNotEmpty();
     }
 
@@ -130,8 +116,6 @@
         controller.onStop();
 
         assertThat(shadowContentResolver.getContentObservers(
-                System.getUriFor(System.SCREEN_BRIGHTNESS_FOR_VR_FLOAT))).isEmpty();
-        assertThat(shadowContentResolver.getContentObservers(
                 System.getUriFor(System.SCREEN_AUTO_BRIGHTNESS_ADJ))).isEmpty();
     }
 
@@ -151,18 +135,7 @@
     }
 
     @Test
-    public void updateState_inVrMode_shouldSetSummaryToVrBrightness() {
-        doReturn(true).when(mController).isInVrMode();
-        System.putFloat(mContentResolver, System.SCREEN_BRIGHTNESS_FOR_VR_FLOAT, 0.6f);
-
-        mController.updateState(mPreference);
-
-        verify(mPreference).setSummary("91%");
-    }
-
-    @Test
     public void updateState_autoBrightness_shouldSetSummaryToAutoBrightness() {
-        doReturn(false).when(mController).isInVrMode();
         System.putInt(mContentResolver, System.SCREEN_BRIGHTNESS_MODE,
                 System.SCREEN_BRIGHTNESS_MODE_AUTOMATIC);
 
@@ -177,7 +150,6 @@
 
     @Test
     public void updateState_manualBrightness_shouldSetSummaryToScreenBrightness() {
-        doReturn(false).when(mController).isInVrMode();
         System.putInt(mContentResolver, System.SCREEN_BRIGHTNESS_MODE,
                 System.SCREEN_BRIGHTNESS_MODE_MANUAL);
 
@@ -191,20 +163,6 @@
     }
 
     @Test
-    public void updateState_brightnessOutOfRange_shouldSetSummaryInRange() {
-        // VR mode
-        doReturn(true).when(mController).isInVrMode();
-
-        System.putFloat(mContentResolver, System.SCREEN_BRIGHTNESS_FOR_VR_FLOAT, 1.05f);
-        mController.updateState(mPreference);
-        verify(mPreference).setSummary("100%");
-
-        System.putFloat(mContentResolver, System.SCREEN_BRIGHTNESS_FOR_VR_FLOAT, -20f);
-        mController.updateState(mPreference);
-        verify(mPreference).setSummary("0%");
-    }
-
-    @Test
     public void handlePreferenceTreeClick_transitionTypeNone_shouldPassToNextActivity() {
         final Activity activity = Robolectric.setupActivity(Activity.class);
         final BrightnessLevelPreferenceController controller =
diff --git a/tests/robotests/src/com/android/settings/dream/DreamSettingsTest.java b/tests/robotests/src/com/android/settings/dream/DreamSettingsTest.java
index e9e8072..4fceb17 100644
--- a/tests/robotests/src/com/android/settings/dream/DreamSettingsTest.java
+++ b/tests/robotests/src/com/android/settings/dream/DreamSettingsTest.java
@@ -18,6 +18,8 @@
 
 import static com.google.common.truth.Truth.assertThat;
 
+import static org.mockito.ArgumentMatchers.anyString;
+import static org.mockito.ArgumentMatchers.eq;
 import static org.mockito.Mockito.mock;
 import static org.mockito.Mockito.when;
 
@@ -104,23 +106,28 @@
 
     @Test
     public void summaryText_whenDreamsAreOff() {
-        DreamBackend mockBackend = mock(DreamBackend.class);
-        Context mockContext = mock(Context.class);
+        final String fakeSummaryOff = "test dream off";
+        final DreamBackend mockBackend = mock(DreamBackend.class);
+        final Context mockContext = mock(Context.class);
         when(mockBackend.isEnabled()).thenReturn(false);
+        when(mockContext.getString(R.string.screensaver_settings_summary_off)).thenReturn(
+                fakeSummaryOff);
 
-        assertThat(DreamSettings.getSummaryTextFromBackend(mockBackend, mockContext))
-                .isEqualTo(mockContext.getString(R.string.off));
+        assertThat(DreamSettings.getSummaryTextFromBackend(mockBackend, mockContext)).isEqualTo(
+                fakeSummaryOff);
     }
 
     @Test
     public void summaryTest_WhenDreamsAreOn() {
         final String fakeName = "test_name";
-        DreamBackend mockBackend = mock(DreamBackend.class);
-        Context mockContext = mock(Context.class);
+        final DreamBackend mockBackend = mock(DreamBackend.class);
+        final Context mockContext = mock(Context.class);
         when(mockBackend.isEnabled()).thenReturn(true);
         when(mockBackend.getActiveDreamName()).thenReturn(fakeName);
+        when(mockContext.getString(eq(R.string.screensaver_settings_summary_on), anyString()))
+                .thenAnswer(i -> i.getArgument(1) + " test dream is on");
 
-        assertThat(DreamSettings.getSummaryTextFromBackend(mockBackend, mockContext))
-                .isEqualTo(fakeName);
+        assertThat(DreamSettings.getSummaryTextFromBackend(mockBackend, mockContext)).isEqualTo(
+                fakeName + " test dream is on");
     }
 }
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/BatteryEntryTest.java b/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/BatteryEntryTest.java
index 90fa572..463a66d 100644
--- a/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/BatteryEntryTest.java
+++ b/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/BatteryEntryTest.java
@@ -104,11 +104,19 @@
     }
 
     private BatteryEntry createAggregateBatteryEntry(int powerComponentId) {
-        return new BatteryEntry(mMockContext, powerComponentId, 200, 100, 1000);
+        return new BatteryEntry(
+                mMockContext,
+                powerComponentId,
+                /* devicePowerMah= */ 200,
+                /* usageDurationMs= */ 1000);
     }
 
     private BatteryEntry createCustomAggregateBatteryEntry(int powerComponentId) {
-        return new BatteryEntry(mMockContext, powerComponentId, "CUSTOM", 200, 100);
+        return new BatteryEntry(
+                mMockContext,
+                powerComponentId,
+                /* powerComponentName= */ "CUSTOM",
+                /* devicePowerMah= */ 200);
     }
 
     private BatteryEntry createUserBatteryConsumer(int userId) {
@@ -159,7 +167,9 @@
     @Test
     public void batteryEntryForAOD_containCorrectInfo() {
         final BatteryEntry entry = new BatteryEntry(RuntimeEnvironment.application,
-                BatteryConsumer.POWER_COMPONENT_AMBIENT_DISPLAY, 200, 100, 1000);
+                BatteryConsumer.POWER_COMPONENT_AMBIENT_DISPLAY,
+                /* devicePowerMah= */ 200,
+                /* usageDurationMs= */ 1000);
 
         assertThat(entry.mIconId).isEqualTo(R.drawable.ic_settings_aod);
         assertThat(entry.mName).isEqualTo("Ambient display");
@@ -168,7 +178,9 @@
     @Test
     public void batteryEntryForCustomComponent_containCorrectInfo() {
         final BatteryEntry entry = new BatteryEntry(RuntimeEnvironment.application,
-                BatteryConsumer.FIRST_CUSTOM_POWER_COMPONENT_ID + 42, "ABC", 200, 100);
+                BatteryConsumer.FIRST_CUSTOM_POWER_COMPONENT_ID + 42,
+                /* powerComponentName= */ "ABC",
+                /* devicePowerMah= */ 200);
 
         assertThat(entry.mIconId).isEqualTo(R.drawable.ic_power_system);
         assertThat(entry.mName).isEqualTo("ABC");
@@ -188,7 +200,9 @@
     @Test
     public void getTimeInForegroundMs_aggregateBatteryConsumer() {
         final BatteryEntry entry = new BatteryEntry(RuntimeEnvironment.application,
-                BatteryConsumer.POWER_COMPONENT_BLUETOOTH, 10, 20, 100);
+                BatteryConsumer.POWER_COMPONENT_BLUETOOTH,
+                /* devicePowerMah= */ 10,
+                /* usageDurationMs= */ 100);
 
         assertThat(entry.getTimeInForegroundMs()).isEqualTo(100L);
     }
@@ -207,7 +221,9 @@
     @Test
     public void getTimeInBackgroundMs_systemConsumer() {
         final BatteryEntry entry = new BatteryEntry(RuntimeEnvironment.application,
-                BatteryConsumer.POWER_COMPONENT_BLUETOOTH, 100, 200, 1000);
+                BatteryConsumer.POWER_COMPONENT_BLUETOOTH,
+                /* devicePowerMah= */ 100,
+                /* usageDurationMs= */ 1000);
 
         assertThat(entry.getTimeInBackgroundMs()).isEqualTo(0);
     }
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/BatteryUsageBreakdownControllerTest.java b/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/BatteryUsageBreakdownControllerTest.java
index d6b5a3e..0bc8693 100644
--- a/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/BatteryUsageBreakdownControllerTest.java
+++ b/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/BatteryUsageBreakdownControllerTest.java
@@ -211,7 +211,7 @@
                         SettingsEnums.ACTION_BATTERY_USAGE_SYSTEM_ITEM,
                         SettingsEnums.OPEN_BATTERY_USAGE,
                         /* package name */ "none",
-                        /* percentage of total */ 0);
+                        /* percentage of total */ 100);
     }
 
     @Test
@@ -227,7 +227,7 @@
                         SettingsEnums.ACTION_BATTERY_USAGE_APP_ITEM,
                         SettingsEnums.OPEN_BATTERY_USAGE,
                         /* package name */ "none",
-                        /* percentage of total */ 0);
+                        /* percentage of total */ 100);
     }
 
     @Test
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/DataProcessorTest.java b/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/DataProcessorTest.java
index ce6a917..5b69e7c 100644
--- a/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/DataProcessorTest.java
+++ b/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/DataProcessorTest.java
@@ -671,19 +671,19 @@
                         .get(DataProcessor.SELECTED_INDEX_ALL);
         assertBatteryDiffEntry(
                 resultDiffData.getAppDiffEntryList().get(0), currentUserId, /*uid=*/ 2L,
-                ConvertUtils.CONSUMER_TYPE_UID_BATTERY, /*consumePercentage=*/ 40.0,
+                ConvertUtils.CONSUMER_TYPE_UID_BATTERY, /*consumePercentage=*/ 50.0,
                 /*foregroundUsageConsumePower=*/ 14, /*foregroundServiceUsageConsumePower=*/ 9,
                 /*backgroundUsageConsumePower=*/ 9, /*cachedUsageConsumePower=*/ 8,
                 /*foregroundUsageTimeInMs=*/ 30, /*backgroundUsageTimeInMs=*/ 40);
         assertBatteryDiffEntry(
                 resultDiffData.getAppDiffEntryList().get(1), currentUserId, /*uid=*/ 4L,
-                ConvertUtils.CONSUMER_TYPE_UID_BATTERY, /*consumePercentage=*/ 40.0,
+                ConvertUtils.CONSUMER_TYPE_UID_BATTERY, /*consumePercentage=*/ 50.0,
                 /*foregroundUsageConsumePower=*/ 8, /*foregroundServiceUsageConsumePower=*/ 8,
                 /*backgroundUsageConsumePower=*/ 8, /*cachedUsageConsumePower=*/ 8,
                 /*foregroundUsageTimeInMs=*/ 5, /*backgroundUsageTimeInMs=*/ 5);
         assertBatteryDiffEntry(
                 resultDiffData.getSystemDiffEntryList().get(0), currentUserId, /*uid=*/ 3L,
-                ConvertUtils.CONSUMER_TYPE_SYSTEM_BATTERY, /*consumePercentage=*/ 20.0,
+                ConvertUtils.CONSUMER_TYPE_SYSTEM_BATTERY, /*consumePercentage=*/ 100.0,
                 /*foregroundUsageConsumePower=*/ 5, /*foregroundServiceUsageConsumePower=*/ 5,
                 /*backgroundUsageConsumePower=*/ 5, /*cachedUsageConsumePower=*/ 5,
                 /*foregroundUsageTimeInMs=*/ 50, /*backgroundUsageTimeInMs=*/ 60);
@@ -697,19 +697,19 @@
         resultDiffData = resultMap.get(1).get(DataProcessor.SELECTED_INDEX_ALL);
         assertBatteryDiffEntry(
                 resultDiffData.getAppDiffEntryList().get(0), currentUserId, /*uid=*/ 4L,
-                ConvertUtils.CONSUMER_TYPE_UID_BATTERY, /*consumePercentage=*/ 50.0,
+                ConvertUtils.CONSUMER_TYPE_UID_BATTERY, /*consumePercentage=*/ 66.66666666666666,
                 /*foregroundUsageConsumePower=*/ 8, /*foregroundServiceUsageConsumePower=*/ 8,
                 /*backgroundUsageConsumePower=*/ 8, /*cachedUsageConsumePower=*/ 8,
                 /*foregroundUsageTimeInMs=*/ 5, /*backgroundUsageTimeInMs=*/ 5);
         assertBatteryDiffEntry(
                 resultDiffData.getAppDiffEntryList().get(1), currentUserId, /*uid=*/ 2L,
-                ConvertUtils.CONSUMER_TYPE_UID_BATTERY, /*consumePercentage=*/ 25.0,
+                ConvertUtils.CONSUMER_TYPE_UID_BATTERY, /*consumePercentage=*/ 33.33333333333333,
                 /*foregroundUsageConsumePower=*/ 9, /*foregroundServiceUsageConsumePower=*/ 4,
                 /*backgroundUsageConsumePower=*/ 4, /*cachedUsageConsumePower=*/ 3,
                 /*foregroundUsageTimeInMs=*/ 15, /*backgroundUsageTimeInMs=*/ 15);
         assertBatteryDiffEntry(
                 resultDiffData.getSystemDiffEntryList().get(0), currentUserId, /*uid=*/ 3L,
-                ConvertUtils.CONSUMER_TYPE_SYSTEM_BATTERY, /*consumePercentage=*/ 25.0,
+                ConvertUtils.CONSUMER_TYPE_SYSTEM_BATTERY, /*consumePercentage=*/ 100.0,
                 /*foregroundUsageConsumePower=*/ 5, /*foregroundServiceUsageConsumePower=*/ 5,
                 /*backgroundUsageConsumePower=*/ 5, /*cachedUsageConsumePower=*/ 5,
                 /*foregroundUsageTimeInMs=*/ 50, /*backgroundUsageTimeInMs=*/ 60);
@@ -830,14 +830,14 @@
                         .get(DataProcessor.SELECTED_INDEX_ALL);
         assertBatteryDiffEntry(
                 resultDiffData.getAppDiffEntryList().get(0), currentUserId, /*uid=*/ 1L,
-                ConvertUtils.CONSUMER_TYPE_UID_BATTERY, /*consumePercentage=*/ 25.0,
+                ConvertUtils.CONSUMER_TYPE_UID_BATTERY, /*consumePercentage=*/ 100.0,
                 /*foregroundUsageConsumePower=*/ 5, /*foregroundServiceUsageConsumePower=*/ 5,
                 /*backgroundUsageConsumePower=*/ 5, /*cachedUsageConsumePower=*/ 5,
                 /*foregroundUsageTimeInMs=*/ 10, /*backgroundUsageTimeInMs=*/ 10);
         assertBatteryDiffEntry(
                 resultDiffData.getSystemDiffEntryList().get(0), BatteryUtils.UID_OTHER_USERS,
                 /*uid=*/ BatteryUtils.UID_OTHER_USERS, ConvertUtils.CONSUMER_TYPE_UID_BATTERY,
-                /*consumePercentage=*/ 75.0,
+                /*consumePercentage=*/ 100.0,
                 /*foregroundUsageConsumePower=*/ 0, /*foregroundServiceUsageConsumePower=*/ 0,
                 /*backgroundUsageConsumePower=*/ 0, /*cachedUsageConsumePower=*/ 0,
                 /*foregroundUsageTimeInMs=*/ 0, /*backgroundUsageTimeInMs=*/ 0);
@@ -1193,7 +1193,7 @@
 
         assertBatteryDiffEntry(
                 batteryDiffData.getAppDiffEntryList().get(0), 0, /*uid=*/ 2L,
-                ConvertUtils.CONSUMER_TYPE_UID_BATTERY, /*consumePercentage=*/ 25.0,
+                ConvertUtils.CONSUMER_TYPE_UID_BATTERY, /*consumePercentage=*/ 100.0,
                 /*foregroundUsageConsumePower=*/ 0.5, /*foregroundServiceUsageConsumePower=*/ 0,
                 /*backgroundUsageConsumePower=*/ 0, /*cachedUsageConsumePower=*/ 0,
                 /*foregroundUsageTimeInMs=*/ 20, /*backgroundUsageTimeInMs=*/ 20);
@@ -1205,7 +1205,7 @@
                 /*foregroundUsageTimeInMs=*/ 30, /*backgroundUsageTimeInMs=*/ 40);
         assertBatteryDiffEntry(
                 batteryDiffData.getSystemDiffEntryList().get(0), 0, /*uid=*/ 4L,
-                ConvertUtils.CONSUMER_TYPE_SYSTEM_BATTERY, /*consumePercentage=*/ 75.0,
+                ConvertUtils.CONSUMER_TYPE_SYSTEM_BATTERY, /*consumePercentage=*/ 100.0,
                 /*foregroundUsageConsumePower=*/ 0.9, /*foregroundServiceUsageConsumePower=*/ 0.2,
                 /*backgroundUsageConsumePower=*/ 0.3, /*cachedUsageConsumePower=*/ 0.1,
                 /*foregroundUsageTimeInMs=*/ 10, /*backgroundUsageTimeInMs=*/ 10);
diff --git a/tests/robotests/src/com/android/settings/testutils/shadow/ShadowPowerManager.java b/tests/robotests/src/com/android/settings/testutils/shadow/ShadowPowerManager.java
index 22c38be..9a4993e 100644
--- a/tests/robotests/src/com/android/settings/testutils/shadow/ShadowPowerManager.java
+++ b/tests/robotests/src/com/android/settings/testutils/shadow/ShadowPowerManager.java
@@ -35,13 +35,4 @@
         return 0;
     }
 
-    @Implementation
-    protected int getMinimumScreenBrightnessForVrSetting() {
-        return 0;
-    }
-
-    @Implementation
-    protected int getMaximumScreenBrightnessForVrSetting() {
-        return 0;
-    }
 }
diff --git a/tests/unit/src/com/android/settings/deviceinfo/simstatus/SlotSimStatusTest.java b/tests/unit/src/com/android/settings/deviceinfo/simstatus/SlotSimStatusTest.java
index 71f0faf..4c17d15 100644
--- a/tests/unit/src/com/android/settings/deviceinfo/simstatus/SlotSimStatusTest.java
+++ b/tests/unit/src/com/android/settings/deviceinfo/simstatus/SlotSimStatusTest.java
@@ -19,6 +19,7 @@
 import static org.junit.Assert.assertEquals;
 import static org.mockito.Mockito.doReturn;
 import static org.mockito.Mockito.spy;
+import static org.mockito.Mockito.verify;
 import static org.mockito.Mockito.when;
 
 import android.content.Context;
@@ -30,17 +31,22 @@
 import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
+import org.mockito.ArgumentCaptor;
+import org.mockito.Captor;
 import org.mockito.Mock;
 import org.mockito.MockitoAnnotations;
 
-import java.util.concurrent.ExecutorService;
-import java.util.concurrent.Executors;
+import java.util.concurrent.Executor;
 
 @RunWith(AndroidJUnit4.class)
 public class SlotSimStatusTest {
 
     @Mock
     private TelephonyManager mTelephonyManager;
+    @Mock
+    private Executor mExecutor;
+    @Captor
+    private ArgumentCaptor<Runnable> mRunnableCaptor;
 
     private Context mContext;
 
@@ -65,8 +71,10 @@
     public void size_returnNumberOfPhone_whenQueryInBackgroundThread() {
         doReturn(2).when(mTelephonyManager).getPhoneCount();
 
-        ExecutorService executor = Executors.newSingleThreadExecutor();
-        SlotSimStatus target = new SlotSimStatus(mContext, executor);
+        SlotSimStatus target = new SlotSimStatus(mContext, mExecutor);
+
+        verify(mExecutor).execute(mRunnableCaptor.capture());
+        mRunnableCaptor.getValue().run();
 
         assertEquals(new Integer(target.size()), new Integer(2));
     }