Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 289bccae authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Automerger Merge Worker
Browse files

Merge "Ensure package context used by System UI has a valid userId." into...

Merge "Ensure package context used by System UI has a valid userId." into sc-qpr1-dev am: e7f5a375 am: 75891d4d

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/15584842

Change-Id: I8b8da358d8599bd03db27fb33281552ae51cadac
parents 5c28ce14 75891d4d
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -436,7 +436,7 @@ public class StatusBarNotification implements Parcelable {
            try {
                ApplicationInfo ai = context.getPackageManager()
                        .getApplicationInfoAsUser(pkg, PackageManager.MATCH_UNINSTALLED_PACKAGES,
                                getUserId());
                                getNormalizedUserId());
                mContext = context.createApplicationContext(ai,
                        Context.CONTEXT_RESTRICTED);
            } catch (PackageManager.NameNotFoundException e) {
+18 −0
Original line number Diff line number Diff line
@@ -17,6 +17,8 @@
package android.service.notification;

import static junit.framework.Assert.assertEquals;
import static junit.framework.Assert.assertNotNull;
import static junit.framework.Assert.assertNotSame;
import static junit.framework.Assert.assertNull;

import static org.junit.Assert.assertFalse;
@@ -51,6 +53,7 @@ public class StatusBarNotificationTest {

    private final Context mMockContext = mock(Context.class);
    @Mock
    private Context mRealContext;
    private PackageManager mPm;

    private static final String PKG = "com.example.o";
@@ -75,6 +78,8 @@ public class StatusBarNotificationTest {
                InstrumentationRegistry.getContext().getResources());
        when(mMockContext.getPackageManager()).thenReturn(mPm);
        when(mMockContext.getApplicationInfo()).thenReturn(new ApplicationInfo());

        mRealContext = InstrumentationRegistry.getContext();
    }

    @Test
@@ -199,6 +204,19 @@ public class StatusBarNotificationTest {

    }

    @Test
    public void testGetPackageContext_worksWithUserAll() {
        String pkg = "com.android.systemui";
        int uid = 1000;
        Notification notification = getNotificationBuilder(GROUP_ID_1, CHANNEL_ID).build();
        StatusBarNotification sbn = new StatusBarNotification(
                pkg, pkg, ID, TAG, uid, uid, notification, UserHandle.ALL, null, UID);
        Context resultContext = sbn.getPackageContext(mRealContext);
        assertNotNull(resultContext);
        assertNotSame(mRealContext, resultContext);
        assertEquals(pkg, resultContext.getPackageName());
    }

    private StatusBarNotification getNotification(String pkg, String group, String channelId) {
        return getNotification(pkg, getNotificationBuilder(group, channelId));
    }