Merge "Launch Google Play system update page with new task flag." into sc-v2-dev
diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index 674ab61..43af6df 100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -1477,6 +1477,23 @@
         </activity>
 
         <activity
+            android:name="Settings$WifiScanningSettingsActivity"
+            android:label="@string/location_scanning_wifi_always_scanning_title"
+            android:icon="@drawable/ic_homepage_location"
+            android:exported="true"
+            android:permission="android.permission.CHANGE_WIFI_STATE"
+            android:configChanges="orientation|keyboardHidden|screenSize">
+            <intent-filter android:priority="1">
+                <action android:name="android.settings.WIFI_SCANNING_SETTINGS" />
+                <category android:name="android.intent.category.DEFAULT" />
+            </intent-filter>
+            <meta-data android:name="com.android.settings.FRAGMENT_CLASS"
+                       android:value="com.android.settings.location.WifiScanningFragment" />
+            <meta-data android:name="com.android.settings.PRIMARY_PROFILE_CONTROLLED"
+                       android:value="true" />
+        </activity>
+
+        <activity
             android:name=".Settings$SecurityDashboardActivity"
             android:label="@string/security_settings_title"
             android:icon="@drawable/ic_homepage_security"
diff --git a/res/values-night/themes_suw.xml b/res/values-night/themes_suw.xml
index ee0dd67..dea7b1a 100644
--- a/res/values-night/themes_suw.xml
+++ b/res/values-night/themes_suw.xml
@@ -17,9 +17,6 @@
 
 <!-- SUW related themes -->
 <resources>
-    <!-- This theme was applied to Settings pages which are running under SUW. -->
-    <style name="SubSettings.SetupWizard" parent="SudThemeGlifV3" />
-
     <!-- DayNight themes -->
     <style name="GlifTheme.DayNight" parent="GlifTheme" />
     <style name="GlifV2Theme.DayNight" parent="GlifV2Theme" />
diff --git a/res/values/colors.xml b/res/values/colors.xml
index 2114b96..9de420e 100644
--- a/res/values/colors.xml
+++ b/res/values/colors.xml
@@ -24,21 +24,10 @@
 
     <color name="divider_color">#20ffffff</color>
     <color name="title_color">@android:color/holo_blue_light</color>
-    <color name="setup_lock_pattern_view_regular_color_light">
-        @color/lock_pattern_view_regular_color
-    </color>
-    <color name="setup_lock_pattern_view_success_color_dark">#ff84ffff</color>
-    <color name="setup_lock_pattern_view_success_color_light">@color/sud_color_accent_light</color>
-    <color name="setup_lock_pattern_view_error_color_dark">#fff44336</color>
     <color name="setup_wizard_wifi_color_dark">#89ffffff</color>
     <color name="setup_wizard_wifi_color_light">#89000000</color>
 
     <color name="lock_pattern_background">#00000000</color>
-    <color name="lock_pattern_view_regular_color">#ff37474f</color>
-
-    <color name="lock_pattern_view_regular_color_dark">#ffffff</color>
-
-    <color name="unlock_pattern_view_regular_color">@android:color/white</color>
 
     <color name="fingerprint_title_area_bg">?android:attr/colorAccent</color>
     <color name="fingerprint_title_color">#ffffffff</color>
diff --git a/res/values/styles.xml b/res/values/styles.xml
index c8f33f3..eaebd85 100644
--- a/res/values/styles.xml
+++ b/res/values/styles.xml
@@ -454,28 +454,10 @@
     </style>
 
     <style name="LockPatternStyle">
-        <item name="*android:regularColor">@color/lock_pattern_view_regular_color</item>
-        <item name="*android:successColor">@color/lock_pattern_view_success_color</item>
+        <item name="*android:regularColor">?android:attr/colorAccent</item>
+        <item name="*android:successColor">?android:attr/textColorPrimary</item>
         <item name="*android:errorColor">?android:attr/colorError</item>
