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

Commit b4ee5d7b authored by Jeff Sharkey's avatar Jeff Sharkey
Browse files

Build browse intents based on target user.

SystemUI runs under a single user (user 0), and needs to build
browse intents for secondary users.  To accommodate this, the safety
check recently added to buildBrowseIntent() needs to be relaxed
when building for a non-current user.

Bug: 79733193
Test: builds, boots
Change-Id: Icce014bf824d0a0ee15e3d84c34f1c2b73d213c1
parent b138eaa7
Loading
Loading
Loading
Loading
+5 −1
Original line number Diff line number Diff line
@@ -407,8 +407,12 @@ public class VolumeInfo implements Parcelable {
     * {@link #TYPE_EMULATED} or {@link #TYPE_PUBLIC}.
     */
    public @Nullable Intent buildBrowseIntent() {
        return buildBrowseIntentForUser(UserHandle.myUserId());
    }

    public @Nullable Intent buildBrowseIntentForUser(int userId) {
        final Uri uri;
        if (type == VolumeInfo.TYPE_PUBLIC && mountUserId == UserHandle.myUserId()) {
        if (type == VolumeInfo.TYPE_PUBLIC && mountUserId == userId) {
            uri = DocumentsContract.buildRootUri(DOCUMENT_AUTHORITY, fsUuid);
        } else if (type == VolumeInfo.TYPE_EMULATED && isPrimary()) {
            uri = DocumentsContract.buildRootUri(DOCUMENT_AUTHORITY,
+1 −1
Original line number Diff line number Diff line
@@ -640,7 +640,7 @@ public class StorageNotification extends SystemUI {
    }

    private PendingIntent buildBrowsePendingIntent(VolumeInfo vol) {
        final Intent intent = vol.buildBrowseIntent();
        final Intent intent = vol.buildBrowseIntentForUser(vol.getMountUserId());

        final int requestKey = vol.getId().hashCode();
        return PendingIntent.getActivityAsUser(mContext, requestKey, intent,