Merge "Make target battery life configurable."
diff --git a/apex/jobscheduler/service/java/com/android/server/tare/InternalResourceService.java b/apex/jobscheduler/service/java/com/android/server/tare/InternalResourceService.java
index 4001d9b..08c1a0c 100644
--- a/apex/jobscheduler/service/java/com/android/server/tare/InternalResourceService.java
+++ b/apex/jobscheduler/service/java/com/android/server/tare/InternalResourceService.java
@@ -209,8 +209,10 @@
@GuardedBy("mLock")
private int mCurrentBatteryLevel;
- // TODO(250007395): make configurable per device
- private final int mTargetBackgroundBatteryLifeHours;
+ // TODO(250007395): make configurable per device (via config.xml)
+ private final int mDefaultTargetBackgroundBatteryLifeHours;
+ @GuardedBy("mLock")
+ private int mTargetBackgroundBatteryLifeHours;
private final IAppOpsCallback mApbListener = new IAppOpsCallback.Stub() {
@Override
@@ -353,10 +355,11 @@
mConfigObserver = new ConfigObserver(mHandler, context);
- mTargetBackgroundBatteryLifeHours =
+ mDefaultTargetBackgroundBatteryLifeHours =
mPackageManager.hasSystemFeature(PackageManager.FEATURE_WATCH)
- ? 200 // ~ 0.5%/hr
- : 100; // ~ 1%/hr
+ ? 100 // ~ 1.0%/hr
+ : 40; // ~ 2.5%/hr
+ mTargetBackgroundBatteryLifeHours = mDefaultTargetBackgroundBatteryLifeHours;
publishLocalService(EconomyManagerInternal.class, new LocalService());
}
@@ -1483,6 +1486,8 @@
private class ConfigObserver extends ContentObserver
implements DeviceConfig.OnPropertiesChangedListener {
private static final String KEY_ENABLE_TIP3 = "enable_tip3";
+ private static final String KEY_TARGET_BACKGROUND_BATTERY_LIFE_HOURS =
+ "target_bg_battery_life_hrs";
private static final boolean DEFAULT_ENABLE_TIP3 = true;
@@ -1541,6 +1546,13 @@
case KEY_ENABLE_TIP3:
ENABLE_TIP3 = properties.getBoolean(name, DEFAULT_ENABLE_TIP3);
break;
+ case KEY_TARGET_BACKGROUND_BATTERY_LIFE_HOURS:
+ synchronized (mLock) {
+ mTargetBackgroundBatteryLifeHours = properties.getInt(name,
+ mDefaultTargetBackgroundBatteryLifeHours);
+ maybeAdjustDesiredStockLevelLocked();
+ }
+ break;
default:
if (!economicPolicyUpdated
&& (name.startsWith("am") || name.startsWith("js")
@@ -1670,6 +1682,12 @@
pw.print("/");
pw.println(cakeToString(mScribe.getSatiatedConsumptionLimitLocked()));
+ pw.print("Target bg battery life (hours): ");
+ pw.print(mTargetBackgroundBatteryLifeHours);
+ pw.print(" (");
+ pw.print(String.format("%.2f", 100f / mTargetBackgroundBatteryLifeHours));
+ pw.println("%/hr)");
+
final long remainingConsumable = mScribe.getRemainingConsumableCakesLocked();
pw.print("Goods remaining: ");
pw.print(cakeToString(remainingConsumable));