-    </style>
-
-    <style name="LockPatternStyle.Dark">
-        <item name="*android:regularColor">@color/lock_pattern_view_regular_color_dark</item>
-        <item name="*android:successColor">@color/lock_pattern_view_regular_color_dark</item>
-    </style>
-
-    <style name="LockPatternStyle.Dark.Work">
-        <item name="*android:regularColor">@*android:color/white</item>
-    </style>
-
-    <style name="LockPatternStyle.Unlock">
-        <item name="*android:regularColor">@color/unlock_pattern_view_regular_color</item>
-        <item name="*android:successColor">@color/unlock_pattern_view_success_color</item>
-    </style>
-
-    <style name="LockPatternStyle.Setup">
-        <item name="*android:regularColor">@color/setup_lock_pattern_view_regular_color_light</item>
-        <item name="*android:successColor">@color/setup_lock_pattern_view_success_color_light</item>
+        <item name="*android:dotColor">?android:attr/textColorSecondary</item>
     </style>
 
     <style name="device_info_dialog_label">
diff --git a/res/values/themes.xml b/res/values/themes.xml
index f937a3b..7c5c111 100644
--- a/res/values/themes.xml
+++ b/res/values/themes.xml
@@ -58,7 +58,7 @@
         <!-- For AndroidX AlertDialog -->
         <item name="alertDialogTheme">@style/Theme.AlertDialog</item>
 
-        <item name="*android:lockPatternStyle">@style/LockPatternStyle.Setup</item>
+        <item name="*android:lockPatternStyle">@style/LockPatternStyle</item>
 
         <!-- For AppBarLayout -->
         <item name="colorPrimary">@*android:color/primary_device_default_settings_light</item>
@@ -123,7 +123,7 @@
         <item name="android:windowDrawsSystemBarBackgrounds">false</item>
         <item name="android:background">@android:color/black</item>
 
-        <item name="*android:lockPatternStyle">@style/LockPatternStyle.Unlock</item>
+        <item name="*android:lockPatternStyle">@style/LockPatternStyle</item>
     </style>
 
     <style name="ThemeOverlay.AlertDialog" parent="@android:style/ThemeOverlay.Material.Dialog.Alert">
@@ -164,13 +164,13 @@
         <item name="confirmDeviceCredentialsSideMargin">32dp</item>
         <item name="confirmDeviceCredentialsTopMargin">32dp</item>
 
-        <item name="*android:lockPatternStyle">@style/LockPatternStyle.Dark</item>
+        <item name="*android:lockPatternStyle">@style/LockPatternStyle</item>
 
         <item name="android:windowAnimationStyle">@style/ConfirmDeviceCredentialsAnimationStyle</item>
     </style>
 
     <style name="Theme.ConfirmDeviceCredentialsWork" parent="Theme.ConfirmDeviceCredentialsDark">
-        <item name="*android:lockPatternStyle">@style/LockPatternStyle.Dark.Work</item>
+        <item name="*android:lockPatternStyle">@style/LockPatternStyle</item>
         <item name="android:colorAccent">@*android:color/white</item>
     </style>
 
diff --git a/res/values/themes_suw.xml b/res/values/themes_suw.xml
index 6fd9b75..129769f 100644
--- a/res/values/themes_suw.xml
+++ b/res/values/themes_suw.xml
@@ -33,7 +33,7 @@
         <item name="preferenceTheme">@style/PreferenceTheme.SetupWizard</item>
 
         <!-- LockPatternView colors -->
-        <item name="*android:lockPatternStyle">@style/LockPatternStyle.Setup</item>
+        <item name="*android:lockPatternStyle">@style/LockPatternStyle</item>
     </style>
 
     <style name="GlifTheme.Light" parent="SudThemeGlif.Light">
@@ -51,7 +51,7 @@
         <item name="preferenceBackgroundColor">?android:attr/colorBackground</item>
         <item name="preferenceTheme">@style/PreferenceTheme.SetupWizard</item>
 
-        <item name="*android:lockPatternStyle">@style/LockPatternStyle.Setup</item>
+        <item name="*android:lockPatternStyle">@style/LockPatternStyle</item>
     </style>
 
     <style name="GlifV2Theme" parent="SudThemeGlifV2.DayNight">
@@ -70,7 +70,7 @@
         <item name="preferenceTheme">@style/PreferenceTheme.SetupWizard</item>
 
         <!-- LockPatternView colors -->
