Fix StorageVolume creation for clone users.

The StorageVolume should be created with the actual mount user id, not
the user id of the MediaProvider that we're using to host it.


Bug: 182396009
Test: inspect StorageVolume state after starting a clone user
Change-Id: I9644eb85376e8ffdddf77bec0d06867118cd16b8
This commit is contained in:
Martijn Coenen
2021-04-01 09:55:41 +02:00
parent 241dd6ef0e
commit e96481776f

View File

@@ -147,17 +147,18 @@ public final class StorageSessionController {
return;
}
String sessionId = vol.getId();
int userId = getConnectionUserIdForVolume(vol);
int connectionUserId = getConnectionUserIdForVolume(vol);
StorageUserConnection connection = null;
synchronized (mLock) {
connection = mConnections.get(userId);
connection = mConnections.get(connectionUserId);
if (connection != null) {
Slog.i(TAG, "Notifying volume state changed for session with id: " + sessionId);
connection.notifyVolumeStateChanged(sessionId,
vol.buildStorageVolume(mContext, userId, false));
vol.buildStorageVolume(mContext, vol.getMountUserId(), false));
} else {
Slog.w(TAG, "No available storage user connection for userId : " + userId);
Slog.w(TAG, "No available storage user connection for userId : "
+ connectionUserId);
}
}
}