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

Commit 7a3be83d authored by android-build-team Robot's avatar android-build-team Robot
Browse files

Snap for 4599059 from fbf25dc0 to pi-release

Change-Id: Ic57d8060cc61e066b6acc58ad6fd90f75ecb712a
parents fe0d2fee fbf25dc0
Loading
Loading
Loading
Loading
+27 −3
Original line number Diff line number Diff line
@@ -948,8 +948,11 @@ class BluetoothManagerService extends IBluetoothManager.Stub {
        return true;
    }

    private boolean startConsentUiIfNeeded(String packageName, int callingUid, String intentAction)
            throws RemoteException {
    private boolean startConsentUiIfNeeded(String packageName,
            int callingUid, String intentAction) throws RemoteException {
        if (checkBluetoothPermissionWhenPermissionReviewRequired()) {
            return false;
        }
        try {
            // Validate the package only if we are going to use it
            ApplicationInfo applicationInfo = mContext.getPackageManager()
@@ -957,7 +960,8 @@ class BluetoothManagerService extends IBluetoothManager.Stub {
                            PackageManager.MATCH_DEBUG_TRIAGED_MISSING,
                            UserHandle.getUserId(callingUid));
            if (applicationInfo.uid != callingUid) {
                throw new SecurityException("Package " + callingUid + " not in uid " + callingUid);
                throw new SecurityException("Package " + packageName
                        + " not in uid " + callingUid);
            }

            Intent intent = new Intent(intentAction);
@@ -977,6 +981,26 @@ class BluetoothManagerService extends IBluetoothManager.Stub {
        }
    }

    /**
     * Check if the caller must still pass permission check or if the caller is exempted
     * from the consent UI via the MANAGE_BLUETOOTH_WHEN_PERMISSION_REVIEW_REQUIRED check.
     *
     * Commands from some callers may be exempted from triggering the consent UI when
     * enabling bluetooth. This exemption is checked via the
     * MANAGE_BLUETOOTH_WHEN_PERMISSION_REVIEW_REQUIRED and allows calls to skip
     * the consent UI where it may otherwise be required.
     *
     * @hide
     */
    private boolean checkBluetoothPermissionWhenPermissionReviewRequired() {
        if (!mPermissionReviewRequired) {
            return false;
        }
        int result = mContext.checkCallingPermission(
                android.Manifest.permission.MANAGE_BLUETOOTH_WHEN_PERMISSION_REVIEW_REQUIRED);
        return result == PackageManager.PERMISSION_GRANTED;
    }

    public void unbindAndFinish() {
        if (DBG) {
            Slog.d(TAG, "unbindAndFinish(): " + mBluetooth + " mBinding = " + mBinding