Merge "Fix notifications that are sent for USER_ALL." into nyc-dev
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user