Implement new BS warning / notification flow (2/2)

Bug: 74120126
Test: Manual tests
Change-Id: Ieea6ee97695cd5a30e55f5c6ccec8135ec2d0ef4
This commit is contained in:
Makoto Onuki
2018-03-20 13:05:22 -07:00
parent 940630bae1
commit 5b60fdba81
4 changed files with 15 additions and 16 deletions

View File

@@ -23,6 +23,7 @@ import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
import com.android.settings.R;
import com.android.settings.core.SubSettingLauncher;
import com.android.settings.fuelgauge.batterysaver.BatterySaverSettings;
import com.android.settingslib.fuelgauge.BatterySaverUtils;
public class BatterySaverCondition extends Condition {
public BatterySaverCondition(ConditionManager manager) {
@@ -68,7 +69,8 @@ public class BatterySaverCondition extends Condition {
@Override
public void onActionClick(int index) {
if (index == 0) {
mManager.getContext().getSystemService(PowerManager.class).setPowerSaveMode(false);
BatterySaverUtils.setPowerSaveMode(mManager.getContext(), false,
/*needFirstTimeWarning*/ false);
refreshState();
} else {
throw new IllegalArgumentException("Unexpected index " + index);

View File

@@ -16,14 +16,13 @@
package com.android.settings.fuelgauge;
import android.content.Context;
import static android.provider.Settings.EXTRA_BATTERY_SAVER_MODE_ENABLED;
import android.content.Intent;
import android.os.PowerManager;
import android.util.Log;
import com.android.settings.utils.VoiceSettingsActivity;
import static android.provider.Settings.EXTRA_BATTERY_SAVER_MODE_ENABLED;
import com.android.settingslib.fuelgauge.BatterySaverUtils;
/**
* Activity for modifying the {@link android.os.PowerManager} power save mode
@@ -35,9 +34,9 @@ public class BatterySaverModeVoiceActivity extends VoiceSettingsActivity {
@Override
protected boolean onVoiceSettingInteraction(Intent intent) {
if (intent.hasExtra(EXTRA_BATTERY_SAVER_MODE_ENABLED)) {
PowerManager powerManager = (PowerManager) getSystemService(Context.POWER_SERVICE);
if (powerManager.setPowerSaveMode(
intent.getBooleanExtra(EXTRA_BATTERY_SAVER_MODE_ENABLED, false))) {
if (BatterySaverUtils.setPowerSaveMode(this,
intent.getBooleanExtra(EXTRA_BATTERY_SAVER_MODE_ENABLED, false),
/*needFirstTimeWarning=*/ true)) {
notifySuccess(null);
} else {
Log.v(TAG, "Unable to set power mode");

View File

@@ -21,13 +21,13 @@ import android.os.PowerManager;
import android.support.annotation.VisibleForTesting;
import android.support.v7.preference.Preference;
import com.android.settings.fuelgauge.BatteryBroadcastReceiver;
import com.android.settings.fuelgauge.BatterySaverReceiver;
import com.android.settings.widget.TwoStateButtonPreferenceController;
import com.android.settingslib.core.lifecycle.Lifecycle;
import com.android.settingslib.core.lifecycle.LifecycleObserver;
import com.android.settingslib.core.lifecycle.events.OnStart;
import com.android.settingslib.core.lifecycle.events.OnStop;
import com.android.settingslib.fuelgauge.BatterySaverUtils;
/**
* Controller to update the battery saver button
@@ -73,7 +73,8 @@ public class BatterySaverButtonPreferenceController extends
@Override
public void onButtonClicked(boolean stateOn) {
mPowerManager.setPowerSaveMode(stateOn);
// This screen already shows a warning, so we don't need another warning.
BatterySaverUtils.setPowerSaveMode(mContext, stateOn, /*needFirstTimeWarning*/ false);
}
@Override
@@ -85,4 +86,4 @@ public class BatterySaverButtonPreferenceController extends
public void onBatteryChanged(boolean pluggedIn) {
setButtonEnabled(!pluggedIn);
}
}
}

View File

@@ -17,16 +17,13 @@
package com.android.settings.fuelgauge.batterytip.actions;
import android.content.Context;
import android.os.PowerManager;
import com.android.internal.logging.nano.MetricsProto;
import com.android.settingslib.fuelgauge.BatterySaverUtils;
public class BatterySaverAction extends BatteryTipAction {
private PowerManager mPowerManager;
public BatterySaverAction(Context context) {
super(context);
mPowerManager = (PowerManager) context.getSystemService(Context.POWER_SERVICE);
}
/**
@@ -34,7 +31,7 @@ public class BatterySaverAction extends BatteryTipAction {
*/
@Override
public void handlePositiveAction(int metricsKey) {
mPowerManager.setPowerSaveMode(true);
BatterySaverUtils.setPowerSaveMode(mContext, true, /*needFirstTimeWarning*/ true);
mMetricsFeatureProvider.action(mContext,
MetricsProto.MetricsEvent.ACTION_TIP_TURN_ON_BATTERY_SAVER, metricsKey);
}