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

am: 5e7fc7ccc8

Change-Id: I4214dc072d3155cd417ee3577918570e515fa1cf
This commit is contained in:
Shijian Li
2017-01-12 03:07:10 +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;
@@ -719,8 +720,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;
}
}
@@ -754,8 +756,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;
}
}
@@ -775,8 +778,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()
@@ -788,9 +791,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());
}