Merge "Load and process the battery reattribute data in the periodic job (3/5)" into main

This commit is contained in:
YK Hung
2024-06-20 16:28:03 +00:00
committed by Android (Google) Code Review
7 changed files with 30 additions and 7 deletions

View File

@@ -23,11 +23,13 @@ import android.os.Bundle;
import android.util.ArrayMap; import android.util.ArrayMap;
import android.util.SparseIntArray; import android.util.SparseIntArray;
import com.android.settings.fuelgauge.batteryusage.BatteryDiffData;
import com.android.settings.fuelgauge.batteryusage.DetectRequestSourceType; import com.android.settings.fuelgauge.batteryusage.DetectRequestSourceType;
import com.android.settings.fuelgauge.batteryusage.PowerAnomalyEventList; import com.android.settings.fuelgauge.batteryusage.PowerAnomalyEventList;
import com.android.settingslib.fuelgauge.Estimate; import com.android.settingslib.fuelgauge.Estimate;
import java.util.List; import java.util.List;
import java.util.Map;
import java.util.Set; import java.util.Set;
/** Feature Provider used in power usage */ /** Feature Provider used in power usage */
@@ -157,4 +159,8 @@ public interface PowerUsageFeatureProvider {
/** Whether the device is under the battery defender mode */ /** Whether the device is under the battery defender mode */
boolean isBatteryDefend(BatteryInfo info); boolean isBatteryDefend(BatteryInfo info);
/** Collect and process battery reattribute data if needed. */
boolean processBatteryReattributeData(
Context context, Map<Long, BatteryDiffData> batteryDiffDataMap);
} }

View File

@@ -28,12 +28,14 @@ import android.util.ArraySet;
import android.util.SparseIntArray; import android.util.SparseIntArray;
import com.android.internal.util.ArrayUtils; 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.DetectRequestSourceType;
import com.android.settings.fuelgauge.batteryusage.PowerAnomalyEventList; import com.android.settings.fuelgauge.batteryusage.PowerAnomalyEventList;
import com.android.settingslib.fuelgauge.Estimate; import com.android.settingslib.fuelgauge.Estimate;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.Map;
import java.util.Set; import java.util.Set;
/** Implementation of {@code PowerUsageFeatureProvider} */ /** Implementation of {@code PowerUsageFeatureProvider} */
@@ -245,4 +247,10 @@ public class PowerUsageFeatureProviderImpl implements PowerUsageFeatureProvider
public boolean isBatteryDefend(BatteryInfo info) { public boolean isBatteryDefend(BatteryInfo info) {
return info.isBatteryDefender && !isExtraDefend(); return info.isBatteryDefender && !isExtraDefend();
} }
@Override
public boolean processBatteryReattributeData(
Context context, Map<Long, BatteryDiffData> batteryDiffDataMap) {
return false;
}
} }

View File

@@ -77,11 +77,13 @@ public class BatteryDiffData {
processAndSortEntries(mSystemEntries); processAndSortEntries(mSystemEntries);
} }
long getStartTimestamp() { /** Gets the start timestamp. */
public long getStartTimestamp() {
return mStartTimestamp; return mStartTimestamp;
} }
long getEndTimestamp() { /** Gets the end timestamp. */
public long getEndTimestamp() {
return mEndTimestamp; return mEndTimestamp;
} }

View File

@@ -128,6 +128,9 @@ public final class BatteryUsageDataLoader {
final PowerUsageFeatureProvider featureProvider = final PowerUsageFeatureProvider featureProvider =
FeatureFactory.getFeatureFactory() FeatureFactory.getFeatureFactory()
.getPowerUsageFeatureProvider(); .getPowerUsageFeatureProvider();
// Collect and process battery reattribute data.
featureProvider.processBatteryReattributeData(
context, batteryDiffDataMap);
DatabaseUtils.sendBatteryUsageSlotData( DatabaseUtils.sendBatteryUsageSlotData(
context, context,
ConvertUtils.convertToBatteryUsageSlotList( ConvertUtils.convertToBatteryUsageSlotList(

View File

@@ -55,12 +55,12 @@ public final class BugReportContentProvider extends ContentProvider {
} }
writer.println("dump BatteryUsage and AppUsage states:"); writer.println("dump BatteryUsage and AppUsage states:");
LogUtils.dumpAppOptimizationModeEventHist(context, writer); LogUtils.dumpAppOptimizationModeEventHist(context, writer);
LogUtils.dumpBatteryReattributeDatabaseHist(context, writer);
LogUtils.dumpBatteryUsageDatabaseHist(context, writer); LogUtils.dumpBatteryUsageDatabaseHist(context, writer);
LogUtils.dumpAppUsageDatabaseHist(context, writer); LogUtils.dumpAppUsageDatabaseHist(context, writer);
LogUtils.dumpBatteryUsageSlotDatabaseHist(context, writer); LogUtils.dumpBatteryUsageSlotDatabaseHist(context, writer);
LogUtils.dumpBatteryEventDatabaseHist(context, writer); LogUtils.dumpBatteryEventDatabaseHist(context, writer);
LogUtils.dumpBatteryStateDatabaseHist(context, writer); LogUtils.dumpBatteryStateDatabaseHist(context, writer);
LogUtils.dumpBatteryReattributeDatabaseHist(context, writer);
} }
@Override @Override

View File

@@ -58,12 +58,16 @@ public class BatteryReattributeEntity {
@NonNull @NonNull
@Override @Override
public String toString() { public String toString() {
final BatteryReattribute batteryReattribute =
ConvertUtils.decodeBatteryReattribute(reattributeData);
final StringBuilder builder = new StringBuilder() final StringBuilder builder = new StringBuilder()
.append("\nBatteryReattributeEntity{") .append("\nBatteryReattributeEntity{")
.append("\n\t" + utcToLocalTimeForLogging(timestampStart)) .append("\n\t" + utcToLocalTimeForLogging(timestampStart))
.append("\n\t" + utcToLocalTimeForLogging(timestampEnd)) .append("\n\t" + utcToLocalTimeForLogging(timestampEnd))
.append("\n\t" + ConvertUtils.decodeBatteryReattribute(reattributeData)) .append("\n\t" + batteryReattribute);
.append("\n}"); if (batteryReattribute != null) {
return builder.toString(); builder.append("\n\t" + batteryReattribute.getReattributeDataMap());
}
return builder.append("\n}").toString();
} }
} }

View File

@@ -33,7 +33,7 @@ import androidx.room.RoomDatabase;
BatteryUsageSlotEntity.class, BatteryUsageSlotEntity.class,
BatteryReattributeEntity.class BatteryReattributeEntity.class
}, },
version = 1) version = 2)
public abstract class BatteryStateDatabase extends RoomDatabase { public abstract class BatteryStateDatabase extends RoomDatabase {
private static final String TAG = "BatteryStateDatabase"; private static final String TAG = "BatteryStateDatabase";
private static final String DB_FILE_NAME = "battery-usage-db-v10"; private static final String DB_FILE_NAME = "battery-usage-db-v10";