am 7be52cbc: Merge "Logging to help find the cause of widget crash in clock widget." into jb-mr1.1-dev
* commit '7be52cbc33157e4700b7d04e69d1149cd80e9096': Logging to help find the cause of widget crash in clock widget.
This commit is contained in:
@@ -336,6 +336,7 @@ class AppWidgetServiceImpl {
|
|||||||
pw.print(info.autoAdvanceViewId);
|
pw.print(info.autoAdvanceViewId);
|
||||||
pw.print(" initialLayout=#");
|
pw.print(" initialLayout=#");
|
||||||
pw.print(Integer.toHexString(info.initialLayout));
|
pw.print(Integer.toHexString(info.initialLayout));
|
||||||
|
pw.print(" uid="); pw.print(p.uid);
|
||||||
pw.print(" zombie="); pw.println(p.zombie);
|
pw.print(" zombie="); pw.println(p.zombie);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -699,6 +700,10 @@ class AppWidgetServiceImpl {
|
|||||||
}
|
}
|
||||||
|
|
||||||
int userId = UserHandle.getUserId(id.provider.uid);
|
int userId = UserHandle.getUserId(id.provider.uid);
|
||||||
|
if (userId != mUserId) {
|
||||||
|
Slog.w(TAG, "AppWidgetServiceImpl of user " + mUserId
|
||||||
|
+ " binding to provider on user " + userId);
|
||||||
|
}
|
||||||
// Bind to the RemoteViewsService (which will trigger a callback to the
|
// Bind to the RemoteViewsService (which will trigger a callback to the
|
||||||
// RemoteViewsAdapter.onServiceConnected())
|
// RemoteViewsAdapter.onServiceConnected())
|
||||||
final long token = Binder.clearCallingIdentity();
|
final long token = Binder.clearCallingIdentity();
|
||||||
@@ -966,6 +971,13 @@ class AppWidgetServiceImpl {
|
|||||||
ensureStateLoadedLocked();
|
ensureStateLoadedLocked();
|
||||||
for (int i = 0; i < N; i++) {
|
for (int i = 0; i < N; i++) {
|
||||||
AppWidgetId id = lookupAppWidgetIdLocked(appWidgetIds[i]);
|
AppWidgetId id = lookupAppWidgetIdLocked(appWidgetIds[i]);
|
||||||
|
if (id == null) {
|
||||||
|
String message = "AppWidgetId NPE: mUserId=" + mUserId
|
||||||
|
+ ", callingUid=" + Binder.getCallingUid()
|
||||||
|
+ ", appWidgetIds[i]=" + appWidgetIds[i]
|
||||||
|
+ "\n mAppWidgets:\n" + getUserWidgets();
|
||||||
|
throw new NullPointerException(message);
|
||||||
|
}
|
||||||
if (id.views != null) {
|
if (id.views != null) {
|
||||||
// Only trigger a partial update for a widget if it has received a full update
|
// Only trigger a partial update for a widget if it has received a full update
|
||||||
updateAppWidgetInstanceLocked(id, views, true);
|
updateAppWidgetInstanceLocked(id, views, true);
|
||||||
@@ -974,6 +986,18 @@ class AppWidgetServiceImpl {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private String getUserWidgets() {
|
||||||
|
StringBuffer sb = new StringBuffer();
|
||||||
|
for (AppWidgetId widget: mAppWidgetIds) {
|
||||||
|
sb.append(" id="); sb.append(widget.appWidgetId);
|
||||||
|
sb.append(", hostUid="); sb.append(widget.host.uid);
|
||||||
|
sb.append(", provider="); sb.append(widget.provider.info.provider.toString());
|
||||||
|
sb.append("\n");
|
||||||
|
}
|
||||||
|
sb.append("\n");
|
||||||
|
return sb.toString();
|
||||||
|
}
|
||||||
|
|
||||||
public void notifyAppWidgetViewDataChanged(int[] appWidgetIds, int viewId) {
|
public void notifyAppWidgetViewDataChanged(int[] appWidgetIds, int viewId) {
|
||||||
if (appWidgetIds == null) {
|
if (appWidgetIds == null) {
|
||||||
return;
|
return;
|
||||||
|
|||||||
Reference in New Issue
Block a user