Merge "Fix notifications that are sent for USER_ALL." into nyc-dev

This commit is contained in:
Jeff Sharkey
2016-04-11 23:19:06 +00:00
committed by Android (Google) Code Review
2 changed files with 14 additions and 9 deletions

View File

@@ -1955,9 +1955,16 @@ public class Notification implements Parcelable
* @hide
*/
public static void addFieldsFromContext(Context context, Notification notification) {
notification.extras.putParcelable(EXTRA_BUILDER_APPLICATION_INFO,
context.getApplicationInfo());
notification.extras.putInt(EXTRA_ORIGINATING_USERID, context.getUserId());
addFieldsFromContext(context.getApplicationInfo(), context.getUserId(), notification);
}
/**
* @hide
*/
public static void addFieldsFromContext(ApplicationInfo ai, int userId,
Notification notification) {
notification.extras.putParcelable(EXTRA_BUILDER_APPLICATION_INFO, ai);
notification.extras.putInt(EXTRA_ORIGINATING_USERID, userId);
}
@Override

View File

@@ -2459,12 +2459,10 @@ public class NotificationManagerService extends SystemService {
// Fix the notification as best we can.
try {
if (!"android".equals(pkg) && !"system".equals(pkg)) {
Notification.addFieldsFromContext(getContext().createApplicationContext(
getContext().getPackageManager().getApplicationInfoAsUser(
pkg, PackageManager.MATCH_UNINSTALLED_PACKAGES, userId),
Context.CONTEXT_RESTRICTED), notification);
}
final ApplicationInfo ai = getContext().getPackageManager().getApplicationInfoAsUser(
pkg, PackageManager.MATCH_DEBUG_TRIAGED_MISSING,
(userId == UserHandle.USER_ALL) ? UserHandle.USER_SYSTEM : userId);
Notification.addFieldsFromContext(ai, userId, notification);
} catch (NameNotFoundException e) {
Slog.e(TAG, "Cannot create a context for sending app", e);
return;