Load and process the battery reattribute data in the periodic job (3/5)
Bug: 346706894
Fix: 348156270
Test: atest SettingsRoboTests:com.android.settings.fuelgauge.batteryusage
Flag: EXEMPT bug fix
Change-Id: Ibaa1d9d960aa6a885307fbb3dd3a62aaeb32de23
diff --git a/src/com/android/settings/fuelgauge/PowerUsageFeatureProvider.java b/src/com/android/settings/fuelgauge/PowerUsageFeatureProvider.java
index 0132273..e7b9a42 100644
--- a/src/com/android/settings/fuelgauge/PowerUsageFeatureProvider.java
+++ b/src/com/android/settings/fuelgauge/PowerUsageFeatureProvider.java
@@ -23,11 +23,13 @@
import android.util.ArrayMap;
import android.util.SparseIntArray;
+import com.android.settings.fuelgauge.batteryusage.BatteryDiffData;
import com.android.settings.fuelgauge.batteryusage.DetectRequestSourceType;
import com.android.settings.fuelgauge.batteryusage.PowerAnomalyEventList;
import com.android.settingslib.fuelgauge.Estimate;
import java.util.List;
+import java.util.Map;
import java.util.Set;
/** Feature Provider used in power usage */
@@ -157,4 +159,8 @@
/** Whether the device is under the battery defender mode */
boolean isBatteryDefend(BatteryInfo info);
+
+ /** Collect and process battery reattribute data if needed. */
+ boolean processBatteryReattributeData(
+ Context context, Map<Long, BatteryDiffData> batteryDiffDataMap);
}
diff --git a/src/com/android/settings/fuelgauge/PowerUsageFeatureProviderImpl.java b/src/com/android/settings/fuelgauge/PowerUsageFeatureProviderImpl.java
index 1675ce6..267c0a3 100644
--- a/src/com/android/settings/fuelgauge/PowerUsageFeatureProviderImpl.java
+++ b/src/com/android/settings/fuelgauge/PowerUsageFeatureProviderImpl.java
@@ -28,12 +28,14 @@
import android.util.SparseIntArray;
import com.android.internal.util.ArrayUtils;
+import com.android.settings.fuelgauge.batteryusage.BatteryDiffData;
import com.android.settings.fuelgauge.batteryusage.DetectRequestSourceType;
import com.android.settings.fuelgauge.batteryusage.PowerAnomalyEventList;
import com.android.settingslib.fuelgauge.Estimate;
import java.util.ArrayList;
import java.util.List;
+import java.util.Map;
import java.util.Set;
/** Implementation of {@code PowerUsageFeatureProvider} */
@@ -245,4 +247,10 @@
public boolean isBatteryDefend(BatteryInfo info) {
return info.isBatteryDefender && !isExtraDefend();
}
+
+ @Override
+ public boolean processBatteryReattributeData(
+ Context context, Map<Long, BatteryDiffData> batteryDiffDataMap) {
+ return false;
+ }
}
diff --git a/src/com/android/settings/fuelgauge/batteryusage/BatteryDiffData.java b/src/com/android/settings/fuelgauge/batteryusage/BatteryDiffData.java
index 7ea7203..7b5cd9f 100644
--- a/src/com/android/settings/fuelgauge/batteryusage/BatteryDiffData.java
+++ b/src/com/android/settings/fuelgauge/batteryusage/BatteryDiffData.java
@@ -77,11 +77,13 @@
processAndSortEntries(mSystemEntries);
}
- long getStartTimestamp() {
+ /** Gets the start timestamp. */
+ public long getStartTimestamp() {
return mStartTimestamp;
}
- long getEndTimestamp() {
+ /** Gets the end timestamp. */
+ public long getEndTimestamp() {
return mEndTimestamp;
}
diff --git a/src/com/android/settings/fuelgauge/batteryusage/BatteryUsageDataLoader.java b/src/com/android/settings/fuelgauge/batteryusage/BatteryUsageDataLoader.java
index 0836912..7ef4615 100644
--- a/src/com/android/settings/fuelgauge/batteryusage/BatteryUsageDataLoader.java
+++ b/src/com/android/settings/fuelgauge/batteryusage/BatteryUsageDataLoader.java
@@ -128,6 +128,9 @@
final PowerUsageFeatureProvider featureProvider =
FeatureFactory.getFeatureFactory()
.getPowerUsageFeatureProvider();
+ // Collect and process battery reattribute data.
+ featureProvider.processBatteryReattributeData(
+ context, batteryDiffDataMap);
DatabaseUtils.sendBatteryUsageSlotData(
context,
ConvertUtils.convertToBatteryUsageSlotList(
diff --git a/src/com/android/settings/fuelgauge/batteryusage/bugreport/BugReportContentProvider.java b/src/com/android/settings/fuelgauge/batteryusage/bugreport/BugReportContentProvider.java
index baae109..7e759ee 100644
--- a/src/com/android/settings/fuelgauge/batteryusage/bugreport/BugReportContentProvider.java
+++ b/src/com/android/settings/fuelgauge/batteryusage/bugreport/BugReportContentProvider.java
@@ -55,12 +55,12 @@
}
writer.println("dump BatteryUsage and AppUsage states:");
LogUtils.dumpAppOptimizationModeEventHist(context, writer);
+ LogUtils.dumpBatteryReattributeDatabaseHist(context, writer);
LogUtils.dumpBatteryUsageDatabaseHist(context, writer);
LogUtils.dumpAppUsageDatabaseHist(context, writer);
LogUtils.dumpBatteryUsageSlotDatabaseHist(context, writer);
LogUtils.dumpBatteryEventDatabaseHist(context, writer);
LogUtils.dumpBatteryStateDatabaseHist(context, writer);
- LogUtils.dumpBatteryReattributeDatabaseHist(context, writer);
}
@Override
diff --git a/src/com/android/settings/fuelgauge/batteryusage/db/BatteryReattributeEntity.java b/src/com/android/settings/fuelgauge/batteryusage/db/BatteryReattributeEntity.java
index d518230..1a0c087 100644
--- a/src/com/android/settings/fuelgauge/batteryusage/db/BatteryReattributeEntity.java
+++ b/src/com/android/settings/fuelgauge/batteryusage/db/BatteryReattributeEntity.java
@@ -58,12 +58,16 @@
@NonNull
@Override
public String toString() {
+ final BatteryReattribute batteryReattribute =
+ ConvertUtils.decodeBatteryReattribute(reattributeData);
final StringBuilder builder = new StringBuilder()
.append("\nBatteryReattributeEntity{")
.append("\n\t" + utcToLocalTimeForLogging(timestampStart))
.append("\n\t" + utcToLocalTimeForLogging(timestampEnd))
- .append("\n\t" + ConvertUtils.decodeBatteryReattribute(reattributeData))
- .append("\n}");
- return builder.toString();
+ .append("\n\t" + batteryReattribute);
+ if (batteryReattribute != null) {
+ builder.append("\n\t" + batteryReattribute.getReattributeDataMap());
+ }
+ return builder.append("\n}").toString();
}
}
diff --git a/src/com/android/settings/fuelgauge/batteryusage/db/BatteryStateDatabase.java b/src/com/android/settings/fuelgauge/batteryusage/db/BatteryStateDatabase.java
index 9a4f164..8e3d6e3 100644
--- a/src/com/android/settings/fuelgauge/batteryusage/db/BatteryStateDatabase.java
+++ b/src/com/android/settings/fuelgauge/batteryusage/db/BatteryStateDatabase.java
@@ -33,7 +33,7 @@
BatteryUsageSlotEntity.class,
BatteryReattributeEntity.class
},
- version = 1)
+ version = 2)
public abstract class BatteryStateDatabase extends RoomDatabase {
private static final String TAG = "BatteryStateDatabase";
private static final String DB_FILE_NAME = "battery-usage-db-v10";