-        <item name="*android:lockPatternStyle">@style/LockPatternStyle.Setup</item>
+        <item name="*android:lockPatternStyle">@style/LockPatternStyle</item>
     </style>
 
     <style name="GlifV2Theme.Light" parent="SudThemeGlifV2.Light">
@@ -88,7 +88,7 @@
         <item name="preferenceBackgroundColor">?android:attr/colorBackground</item>
         <item name="preferenceTheme">@style/PreferenceTheme.SetupWizard</item>
 
-        <item name="*android:lockPatternStyle">@style/LockPatternStyle.Setup</item>
+        <item name="*android:lockPatternStyle">@style/LockPatternStyle</item>
     </style>
 
     <style name="GlifV3Theme" parent="SudThemeGlifV3.DayNight">
@@ -107,7 +107,7 @@
         <item name="preferenceTheme">@style/PreferenceTheme.SetupWizard</item>
 
         <!-- LockPatternView colors -->
-        <item name="*android:lockPatternStyle">@style/LockPatternStyle.Setup</item>
+        <item name="*android:lockPatternStyle">@style/LockPatternStyle</item>
     </style>
 
     <style name="GlifV3Theme.Footer" parent="@style/SudThemeGlifV3.DayNight">
@@ -130,7 +130,7 @@
         <item name="preferenceBackgroundColor">?android:attr/colorBackground</item>
         <item name="preferenceTheme">@style/PreferenceTheme.SetupWizard</item>
 
-        <item name="*android:lockPatternStyle">@style/LockPatternStyle.Setup</item>
+        <item name="*android:lockPatternStyle">@style/LockPatternStyle</item>
     </style>
 
     <style name="GlifV3Theme.Light.NoActionBar" parent="GlifV3Theme.Light">
@@ -224,9 +224,6 @@
         <item name="android:fontFamily">@*android:string/config_bodyFontFamily</item>
     </style>
 
-    <!-- This theme was applied to Settings pages which are running under SUW. -->
-    <style name="SubSettings.SetupWizard" parent="SudThemeGlifV3.Light" />
-
     <!-- This theme was applied to Settings pages which are running under SUW with DynamicColor. -->
     <style name="SudDynamicColorThemeSettings.SetupWizard" parent="SudDynamicColorThemeGlifV3.Light">
         <item name="android:textAppearanceListItem">@style/TextAppearance.PreferenceTitle.SettingsLib</item>
@@ -256,4 +253,4 @@
     <style name="GlifV3Theme.DayNight.Transparent" parent="GlifV3Theme.Light.Transparent" />
     <style name="SetupWizardTheme.DayNight.Transparent" parent="SetupWizardTheme.Light.Transparent" />
     <style name="SuwAlertDialogThemeCompat.DayNight" parent="SuwAlertDialogThemeCompat.Light" />
-</resources>
\ No newline at end of file
+</resources>
diff --git a/res/xml/accessibility_settings_for_setup_wizard.xml b/res/xml/accessibility_settings_for_setup_wizard.xml
index 047a2bd..dc359f4 100644
--- a/res/xml/accessibility_settings_for_setup_wizard.xml
+++ b/res/xml/accessibility_settings_for_setup_wizard.xml
@@ -35,12 +35,11 @@
         settings:controller="com.android.settings.accessibility.ScreenSizePreferenceController" />
 
     <Preference
-        android:fragment="com.android.settings.accessibility.MagnificationPreferenceFragment"
+        android:fragment="com.android.settings.accessibility.ToggleScreenMagnificationPreferenceFragmentForSetupWizard"
         android:key="screen_magnification_preference"
         android:icon="@drawable/ic_accessibility_magnification"
         android:summary="@string/accessibility_preference_magnification_summary"
-        android:title="@string/accessibility_screen_magnification_title"
-        settings:controller="com.android.settings.accessibility.MagnificationPreferenceController"/>
+        android:title="@string/accessibility_screen_magnification_title" />
 
     <com.android.settingslib.RestrictedPreference
         android:fragment="com.android.settings.accessibility.ToggleSelectToSpeakPreferenceFragmentForSetupWizard"
