RequestPermissionHelperActivity: policy transparency for BT disallowed

Don't try to enable Bluetooth if it was disallowed, show a policy
transparency dialog instead.

Test: manual with CtsVerifier

Bug: 32895313

Change-Id: I9dd535a959b65f172cf2dcdd5483773d4f67366c
This commit is contained in:
Lenka Trochtova
2017-01-26 15:34:52 +01:00
parent 77af2af66a
commit a2070edbf2

View File

@@ -17,12 +17,14 @@
package com.android.settings.bluetooth;
import android.app.Activity;
import android.app.admin.DevicePolicyManager;
import android.bluetooth.BluetoothAdapter;
import android.content.DialogInterface;
import android.content.Intent;
import android.content.pm.ApplicationInfo;
import android.content.pm.PackageManager;
import android.os.Bundle;
import android.os.UserManager;
import android.support.annotation.NonNull;
import android.text.TextUtils;
import android.util.Log;
@@ -125,8 +127,19 @@ public class RequestPermissionHelperActivity extends AlertActivity implements
switch (mRequest) {
case RequestPermissionActivity.REQUEST_ENABLE:
case RequestPermissionActivity.REQUEST_ENABLE_DISCOVERABLE: {
mLocalAdapter.enable();
setResult(Activity.RESULT_OK);
UserManager userManager = getSystemService(UserManager.class);
if (userManager.hasUserRestriction(UserManager.DISALLOW_BLUETOOTH)) {
// If Bluetooth is disallowed, don't try to enable it, show policy transparency
// message instead.
DevicePolicyManager dpm = getSystemService(DevicePolicyManager.class);
Intent intent = dpm.createAdminSupportIntent(UserManager.DISALLOW_BLUETOOTH);
if (intent != null) {
startActivity(intent);
}
} else {
mLocalAdapter.enable();
setResult(Activity.RESULT_OK);
}
} break;
case RequestPermissionActivity.REQUEST_DISABLE: {