diff --git a/src/com/android/settings/fuelgauge/batteryusage/bugreport/BugReportContentProvider.java b/src/com/android/settings/fuelgauge/batteryusage/bugreport/BugReportContentProvider.java index f2cdbbd520d..4c423271862 100644 --- a/src/com/android/settings/fuelgauge/batteryusage/bugreport/BugReportContentProvider.java +++ b/src/com/android/settings/fuelgauge/batteryusage/bugreport/BugReportContentProvider.java @@ -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 diff --git a/src/com/android/settings/fuelgauge/batteryusage/bugreport/LogUtils.java b/src/com/android/settings/fuelgauge/batteryusage/bugreport/LogUtils.java index 327957ddef3..82158394618 100644 --- a/src/com/android/settings/fuelgauge/batteryusage/bugreport/LogUtils.java +++ b/src/com/android/settings/fuelgauge/batteryusage/bugreport/LogUtils.java @@ -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 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 eventList = dao.getAllAfter( + Clock.systemUTC().millis() - DUMP_TIME_OFFSET_FOR_ENTRY.toMillis()); + eventList.stream().forEach(event -> writer.println(event)); + } + private LogUtils() {} } diff --git a/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/bugreport/BugReportContentProviderTest.java b/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/bugreport/BugReportContentProviderTest.java index bbbf45f7764..8365ae40a84 100644 --- a/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/bugreport/BugReportContentProviderTest.java +++ b/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/bugreport/BugReportContentProviderTest.java @@ -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); } }