Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit bb57a75f authored by Kuan Wang's avatar Kuan Wang Committed by Android (Google) Code Review
Browse files

Merge "Dump app usage event data in db in BugReportContentProvider."

parents 120c6888 b2b74d8a
Loading
Loading
Loading
Loading
+3 −2
Original line number Diff line number Diff line
@@ -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
+16 −2
Original line number Diff line number Diff line
@@ -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() {}
}
+12 −3
Original line number Diff line number Diff line
@@ -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);
    }
}