From ec712b7a992006b815fd6861e0f50210623b7f49 Mon Sep 17 00:00:00 2001 From: Evan Chen Date: Thu, 24 Feb 2022 19:29:46 +0000 Subject: [PATCH] Properly handle pending intent for multi-user Use getActivityAsUser instead of getActivity to handle pending intent for multi-user Test: atest CtsCompanionDeviceManagerCoreTestCases atest CtsCompanionDeviceManagerUiAutomationTestCases atest CtsOsTestCases:CompanionDeviceManagerTest Fix: 218790259, 218790145, 218790302 Change-Id: Id3cd06dfe53ba3b36b1fc06d2d942bd6d1c19a4a --- .../server/companion/AssociationRequestsProcessor.java | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/services/companion/java/com/android/server/companion/AssociationRequestsProcessor.java b/services/companion/java/com/android/server/companion/AssociationRequestsProcessor.java index 2b7b97737e0f6..bf8b18ce31573 100644 --- a/services/companion/java/com/android/server/companion/AssociationRequestsProcessor.java +++ b/services/companion/java/com/android/server/companion/AssociationRequestsProcessor.java @@ -50,6 +50,7 @@ import android.os.Handler; import android.os.Parcel; import android.os.RemoteException; import android.os.ResultReceiver; +import android.os.UserHandle; import android.util.PackageUtils; import android.util.Slog; @@ -201,8 +202,10 @@ class AssociationRequestsProcessor { // requests at the same time. // If the application already has a pending association request, that PendingIntent // will be cancelled. - pendingIntent = PendingIntent.getActivity(mContext, /*requestCode */ packageUid, intent, - FLAG_ONE_SHOT | FLAG_CANCEL_CURRENT | FLAG_IMMUTABLE); + pendingIntent = PendingIntent.getActivityAsUser( + mContext, /*requestCode */ packageUid, intent, + FLAG_ONE_SHOT | FLAG_CANCEL_CURRENT | FLAG_IMMUTABLE, + /* options= */ null, UserHandle.CURRENT); } finally { Binder.restoreCallingIdentity(token); }