diff --git a/src/com/android/settings/Settings.java b/src/com/android/settings/Settings.java
index a892b97..231a149 100644
--- a/src/com/android/settings/Settings.java
+++ b/src/com/android/settings/Settings.java
@@ -163,6 +163,7 @@
     public static class AppUsageAccessSettingsActivity extends SettingsActivity { /* empty */ }
     public static class LocationSettingsActivity extends SettingsActivity { /* empty */ }
     public static class ScanningSettingsActivity extends SettingsActivity { /* empty */ }
+    public static class WifiScanningSettingsActivity extends SettingsActivity { /* empty */ }
     public static class PrivacyDashboardActivity extends SettingsActivity { /* empty */ }
     public static class PrivacySettingsActivity extends SettingsActivity { /* empty */ }
     public static class FactoryResetActivity extends SettingsActivity {
diff --git a/src/com/android/settings/accessibility/ToggleScreenMagnificationPreferenceFragmentForSetupWizard.java b/src/com/android/settings/accessibility/ToggleScreenMagnificationPreferenceFragmentForSetupWizard.java
index ce8c6bf..799508b 100644
--- a/src/com/android/settings/accessibility/ToggleScreenMagnificationPreferenceFragmentForSetupWizard.java
+++ b/src/com/android/settings/accessibility/ToggleScreenMagnificationPreferenceFragmentForSetupWizard.java
@@ -39,7 +39,8 @@
         final GlifPreferenceLayout layout = (GlifPreferenceLayout) view;
         final String title = getContext().getString(
                 R.string.accessibility_screen_magnification_title);
-        final String description = getContext().getString(R.string.accelerometer_title);
+        final String description = getContext().getString(
+                R.string.accessibility_preference_magnification_summary);
         final Drawable icon = getContext().getDrawable(R.drawable.ic_accessibility_visibility);
         AccessibilitySetupWizardUtils.updateGlifPreferenceLayout(getContext(), layout, title,
                 description, icon);
diff --git a/src/com/android/settings/accessibility/ToggleScreenReaderPreferenceFragmentForSetupWizard.java b/src/com/android/settings/accessibility/ToggleScreenReaderPreferenceFragmentForSetupWizard.java
index 316ce52..7adddf9 100644
--- a/src/com/android/settings/accessibility/ToggleScreenReaderPreferenceFragmentForSetupWizard.java
+++ b/src/com/android/settings/accessibility/ToggleScreenReaderPreferenceFragmentForSetupWizard.java
@@ -40,8 +40,7 @@
 
         final GlifPreferenceLayout layout = (GlifPreferenceLayout) view;
         final String title = getArguments().getString(AccessibilitySettings.EXTRA_TITLE);
-        final String description = getContext().getString(
-                R.string.accessibility_screen_magnification_title);
+        final String description = getContext().getString(R.string.talkback_summary);
         final Drawable icon = getContext().getDrawable(R.drawable.ic_accessibility_visibility);
         AccessibilitySetupWizardUtils.updateGlifPreferenceLayout(getContext(), layout, title,
                 description, icon);
diff --git a/src/com/android/settings/core/SettingsBaseActivity.java b/src/com/android/settings/core/SettingsBaseActivity.java
index ceb502a..304898f 100644
--- a/src/com/android/settings/core/SettingsBaseActivity.java
+++ b/src/com/android/settings/core/SettingsBaseActivity.java
@@ -36,6 +36,7 @@
 import androidx.fragment.app.FragmentActivity;
 
 import com.android.settings.R;
+import com.android.settings.SetupWizardUtils;
 import com.android.settings.SubSettings;
 import com.android.settings.core.CategoryMixin.CategoryHandler;
 import com.android.settingslib.core.lifecycle.HideNonSystemOverlayMixin;
@@ -91,17 +92,14 @@
         // Apply SetupWizard light theme during setup flow. This is for SubSettings pages.
         final boolean isAnySetupWizard = WizardManagerHelper.isAnySetupWizard(getIntent());
         if (isAnySetupWizard && this instanceof SubSettings) {
-            int appliedTheme;
             if (ThemeHelper.trySetDynamicColor(this)) {
-                appliedTheme = ThemeHelper.isSetupWizardDayNightEnabled(this)
+                final int appliedTheme = ThemeHelper.isSetupWizardDayNightEnabled(this)
                         ? R.style.SudDynamicColorThemeSettings_SetupWizard_DayNight
                         : R.style.SudDynamicColorThemeSettings_SetupWizard;
+                setTheme(appliedTheme);
             } else {
-                appliedTheme = ThemeHelper.isSetupWizardDayNightEnabled(this)
-                        ? R.style.SubSettings_SetupWizard
-                        : R.style.SudThemeGlifV3_Light;
+                setTheme(SetupWizardUtils.getTheme(this, getIntent()));
             }
-            setTheme(appliedTheme);
         }
 
         if (isToolbarEnabled() && !isAnySetupWizard) {
diff --git a/src/com/android/settings/core/gateway/SettingsGateway.java b/src/com/android/settings/core/gateway/SettingsGateway.java
index 458aadb..1adf199 100644
--- a/src/com/android/settings/core/gateway/SettingsGateway.java
+++ b/src/com/android/settings/core/gateway/SettingsGateway.java
@@ -112,6 +112,7 @@
 import com.android.settings.localepicker.LocaleListEditor;
 import com.android.settings.location.LocationServices;
 import com.android.settings.location.LocationSettings;
+import com.android.settings.location.WifiScanningFragment;
 import com.android.settings.network.MobileNetworkListFragment;
 import com.android.settings.network.NetworkDashboardFragment;
 import com.android.settings.network.NetworkProviderSettings;
@@ -201,6 +202,7 @@
             ProcessStatsUi.class.getName(),
             NotificationStation.class.getName(),
             LocationSettings.class.getName(),
+            WifiScanningFragment.class.getName(),
             PrivacyDashboardFragment.class.getName(),
             LocationServices.class.getName(),
             SecuritySettings.class.getName(),
diff --git a/src/com/android/settings/deviceinfo/legal/LegalPreferenceController.java b/src/com/android/settings/deviceinfo/legal/LegalPreferenceController.java
index 9465fff..fe45923 100644
--- a/src/com/android/settings/deviceinfo/legal/LegalPreferenceController.java
+++ b/src/com/android/settings/deviceinfo/legal/LegalPreferenceController.java
@@ -87,9 +87,9 @@
         }
 
         // Replace the intent with this specific activity
-        mPreference.setIntent(new Intent().setClassName(
-                resolveInfo.activityInfo.packageName,
-                resolveInfo.activityInfo.name));
+        mPreference.setIntent(new Intent()
+                .setClassName(resolveInfo.activityInfo.packageName, resolveInfo.activityInfo.name)
+                .addFlags(Intent.FLAG_ACTIVITY_NEW_TASK));
 
         mPreference.setTitle(resolveInfo.loadLabel(mPackageManager));
     }
