From 9d25005e7ab39bcc14722f7bdb977ceccb6107dc Mon Sep 17 00:00:00 2001 From: Jim Miller Date: Thu, 21 Aug 2014 19:24:47 -0700 Subject: [PATCH] Show trust agent entries as disabled rather than removing them. Fixes bug 17108810 Change-Id: I646f5c299cd680d5c3a4978610f3852eba4b116b --- res/values/strings.xml | 3 +++ src/com/android/settings/SecuritySettings.java | 14 +++++++++++--- 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/res/values/strings.xml b/res/values/strings.xml index 6e962d151e5..27509a5b9a6 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -1103,6 +1103,9 @@ Trust agents + + To use, first set a screen lock + View or deactivate trust agents diff --git a/src/com/android/settings/SecuritySettings.java b/src/com/android/settings/SecuritySettings.java index d3a290b970e..7798937f629 100644 --- a/src/com/android/settings/SecuritySettings.java +++ b/src/com/android/settings/SecuritySettings.java @@ -225,7 +225,8 @@ public class SecuritySettings extends SettingsPreferenceFragment // Trust Agent preferences PreferenceGroup securityCategory = (PreferenceGroup) root.findPreference(KEY_SECURITY_CATEGORY); - if (securityCategory != null && mLockPatternUtils.isSecure()) { + if (securityCategory != null) { + final boolean hasSecurity = mLockPatternUtils.isSecure(); ArrayList agents = getActiveTrustAgents(getPackageManager(), mLockPatternUtils); for (int i = 0; i < agents.size(); i++) { @@ -242,6 +243,10 @@ public class SecuritySettings extends SettingsPreferenceFragment trustAgentPreference.setIntent(intent); // Add preference to the settings menu. securityCategory.addPreference(trustAgentPreference); + if (!hasSecurity) { + trustAgentPreference.setEnabled(false); + trustAgentPreference.setSummary(R.string.disabled_because_no_backup_security); + } } } @@ -340,9 +345,12 @@ public class SecuritySettings extends SettingsPreferenceFragment // Advanced Security features PreferenceGroup advancedCategory = (PreferenceGroup)root.findPreference(KEY_ADVANCED_SECURITY); - if (advancedCategory != null && !mLockPatternUtils.isSecure()) { + if (advancedCategory != null) { Preference manageAgents = advancedCategory.findPreference(KEY_MANAGE_TRUST_AGENTS); - if (manageAgents != null) advancedCategory.removePreference(manageAgents); + if (manageAgents != null && !mLockPatternUtils.isSecure()) { + manageAgents.setEnabled(false); + manageAgents.setSummary(R.string.disabled_because_no_backup_security); + } } // The above preferences come and go based on security state, so we need to update