Trigger a support dialog when an action is disabled by policy

Change-Id: I847b481a16cce33fe7bd4040d38ec50ca62172c2
This commit is contained in:
Sudheer Shanka
2016-01-15 12:20:46 +00:00
parent ae7e15b730
commit ef550767b0
6 changed files with 80 additions and 38 deletions

View File

@@ -25,6 +25,7 @@ import android.os.PersistableBundle;
import android.os.SELinux;
import android.os.SystemClock;
import android.os.SystemProperties;
import android.os.UserHandle;
import android.os.UserManager;
import android.provider.SearchIndexableResource;
import android.provider.Settings;
@@ -41,11 +42,14 @@ import com.android.settings.search.BaseSearchIndexProvider;
import com.android.settings.search.Index;
import com.android.settings.search.Indexable;
import com.android.settingslib.DeviceInfoUtils;
import com.android.settingslib.RestrictedLockUtils;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import static com.android.settingslib.RestrictedLockUtils.EnforcedAdmin;
public class DeviceInfoSettings extends SettingsPreferenceFragment implements Indexable {
private static final String LOG_TAG = "DeviceInfoSettings";
@@ -76,6 +80,9 @@ public class DeviceInfoSettings extends SettingsPreferenceFragment implements In
private UserManager mUm;
private EnforcedAdmin mFunDisallowedAdmin;
private EnforcedAdmin mDebuggingFeaturesDisallowedAdmin;
@Override
protected int getMetricsCategory() {
return MetricsLogger.DEVICEINFO;
@@ -183,6 +190,10 @@ public class DeviceInfoSettings extends SettingsPreferenceFragment implements In
Context.MODE_PRIVATE).getBoolean(DevelopmentSettings.PREF_SHOW,
android.os.Build.TYPE.equals("eng")) ? -1 : TAPS_TO_BE_A_DEVELOPER;
mDevHitToast = null;
mFunDisallowedAdmin = RestrictedLockUtils.checkIfRestrictionEnforced(
getActivity(), UserManager.DISALLOW_FUN, UserHandle.myUserId());
mDebuggingFeaturesDisallowedAdmin = RestrictedLockUtils.checkIfRestrictionEnforced(
getActivity(), UserManager.DISALLOW_DEBUGGING_FEATURES, UserHandle.myUserId());
}
@Override
@@ -191,7 +202,9 @@ public class DeviceInfoSettings extends SettingsPreferenceFragment implements In
System.arraycopy(mHits, 1, mHits, 0, mHits.length-1);
mHits[mHits.length-1] = SystemClock.uptimeMillis();
if (mHits[0] >= (SystemClock.uptimeMillis()-500)) {
if (mUm.hasUserRestriction(UserManager.DISALLOW_FUN)) {
if (mFunDisallowedAdmin != null) {
RestrictedLockUtils.sendShowAdminSupportDetailsIntent(getActivity(),
mFunDisallowedAdmin);
Log.d(LOG_TAG, "Sorry, no fun for you!");
return false;
}
@@ -215,7 +228,11 @@ public class DeviceInfoSettings extends SettingsPreferenceFragment implements In
return true;
}
if (mUm.hasUserRestriction(UserManager.DISALLOW_DEBUGGING_FEATURES)) return true;
if (mDebuggingFeaturesDisallowedAdmin != null) {
RestrictedLockUtils.sendShowAdminSupportDetailsIntent(getActivity(),
mDebuggingFeaturesDisallowedAdmin);
return true;
}
if (mDevHitCountdown > 0) {
mDevHitCountdown--;