From 999014702c1ba85db5bff8961620052850e97d1f Mon Sep 17 00:00:00 2001 From: Andrei Stingaceanu Date: Thu, 12 Nov 2015 12:30:39 +0000 Subject: [PATCH] Wire in device owner information into SecuritySettings If the device owner information has been provisioned by device policy client via the DevicePolicyManager then make the current user info preference read only and add a summary to specify that the preference has been disabled by the administrator. Bug: 22547309 Change-Id: I14952abd2e022607b82ce4361cfa514549243045 --- res/values/strings.xml | 2 ++ .../android/settings/SecuritySettings.java | 28 ++++++++++++------- 2 files changed, 20 insertions(+), 10 deletions(-) diff --git a/res/values/strings.xml b/res/values/strings.xml index bba72c54a92..864a81f501a 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -690,6 +690,8 @@ Set My Location, screen unlock, credential storage lock Passwords + + Disabled by administrator diff --git a/src/com/android/settings/SecuritySettings.java b/src/com/android/settings/SecuritySettings.java index ee958394446..838fcf3bd3f 100644 --- a/src/com/android/settings/SecuritySettings.java +++ b/src/com/android/settings/SecuritySettings.java @@ -214,13 +214,17 @@ public class SecuritySettings extends SettingsPreferenceFragment mOwnerInfoPref = findPreference(KEY_OWNER_INFO_SETTINGS); if (mOwnerInfoPref != null) { - mOwnerInfoPref.setOnPreferenceClickListener(new OnPreferenceClickListener() { - @Override - public boolean onPreferenceClick(Preference preference) { - OwnerInfoSettings.show(SecuritySettings.this); - return true; - } - }); + mOwnerInfoPref.setEnabled(!mLockPatternUtils.isDeviceOwnerInfoEnabled()); + + if (mOwnerInfoPref.isEnabled()) { + mOwnerInfoPref.setOnPreferenceClickListener(new OnPreferenceClickListener() { + @Override + public boolean onPreferenceClick(Preference preference) { + OwnerInfoSettings.show(SecuritySettings.this); + return true; + } + }); + } } if (mIsAdmin) { @@ -630,9 +634,13 @@ public class SecuritySettings extends SettingsPreferenceFragment public void updateOwnerInfo() { if (mOwnerInfoPref != null) { - mOwnerInfoPref.setSummary(mLockPatternUtils.isOwnerInfoEnabled(MY_USER_ID) - ? mLockPatternUtils.getOwnerInfo(MY_USER_ID) - : getString(R.string.owner_info_settings_summary)); + if (mLockPatternUtils.isDeviceOwnerInfoEnabled()) { + mOwnerInfoPref.setSummary(R.string.disabled_by_administrator_summary); + } else { + mOwnerInfoPref.setSummary(mLockPatternUtils.isOwnerInfoEnabled(MY_USER_ID) + ? mLockPatternUtils.getOwnerInfo(MY_USER_ID) + : getString(R.string.owner_info_settings_summary)); + } } }