diff --git a/res/xml/power_usage_summary.xml b/res/xml/power_usage_summary.xml
index ac96151..6768ce6 100644
--- a/res/xml/power_usage_summary.xml
+++ b/res/xml/power_usage_summary.xml
@@ -33,7 +33,7 @@
     <PreferenceCategory
         android:key="power_management">
 
-        <com.android.settings.widget.MasterSwitchPreference
+        <Preference
             android:fragment="com.android.settings.fuelgauge.batterysaver.BatterySaverSettings"
             android:key="battery_saver_summary"
             android:title="@string/battery_saver"
diff --git a/src/com/android/settings/fuelgauge/BatterySaverController.java b/src/com/android/settings/fuelgauge/BatterySaverController.java
index f139f31..086cdde 100644
--- a/src/com/android/settings/fuelgauge/BatterySaverController.java
+++ b/src/com/android/settings/fuelgauge/BatterySaverController.java
@@ -22,24 +22,24 @@
 import android.os.PowerManager;
 import android.provider.Settings;
 import android.support.annotation.VisibleForTesting;
+import android.support.v7.preference.Preference;
 import android.support.v7.preference.PreferenceScreen;
 
 import com.android.settings.R;
 import com.android.settings.Utils;
-import com.android.settings.core.TogglePreferenceController;
+import com.android.settings.core.BasePreferenceController;
 import com.android.settings.dashboard.conditional.BatterySaverCondition;
 import com.android.settings.dashboard.conditional.ConditionManager;
-import com.android.settings.widget.MasterSwitchPreference;
 import com.android.settingslib.core.lifecycle.LifecycleObserver;
 import com.android.settingslib.core.lifecycle.events.OnStart;
 import com.android.settingslib.core.lifecycle.events.OnStop;
 
-public class BatterySaverController extends TogglePreferenceController
+public class BatterySaverController extends BasePreferenceController
         implements LifecycleObserver, OnStart, OnStop, BatterySaverReceiver.BatterySaverListener {
     private static final String KEY_BATTERY_SAVER = "battery_saver_summary";
     private final BatterySaverReceiver mBatteryStateChangeReceiver;
     private final PowerManager mPowerManager;
-    private MasterSwitchPreference mBatterySaverPref;
+    private Preference mBatterySaverPref;
 
     public BatterySaverController(Context context) {
         super(context, KEY_BATTERY_SAVER);
@@ -62,24 +62,7 @@
     @Override
     public void displayPreference(PreferenceScreen screen) {
         super.displayPreference(screen);
-        mBatterySaverPref = (MasterSwitchPreference) screen.findPreference(KEY_BATTERY_SAVER);
-    }
-
-    @Override
-    public boolean setChecked(boolean isChecked) {
-        mBatterySaverPref.setChecked(isChecked);
-        if (!mPowerManager.setPowerSaveMode(isChecked)) {
-            return false;
-        }
-
-        refreshConditionManager();
-        updateSummary();
-        return true;
-    }
-
-    @Override
-    public boolean isChecked() {
-        return mPowerManager.isPowerSaveMode();
+        mBatterySaverPref = screen.findPreference(KEY_BATTERY_SAVER);
     }
 
     @Override
@@ -89,6 +72,7 @@
                 , true, mObserver);
 
         mBatteryStateChangeReceiver.setListening(true);
+        updateSummary();
     }
 
     @Override
@@ -130,12 +114,10 @@
 
     @Override
     public void onPowerSaveModeChanged() {
-        mBatterySaverPref.setChecked(mPowerManager.isPowerSaveMode());
         updateSummary();
     }
 
     @Override
     public void onBatteryChanged(boolean pluggedIn) {
-        mBatterySaverPref.setSwitchEnabled(!pluggedIn);
     }
 }
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/BatterySaverControllerTest.java b/tests/robotests/src/com/android/settings/fuelgauge/BatterySaverControllerTest.java
index 965684e..8924fa7 100644
--- a/tests/robotests/src/com/android/settings/fuelgauge/BatterySaverControllerTest.java
+++ b/tests/robotests/src/com/android/settings/fuelgauge/BatterySaverControllerTest.java
@@ -15,16 +15,21 @@
  */
 package com.android.settings.fuelgauge;
 
+import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.ArgumentMatchers.anyInt;
+import static org.mockito.ArgumentMatchers.eq;
 import static org.mockito.Mockito.doNothing;
 import static org.mockito.Mockito.spy;
 import static org.mockito.Mockito.verify;
 import static org.mockito.Mockito.when;
 
