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

Commit a1798ca9 authored by Himanshu Dagar's avatar Himanshu Dagar
Browse files

Avoid skipping creation of emulated volume for cloned profile user

As of now, emulated volume is not getting created for the user if media
provider instance is not running in that user space. But, in case of
cloned profile user, where media provider instance is not running and
media queries get redirected to the owner user space, we need to
facilitate the creation of emulated volume. This CL takes care of this
usecase.

Bug: 197310110
Test: manual on Pixel5
Change-Id: I52cd40ed47df84a71c9c17cb2b51dc4a23d0d56d
parent b55b8667
Loading
Loading
Loading
Loading
+12 −1
Original line number Diff line number Diff line
@@ -1541,7 +1541,18 @@ class StorageManagerService extends IStorageManager.Stub
        }

        if (vol.type == VolumeInfo.TYPE_EMULATED) {
            if (!mStorageSessionController.supportsExternalStorage(vol.mountUserId)) {
            final Context volumeUserContext = mContext.createContextAsUser(
                    UserHandle.of(vol.mountUserId), 0);

            boolean isMediaSharedWithParent =
                    (volumeUserContext != null) ? volumeUserContext.getSystemService(
                            UserManager.class).isMediaSharedWithParent() : false;

            // For all the users where media is shared with parent, creation of emulated volume
            // should not be skipped even if media provider instance is not running in that user
            // space
            if (!isMediaSharedWithParent
                    && !mStorageSessionController.supportsExternalStorage(vol.mountUserId)) {
                Slog.d(TAG, "Ignoring volume " + vol.getId() + " because user "
                        + Integer.toString(vol.mountUserId)
                        + " does not support external storage.");