diff --git a/src/com/android/settings/fuelgauge/BatteryBackupHelper.java b/src/com/android/settings/fuelgauge/BatteryBackupHelper.java
index 24080fe..af16edb 100644
--- a/src/com/android/settings/fuelgauge/BatteryBackupHelper.java
+++ b/src/com/android/settings/fuelgauge/BatteryBackupHelper.java
@@ -263,9 +263,7 @@
     private boolean isSystemOrDefaultApp(String packageName) {
         final PowerAllowlistBackend powerAllowlistBackend = getPowerAllowlistBackend();
         return powerAllowlistBackend.isSysAllowlisted(packageName)
-                || powerAllowlistBackend.isDefaultActiveApp(packageName)
-                // Optimize mode only for app which is in the allow list not idle app.
-                || powerAllowlistBackend.isAllowlistedExceptIdle(packageName);
+                || powerAllowlistBackend.isDefaultActiveApp(packageName);
     }
 
     private List<ApplicationInfo> getInstalledApplications() {
diff --git a/src/com/android/settings/network/EraseEuiccDataDialogFragment.java b/src/com/android/settings/network/EraseEuiccDataDialogFragment.java
index 819d3b1..2c3847c 100644
--- a/src/com/android/settings/network/EraseEuiccDataDialogFragment.java
+++ b/src/com/android/settings/network/EraseEuiccDataDialogFragment.java
@@ -19,6 +19,7 @@
 import android.app.AlertDialog;
 import android.app.Dialog;
 import android.app.settings.SettingsEnums;
+import android.content.Context;
 import android.content.DialogInterface;
 import android.os.AsyncTask;
 import android.os.Bundle;
@@ -75,23 +76,24 @@
         }
 
         if (which == DialogInterface.BUTTON_POSITIVE) {
-            if (ConfirmationSimDeletionPredicate.getSingleton().test(getContext())) {
+            Context context = getContext();
+            if (ConfirmationSimDeletionPredicate.getSingleton().test(context)) {
                 // Create a "verify it's you" verification over keyguard
                 // when "erase" button been pressed.
                 // This might protect from erasing by some automation process.
-                WifiDppUtils.showLockScreen(getContext(), () -> runAsyncWipe());
+                WifiDppUtils.showLockScreen(context, () -> runAsyncWipe(context));
             } else {
-                runAsyncWipe();
+                runAsyncWipe(context);
             }
         }
     }
 
