Merge "Return widget uid only when it is bound to screen" into tm-qpr-dev am: 731c7bb7b5
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/20861026 Change-Id: I5f4b1866ebaf3c089001e65cfc92b5d47ed12a1a Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
@@ -817,7 +817,8 @@ class AppWidgetServiceImpl extends IAppWidgetService.Stub implements WidgetBacku
|
|||||||
if (host != null) {
|
if (host != null) {
|
||||||
host.callbacks = null;
|
host.callbacks = null;
|
||||||
pruneHostLocked(host);
|
pruneHostLocked(host);
|
||||||
mAppOpsManagerInternal.updateAppWidgetVisibility(host.getWidgetUids(), false);
|
mAppOpsManagerInternal.updateAppWidgetVisibility(host.getWidgetUidsIfBound(),
|
||||||
|
false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -888,12 +889,8 @@ class AppWidgetServiceImpl extends IAppWidgetService.Stub implements WidgetBacku
|
|||||||
Host host = lookupHostLocked(id);
|
Host host = lookupHostLocked(id);
|
||||||
|
|
||||||
if (host != null) {
|
if (host != null) {
|
||||||
try {
|
mAppOpsManagerInternal.updateAppWidgetVisibility(host.getWidgetUidsIfBound(),
|
||||||
mAppOpsManagerInternal.updateAppWidgetVisibility(host.getWidgetUids(), false);
|
false);
|
||||||
} catch (NullPointerException e) {
|
|
||||||
Slog.e(TAG, "setAppWidgetHidden(): Getting host uids: " + host.toString(), e);
|
|
||||||
throw e;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -4345,14 +4342,15 @@ class AppWidgetServiceImpl extends IAppWidgetService.Stub implements WidgetBacku
|
|||||||
PendingHostUpdate.appWidgetRemoved(appWidgetId));
|
PendingHostUpdate.appWidgetRemoved(appWidgetId));
|
||||||
}
|
}
|
||||||
|
|
||||||
public SparseArray<String> getWidgetUids() {
|
public SparseArray<String> getWidgetUidsIfBound() {
|
||||||
final SparseArray<String> uids = new SparseArray<>();
|
final SparseArray<String> uids = new SparseArray<>();
|
||||||
for (int i = widgets.size() - 1; i >= 0; i--) {
|
for (int i = widgets.size() - 1; i >= 0; i--) {
|
||||||
final Widget widget = widgets.get(i);
|
final Widget widget = widgets.get(i);
|
||||||
if (widget.provider == null) {
|
if (widget.provider == null) {
|
||||||
if (DEBUG) {
|
if (DEBUG) {
|
||||||
Slog.e(TAG, "Widget with no provider " + widget.toString());
|
Slog.d(TAG, "Widget with no provider " + widget.toString());
|
||||||
}
|
}
|
||||||
|
continue;
|
||||||
}
|
}
|
||||||
final ProviderId providerId = widget.provider.id;
|
final ProviderId providerId = widget.provider.id;
|
||||||
uids.put(providerId.uid, providerId.componentName.getPackageName());
|
uids.put(providerId.uid, providerId.componentName.getPackageName());
|
||||||
|
|||||||
Reference in New Issue
Block a user