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
diff --git a/src/com/android/settings/bluetooth/RequestPermissionHelperActivity.java b/src/com/android/settings/bluetooth/RequestPermissionHelperActivity.java
index bc33cce..9ea8372 100644
--- a/src/com/android/settings/bluetooth/RequestPermissionHelperActivity.java
+++ b/src/com/android/settings/bluetooth/RequestPermissionHelperActivity.java
@@ -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 @@
         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: {