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

Commit 4559d22e authored by Wesley Wang's avatar Wesley Wang Committed by Android (Google) Code Review
Browse files

Merge "Reset smart battery page switch component" into sc-dev

parents fecfb7f5 5c8caa31
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);
    }