Merge "Further defer loading widgets until it is absolutely needed." into tm-dev

This commit is contained in:
Pinyao Ting
2022-03-22 18:31:54 +00:00
committed by Android (Google) Code Review

View File

@@ -1617,14 +1617,17 @@ class AppWidgetServiceImpl extends IAppWidgetService.Stub implements WidgetBacku
final int providerCount = mProviders.size(); final int providerCount = mProviders.size();
for (int i = 0; i < providerCount; i++) { for (int i = 0; i < providerCount; i++) {
Provider provider = mProviders.get(i); Provider provider = mProviders.get(i);
AppWidgetProviderInfo info = provider.getInfoLocked(mContext);
final String providerPackageName = provider.id.componentName.getPackageName(); final String providerPackageName = provider.id.componentName.getPackageName();
// Ignore an invalid provider, one not matching the filter, // Ignore an invalid provider or one that isn't in the given package, if any.
// or one that isn't in the given package, if any. boolean inPackage = packageName == null || providerPackageName.equals(packageName);
boolean inPackage = packageName == null if (provider.zombie || !inPackage) {
|| providerPackageName.equals(packageName); continue;
if (provider.zombie || (info.widgetCategory & categoryFilter) == 0 || !inPackage) { }
// Ignore the ones not matching the filter.
AppWidgetProviderInfo info = provider.getInfoLocked(mContext);
if ((info.widgetCategory & categoryFilter) == 0) {
continue; continue;
} }