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

Commit 7effe64c authored by Wesley Wang's avatar Wesley Wang
Browse files

Remove unused listener

 - Remove OnMainSwitchChangeListener and it's interface since the
   callback will duplicate with setCheck() method, cause the toggle on
   event come with twice while on and off, in futher to casue some
   duplicate work or error metrics logging

Bug: 218405966
Test: make SettingsRoboTests
Change-Id: If20ed6488d21443b9c623e8fe4de383a84ea673a
parent c81b12aa
Loading
Loading
Loading
Loading
+2 −17
Original line number Diff line number Diff line
@@ -22,9 +22,7 @@ import android.net.Uri;
import android.os.Handler;
import android.os.Looper;
import android.os.PowerManager;
import android.provider.Settings;
import android.provider.SettingsSlicesContract;
import android.widget.Switch;

import androidx.preference.PreferenceScreen;

@@ -36,15 +34,13 @@ import com.android.settingslib.core.lifecycle.events.OnStart;
import com.android.settingslib.core.lifecycle.events.OnStop;
import com.android.settingslib.fuelgauge.BatterySaverUtils;
import com.android.settingslib.widget.MainSwitchPreference;
import com.android.settingslib.widget.OnMainSwitchChangeListener;


/**
 * Controller to update the battery saver button
 */
public class BatterySaverButtonPreferenceController extends
        TogglePreferenceController implements OnMainSwitchChangeListener, LifecycleObserver,
        OnStart, OnStop, BatterySaverReceiver.BatterySaverListener {
        TogglePreferenceController implements LifecycleObserver, OnStart, OnStop,
        BatterySaverReceiver.BatterySaverListener {
    private static final long SWITCH_ANIMATION_DURATION = 350L;

    private final BatterySaverReceiver mBatterySaverReceiver;
@@ -96,20 +92,9 @@ public class BatterySaverButtonPreferenceController extends
    public void displayPreference(PreferenceScreen screen) {
        super.displayPreference(screen);
        mPreference = screen.findPreference(getPreferenceKey());
        mPreference.addOnSwitchChangeListener(this);
        mPreference.updateStatus(isChecked());
    }

    @Override
    public void onSwitchChanged(Switch switchView, boolean isChecked) {
        // Cancel preference's check state once it's first time launch
        if (isChecked && (Settings.Secure.getInt(mContext.getContentResolver(),
                Settings.Secure.LOW_POWER_WARNING_ACKNOWLEDGED, 0) == 0)) {
            mPreference.setChecked(false);
        }
        setChecked(isChecked);
    }

    @Override
    public boolean isChecked() {
        return mPowerManager.isPowerSaveMode();
+0 −31
Original line number Diff line number Diff line
@@ -26,7 +26,6 @@ import static org.mockito.Mockito.when;

import android.content.Context;
import android.os.PowerManager;
import android.provider.Settings;
import android.provider.SettingsSlicesContract;

import androidx.preference.PreferenceScreen;
@@ -72,24 +71,6 @@ public class BatterySaverButtonPreferenceControllerTest {
                .isEqualTo(SettingsSlicesContract.AUTHORITY);
    }

    @Test
    public void onSwitchChanged_isCheckedButNotAcked_preferenceIsUnchecked() {
        setLowPowerWarningAcked(/* acked= */ 0);

        mController.onSwitchChanged(/* switchView= */ null, /* isChecked= */ true);

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

    @Test
    public void onSwitchChanged_isCheckedAndAcked_setPowerSaveMode() {
        setLowPowerWarningAcked(/* acked= */ 1);

        mController.onSwitchChanged(/* switchView= */ null, /* isChecked= */ true);

        verify(mPowerManager).setPowerSaveModeEnabled(true);
    }

    @Test
    public void updateState_lowPowerOn_preferenceIsChecked() {
        when(mPowerManager.isPowerSaveMode()).thenReturn(true);
@@ -140,16 +121,4 @@ public class BatterySaverButtonPreferenceControllerTest {
    public void isPublicSlice_returnsTrue() {
        assertThat(mController.isPublicSlice()).isTrue();
    }

    // 0 means not acked, 1 means acked.
    private void setLowPowerWarningAcked(int acked) {
        Settings.Secure.putInt(
                mContext.getContentResolver(),
                Settings.Secure.LOW_POWER_WARNING_ACKNOWLEDGED,
                acked);
        Settings.Secure.putInt(
                mContext.getContentResolver(),
                Settings.Secure.EXTRA_LOW_POWER_WARNING_ACKNOWLEDGED,
                acked);
    }
}