Loading src/com/android/settings/fuelgauge/batteryusage/BatteryDiffEntry.java +16 −2 Original line number Diff line number Diff line Loading @@ -45,6 +45,9 @@ public class BatteryDiffEntry { // Caches app label and icon to improve loading performance. static final Map<String, BatteryEntry.NameAndIcon> sResourceCache = new HashMap<>(); // Caches package name and uid to improve loading performance. static final Map<String, Integer> sPackageNameAndUidCache = new HashMap<>(); // Whether a specific item is valid to launch restriction page? @VisibleForTesting(otherwise = VisibleForTesting.PACKAGE_PRIVATE) static final Map<String, Boolean> sValidForRestriction = new HashMap<>(); Loading Loading @@ -289,10 +292,20 @@ public class BatteryDiffEntry { return false; } final int uid = BatteryUtils.getInstance(mContext).getPackageUid(packageName); final int uid = getPackageUid(packageName); return uid == BatteryUtils.UID_REMOVED_APPS || uid == BatteryUtils.UID_NULL; } private int getPackageUid(String packageName) { if (sPackageNameAndUidCache.containsKey(packageName)) { return sPackageNameAndUidCache.get(packageName); } int uid = BatteryUtils.getInstance(mContext).getPackageUid(packageName); sPackageNameAndUidCache.put(packageName, uid); return uid; } void loadLabelAndIcon() { if (mIsLoaded) { return; Loading Loading @@ -498,10 +511,11 @@ public class BatteryDiffEntry { return builder.toString(); } /** Clears app icon and label cache data. */ /** Clears all cache data. */ public static void clearCache() { sResourceCache.clear(); sValidForRestriction.clear(); sPackageNameAndUidCache.clear(); } private Drawable getBadgeIconForUser(Drawable icon) { Loading tests/robotests/src/com/android/settings/fuelgauge/batteryusage/BatteryDiffEntryTest.java +14 −2 Original line number Diff line number Diff line Loading @@ -352,16 +352,18 @@ public final class BatteryDiffEntryTest { } @Test public void testClearCache_clearDataForResourcesAndFlags() { public void testClearCache_clearDataForAllCaches() { BatteryDiffEntry.sResourceCache.put( "fake application key", new BatteryEntry.NameAndIcon("app label", null, /* iconId= */ 0)); BatteryDiffEntry.sValidForRestriction.put("fake application key", Boolean.valueOf(false)); BatteryDiffEntry.sPackageNameAndUidCache.put(PACKAGE_NAME, UID); BatteryDiffEntry.clearCache(); assertThat(BatteryDiffEntry.sResourceCache).isEmpty(); assertThat(BatteryDiffEntry.sValidForRestriction).isEmpty(); assertThat(BatteryDiffEntry.sPackageNameAndUidCache).isEmpty(); } @Test Loading Loading @@ -445,7 +447,11 @@ public final class BatteryDiffEntryTest { final BatteryDiffEntry entry = createBatteryDiffEntry(10, new BatteryHistEntry(values)); assertThat(entry.isSystemEntry()).isFalse(); assertThat(BatteryDiffEntry.sPackageNameAndUidCache.containsKey(PACKAGE_NAME)).isFalse(); assertThat(entry.isUninstalledEntry()).isFalse(); assertThat(BatteryDiffEntry.sPackageNameAndUidCache.containsKey(PACKAGE_NAME)).isTrue(); assertThat(BatteryDiffEntry.sPackageNameAndUidCache.get(PACKAGE_NAME)).isEqualTo(UID); } @Test Loading @@ -457,7 +463,9 @@ public final class BatteryDiffEntryTest { final BatteryDiffEntry entry = createBatteryDiffEntry(10, new BatteryHistEntry(values)); assertThat(entry.isSystemEntry()).isFalse(); assertThat(BatteryDiffEntry.sPackageNameAndUidCache.containsKey(PACKAGE_NAME)).isFalse(); assertThat(entry.isUninstalledEntry()).isFalse(); assertThat(BatteryDiffEntry.sPackageNameAndUidCache.containsKey(PACKAGE_NAME)).isFalse(); } @Test Loading @@ -469,7 +477,11 @@ public final class BatteryDiffEntryTest { final BatteryDiffEntry entry = createBatteryDiffEntry(10, new BatteryHistEntry(values)); assertThat(entry.isSystemEntry()).isFalse(); assertThat(BatteryDiffEntry.sPackageNameAndUidCache.containsKey(UNINSTALLED_PACKAGE_NAME)) .isFalse(); assertThat(entry.isUninstalledEntry()).isTrue(); assertThat(BatteryDiffEntry.sPackageNameAndUidCache.get(UNINSTALLED_PACKAGE_NAME)) .isEqualTo(BatteryUtils.UID_NULL); } @Test Loading Loading
src/com/android/settings/fuelgauge/batteryusage/BatteryDiffEntry.java +16 −2 Original line number Diff line number Diff line Loading @@ -45,6 +45,9 @@ public class BatteryDiffEntry { // Caches app label and icon to improve loading performance. static final Map<String, BatteryEntry.NameAndIcon> sResourceCache = new HashMap<>(); // Caches package name and uid to improve loading performance. static final Map<String, Integer> sPackageNameAndUidCache = new HashMap<>(); // Whether a specific item is valid to launch restriction page? @VisibleForTesting(otherwise = VisibleForTesting.PACKAGE_PRIVATE) static final Map<String, Boolean> sValidForRestriction = new HashMap<>(); Loading Loading @@ -289,10 +292,20 @@ public class BatteryDiffEntry { return false; } final int uid = BatteryUtils.getInstance(mContext).getPackageUid(packageName); final int uid = getPackageUid(packageName); return uid == BatteryUtils.UID_REMOVED_APPS || uid == BatteryUtils.UID_NULL; } private int getPackageUid(String packageName) { if (sPackageNameAndUidCache.containsKey(packageName)) { return sPackageNameAndUidCache.get(packageName); } int uid = BatteryUtils.getInstance(mContext).getPackageUid(packageName); sPackageNameAndUidCache.put(packageName, uid); return uid; } void loadLabelAndIcon() { if (mIsLoaded) { return; Loading Loading @@ -498,10 +511,11 @@ public class BatteryDiffEntry { return builder.toString(); } /** Clears app icon and label cache data. */ /** Clears all cache data. */ public static void clearCache() { sResourceCache.clear(); sValidForRestriction.clear(); sPackageNameAndUidCache.clear(); } private Drawable getBadgeIconForUser(Drawable icon) { Loading
tests/robotests/src/com/android/settings/fuelgauge/batteryusage/BatteryDiffEntryTest.java +14 −2 Original line number Diff line number Diff line Loading @@ -352,16 +352,18 @@ public final class BatteryDiffEntryTest { } @Test public void testClearCache_clearDataForResourcesAndFlags() { public void testClearCache_clearDataForAllCaches() { BatteryDiffEntry.sResourceCache.put( "fake application key", new BatteryEntry.NameAndIcon("app label", null, /* iconId= */ 0)); BatteryDiffEntry.sValidForRestriction.put("fake application key", Boolean.valueOf(false)); BatteryDiffEntry.sPackageNameAndUidCache.put(PACKAGE_NAME, UID); BatteryDiffEntry.clearCache(); assertThat(BatteryDiffEntry.sResourceCache).isEmpty(); assertThat(BatteryDiffEntry.sValidForRestriction).isEmpty(); assertThat(BatteryDiffEntry.sPackageNameAndUidCache).isEmpty(); } @Test Loading Loading @@ -445,7 +447,11 @@ public final class BatteryDiffEntryTest { final BatteryDiffEntry entry = createBatteryDiffEntry(10, new BatteryHistEntry(values)); assertThat(entry.isSystemEntry()).isFalse(); assertThat(BatteryDiffEntry.sPackageNameAndUidCache.containsKey(PACKAGE_NAME)).isFalse(); assertThat(entry.isUninstalledEntry()).isFalse(); assertThat(BatteryDiffEntry.sPackageNameAndUidCache.containsKey(PACKAGE_NAME)).isTrue(); assertThat(BatteryDiffEntry.sPackageNameAndUidCache.get(PACKAGE_NAME)).isEqualTo(UID); } @Test Loading @@ -457,7 +463,9 @@ public final class BatteryDiffEntryTest { final BatteryDiffEntry entry = createBatteryDiffEntry(10, new BatteryHistEntry(values)); assertThat(entry.isSystemEntry()).isFalse(); assertThat(BatteryDiffEntry.sPackageNameAndUidCache.containsKey(PACKAGE_NAME)).isFalse(); assertThat(entry.isUninstalledEntry()).isFalse(); assertThat(BatteryDiffEntry.sPackageNameAndUidCache.containsKey(PACKAGE_NAME)).isFalse(); } @Test Loading @@ -469,7 +477,11 @@ public final class BatteryDiffEntryTest { final BatteryDiffEntry entry = createBatteryDiffEntry(10, new BatteryHistEntry(values)); assertThat(entry.isSystemEntry()).isFalse(); assertThat(BatteryDiffEntry.sPackageNameAndUidCache.containsKey(UNINSTALLED_PACKAGE_NAME)) .isFalse(); assertThat(entry.isUninstalledEntry()).isTrue(); assertThat(BatteryDiffEntry.sPackageNameAndUidCache.get(UNINSTALLED_PACKAGE_NAME)) .isEqualTo(BatteryUtils.UID_NULL); } @Test Loading