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

Commit f0544ead authored by Keun-young Park's avatar Keun-young Park Committed by Automerger Merge Worker
Browse files

Merge "Change setPrimaryStorageUuid to handle it for the current user" into...

Merge "Change setPrimaryStorageUuid to handle it for the current user" into rvc-qpr-dev am: 6c1e9153

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

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: I25ef90ea0542ebaa4ea300a6c43906e469a3b840
parents 7720b1f3 6c1e9153
Loading
Loading
Loading
Loading
+14 −5
Original line number Diff line number Diff line
@@ -58,6 +58,7 @@ import static org.xmlpull.v1.XmlPullParser.START_TAG;

import android.Manifest;
import android.annotation.Nullable;
import android.annotation.UserIdInt;
import android.app.ActivityManager;
import android.app.ActivityManagerInternal;
import android.app.AppOpsManager;
@@ -511,14 +512,21 @@ class StorageManagerService extends IStorageManager.Stub
        }
    }

    private @Nullable VolumeInfo findStorageForUuid(String volumeUuid) {
    private @Nullable VolumeInfo findStorageForUuidAsUser(String volumeUuid,
            @UserIdInt int userId) {
        final StorageManager storage = mContext.getSystemService(StorageManager.class);
        if (Objects.equals(StorageManager.UUID_PRIVATE_INTERNAL, volumeUuid)) {
            return storage.findVolumeById(VolumeInfo.ID_EMULATED_INTERNAL + ";" + 0);
            return storage.findVolumeById(VolumeInfo.ID_EMULATED_INTERNAL + ";" + userId);
        } else if (Objects.equals(StorageManager.UUID_PRIMARY_PHYSICAL, volumeUuid)) {
            return storage.getPrimaryPhysicalVolume();
        } else {
            return storage.findEmulatedForPrivate(storage.findVolumeByUuid(volumeUuid));
            VolumeInfo info = storage.findVolumeByUuid(volumeUuid);
            if (info == null) {
                Slog.w(TAG, "findStorageForUuidAsUser cannot find volumeUuid:" + volumeUuid);
                return null;
            }
            String emulatedUuid = info.getId().replace("private", "emulated") + ";" + userId;
            return storage.findVolumeById(emulatedUuid);
        }
    }

@@ -2766,8 +2774,9 @@ class StorageManagerService extends IStorageManager.Stub
                return;

            } else {
                from = findStorageForUuid(mPrimaryStorageUuid);
                to = findStorageForUuid(volumeUuid);
                int currentUserId = mCurrentUserId;
                from = findStorageForUuidAsUser(mPrimaryStorageUuid, currentUserId);
                to = findStorageForUuidAsUser(volumeUuid, currentUserId);

                if (from == null) {
                    Slog.w(TAG, "Failing move due to missing from volume " + mPrimaryStorageUuid);