Dump app usage event data in db in BugReportContentProvider.
Test: make RunSettingsRoboTests Bug: 260965327 Change-Id: I9f7ac74ed53b19d6ce9be3afa3ecf2a602d6309b
This commit is contained in:
@@ -48,8 +48,9 @@ public final class BugReportContentProvider extends ContentProvider {
|
||||
Log.w(TAG, "ignore battery usage states dump in the work profile");
|
||||
return;
|
||||
}
|
||||
writer.println("dump BatteryUsage states:");
|
||||
LogUtils.dumpUsageDatabaseHist(context, writer);
|
||||
writer.println("dump BatteryUsage and AppUsage states:");
|
||||
LogUtils.dumpBatteryUsageDatabaseHist(context, writer);
|
||||
LogUtils.dumpAppUsageDatabaseHist(context, writer);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@@ -19,6 +19,8 @@ package com.android.settings.fuelgauge.batteryusage.bugreport;
|
||||
import android.content.Context;
|
||||
import android.util.Log;
|
||||
|
||||
import com.android.settings.fuelgauge.batteryusage.db.AppUsageEventDao;
|
||||
import com.android.settings.fuelgauge.batteryusage.db.AppUsageEventEntity;
|
||||
import com.android.settings.fuelgauge.batteryusage.db.BatteryState;
|
||||
import com.android.settings.fuelgauge.batteryusage.db.BatteryStateDao;
|
||||
import com.android.settings.fuelgauge.batteryusage.db.BatteryStateDatabase;
|
||||
@@ -38,7 +40,7 @@ public final class LogUtils {
|
||||
private static final Duration DUMP_TIME_OFFSET_FOR_ENTRY = Duration.ofHours(4);
|
||||
|
||||
@SuppressWarnings("JavaUtilDate")
|
||||
static void dumpUsageDatabaseHist(Context context, PrintWriter writer) {
|
||||
static void dumpBatteryUsageDatabaseHist(Context context, PrintWriter writer) {
|
||||
final BatteryStateDao dao =
|
||||
BatteryStateDatabase
|
||||
.getInstance(context.getApplicationContext())
|
||||
@@ -48,7 +50,7 @@ public final class LogUtils {
|
||||
// Gets all distinct timestamps.
|
||||
final List<Long> timestamps = dao.getDistinctTimestamps(timeOffset);
|
||||
final int distinctCount = timestamps.size();
|
||||
writer.println("\n\tDatabaseHistory:");
|
||||
writer.println("\n\tBattery DatabaseHistory:");
|
||||
writer.println("distinct timestamp count:" + distinctCount);
|
||||
Log.w(TAG, "distinct timestamp count:" + distinctCount);
|
||||
if (distinctCount == 0) {
|
||||
@@ -68,5 +70,17 @@ public final class LogUtils {
|
||||
stateList.stream().forEach(state -> writer.println(state));
|
||||
}
|
||||
|
||||
@SuppressWarnings("JavaUtilDate")
|
||||
static void dumpAppUsageDatabaseHist(Context context, PrintWriter writer) {
|
||||
final AppUsageEventDao dao =
|
||||
BatteryStateDatabase
|
||||
.getInstance(context.getApplicationContext())
|
||||
.appUsageEventDao();
|
||||
writer.println("\n\tApp DatabaseHistory:");
|
||||
final List<AppUsageEventEntity> eventList = dao.getAllAfter(
|
||||
Clock.systemUTC().millis() - DUMP_TIME_OFFSET_FOR_ENTRY.toMillis());
|
||||
eventList.stream().forEach(event -> writer.println(event));
|
||||
}
|
||||
|
||||
private LogUtils() {}
|
||||
}
|
||||
|
@@ -36,8 +36,10 @@ import java.io.StringWriter;
|
||||
/** Tests of {@link BugReportContentProvider}. */
|
||||
@RunWith(RobolectricTestRunner.class)
|
||||
public final class BugReportContentProviderTest {
|
||||
private static final String PACKAGE_NAME1 = "com.android.settings";
|
||||
private static final String PACKAGE_NAME2 = "com.android.systemui";
|
||||
private static final String PACKAGE_NAME1 = "com.android.settings1";
|
||||
private static final String PACKAGE_NAME2 = "com.android.settings2";
|
||||
private static final String PACKAGE_NAME3 = "com.android.settings3";
|
||||
private static final String PACKAGE_NAME4 = "com.android.settings4";
|
||||
|
||||
private Context mContext;
|
||||
private PrintWriter mPrintWriter;
|
||||
@@ -57,6 +59,10 @@ public final class BugReportContentProviderTest {
|
||||
mContext, System.currentTimeMillis(), PACKAGE_NAME1);
|
||||
BatteryTestUtils.insertDataToBatteryStateTable(
|
||||
mContext, System.currentTimeMillis(), PACKAGE_NAME2);
|
||||
BatteryTestUtils.insertDataToAppUsageEventTable(
|
||||
mContext, /*userId=*/ 1, System.currentTimeMillis(), PACKAGE_NAME3);
|
||||
BatteryTestUtils.insertDataToAppUsageEventTable(
|
||||
mContext, /*userId=*/ 1, System.currentTimeMillis(), PACKAGE_NAME4);
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -81,9 +87,12 @@ public final class BugReportContentProviderTest {
|
||||
mBugReportContentProvider.dump(FileDescriptor.out, mPrintWriter, new String[] {});
|
||||
|
||||
String dumpContent = mStringWriter.toString();
|
||||
assertThat(dumpContent).contains("DatabaseHistory");
|
||||
assertThat(dumpContent).contains("Battery DatabaseHistory");
|
||||
assertThat(dumpContent).contains(PACKAGE_NAME1);
|
||||
assertThat(dumpContent).contains(PACKAGE_NAME2);
|
||||
assertThat(dumpContent).contains("distinct timestamp count:2");
|
||||
assertThat(dumpContent).contains("App DatabaseHistory");
|
||||
assertThat(dumpContent).contains(PACKAGE_NAME3);
|
||||
assertThat(dumpContent).contains(PACKAGE_NAME4);
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user