From a2ab3ae5b3c32a16893198766c5e26d8ea5a7fb6 Mon Sep 17 00:00:00 2001 From: Zaiyue Xue Date: Wed, 12 Apr 2023 17:24:16 +0800 Subject: [PATCH] Small refactor battery usage code according to the comments in previous cls. Bug: 262802531 Test: presubmit Change-Id: I0d496fc6a41af5964311dafe8dd89f8b8058de82 --- .../BatteryUsageBreakdownController.java | 7 ++---- .../fuelgauge/batteryusage/DataProcessor.java | 6 ++--- .../fuelgauge/batteryusage/DatabaseUtils.java | 24 +++++++------------ .../BatteryUsageBreakdownControllerTest.java | 4 ++-- .../batteryusage/DataProcessManagerTest.java | 6 ++--- .../batteryusage/DatabaseUtilsTest.java | 20 ++++++++-------- 6 files changed, 29 insertions(+), 38 deletions(-) diff --git a/src/com/android/settings/fuelgauge/batteryusage/BatteryUsageBreakdownController.java b/src/com/android/settings/fuelgauge/batteryusage/BatteryUsageBreakdownController.java index 2121c60218b..cd1bdefc92d 100644 --- a/src/com/android/settings/fuelgauge/batteryusage/BatteryUsageBreakdownController.java +++ b/src/com/android/settings/fuelgauge/batteryusage/BatteryUsageBreakdownController.java @@ -313,11 +313,8 @@ public class BatteryUsageBreakdownController extends BasePreferenceController @VisibleForTesting void removeAndCacheAllUnusedPreferences() { List entries = getBatteryDiffEntries(); - Set entryKeySet = new ArraySet<>(); - for (BatteryDiffEntry entry : entries) { - entryKeySet.add(entry.getKey()); - } - + Set entryKeySet = new ArraySet<>(entries.size()); + entries.forEach(entry -> entryKeySet.add(entry.getKey())); final int prefsCount = mAppListPreferenceGroup.getPreferenceCount(); for (int index = prefsCount - 1; index >= 0; index--) { final Preference pref = mAppListPreferenceGroup.getPreference(index); diff --git a/src/com/android/settings/fuelgauge/batteryusage/DataProcessor.java b/src/com/android/settings/fuelgauge/batteryusage/DataProcessor.java index 8818431d40d..24571cd0a60 100644 --- a/src/com/android/settings/fuelgauge/batteryusage/DataProcessor.java +++ b/src/com/android/settings/fuelgauge/batteryusage/DataProcessor.java @@ -725,9 +725,9 @@ public final class DataProcessor { @VisibleForTesting @Nullable static Map>> buildAppUsagePeriodList( - final List allAppUsageEvents, final List batteryEventList, + final List appUsageEvents, final List batteryEventList, final long startTime, final long endTime) { - if (allAppUsageEvents.isEmpty()) { + if (appUsageEvents.isEmpty()) { return null; } @@ -735,7 +735,7 @@ public final class DataProcessor { // use. final List deviceEvents = new ArrayList<>(); final ArrayMap> usageEventsByInstanceId = new ArrayMap<>(); - for (final AppUsageEvent event : allAppUsageEvents) { + for (final AppUsageEvent event : appUsageEvents) { final AppUsageEventType eventType = event.getType(); if (eventType == AppUsageEventType.ACTIVITY_RESUMED || eventType == AppUsageEventType.ACTIVITY_STOPPED) { diff --git a/src/com/android/settings/fuelgauge/batteryusage/DatabaseUtils.java b/src/com/android/settings/fuelgauge/batteryusage/DatabaseUtils.java index 84a39bb811f..0435e451e82 100644 --- a/src/com/android/settings/fuelgauge/batteryusage/DatabaseUtils.java +++ b/src/com/android/settings/fuelgauge/batteryusage/DatabaseUtils.java @@ -110,13 +110,7 @@ public final class DatabaseUtils { // For testing only. @VisibleForTesting - static Supplier sFakeBatteryStateSupplier; - @VisibleForTesting - static Supplier sFakeAppUsageEventSupplier; - @VisibleForTesting - static Supplier sFakeAppUsageLatestTimestampSupplier; - @VisibleForTesting - static Supplier sFakeBatteryEventSupplier; + static Supplier sFakeSupplier; private DatabaseUtils() { } @@ -340,7 +334,7 @@ public final class DatabaseUtils { resolver.insert(BATTERY_EVENT_URI, contentValues); Log.d(TAG, "insert() battery event data into database: " + batteryEvent.toString()); } catch (Exception e) { - Log.e(TAG, "insert() battery event data into database error:\n" + e); + Log.e(TAG, "insert() battery event data into database error:", e); } Log.d(TAG, String.format("sendBatteryEventData() in %d/ms", (System.currentTimeMillis() - startTime))); @@ -487,8 +481,8 @@ public final class DatabaseUtils { Context context, final Uri appUsageLatestTimestampUri) { // We have already make sure the context here is with profile parent's user identity. Don't // need to check whether current user is work profile. - try (Cursor cursor = sFakeAppUsageLatestTimestampSupplier != null - ? sFakeAppUsageLatestTimestampSupplier.get() + try (Cursor cursor = sFakeSupplier != null + ? sFakeSupplier.get() : context.getContentResolver().query( appUsageLatestTimestampUri, null, null, null)) { if (cursor == null || cursor.getCount() == 0) { @@ -514,8 +508,8 @@ public final class DatabaseUtils { if (context == null) { return appUsageEventList; } - try (Cursor cursor = sFakeAppUsageEventSupplier != null - ? sFakeAppUsageEventSupplier.get() + try (Cursor cursor = sFakeSupplier != null + ? sFakeSupplier.get() : context.getContentResolver().query(appUsageEventUri, null, null, null)) { if (cursor == null || cursor.getCount() == 0) { return appUsageEventList; @@ -540,8 +534,8 @@ public final class DatabaseUtils { if (context == null) { return batteryEventList; } - try (Cursor cursor = sFakeBatteryEventSupplier != null - ? sFakeBatteryEventSupplier.get() + try (Cursor cursor = sFakeSupplier != null + ? sFakeSupplier.get() : context.getContentResolver().query(batteryEventUri, null, null, null)) { if (cursor == null || cursor.getCount() == 0) { return batteryEventList; @@ -566,7 +560,7 @@ public final class DatabaseUtils { return null; } final Map> resultMap = new HashMap(); - try (Cursor cursor = sFakeBatteryStateSupplier != null ? sFakeBatteryStateSupplier.get() : + try (Cursor cursor = sFakeSupplier != null ? sFakeSupplier.get() : context.getContentResolver().query(batteryStateUri, null, null, null)) { if (cursor == null || cursor.getCount() == 0) { return resultMap; diff --git a/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/BatteryUsageBreakdownControllerTest.java b/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/BatteryUsageBreakdownControllerTest.java index 16fec0909e0..8d0a839f6bc 100644 --- a/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/BatteryUsageBreakdownControllerTest.java +++ b/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/BatteryUsageBreakdownControllerTest.java @@ -176,7 +176,7 @@ public final class BatteryUsageBreakdownControllerTest { } @Test - public void removeAndCacheAllUnusedPreferences_removePerf_buildCacheAndRemoveAllPreference() { + public void removeAndCacheAllUnusedPreferences_removePref_buildCacheAndRemoveAllPreference() { doReturn(1).when(mAppListPreferenceGroup).getPreferenceCount(); doReturn(mPowerGaugePreference).when(mAppListPreferenceGroup).getPreference(0); doReturn(PREF_KEY2).when(mBatteryHistEntry).getKey(); @@ -193,7 +193,7 @@ public final class BatteryUsageBreakdownControllerTest { } @Test - public void removeAndCacheAllUnusedPreferences_keepPerf_KeepAllPreference() { + public void removeAndCacheAllUnusedPreferences_keepPref_KeepAllPreference() { doReturn(1).when(mAppListPreferenceGroup).getPreferenceCount(); doReturn(mPowerGaugePreference).when(mAppListPreferenceGroup).getPreference(0); doReturn(PREF_KEY).when(mBatteryHistEntry).getKey(); diff --git a/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/DataProcessManagerTest.java b/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/DataProcessManagerTest.java index 753a7f7a1d0..2a001163485 100644 --- a/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/DataProcessManagerTest.java +++ b/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/DataProcessManagerTest.java @@ -102,7 +102,7 @@ public final class DataProcessManagerTest { AppUsageEventEntity.KEY_UID, AppUsageEventEntity.KEY_PACKAGE_NAME, AppUsageEventEntity.KEY_TIMESTAMP}); - DatabaseUtils.sFakeAppUsageEventSupplier = () -> cursor; + DatabaseUtils.sFakeSupplier = () -> cursor; doReturn(true).when(mUserManager).isUserUnlocked(anyInt()); mDataProcessManager.start(); @@ -171,7 +171,7 @@ public final class DataProcessManagerTest { cursor.addRow(new Object[] { AppUsageEventType.ACTIVITY_STOPPED.getNumber(), /*timestamp=*/ 6, /*userId=*/ 1, /*instanceId=*/ 2, packageName}); - DatabaseUtils.sFakeAppUsageEventSupplier = () -> cursor; + DatabaseUtils.sFakeSupplier = () -> cursor; final DataProcessManager dataProcessManager = new DataProcessManager( mContext, /*handler=*/ null, /*rawStartTimestamp=*/ 2L, /*callbackFunction=*/ null, @@ -240,7 +240,7 @@ public final class DataProcessManagerTest { AppUsageEventEntity.KEY_TIMESTAMP}); // Adds fake data into the cursor. cursor.addRow(new Object[] {101L, "app name1", 1001L}); - DatabaseUtils.sFakeAppUsageEventSupplier = () -> cursor; + DatabaseUtils.sFakeSupplier = () -> cursor; mDataProcessManager.start(); diff --git a/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/DatabaseUtilsTest.java b/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/DatabaseUtilsTest.java index 20799d403d3..efce44e600f 100644 --- a/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/DatabaseUtilsTest.java +++ b/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/DatabaseUtilsTest.java @@ -261,7 +261,7 @@ public final class DatabaseUtilsTest { public void getAppUsageStartTimestampOfUser_emptyCursorContent_returnEarliestTimestamp() { final MatrixCursor cursor = new MatrixCursor(new String[] {AppUsageEventEntity.KEY_TIMESTAMP}); - DatabaseUtils.sFakeAppUsageLatestTimestampSupplier = () -> cursor; + DatabaseUtils.sFakeSupplier = () -> cursor; final long earliestTimestamp = 10001L; assertThat(DatabaseUtils.getAppUsageStartTimestampOfUser( @@ -270,7 +270,7 @@ public final class DatabaseUtilsTest { @Test public void getAppUsageStartTimestampOfUser_nullCursor_returnEarliestTimestamp() { - DatabaseUtils.sFakeAppUsageLatestTimestampSupplier = () -> null; + DatabaseUtils.sFakeSupplier = () -> null; final long earliestTimestamp = 10001L; assertThat(DatabaseUtils.getAppUsageStartTimestampOfUser( mContext, /*userId=*/ 0, earliestTimestamp)).isEqualTo(earliestTimestamp); @@ -283,7 +283,7 @@ public final class DatabaseUtilsTest { new MatrixCursor(new String[] {AppUsageEventEntity.KEY_TIMESTAMP}); // Adds fake data into the cursor. cursor.addRow(new Object[] {returnedTimestamp}); - DatabaseUtils.sFakeAppUsageLatestTimestampSupplier = () -> cursor; + DatabaseUtils.sFakeSupplier = () -> cursor; final long earliestTimestamp1 = 1001L; assertThat(DatabaseUtils.getAppUsageStartTimestampOfUser( @@ -302,7 +302,7 @@ public final class DatabaseUtilsTest { AppUsageEventEntity.KEY_PACKAGE_NAME, AppUsageEventEntity.KEY_TIMESTAMP, AppUsageEventEntity.KEY_APP_USAGE_EVENT_TYPE}); - DatabaseUtils.sFakeAppUsageEventSupplier = () -> cursor; + DatabaseUtils.sFakeSupplier = () -> cursor; assertThat(DatabaseUtils.getAppUsageEventForUsers( mContext, @@ -313,7 +313,7 @@ public final class DatabaseUtilsTest { @Test public void getAppUsageEventForUsers_nullCursor_returnEmptyMap() { - DatabaseUtils.sFakeAppUsageEventSupplier = () -> null; + DatabaseUtils.sFakeSupplier = () -> null; assertThat(DatabaseUtils.getAppUsageEventForUsers( mContext, /*calendar=*/ null, @@ -335,7 +335,7 @@ public final class DatabaseUtilsTest { cursor.addRow(new Object[] {101L, "app name2", timestamp2}); cursor.addRow(new Object[] {101L, "app name3", timestamp2}); cursor.addRow(new Object[] {101L, "app name4", timestamp2}); - DatabaseUtils.sFakeAppUsageEventSupplier = () -> cursor; + DatabaseUtils.sFakeSupplier = () -> cursor; final List appUsageEventList = DatabaseUtils.getAppUsageEventForUsers( mContext, @@ -356,7 +356,7 @@ public final class DatabaseUtilsTest { BatteryHistEntry.KEY_UID, BatteryHistEntry.KEY_USER_ID, BatteryHistEntry.KEY_TIMESTAMP}); - DatabaseUtils.sFakeBatteryStateSupplier = () -> cursor; + DatabaseUtils.sFakeSupplier = () -> cursor; assertThat(DatabaseUtils.getHistoryMapSinceLastFullCharge( mContext, /*calendar=*/ null)).isEmpty(); @@ -364,7 +364,7 @@ public final class DatabaseUtilsTest { @Test public void getHistoryMapSinceLastFullCharge_nullCursor_returnEmptyMap() { - DatabaseUtils.sFakeBatteryStateSupplier = () -> null; + DatabaseUtils.sFakeSupplier = () -> null; assertThat(DatabaseUtils.getHistoryMapSinceLastFullCharge( mContext, /*calendar=*/ null)).isEmpty(); } @@ -383,7 +383,7 @@ public final class DatabaseUtilsTest { "app name3", timestamp2, 3, ConvertUtils.CONSUMER_TYPE_UID_BATTERY}); cursor.addRow(new Object[] { "app name4", timestamp2, 4, ConvertUtils.CONSUMER_TYPE_UID_BATTERY}); - DatabaseUtils.sFakeBatteryStateSupplier = () -> cursor; + DatabaseUtils.sFakeSupplier = () -> cursor; final Map> batteryHistMap = DatabaseUtils.getHistoryMapSinceLastFullCharge( @@ -413,7 +413,7 @@ public final class DatabaseUtilsTest { doReturn(true).when(mUserManager).isManagedProfile(); doReturn(UserHandle.SYSTEM).when(mUserManager).getProfileParent(UserHandle.CURRENT); - DatabaseUtils.sFakeBatteryStateSupplier = () -> getMatrixCursor(); + DatabaseUtils.sFakeSupplier = () -> getMatrixCursor(); final Map> batteryHistMap = DatabaseUtils.getHistoryMapSinceLastFullCharge(