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