OSDN Git Service

Fix dark theme for screen lock settings
authorMaurice Lam <yukl@google.com>
Wed, 27 Mar 2019 02:20:39 +0000 (19:20 -0700)
committerMaurice Lam <yukl@google.com>
Thu, 28 Mar 2019 21:26:48 +0000 (14:26 -0700)
Test: atest [...]/SetupWizardUtilsTest.java
Bug: 36529801
Change-Id: I81581b4f73754ba6b0754c80a8f962e8f7ed6949

src/com/android/settings/SetupWizardUtils.java
tests/robotests/src/com/android/settings/SetupWizardUtilsTest.java

index 166e065..7a2fe80 100644 (file)
@@ -30,40 +30,56 @@ public class SetupWizardUtils {
         if (theme == null) {
             theme = SetupWizardProperties.theme().orElse("");
         }
+        // TODO(yukl): Move to ThemeResolver and add any additional required attributes in
+        // onApplyThemeResource using Theme overlays
         if (theme != null) {
-            switch (theme) {
-                case ThemeHelper.THEME_GLIF_V3_LIGHT:
-                    return R.style.GlifV3Theme_Light;
-                case ThemeHelper.THEME_GLIF_V3:
-                    return R.style.GlifV3Theme;
-                case ThemeHelper.THEME_GLIF_V2_LIGHT:
-                    return R.style.GlifV2Theme_Light;
-                case ThemeHelper.THEME_GLIF_V2:
-                    return R.style.GlifV2Theme;
-                case ThemeHelper.THEME_GLIF_LIGHT:
-                    return R.style.GlifTheme_Light;
-                case ThemeHelper.THEME_GLIF:
-                    return R.style.GlifTheme;
+            if (WizardManagerHelper.isAnySetupWizard(intent)) {
+                switch (theme) {
+                    case ThemeHelper.THEME_GLIF_V3_LIGHT:
+                        return R.style.GlifV3Theme_Light;
+                    case ThemeHelper.THEME_GLIF_V3:
+                        return R.style.GlifV3Theme;
+                    case ThemeHelper.THEME_GLIF_V2_LIGHT:
+                        return R.style.GlifV2Theme_Light;
+                    case ThemeHelper.THEME_GLIF_V2:
+                        return R.style.GlifV2Theme;
+                    case ThemeHelper.THEME_GLIF_LIGHT:
+                        return R.style.GlifTheme_Light;
+                    case ThemeHelper.THEME_GLIF:
+                        return R.style.GlifTheme;
+                }
+            } else {
+                switch (theme) {
+                    case ThemeHelper.THEME_GLIF_V3_LIGHT:
+                    case ThemeHelper.THEME_GLIF_V3:
+                        return R.style.GlifV3Theme;
+                    case ThemeHelper.THEME_GLIF_V2_LIGHT:
+                    case ThemeHelper.THEME_GLIF_V2:
+                        return R.style.GlifV2Theme;
+                    case ThemeHelper.THEME_GLIF_LIGHT:
+                    case ThemeHelper.THEME_GLIF:
+                        return R.style.GlifTheme;
+                }
             }
         }
-        return R.style.GlifTheme_Light;
+        return R.style.GlifTheme;
     }
 
     public static int getTransparentTheme(Intent intent) {
         final int suwTheme = getTheme(intent);
-        int wifiDialogTheme = R.style.GlifV2Theme_Light_Transparent;
+        int transparentTheme = R.style.GlifV2Theme_Light_Transparent;
         if (suwTheme == R.style.GlifV3Theme) {
-            wifiDialogTheme = R.style.GlifV3Theme_Transparent;
+            transparentTheme = R.style.GlifV3Theme_Transparent;
         } else if (suwTheme == R.style.GlifV3Theme_Light) {
-            wifiDialogTheme = R.style.GlifV3Theme_Light_Transparent;
+            transparentTheme = R.style.GlifV3Theme_Light_Transparent;
         } else if (suwTheme == R.style.GlifV2Theme) {
-            wifiDialogTheme = R.style.GlifV2Theme_Transparent;
+            transparentTheme = R.style.GlifV2Theme_Transparent;
         } else if (suwTheme == R.style.GlifTheme_Light) {
-            wifiDialogTheme = R.style.SetupWizardTheme_Light_Transparent;
+            transparentTheme = R.style.SetupWizardTheme_Light_Transparent;
         } else if (suwTheme == R.style.GlifTheme) {
-            wifiDialogTheme = R.style.SetupWizardTheme_Transparent;
+            transparentTheme = R.style.SetupWizardTheme_Transparent;
         }
-        return wifiDialogTheme;
+        return transparentTheme;
     }
 
     public static void copySetupExtras(Intent fromIntent, Intent toIntent) {
index 4fe8fa8..b965d78 100644 (file)
@@ -31,6 +31,9 @@ import org.robolectric.RobolectricTestRunner;
 @RunWith(RobolectricTestRunner.class)
 public class SetupWizardUtilsTest {
 
+    private static final String EXTRA_IS_SETUP_FLOW = "isSetupFlow";
+    private static final String EXTRA_IS_FIRST_RUN = "firstRun";
+
     @Test
     public void testCopySetupExtras() {
         Intent fromIntent = new Intent();
@@ -48,7 +51,7 @@ public class SetupWizardUtilsTest {
     @Test
     public void testGetTheme_withIntentExtra_shouldReturnExtraTheme() {
         SetupWizardProperties.theme(ThemeHelper.THEME_GLIF);
-        Intent intent = new Intent();
+        Intent intent = createSetupWizardIntent();
         intent.putExtra(WizardManagerHelper.EXTRA_THEME, ThemeHelper.THEME_GLIF_V2);
 
         assertThat(SetupWizardUtils.getTheme(intent)).isEqualTo(R.style.GlifV2Theme);
@@ -57,7 +60,7 @@ public class SetupWizardUtilsTest {
     @Test
     public void testGetTheme_withEmptyIntent_shouldReturnSystemProperty() {
         SetupWizardProperties.theme(ThemeHelper.THEME_GLIF_V2_LIGHT);
-        Intent intent = new Intent();
+        Intent intent = createSetupWizardIntent();
 
         assertThat(SetupWizardUtils.getTheme(intent)).isEqualTo(R.style.GlifV2Theme_Light);
     }
@@ -65,10 +68,26 @@ public class SetupWizardUtilsTest {
     @Test
     public void testGetTheme_glifV3Light_shouldReturnThemeResource() {
         SetupWizardProperties.theme(ThemeHelper.THEME_GLIF_V3_LIGHT);
-        Intent intent = new Intent();
+        Intent intent = createSetupWizardIntent();
 
         assertThat(SetupWizardUtils.getTheme(intent)).isEqualTo(R.style.GlifV3Theme_Light);
         assertThat(SetupWizardUtils.getTransparentTheme(intent))
                 .isEqualTo(R.style.GlifV3Theme_Light_Transparent);
     }
+
+    @Test
+    public void testGetTheme_nonSuw_shouldReturnDayNightTheme() {
+        SetupWizardProperties.theme(ThemeHelper.THEME_GLIF_V3_LIGHT);
+        Intent intent = new Intent();
+
+        assertThat(SetupWizardUtils.getTheme(intent)).isEqualTo(R.style.GlifV3Theme);
+        assertThat(SetupWizardUtils.getTransparentTheme(intent))
+                .isEqualTo(R.style.GlifV3Theme_Transparent);
+    }
+
+    private Intent createSetupWizardIntent() {
+        return new Intent()
+                .putExtra(EXTRA_IS_SETUP_FLOW, true)
+                .putExtra(EXTRA_IS_FIRST_RUN, true);
+    }
 }