Merge "[MS23] Remove UserHandle.getUserId dependencies" am: b68d04b7bb am: fa435f5c40 am: 966a53292b

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

Change-Id: If2270e0cc8d249966ba7862b22d322ec20b3045b
This commit is contained in:
Treehugger Robot
2021-12-30 16:08:56 +00:00
committed by Automerger Merge Worker

View File

@@ -160,6 +160,8 @@ public final class NetworkStatsAccess {
*/
public static boolean isAccessibleToUser(int uid, int callerUid,
@NetworkStatsAccess.Level int accessLevel) {
final int userId = UserHandle.getUserHandleForUid(uid).getIdentifier();
final int callerUserId = UserHandle.getUserHandleForUid(callerUid).getIdentifier();
switch (accessLevel) {
case NetworkStatsAccess.Level.DEVICE:
// Device-level access - can access usage for any uid.
@@ -170,13 +172,13 @@ public final class NetworkStatsAccess {
// anonymized uids
return uid == android.os.Process.SYSTEM_UID || uid == UID_REMOVED
|| uid == UID_TETHERING || uid == UID_ALL
|| UserHandle.getUserId(uid) == UserHandle.getUserId(callerUid);
|| userId == callerUserId;
case NetworkStatsAccess.Level.USER:
// User-level access - can access usage for any app running in the same user, along
// with some special uids (system, removed, or tethering).
return uid == android.os.Process.SYSTEM_UID || uid == UID_REMOVED
|| uid == UID_TETHERING
|| UserHandle.getUserId(uid) == UserHandle.getUserId(callerUid);
|| userId == callerUserId;
case NetworkStatsAccess.Level.DEFAULT:
default:
// Default access level - can only access one's own usage.