diff --git a/res/drawable/ic_battery_uninstalled.xml b/res/drawable/ic_battery_uninstalled.xml
new file mode 100644
index 00000000000..2d8ea862972
--- /dev/null
+++ b/res/drawable/ic_battery_uninstalled.xml
@@ -0,0 +1,33 @@
+
+
+
+
+
+
+
+
diff --git a/res/values/strings.xml b/res/values/strings.xml
index 2cd78066425..b3efaede1b3 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -5557,8 +5557,10 @@
since last full charge
-
+
System apps
+
+ Uninstalled apps
Others
diff --git a/src/com/android/settings/fuelgauge/batteryusage/BatteryDiffData.java b/src/com/android/settings/fuelgauge/batteryusage/BatteryDiffData.java
index f25e16f9578..eebf1f5915a 100644
--- a/src/com/android/settings/fuelgauge/batteryusage/BatteryDiffData.java
+++ b/src/com/android/settings/fuelgauge/batteryusage/BatteryDiffData.java
@@ -131,14 +131,14 @@ public class BatteryDiffData {
final PowerUsageFeatureProvider featureProvider,
final @NonNull Set systemAppsPackageNames,
final @NonNull Set systemAppsUids) {
+ combineIntoUninstalledApps(context, mAppEntries);
combineIntoSystemApps(
context, featureProvider, systemAppsPackageNames, systemAppsUids, mAppEntries);
combineSystemItemsIntoOthers(context, featureProvider, mSystemEntries);
}
private static void purgeBatteryDiffData(
- final PowerUsageFeatureProvider featureProvider,
- final List entries) {
+ final PowerUsageFeatureProvider featureProvider, final List entries) {
final double screenOnTimeThresholdInMs =
featureProvider.getBatteryUsageListScreenOnTimeThresholdInMs();
final double consumePowerThreshold =
@@ -155,7 +155,7 @@ public class BatteryDiffData {
final String packageName = entry.getPackageName();
final Integer componentId = entry.mComponentId;
if ((screenOnTimeInMs < screenOnTimeThresholdInMs
- && comsumePower < consumePowerThreshold)
+ && comsumePower < consumePowerThreshold)
|| ConvertUtils.FAKE_PACKAGE_NAME.equals(packageName)
|| hideSystemComponentSet.contains(componentId)
|| (packageName != null && hideApplicationSet.contains(packageName))) {
@@ -178,18 +178,23 @@ public class BatteryDiffData {
final Iterator appListIterator = appEntries.iterator();
while (appListIterator.hasNext()) {
final BatteryDiffEntry batteryDiffEntry = appListIterator.next();
- if (needsCombineInSystemApp(batteryDiffEntry, systemAppsAllowlist,
- systemAppsPackageNames, systemAppsUids)) {
+ if (needsCombineInSystemApp(
+ batteryDiffEntry,
+ systemAppsAllowlist,
+ systemAppsPackageNames,
+ systemAppsUids)) {
if (systemAppsDiffEntry == null) {
- systemAppsDiffEntry = new BatteryDiffEntry(context,
- BatteryDiffEntry.SYSTEM_APPS_KEY, BatteryDiffEntry.SYSTEM_APPS_KEY,
- ConvertUtils.CONSUMER_TYPE_UID_BATTERY);
+ systemAppsDiffEntry =
+ new BatteryDiffEntry(
+ context,
+ BatteryDiffEntry.SYSTEM_APPS_KEY,
+ BatteryDiffEntry.SYSTEM_APPS_KEY,
+ ConvertUtils.CONSUMER_TYPE_UID_BATTERY);
}
systemAppsDiffEntry.mConsumePower += batteryDiffEntry.mConsumePower;
systemAppsDiffEntry.mForegroundUsageTimeInMs +=
batteryDiffEntry.mForegroundUsageTimeInMs;
- systemAppsDiffEntry.setTotalConsumePower(
- batteryDiffEntry.getTotalConsumePower());
+ systemAppsDiffEntry.setTotalConsumePower(batteryDiffEntry.getTotalConsumePower());
appListIterator.remove();
}
}
@@ -198,6 +203,35 @@ public class BatteryDiffData {
}
}
+ private static void combineIntoUninstalledApps(
+ final Context context, final @NonNull List appEntries) {
+ BatteryDiffEntry uninstalledAppDiffEntry = null;
+ final Iterator appListIterator = appEntries.iterator();
+ while (appListIterator.hasNext()) {
+ final BatteryDiffEntry batteryDiffEntry = appListIterator.next();
+ if (!batteryDiffEntry.isUninstalledEntry()) {
+ continue;
+ }
+
+ if (uninstalledAppDiffEntry == null) {
+ uninstalledAppDiffEntry =
+ new BatteryDiffEntry(
+ context,
+ BatteryDiffEntry.UNINSTALLED_APPS_KEY,
+ BatteryDiffEntry.UNINSTALLED_APPS_KEY,
+ ConvertUtils.CONSUMER_TYPE_UID_BATTERY);
+ }
+ uninstalledAppDiffEntry.mConsumePower += batteryDiffEntry.mConsumePower;
+ uninstalledAppDiffEntry.mForegroundUsageTimeInMs +=
+ batteryDiffEntry.mForegroundUsageTimeInMs;
+ uninstalledAppDiffEntry.setTotalConsumePower(batteryDiffEntry.getTotalConsumePower());
+ appListIterator.remove();
+ }
+ if (uninstalledAppDiffEntry != null) {
+ appEntries.add(uninstalledAppDiffEntry);
+ }
+ }
+
private static void combineSystemItemsIntoOthers(
final Context context,
final PowerUsageFeatureProvider featureProvider,
@@ -210,17 +244,20 @@ public class BatteryDiffData {
while (systemListIterator.hasNext()) {
final BatteryDiffEntry batteryDiffEntry = systemListIterator.next();
final int componentId = batteryDiffEntry.mComponentId;
- if (othersSystemComponentSet.contains(componentId) || (
- componentId >= BatteryConsumer.FIRST_CUSTOM_POWER_COMPONENT_ID
+ if (othersSystemComponentSet.contains(componentId)
+ || (componentId >= BatteryConsumer.FIRST_CUSTOM_POWER_COMPONENT_ID
&& othersCustomComponentNameSet.contains(
batteryDiffEntry.getAppLabel()))) {
if (othersDiffEntry == null) {
- othersDiffEntry = new BatteryDiffEntry(context, BatteryDiffEntry.OTHERS_KEY,
- BatteryDiffEntry.OTHERS_KEY, ConvertUtils.CONSUMER_TYPE_SYSTEM_BATTERY);
+ othersDiffEntry =
+ new BatteryDiffEntry(
+ context,
+ BatteryDiffEntry.OTHERS_KEY,
+ BatteryDiffEntry.OTHERS_KEY,
+ ConvertUtils.CONSUMER_TYPE_SYSTEM_BATTERY);
}
othersDiffEntry.mConsumePower += batteryDiffEntry.mConsumePower;
- othersDiffEntry.setTotalConsumePower(
- batteryDiffEntry.getTotalConsumePower());
+ othersDiffEntry.setTotalConsumePower(batteryDiffEntry.getTotalConsumePower());
systemListIterator.remove();
}
}
diff --git a/src/com/android/settings/fuelgauge/batteryusage/BatteryDiffEntry.java b/src/com/android/settings/fuelgauge/batteryusage/BatteryDiffEntry.java
index b284ea5beb4..971ada99249 100644
--- a/src/com/android/settings/fuelgauge/batteryusage/BatteryDiffEntry.java
+++ b/src/com/android/settings/fuelgauge/batteryusage/BatteryDiffEntry.java
@@ -22,6 +22,7 @@ import android.content.pm.PackageManager.NameNotFoundException;
import android.graphics.drawable.Drawable;
import android.os.UserHandle;
import android.os.UserManager;
+import android.text.TextUtils;
import android.util.Log;
import android.util.Pair;
@@ -43,22 +44,33 @@ public class BatteryDiffEntry {
static Locale sCurrentLocale = null;
// Caches app label and icon to improve loading performance.
static final Map sResourceCache = new HashMap<>();
+
// Whether a specific item is valid to launch restriction page?
@VisibleForTesting(otherwise = VisibleForTesting.PACKAGE_PRIVATE)
static final Map sValidForRestriction = new HashMap<>();
+
/** A comparator for {@link BatteryDiffEntry} based on the sorting key. */
static final Comparator COMPARATOR =
(a, b) -> Double.compare(b.getSortingKey(), a.getSortingKey());
+
static final String SYSTEM_APPS_KEY = "A|SystemApps";
+ static final String UNINSTALLED_APPS_KEY = "A|UninstalledApps";
static final String OTHERS_KEY = "S|Others";
// key -> (label_id, icon_id)
- private static final Map> SPECIAL_ENTRY_MAP = Map.of(
- SYSTEM_APPS_KEY,
- Pair.create(R.string.battery_usage_system_apps, R.drawable.ic_power_system),
- OTHERS_KEY,
- Pair.create(R.string.battery_usage_others,
- R.drawable.ic_settings_battery_usage_others));
+ private static final Map> SPECIAL_ENTRY_MAP =
+ Map.of(
+ SYSTEM_APPS_KEY,
+ Pair.create(
+ R.string.battery_usage_system_apps, R.drawable.ic_power_system),
+ UNINSTALLED_APPS_KEY,
+ Pair.create(
+ R.string.battery_usage_uninstalled_apps,
+ R.drawable.ic_battery_uninstalled),
+ OTHERS_KEY,
+ Pair.create(
+ R.string.battery_usage_others,
+ R.drawable.ic_settings_battery_usage_others));
public long mUid;
public long mUserId;
@@ -146,8 +158,7 @@ public class BatteryDiffEntry {
/** Sets the total consumed power in a specific time slot. */
public void setTotalConsumePower(double totalConsumePower) {
mTotalConsumePower = totalConsumePower;
- mPercentage = totalConsumePower == 0
- ? 0 : (mConsumePower / mTotalConsumePower) * 100.0;
+ mPercentage = totalConsumePower == 0 ? 0 : (mConsumePower / mTotalConsumePower) * 100.0;
mAdjustPercentageOffset = 0;
}
@@ -173,8 +184,21 @@ public class BatteryDiffEntry {
/** Gets the key for sorting */
public double getSortingKey() {
- return getKey() != null && SPECIAL_ENTRY_MAP.containsKey(getKey())
- ? -1 : getPercentage() + getAdjustPercentageOffset();
+ String key = getKey();
+ if (key == null) {
+ return getPercentage() + getAdjustPercentageOffset();
+ }
+
+ // For special entries, put them to the end of the list.
+ switch (key) {
+ case UNINSTALLED_APPS_KEY:
+ case OTHERS_KEY:
+ return -1;
+ case SYSTEM_APPS_KEY:
+ return -2;
+ default:
+ return getPercentage() + getAdjustPercentageOffset();
+ }
}
/** Clones a new instance. */
@@ -222,8 +246,8 @@ public class BatteryDiffEntry {
/** Gets the searching package name for UID battery type. */
public String getPackageName() {
- final String packageName = mDefaultPackageName != null
- ? mDefaultPackageName : mLegacyPackageName;
+ final String packageName =
+ mDefaultPackageName != null ? mDefaultPackageName : mLegacyPackageName;
if (packageName == null) {
return packageName;
}
@@ -231,7 +255,8 @@ public class BatteryDiffEntry {
// From "com.opera.browser:privileged_process0" to "com.opera.browser"
final String[] splitPackageNames = packageName.split(":");
return splitPackageNames != null && splitPackageNames.length > 0
- ? splitPackageNames[0] : packageName;
+ ? splitPackageNames[0]
+ : packageName;
}
/** Whether this item is valid for users to launch restriction page? */
@@ -255,6 +280,17 @@ public class BatteryDiffEntry {
}
}
+ /** Whether the current BatteryDiffEntry is uninstalled app or not. */
+ public boolean isUninstalledEntry() {
+ final String packageName = getPackageName();
+ if (TextUtils.isEmpty(packageName) || isSystemEntry()) {
+ return false;
+ }
+
+ final int uid = BatteryUtils.getInstance(mContext).getPackageUid(packageName);
+ return uid == BatteryUtils.UID_REMOVED_APPS || uid == BatteryUtils.UID_NULL;
+ }
+
void loadLabelAndIcon() {
if (mIsLoaded) {
return;
@@ -286,8 +322,7 @@ public class BatteryDiffEntry {
mAppIconId = pair.second;
mAppIcon = mContext.getDrawable(mAppIconId);
sResourceCache.put(
- getKey(),
- new BatteryEntry.NameAndIcon(mAppLabel, mAppIcon, mAppIconId));
+ getKey(), new BatteryEntry.NameAndIcon(mAppLabel, mAppIcon, mAppIconId));
return;
}
@@ -301,7 +336,7 @@ public class BatteryDiffEntry {
mAppLabel = nameAndIconForUser.mName;
sResourceCache.put(
getKey(),
- new BatteryEntry.NameAndIcon(mAppLabel, mAppIcon, /*iconId=*/ 0));
+ new BatteryEntry.NameAndIcon(mAppLabel, mAppIcon, /* iconId= */ 0));
}
break;
case ConvertUtils.CONSUMER_TYPE_SYSTEM_BATTERY:
@@ -329,7 +364,7 @@ public class BatteryDiffEntry {
if (mAppLabel != null || mAppIcon != null) {
sResourceCache.put(
getKey(),
- new BatteryEntry.NameAndIcon(mAppLabel, mAppIcon, /*iconId=*/ 0));
+ new BatteryEntry.NameAndIcon(mAppLabel, mAppIcon, /* iconId= */ 0));
}
break;
}
@@ -354,16 +389,20 @@ public class BatteryDiffEntry {
}
try {
mValidForRestriction =
- mContext.getPackageManager().getPackageInfo(
- getPackageName(),
- PackageManager.MATCH_DISABLED_COMPONENTS
- | PackageManager.MATCH_ANY_USER
- | PackageManager.GET_SIGNATURES
- | PackageManager.GET_PERMISSIONS)
+ mContext.getPackageManager()
+ .getPackageInfo(
+ getPackageName(),
+ PackageManager.MATCH_DISABLED_COMPONENTS
+ | PackageManager.MATCH_ANY_USER
+ | PackageManager.GET_SIGNATURES
+ | PackageManager.GET_PERMISSIONS)
!= null;
} catch (Exception e) {
- Log.e(TAG, String.format("getPackageInfo() error %s for package=%s",
- e.getCause(), getPackageName()));
+ Log.e(
+ TAG,
+ String.format(
+ "getPackageInfo() error %s for package=%s",
+ e.getCause(), getPackageName()));
mValidForRestriction = false;
}
}
@@ -371,8 +410,11 @@ public class BatteryDiffEntry {
private BatteryEntry.NameAndIcon getCache() {
final Locale locale = Locale.getDefault();
if (sCurrentLocale != locale) {
- Log.d(TAG, String.format("clearCache() locale is changed from %s to %s",
- sCurrentLocale, locale));
+ Log.d(
+ TAG,
+ String.format(
+ "clearCache() locale is changed from %s to %s",
+ sCurrentLocale, locale));
sCurrentLocale = locale;
clearCache();
}
@@ -421,8 +463,11 @@ public class BatteryDiffEntry {
mDefaultPackageName = nameAndIcon.mPackageName;
if (mDefaultPackageName != null
&& !mDefaultPackageName.equals(nameAndIcon.mPackageName)) {
- Log.w(TAG, String.format("found different package: %s | %s",
- mDefaultPackageName, nameAndIcon.mPackageName));
+ Log.w(
+ TAG,
+ String.format(
+ "found different package: %s | %s",
+ mDefaultPackageName, nameAndIcon.mPackageName));
}
}
}
@@ -459,7 +504,8 @@ public class BatteryDiffEntry {
private Drawable getBadgeIconForUser(Drawable icon) {
final int userId = UserHandle.getUserId((int) mUid);
- return userId == UserHandle.USER_OWNER ? icon :
- mUserManager.getBadgedIconForUser(icon, new UserHandle(userId));
+ return userId == UserHandle.USER_OWNER
+ ? icon
+ : mUserManager.getBadgedIconForUser(icon, new UserHandle(userId));
}
}
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/BatteryDiffDataTest.java b/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/BatteryDiffDataTest.java
index d4bae2952de..04d601f984d 100644
--- a/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/BatteryDiffDataTest.java
+++ b/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/BatteryDiffDataTest.java
@@ -60,10 +60,11 @@ public class BatteryDiffDataTest {
@Test
public void needsCombineInSystemApp_isHidden_returnTrue() {
final BatteryDiffEntry hiddenDiffEntry =
- createBatteryDiffEntry(mContext, /*consumePower=*/ 0, /*isHidden=*/ true);
+ createBatteryDiffEntry(mContext, /* consumePower= */ 0, /* isHidden= */ true);
- final boolean needsCombineInSystemApp = BatteryDiffData.needsCombineInSystemApp(
- hiddenDiffEntry, List.of(), Set.of(), Set.of());
+ final boolean needsCombineInSystemApp =
+ BatteryDiffData.needsCombineInSystemApp(
+ hiddenDiffEntry, List.of(), Set.of(), Set.of());
assertThat(needsCombineInSystemApp).isTrue();
}
@@ -71,13 +72,17 @@ public class BatteryDiffDataTest {
@Test
public void needsCombineInSystemApp_isSystemApp_returnTrue() {
final BatteryDiffEntry batteryDiffEntry =
- createBatteryDiffEntry(mContext, /*consumePower=*/ 0, /*isHidden=*/ false);
+ createBatteryDiffEntry(mContext, /* consumePower= */ 0, /* isHidden= */ false);
doReturn(mAppEntry).when(mApplicationsState).getEntry(anyString(), anyInt());
mAppEntry.info = mApplicationInfo;
mApplicationInfo.flags = ApplicationInfo.FLAG_SYSTEM;
- final boolean needsCombineInSystemApp = BatteryDiffData.needsCombineInSystemApp(
- batteryDiffEntry, List.of(), Set.of(ConvertUtils.FAKE_PACKAGE_NAME), Set.of());
+ final boolean needsCombineInSystemApp =
+ BatteryDiffData.needsCombineInSystemApp(
+ batteryDiffEntry,
+ List.of(),
+ Set.of(ConvertUtils.FAKE_PACKAGE_NAME),
+ Set.of());
assertThat(needsCombineInSystemApp).isTrue();
}
@@ -85,13 +90,14 @@ public class BatteryDiffDataTest {
@Test
public void needsCombineInSystemApp_notSystemApp_returnFalse() {
final BatteryDiffEntry batteryDiffEntry =
- createBatteryDiffEntry(mContext, /*consumePower=*/ 0, /*isHidden=*/ false);
+ createBatteryDiffEntry(mContext, /* consumePower= */ 0, /* isHidden= */ false);
doReturn(mAppEntry).when(mApplicationsState).getEntry(anyString(), anyInt());
mAppEntry.info = mApplicationInfo;
mApplicationInfo.flags = 0;
- final boolean needsCombineInSystemApp = BatteryDiffData.needsCombineInSystemApp(
- batteryDiffEntry, List.of(), Set.of(), Set.of());
+ final boolean needsCombineInSystemApp =
+ BatteryDiffData.needsCombineInSystemApp(
+ batteryDiffEntry, List.of(), Set.of(), Set.of());
assertThat(needsCombineInSystemApp).isFalse();
}
@@ -100,11 +106,11 @@ public class BatteryDiffDataTest {
public void processPercentsAndSort_sumLessThan100_adjustTo100() {
List batteryDiffEntries = new ArrayList<>();
batteryDiffEntries.add(
- createBatteryDiffEntry(mContext, /*consumePower=*/ 33.33, /*isHidden=*/ false));
+ createBatteryDiffEntry(mContext, /* consumePower= */ 33.33, /* isHidden= */ false));
batteryDiffEntries.add(
- createBatteryDiffEntry(mContext, /*consumePower=*/ 33.34, /*isHidden=*/ false));
+ createBatteryDiffEntry(mContext, /* consumePower= */ 33.34, /* isHidden= */ false));
batteryDiffEntries.add(
- createBatteryDiffEntry(mContext, /*consumePower=*/ 33.33, /*isHidden=*/ false));
+ createBatteryDiffEntry(mContext, /* consumePower= */ 33.33, /* isHidden= */ false));
BatteryDiffData.processAndSortEntries(batteryDiffEntries);
@@ -120,11 +126,11 @@ public class BatteryDiffDataTest {
public void processPercentsAndSort_sumGreaterThan100_adjustTo100() {
List batteryDiffEntries = new ArrayList<>();
batteryDiffEntries.add(
- createBatteryDiffEntry(mContext, /*consumePower=*/ 48.5, /*isHidden=*/ false));
+ createBatteryDiffEntry(mContext, /* consumePower= */ 48.5, /* isHidden= */ false));
batteryDiffEntries.add(
- createBatteryDiffEntry(mContext, /*consumePower=*/ 3, /*isHidden=*/ false));
+ createBatteryDiffEntry(mContext, /* consumePower= */ 3, /* isHidden= */ false));
batteryDiffEntries.add(
- createBatteryDiffEntry(mContext, /*consumePower=*/ 48.5, /*isHidden=*/ false));
+ createBatteryDiffEntry(mContext, /* consumePower= */ 48.5, /* isHidden= */ false));
BatteryDiffData.processAndSortEntries(batteryDiffEntries);
@@ -136,47 +142,101 @@ public class BatteryDiffDataTest {
assertThat(batteryDiffEntries.get(2).getAdjustPercentageOffset()).isEqualTo(0);
}
+ @Test
+ public void processPercentsAndSort_uninstalledApps_sortAsExpected() {
+ List batteryDiffEntries = new ArrayList<>();
+ batteryDiffEntries.add(
+ createBatteryDiffEntry(mContext, /* consumePower= */ 28.5, /* key= */ "APP_1"));
+ batteryDiffEntries.add(
+ createBatteryDiffEntry(
+ mContext,
+ /* consumePower= */ 20,
+ BatteryDiffEntry.UNINSTALLED_APPS_KEY));
+ batteryDiffEntries.add(
+ createBatteryDiffEntry(mContext, /* consumePower= */ 3, /* key= */ "APP_2"));
+ batteryDiffEntries.add(
+ createBatteryDiffEntry(
+ mContext,
+ /* consumePower= */ 28.5,
+ BatteryDiffEntry.SYSTEM_APPS_KEY));
+ batteryDiffEntries.add(
+ createBatteryDiffEntry(mContext, /* consumePower= */ 20, /* key= */ "APP_3"));
+
+ BatteryDiffData.processAndSortEntries(batteryDiffEntries);
+
+ assertThat(batteryDiffEntries.get(0).getKey()).isEqualTo("APP_1");
+ assertThat(batteryDiffEntries.get(1).getKey()).isEqualTo("APP_3");
+ assertThat(batteryDiffEntries.get(2).getKey()).isEqualTo("APP_2");
+ assertThat(batteryDiffEntries.get(3).getKey())
+ .isEqualTo(BatteryDiffEntry.UNINSTALLED_APPS_KEY);
+ assertThat(batteryDiffEntries.get(4).getKey()).isEqualTo(BatteryDiffEntry.SYSTEM_APPS_KEY);
+ }
+
private static BatteryDiffEntry createBatteryDiffEntry(
Context context, double consumePower, boolean isHidden) {
+ return createBatteryDiffEntry(context, consumePower, isHidden, /* key= */ null);
+ }
+
+ private static BatteryDiffEntry createBatteryDiffEntry(
+ Context context, double consumePower, String key) {
+ return createBatteryDiffEntry(context, consumePower, /* isHidden= */ false, key);
+ }
+
+ private static BatteryDiffEntry createBatteryDiffEntry(
+ Context context, double consumePower, boolean isHidden, String key) {
final int currentUserId = context.getUserId();
- final BatteryHistEntry batteryHistEntry = createBatteryHistEntry(
- ConvertUtils.FAKE_PACKAGE_NAME, "fake_label", consumePower,
- /*foregroundUsageConsumePower=*/ 0, /*foregroundServiceUsageConsumePower=*/ 0,
- /*backgroundUsageConsumePower=*/ 0, /*cachedUsageConsumePower=*/ 0,
- /*uid=*/ 0L, currentUserId, ConvertUtils.CONSUMER_TYPE_UID_BATTERY,
- /*foregroundUsageTimeInMs=*/ 0L, /*backgroundUsageTimeInMs=*/ 0L, isHidden);
+ final BatteryHistEntry batteryHistEntry =
+ createBatteryHistEntry(
+ ConvertUtils.FAKE_PACKAGE_NAME,
+ "fake_label",
+ consumePower,
+ /* foregroundUsageConsumePower= */ 0,
+ /* foregroundServiceUsageConsumePower= */ 0,
+ /* backgroundUsageConsumePower= */ 0,
+ /* cachedUsageConsumePower= */ 0,
+ /* uid= */ 0L,
+ currentUserId,
+ ConvertUtils.CONSUMER_TYPE_UID_BATTERY,
+ /* foregroundUsageTimeInMs= */ 0L,
+ /* backgroundUsageTimeInMs= */ 0L,
+ isHidden);
return new BatteryDiffEntry(
context,
batteryHistEntry.mUid,
batteryHistEntry.mUserId,
- batteryHistEntry.getKey(),
+ key == null ? batteryHistEntry.getKey() : key,
batteryHistEntry.mIsHidden,
batteryHistEntry.mDrainType,
batteryHistEntry.mPackageName,
batteryHistEntry.mAppLabel,
batteryHistEntry.mConsumerType,
- /*foregroundUsageTimeInMs=*/ 0,
- /*backgroundUsageTimeInMs=*/ 0,
- /*screenOnTimeInMs=*/ 0,
- /*consumePower=*/ consumePower,
- /*foregroundUsageConsumePower=*/ 0,
- /*foregroundServiceUsageConsumePower=*/ 0,
- /*backgroundUsageConsumePower=*/ 0,
- /*cachedUsageConsumePower=*/ 0);
+ /* foregroundUsageTimeInMs= */ 0,
+ /* backgroundUsageTimeInMs= */ 0,
+ /* screenOnTimeInMs= */ 0,
+ consumePower,
+ /* foregroundUsageConsumePower= */ 0,
+ /* foregroundServiceUsageConsumePower= */ 0,
+ /* backgroundUsageConsumePower= */ 0,
+ /* cachedUsageConsumePower= */ 0);
}
private static BatteryHistEntry createBatteryHistEntry(
- final String packageName, final String appLabel, final double consumePower,
+ final String packageName,
+ final String appLabel,
+ final double consumePower,
final double foregroundUsageConsumePower,
final double foregroundServiceUsageConsumePower,
- final double backgroundUsageConsumePower, final double cachedUsageConsumePower,
- final long uid, final long userId, final int consumerType,
- final long foregroundUsageTimeInMs, final long backgroundUsageTimeInMs,
+ final double backgroundUsageConsumePower,
+ final double cachedUsageConsumePower,
+ final long uid,
+ final long userId,
+ final int consumerType,
+ final long foregroundUsageTimeInMs,
+ final long backgroundUsageTimeInMs,
final boolean isHidden) {
// Only insert required fields.
final BatteryInformation batteryInformation =
- BatteryInformation
- .newBuilder()
+ BatteryInformation.newBuilder()
.setAppLabel(appLabel)
.setConsumePower(consumePower)
.setForegroundUsageConsumePower(foregroundUsageConsumePower)
@@ -192,7 +252,8 @@ public class BatteryDiffDataTest {
values.put(BatteryHistEntry.KEY_UID, uid);
values.put(BatteryHistEntry.KEY_USER_ID, userId);
values.put(BatteryHistEntry.KEY_CONSUMER_TYPE, consumerType);
- values.put(BatteryHistEntry.KEY_BATTERY_INFORMATION,
+ values.put(
+ BatteryHistEntry.KEY_BATTERY_INFORMATION,
ConvertUtils.convertBatteryInformationToString(batteryInformation));
return new BatteryHistEntry(values);
}
diff --git a/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/BatteryDiffEntryTest.java b/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/BatteryDiffEntryTest.java
index 9bb4b73a658..2cafadbad79 100644
--- a/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/BatteryDiffEntryTest.java
+++ b/tests/robotests/src/com/android/settings/fuelgauge/batteryusage/BatteryDiffEntryTest.java
@@ -58,35 +58,37 @@ import java.util.Locale;
@Config(shadows = {BatteryDiffEntryTest.ShadowUserHandle.class})
public final class BatteryDiffEntryTest {
+ private static final int UID = 100;
+ private static final int UNINSTALLED_UID = 101;
+ private static final String PACKAGE_NAME = "com.android.testing";
+ private static final String UNINSTALLED_PACKAGE_NAME = "com.android.testing.uninstalled";
+
private Context mContext;
- @Mock
- private ApplicationInfo mMockAppInfo;
- @Mock
- private PackageManager mMockPackageManager;
- @Mock
- private UserManager mMockUserManager;
- @Mock
- private Drawable mMockDrawable;
- @Mock
- private Drawable mMockDrawable2;
- @Mock
- private Drawable mMockBadgedDrawable;
- @Mock
- private BatteryHistEntry mBatteryHistEntry;
- @Mock
- private PackageInfo mMockPackageInfo;
- @Mock
- private ConstantState mMockConstantState;
+ @Mock private ApplicationInfo mMockAppInfo;
+ @Mock private PackageManager mMockPackageManager;
+ @Mock private UserManager mMockUserManager;
+ @Mock private Drawable mMockDrawable;
+ @Mock private Drawable mMockDrawable2;
+ @Mock private Drawable mMockBadgedDrawable;
+ @Mock private BatteryHistEntry mBatteryHistEntry;
+ @Mock private PackageInfo mMockPackageInfo;
+ @Mock private ConstantState mMockConstantState;
@Before
- public void setUp() {
+ public void setUp() throws Exception {
MockitoAnnotations.initMocks(this);
ShadowUserHandle.reset();
mContext = spy(RuntimeEnvironment.application);
doReturn(mContext).when(mContext).getApplicationContext();
doReturn(mMockUserManager).when(mContext).getSystemService(UserManager.class);
doReturn(mMockPackageManager).when(mContext).getPackageManager();
+ doReturn(UID)
+ .when(mMockPackageManager)
+ .getPackageUid(PACKAGE_NAME, PackageManager.GET_META_DATA);
+ doReturn(BatteryUtils.UID_NULL)
+ .when(mMockPackageManager)
+ .getPackageUid(UNINSTALLED_PACKAGE_NAME, PackageManager.GET_META_DATA);
BatteryDiffEntry.clearCache();
}
@@ -95,22 +97,22 @@ public final class BatteryDiffEntryTest {
final BatteryDiffEntry entry =
new BatteryDiffEntry(
mContext,
- /*uid=*/ 0,
- /*userId=*/ 0,
- /*key=*/ "key",
- /*isHidden=*/ false,
- /*componentId=*/ -1,
- /*legacyPackageName=*/ null,
- /*legacyLabel=*/ null,
+ /* uid= */ 0,
+ /* userId= */ 0,
+ /* key= */ "key",
+ /* isHidden= */ false,
+ /* componentId= */ -1,
+ /* legacyPackageName= */ null,
+ /* legacyLabel= */ null,
/*consumerType*/ ConvertUtils.CONSUMER_TYPE_UID_BATTERY,
- /*foregroundUsageTimeInMs=*/ 10001L,
- /*backgroundUsageTimeInMs=*/ 20002L,
- /*screenOnTimeInMs=*/ 30003L,
- /*consumePower=*/ 22.0,
- /*foregroundUsageConsumePower=*/ 10.0,
- /*foregroundServiceUsageConsumePower=*/ 10.0,
- /*backgroundUsageConsumePower=*/ 1.0,
- /*cachedUsageConsumePower=*/ 1.0);
+ /* foregroundUsageTimeInMs= */ 10001L,
+ /* backgroundUsageTimeInMs= */ 20002L,
+ /* screenOnTimeInMs= */ 30003L,
+ /* consumePower= */ 22.0,
+ /* foregroundUsageConsumePower= */ 10.0,
+ /* foregroundServiceUsageConsumePower= */ 10.0,
+ /* backgroundUsageConsumePower= */ 1.0,
+ /* cachedUsageConsumePower= */ 1.0);
entry.setTotalConsumePower(100.0);
assertThat(entry.getPercentage()).isEqualTo(22.0);
@@ -121,22 +123,22 @@ public final class BatteryDiffEntryTest {
final BatteryDiffEntry entry =
new BatteryDiffEntry(
mContext,
- /*uid=*/ 0,
- /*userId=*/ 0,
- /*key=*/ "key",
- /*isHidden=*/ false,
- /*componentId=*/ -1,
- /*legacyPackageName=*/ null,
- /*legacyLabel=*/ null,
+ /* uid= */ 0,
+ /* userId= */ 0,
+ /* key= */ "key",
+ /* isHidden= */ false,
+ /* componentId= */ -1,
+ /* legacyPackageName= */ null,
+ /* legacyLabel= */ null,
/*consumerType*/ ConvertUtils.CONSUMER_TYPE_UID_BATTERY,
- /*foregroundUsageTimeInMs=*/ 10001L,
- /*backgroundUsageTimeInMs=*/ 20002L,
- /*screenOnTimeInMs=*/ 30003L,
- /*consumePower=*/ 22.0,
- /*foregroundUsageConsumePower=*/ 10.0,
- /*foregroundServiceUsageConsumePower=*/ 10.0,
- /*backgroundUsageConsumePower=*/ 1.0,
- /*cachedUsageConsumePower=*/ 1.0);
+ /* foregroundUsageTimeInMs= */ 10001L,
+ /* backgroundUsageTimeInMs= */ 20002L,
+ /* screenOnTimeInMs= */ 30003L,
+ /* consumePower= */ 22.0,
+ /* foregroundUsageConsumePower= */ 10.0,
+ /* foregroundServiceUsageConsumePower= */ 10.0,
+ /* backgroundUsageConsumePower= */ 1.0,
+ /* cachedUsageConsumePower= */ 1.0);
entry.setTotalConsumePower(0);
assertThat(entry.getPercentage()).isEqualTo(0);
@@ -149,22 +151,22 @@ public final class BatteryDiffEntryTest {
BatteryDiffEntry systemAppsBatteryDiffEntry =
new BatteryDiffEntry(
mContext,
- /*uid=*/ 0,
- /*userId=*/ 0,
- /*key=*/ BatteryDiffEntry.SYSTEM_APPS_KEY,
- /*isHidden=*/ false,
- /*componentId=*/ -1,
- /*legacyPackageName=*/ null,
- /*legacyLabel=*/ BatteryDiffEntry.SYSTEM_APPS_KEY,
+ /* uid= */ 0,
+ /* userId= */ 0,
+ /* key= */ BatteryDiffEntry.SYSTEM_APPS_KEY,
+ /* isHidden= */ false,
+ /* componentId= */ -1,
+ /* legacyPackageName= */ null,
+ /* legacyLabel= */ BatteryDiffEntry.SYSTEM_APPS_KEY,
/*consumerType*/ ConvertUtils.CONSUMER_TYPE_UID_BATTERY,
- /*foregroundUsageTimeInMs=*/ 0,
- /*backgroundUsageTimeInMs=*/ 0,
- /*screenOnTimeInMs=*/ 0,
- /*consumePower=*/ 0,
- /*foregroundUsageConsumePower=*/ 0,
- /*foregroundServiceUsageConsumePower=*/ 0,
- /*backgroundUsageConsumePower=*/ 0,
- /*cachedUsageConsumePower=*/ 0);
+ /* foregroundUsageTimeInMs= */ 0,
+ /* backgroundUsageTimeInMs= */ 0,
+ /* screenOnTimeInMs= */ 0,
+ /* consumePower= */ 0,
+ /* foregroundUsageConsumePower= */ 0,
+ /* foregroundServiceUsageConsumePower= */ 0,
+ /* backgroundUsageConsumePower= */ 0,
+ /* cachedUsageConsumePower= */ 0);
systemAppsBatteryDiffEntry.mConsumePower = 16;
systemAppsBatteryDiffEntry.setTotalConsumePower(100);
entryList.add(systemAppsBatteryDiffEntry);
@@ -184,14 +186,14 @@ public final class BatteryDiffEntryTest {
public void testLoadLabelAndIcon_forSystemBattery_returnExpectedResult() {
final String expectedName = "Ambient display";
// Generates fake testing data.
- final ContentValues values = getContentValuesWithType(
- ConvertUtils.CONSUMER_TYPE_SYSTEM_BATTERY);
+ final ContentValues values =
+ getContentValuesWithType(ConvertUtils.CONSUMER_TYPE_SYSTEM_BATTERY);
final BatteryInformation batteryInformation =
- BatteryInformation
- .newBuilder()
+ BatteryInformation.newBuilder()
.setDrainType(BatteryConsumer.POWER_COMPONENT_AMBIENT_DISPLAY)
.build();
- values.put(BatteryHistEntry.KEY_BATTERY_INFORMATION,
+ values.put(
+ BatteryHistEntry.KEY_BATTERY_INFORMATION,
ConvertUtils.convertBatteryInformationToString(batteryInformation));
final BatteryHistEntry batteryHistEntry = new BatteryHistEntry(values);
@@ -215,8 +217,8 @@ public final class BatteryDiffEntryTest {
final String expectedName = "Removed user";
doReturn(null).when(mMockUserManager).getUserInfo(1001);
// Generates fake testing data.
- final ContentValues values = getContentValuesWithType(
- ConvertUtils.CONSUMER_TYPE_USER_BATTERY);
+ final ContentValues values =
+ getContentValuesWithType(ConvertUtils.CONSUMER_TYPE_USER_BATTERY);
values.put(BatteryHistEntry.KEY_USER_ID, Integer.valueOf(1001));
final BatteryHistEntry batteryHistEntry = new BatteryHistEntry(values);
@@ -240,14 +242,12 @@ public final class BatteryDiffEntryTest {
public void testGetAppLabel_loadDataFromApplicationInfo() throws Exception {
final String expectedAppLabel = "fake app label";
final String fakePackageName = "com.fake.google.com";
- final ContentValues values = getContentValuesWithType(
- ConvertUtils.CONSUMER_TYPE_UID_BATTERY);
+ final ContentValues values =
+ getContentValuesWithType(ConvertUtils.CONSUMER_TYPE_UID_BATTERY);
values.put(BatteryHistEntry.KEY_UID, /*invalid uid*/ 10001);
values.put(BatteryHistEntry.KEY_PACKAGE_NAME, fakePackageName);
- doReturn(mMockAppInfo).when(mMockPackageManager)
- .getApplicationInfo(fakePackageName, 0);
- doReturn(expectedAppLabel).when(mMockPackageManager)
- .getApplicationLabel(mMockAppInfo);
+ doReturn(mMockAppInfo).when(mMockPackageManager).getApplicationInfo(fakePackageName, 0);
+ doReturn(expectedAppLabel).when(mMockPackageManager).getApplicationLabel(mMockAppInfo);
final BatteryHistEntry batteryHistEntry = new BatteryHistEntry(values);
final BatteryDiffEntry entry = createBatteryDiffEntry(10, batteryHistEntry);
@@ -267,8 +267,8 @@ public final class BatteryDiffEntryTest {
@Test
public void testGetAppLabel_loadDataFromPreDefinedNameAndUid() {
final String expectedAppLabel = "Android OS";
- final ContentValues values = getContentValuesWithType(
- ConvertUtils.CONSUMER_TYPE_UID_BATTERY);
+ final ContentValues values =
+ getContentValuesWithType(ConvertUtils.CONSUMER_TYPE_UID_BATTERY);
final BatteryHistEntry batteryHistEntry = new BatteryHistEntry(values);
final BatteryDiffEntry entry = createBatteryDiffEntry(10, batteryHistEntry);
@@ -284,14 +284,12 @@ public final class BatteryDiffEntryTest {
@Test
public void testGetAppLabel_nullAppLabel_returnAppLabelInBatteryHistEntry() {
final String expectedAppLabel = "fake app label";
- final ContentValues values = getContentValuesWithType(
- ConvertUtils.CONSUMER_TYPE_UID_BATTERY);
+ final ContentValues values =
+ getContentValuesWithType(ConvertUtils.CONSUMER_TYPE_UID_BATTERY);
final BatteryInformation batteryInformation =
- BatteryInformation
- .newBuilder()
- .setAppLabel(expectedAppLabel)
- .build();
- values.put(BatteryHistEntry.KEY_BATTERY_INFORMATION,
+ BatteryInformation.newBuilder().setAppLabel(expectedAppLabel).build();
+ values.put(
+ BatteryHistEntry.KEY_BATTERY_INFORMATION,
ConvertUtils.convertBatteryInformationToString(batteryInformation));
final BatteryHistEntry batteryHistEntry = new BatteryHistEntry(values);
@@ -304,8 +302,8 @@ public final class BatteryDiffEntryTest {
@Test
public void testGetAppIcon_nonUidConsumer_returnAppIconInBatteryDiffEntry() {
- final ContentValues values = getContentValuesWithType(
- ConvertUtils.CONSUMER_TYPE_SYSTEM_BATTERY);
+ final ContentValues values =
+ getContentValuesWithType(ConvertUtils.CONSUMER_TYPE_SYSTEM_BATTERY);
final BatteryHistEntry batteryHistEntry = new BatteryHistEntry(values);
mockConstantState(mMockDrawable);
@@ -324,7 +322,8 @@ public final class BatteryDiffEntryTest {
final BatteryDiffEntry entry = createBatteryDiffEntry(mMockDrawable);
mockConstantState(mMockDrawable);
mockConstantState(mMockBadgedDrawable);
- doReturn(mMockBadgedDrawable).when(mMockUserManager)
+ doReturn(mMockBadgedDrawable)
+ .when(mMockUserManager)
.getBadgedIconForUser(eq(mMockDrawable), any());
entry.mAppIcon = null;
@@ -350,9 +349,8 @@ public final class BatteryDiffEntryTest {
public void testClearCache_clearDataForResourcesAndFlags() {
BatteryDiffEntry.sResourceCache.put(
"fake application key",
- new BatteryEntry.NameAndIcon("app label", null, /*iconId=*/ 0));
- BatteryDiffEntry.sValidForRestriction.put(
- "fake application key", Boolean.valueOf(false));
+ new BatteryEntry.NameAndIcon("app label", null, /* iconId= */ 0));
+ BatteryDiffEntry.sValidForRestriction.put("fake application key", Boolean.valueOf(false));
BatteryDiffEntry.clearCache();
@@ -386,7 +384,8 @@ public final class BatteryDiffEntryTest {
final BatteryDiffEntry entry =
createBatteryDiffEntry(
ConvertUtils.CONSUMER_TYPE_USER_BATTERY,
- /*uid=*/ 0, /*isHidden=*/ false);
+ /* uid= */ 0,
+ /* isHidden= */ false);
assertThat(entry.isSystemEntry()).isTrue();
}
@@ -395,7 +394,8 @@ public final class BatteryDiffEntryTest {
final BatteryDiffEntry entry =
createBatteryDiffEntry(
ConvertUtils.CONSUMER_TYPE_SYSTEM_BATTERY,
- /*uid=*/ 0, /*isHidden=*/ false);
+ /* uid= */ 0,
+ /* isHidden= */ false);
assertThat(entry.isSystemEntry()).isTrue();
}
@@ -404,7 +404,8 @@ public final class BatteryDiffEntryTest {
final BatteryDiffEntry entry =
createBatteryDiffEntry(
ConvertUtils.CONSUMER_TYPE_UID_BATTERY,
- /*uid=*/ 123, /*isHidden=*/ false);
+ /* uid= */ 123,
+ /* isHidden= */ false);
assertThat(entry.isSystemEntry()).isFalse();
}
@@ -413,39 +414,80 @@ public final class BatteryDiffEntryTest {
final BatteryDiffEntry entry =
createBatteryDiffEntry(
ConvertUtils.CONSUMER_TYPE_UID_BATTERY,
- /*uid=*/ 1230, /*isHidden=*/ false);
+ /* uid= */ 1230,
+ /* isHidden= */ false);
assertThat(entry.isSystemEntry()).isFalse();
}
+ @Test
+ public void testIsUninstalledEntry_systemApp_returnFalse() {
+ final BatteryDiffEntry entry =
+ createBatteryDiffEntry(
+ ConvertUtils.CONSUMER_TYPE_SYSTEM_BATTERY,
+ /* uid= */ 0,
+ /* isHidden= */ false);
+ assertThat(entry.isSystemEntry()).isTrue();
+ assertThat(entry.isUninstalledEntry()).isFalse();
+ }
+
+ @Test
+ public void testIsUninstalledEntry_installedApp_returnFalse() throws Exception {
+ final ContentValues values =
+ getContentValuesWithType(ConvertUtils.CONSUMER_TYPE_UID_BATTERY);
+ values.put(BatteryHistEntry.KEY_UID, UID);
+ values.put(BatteryHistEntry.KEY_PACKAGE_NAME, PACKAGE_NAME);
+ final BatteryDiffEntry entry = createBatteryDiffEntry(10, new BatteryHistEntry(values));
+
+ assertThat(entry.isSystemEntry()).isFalse();
+ assertThat(entry.isUninstalledEntry()).isFalse();
+ }
+
+ @Test
+ public void testIsUninstalledEntry_uninstalledApp_returnTrue() throws Exception {
+ doReturn(BatteryUtils.UID_NULL)
+ .when(mMockPackageManager)
+ .getPackageUid(PACKAGE_NAME, PackageManager.GET_META_DATA);
+ final ContentValues values =
+ getContentValuesWithType(ConvertUtils.CONSUMER_TYPE_UID_BATTERY);
+ values.put(BatteryHistEntry.KEY_UID, UNINSTALLED_UID);
+ values.put(BatteryHistEntry.KEY_PACKAGE_NAME, UNINSTALLED_PACKAGE_NAME);
+ final BatteryDiffEntry entry = createBatteryDiffEntry(10, new BatteryHistEntry(values));
+
+ assertThat(entry.isSystemEntry()).isFalse();
+ assertThat(entry.isUninstalledEntry()).isTrue();
+ }
+
@Test
public void testUpdateRestrictionFlagState_updateFlagAsExpected() throws Exception {
final String expectedAppLabel = "fake app label";
final String fakePackageName = "com.fake.google.com";
- final ContentValues values = getContentValuesWithType(
- ConvertUtils.CONSUMER_TYPE_UID_BATTERY);
+ final ContentValues values =
+ getContentValuesWithType(ConvertUtils.CONSUMER_TYPE_UID_BATTERY);
values.put(BatteryHistEntry.KEY_UID, /*invalid uid*/ 10001);
values.put(BatteryHistEntry.KEY_PACKAGE_NAME, fakePackageName);
- final BatteryDiffEntry entry =
- createBatteryDiffEntry(10, new BatteryHistEntry(values));
+ final BatteryDiffEntry entry = createBatteryDiffEntry(10, new BatteryHistEntry(values));
entry.updateRestrictionFlagState();
// Sets false if the app entry cannot be found.
assertThat(entry.mValidForRestriction).isFalse();
- doReturn(BatteryUtils.UID_NULL).when(mMockPackageManager).getPackageUid(
- entry.getPackageName(), PackageManager.GET_META_DATA);
+ doReturn(BatteryUtils.UID_NULL)
+ .when(mMockPackageManager)
+ .getPackageUid(entry.getPackageName(), PackageManager.GET_META_DATA);
entry.updateRestrictionFlagState();
// Sets false if the app is invalid package name.
assertThat(entry.mValidForRestriction).isFalse();
- doReturn(1000).when(mMockPackageManager).getPackageUid(
- entry.getPackageName(), PackageManager.GET_META_DATA);
+ doReturn(1000)
+ .when(mMockPackageManager)
+ .getPackageUid(entry.getPackageName(), PackageManager.GET_META_DATA);
entry.updateRestrictionFlagState();
// Sets false if the app PackageInfo cannot be found.
assertThat(entry.mValidForRestriction).isFalse();
- doReturn(mMockPackageInfo).when(mMockPackageManager).getPackageInfo(
- eq(entry.getPackageName()), anyInt());
+ doReturn(mMockPackageInfo)
+ .when(mMockPackageManager)
+ .getPackageInfo(eq(entry.getPackageName()), anyInt());
entry.updateRestrictionFlagState();
// Sets true if package is valid and PackageInfo can be found.
assertThat(entry.mValidForRestriction).isTrue();
@@ -454,11 +496,10 @@ public final class BatteryDiffEntryTest {
@Test
public void testGetPackageName_returnExpectedResult() {
final String expectedPackageName = "com.fake.google.com";
- final ContentValues values = getContentValuesWithType(
- ConvertUtils.CONSUMER_TYPE_UID_BATTERY);
+ final ContentValues values =
+ getContentValuesWithType(ConvertUtils.CONSUMER_TYPE_UID_BATTERY);
values.put(BatteryHistEntry.KEY_PACKAGE_NAME, expectedPackageName);
- final BatteryDiffEntry entry =
- createBatteryDiffEntry(10, new BatteryHistEntry(values));
+ final BatteryDiffEntry entry = createBatteryDiffEntry(10, new BatteryHistEntry(values));
assertThat(entry.getPackageName()).isEqualTo(expectedPackageName);
}
@@ -466,59 +507,56 @@ public final class BatteryDiffEntryTest {
@Test
public void testGetPackageName_withProcessName_returnExpectedResult() {
final String expectedPackageName = "com.fake.google.com";
- final ContentValues values = getContentValuesWithType(
- ConvertUtils.CONSUMER_TYPE_UID_BATTERY);
- values.put(
- BatteryHistEntry.KEY_PACKAGE_NAME,
- expectedPackageName + ":privileged_process0");
- final BatteryDiffEntry entry =
- createBatteryDiffEntry(10, new BatteryHistEntry(values));
+ final ContentValues values =
+ getContentValuesWithType(ConvertUtils.CONSUMER_TYPE_UID_BATTERY);
+ values.put(BatteryHistEntry.KEY_PACKAGE_NAME, expectedPackageName + ":privileged_process0");
+ final BatteryDiffEntry entry = createBatteryDiffEntry(10, new BatteryHistEntry(values));
assertThat(entry.getPackageName()).isEqualTo(expectedPackageName);
}
- private BatteryDiffEntry createBatteryDiffEntry(
- int consumerType, long uid, boolean isHidden) {
+ private BatteryDiffEntry createBatteryDiffEntry(int consumerType, long uid, boolean isHidden) {
return new BatteryDiffEntry(
mContext,
- /*uid=*/ uid,
- /*userId=*/ 0,
- /*key=*/ "key",
- /*isHidden=*/ isHidden,
- /*componentId=*/ -1,
- /*legacyPackageName=*/ null,
- /*legacyLabel=*/ null,
+ /* uid= */ uid,
+ /* userId= */ 0,
+ /* key= */ "key",
+ /* isHidden= */ isHidden,
+ /* componentId= */ -1,
+ /* legacyPackageName= */ null,
+ /* legacyLabel= */ null,
/*consumerType*/ consumerType,
- /*foregroundUsageTimeInMs=*/ 0,
- /*backgroundUsageTimeInMs=*/ 0,
- /*screenOnTimeInMs=*/ 0,
- /*consumePower=*/ 0,
- /*foregroundUsageConsumePower=*/ 0,
- /*foregroundServiceUsageConsumePower=*/ 0,
- /*backgroundUsageConsumePower=*/ 0,
- /*cachedUsageConsumePower=*/ 0);
+ /* foregroundUsageTimeInMs= */ 0,
+ /* backgroundUsageTimeInMs= */ 0,
+ /* screenOnTimeInMs= */ 0,
+ /* consumePower= */ 0,
+ /* foregroundUsageConsumePower= */ 0,
+ /* foregroundServiceUsageConsumePower= */ 0,
+ /* backgroundUsageConsumePower= */ 0,
+ /* cachedUsageConsumePower= */ 0);
}
private BatteryDiffEntry createBatteryDiffEntry(
double consumePower, BatteryHistEntry batteryHistEntry) {
- final BatteryDiffEntry entry = new BatteryDiffEntry(
- mContext,
- batteryHistEntry.mUid,
- batteryHistEntry.mUserId,
- batteryHistEntry.getKey(),
- batteryHistEntry.mIsHidden,
- batteryHistEntry.mDrainType,
- batteryHistEntry.mPackageName,
- batteryHistEntry.mAppLabel,
- batteryHistEntry.mConsumerType,
- /*foregroundUsageTimeInMs=*/ 0,
- /*backgroundUsageTimeInMs=*/ 0,
- /*screenOnTimeInMs=*/ 0,
- consumePower,
- /*foregroundUsageConsumePower=*/ 0,
- /*foregroundServiceUsageConsumePower=*/ 0,
- /*backgroundUsageConsumePower=*/ 0,
- /*cachedUsageConsumePower=*/ 0);
+ final BatteryDiffEntry entry =
+ new BatteryDiffEntry(
+ mContext,
+ batteryHistEntry.mUid,
+ batteryHistEntry.mUserId,
+ batteryHistEntry.getKey(),
+ batteryHistEntry.mIsHidden,
+ batteryHistEntry.mDrainType,
+ batteryHistEntry.mPackageName,
+ batteryHistEntry.mAppLabel,
+ batteryHistEntry.mConsumerType,
+ /* foregroundUsageTimeInMs= */ 0,
+ /* backgroundUsageTimeInMs= */ 0,
+ /* screenOnTimeInMs= */ 0,
+ consumePower,
+ /* foregroundUsageConsumePower= */ 0,
+ /* foregroundServiceUsageConsumePower= */ 0,
+ /* backgroundUsageConsumePower= */ 0,
+ /* cachedUsageConsumePower= */ 0);
entry.setTotalConsumePower(100.0);
return entry;
}
@@ -530,15 +568,14 @@ public final class BatteryDiffEntryTest {
}
private BatteryDiffEntry createBatteryDiffEntry(Drawable drawable) throws Exception {
- final ContentValues values = getContentValuesWithType(
- ConvertUtils.CONSUMER_TYPE_UID_BATTERY);
+ final ContentValues values =
+ getContentValuesWithType(ConvertUtils.CONSUMER_TYPE_UID_BATTERY);
values.put(BatteryHistEntry.KEY_UID, 1001);
values.put(BatteryHistEntry.KEY_PACKAGE_NAME, "com.a.b.c");
final BatteryHistEntry batteryHistEntry = new BatteryHistEntry(values);
doReturn(drawable).when(mMockPackageManager).getDefaultActivityIcon();
doReturn(null).when(mMockPackageManager).getApplicationInfo("com.a.b.c", 0);
- doReturn(new String[]{"com.a.b.c"}).when(mMockPackageManager)
- .getPackagesForUid(1001);
+ doReturn(new String[] {"com.a.b.c"}).when(mMockPackageManager).getPackagesForUid(1001);
return createBatteryDiffEntry(10, batteryHistEntry);
}