Loading src/com/android/settings/fuelgauge/batterysaver/BatterySaverButtonPreferenceController.java +11 −0 Original line number Original line Diff line number Diff line Loading @@ -19,6 +19,8 @@ package com.android.settings.fuelgauge.batterysaver; import android.content.ContentResolver; import android.content.ContentResolver; import android.content.Context; import android.content.Context; import android.net.Uri; import android.net.Uri; import android.os.Handler; import android.os.Looper; import android.os.PowerManager; import android.os.PowerManager; import android.provider.SettingsSlicesContract; import android.provider.SettingsSlicesContract; import android.widget.Switch; import android.widget.Switch; Loading @@ -42,10 +44,12 @@ import com.android.settingslib.widget.OnMainSwitchChangeListener; public class BatterySaverButtonPreferenceController extends public class BatterySaverButtonPreferenceController extends TogglePreferenceController implements OnMainSwitchChangeListener, LifecycleObserver, TogglePreferenceController implements OnMainSwitchChangeListener, LifecycleObserver, OnStart, OnStop, BatterySaverReceiver.BatterySaverListener { OnStart, OnStop, BatterySaverReceiver.BatterySaverListener { private static final long SWITCH_ANIMATION_DURATION = 350L; private final BatterySaverReceiver mBatterySaverReceiver; private final BatterySaverReceiver mBatterySaverReceiver; private final PowerManager mPowerManager; private final PowerManager mPowerManager; private Handler mHandler; private MainSwitchPreference mPreference; private MainSwitchPreference mPreference; public BatterySaverButtonPreferenceController(Context context, String key) { public BatterySaverButtonPreferenceController(Context context, String key) { Loading @@ -53,6 +57,7 @@ public class BatterySaverButtonPreferenceController extends mPowerManager = (PowerManager) context.getSystemService(Context.POWER_SERVICE); mPowerManager = (PowerManager) context.getSystemService(Context.POWER_SERVICE); mBatterySaverReceiver = new BatterySaverReceiver(context); mBatterySaverReceiver = new BatterySaverReceiver(context); mBatterySaverReceiver.setBatterySaverListener(this); mBatterySaverReceiver.setBatterySaverListener(this); mHandler = new Handler(Looper.getMainLooper()); } } @Override @Override Loading Loading @@ -83,6 +88,7 @@ public class BatterySaverButtonPreferenceController extends @Override @Override public void onStop() { public void onStop() { mBatterySaverReceiver.setListening(false); mBatterySaverReceiver.setListening(false); mHandler.removeCallbacksAndMessages(null /* token */); } } @Override @Override Loading Loading @@ -114,6 +120,11 @@ public class BatterySaverButtonPreferenceController extends @Override @Override public void onPowerSaveModeChanged() { public void onPowerSaveModeChanged() { mHandler.postDelayed(() -> onPowerSaveModeChangedInternal(), SWITCH_ANIMATION_DURATION); } private void onPowerSaveModeChangedInternal() { final boolean isChecked = isChecked(); final boolean isChecked = isChecked(); if (mPreference != null && mPreference.isChecked() != isChecked) { if (mPreference != null && mPreference.isChecked() != isChecked) { mPreference.setChecked(isChecked); mPreference.setChecked(isChecked); Loading Loading
src/com/android/settings/fuelgauge/batterysaver/BatterySaverButtonPreferenceController.java +11 −0 Original line number Original line Diff line number Diff line Loading @@ -19,6 +19,8 @@ package com.android.settings.fuelgauge.batterysaver; import android.content.ContentResolver; import android.content.ContentResolver; import android.content.Context; import android.content.Context; import android.net.Uri; import android.net.Uri; import android.os.Handler; import android.os.Looper; import android.os.PowerManager; import android.os.PowerManager; import android.provider.SettingsSlicesContract; import android.provider.SettingsSlicesContract; import android.widget.Switch; import android.widget.Switch; Loading @@ -42,10 +44,12 @@ import com.android.settingslib.widget.OnMainSwitchChangeListener; public class BatterySaverButtonPreferenceController extends public class BatterySaverButtonPreferenceController extends TogglePreferenceController implements OnMainSwitchChangeListener, LifecycleObserver, TogglePreferenceController implements OnMainSwitchChangeListener, LifecycleObserver, OnStart, OnStop, BatterySaverReceiver.BatterySaverListener { OnStart, OnStop, BatterySaverReceiver.BatterySaverListener { private static final long SWITCH_ANIMATION_DURATION = 350L; private final BatterySaverReceiver mBatterySaverReceiver; private final BatterySaverReceiver mBatterySaverReceiver; private final PowerManager mPowerManager; private final PowerManager mPowerManager; private Handler mHandler; private MainSwitchPreference mPreference; private MainSwitchPreference mPreference; public BatterySaverButtonPreferenceController(Context context, String key) { public BatterySaverButtonPreferenceController(Context context, String key) { Loading @@ -53,6 +57,7 @@ public class BatterySaverButtonPreferenceController extends mPowerManager = (PowerManager) context.getSystemService(Context.POWER_SERVICE); mPowerManager = (PowerManager) context.getSystemService(Context.POWER_SERVICE); mBatterySaverReceiver = new BatterySaverReceiver(context); mBatterySaverReceiver = new BatterySaverReceiver(context); mBatterySaverReceiver.setBatterySaverListener(this); mBatterySaverReceiver.setBatterySaverListener(this); mHandler = new Handler(Looper.getMainLooper()); } } @Override @Override Loading Loading @@ -83,6 +88,7 @@ public class BatterySaverButtonPreferenceController extends @Override @Override public void onStop() { public void onStop() { mBatterySaverReceiver.setListening(false); mBatterySaverReceiver.setListening(false); mHandler.removeCallbacksAndMessages(null /* token */); } } @Override @Override Loading Loading @@ -114,6 +120,11 @@ public class BatterySaverButtonPreferenceController extends @Override @Override public void onPowerSaveModeChanged() { public void onPowerSaveModeChanged() { mHandler.postDelayed(() -> onPowerSaveModeChangedInternal(), SWITCH_ANIMATION_DURATION); } private void onPowerSaveModeChangedInternal() { final boolean isChecked = isChecked(); final boolean isChecked = isChecked(); if (mPreference != null && mPreference.isChecked() != isChecked) { if (mPreference != null && mPreference.isChecked() != isChecked) { mPreference.setChecked(isChecked); mPreference.setChecked(isChecked); Loading