diff --git a/src/com/android/settings/fuelgauge/PowerUsageFeatureProvider.java b/src/com/android/settings/fuelgauge/PowerUsageFeatureProvider.java index 0132273a57e..e7b9a42cac2 100644 --- a/src/com/android/settings/fuelgauge/PowerUsageFeatureProvider.java +++ b/src/com/android/settings/fuelgauge/PowerUsageFeatureProvider.java @@ -23,11 +23,13 @@ import android.os.Bundle; 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 @@ public interface PowerUsageFeatureProvider { /** 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 batteryDiffDataMap); } diff --git a/src/com/android/settings/fuelgauge/PowerUsageFeatureProviderImpl.java b/src/com/android/settings/fuelgauge/PowerUsageFeatureProviderImpl.java index 1675ce6fb41..267c0a3fc60 100644 --- a/src/com/android/settings/fuelgauge/PowerUsageFeatureProviderImpl.java +++ b/src/com/android/settings/fuelgauge/PowerUsageFeatureProviderImpl.java @@ -28,12 +28,14 @@ import android.util.ArraySet; 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 class PowerUsageFeatureProviderImpl implements PowerUsageFeatureProvider public boolean isBatteryDefend(BatteryInfo info) { return info.isBatteryDefender && !isExtraDefend(); } + + @Override + public boolean processBatteryReattributeData( + Context context, Map batteryDiffDataMap) { + return false; + } } diff --git a/src/com/android/settings/fuelgauge/batteryusage/BatteryDiffData.java b/src/com/android/settings/fuelgauge/batteryusage/BatteryDiffData.java index 7ea7203a332..7b5cd9f9e00 100644 --- a/src/com/android/settings/fuelgauge/batteryusage/BatteryDiffData.java +++ b/src/com/android/settings/fuelgauge/batteryusage/BatteryDiffData.java @@ -77,11 +77,13 @@ public class BatteryDiffData { 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 08369127b6d..7ef4615e744 100644 --- a/src/com/android/settings/fuelgauge/batteryusage/BatteryUsageDataLoader.java +++ b/src/com/android/settings/fuelgauge/batteryusage/BatteryUsageDataLoader.java @@ -128,6 +128,9 @@ public final class BatteryUsageDataLoader { 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 baae10959c3..7e759ee3f26 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 @@ public final class BugReportContentProvider extends ContentProvider { } 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 d518230b28c..1a0c0872d24 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 @@ public class BatteryReattributeEntity { @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 9a4f164c133..8e3d6e37e82 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 @@ import androidx.room.RoomDatabase; 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";