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

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

MUST ONLY BE SUBMITTED BY AUTOMERGER

Change-Id: I25ef90ea0542ebaa4ea300a6c43906e469a3b840
This commit is contained in:
Keun-young Park
2021-02-01 18:00:09 +00:00
committed by Automerger Merge Worker

View File

@@ -58,6 +58,7 @@ import static org.xmlpull.v1.XmlPullParser.START_TAG;
import android.Manifest; import android.Manifest;
import android.annotation.Nullable; import android.annotation.Nullable;
import android.annotation.UserIdInt;
import android.app.ActivityManager; import android.app.ActivityManager;
import android.app.ActivityManagerInternal; import android.app.ActivityManagerInternal;
import android.app.AppOpsManager; 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); final StorageManager storage = mContext.getSystemService(StorageManager.class);
if (Objects.equals(StorageManager.UUID_PRIVATE_INTERNAL, volumeUuid)) { 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)) { } else if (Objects.equals(StorageManager.UUID_PRIMARY_PHYSICAL, volumeUuid)) {
return storage.getPrimaryPhysicalVolume(); return storage.getPrimaryPhysicalVolume();
} else { } 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; return;
} else { } else {
from = findStorageForUuid(mPrimaryStorageUuid); int currentUserId = mCurrentUserId;
to = findStorageForUuid(volumeUuid); from = findStorageForUuidAsUser(mPrimaryStorageUuid, currentUserId);
to = findStorageForUuidAsUser(volumeUuid, currentUserId);
if (from == null) { if (from == null) {
Slog.w(TAG, "Failing move due to missing from volume " + mPrimaryStorageUuid); Slog.w(TAG, "Failing move due to missing from volume " + mPrimaryStorageUuid);