-    private void runAsyncWipe() {
+    private void runAsyncWipe(Context context) {
         AsyncTask.execute(new Runnable() {
             @Override
             public void run() {
                 RecoverySystem.wipeEuiccData(
-                        getContext(), PACKAGE_NAME_EUICC_DATA_MANAGEMENT_CALLBACK);
+                        context, PACKAGE_NAME_EUICC_DATA_MANAGEMENT_CALLBACK);
             }
         });
     }
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/BatteryBackupHelperTest.java b/tests/robotests/src/com/android/settings/fuelgauge/BatteryBackupHelperTest.java
index aa1caf9..5ac8553 100644
--- a/tests/robotests/src/com/android/settings/fuelgauge/BatteryBackupHelperTest.java
+++ b/tests/robotests/src/com/android/settings/fuelgauge/BatteryBackupHelperTest.java
@@ -114,9 +114,6 @@
         mockUid(1001 /*fake uid*/, PACKAGE_NAME1);
         mockUid(1002 /*fake uid*/, PACKAGE_NAME2);
         mockUid(BatteryUtils.UID_NULL, PACKAGE_NAME3);
-        doReturn(false).when(mPowerAllowlistBackend).isDefaultActiveApp(anyString());
-        doReturn(false).when(mPowerAllowlistBackend).isDefaultActiveApp(anyString());
-        doReturn(false).when(mPowerAllowlistBackend).isAllowlistedExceptIdle(anyString());
     }
 
     @After
@@ -221,6 +218,7 @@
         createTestingData(PACKAGE_NAME1, PACKAGE_NAME2, PACKAGE_NAME3);
         // Sets "com.android.testing.1" as system app.
         doReturn(true).when(mPowerAllowlistBackend).isSysAllowlisted(PACKAGE_NAME1);
+        doReturn(false).when(mPowerAllowlistBackend).isDefaultActiveApp(anyString());
 
         mBatteryBackupHelper.backupOptimizationMode(mBackupDataOutput, allowlistedApps);
 
@@ -236,21 +234,7 @@
         createTestingData(PACKAGE_NAME1, PACKAGE_NAME2, PACKAGE_NAME3);
         // Sets "com.android.testing.1" as device default app.
         doReturn(true).when(mPowerAllowlistBackend).isDefaultActiveApp(PACKAGE_NAME1);
-
-        mBatteryBackupHelper.backupOptimizationMode(mBackupDataOutput, allowlistedApps);
-
-        // "com.android.testing.2" for RESTRICTED mode.
-        final String expectedResult = PACKAGE_NAME2 + ":1,";
-        verifyBackupData(expectedResult);
-    }
-
-    @Test
-    public void backupOptimizationMode_backupOptimizationAndIgnoreAppInTheAllowlist()
-            throws Exception {
-        final List<String> allowlistedApps = Arrays.asList(PACKAGE_NAME1);
-        createTestingData(PACKAGE_NAME1, PACKAGE_NAME2, PACKAGE_NAME3);
-        // Sets "com.android.testing.1" in the allowlist.
-        doReturn(true).when(mPowerAllowlistBackend).isAllowlistedExceptIdle(PACKAGE_NAME1);
+        doReturn(false).when(mPowerAllowlistBackend).isSysAllowlisted(anyString());
 
         mBatteryBackupHelper.backupOptimizationMode(mBackupDataOutput, allowlistedApps);