Merge "Avoid load icon and label in the background for periodic job" into sc-dev

This commit is contained in:
YUKAI HUNG
2021-04-14 15:26:47 +00:00
committed by Android (Google) Code Review
2 changed files with 19 additions and 9 deletions

View File

@@ -209,7 +209,8 @@ public class BatteryAppListPreferenceController extends AbstractPreferenceContro
if (sConfig.shouldShowBatteryAttributionList(mContext)) {
final int dischargePercentage = getDischargePercentage(batteryUsageStats);
final List<BatteryEntry> usageList = getCoalescedUsageList(showAllApps);
final List<BatteryEntry> 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<BatteryEntry> usageList = getCoalescedUsageList(showAllApps);
final List<BatteryEntry> 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<BatteryEntry> getCoalescedUsageList(boolean showAllApps) {
private List<BatteryEntry> getCoalescedUsageList(
boolean showAllApps, boolean loadDataInBackground) {
final SparseArray<BatteryEntry> batteryEntryList = new SparseArray<>();
final ArrayList<BatteryEntry> 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));
}
}

View File

@@ -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);
}