Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 5c8caa31 authored by Wesley.CW Wang's avatar Wesley.CW Wang Committed by Wesley Wang
Browse files

Reset smart battery page switch component

 - Reset the switch to default design

Bug: 178199757
Test: make RunSettingsRoboTests -j40
Change-Id: I698493a946d7c8daaac73bfd3aaab807244997b0
parent 6a8ca406
Loading
Loading
Loading
Loading
+7 −5
Original line number Diff line number Diff line
@@ -22,11 +22,6 @@
    android:title="@string/smart_battery_manager_title"
    settings:searchable="false">

    <com.android.settingslib.widget.MainSwitchPreference
        android:key="smart_battery"
        android:title="@string/adaptive_battery_main_switch_title"
        settings:controller="com.android.settings.fuelgauge.SmartBatteryPreferenceController"/>

    <com.android.settings.widget.VideoPreference
        android:key="auto_awesome_battery"
        android:title="@string/summary_placeholder"
@@ -34,6 +29,13 @@
        settings:preview="@drawable/auto_awesome_battery"
        settings:controller="com.android.settings.widget.VideoPreferenceController"/>

    <SwitchPreference
        android:key="smart_battery"
        android:title="@string/smart_battery_title"
        android:summary="@string/smart_battery_summary"
        settings:controller="com.android.settings.fuelgauge.SmartBatteryPreferenceController"
        settings:allowDividerAbove="true"/>

    <SwitchPreference
        android:key="auto_restriction"
        android:title="@string/battery_auto_restriction_title"
+7 −16
Original line number Diff line number Diff line
@@ -20,27 +20,23 @@ package com.android.settings.fuelgauge;
import android.content.Context;
import android.provider.Settings;
import android.text.TextUtils;
import android.widget.Switch;

import androidx.preference.Preference;
import androidx.preference.PreferenceScreen;
import androidx.preference.SwitchPreference;

import com.android.settings.core.BasePreferenceController;
import com.android.settings.overlay.FeatureFactory;
import com.android.settingslib.widget.MainSwitchPreference;
import com.android.settingslib.widget.OnMainSwitchChangeListener;

/**
 * Controller to change and update the smart battery toggle
 */
public class SmartBatteryPreferenceController extends BasePreferenceController implements
        OnMainSwitchChangeListener {
        Preference.OnPreferenceChangeListener {

    private static final String KEY_SMART_BATTERY = "smart_battery";
    private static final int ON = 1;
    private static final int OFF = 0;
    private PowerUsageFeatureProvider mPowerUsageFeatureProvider;
    private MainSwitchPreference mPreference;

    public SmartBatteryPreferenceController(Context context) {
        super(context, KEY_SMART_BATTERY);
@@ -70,19 +66,14 @@ public class SmartBatteryPreferenceController extends BasePreferenceController i
        super.updateState(preference);
        final boolean smartBatteryOn = Settings.Global.getInt(mContext.getContentResolver(),
                Settings.Global.ADAPTIVE_BATTERY_MANAGEMENT_ENABLED, ON) == ON;
        ((MainSwitchPreference) preference).updateStatus(smartBatteryOn);
        ((SwitchPreference) preference).setChecked(smartBatteryOn);
    }

    @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) {
    public boolean onPreferenceChange(Preference preference, Object newValue) {
        final boolean smartBatteryOn = (Boolean) newValue;
        Settings.Global.putInt(mContext.getContentResolver(),
                Settings.Global.ADAPTIVE_BATTERY_MANAGEMENT_ENABLED, isChecked ? ON : OFF);
                Settings.Global.ADAPTIVE_BATTERY_MANAGEMENT_ENABLED, smartBatteryOn ? ON : OFF);
        return true;
    }
}
+10 −11
Original line number Diff line number Diff line
@@ -21,9 +21,10 @@ 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;
@@ -42,50 +43,48 @@ 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(preference);
        mController.updateState(mPreference);

        assertThat(preference.isChecked()).isTrue();
        assertThat(mPreference.isChecked()).isTrue();
    }

    @Test
    public void testUpdateState_smartBatteryOff_preferenceUnchecked() {
        putSmartBatteryValue(OFF);
        final MainSwitchPreference preference = new MainSwitchPreference(mContext);

        mController.updateState(preference);
        mController.updateState(mPreference);

        assertThat(preference.isChecked()).isFalse();
        assertThat(mPreference.isChecked()).isFalse();
    }

    @Test
    public void testUpdateState_checkPreference_smartBatteryOn() {
        mController.onSwitchChanged(null, true);
        mController.onPreferenceChange(mPreference, true);

        assertThat(getSmartBatteryValue()).isEqualTo(ON);
    }

    @Test
    public void testUpdateState_unCheckPreference_smartBatteryOff() {
        mController.onSwitchChanged(null, false);
        mController.onPreferenceChange(mPreference, false);

        assertThat(getSmartBatteryValue()).isEqualTo(OFF);
    }