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
This commit is contained in:
Wesley Wang
2023-03-30 12:05:57 +08:00
parent c81b12aabf
commit 7effe64c18
2 changed files with 2 additions and 48 deletions

View File

@@ -22,9 +22,7 @@ import android.net.Uri;
import android.os.Handler; import android.os.Handler;
import android.os.Looper; import android.os.Looper;
import android.os.PowerManager; import android.os.PowerManager;
import android.provider.Settings;
import android.provider.SettingsSlicesContract; import android.provider.SettingsSlicesContract;
import android.widget.Switch;
import androidx.preference.PreferenceScreen; 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.core.lifecycle.events.OnStop;
import com.android.settingslib.fuelgauge.BatterySaverUtils; import com.android.settingslib.fuelgauge.BatterySaverUtils;
import com.android.settingslib.widget.MainSwitchPreference; import com.android.settingslib.widget.MainSwitchPreference;
import com.android.settingslib.widget.OnMainSwitchChangeListener;
/** /**
* Controller to update the battery saver button * Controller to update the battery saver button
*/ */
public class BatterySaverButtonPreferenceController extends public class BatterySaverButtonPreferenceController extends
TogglePreferenceController implements OnMainSwitchChangeListener, LifecycleObserver, TogglePreferenceController implements LifecycleObserver, OnStart, OnStop,
OnStart, OnStop, BatterySaverReceiver.BatterySaverListener { BatterySaverReceiver.BatterySaverListener {
private static final long SWITCH_ANIMATION_DURATION = 350L; private static final long SWITCH_ANIMATION_DURATION = 350L;
private final BatterySaverReceiver mBatterySaverReceiver; private final BatterySaverReceiver mBatterySaverReceiver;
@@ -96,20 +92,9 @@ public class BatterySaverButtonPreferenceController extends
public void displayPreference(PreferenceScreen screen) { public void displayPreference(PreferenceScreen screen) {
super.displayPreference(screen); super.displayPreference(screen);
mPreference = screen.findPreference(getPreferenceKey()); mPreference = screen.findPreference(getPreferenceKey());
mPreference.addOnSwitchChangeListener(this);
mPreference.updateStatus(isChecked()); 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 @Override
public boolean isChecked() { public boolean isChecked() {
return mPowerManager.isPowerSaveMode(); return mPowerManager.isPowerSaveMode();

View File

@@ -26,7 +26,6 @@ import static org.mockito.Mockito.when;
import android.content.Context; import android.content.Context;
import android.os.PowerManager; import android.os.PowerManager;
import android.provider.Settings;
import android.provider.SettingsSlicesContract; import android.provider.SettingsSlicesContract;
import androidx.preference.PreferenceScreen; import androidx.preference.PreferenceScreen;
@@ -72,24 +71,6 @@ public class BatterySaverButtonPreferenceControllerTest {
.isEqualTo(SettingsSlicesContract.AUTHORITY); .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 @Test
public void updateState_lowPowerOn_preferenceIsChecked() { public void updateState_lowPowerOn_preferenceIsChecked() {
when(mPowerManager.isPowerSaveMode()).thenReturn(true); when(mPowerManager.isPowerSaveMode()).thenReturn(true);
@@ -140,16 +121,4 @@ public class BatterySaverButtonPreferenceControllerTest {
public void isPublicSlice_returnsTrue() { public void isPublicSlice_returnsTrue() {
assertThat(mController.isPublicSlice()).isTrue(); 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);
}
} }