From b4ee5d7b42918e9ad2bf23ecf4bb6c2200f24ae3 Mon Sep 17 00:00:00 2001 From: Jeff Sharkey Date: Tue, 22 May 2018 12:01:31 -0600 Subject: [PATCH] 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 --- core/java/android/os/storage/VolumeInfo.java | 6 +++++- .../src/com/android/systemui/usb/StorageNotification.java | 2 +- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/core/java/android/os/storage/VolumeInfo.java b/core/java/android/os/storage/VolumeInfo.java index 576ea52632809..8d4c3c3d3e68b 100644 --- a/core/java/android/os/storage/VolumeInfo.java +++ b/core/java/android/os/storage/VolumeInfo.java @@ -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, diff --git a/packages/SystemUI/src/com/android/systemui/usb/StorageNotification.java b/packages/SystemUI/src/com/android/systemui/usb/StorageNotification.java index d52746599aa17..2f8dfdc2991a2 100644 --- a/packages/SystemUI/src/com/android/systemui/usb/StorageNotification.java +++ b/packages/SystemUI/src/com/android/systemui/usb/StorageNotification.java @@ -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,