Merge "Add padlock to usb modes when disabled by admin."
diff --git a/src/com/android/settings/ChooseLockGeneric.java b/src/com/android/settings/ChooseLockGeneric.java
index 3d35bc8..56c53d3 100644
--- a/src/com/android/settings/ChooseLockGeneric.java
+++ b/src/com/android/settings/ChooseLockGeneric.java
@@ -316,10 +316,11 @@
}
private String getKeyForCurrent() {
- if (mLockPatternUtils.isLockScreenDisabled(mUserId)) {
+ final int credentialOwner = mUserManager.getCredentialOwnerProfile(mUserId);
+ if (mLockPatternUtils.isLockScreenDisabled(credentialOwner)) {
return KEY_UNLOCK_SET_OFF;
}
- switch (mLockPatternUtils.getKeyguardStoredPasswordQuality(mUserId)) {
+ switch (mLockPatternUtils.getKeyguardStoredPasswordQuality(credentialOwner)) {
case DevicePolicyManager.PASSWORD_QUALITY_SOMETHING:
return KEY_UNLOCK_SET_PATTERN;
case DevicePolicyManager.PASSWORD_QUALITY_NUMERIC:
@@ -521,6 +522,7 @@
}
if (quality == DevicePolicyManager.PASSWORD_QUALITY_UNSPECIFIED) {
+ mLockPatternUtils.setSeparateProfileChallengeEnabled(mUserId, true);
mChooseLockSettingsHelper.utils().clearLock(mUserId);
mChooseLockSettingsHelper.utils().setLockScreenDisabled(disabled, mUserId);
mLockPatternUtils.setSeparateProfileChallengeEnabled(mUserId, false);
diff --git a/src/com/android/settings/DevelopmentSettings.java b/src/com/android/settings/DevelopmentSettings.java
index a1d9750..b0a685c 100644
--- a/src/com/android/settings/DevelopmentSettings.java
+++ b/src/com/android/settings/DevelopmentSettings.java
@@ -203,6 +203,7 @@
private static final int RESULT_MOCK_LOCATION_APP = 1001;
private static final String PERSISTENT_DATA_BLOCK_PROP = "ro.frp.pst";
+ private static final String FLASH_LOCKED_PROP = "ro.boot.flash.locked";
private static final int REQUEST_CODE_ENABLE_OEM_UNLOCK = 0;
@@ -703,6 +704,7 @@
updateForceResizableOptions();
updateEnableFreeformWindowsSupportOptions();
updateWebViewProviderOptions();
+ updateOemUnlockOptions();
if (mColorTemperaturePreference != null) {
updateColorTemperature();
}
@@ -967,6 +969,17 @@
return !SystemProperties.get(PERSISTENT_DATA_BLOCK_PROP).equals("");
}
+ private static boolean enableOemUnlockPreference() {
+ String flashLocked = SystemProperties.get(FLASH_LOCKED_PROP);
+ return !"0".equals(flashLocked);
+ }
+
+ private void updateOemUnlockOptions() {
+ if (mEnableOemUnlock != null) {
+ mEnableOemUnlock.setEnabled(enableOemUnlockPreference());
+ }
+ }
+
private void updateBugreportOptions() {
mBugreport.setEnabled(true);
mBugreportInPower.setEnabled(true);
diff --git a/src/com/android/settings/ProfileChallengePreferenceFragment.java b/src/com/android/settings/ProfileChallengePreferenceFragment.java
index 4e3fcfd..676f61f 100644
--- a/src/com/android/settings/ProfileChallengePreferenceFragment.java
+++ b/src/com/android/settings/ProfileChallengePreferenceFragment.java
@@ -128,12 +128,16 @@
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == UNIFY_LOCK_METHOD_REQUEST && resultCode == Activity.RESULT_OK) {
- mLockPatternUtils.clearLock(mProfileUserId);
- mLockPatternUtils.setSeparateProfileChallengeEnabled(mProfileUserId, false);
+ unifyLocks();
return;
}
}
+ private void unifyLocks() {
+ mLockPatternUtils.clearLock(mProfileUserId);
+ mLockPatternUtils.setSeparateProfileChallengeEnabled(mProfileUserId, false);
+ }
+
@Override
public void onResume() {
super.onResume();
@@ -260,6 +264,8 @@
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
final Bundle args = getArguments();
+ final ProfileChallengePreferenceFragment parentFragment =
+ ((ProfileChallengePreferenceFragment) getParentFragment());
return new AlertDialog.Builder(getActivity())
.setTitle(R.string.lock_settings_profile_unification_dialog_title)
.setMessage(R.string.lock_settings_profile_unification_dialog_body)
@@ -271,9 +277,13 @@
R.string.lock_settings_profile_screen_lock_title);
ChooseLockSettingsHelper helper =
new ChooseLockSettingsHelper(
- getActivity(), getParentFragment());
- helper.launchConfirmationActivity(UNIFY_LOCK_METHOD_REQUEST,
- title, true, args.getInt(ARG_USER_ID));
+ getActivity(), parentFragment);
+ if (!helper.launchConfirmationActivity(
+ UNIFY_LOCK_METHOD_REQUEST,
+ title, true, args.getInt(ARG_USER_ID))) {
+ parentFragment.unifyLocks();
+ parentFragment.createPreferenceHierarchy();
+ }
}
}
)
diff --git a/src/com/android/settings/datausage/DataUsageSummary.java b/src/com/android/settings/datausage/DataUsageSummary.java
index 65e0217..f9c9ba6 100644
--- a/src/com/android/settings/datausage/DataUsageSummary.java
+++ b/src/com/android/settings/datausage/DataUsageSummary.java
@@ -77,6 +77,9 @@
addPreferencesFromResource(R.xml.data_usage);
int defaultSubId = getDefaultSubscriptionId(getContext());
+ if (defaultSubId == SubscriptionManager.INVALID_SUBSCRIPTION_ID) {
+ hasMobileData = false;
+ }
mDefaultTemplate = getDefaultTemplate(getContext(), defaultSubId);
if (hasMobileData) {
mLimitPreference = findPreference(KEY_LIMIT_SUMMARY);
@@ -279,7 +282,7 @@
}
public static NetworkTemplate getDefaultTemplate(Context context, int defaultSubId) {
- if (hasMobileData(context)) {
+ if (hasMobileData(context) && defaultSubId != SubscriptionManager.INVALID_SUBSCRIPTION_ID) {
TelephonyManager telephonyManager = TelephonyManager.from(context);
NetworkTemplate mobileAll = NetworkTemplate.buildTemplateMobileAll(
telephonyManager.getSubscriberId(defaultSubId));