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

Commit 9396d105 authored by Shijian Li's avatar Shijian Li Committed by android-build-merger
Browse files

Sync the startConsentUiIfNeeded logics to master. We are missing the package...

Sync the startConsentUiIfNeeded logics to master. We are missing the package name when starting the activity now. am: 2e05346f
am: 1189b1d8

Change-Id: I39aefb9af40cbe6a2cc833bf4e5e96890c0b13a4
parents 1f796b04 1189b1d8
Loading
Loading
Loading
Loading
+20 −8
Original line number Diff line number Diff line
@@ -28,6 +28,7 @@ import android.bluetooth.IBluetoothManager;
import android.bluetooth.IBluetoothManagerCallback;
import android.bluetooth.IBluetoothProfileServiceConnection;
import android.bluetooth.IBluetoothStateChangeCallback;
import android.content.ActivityNotFoundException;
import android.content.BroadcastReceiver;
import android.content.ComponentName;
import android.content.ContentResolver;
@@ -761,8 +762,9 @@ class BluetoothManagerService extends IBluetoothManager.Stub {
            mContext.enforceCallingOrSelfPermission(BLUETOOTH_ADMIN_PERM,
                    "Need BLUETOOTH ADMIN permission");

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

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

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

            // Permission review mode, trigger a user prompt
            Intent intent = new Intent(intentAction);
            intent.putExtra(Intent.EXTRA_PACKAGE_NAME, packageName);
            intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK
                    | Intent.FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS);
            try {
                mContext.startActivity(intent);
            } catch (ActivityNotFoundException e) {
                // Shouldn't happen
                Slog.e(TAG, "Intent to handle action " + intentAction + " missing");
                return false;
            }
            return true;
        } catch (PackageManager.NameNotFoundException e) {
            throw new RemoteException(e.getMessage());
        }