Settings user restriction changes: debugging features.
Replacing restriction pin with a user restriction for developer options. Bug: 14081992 Change-Id: I9a71c256fbd20428b4bd2ae12939c9a50d7b5f11
This commit is contained in:
@@ -46,6 +46,7 @@ import android.os.ServiceManager;
|
|||||||
import android.os.StrictMode;
|
import android.os.StrictMode;
|
||||||
import android.os.SystemProperties;
|
import android.os.SystemProperties;
|
||||||
import android.os.UserHandle;
|
import android.os.UserHandle;
|
||||||
|
import android.os.UserManager;
|
||||||
import android.preference.CheckBoxPreference;
|
import android.preference.CheckBoxPreference;
|
||||||
import android.preference.ListPreference;
|
import android.preference.ListPreference;
|
||||||
import android.preference.Preference;
|
import android.preference.Preference;
|
||||||
@@ -75,7 +76,7 @@ import java.util.List;
|
|||||||
/*
|
/*
|
||||||
* Displays preferences for application developers.
|
* Displays preferences for application developers.
|
||||||
*/
|
*/
|
||||||
public class DevelopmentSettings extends RestrictedSettingsFragment
|
public class DevelopmentSettings extends SettingsPreferenceFragment
|
||||||
implements DialogInterface.OnClickListener, DialogInterface.OnDismissListener,
|
implements DialogInterface.OnClickListener, DialogInterface.OnDismissListener,
|
||||||
OnPreferenceChangeListener, CompoundButton.OnCheckedChangeListener {
|
OnPreferenceChangeListener, CompoundButton.OnCheckedChangeListener {
|
||||||
private static final String TAG = "DevelopmentSettings";
|
private static final String TAG = "DevelopmentSettings";
|
||||||
@@ -160,6 +161,7 @@ public class DevelopmentSettings extends RestrictedSettingsFragment
|
|||||||
private IWindowManager mWindowManager;
|
private IWindowManager mWindowManager;
|
||||||
private IBackupManager mBackupManager;
|
private IBackupManager mBackupManager;
|
||||||
private DevicePolicyManager mDpm;
|
private DevicePolicyManager mDpm;
|
||||||
|
private UserManager mUm;
|
||||||
|
|
||||||
private Switch mEnabledSwitch;
|
private Switch mEnabledSwitch;
|
||||||
private boolean mLastEnabledState;
|
private boolean mLastEnabledState;
|
||||||
@@ -230,10 +232,6 @@ public class DevelopmentSettings extends RestrictedSettingsFragment
|
|||||||
|
|
||||||
private boolean mUnavailable;
|
private boolean mUnavailable;
|
||||||
|
|
||||||
public DevelopmentSettings() {
|
|
||||||
super(RESTRICTIONS_PIN_SET);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onCreate(Bundle icicle) {
|
public void onCreate(Bundle icicle) {
|
||||||
super.onCreate(icicle);
|
super.onCreate(icicle);
|
||||||
@@ -242,8 +240,10 @@ public class DevelopmentSettings extends RestrictedSettingsFragment
|
|||||||
mBackupManager = IBackupManager.Stub.asInterface(
|
mBackupManager = IBackupManager.Stub.asInterface(
|
||||||
ServiceManager.getService(Context.BACKUP_SERVICE));
|
ServiceManager.getService(Context.BACKUP_SERVICE));
|
||||||
mDpm = (DevicePolicyManager)getActivity().getSystemService(Context.DEVICE_POLICY_SERVICE);
|
mDpm = (DevicePolicyManager)getActivity().getSystemService(Context.DEVICE_POLICY_SERVICE);
|
||||||
|
mUm = (UserManager) getSystemService(Context.USER_SERVICE);
|
||||||
|
|
||||||
if (android.os.Process.myUserHandle().getIdentifier() != UserHandle.USER_OWNER) {
|
if (android.os.Process.myUserHandle().getIdentifier() != UserHandle.USER_OWNER
|
||||||
|
|| mUm.hasUserRestriction(UserManager.DISALLOW_DEBUGGING_FEATURES)) {
|
||||||
mUnavailable = true;
|
mUnavailable = true;
|
||||||
setPreferenceScreen(new PreferenceScreen(getActivity(), null));
|
setPreferenceScreen(new PreferenceScreen(getActivity(), null));
|
||||||
return;
|
return;
|
||||||
|
@@ -31,6 +31,7 @@ import android.os.SELinux;
|
|||||||
import android.os.SystemClock;
|
import android.os.SystemClock;
|
||||||
import android.os.SystemProperties;
|
import android.os.SystemProperties;
|
||||||
import android.os.UserHandle;
|
import android.os.UserHandle;
|
||||||
|
import android.os.UserManager;
|
||||||
import android.preference.Preference;
|
import android.preference.Preference;
|
||||||
import android.preference.PreferenceGroup;
|
import android.preference.PreferenceGroup;
|
||||||
import android.preference.PreferenceScreen;
|
import android.preference.PreferenceScreen;
|
||||||
@@ -46,7 +47,7 @@ import java.util.List;
|
|||||||
import java.util.regex.Matcher;
|
import java.util.regex.Matcher;
|
||||||
import java.util.regex.Pattern;
|
import java.util.regex.Pattern;
|
||||||
|
|
||||||
public class DeviceInfoSettings extends RestrictedSettingsFragment {
|
public class DeviceInfoSettings extends SettingsPreferenceFragment {
|
||||||
|
|
||||||
private static final String LOG_TAG = "DeviceInfoSettings";
|
private static final String LOG_TAG = "DeviceInfoSettings";
|
||||||
private static final String FILENAME_PROC_VERSION = "/proc/version";
|
private static final String FILENAME_PROC_VERSION = "/proc/version";
|
||||||
@@ -79,20 +80,12 @@ public class DeviceInfoSettings extends RestrictedSettingsFragment {
|
|||||||
int mDevHitCountdown;
|
int mDevHitCountdown;
|
||||||
Toast mDevHitToast;
|
Toast mDevHitToast;
|
||||||
|
|
||||||
public DeviceInfoSettings() {
|
|
||||||
super(null /* Don't PIN protect the entire screen */);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onCreate(Bundle icicle) {
|
public void onCreate(Bundle icicle) {
|
||||||
super.onCreate(icicle);
|
super.onCreate(icicle);
|
||||||
|
|
||||||
addPreferencesFromResource(R.xml.device_info_settings);
|
addPreferencesFromResource(R.xml.device_info_settings);
|
||||||
|
|
||||||
// We only call ensurePinRestrictedPreference() when mDevHitCountdown == 0.
|
|
||||||
// This will keep us from entering developer mode without a PIN.
|
|
||||||
protectByRestrictions(KEY_BUILD_NUMBER);
|
|
||||||
|
|
||||||
setStringSummary(KEY_FIRMWARE_VERSION, Build.VERSION.RELEASE);
|
setStringSummary(KEY_FIRMWARE_VERSION, Build.VERSION.RELEASE);
|
||||||
findPreference(KEY_FIRMWARE_VERSION).setEnabled(true);
|
findPreference(KEY_FIRMWARE_VERSION).setEnabled(true);
|
||||||
setValueSummary(KEY_BASEBAND_VERSION, "gsm.version.baseband");
|
setValueSummary(KEY_BASEBAND_VERSION, "gsm.version.baseband");
|
||||||
@@ -204,12 +197,10 @@ public class DeviceInfoSettings extends RestrictedSettingsFragment {
|
|||||||
// Don't enable developer options for secondary users.
|
// Don't enable developer options for secondary users.
|
||||||
if (UserHandle.myUserId() != UserHandle.USER_OWNER) return true;
|
if (UserHandle.myUserId() != UserHandle.USER_OWNER) return true;
|
||||||
|
|
||||||
|
final UserManager um = (UserManager) getSystemService(Context.USER_SERVICE);
|
||||||
|
if (um.hasUserRestriction(UserManager.DISALLOW_DEBUGGING_FEATURES)) return true;
|
||||||
|
|
||||||
if (mDevHitCountdown > 0) {
|
if (mDevHitCountdown > 0) {
|
||||||
if (mDevHitCountdown == 1) {
|
|
||||||
if (super.ensurePinRestrictedPreference(preference)) {
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
mDevHitCountdown--;
|
mDevHitCountdown--;
|
||||||
if (mDevHitCountdown == 0) {
|
if (mDevHitCountdown == 0) {
|
||||||
getActivity().getSharedPreferences(DevelopmentSettings.PREF_FILE,
|
getActivity().getSharedPreferences(DevelopmentSettings.PREF_FILE,
|
||||||
|
@@ -1067,7 +1067,8 @@ public class SettingsActivity extends Activity
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else if (id == R.id.development_settings) {
|
} else if (id == R.id.development_settings) {
|
||||||
if (!showDev) {
|
if (!showDev || um.hasUserRestriction(
|
||||||
|
UserManager.DISALLOW_DEBUGGING_FEATURES)) {
|
||||||
category.removeTile(n);
|
category.removeTile(n);
|
||||||
}
|
}
|
||||||
} else if (id == R.id.account_add) {
|
} else if (id == R.id.account_add) {
|
||||||
|
Reference in New Issue
Block a user