From 39f9f413b3351446f6e022f8529f26abc437c703 Mon Sep 17 00:00:00 2001 From: William Escande Date: Tue, 11 Jan 2022 14:50:21 +0100 Subject: [PATCH] replace UserManagerInternal with UserManager Because Bluetooth is going mainline, we need to remove call to hidden API. UserManagerInternal and UserRestrictionsListener are hidden, the available alternative are UserManager and IUserRestrictionsListener Bug: 211851706 Test: Build + start bt Tag: #refactor Change-Id: I804b2124634a18187c022293664614807535966e --- .../server/BluetoothManagerService.java | 38 +++++++++---------- 1 file changed, 19 insertions(+), 19 deletions(-) diff --git a/services/core/java/com/android/server/BluetoothManagerService.java b/services/core/java/com/android/server/BluetoothManagerService.java index bc8da8443a7d2..a5c44ee264c0e 100644 --- a/services/core/java/com/android/server/BluetoothManagerService.java +++ b/services/core/java/com/android/server/BluetoothManagerService.java @@ -20,7 +20,6 @@ import static android.Manifest.permission.BLUETOOTH_CONNECT; import static android.content.pm.PackageManager.MATCH_SYSTEM_ONLY; import static android.content.pm.PackageManager.PERMISSION_GRANTED; import static android.os.PowerExemptionManager.TEMPORARY_ALLOW_LIST_TYPE_FOREGROUND_SERVICE_ALLOWED; -import static android.os.UserHandle.USER_SYSTEM; import static android.permission.PermissionCheckerManager.PERMISSION_HARD_DENIED; import android.Manifest; @@ -64,6 +63,7 @@ import android.os.Binder; import android.os.Bundle; import android.os.Handler; import android.os.IBinder; +import android.os.IUserRestrictionsListener; import android.os.Looper; import android.os.Message; import android.os.PowerExemptionManager; @@ -87,9 +87,6 @@ import com.android.internal.R; import com.android.internal.annotations.VisibleForTesting; import com.android.internal.util.DumpUtils; import com.android.internal.util.FrameworkStatsLog; -import com.android.server.pm.UserManagerInternal; -import com.android.server.pm.UserManagerInternal.UserRestrictionsListener; -import com.android.server.pm.UserRestrictionsUtils; import java.io.FileDescriptor; import java.io.PrintWriter; @@ -264,30 +261,34 @@ class BluetoothManagerService extends IBluetoothManager.Stub { } }; - private final UserRestrictionsListener mUserRestrictionsListener = - new UserRestrictionsListener() { + private final IUserRestrictionsListener mUserRestrictionsListener = + new IUserRestrictionsListener.Stub() { @Override public void onUserRestrictionsChanged(int userId, Bundle newRestrictions, Bundle prevRestrictions) { - if (UserRestrictionsUtils.restrictionsChanged(prevRestrictions, newRestrictions, - UserManager.DISALLOW_BLUETOOTH_SHARING)) { + final boolean newDisallowBluetoothSharing = newRestrictions + .getBoolean(UserManager.DISALLOW_BLUETOOTH_SHARING, false); + final boolean prevDisallowBluetoothSharing = prevRestrictions + .getBoolean(UserManager.DISALLOW_BLUETOOTH_SHARING, false); + if (newDisallowBluetoothSharing != prevDisallowBluetoothSharing) { updateOppLauncherComponentState(userId, newRestrictions.getBoolean(UserManager.DISALLOW_BLUETOOTH_SHARING)); } + final boolean newDisallowBluetooth = newRestrictions + .getBoolean(UserManager.DISALLOW_BLUETOOTH, false); + final boolean prevDisallowBluetooth = prevRestrictions + .getBoolean(UserManager.DISALLOW_BLUETOOTH, false); // DISALLOW_BLUETOOTH can only be set by DO or PO on the system user. - if (userId == USER_SYSTEM - && UserRestrictionsUtils.restrictionsChanged(prevRestrictions, - newRestrictions, UserManager.DISALLOW_BLUETOOTH)) { - if (userId == USER_SYSTEM && newRestrictions.getBoolean( - UserManager.DISALLOW_BLUETOOTH)) { + final boolean isUserSystem = userId == UserHandle.SYSTEM.getIdentifier(); + if (isUserSystem && newDisallowBluetooth != prevDisallowBluetooth) { + if (isUserSystem && newDisallowBluetooth) { updateOppLauncherComponentState(userId, true); // Sharing disallowed sendDisableMsg(BluetoothProtoEnums.ENABLE_DISABLE_REASON_DISALLOWED, mContext.getPackageName()); } else { - updateOppLauncherComponentState(userId, newRestrictions.getBoolean( - UserManager.DISALLOW_BLUETOOTH_SHARING)); + updateOppLauncherComponentState(userId, newDisallowBluetoothSharing); } } } @@ -540,7 +541,7 @@ class BluetoothManagerService extends IBluetoothManager.Stub { if (!noHome) { PackageManagerInternal pm = LocalServices.getService(PackageManagerInternal.class); systemUiUid = pm.getPackageUid(pm.getSystemUiServiceComponent().getPackageName(), - MATCH_SYSTEM_ONLY, USER_SYSTEM); + MATCH_SYSTEM_ONLY, UserHandle.SYSTEM.getIdentifier()); } if (systemUiUid >= 0) { Slog.d(TAG, "Detected SystemUiUid: " + Integer.toString(systemUiUid)); @@ -1391,9 +1392,8 @@ class BluetoothManagerService extends IBluetoothManager.Stub { Slog.d(TAG, "Bluetooth boot completed"); } mAppOps = mContext.getSystemService(AppOpsManager.class); - UserManagerInternal userManagerInternal = - LocalServices.getService(UserManagerInternal.class); - userManagerInternal.addUserRestrictionsListener(mUserRestrictionsListener); + UserManager userManager = mContext.getSystemService(UserManager.class); + userManager.addUserRestrictionsListener(mUserRestrictionsListener); final boolean isBluetoothDisallowed = isBluetoothDisallowed(); if (isBluetoothDisallowed) { return;