Update Summary for Battery Optimization
Bug: 37221696 Test: RunSettingsRoboTests Change-Id: I7dc24879521a1375e0ad4b4b73e9a40633b93c3f
This commit is contained in:
@@ -230,7 +230,7 @@ public class AdvancedPowerUsageDetail extends PowerUsageBase implements
|
||||
|
||||
controllers.add(new BackgroundActivityPreferenceController(context, uid));
|
||||
controllers.add(new BatteryOptimizationPreferenceController(
|
||||
(SettingsActivity) getActivity(), this));
|
||||
(SettingsActivity) getActivity(), this, packageName));
|
||||
mAppButtonsPreferenceController = new AppButtonsPreferenceController(
|
||||
(SettingsActivity) getActivity(), this, getLifecycle(), packageName, mState, mDpm,
|
||||
mUserManager, mPackageManager, REQUEST_UNINSTALL, REQUEST_REMOVE_DEVICE_ADMIN);
|
||||
|
@@ -17,6 +17,7 @@ package com.android.settings.fuelgauge;
|
||||
import android.app.Fragment;
|
||||
import android.content.Context;
|
||||
import android.os.Bundle;
|
||||
import android.support.annotation.VisibleForTesting;
|
||||
import android.support.v7.preference.Preference;
|
||||
import android.text.TextUtils;
|
||||
|
||||
@@ -33,14 +34,29 @@ public class BatteryOptimizationPreferenceController extends PreferenceControlle
|
||||
|
||||
private static final String KEY_BACKGROUND_ACTIVITY = "battery_optimization";
|
||||
|
||||
|
||||
private PowerWhitelistBackend mBackend;
|
||||
private Fragment mFragment;
|
||||
private SettingsActivity mSettingsActivity;
|
||||
private String mPackageName;
|
||||
|
||||
public BatteryOptimizationPreferenceController(SettingsActivity settingsActivity,
|
||||
Fragment fragment) {
|
||||
Fragment fragment, String packageName) {
|
||||
super(settingsActivity);
|
||||
mFragment = fragment;
|
||||
mSettingsActivity = settingsActivity;
|
||||
mPackageName = packageName;
|
||||
mBackend = PowerWhitelistBackend.getInstance();
|
||||
}
|
||||
|
||||
@VisibleForTesting
|
||||
BatteryOptimizationPreferenceController(SettingsActivity settingsActivity,
|
||||
Fragment fragment, String packageName, PowerWhitelistBackend backend) {
|
||||
super(settingsActivity);
|
||||
mFragment = fragment;
|
||||
mSettingsActivity = settingsActivity;
|
||||
mPackageName = packageName;
|
||||
mBackend = backend;
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -48,6 +64,12 @@ public class BatteryOptimizationPreferenceController extends PreferenceControlle
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void updateState(Preference preference) {
|
||||
final boolean isWhitelisted = mBackend.isWhitelisted(mPackageName);
|
||||
preference.setSummary(isWhitelisted ? R.string.high_power_on : R.string.high_power_off);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getPreferenceKey() {
|
||||
return KEY_BACKGROUND_ACTIVITY;
|
||||
@@ -66,4 +88,5 @@ public class BatteryOptimizationPreferenceController extends PreferenceControlle
|
||||
R.string.high_power_apps, null, null, 0);
|
||||
return true;
|
||||
}
|
||||
|
||||
}
|
||||
|
@@ -18,6 +18,8 @@ package com.android.settings.fuelgauge;
|
||||
import android.os.IDeviceIdleController;
|
||||
import android.os.RemoteException;
|
||||
import android.os.ServiceManager;
|
||||
import android.support.annotation.VisibleForTesting;
|
||||
|
||||
import android.util.ArraySet;
|
||||
import android.util.Log;
|
||||
|
||||
@@ -31,7 +33,7 @@ public class PowerWhitelistBackend {
|
||||
|
||||
private static final String DEVICE_IDLE_SERVICE = "deviceidle";
|
||||
|
||||
private static final PowerWhitelistBackend INSTANCE = new PowerWhitelistBackend();
|
||||
private static PowerWhitelistBackend sInstance;
|
||||
|
||||
private final IDeviceIdleController mDeviceIdleService;
|
||||
private final ArraySet<String> mWhitelistedApps = new ArraySet<>();
|
||||
@@ -73,7 +75,8 @@ public class PowerWhitelistBackend {
|
||||
}
|
||||
}
|
||||
|
||||
private void refreshList() {
|
||||
@VisibleForTesting
|
||||
void refreshList() {
|
||||
mSysWhitelistedApps.clear();
|
||||
mWhitelistedApps.clear();
|
||||
try {
|
||||
@@ -91,7 +94,10 @@ public class PowerWhitelistBackend {
|
||||
}
|
||||
|
||||
public static PowerWhitelistBackend getInstance() {
|
||||
return INSTANCE;
|
||||
if (sInstance == null) {
|
||||
sInstance = new PowerWhitelistBackend();
|
||||
}
|
||||
return sInstance;
|
||||
}
|
||||
|
||||
}
|
||||
|
Reference in New Issue
Block a user