diff --git a/res/layout/dark_ui_activation_button.xml b/res/layout/dark_ui_activation_button.xml
deleted file mode 100644
index 5f9eefcded2..00000000000
--- a/res/layout/dark_ui_activation_button.xml
+++ /dev/null
@@ -1,40 +0,0 @@
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/res/layout/night_display_activation_button.xml b/res/layout/night_display_activation_button.xml
deleted file mode 100644
index df160ec33b8..00000000000
--- a/res/layout/night_display_activation_button.xml
+++ /dev/null
@@ -1,40 +0,0 @@
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/res/layout/zen_mode_settings_button.xml b/res/layout/zen_mode_settings_button.xml
deleted file mode 100644
index db889ff9300..00000000000
--- a/res/layout/zen_mode_settings_button.xml
+++ /dev/null
@@ -1,55 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/res/values/strings.xml b/res/values/strings.xml
index 09aea0e1f0b..8a811c0c08a 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -12670,6 +12670,18 @@
Use graphics driver preferencesUse battery saver
+
+ Use Do Not Disturb
+
+ Use Dark Theme
+
+ Use Night Light
+
+ Use NFC
+
+ Use adaptive battery
+
+ Use adaptive brightnessSee all apps
diff --git a/res/xml/auto_brightness_detail.xml b/res/xml/auto_brightness_detail.xml
index 6b304efcaf7..ebcf1741b77 100644
--- a/res/xml/auto_brightness_detail.xml
+++ b/res/xml/auto_brightness_detail.xml
@@ -20,6 +20,12 @@
xmlns:settings="http://schemas.android.com/apk/res-auto"
android:title="@string/auto_brightness_title">
+
+
-
-
-
+
+
-
-
diff --git a/res/xml/nfc_and_payment_settings.xml b/res/xml/nfc_and_payment_settings.xml
index 8ff4983579b..09ce27769ab 100644
--- a/res/xml/nfc_and_payment_settings.xml
+++ b/res/xml/nfc_and_payment_settings.xml
@@ -19,18 +19,17 @@
xmlns:settings="http://schemas.android.com/apk/res-auto"
android:title="@string/nfc_quick_toggle_title">
+
+
-
-
+
+
-
-
diff --git a/res/xml/smart_battery_detail.xml b/res/xml/smart_battery_detail.xml
index 87eeb8621ba..2d361191810 100644
--- a/res/xml/smart_battery_detail.xml
+++ b/res/xml/smart_battery_detail.xml
@@ -22,6 +22,11 @@
android:title="@string/smart_battery_manager_title"
settings:searchable="false">
+
+
-
-
-
\ No newline at end of file
+
diff --git a/res/xml/zen_mode_settings.xml b/res/xml/zen_mode_settings.xml
index 6764e288d43..78dee028666 100644
--- a/res/xml/zen_mode_settings.xml
+++ b/res/xml/zen_mode_settings.xml
@@ -21,12 +21,9 @@
android:title="@string/zen_mode_settings_title">
-
- * Listen to broadcasts from {@link NfcAdapter}. The worker will call notify changed on the
- * NFC Slice only when the following extras are present in the broadcast:
- *
- *
{@link NfcAdapter#STATE_ON}
- *
{@link NfcAdapter#STATE_OFF}
- *
+ * Listen to broadcasts from {@link NfcAdapter}. The worker will call notify changed on the
+ * NFC Slice only when the following extras are present in the broadcast:
+ *
+ *
{@link NfcAdapter#STATE_ON}
+ *
{@link NfcAdapter#STATE_OFF}
+ *
*/
public static class NfcSliceWorker extends SliceBackgroundWorker {
@@ -185,7 +194,7 @@ public class NfcPreferenceController extends TogglePreferenceController
NO_EXTRA);
// Do nothing if state change is empty, or an intermediate step.
- if ( (nfcStateExtra == NO_EXTRA)
+ if ((nfcStateExtra == NO_EXTRA)
|| (nfcStateExtra == NfcAdapter.STATE_TURNING_ON)
|| (nfcStateExtra == NfcAdapter.STATE_TURNING_OFF)) {
Log.d(TAG, "Transitional update, dropping broadcast");
diff --git a/src/com/android/settings/notification/app/BlockPreferenceController.java b/src/com/android/settings/notification/app/BlockPreferenceController.java
index e5a7e980c5f..4df3e281f61 100644
--- a/src/com/android/settings/notification/app/BlockPreferenceController.java
+++ b/src/com/android/settings/notification/app/BlockPreferenceController.java
@@ -72,16 +72,16 @@ public class BlockPreferenceController extends NotificationPreferenceController
bar.setDisabledByAdmin(mAdmin);
if (mChannel != null && !isChannelBlockable()) {
- bar.setEnabled(false);
+ bar.setSwitchBarEnabled(false);
}
if (mChannelGroup != null && !isChannelGroupBlockable()) {
- bar.setEnabled(false);
+ bar.setSwitchBarEnabled(false);
}
if (mChannel == null && mAppRow.systemApp
&& (!mAppRow.banned || mAppRow.lockedImportance)) {
- bar.setEnabled(false);
+ bar.setSwitchBarEnabled(false);
}
if (mChannel != null) {
diff --git a/src/com/android/settings/notification/zen/ZenModeButtonPreferenceController.java b/src/com/android/settings/notification/zen/ZenModeButtonPreferenceController.java
index dc338bd5ac2..a4318835786 100644
--- a/src/com/android/settings/notification/zen/ZenModeButtonPreferenceController.java
+++ b/src/com/android/settings/notification/zen/ZenModeButtonPreferenceController.java
@@ -16,37 +16,33 @@
package com.android.settings.notification.zen;
-import static android.view.accessibility.AccessibilityEvent.TYPE_VIEW_FOCUSED;
-
import android.app.settings.SettingsEnums;
import android.content.Context;
import android.provider.Settings;
-import android.view.View;
-import android.widget.Button;
+import android.widget.Switch;
import androidx.fragment.app.FragmentManager;
import androidx.preference.Preference;
+import androidx.preference.PreferenceScreen;
-import com.android.settings.R;
import com.android.settings.core.PreferenceControllerMixin;
import com.android.settings.dashboard.DashboardFragment;
import com.android.settings.notification.SettingsEnableZenModeDialog;
import com.android.settingslib.core.lifecycle.Lifecycle;
-import com.android.settingslib.widget.LayoutPreference;
+import com.android.settingslib.widget.MainSwitchPreference;
+import com.android.settingslib.widget.OnMainSwitchChangeListener;
public class ZenModeButtonPreferenceController extends AbstractZenModePreferenceController
- implements PreferenceControllerMixin {
+ implements PreferenceControllerMixin, OnMainSwitchChangeListener {
+
+ private static final String TAG = "EnableZenModeButton";
public static final String KEY = "zen_mode_toggle";
- private static final String TAG = "EnableZenModeButton";
private final FragmentManager mFragment;
- // DND can also be toggled from QS. If DND wasn't toggled by this preference, don't
- // reroute focus.
- private boolean mRefocusButton = false;
- private Button mZenButtonOn;
- private Button mZenButtonOff;
+ // DND can also be toggled from QS.
+ private MainSwitchPreference mPreference;
public ZenModeButtonPreferenceController(Context context, Lifecycle lifecycle, FragmentManager
fragment) {
@@ -64,26 +60,27 @@ public class ZenModeButtonPreferenceController extends AbstractZenModePreference
return KEY;
}
+ @Override
+ public void displayPreference(PreferenceScreen screen) {
+ super.displayPreference(screen);
+ mPreference = (MainSwitchPreference) screen.findPreference(getPreferenceKey());
+ mPreference.addOnSwitchChangeListener(this);
+ }
+
+ @Override
+ public void onSwitchChanged(Switch switchView, boolean isChecked) {
+ if (isChecked) {
+ updateZenModeState(mPreference);
+ } else {
+ writeMetrics(mPreference, false);
+ mBackend.setZenMode(Settings.Global.ZEN_MODE_OFF);
+ }
+ }
+
@Override
public void updateState(Preference preference) {
super.updateState(preference);
- if (null == mZenButtonOn) {
- mZenButtonOn = ((LayoutPreference) preference)
- .findViewById(R.id.zen_mode_settings_turn_on_button);
- updateZenButtonOnClickListener(preference);
- }
-
- if (null == mZenButtonOff) {
- mZenButtonOff = ((LayoutPreference) preference)
- .findViewById(R.id.zen_mode_settings_turn_off_button);
- mZenButtonOff.setOnClickListener(v -> {
- mRefocusButton = true;
- writeMetrics(preference, false);
- mBackend.setZenMode(Settings.Global.ZEN_MODE_OFF);
- });
- }
-
updatePreference(preference);
}
@@ -92,41 +89,27 @@ public class ZenModeButtonPreferenceController extends AbstractZenModePreference
case Settings.Global.ZEN_MODE_ALARMS:
case Settings.Global.ZEN_MODE_IMPORTANT_INTERRUPTIONS:
case Settings.Global.ZEN_MODE_NO_INTERRUPTIONS:
- mZenButtonOff.setVisibility(View.VISIBLE);
- mZenButtonOn.setVisibility(View.GONE);
- if (mRefocusButton) {
- mRefocusButton = false;
- mZenButtonOff.sendAccessibilityEvent(TYPE_VIEW_FOCUSED);
- }
+ mPreference.updateStatus(true);
break;
case Settings.Global.ZEN_MODE_OFF:
default:
- mZenButtonOff.setVisibility(View.GONE);
- updateZenButtonOnClickListener(preference);
- mZenButtonOn.setVisibility(View.VISIBLE);
- if (mRefocusButton) {
- mRefocusButton = false;
- mZenButtonOn.sendAccessibilityEvent(TYPE_VIEW_FOCUSED);
- }
+ mPreference.updateStatus(false);
}
}
- private void updateZenButtonOnClickListener(Preference preference) {
- mZenButtonOn.setOnClickListener(v -> {
- mRefocusButton = true;
- writeMetrics(preference, true);
- int zenDuration = getZenDuration();
- switch (zenDuration) {
- case Settings.Secure.ZEN_DURATION_PROMPT:
- new SettingsEnableZenModeDialog().show(mFragment, TAG);
- break;
- case Settings.Secure.ZEN_DURATION_FOREVER:
- mBackend.setZenMode(Settings.Global.ZEN_MODE_IMPORTANT_INTERRUPTIONS);
- break;
- default:
- mBackend.setZenModeForDuration(zenDuration);
- }
- });
+ private void updateZenModeState(Preference preference) {
+ writeMetrics(preference, true);
+ int zenDuration = getZenDuration();
+ switch (zenDuration) {
+ case Settings.Secure.ZEN_DURATION_PROMPT:
+ new SettingsEnableZenModeDialog().show(mFragment, TAG);
+ break;
+ case Settings.Secure.ZEN_DURATION_FOREVER:
+ mBackend.setZenMode(Settings.Global.ZEN_MODE_IMPORTANT_INTERRUPTIONS);
+ break;
+ default:
+ mBackend.setZenModeForDuration(zenDuration);
+ }
}
private void writeMetrics(Preference preference, boolean buttonOn) {
@@ -135,4 +118,4 @@ public class ZenModeButtonPreferenceController extends AbstractZenModePreference
mMetricsFeatureProvider.action(mContext, SettingsEnums.ACTION_ZEN_TOGGLE_DND_BUTTON,
buttonOn);
}
-}
\ No newline at end of file
+}
diff --git a/src/com/android/settings/widget/SettingsMainSwitchPreference.java b/src/com/android/settings/widget/SettingsMainSwitchPreference.java
index 4597842f6e3..2a7aa7384a6 100644
--- a/src/com/android/settings/widget/SettingsMainSwitchPreference.java
+++ b/src/com/android/settings/widget/SettingsMainSwitchPreference.java
@@ -17,8 +17,11 @@
package com.android.settings.widget;
import android.content.Context;
+import android.content.res.TypedArray;
+import android.text.TextUtils;
import android.util.AttributeSet;
+import androidx.core.content.res.TypedArrayUtils;
import androidx.preference.PreferenceViewHolder;
import androidx.preference.TwoStatePreference;
@@ -47,23 +50,23 @@ public class SettingsMainSwitchPreference extends TwoStatePreference {
public SettingsMainSwitchPreference(Context context) {
super(context);
- init();
+ init(context, null);
}
public SettingsMainSwitchPreference(Context context, AttributeSet attrs) {
super(context, attrs);
- init();
+ init(context, attrs);
}
public SettingsMainSwitchPreference(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
- init();
+ init(context, attrs);
}
public SettingsMainSwitchPreference(Context context, AttributeSet attrs, int defStyleAttr,
int defStyleRes) {
super(context, attrs, defStyleAttr, defStyleRes);
- init();
+ init(context, attrs);
}
@Override
@@ -79,8 +82,21 @@ public class SettingsMainSwitchPreference extends TwoStatePreference {
registerListenerToSwitchBar();
}
- private void init() {
+ private void init(Context context, AttributeSet attrs) {
setLayoutResource(R.layout.preference_widget_main_switch);
+
+ if (attrs != null) {
+ TypedArray a = context.obtainStyledAttributes(attrs,
+ androidx.preference.R.styleable.Preference, 0/*defStyleAttr*/,
+ 0/*defStyleRes*/);
+ final CharSequence title = TypedArrayUtils.getText(a,
+ androidx.preference.R.styleable.Preference_title,
+ androidx.preference.R.styleable.Preference_android_title);
+ if (!TextUtils.isEmpty(title)) {
+ setTitle(title.toString());
+ }
+ a.recycle();
+ }
}
/**
@@ -153,7 +169,7 @@ public class SettingsMainSwitchPreference extends TwoStatePreference {
/**
* Enable or disable the text and switch.
*/
- public void setEnabled(boolean enabled) {
+ public void setSwitchBarEnabled(boolean enabled) {
if (mMainSwitchBar != null) {
mMainSwitchBar.setEnabled(enabled);
}
diff --git a/tests/robotests/src/com/android/settings/display/NightDisplayActivationPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/display/NightDisplayActivationPreferenceControllerTest.java
index bad112a4388..d084c512938 100644
--- a/tests/robotests/src/com/android/settings/display/NightDisplayActivationPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/display/NightDisplayActivationPreferenceControllerTest.java
@@ -21,13 +21,11 @@ import static org.mockito.Mockito.when;
import android.content.Context;
import android.hardware.display.ColorDisplayManager;
-import android.view.View;
import androidx.preference.PreferenceScreen;
-import com.android.settings.R;
import com.android.settings.testutils.shadow.SettingsShadowResources;
-import com.android.settingslib.widget.LayoutPreference;
+import com.android.settingslib.widget.MainSwitchPreference;
import org.junit.After;
import org.junit.Before;
@@ -45,7 +43,7 @@ public class NightDisplayActivationPreferenceControllerTest {
@Mock
private PreferenceScreen mScreen;
- private LayoutPreference mPreference;
+ private MainSwitchPreference mPreference;
private Context mContext;
private ColorDisplayManager mColorDisplayManager;
private NightDisplayActivationPreferenceController mPreferenceController;
@@ -55,7 +53,7 @@ public class NightDisplayActivationPreferenceControllerTest {
MockitoAnnotations.initMocks(this);
mContext = RuntimeEnvironment.application;
mColorDisplayManager = mContext.getSystemService(ColorDisplayManager.class);
- mPreference = new LayoutPreference(mContext, R.layout.night_display_activation_button);
+ mPreference = new MainSwitchPreference(mContext);
when(mScreen.findPreference(anyString())).thenReturn(mPreference);
mPreferenceController = new NightDisplayActivationPreferenceController(mContext,
"night_display_activation");
@@ -104,9 +102,9 @@ public class NightDisplayActivationPreferenceControllerTest {
public void onClick_activates() {
mColorDisplayManager.setNightDisplayActivated(false);
- final View view = mPreference.findViewById(R.id.night_display_turn_on_button);
- assertThat(view.getVisibility()).isEqualTo(View.VISIBLE);
- view.performClick();
+ final NightDisplayActivationPreferenceController controller =
+ new NightDisplayActivationPreferenceController(mContext, "night_display_activated");
+ controller.onSwitchChanged(null, true);
assertThat(mColorDisplayManager.isNightDisplayActivated()).isEqualTo(true);
}
@@ -115,9 +113,9 @@ public class NightDisplayActivationPreferenceControllerTest {
public void onClick_deactivates() {
mColorDisplayManager.setNightDisplayActivated(true);
- final View view = mPreference.findViewById(R.id.night_display_turn_off_button);
- assertThat(view.getVisibility()).isEqualTo(View.VISIBLE);
- view.performClick();
+ final NightDisplayActivationPreferenceController controller =
+ new NightDisplayActivationPreferenceController(mContext, "night_display_activated");
+ controller.onSwitchChanged(null, false);
assertThat(mColorDisplayManager.isNightDisplayActivated()).isEqualTo(false);
}
diff --git a/tests/robotests/src/com/android/settings/display/darkmode/DarkModeActivationPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/display/darkmode/DarkModeActivationPreferenceControllerTest.java
index 33d0927c5d3..0d4646e9106 100644
--- a/tests/robotests/src/com/android/settings/display/darkmode/DarkModeActivationPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/display/darkmode/DarkModeActivationPreferenceControllerTest.java
@@ -23,9 +23,8 @@ import static org.junit.Assert.assertEquals;
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.ArgumentMatchers.anyBoolean;
import static org.mockito.ArgumentMatchers.anyString;
-import static org.mockito.Mockito.eq;
import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.when;
import android.app.UiModeManager;
@@ -33,13 +32,12 @@ import android.content.Context;
import android.content.res.Configuration;
import android.content.res.Resources;
import android.os.PowerManager;
-import android.view.View;
-import android.widget.Button;
import androidx.preference.PreferenceScreen;
import com.android.settings.R;
-import com.android.settingslib.widget.LayoutPreference;
+import com.android.settings.testutils.FakeFeatureFactory;
+import com.android.settingslib.widget.MainSwitchPreference;
import org.junit.Before;
import org.junit.Test;
@@ -47,6 +45,7 @@ import org.junit.runner.RunWith;
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
import org.robolectric.RobolectricTestRunner;
+import org.robolectric.RuntimeEnvironment;
import java.util.Locale;
@@ -54,25 +53,21 @@ import java.util.Locale;
public class DarkModeActivationPreferenceControllerTest {
private DarkModeActivationPreferenceController mController;
private String mPreferenceKey = "key";
+
@Mock
- private LayoutPreference mPreference;
+ private MainSwitchPreference mPreference;
@Mock
private PreferenceScreen mScreen;
@Mock
private Resources res;
@Mock
- private Context mContext;
- @Mock
private UiModeManager mService;
@Mock
- private Button mTurnOffButton;
- @Mock
- private Button mTurnOnButton;
- @Mock
private PowerManager mPM;
@Mock
private TimeFormatter mFormat;
+ private Context mContext;
private Configuration mConfigNightYes = new Configuration();
private Configuration mConfigNightNo = new Configuration();
private Locale mLocal = new Locale("ENG");
@@ -80,16 +75,14 @@ public class DarkModeActivationPreferenceControllerTest {
@Before
public void setUp() {
MockitoAnnotations.initMocks(this);
+ FakeFeatureFactory.setupForTest();
+ mContext = spy(RuntimeEnvironment.application);
mService = mock(UiModeManager.class);
when(mContext.getResources()).thenReturn(res);
when(res.getConfiguration()).thenReturn(mConfigNightNo);
when(mContext.getSystemService(UiModeManager.class)).thenReturn(mService);
when(mContext.getSystemService(PowerManager.class)).thenReturn(mPM);
when(mScreen.findPreference(anyString())).thenReturn(mPreference);
- when(mPreference.findViewById(
- eq(R.id.dark_ui_turn_on_button))).thenReturn(mTurnOnButton);
- when(mPreference.findViewById(
- eq(R.id.dark_ui_turn_off_button))).thenReturn(mTurnOffButton);
when(mService.setNightModeActivated(anyBoolean())).thenReturn(true);
when(mFormat.of(any())).thenReturn("10:00 AM");
when(mContext.getString(
@@ -124,66 +117,55 @@ public class DarkModeActivationPreferenceControllerTest {
public void nightMode_toggleButton_offManual() {
when(mService.getNightMode()).thenReturn(UiModeManager.MODE_NIGHT_YES);
when(res.getConfiguration()).thenReturn(mConfigNightYes);
+ final MainSwitchPreference preference = new MainSwitchPreference(mContext);
mController.updateState(mPreference);
- verify(mTurnOnButton).setVisibility(eq(View.GONE));
- verify(mTurnOffButton).setVisibility(eq(View.VISIBLE));
- verify(mTurnOffButton).setText(eq(mContext.getString(
- R.string.dark_ui_activation_off_manual)));
+ assertThat(preference.isChecked()).isFalse();
}
@Test
public void nightMode_toggleButton_offCustom() {
when(mService.getNightMode()).thenReturn(UiModeManager.MODE_NIGHT_CUSTOM);
when(res.getConfiguration()).thenReturn(mConfigNightYes);
+ final MainSwitchPreference preference = new MainSwitchPreference(mContext);
- mController.updateState(mPreference);
+ mController.updateState(preference);
- verify(mTurnOnButton).setVisibility(eq(View.GONE));
- verify(mTurnOffButton).setVisibility(eq(View.VISIBLE));
- verify(mTurnOffButton).setText(eq(mContext.getString(
- R.string.dark_ui_activation_off_custom)));
+ assertThat(preference.isChecked()).isFalse();
}
@Test
public void nightMode_toggleButton_onCustom() {
when(mService.getNightMode()).thenReturn(UiModeManager.MODE_NIGHT_CUSTOM);
when(res.getConfiguration()).thenReturn(mConfigNightYes);
+ final MainSwitchPreference preference = new MainSwitchPreference(mContext);
- mController.updateState(mPreference);
+ mController.updateState(preference);
- verify(mTurnOnButton).setVisibility(eq(View.GONE));
- verify(mTurnOffButton).setVisibility(eq(View.VISIBLE));
- verify(mTurnOffButton).setText(eq(mContext.getString(
- R.string.dark_ui_activation_on_custom)));
+ assertThat(preference.isChecked()).isFalse();
}
-
@Test
public void nightMode_toggleButton_onAutoWhenModeIsYes() {
when(mService.getNightMode()).thenReturn(UiModeManager.MODE_NIGHT_YES);
when(res.getConfiguration()).thenReturn(mConfigNightNo);
+ final MainSwitchPreference preference = new MainSwitchPreference(mContext, null);
- mController.updateState(mPreference);
+ mController.updateState(preference);
- verify(mTurnOffButton).setVisibility(eq(View.GONE));
- verify(mTurnOnButton).setVisibility(eq(View.VISIBLE));
- verify(mTurnOnButton).setText(eq(mContext.getString(
- R.string.dark_ui_activation_on_manual)));
+ assertThat(preference.isChecked()).isFalse();
}
@Test
public void nightMode_toggleButton_onAutoWhenModeIsAuto() {
when(mService.getNightMode()).thenReturn(UiModeManager.MODE_NIGHT_AUTO);
when(res.getConfiguration()).thenReturn(mConfigNightNo);
+ final MainSwitchPreference preference = new MainSwitchPreference(mContext);
- mController.updateState(mPreference);
+ mController.updateState(preference);
- verify(mTurnOffButton).setVisibility(eq(View.GONE));
- verify(mTurnOnButton).setVisibility(eq(View.VISIBLE));
- verify(mTurnOnButton).setText(eq(mContext.getString(
- R.string.dark_ui_activation_on_auto)));
+ assertThat(preference.isChecked()).isFalse();
}
@Test
@@ -207,9 +189,10 @@ public class DarkModeActivationPreferenceControllerTest {
@Test
public void buttonVisisbility_hideButton_offWhenInPowerSaveMode() {
when(mPM.isPowerSaveMode()).thenReturn(true);
- mController.updateState(mPreference);
- verify(mTurnOffButton).setVisibility(eq(View.GONE));
- verify(mTurnOnButton).setVisibility(eq(View.GONE));
+ final MainSwitchPreference preference = new MainSwitchPreference(mContext);
+
+ mController.updateState(preference);
+ assertThat(preference.isChecked()).isFalse();
}
@Test
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/SmartBatteryPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/fuelgauge/SmartBatteryPreferenceControllerTest.java
index 91e7b0486d3..a1f3bda371c 100644
--- a/tests/robotests/src/com/android/settings/fuelgauge/SmartBatteryPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/fuelgauge/SmartBatteryPreferenceControllerTest.java
@@ -21,12 +21,12 @@ import static com.google.common.truth.Truth.assertThat;
import static org.mockito.Mockito.doReturn;
import android.content.ContentResolver;
+import android.content.Context;
import android.provider.Settings;
-import androidx.preference.SwitchPreference;
-
import com.android.settings.core.BasePreferenceController;
import com.android.settings.testutils.FakeFeatureFactory;
+import com.android.settingslib.widget.MainSwitchPreference;
import org.junit.Before;
import org.junit.Test;
@@ -42,48 +42,50 @@ public class SmartBatteryPreferenceControllerTest {
private static final int OFF = 0;
private SmartBatteryPreferenceController mController;
- private SwitchPreference mPreference;
private ContentResolver mContentResolver;
private FakeFeatureFactory mFeatureFactory;
+ private Context mContext;
@Before
public void setUp() {
MockitoAnnotations.initMocks(this);
+ mContext = RuntimeEnvironment.application;
mFeatureFactory = FakeFeatureFactory.setupForTest();
mContentResolver = RuntimeEnvironment.application.getContentResolver();
mController = new SmartBatteryPreferenceController(RuntimeEnvironment.application);
- mPreference = new SwitchPreference(RuntimeEnvironment.application);
}
@Test
public void testUpdateState_smartBatteryOn_preferenceChecked() {
putSmartBatteryValue(ON);
+ final MainSwitchPreference preference = new MainSwitchPreference(mContext);
- mController.updateState(mPreference);
+ mController.updateState(preference);
- assertThat(mPreference.isChecked()).isTrue();
+ assertThat(preference.isChecked()).isTrue();
}
@Test
public void testUpdateState_smartBatteryOff_preferenceUnchecked() {
putSmartBatteryValue(OFF);
+ final MainSwitchPreference preference = new MainSwitchPreference(mContext);
- mController.updateState(mPreference);
+ mController.updateState(preference);
- assertThat(mPreference.isChecked()).isFalse();
+ assertThat(preference.isChecked()).isFalse();
}
@Test
public void testUpdateState_checkPreference_smartBatteryOn() {
- mController.onPreferenceChange(mPreference, true);
+ mController.onSwitchChanged(null, true);
assertThat(getSmartBatteryValue()).isEqualTo(ON);
}
@Test
public void testUpdateState_unCheckPreference_smartBatteryOff() {
- mController.onPreferenceChange(mPreference, false);
+ mController.onSwitchChanged(null, false);
assertThat(getSmartBatteryValue()).isEqualTo(OFF);
}
diff --git a/tests/robotests/src/com/android/settings/nfc/NfcEnablerTest.java b/tests/robotests/src/com/android/settings/nfc/NfcEnablerTest.java
index c3dfe48a775..cc451906214 100644
--- a/tests/robotests/src/com/android/settings/nfc/NfcEnablerTest.java
+++ b/tests/robotests/src/com/android/settings/nfc/NfcEnablerTest.java
@@ -26,7 +26,7 @@ import android.content.Context;
import android.nfc.NfcAdapter;
import android.provider.Settings;
-import androidx.preference.SwitchPreference;
+import com.android.settingslib.widget.MainSwitchPreference;
import org.junit.Before;
import org.junit.Test;
@@ -40,7 +40,7 @@ import org.robolectric.RuntimeEnvironment;
public class NfcEnablerTest {
@Mock
- private SwitchPreference mNfcPreference;
+ private MainSwitchPreference mNfcPreference;
private Context mContext;
private NfcEnabler mNfcEnabler;
diff --git a/tests/robotests/src/com/android/settings/nfc/NfcPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/nfc/NfcPreferenceControllerTest.java
index 1d0516230a4..3ca553bc3ba 100644
--- a/tests/robotests/src/com/android/settings/nfc/NfcPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/nfc/NfcPreferenceControllerTest.java
@@ -31,11 +31,11 @@ import android.os.UserManager;
import android.provider.Settings;
import androidx.preference.PreferenceScreen;
-import androidx.preference.SwitchPreference;
import com.android.settings.nfc.NfcPreferenceController.NfcSliceWorker;
import com.android.settings.nfc.NfcPreferenceController.NfcSliceWorker.NfcUpdateReceiver;
import com.android.settings.testutils.shadow.ShadowNfcAdapter;
+import com.android.settingslib.widget.MainSwitchPreference;
import org.junit.Before;
import org.junit.Test;
@@ -63,7 +63,7 @@ public class NfcPreferenceControllerTest {
private PreferenceScreen mScreen;
private Context mContext;
- private SwitchPreference mNfcPreference;
+ private MainSwitchPreference mNfcPreference;
private NfcPreferenceController mNfcController;
private ShadowNfcAdapter mShadowNfcAdapter;
private NfcAdapter mNfcAdapter;
@@ -81,7 +81,7 @@ public class NfcPreferenceControllerTest {
mNfcController = new NfcPreferenceController(mContext,
NfcPreferenceController.KEY_TOGGLE_NFC);
- mNfcPreference = new SwitchPreference(RuntimeEnvironment.application);
+ mNfcPreference = new MainSwitchPreference(RuntimeEnvironment.application);
when(mScreen.findPreference(mNfcController.getPreferenceKey())).thenReturn(mNfcPreference);
}
diff --git a/tests/robotests/src/com/android/settings/notification/zen/ZenModeButtonPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/notification/zen/ZenModeButtonPreferenceControllerTest.java
index 12004026078..9daef1aeeb2 100644
--- a/tests/robotests/src/com/android/settings/notification/zen/ZenModeButtonPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/notification/zen/ZenModeButtonPreferenceControllerTest.java
@@ -22,24 +22,21 @@ import static android.provider.Settings.Global.ZEN_MODE_IMPORTANT_INTERRUPTIONS;
import static android.provider.Settings.Global.ZEN_MODE_NO_INTERRUPTIONS;
import static android.provider.Settings.Global.ZEN_MODE_OFF;
+import static com.google.common.truth.Truth.assertThat;
+
import static org.mockito.Mockito.mock;
-import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
import android.app.NotificationManager;
import android.content.ContentResolver;
import android.content.Context;
import android.provider.Settings;
-import android.view.View;
-import android.widget.Button;
import androidx.fragment.app.FragmentManager;
-import androidx.preference.Preference;
import androidx.preference.PreferenceScreen;
-import com.android.settings.notification.zen.ZenModeBackend;
-import com.android.settings.notification.zen.ZenModeButtonPreferenceController;
import com.android.settingslib.core.lifecycle.Lifecycle;
+import com.android.settingslib.widget.MainSwitchPreference;
import org.junit.Before;
import org.junit.Test;
@@ -61,14 +58,10 @@ public class ZenModeButtonPreferenceControllerTest {
@Mock
private NotificationManager mNotificationManager;
@Mock
- private Preference mockPref;
+ private MainSwitchPreference mMockPref;
@Mock
private NotificationManager.Policy mPolicy;
@Mock
- private Button mZenButtonOn;
- @Mock
- private Button mZenButtonOff;
- @Mock
private PreferenceScreen mPreferenceScreen;
private ContentResolver mContentResolver;
private Context mContext;
@@ -85,67 +78,65 @@ public class ZenModeButtonPreferenceControllerTest {
mock(FragmentManager.class));
when(mNotificationManager.getNotificationPolicy()).thenReturn(mPolicy);
ReflectionHelpers.setField(mController, "mBackend", mBackend);
- ReflectionHelpers.setField(mController, "mZenButtonOn", mZenButtonOn);
- ReflectionHelpers.setField(mController, "mZenButtonOff", mZenButtonOff);
- when(mPreferenceScreen.findPreference(mController.getPreferenceKey())).thenReturn(mockPref);
+ when(mPreferenceScreen.findPreference(mController.getPreferenceKey())).thenReturn(
+ mMockPref);
mController.displayPreference(mPreferenceScreen);
}
@Test
public void updateState_TotalSilence() {
Settings.Global.putInt(mContentResolver, ZEN_MODE, ZEN_MODE_NO_INTERRUPTIONS);
- final Preference mockPref = mock(Preference.class);
- mController.updateState(mockPref);
+ final MainSwitchPreference pref = new MainSwitchPreference(mContext);
- verify(mZenButtonOn).setVisibility(View.GONE);
- verify(mZenButtonOff).setVisibility(View.VISIBLE);
+ mController.updateState(pref);
+
+ assertThat(pref.isChecked()).isFalse();
}
@Test
public void updateState_AlarmsOnly() {
Settings.Global.putInt(mContentResolver, ZEN_MODE, ZEN_MODE_ALARMS);
- final Preference mockPref = mock(Preference.class);
- mController.updateState(mockPref);
+ final MainSwitchPreference pref = new MainSwitchPreference(mContext);
- verify(mZenButtonOn).setVisibility(View.GONE);
- verify(mZenButtonOff).setVisibility(View.VISIBLE);
+ mController.updateState(pref);
+
+ assertThat(pref.isChecked()).isFalse();
}
@Test
public void updateState_Priority() {
Settings.Global.putInt(mContentResolver, ZEN_MODE, ZEN_MODE_IMPORTANT_INTERRUPTIONS);
- final Preference mockPref = mock(Preference.class);
- mController.updateState(mockPref);
+ final MainSwitchPreference pref = new MainSwitchPreference(mContext);
- verify(mZenButtonOn).setVisibility(View.GONE);
- verify(mZenButtonOff).setVisibility(View.VISIBLE);
+ mController.updateState(pref);
+
+ assertThat(pref.isChecked()).isFalse();
}
@Test
public void updateState_ZenOff() {
Settings.Global.putInt(mContentResolver, ZEN_MODE, ZEN_MODE_OFF);
- final Preference mockPref = mock(Preference.class);
- mController.updateState(mockPref);
+ final MainSwitchPreference pref = new MainSwitchPreference(mContext);
- verify(mZenButtonOn).setVisibility(View.VISIBLE);
- verify(mZenButtonOff).setVisibility(View.GONE);
+ mController.updateState(pref);
+
+ assertThat(pref.isChecked()).isFalse();
}
@Test
public void updateState_otherUserChangedZen() {
- final Preference mockPref = mock(Preference.class);
Settings.Global.putInt(mContentResolver, ZEN_MODE, ZEN_MODE_OFF);
- mController.updateState(mockPref);
- verify(mZenButtonOn).setVisibility(View.VISIBLE);
- verify(mZenButtonOff).setVisibility(View.GONE);
+ final MainSwitchPreference pref = new MainSwitchPreference(mContext);
+ mController.updateState(pref);
+
+ assertThat(pref.isChecked()).isFalse();
Settings.Global.putInt(mContentResolver, ZEN_MODE, ZEN_MODE_IMPORTANT_INTERRUPTIONS);
final int GUEST_USER_ID = 10;
mController.mSettingObserver.onChange(false,
Settings.Global.getUriFor(Settings.Global.ZEN_MODE), GUEST_USER_ID);
- verify(mZenButtonOn).setVisibility(View.GONE);
- verify(mZenButtonOff).setVisibility(View.VISIBLE);
+ assertThat(pref.isChecked()).isFalse();
}
-}
\ No newline at end of file
+}