+import android.content.ContentResolver;
 import android.content.Context;
 import android.os.PowerManager;
+import android.support.v7.preference.Preference;
 
+import com.android.settings.R;
 import com.android.settings.testutils.SettingsRobolectricTestRunner;
-import com.android.settings.widget.MasterSwitchPreference;
 import com.android.settingslib.core.lifecycle.Lifecycle;
 
 import org.junit.Before;
@@ -38,15 +43,19 @@
 public class BatterySaverControllerTest {
 
     @Mock
-    private MasterSwitchPreference mBatterySaverPref;
+    private Preference mBatterySaverPref;
     @Mock
     private PowerManager mPowerManager;
     @Mock
     private Context mContext;
     @Mock
-    private Lifecycle mLifecycle;
+    private ContentResolver mContentResolver;
+
     private BatterySaverController mBatterySaverController;
 
+    private static final String SAVER_ON_SUMMARY = "saver-on";
+    private static final String SAVER_OFF_SUMMARY = "saver-off";
+
     @Before
     public void setUp() {
         MockitoAnnotations.initMocks(this);
@@ -55,54 +64,27 @@
         ReflectionHelpers.setField(mBatterySaverController, "mPowerManager", mPowerManager);
         ReflectionHelpers.setField(mBatterySaverController, "mBatterySaverPref", mBatterySaverPref);
         doNothing().when(mBatterySaverController).refreshConditionManager();
+
+        when(mContext.getContentResolver()).thenReturn(mContentResolver);
+
+        when(mContext.getString(anyInt(), any(Object.class)))
+                .thenAnswer((inv) -> "str-" + inv.getArgument(0));
+
+        when(mContext.getString(eq(R.string.battery_saver_on_summary), any(Object.class)))
+                .thenReturn(SAVER_ON_SUMMARY);
+        when(mContext.getString(eq(R.string.battery_saver_off_summary), any(Object.class)))
+                .thenReturn(SAVER_OFF_SUMMARY);
     }
 
     @Test
-    public void testOnPreferenceChange_TurnOnBatterySaver_BatterySaverOn() {
-        testOnPreferenceChangeInner(true);
+    public void testOnPreferenceChange_onStart() {
+        mBatterySaverController.onStart();
+        verify(mBatterySaverPref).setSummary(eq(SAVER_OFF_SUMMARY));
     }
 
     @Test
-    public void testOnPreferenceChange_TurnOffBatterySaver_BatterySaverOff() {
-        testOnPreferenceChangeInner(false);
-    }
-
-    @Test
-    public void testUpdateState_SaverModeOn_PreferenceChecked() {
-        testUpdateStateInner(true);
-    }
-
-    @Test
-    public void testUpdateState_SaverModeOff_PreferenceUnChecked() {
-        testUpdateStateInner(false);
-    }
-
-    @Test
-    public void testOnBatteryChanged_pluggedIn_setDisable() {
-        mBatterySaverController.onBatteryChanged(true /* pluggedIn */);
-
-        verify(mBatterySaverPref).setSwitchEnabled(false);
-    }
-
-    @Test
-    public void testOnBatteryChanged_notPluggedIn_setEnable() {
-        mBatterySaverController.onBatteryChanged(false /* pluggedIn */);
-
-        verify(mBatterySaverPref).setSwitchEnabled(true);
-    }
-
-    private void testOnPreferenceChangeInner(final boolean saverOn) {
-        when(mPowerManager.setPowerSaveMode(saverOn)).thenReturn(true);
-        when(mPowerManager.isPowerSaveMode()).thenReturn(!saverOn);
-
-        mBatterySaverController.onPreferenceChange(mBatterySaverPref, saverOn);
-        verify(mPowerManager).setPowerSaveMode(saverOn);
-    }
-
-    private void testUpdateStateInner(final boolean saverOn) {
-        when(mPowerManager.isPowerSaveMode()).thenReturn(saverOn);
-
-        mBatterySaverController.updateState(mBatterySaverPref);
-        verify(mBatterySaverPref).setChecked(saverOn);
+    public void testOnPreferenceChange_onPowerSaveModeChanged() {
+        mBatterySaverController.onPowerSaveModeChanged();
+        verify(mBatterySaverPref).setSummary(eq(SAVER_OFF_SUMMARY));
     }
 }
