diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index 97e701ad4de..82088b2bd0d 100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -103,7 +103,7 @@
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/res/values/themes_suw.xml b/res/values/themes_suw.xml
index 3c171a1316b..98ab28d04e7 100644
--- a/res/values/themes_suw.xml
+++ b/res/values/themes_suw.xml
@@ -211,4 +211,13 @@
- @*android:color/accent_device_default_light
- @*android:dimen/config_dialogCornerRadius
-
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/src/com/android/settings/EncryptionInterstitial.java b/src/com/android/settings/EncryptionInterstitial.java
index c65cda7bdaa..4ab197d95de 100644
--- a/src/com/android/settings/EncryptionInterstitial.java
+++ b/src/com/android/settings/EncryptionInterstitial.java
@@ -62,8 +62,8 @@ public class EncryptionInterstitial extends SettingsActivity {
@Override
protected void onApplyThemeResource(Resources.Theme theme, int resid, boolean first) {
- resid = SetupWizardUtils.getTheme(getIntent());
- super.onApplyThemeResource(theme, resid, first);
+ final int new_resid = SetupWizardUtils.getTheme(this, getIntent());
+ super.onApplyThemeResource(theme, new_resid, first);
}
@Override
diff --git a/src/com/android/settings/SetupWizardUtils.java b/src/com/android/settings/SetupWizardUtils.java
index bce6f3f2919..e0292ef5b9c 100644
--- a/src/com/android/settings/SetupWizardUtils.java
+++ b/src/com/android/settings/SetupWizardUtils.java
@@ -19,6 +19,7 @@ package com.android.settings;
import static com.google.android.setupcompat.util.WizardManagerHelper.EXTRA_IS_FIRST_RUN;
import static com.google.android.setupcompat.util.WizardManagerHelper.EXTRA_IS_SETUP_FLOW;
+import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.sysprop.SetupWizardProperties;
@@ -39,25 +40,39 @@ public class SetupWizardUtils {
return theme;
}
- public static int getTheme(Intent intent) {
+ public static int getTheme(Context context, Intent intent) {
String theme = getThemeString(intent);
// TODO(yukl): Move to ThemeResolver and add any additional required attributes in
// onApplyThemeResource using Theme overlays
if (theme != null) {
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;
+ if (ThemeHelper.isSetupWizardDayNightEnabled(context)) {
+ switch (theme) {
+ case ThemeHelper.THEME_GLIF_V3_LIGHT:
+ case ThemeHelper.THEME_GLIF_V3:
+ return R.style.GlifV3Theme_DayNight;
+ case ThemeHelper.THEME_GLIF_V2_LIGHT:
+ case ThemeHelper.THEME_GLIF_V2:
+ return R.style.GlifV2Theme_DayNight;
+ case ThemeHelper.THEME_GLIF_LIGHT:
+ case ThemeHelper.THEME_GLIF:
+ return R.style.GlifTheme_DayNight;
+ }
+ } else {
+ 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) {
@@ -76,17 +91,30 @@ public class SetupWizardUtils {
return R.style.GlifTheme;
}
- public static int getTransparentTheme(Intent intent) {
- final int suwTheme = getTheme(intent);
- int transparentTheme = R.style.GlifV2Theme_Light_Transparent;
- if (suwTheme == R.style.GlifV3Theme) {
- transparentTheme = R.style.GlifV3Theme_Transparent;
+ public static int getTransparentTheme(Context context, Intent intent) {
+ int transparentTheme;
+ final int suwTheme = getTheme(context, intent);
+ if (ThemeHelper.isSetupWizardDayNightEnabled(context)) {
+ transparentTheme = R.style.GlifV2Theme_DayNight_Transparent;
+ } else {
+ transparentTheme = R.style.GlifV2Theme_Light_Transparent;
+ }
+ if (suwTheme == R.style.GlifV3Theme_DayNight) {
+ transparentTheme = R.style.GlifV3Theme_DayNight_Transparent;
} else if (suwTheme == R.style.GlifV3Theme_Light) {
transparentTheme = R.style.GlifV3Theme_Light_Transparent;
- } else if (suwTheme == R.style.GlifV2Theme) {
- transparentTheme = R.style.GlifV2Theme_Transparent;
+ } else if (suwTheme == R.style.GlifV2Theme_DayNight) {
+ transparentTheme = R.style.GlifV2Theme_DayNight_Transparent;
+ } else if (suwTheme == R.style.GlifV2Theme_Light) {
+ transparentTheme = R.style.GlifV2Theme_Light_Transparent;
+ } else if (suwTheme == R.style.GlifTheme_DayNight) {
+ transparentTheme = R.style.SetupWizardTheme_DayNight_Transparent;
} else if (suwTheme == R.style.GlifTheme_Light) {
transparentTheme = R.style.SetupWizardTheme_Light_Transparent;
+ } else if (suwTheme == R.style.GlifV3Theme) {
+ transparentTheme = R.style.GlifV3Theme_Transparent;
+ } else if (suwTheme == R.style.GlifV2Theme) {
+ transparentTheme = R.style.GlifV2Theme_Transparent;
} else if (suwTheme == R.style.GlifTheme) {
transparentTheme = R.style.SetupWizardTheme_Transparent;
}
diff --git a/src/com/android/settings/accessibility/AccessibilitySettingsForSetupWizardActivity.java b/src/com/android/settings/accessibility/AccessibilitySettingsForSetupWizardActivity.java
index 1a6c8e80f50..2b9ca487e9b 100644
--- a/src/com/android/settings/accessibility/AccessibilitySettingsForSetupWizardActivity.java
+++ b/src/com/android/settings/accessibility/AccessibilitySettingsForSetupWizardActivity.java
@@ -17,6 +17,7 @@
package com.android.settings.accessibility;
import android.content.ComponentName;
+import android.content.res.Resources;
import android.os.Bundle;
import android.util.Log;
import android.view.Menu;
@@ -122,4 +123,11 @@ public class AccessibilitySettingsForSetupWizardActivity extends SettingsActivit
finish();
}
}
+
+ @Override
+ protected void onApplyThemeResource(Resources.Theme theme, int resid, boolean first) {
+ final int new_resid = SetupWizardUtils.getTheme(this, getIntent());
+ theme.applyStyle(R.style.SetupWizardPartnerResource, true);
+ super.onApplyThemeResource(theme, new_resid, first);
+ }
}
diff --git a/src/com/android/settings/biometrics/BiometricEnrollActivity.java b/src/com/android/settings/biometrics/BiometricEnrollActivity.java
index 791efa713e4..4822607f238 100644
--- a/src/com/android/settings/biometrics/BiometricEnrollActivity.java
+++ b/src/com/android/settings/biometrics/BiometricEnrollActivity.java
@@ -203,9 +203,9 @@ public class BiometricEnrollActivity extends InstrumentedActivity {
@Override
protected void onApplyThemeResource(Resources.Theme theme, int resid, boolean first) {
- resid = SetupWizardUtils.getTheme(getIntent());
+ final int new_resid = SetupWizardUtils.getTheme(this, getIntent());
theme.applyStyle(R.style.SetupWizardPartnerResource, true);
- super.onApplyThemeResource(theme, resid, first);
+ super.onApplyThemeResource(theme, new_resid, first);
}
@Override
diff --git a/src/com/android/settings/biometrics/BiometricEnrollBase.java b/src/com/android/settings/biometrics/BiometricEnrollBase.java
index 1d9d07bf1d9..7936f66a726 100644
--- a/src/com/android/settings/biometrics/BiometricEnrollBase.java
+++ b/src/com/android/settings/biometrics/BiometricEnrollBase.java
@@ -116,9 +116,9 @@ public abstract class BiometricEnrollBase extends InstrumentedActivity {
@Override
protected void onApplyThemeResource(Resources.Theme theme, int resid, boolean first) {
- resid = SetupWizardUtils.getTheme(getIntent());
+ final int new_resid = SetupWizardUtils.getTheme(this, getIntent());
theme.applyStyle(R.style.SetupWizardPartnerResource, true);
- super.onApplyThemeResource(theme, resid, first);
+ super.onApplyThemeResource(theme, new_resid, first);
}
@Override
diff --git a/src/com/android/settings/notification/RedactionInterstitial.java b/src/com/android/settings/notification/RedactionInterstitial.java
index ac648a51e62..a17298f9d79 100644
--- a/src/com/android/settings/notification/RedactionInterstitial.java
+++ b/src/com/android/settings/notification/RedactionInterstitial.java
@@ -62,8 +62,8 @@ public class RedactionInterstitial extends SettingsActivity {
@Override
protected void onApplyThemeResource(Resources.Theme theme, int resid, boolean first) {
- resid = SetupWizardUtils.getTheme(getIntent());
- super.onApplyThemeResource(theme, resid, first);
+ final int new_resid = SetupWizardUtils.getTheme(this, getIntent());
+ super.onApplyThemeResource(theme, new_resid, first);
}
@Override
diff --git a/src/com/android/settings/password/ChooseLockPassword.java b/src/com/android/settings/password/ChooseLockPassword.java
index e393af5951b..a73b73a8e3b 100644
--- a/src/com/android/settings/password/ChooseLockPassword.java
+++ b/src/com/android/settings/password/ChooseLockPassword.java
@@ -105,8 +105,8 @@ public class ChooseLockPassword extends SettingsActivity {
@Override
protected void onApplyThemeResource(Theme theme, int resid, boolean first) {
- resid = SetupWizardUtils.getTheme(getIntent());
- super.onApplyThemeResource(theme, resid, first);
+ final int new_resid = SetupWizardUtils.getTheme(this, getIntent());
+ super.onApplyThemeResource(theme, new_resid, first);
}
public static class IntentBuilder {
diff --git a/src/com/android/settings/password/ChooseLockPattern.java b/src/com/android/settings/password/ChooseLockPattern.java
index ff9bf1a6aae..6e9cf981509 100644
--- a/src/com/android/settings/password/ChooseLockPattern.java
+++ b/src/com/android/settings/password/ChooseLockPattern.java
@@ -94,8 +94,8 @@ public class ChooseLockPattern extends SettingsActivity {
@Override
protected void onApplyThemeResource(Theme theme, int resid, boolean first) {
- resid = SetupWizardUtils.getTheme(getIntent());
- super.onApplyThemeResource(theme, resid, first);
+ final int new_resid = SetupWizardUtils.getTheme(this, getIntent());
+ super.onApplyThemeResource(theme, new_resid, first);
}
public static class IntentBuilder {
diff --git a/src/com/android/settings/password/ConfirmDeviceCredentialBaseActivity.java b/src/com/android/settings/password/ConfirmDeviceCredentialBaseActivity.java
index 383ae4f1a06..3ecff580d33 100644
--- a/src/com/android/settings/password/ConfirmDeviceCredentialBaseActivity.java
+++ b/src/com/android/settings/password/ConfirmDeviceCredentialBaseActivity.java
@@ -64,14 +64,14 @@ public abstract class ConfirmDeviceCredentialBaseActivity extends SettingsActivi
return;
}
if (UserManager.get(this).isManagedProfile(credentialOwnerUserId)) {
- setTheme(SetupWizardUtils.getTheme(getIntent()));
+ setTheme(SetupWizardUtils.getTheme(this, getIntent()));
mConfirmCredentialTheme = ConfirmCredentialTheme.WORK;
} else if (getIntent().getBooleanExtra(
ConfirmDeviceCredentialBaseFragment.DARK_THEME, false)) {
setTheme(R.style.Theme_ConfirmDeviceCredentialsDark);
mConfirmCredentialTheme = ConfirmCredentialTheme.DARK;
} else {
- setTheme(SetupWizardUtils.getTheme(getIntent()));
+ setTheme(SetupWizardUtils.getTheme(this, getIntent()));
mConfirmCredentialTheme = ConfirmCredentialTheme.NORMAL;
}
super.onCreate(savedState);
diff --git a/src/com/android/settings/password/SetupChooseLockGeneric.java b/src/com/android/settings/password/SetupChooseLockGeneric.java
index 5a0a2a6e5b1..7818f0d2fc9 100644
--- a/src/com/android/settings/password/SetupChooseLockGeneric.java
+++ b/src/com/android/settings/password/SetupChooseLockGeneric.java
@@ -31,7 +31,6 @@ import android.os.UserHandle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
-import android.widget.LinearLayout;
import androidx.fragment.app.Fragment;
import androidx.preference.Preference;
@@ -42,8 +41,6 @@ import com.android.internal.widget.LockPatternUtils;
import com.android.settings.R;
import com.android.settings.SetupEncryptionInterstitial;
import com.android.settings.SetupWizardUtils;
-import com.android.settings.biometrics.BiometricEnrollActivity;
-import com.android.settings.biometrics.fingerprint.SetupFingerprintEnrollFindSensor;
import com.android.settings.utils.SettingsDividerItemDecoration;
import com.google.android.setupdesign.GlifPreferenceLayout;
@@ -72,8 +69,8 @@ public class SetupChooseLockGeneric extends ChooseLockGeneric {
@Override
protected void onApplyThemeResource(Resources.Theme theme, int resid, boolean first) {
- resid = SetupWizardUtils.getTheme(getIntent());
- super.onApplyThemeResource(theme, resid, first);
+ final int new_resid = SetupWizardUtils.getTheme(this, getIntent());
+ super.onApplyThemeResource(theme, new_resid, first);
}
@Override
diff --git a/src/com/android/settings/wifi/WifiDialogActivity.java b/src/com/android/settings/wifi/WifiDialogActivity.java
index 754f99d3254..000ed3ebe58 100644
--- a/src/com/android/settings/wifi/WifiDialogActivity.java
+++ b/src/com/android/settings/wifi/WifiDialogActivity.java
@@ -45,6 +45,7 @@ import com.android.wifitrackerlib.NetworkDetailsTracker;
import com.android.wifitrackerlib.WifiEntry;
import com.google.android.setupcompat.util.WizardManagerHelper;
+import com.google.android.setupdesign.util.ThemeHelper;
import java.time.Clock;
import java.time.ZoneOffset;
@@ -105,7 +106,7 @@ public class WifiDialogActivity extends ObservableActivity implements WifiDialog
protected void onCreate(Bundle savedInstanceState) {
mIntent = getIntent();
if (WizardManagerHelper.isSetupWizardIntent(mIntent)) {
- setTheme(SetupWizardUtils.getTransparentTheme(mIntent));
+ setTheme(SetupWizardUtils.getTransparentTheme(this, mIntent));
}
super.onCreate(savedInstanceState);
@@ -151,13 +152,16 @@ public class WifiDialogActivity extends ObservableActivity implements WifiDialog
}
if (WizardManagerHelper.isAnySetupWizard(getIntent())) {
+ final int targetStyle = ThemeHelper.isSetupWizardDayNightEnabled(this)
+ ? R.style.SuwAlertDialogThemeCompat_DayNight :
+ R.style.SuwAlertDialogThemeCompat_Light;
if (mIsWifiTrackerLib) {
mDialog2 = WifiDialog2.createModal(this, this,
mNetworkDetailsTracker.getWifiEntry(),
- WifiConfigUiBase2.MODE_CONNECT, R.style.SuwAlertDialogThemeCompat_Light);
+ WifiConfigUiBase2.MODE_CONNECT, targetStyle);
} else {
mDialog = WifiDialog.createModal(this, this, mAccessPoint,
- WifiConfigUiBase.MODE_CONNECT, R.style.SuwAlertDialogThemeCompat_Light);
+ WifiConfigUiBase.MODE_CONNECT, targetStyle);
}
} else {
if (mIsWifiTrackerLib) {
diff --git a/src/com/android/settings/wifi/dpp/WifiDppBaseActivity.java b/src/com/android/settings/wifi/dpp/WifiDppBaseActivity.java
index a7daee6246b..499f66cb3c8 100644
--- a/src/com/android/settings/wifi/dpp/WifiDppBaseActivity.java
+++ b/src/com/android/settings/wifi/dpp/WifiDppBaseActivity.java
@@ -45,8 +45,8 @@ abstract class WifiDppBaseActivity extends InstrumentedActivity {
@Override
protected void onApplyThemeResource(Resources.Theme theme, int resid, boolean first) {
- resid = SetupWizardUtils.getTheme(getIntent());
+ final int new_resid = SetupWizardUtils.getTheme(this, getIntent());
theme.applyStyle(R.style.SetupWizardPartnerResource, /* force */ true);
- super.onApplyThemeResource(theme, resid, first);
+ super.onApplyThemeResource(theme, new_resid, first);
}
}
diff --git a/tests/robotests/src/com/android/settings/SetupWizardUtilsTest.java b/tests/robotests/src/com/android/settings/SetupWizardUtilsTest.java
index 5f4f31b6ed3..5fddb80eae5 100644
--- a/tests/robotests/src/com/android/settings/SetupWizardUtilsTest.java
+++ b/tests/robotests/src/com/android/settings/SetupWizardUtilsTest.java
@@ -18,20 +18,42 @@ package com.android.settings;
import static com.google.common.truth.Truth.assertThat;
+
+import android.content.ContentProvider;
+import android.content.ContentValues;
+import android.content.Context;
import android.content.Intent;
+import android.database.Cursor;
+import android.net.Uri;
import android.os.Bundle;
import android.sysprop.SetupWizardProperties;
+import android.text.TextUtils;
+import androidx.annotation.NonNull;
+import androidx.annotation.Nullable;
+import androidx.test.core.app.ApplicationProvider;
+
+import com.google.android.setupcompat.partnerconfig.PartnerConfigHelper;
import com.google.android.setupcompat.util.WizardManagerHelper;
import com.google.android.setupdesign.util.ThemeHelper;
+import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
+import org.robolectric.Robolectric;
import org.robolectric.RobolectricTestRunner;
@RunWith(RobolectricTestRunner.class)
public class SetupWizardUtilsTest {
+ private Context mContext;
+
+ @Before
+ public void setup() {
+ PartnerConfigHelper.resetInstance();
+ mContext = ApplicationProvider.getApplicationContext();
+ }
+
@Test
public void testCopySetupExtras() {
Intent fromIntent = new Intent();
@@ -66,12 +88,13 @@ public class SetupWizardUtilsTest {
}
@Test
- public void testGetTheme_withIntentExtra_shouldReturnExtraTheme() {
+ public void testGetTheme_withIntentExtra_shouldReturnTheme() {
SetupWizardProperties.theme(ThemeHelper.THEME_GLIF);
Intent intent = createSetupWizardIntent();
intent.putExtra(WizardManagerHelper.EXTRA_THEME, ThemeHelper.THEME_GLIF_V2);
- assertThat(SetupWizardUtils.getTheme(intent)).isEqualTo(R.style.GlifV2Theme);
+ assertThat(SetupWizardUtils.getTheme(mContext, intent))
+ .isEqualTo(R.style.GlifV2Theme);
}
@Test
@@ -79,26 +102,109 @@ public class SetupWizardUtilsTest {
SetupWizardProperties.theme(ThemeHelper.THEME_GLIF_V2_LIGHT);
Intent intent = createSetupWizardIntent();
- assertThat(SetupWizardUtils.getTheme(intent)).isEqualTo(R.style.GlifV2Theme_Light);
+ assertThat(SetupWizardUtils.getTheme(mContext, intent))
+ .isEqualTo(R.style.GlifV2Theme_Light);
}
@Test
- public void testGetTheme_glifV3Light_shouldReturnThemeResource() {
+ public void testGetTheme_whenSuwDayNightEnabledAndWithIntentExtra_shouldReturnDayNightTheme() {
+ FakePartnerContentProvider provider =
+ Robolectric.setupContentProvider(
+ FakePartnerContentProvider.class, "com.google.android.setupwizard.partner");
+ provider.injectFakeDayNightEnabledResult(true);
+ SetupWizardProperties.theme(ThemeHelper.THEME_GLIF_V2_LIGHT);
+ Intent intent = createSetupWizardIntent();
+ intent.putExtra(WizardManagerHelper.EXTRA_THEME, ThemeHelper.THEME_GLIF_V2);
+
+ assertThat(SetupWizardUtils.getTheme(mContext, intent))
+ .isEqualTo(R.style.GlifV2Theme_DayNight);
+ }
+
+ @Test
+ public void testGetTheme_glifV3Light_shouldReturnLightTheme() {
SetupWizardProperties.theme(ThemeHelper.THEME_GLIF_V3_LIGHT);
Intent intent = createSetupWizardIntent();
- assertThat(SetupWizardUtils.getTheme(intent)).isEqualTo(R.style.GlifV3Theme_Light);
- assertThat(SetupWizardUtils.getTransparentTheme(intent))
+ assertThat(SetupWizardUtils.getTheme(mContext, intent))
+ .isEqualTo(R.style.GlifV3Theme_Light);
+ assertThat(SetupWizardUtils.getTransparentTheme(mContext, intent))
.isEqualTo(R.style.GlifV3Theme_Light_Transparent);
}
@Test
- public void testGetTheme_nonSuw_shouldReturnDayNightTheme() {
+ public void testGetTheme_glifV3_shouldReturnTheme() {
+ SetupWizardProperties.theme(ThemeHelper.THEME_GLIF_V3);
+ Intent intent = createSetupWizardIntent();
+
+ assertThat(SetupWizardUtils.getTheme(mContext, intent))
+ .isEqualTo(R.style.GlifV3Theme);
+ assertThat(SetupWizardUtils.getTransparentTheme(mContext, intent))
+ .isEqualTo(R.style.GlifV3Theme_Transparent);
+ }
+
+ @Test
+ public void testGetTheme_whenSuwDayNightDisabledAndGlifV2_shouldReturnLightTheme() {
+ FakePartnerContentProvider provider =
+ Robolectric.setupContentProvider(
+ FakePartnerContentProvider.class, "com.google.android.setupwizard.partner");
+ provider.injectFakeDayNightEnabledResult(false);
+ SetupWizardProperties.theme(ThemeHelper.THEME_GLIF_V2_LIGHT);
+ Intent intent = createSetupWizardIntent();
+
+ assertThat(SetupWizardUtils.getTheme(mContext, intent))
+ .isEqualTo(R.style.GlifV2Theme_Light);
+ }
+
+ @Test
+ public void testGetTheme_whenSuwDayNightEnabledAndGlifV2_shouldReturnDayNightTheme() {
+ FakePartnerContentProvider provider =
+ Robolectric.setupContentProvider(
+ FakePartnerContentProvider.class, "com.google.android.setupwizard.partner");
+ provider.injectFakeDayNightEnabledResult(true);
+ SetupWizardProperties.theme(ThemeHelper.THEME_GLIF_V2_LIGHT);
+ Intent intent = createSetupWizardIntent();
+
+ assertThat(SetupWizardUtils.getTheme(mContext, intent))
+ .isEqualTo(R.style.GlifV2Theme_DayNight);
+ }
+
+ @Test
+ public void testGetTheme_whenSuwDayNightDisabledAndGlifV3_shouldReturnTheme() {
+ FakePartnerContentProvider provider =
+ Robolectric.setupContentProvider(
+ FakePartnerContentProvider.class, "com.google.android.setupwizard.partner");
+ provider.injectFakeDayNightEnabledResult(false);
+ SetupWizardProperties.theme(ThemeHelper.THEME_GLIF_V3);
+ Intent intent = createSetupWizardIntent();
+
+ assertThat(SetupWizardUtils.getTheme(mContext, intent))
+ .isEqualTo(R.style.GlifV3Theme);
+ assertThat(SetupWizardUtils.getTransparentTheme(mContext, intent))
+ .isEqualTo(R.style.GlifV3Theme_Transparent);
+ }
+
+ @Test
+ public void testGetTheme_whenSuwDayNightEnabledAndGlifV3_shouldReturnDayNightTheme() {
+ FakePartnerContentProvider provider =
+ Robolectric.setupContentProvider(
+ FakePartnerContentProvider.class, "com.google.android.setupwizard.partner");
+ provider.injectFakeDayNightEnabledResult(true);
+ SetupWizardProperties.theme(ThemeHelper.THEME_GLIF_V3);
+ Intent intent = createSetupWizardIntent();
+
+ assertThat(SetupWizardUtils.getTheme(mContext, intent))
+ .isEqualTo(R.style.GlifV3Theme_DayNight);
+ assertThat(SetupWizardUtils.getTransparentTheme(mContext, intent))
+ .isEqualTo(R.style.GlifV3Theme_DayNight_Transparent);
+ }
+
+ @Test
+ public void testGetTheme_nonSuw_shouldReturnTheme() {
SetupWizardProperties.theme(ThemeHelper.THEME_GLIF_V3_LIGHT);
Intent intent = new Intent();
- assertThat(SetupWizardUtils.getTheme(intent)).isEqualTo(R.style.GlifV3Theme);
- assertThat(SetupWizardUtils.getTransparentTheme(intent))
+ assertThat(SetupWizardUtils.getTheme(mContext, intent)).isEqualTo(R.style.GlifV3Theme);
+ assertThat(SetupWizardUtils.getTransparentTheme(mContext, intent))
.isEqualTo(R.style.GlifV3Theme_Transparent);
}
@@ -107,4 +213,65 @@ public class SetupWizardUtilsTest {
.putExtra(WizardManagerHelper.EXTRA_IS_SETUP_FLOW, true)
.putExtra(WizardManagerHelper.EXTRA_IS_FIRST_RUN, true);
}
+
+ private static final class FakePartnerContentProvider extends ContentProvider {
+
+ private final Bundle mFakeProviderDayNightEnabledResultBundle = new Bundle();
+
+ @Override
+ public boolean onCreate() {
+ return true;
+ }
+
+ @Override
+ public Cursor query(
+ @NonNull Uri uri,
+ @Nullable String[] projection,
+ @Nullable String selection,
+ @Nullable String[] selectionArgs,
+ @Nullable String sortOrder) {
+ return null;
+ }
+
+ @Nullable
+ @Override
+ public String getType(@NonNull Uri uri) {
+ return null;
+ }
+
+ @Nullable
+ @Override
+ public Uri insert(@NonNull Uri uri, @Nullable ContentValues values) {
+ return null;
+ }
+
+ @Override
+ public int delete(
+ @NonNull Uri uri, @Nullable String selection, @Nullable String[] selectionArgs) {
+ return 0;
+ }
+
+ @Override
+ public int update(
+ @NonNull Uri uri,
+ @Nullable ContentValues values,
+ @Nullable String selection,
+ @Nullable String[] selectionArgs) {
+ return 0;
+ }
+
+ @Override
+ public Bundle call(String method, String arg, Bundle extras) {
+ if (TextUtils.equals(method, "isSuwDayNightEnabled")) {
+ return mFakeProviderDayNightEnabledResultBundle;
+ }
+ return null;
+ }
+
+ public FakePartnerContentProvider injectFakeDayNightEnabledResult(boolean dayNightEnabled) {
+ mFakeProviderDayNightEnabledResultBundle.putBoolean(
+ "isSuwDayNightEnabled", dayNightEnabled);
+ return this;
+ }
+ }
}