Small refactor battery usage code according to the comments in previous cls.
Bug: 262802531 Test: presubmit Change-Id: I0d496fc6a41af5964311dafe8dd89f8b8058de82
This commit is contained in:
@@ -313,11 +313,8 @@ public class BatteryUsageBreakdownController extends BasePreferenceController
|
||||
@VisibleForTesting
|
||||
void removeAndCacheAllUnusedPreferences() {
|
||||
List<BatteryDiffEntry> entries = getBatteryDiffEntries();
|
||||
Set<String> entryKeySet = new ArraySet<>();
|
||||
for (BatteryDiffEntry entry : entries) {
|
||||
entryKeySet.add(entry.getKey());
|
||||
}
|
||||
|
||||
Set<String> 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);
|
||||
|
@@ -725,9 +725,9 @@ public final class DataProcessor {
|
||||
@VisibleForTesting
|
||||
@Nullable
|
||||
static Map<Long, Map<String, List<AppUsagePeriod>>> buildAppUsagePeriodList(
|
||||
final List<AppUsageEvent> allAppUsageEvents, final List<BatteryEvent> batteryEventList,
|
||||
final List<AppUsageEvent> appUsageEvents, final List<BatteryEvent> 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<AppUsageEvent> deviceEvents = new ArrayList<>();
|
||||
final ArrayMap<Integer, List<AppUsageEvent>> 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) {
|
||||
|
@@ -110,13 +110,7 @@ public final class DatabaseUtils {
|
||||
|
||||
// For testing only.
|
||||
@VisibleForTesting
|
||||
static Supplier<Cursor> sFakeBatteryStateSupplier;
|
||||
@VisibleForTesting
|
||||
static Supplier<Cursor> sFakeAppUsageEventSupplier;
|
||||
@VisibleForTesting
|
||||
static Supplier<Cursor> sFakeAppUsageLatestTimestampSupplier;
|
||||
@VisibleForTesting
|
||||
static Supplier<Cursor> sFakeBatteryEventSupplier;
|
||||
static Supplier<Cursor> 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<Long, Map<String, BatteryHistEntry>> 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;
|
||||
|
@@ -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();
|
||||
|
@@ -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();
|
||||
|
||||
|
@@ -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<AppUsageEvent> 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<Long, Map<String, BatteryHistEntry>> 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<Long, Map<String, BatteryHistEntry>> batteryHistMap =
|
||||
DatabaseUtils.getHistoryMapSinceLastFullCharge(
|
||||
|
Reference in New Issue
Block a user