Commit 0998bbb0 authored by Natalie Chouinard's avatar Natalie Chouinard Committed by Commit Bot

[Android] Rename Themes Settings classes

Refactor only, no user-visible changes.

Following the naming conventions decided in
go/clank-preferences-refactor, this change replaces the "Preferences"
suffix in the Themes Settings fragment.

Also un-nest ThemeSetting inner class for clarity, and rename string
resource.

Bug: 1030446
Change-Id: I9813e0d8a3060d29dcb7e73ad2e3fe02c311b1cc
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1958828
Commit-Queue: Natalie Chouinard <chouinard@chromium.org>
Reviewed-by: default avatarBrandon Wylie <wylieb@chromium.org>
Reviewed-by: default avatarBoris Sazonov <bsazonov@chromium.org>
Cr-Commit-Position: refs/heads/master@{#723461}
parent 32c89c20
......@@ -1443,7 +1443,8 @@ chrome_java_sources = [
"java/src/org/chromium/chrome/browser/settings/privacy/PrivacySettings.java",
"java/src/org/chromium/chrome/browser/settings/privacy/PrivacyPreferencesManager.java",
"java/src/org/chromium/chrome/browser/settings/themes/RadioButtonGroupThemePreference.java",
"java/src/org/chromium/chrome/browser/settings/themes/ThemePreferences.java",
"java/src/org/chromium/chrome/browser/settings/themes/ThemeSettingsFragment.java",
"java/src/org/chromium/chrome/browser/settings/themes/ThemeType.java",
"java/src/org/chromium/chrome/browser/settings/website/AddExceptionPreference.java",
"java/src/org/chromium/chrome/browser/settings/website/ChosenObjectInfo.java",
"java/src/org/chromium/chrome/browser/settings/website/ChosenObjectPreferences.java",
......
......@@ -421,7 +421,7 @@ chrome_test_java_sources = [
"javatests/src/org/chromium/chrome/browser/settings/privacy/ClearBrowsingDataFragmentBasicTest.java",
"javatests/src/org/chromium/chrome/browser/settings/privacy/ClearBrowsingDataFragmentTest.java",
"javatests/src/org/chromium/chrome/browser/settings/privacy/PrivacyPreferencesManagerNativeTest.java",
"javatests/src/org/chromium/chrome/browser/settings/themes/ThemePreferencesTest.java",
"javatests/src/org/chromium/chrome/browser/settings/themes/ThemeSettingsFragmentTest.java",
"javatests/src/org/chromium/chrome/browser/settings/website/ManageSpaceActivityTest.java",
"javatests/src/org/chromium/chrome/browser/settings/website/PermissionInfoTest.java",
"javatests/src/org/chromium/chrome/browser/settings/website/SiteSettingsPreferencesTest.java",
......
......@@ -61,10 +61,10 @@
android:order="10"
android:title="@string/options_homepage_title"/>
<Preference
android:fragment="org.chromium.chrome.browser.settings.themes.ThemePreferences"
android:fragment="org.chromium.chrome.browser.settings.themes.ThemeSettingsFragment"
android:key="ui_theme"
android:order="11"
android:title="@string/prefs_themes" />
android:title="@string/theme_settings" />
<PreferenceCategory
android:key="advanced_section"
......
......@@ -15,7 +15,7 @@ import org.chromium.base.ApplicationState;
import org.chromium.base.ApplicationStatus;
import org.chromium.base.ObserverList;
import org.chromium.chrome.browser.preferences.SharedPreferencesManager;
import org.chromium.chrome.browser.settings.themes.ThemePreferences;
import org.chromium.chrome.browser.settings.themes.ThemeType;
/**
* Maintains and provides the night mode state for the entire application.
......@@ -128,10 +128,10 @@ class GlobalNightModeStateController implements NightModeStateProvider,
private void updateNightMode() {
boolean powerSaveModeOn = mPowerSaveModeMonitor.powerSavingIsOn();
final int themeSetting = NightModeUtils.getThemeSetting();
final boolean newNightModeOn = themeSetting == ThemePreferences.ThemeSetting.SYSTEM_DEFAULT
final int theme = NightModeUtils.getThemeSetting();
final boolean newNightModeOn = theme == ThemeType.SYSTEM_DEFAULT
&& (powerSaveModeOn || mSystemNightModeMonitor.isSystemNightModeOn())
|| themeSetting == ThemePreferences.ThemeSetting.DARK;
|| theme == ThemeType.DARK;
if (mNightModeOn != null && newNightModeOn == mNightModeOn) return;
mNightModeOn = newNightModeOn;
......@@ -140,9 +140,9 @@ class GlobalNightModeStateController implements NightModeStateProvider,
for (Observer observer : mObservers) observer.onNightModeStateChanged();
NightModeMetrics.recordNightModeState(mNightModeOn);
NightModeMetrics.recordThemePreferencesState(themeSetting);
NightModeMetrics.recordThemePreferencesState(theme);
if (mNightModeOn) {
NightModeMetrics.recordNightModeEnabledReason(themeSetting, powerSaveModeOn);
NightModeMetrics.recordNightModeEnabledReason(theme, powerSaveModeOn);
}
}
}
......@@ -8,7 +8,7 @@ import androidx.annotation.IntDef;
import org.chromium.base.metrics.CachedMetrics;
import org.chromium.base.metrics.RecordUserAction;
import org.chromium.chrome.browser.settings.themes.ThemePreferences;
import org.chromium.chrome.browser.settings.themes.ThemeType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
......@@ -26,8 +26,8 @@ public class NightModeMetrics {
"Android.DarkTheme.EnabledReason", NightModeEnabledReason.NUM_ENTRIES);
private static final CachedMetrics.EnumeratedHistogramSample ENUMERATED_THEME_PREFERENCE_STATE =
new CachedMetrics.EnumeratedHistogramSample("Android.DarkTheme.Preference.State",
ThemePreferences.ThemeSetting.NUM_ENTRIES);
new CachedMetrics.EnumeratedHistogramSample(
"Android.DarkTheme.Preference.State", ThemeType.NUM_ENTRIES);
/**
* Different ways that night mode (aka dark theme) can be enabled. This is used for histograms
......@@ -55,19 +55,18 @@ public class NightModeMetrics {
/**
* Records the reason that night mode is turned on.
* @param setting The {@link ThemePreferences.ThemeSetting} that the user selects.
* @param theme The {@link ThemeType} that the user selects.
* @param powerSaveModeOn Whether or not power save mode is on.
*/
public static void recordNightModeEnabledReason(
@ThemePreferences.ThemeSetting int setting, boolean powerSaveModeOn) {
public static void recordNightModeEnabledReason(@ThemeType int theme, boolean powerSaveModeOn) {
ENUMERATED_NIGHT_MODE_ENABLED_REASON.record(
calculateNightModeEnabledReason(setting, powerSaveModeOn));
calculateNightModeEnabledReason(theme, powerSaveModeOn));
}
@NightModeEnabledReason
private static int calculateNightModeEnabledReason(
@ThemePreferences.ThemeSetting int setting, boolean powerSaveModeOn) {
if (setting == ThemePreferences.ThemeSetting.DARK) {
@ThemeType int theme, boolean powerSaveModeOn) {
if (theme == ThemeType.DARK) {
return NightModeEnabledReason.USER_PREFERENCE;
}
if (powerSaveModeOn) return NightModeEnabledReason.POWER_SAVE_MODE;
......@@ -76,30 +75,30 @@ public class NightModeMetrics {
/**
* Records the theme preference state on start up and when theme preference changes.
* @param setting The new {@link ThemePreferences.ThemeSetting} that the user selects.
* @param theme The new {@link ThemeType} that the user selects.
*/
public static void recordThemePreferencesState(@ThemePreferences.ThemeSetting int setting) {
ENUMERATED_THEME_PREFERENCE_STATE.record(setting);
public static void recordThemePreferencesState(@ThemeType int theme) {
ENUMERATED_THEME_PREFERENCE_STATE.record(theme);
}
/**
* Records when user changes the theme preferences.
* @param setting The new {@link ThemePreferences.ThemeSetting} that the user selects.
* @param theme The new {@link ThemeType} that the user selects.
*/
public static void recordThemePreferencesChanged(@ThemePreferences.ThemeSetting int setting) {
switch (setting) {
case ThemePreferences.ThemeSetting.SYSTEM_DEFAULT:
public static void recordThemePreferencesChanged(@ThemeType int theme) {
switch (theme) {
case ThemeType.SYSTEM_DEFAULT:
RecordUserAction.record("Android.DarkTheme.Preference.SystemDefault");
break;
case ThemePreferences.ThemeSetting.LIGHT:
case ThemeType.LIGHT:
RecordUserAction.record("Android.DarkTheme.Preference.Light");
break;
case ThemePreferences.ThemeSetting.DARK:
case ThemeType.DARK:
RecordUserAction.record("Android.DarkTheme.Preference.Dark");
break;
default:
assert false : "Theme preferences change should be recorded.";
}
recordThemePreferencesState(setting);
recordThemePreferencesState(theme);
}
}
......@@ -19,7 +19,7 @@ import androidx.annotation.VisibleForTesting;
import org.chromium.chrome.browser.ChromeBaseAppCompatActivity;
import org.chromium.chrome.browser.flags.FeatureUtilities;
import org.chromium.chrome.browser.preferences.SharedPreferencesManager;
import org.chromium.chrome.browser.settings.themes.ThemePreferences;
import org.chromium.chrome.browser.settings.themes.ThemeType;
/**
* Helper methods for supporting night mode.
......@@ -133,14 +133,13 @@ public class NightModeUtils {
/**
* The current theme setting, reflecting either the user setting or the default if the user has
* not explicitly set a preference.
* @return The current theme setting. See {@link ThemePreferences.ThemeSetting}.
* @return The current theme setting. See {@link ThemeType}.
*/
public static @ThemePreferences.ThemeSetting int getThemeSetting() {
public static @ThemeType int getThemeSetting() {
int userSetting = SharedPreferencesManager.getInstance().readInt(UI_THEME_SETTING_KEY, -1);
if (userSetting == -1) {
return FeatureUtilities.isNightModeDefaultToLight()
? ThemePreferences.ThemeSetting.LIGHT
: ThemePreferences.ThemeSetting.SYSTEM_DEFAULT;
return FeatureUtilities.isNightModeDefaultToLight() ? ThemeType.LIGHT
: ThemeType.SYSTEM_DEFAULT;
} else {
return userSetting;
}
......
......@@ -19,7 +19,6 @@ import org.chromium.base.BuildInfo;
import org.chromium.chrome.R;
import org.chromium.chrome.browser.ChromeFeatureList;
import org.chromium.chrome.browser.night_mode.NightModeMetrics;
import org.chromium.chrome.browser.settings.themes.ThemePreferences.ThemeSetting;
import org.chromium.chrome.browser.ui.widget.RadioButtonWithDescription;
import org.chromium.chrome.browser.ui.widget.RadioButtonWithDescriptionLayout;
......@@ -34,7 +33,7 @@ import java.util.Collections;
*/
public class RadioButtonGroupThemePreference
extends Preference implements RadioGroup.OnCheckedChangeListener {
private @ThemeSetting int mSetting;
private @ThemeType int mSetting;
private RadioButtonWithDescription mSettingRadioButton;
private RadioButtonWithDescriptionLayout mGroup;
private ArrayList<RadioButtonWithDescription> mButtons;
......@@ -51,13 +50,13 @@ public class RadioButtonGroupThemePreference
// Initialize entries with null objects so that calling ArrayList#set() would not throw
// java.lang.IndexOutOfBoundsException.
mButtons = new ArrayList<>(Collections.nCopies(ThemeSetting.NUM_ENTRIES, null));
mButtons = new ArrayList<>(Collections.nCopies(ThemeType.NUM_ENTRIES, null));
}
/**
* @param setting The initial setting for this Preference
*/
public void initialize(@ThemeSetting int setting, boolean darkenWebsitesEnabled) {
public void initialize(@ThemeType int setting, boolean darkenWebsitesEnabled) {
mSetting = setting;
mDarkenWebsitesEnabled = darkenWebsitesEnabled;
}
......@@ -78,18 +77,16 @@ public class RadioButtonGroupThemePreference
mCheckBox.setChecked(mDarkenWebsitesEnabled);
assert ThemeSetting.NUM_ENTRIES == 3;
mButtons.set(ThemeSetting.SYSTEM_DEFAULT,
assert ThemeType.NUM_ENTRIES == 3;
mButtons.set(ThemeType.SYSTEM_DEFAULT,
(RadioButtonWithDescription) holder.findViewById(R.id.system_default));
if (BuildInfo.isAtLeastQ()) {
mButtons.get(ThemeSetting.SYSTEM_DEFAULT)
mButtons.get(ThemeType.SYSTEM_DEFAULT)
.setDescriptionText(
getContext().getString(R.string.themes_system_default_summary_api_29));
}
mButtons.set(
ThemeSetting.LIGHT, (RadioButtonWithDescription) holder.findViewById(R.id.light));
mButtons.set(
ThemeSetting.DARK, (RadioButtonWithDescription) holder.findViewById(R.id.dark));
mButtons.set(ThemeType.LIGHT, (RadioButtonWithDescription) holder.findViewById(R.id.light));
mButtons.set(ThemeType.DARK, (RadioButtonWithDescription) holder.findViewById(R.id.dark));
mSettingRadioButton = mButtons.get(mSetting);
mSettingRadioButton.setChecked(true);
......@@ -102,7 +99,7 @@ public class RadioButtonGroupThemePreference
private void positionCheckbox() {
if (ChromeFeatureList.isEnabled(
ChromeFeatureList.DARKEN_WEBSITES_CHECKBOX_IN_THEMES_SETTING)) {
if (mSetting == ThemeSetting.SYSTEM_DEFAULT || mSetting == ThemeSetting.DARK) {
if (mSetting == ThemeType.SYSTEM_DEFAULT || mSetting == ThemeType.DARK) {
mGroup.attachAccessoryView(mCheckboxContainer, mSettingRadioButton);
mCheckboxContainer.setVisibility(View.VISIBLE);
} else {
......@@ -113,14 +110,14 @@ public class RadioButtonGroupThemePreference
@Override
public void onCheckedChanged(RadioGroup group, int checkedId) {
for (int i = 0; i < ThemeSetting.NUM_ENTRIES; i++) {
for (int i = 0; i < ThemeType.NUM_ENTRIES; i++) {
if (mButtons.get(i).isChecked()) {
mSetting = i;
mSettingRadioButton = mButtons.get(i);
break;
}
}
assert mSetting >= 0 && mSetting < ThemeSetting.NUM_ENTRIES : "No matching setting found.";
assert mSetting >= 0 && mSetting < ThemeType.NUM_ENTRIES : "No matching setting found.";
positionCheckbox();
callChangeListener(mSetting);
......
......@@ -11,7 +11,6 @@ import android.os.Build;
import android.os.Bundle;
import android.support.v7.preference.PreferenceFragmentCompat;
import androidx.annotation.IntDef;
import androidx.annotation.Nullable;
import org.chromium.chrome.R;
......@@ -21,34 +20,16 @@ import org.chromium.chrome.browser.preferences.SharedPreferencesManager;
import org.chromium.chrome.browser.settings.SettingsUtils;
import org.chromium.ui.UiUtils;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
/**
* Fragment to manage the theme user settings.
*/
public class ThemePreferences extends PreferenceFragmentCompat {
/**
* Theme preference variations. This is also used for histograms and should therefore be treated
* as append-only. See DarkThemePreferences in tools/metrics/histograms/enums.xml.
*/
@IntDef({ThemeSetting.SYSTEM_DEFAULT, ThemeSetting.LIGHT, ThemeSetting.DARK})
@Retention(RetentionPolicy.SOURCE)
public @interface ThemeSetting {
// Values are used for indexing tables - should start from 0 and can't have gaps.
int SYSTEM_DEFAULT = 0;
int LIGHT = 1;
int DARK = 2;
int NUM_ENTRIES = 3;
}
public class ThemeSettingsFragment extends PreferenceFragmentCompat {
static final String PREF_UI_THEME_PREF = "ui_theme_pref";
@Override
public void onCreatePreferences(@Nullable Bundle savedInstanceState, String rootKey) {
SettingsUtils.addPreferencesFromResource(this, R.xml.theme_preferences);
getActivity().setTitle(R.string.prefs_themes);
getActivity().setTitle(R.string.theme_settings);
SharedPreferencesManager sharedPreferencesManager = SharedPreferencesManager.getInstance();
RadioButtonGroupThemePreference radioButtonGroupThemePreference =
......
// Copyright 2019 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
package org.chromium.chrome.browser.settings.themes;
import androidx.annotation.IntDef;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
/**
* Theme setting variations. This is also used for histograms and should therefore be treated
* as append-only. See DarkThemePreferences in tools/metrics/histograms/enums.xml.
*/
@IntDef({ThemeType.SYSTEM_DEFAULT, ThemeType.LIGHT, ThemeType.DARK})
@Retention(RetentionPolicy.SOURCE)
public @interface ThemeType {
// Values are used for indexing tables - should start from 0 and can't have gaps.
int SYSTEM_DEFAULT = 0;
int LIGHT = 1;
int DARK = 2;
int NUM_ENTRIES = 3;
}
......@@ -11,7 +11,7 @@ import org.chromium.base.test.params.ParameterSet;
import org.chromium.chrome.browser.flags.FeatureUtilities;
import org.chromium.chrome.browser.preferences.ChromePreferenceKeys;
import org.chromium.chrome.browser.preferences.SharedPreferencesManager;
import org.chromium.chrome.browser.settings.themes.ThemePreferences;
import org.chromium.chrome.browser.settings.themes.ThemeType;
import org.chromium.ui.test.util.DummyUiActivity;
import java.util.Arrays;
......@@ -66,8 +66,7 @@ public class NightModeTestUtils {
*/
public static void setUpNightModeForChromeActivity(boolean nightModeEnabled) {
SharedPreferencesManager.getInstance().writeInt(ChromePreferenceKeys.UI_THEME_SETTING_KEY,
nightModeEnabled ? ThemePreferences.ThemeSetting.DARK
: ThemePreferences.ThemeSetting.LIGHT);
nightModeEnabled ? ThemeType.DARK : ThemeType.LIGHT);
}
/**
......
......@@ -29,7 +29,6 @@ import org.chromium.chrome.browser.night_mode.NightModeUtils;
import org.chromium.chrome.browser.preferences.SharedPreferencesManager;
import org.chromium.chrome.browser.settings.SettingsActivity;
import org.chromium.chrome.browser.settings.SettingsActivityTest;
import org.chromium.chrome.browser.settings.themes.ThemePreferences.ThemeSetting;
import org.chromium.chrome.browser.ui.widget.RadioButtonWithDescription;
import org.chromium.chrome.browser.ui.widget.RadioButtonWithDescriptionLayout;
import org.chromium.chrome.test.ChromeJUnit4RunnerDelegate;
......@@ -41,13 +40,13 @@ import java.util.Arrays;
import java.util.List;
/**
* Tests for ThemePreferences.
* Tests for ThemeSettingsFragment.
*/
// clang-format off
@Features.EnableFeatures(ANDROID_NIGHT_MODE)
@RunWith(ParameterizedRunner.class)
@ParameterAnnotations.UseRunnerDelegate(ChromeJUnit4RunnerDelegate.class)
public class ThemePreferencesTest extends DummyUiActivityTestCase {
public class ThemeSettingsFragmentTest extends DummyUiActivityTestCase {
// clang-format on
@ParameterAnnotations.ClassParameter
private static List<ParameterSet> sClassParams =
......@@ -55,10 +54,10 @@ public class ThemePreferencesTest extends DummyUiActivityTestCase {
new ParameterSet().value(true).name("DefaultLightEnabled"));
private boolean mDefaultToLight;
private ThemePreferences mFragment;
private ThemeSettingsFragment mFragment;
private RadioButtonGroupThemePreference mPreference;
public ThemePreferencesTest(boolean defaultToLight) {
public ThemeSettingsFragmentTest(boolean defaultToLight) {
mDefaultToLight = defaultToLight;
FeatureUtilities.setNightModeDefaultToLightForTesting(defaultToLight);
}
......@@ -69,10 +68,11 @@ public class ThemePreferencesTest extends DummyUiActivityTestCase {
SharedPreferencesManager.getInstance().removeKey(UI_THEME_SETTING_KEY);
SharedPreferencesManager.getInstance().removeKey(DARKEN_WEBSITES_ENABLED_KEY);
SettingsActivity settingsActivity = SettingsActivityTest.startSettingsActivity(
InstrumentationRegistry.getInstrumentation(), ThemePreferences.class.getName());
mFragment = (ThemePreferences) settingsActivity.getMainFragment();
InstrumentationRegistry.getInstrumentation(),
ThemeSettingsFragment.class.getName());
mFragment = (ThemeSettingsFragment) settingsActivity.getMainFragment();
mPreference = (RadioButtonGroupThemePreference) mFragment.findPreference(
ThemePreferences.PREF_UI_THEME_PREF);
ThemeSettingsFragment.PREF_UI_THEME_PREF);
}
@Override
......@@ -98,8 +98,7 @@ public class ThemePreferencesTest extends DummyUiActivityTestCase {
return;
}
int expectedDefaultTheme =
mDefaultToLight ? ThemeSetting.LIGHT : ThemeSetting.SYSTEM_DEFAULT;
int expectedDefaultTheme = mDefaultToLight ? ThemeType.LIGHT : ThemeType.SYSTEM_DEFAULT;
Assert.assertEquals("Incorrect default theme setting.", expectedDefaultTheme,
NightModeUtils.getThemeSetting());
assertButtonCheckedCorrectly(
......@@ -109,7 +108,7 @@ public class ThemePreferencesTest extends DummyUiActivityTestCase {
Assert.assertEquals(R.id.system_default, getButton(0).getId());
selectButton(0);
assertButtonCheckedCorrectly("System default", 0);
Assert.assertEquals(ThemeSetting.SYSTEM_DEFAULT, mPreference.getSetting());
Assert.assertEquals(ThemeType.SYSTEM_DEFAULT, mPreference.getSetting());
Assert.assertEquals(mPreference.getSetting(),
SharedPreferencesManager.getInstance().readInt(UI_THEME_SETTING_KEY));
......@@ -117,7 +116,7 @@ public class ThemePreferencesTest extends DummyUiActivityTestCase {
Assert.assertEquals(R.id.light, getButton(1).getId());
selectButton(1);
assertButtonCheckedCorrectly("Light", 1);
Assert.assertEquals(ThemeSetting.LIGHT, mPreference.getSetting());
Assert.assertEquals(ThemeType.LIGHT, mPreference.getSetting());
Assert.assertEquals(mPreference.getSetting(),
SharedPreferencesManager.getInstance().readInt(UI_THEME_SETTING_KEY));
......@@ -125,7 +124,7 @@ public class ThemePreferencesTest extends DummyUiActivityTestCase {
Assert.assertEquals(R.id.dark, getButton(2).getId());
selectButton(2);
assertButtonCheckedCorrectly("Dark", 2);
Assert.assertEquals(ThemeSetting.DARK, mPreference.getSetting());
Assert.assertEquals(ThemeType.DARK, mPreference.getSetting());
Assert.assertEquals(mPreference.getSetting(),
SharedPreferencesManager.getInstance().readInt(UI_THEME_SETTING_KEY));
});
......@@ -147,8 +146,7 @@ public class ThemePreferencesTest extends DummyUiActivityTestCase {
LinearLayout checkboxContainer = mPreference.getCheckboxContainerForTesting();
RadioButtonWithDescriptionLayout group = mPreference.getGroupForTesting();
int expectedDefaultTheme =
mDefaultToLight ? ThemeSetting.LIGHT : ThemeSetting.SYSTEM_DEFAULT;
int expectedDefaultTheme = mDefaultToLight ? ThemeType.LIGHT : ThemeType.SYSTEM_DEFAULT;
Assert.assertEquals("Incorrect default theme setting.", expectedDefaultTheme,
NightModeUtils.getThemeSetting());
assertButtonCheckedCorrectly(
......@@ -209,7 +207,7 @@ public class ThemePreferencesTest extends DummyUiActivityTestCase {
}
private boolean isRestUnchecked(int selectedIndex) {
for (int i = 0; i < ThemeSetting.NUM_ENTRIES; i++) {
for (int i = 0; i < ThemeType.NUM_ENTRIES; i++) {
if (i != selectedIndex && getButton(i).isChecked()) {
return false;
}
......
......@@ -32,7 +32,7 @@ import org.chromium.base.test.BaseRobolectricTestRunner;
import org.chromium.base.test.util.DisableIf;
import org.chromium.chrome.browser.flags.FeatureUtilities;
import org.chromium.chrome.browser.preferences.SharedPreferencesManager;
import org.chromium.chrome.browser.settings.themes.ThemePreferences;
import org.chromium.chrome.browser.settings.themes.ThemeType;
/**
* Unit tests for {@link GlobalNightModeStateController}.
......@@ -97,7 +97,7 @@ public class GlobalNightModeStateControllerTest {
public void testUpdateNightMode_PowerSaveMode_DefaultsToSystem() {
// Set preference to system default and verify that the night mode isn't enabled.
SharedPreferencesManager.getInstance().writeInt(
UI_THEME_SETTING_KEY, ThemePreferences.ThemeSetting.SYSTEM_DEFAULT);
UI_THEME_SETTING_KEY, ThemeType.SYSTEM_DEFAULT);
assertFalse(mGlobalNightModeStateController.isInNightMode());
// Enable power save mode and verify night mode is enabled.
......@@ -125,7 +125,7 @@ public class GlobalNightModeStateControllerTest {
public void testUpdateNightMode_SystemNightMode_DefaultsToSystem() {
// Set preference to system default and verify that the night mode isn't enabled.
SharedPreferencesManager.getInstance().writeInt(
UI_THEME_SETTING_KEY, ThemePreferences.ThemeSetting.SYSTEM_DEFAULT);
UI_THEME_SETTING_KEY, ThemeType.SYSTEM_DEFAULT);
assertFalse(mGlobalNightModeStateController.isInNightMode());
// Enable system night mode and verify night mode is enabled.
......@@ -152,13 +152,11 @@ public class GlobalNightModeStateControllerTest {
@Test
public void testUpdateNightMode_Preference() {
// Set preference to dark theme and verify night mode is enabled.
SharedPreferencesManager.getInstance().writeInt(
UI_THEME_SETTING_KEY, ThemePreferences.ThemeSetting.DARK);
SharedPreferencesManager.getInstance().writeInt(UI_THEME_SETTING_KEY, ThemeType.DARK);
assertTrue(mGlobalNightModeStateController.isInNightMode());
// Set preference to light theme and verify night mode is disabled.
SharedPreferencesManager.getInstance().writeInt(
UI_THEME_SETTING_KEY, ThemePreferences.ThemeSetting.LIGHT);
SharedPreferencesManager.getInstance().writeInt(UI_THEME_SETTING_KEY, ThemeType.LIGHT);
assertFalse(mGlobalNightModeStateController.isInNightMode());
// Regardless of power save mode and system night mode, night mode is disabled with light
......@@ -181,8 +179,7 @@ public class GlobalNightModeStateControllerTest {
setSystemNightMode(true);
assertFalse(mGlobalNightModeStateController.isInNightMode());
SharedPreferencesManager.getInstance().writeInt(
UI_THEME_SETTING_KEY, ThemePreferences.ThemeSetting.DARK);
SharedPreferencesManager.getInstance().writeInt(UI_THEME_SETTING_KEY, ThemeType.DARK);
assertFalse(mGlobalNightModeStateController.isInNightMode());
// Simulate to start listening to night mode state changes. Verify that
......@@ -193,7 +190,7 @@ public class GlobalNightModeStateControllerTest {
assertTrue(mGlobalNightModeStateController.isInNightMode());
SharedPreferencesManager.getInstance().writeInt(
UI_THEME_SETTING_KEY, ThemePreferences.ThemeSetting.SYSTEM_DEFAULT);
UI_THEME_SETTING_KEY, ThemeType.SYSTEM_DEFAULT);
assertTrue(mGlobalNightModeStateController.isInNightMode());
setIsPowerSaveMode(false);
......@@ -208,8 +205,7 @@ public class GlobalNightModeStateControllerTest {
mGlobalNightModeStateController.addObserver(mObserver);
// Verify that observer is called on night mode state changed from false to true.
SharedPreferencesManager.getInstance().writeInt(
UI_THEME_SETTING_KEY, ThemePreferences.ThemeSetting.DARK);
SharedPreferencesManager.getInstance().writeInt(UI_THEME_SETTING_KEY, ThemeType.DARK);
assertTrue(mGlobalNightModeStateController.isInNightMode());
verify(mObserver, times(1)).onNightModeStateChanged();
......@@ -224,15 +220,13 @@ public class GlobalNightModeStateControllerTest {
verify(mObserver, times(1)).onNightModeStateChanged();
// Verify that observer is called when set to light theme.
SharedPreferencesManager.getInstance().writeInt(
UI_THEME_SETTING_KEY, ThemePreferences.ThemeSetting.LIGHT);
SharedPreferencesManager.getInstance().writeInt(UI_THEME_SETTING_KEY, ThemeType.LIGHT);
assertFalse(mGlobalNightModeStateController.isInNightMode());
verify(mObserver, times(2)).onNightModeStateChanged();
// Verify that observer is not called after it is removed.
mGlobalNightModeStateController.removeObserver(mObserver);
SharedPreferencesManager.getInstance().writeInt(
UI_THEME_SETTING_KEY, ThemePreferences.ThemeSetting.DARK);
SharedPreferencesManager.getInstance().writeInt(UI_THEME_SETTING_KEY, ThemeType.DARK);
assertTrue(mGlobalNightModeStateController.isInNightMode());
verify(mObserver, times(2)).onNightModeStateChanged();
}
......
......@@ -17,7 +17,7 @@ import org.robolectric.annotation.Config;
import org.chromium.base.test.BaseRobolectricTestRunner;
import org.chromium.chrome.browser.flags.FeatureUtilities;
import org.chromium.chrome.browser.preferences.SharedPreferencesManager;
import org.chromium.chrome.browser.settings.themes.ThemePreferences;
import org.chromium.chrome.browser.settings.themes.ThemeType;
/**
* Unit tests for {@link GlobalNightModeStateProviderHolder}.
......@@ -40,8 +40,7 @@ public class GlobalNightModeStateProviderHolderTest {
assertFalse(GlobalNightModeStateProviderHolder.getInstance().isInNightMode());
// Verify that night mode cannot be enabled.
SharedPreferencesManager.getInstance().writeInt(
UI_THEME_SETTING_KEY, ThemePreferences.ThemeSetting.DARK);
SharedPreferencesManager.getInstance().writeInt(UI_THEME_SETTING_KEY, ThemeType.DARK);
assertFalse(GlobalNightModeStateProviderHolder.getInstance().isInNightMode());
}
......
......@@ -720,8 +720,8 @@ CHAR-LIMIT guidelines:
Search and site suggestions disabled
</message>
<!-- Themes preferences -->
<message name="IDS_PREFS_THEMES" desc="Title for the Themes preferences. [CHAR-LIMIT=32]">
<!-- Themes settings -->
<message name="IDS_THEME_SETTINGS" desc="Title for the Theme settings. [CHAR-LIMIT=32]">
Themes
</message>
<message name="IDS_THEMES_SYSTEM_DEFAULT_TITLE" desc="Title for the System Default option. [CHAR-LIMIT=32]">
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment