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

Commit 34624a5d authored by Ivan Podogov's avatar Ivan Podogov Committed by Android (Google) Code Review
Browse files

Merge "In permission review mode, always request user's consent to toggle BT." into cw-f-dev

parents 821fdbd3 d2d32b1f
Loading
Loading
Loading
Loading
+9 −15
Original line number Diff line number Diff line
@@ -676,9 +676,8 @@ class BluetoothManagerService extends IBluetoothManager.Stub {
            mContext.enforceCallingOrSelfPermission(BLUETOOTH_ADMIN_PERM,
                    "Need BLUETOOTH ADMIN permission");

            if (!isEnabled() && mPermissionReviewRequired
                    && startConsentUiIfNeeded(packageName, callingUid,
                            BluetoothAdapter.ACTION_REQUEST_ENABLE)) {
            if (!isEnabled() && mPermissionReviewRequired) {
                startConsentUi(packageName, callingUid, BluetoothAdapter.ACTION_REQUEST_ENABLE);
                return false;
            }
        }
@@ -711,9 +710,8 @@ class BluetoothManagerService extends IBluetoothManager.Stub {
            mContext.enforceCallingOrSelfPermission(BLUETOOTH_ADMIN_PERM,
                    "Need BLUETOOTH ADMIN permission");

            if (isEnabled() && mPermissionReviewRequired
                    && startConsentUiIfNeeded(packageName, callingUid,
                            BluetoothAdapter.ACTION_REQUEST_DISABLE)) {
            if (isEnabled() && mPermissionReviewRequired) {
                startConsentUi(packageName, callingUid, BluetoothAdapter.ACTION_REQUEST_DISABLE);
                return false;
            }
        }
@@ -736,8 +734,8 @@ class BluetoothManagerService extends IBluetoothManager.Stub {
        return true;
    }

    private boolean startConsentUiIfNeeded(String packageName,
            int callingUid, String intentAction) throws RemoteException {
    private void startConsentUi(String packageName, int callingUid, String intentAction)
            throws RemoteException {
        try {
            // Validate the package only if we are going to use it
            ApplicationInfo applicationInfo = mContext.getPackageManager()
@@ -749,16 +747,12 @@ class BluetoothManagerService extends IBluetoothManager.Stub {
                        + " not in uid " + callingUid);
            }

            // Legacy apps in permission review mode trigger a user prompt
            if (applicationInfo.targetSdkVersion < Build.VERSION_CODES.M) {
            // Permission review mode, trigger a user prompt
            Intent intent = new Intent(intentAction);
            mContext.startActivity(intent);
                return true;
            }
        } catch (PackageManager.NameNotFoundException e) {
            throw new RemoteException(e.getMessage());
        }
        return false;
    }

    public void unbindAndFinish() {