Sync the startConsentUiIfNeeded logics to master. We are missing the package name when starting the activity now. am: 5e7fc7ccc8

am: ae21066a59

Change-Id: I3033d6d64d35f2c9c1aafe003eef0860c1f78efc
This commit is contained in:
Shijian Li
2017-01-12 03:12:17 +00:00
committed by android-build-merger

View File

@@ -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);
mContext.startActivity(intent);
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());
}