diff --git a/src/com/android/settings/fuelgauge/BatteryAppListPreferenceController.java b/src/com/android/settings/fuelgauge/BatteryAppListPreferenceController.java index 0e0310e541f..a49c33b6f35 100644 --- a/src/com/android/settings/fuelgauge/BatteryAppListPreferenceController.java +++ b/src/com/android/settings/fuelgauge/BatteryAppListPreferenceController.java @@ -209,7 +209,8 @@ public class BatteryAppListPreferenceController extends AbstractPreferenceContro if (sConfig.shouldShowBatteryAttributionList(mContext)) { final int dischargePercentage = getDischargePercentage(batteryUsageStats); - final List usageList = getCoalescedUsageList(showAllApps); + final List usageList = + getCoalescedUsageList(showAllApps, /*loadDataInBackground=*/ true); final double totalPower = batteryUsageStats.getConsumedPower(); final int numSippers = usageList.size(); for (int i = 0; i < numSippers; i++) { @@ -267,7 +268,8 @@ public class BatteryAppListPreferenceController extends AbstractPreferenceContro return null; } final int dischargePercentage = getDischargePercentage(batteryUsageStats); - final List usageList = getCoalescedUsageList(showAllApps); + final List usageList = + getCoalescedUsageList(showAllApps, /*loadDataInBackground=*/ false); final double totalPower = batteryUsageStats.getConsumedPower(); for (int i = 0; i < usageList.size(); i++) { final BatteryEntry entry = usageList.get(i); @@ -293,7 +295,8 @@ public class BatteryAppListPreferenceController extends AbstractPreferenceContro * * @return A sorted list of apps using power. */ - private List getCoalescedUsageList(boolean showAllApps) { + private List getCoalescedUsageList( + boolean showAllApps, boolean loadDataInBackground) { final SparseArray batteryEntryList = new SparseArray<>(); final ArrayList results = new ArrayList<>(); @@ -333,7 +336,7 @@ public class BatteryAppListPreferenceController extends AbstractPreferenceContro if (index < 0) { // New entry. batteryEntryList.put(realUid, new BatteryEntry(mContext, mHandler, mUserManager, - consumer, isHidden, packages, null)); + consumer, isHidden, packages, null, loadDataInBackground)); } else { // Combine BatterySippers if we already have one with this UID. final BatteryEntry existingSipper = batteryEntryList.valueAt(index); @@ -350,7 +353,7 @@ public class BatteryAppListPreferenceController extends AbstractPreferenceContro } results.add(new BatteryEntry(mContext, mHandler, mUserManager, - consumer, /* isHidden */ true, null, null)); + consumer, /* isHidden */ true, null, null, loadDataInBackground)); } if (showAllApps) { @@ -359,7 +362,7 @@ public class BatteryAppListPreferenceController extends AbstractPreferenceContro for (int i = 0, size = userBatteryConsumers.size(); i < size; i++) { final UserBatteryConsumer consumer = userBatteryConsumers.get(i); results.add(new BatteryEntry(mContext, mHandler, mUserManager, - consumer, /* isHidden */ true, null, null)); + consumer, /* isHidden */ true, null, null, loadDataInBackground)); } } diff --git a/src/com/android/settings/fuelgauge/BatteryEntry.java b/src/com/android/settings/fuelgauge/BatteryEntry.java index 309551b0838..6cb0d120a2e 100644 --- a/src/com/android/settings/fuelgauge/BatteryEntry.java +++ b/src/com/android/settings/fuelgauge/BatteryEntry.java @@ -178,6 +178,12 @@ public class BatteryEntry { public BatteryEntry(Context context, Handler handler, UserManager um, @NonNull BatteryConsumer batteryConsumer, boolean isHidden, String[] packages, String packageName) { + this(context, handler, um, batteryConsumer, isHidden, packages, packageName, true); + } + + public BatteryEntry(Context context, Handler handler, UserManager um, + @NonNull BatteryConsumer batteryConsumer, boolean isHidden, String[] packages, + String packageName, boolean loadDataInBackground) { sHandler = handler; mContext = context; mBatteryConsumer = batteryConsumer; @@ -209,7 +215,7 @@ public class BatteryEntry { name = mDefaultPackageName; } } - getQuickNameIconForUid(uid, packages); + getQuickNameIconForUid(uid, packages, loadDataInBackground); return; } else if (batteryConsumer instanceof SystemBatteryConsumer) { mConsumedPower = batteryConsumer.getConsumedPower() @@ -242,7 +248,8 @@ public class BatteryEntry { return name; } - void getQuickNameIconForUid(final int uid, final String[] packages) { + void getQuickNameIconForUid( + final int uid, final String[] packages, final boolean loadDataInBackground) { // Locale sync to system config in Settings final Locale locale = Locale.getDefault(); if (sCurrentLocale != locale) { @@ -267,7 +274,7 @@ public class BatteryEntry { icon = mContext.getPackageManager().getDefaultActivityIcon(); } - if (sHandler != null) { + if (sHandler != null && loadDataInBackground) { synchronized (sRequestQueue) { sRequestQueue.add(this); }