summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorIdo Ofir <iofir@google.com>2014-06-24 16:26:09 -0700
committerIdo Ofir <iofir@google.com>2014-07-02 17:35:42 -0700
commit1682a0d1be53562a8ca2d0eb8fcd41b07af2f144 (patch)
treeb8bea329d30dbab6384ef26a3e33cb26c4f9f4e7
parentc46b426eb0795d510c9f7d402e689ccbe82180f9 (diff)
downloadpackages_apps_Settings-1682a0d1be53562a8ca2d0eb8fcd41b07af2f144.zip
packages_apps_Settings-1682a0d1be53562a8ca2d0eb8fcd41b07af2f144.tar.gz
packages_apps_Settings-1682a0d1be53562a8ca2d0eb8fcd41b07af2f144.tar.bz2
changing language for security screen regarding trust agents
and fixing a bug with multiple trust agents. Change-Id: I14ee45110a20124d8f9ed2dc80214aff4dc521d3
-rw-r--r--res/values/strings.xml4
-rw-r--r--src/com/android/settings/SecuritySettings.java102
2 files changed, 64 insertions, 42 deletions
diff --git a/res/values/strings.xml b/res/values/strings.xml
index dabb721..1110553 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -696,6 +696,8 @@
<string name="lock_after_timeout">Automatically lock</string>
<!-- Security settings screen, setting option summary to change screen timeout -->
<string name="lock_after_timeout_summary"><xliff:g id="timeout_string">%1$s</xliff:g> after sleep</string>
+ <!-- Security settings screen, setting option summary to change screen timeout, with additional explanation-->
+ <string name="lock_after_timeout_summary_with_exception"><xliff:g id="timeout_string">%1$s</xliff:g> after sleep, except when kept unlocked by <xliff:g id="trust_agent_name">%2$s</xliff:g></string>
<!-- Text shown next to checkbox for showing owner info on LockScreen [CHAR LIMIT=50]-->
<string name="show_owner_info_on_lockscreen_label">Show owner info on lock screen</string>
<!-- Text shown for title of owner info setting [CHAR LIMIT=20]-->
@@ -2578,6 +2580,8 @@
<string name="lockpattern_settings_enable_tactile_feedback_title">Vibrate on touch</string>
<!-- Security & location settings screen, setting check box title. This controls whether the device locks immediately when the power button is pressed. [CHAR LIMIT=28]-->
<string name="lockpattern_settings_enable_power_button_instantly_locks">Power button instantly locks</string>
+ <!-- Security & location settings screen, setting optional summary when a trust agent is enabled-->
+ <string name="lockpattern_settings_power_button_instantly_locks_summary">Except when kept unlocked by <xliff:g id="trust_agent_name">%1$s</xliff:g></string>
<!-- Security & location settings screen, setting option name when user has never set an unlock pattern -->
<string name="lockpattern_settings_choose_lock_pattern">Set unlock pattern</string>
<!-- Security & location settings screen, setting option name when user has previously set an unlock pattern and wants to change to a new pattern -->
diff --git a/src/com/android/settings/SecuritySettings.java b/src/com/android/settings/SecuritySettings.java
index 7013154..0af022a 100644
--- a/src/com/android/settings/SecuritySettings.java
+++ b/src/com/android/settings/SecuritySettings.java
@@ -115,6 +115,8 @@ public class SecuritySettings extends SettingsPreferenceFragment
private boolean mIsPrimary;
+ private Preference mClickedTrustAgentPreference;
+
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
@@ -207,6 +209,41 @@ public class SecuritySettings extends SettingsPreferenceFragment
}
}
+ // Trust Agent preferences
+ PreferenceGroup securityCategory = (PreferenceGroup)
+ root.findPreference(KEY_SECURITY_CATEGORY);
+ if (securityCategory != null) {
+ PackageManager pm = getPackageManager();
+ List<ResolveInfo> resolveInfos = pm.queryIntentServices(TRUST_AGENT_INTENT,
+ PackageManager.GET_META_DATA);
+ List<ComponentName> enabledTrustAgents = mLockPatternUtils.getEnabledTrustAgents();
+ if (enabledTrustAgents != null && !enabledTrustAgents.isEmpty()) {
+ for (ResolveInfo resolveInfo : resolveInfos) {
+ if (resolveInfo.serviceInfo == null) continue;
+ if (!TrustAgentUtils.checkProvidePermission(resolveInfo, pm)) continue;
+ TrustAgentUtils.TrustAgentComponentInfo trustAgentComponentInfo =
+ TrustAgentUtils.getSettingsComponent(pm, resolveInfo);
+ if (trustAgentComponentInfo.componentName == null ||
+ !enabledTrustAgents.contains(
+ TrustAgentUtils.getComponentName(resolveInfo)) ||
+ TextUtils.isEmpty(trustAgentComponentInfo.title)) continue;
+ Preference trustAgentPreference =
+ new Preference(securityCategory.getContext());
+ trustAgentPreference.setKey(KEY_TRUST_AGENT);
+ trustAgentPreference.setTitle(trustAgentComponentInfo.title);
+ trustAgentPreference.setSummary(trustAgentComponentInfo.summary);
+ // Create intent for this preference.
+ Intent intent = new Intent();
+ intent.setComponent(trustAgentComponentInfo.componentName);
+ intent.setAction(Intent.ACTION_MAIN);
+ trustAgentPreference.setIntent(intent);
+ // Add preference to the settings menu.
+ securityCategory.addPreference(trustAgentPreference);
+ break; // Only render the first one.
+ }
+ }
+ }
+
// lock after preference
mLockAfter = (ListPreference) root.findPreference(KEY_LOCK_AFTER_TIMEOUT);
if (mLockAfter != null) {
@@ -224,13 +261,19 @@ public class SecuritySettings extends SettingsPreferenceFragment
// lock instantly on power key press
mPowerButtonInstantlyLocks = (CheckBoxPreference) root.findPreference(
KEY_POWER_INSTANTLY_LOCKS);
+ Preference trustAgentPreference = root.findPreference(KEY_TRUST_AGENT);
+ if (mPowerButtonInstantlyLocks != null &&
+ trustAgentPreference != null &&
+ trustAgentPreference.getTitle().length() > 0) {
+ mPowerButtonInstantlyLocks.setSummary(getString(
+ R.string.lockpattern_settings_power_button_instantly_locks_summary,
+ trustAgentPreference.getTitle()));
+ }
// don't display visible pattern if biometric and backup is not pattern
if (resid == R.xml.security_settings_biometric_weak &&
mLockPatternUtils.getKeyguardStoredPasswordQuality() !=
DevicePolicyManager.PASSWORD_QUALITY_SOMETHING) {
- PreferenceGroup securityCategory = (PreferenceGroup)
- root.findPreference(KEY_SECURITY_CATEGORY);
if (securityCategory != null && mVisiblePattern != null) {
securityCategory.removePreference(root.findPreference(KEY_VISIBLE_PATTERN));
}
@@ -308,41 +351,6 @@ public class SecuritySettings extends SettingsPreferenceFragment
mToggleVerifyApps.setEnabled(false);
}
- // Trust Agent preferences
- PreferenceGroup securityCategory = (PreferenceGroup)
- root.findPreference(KEY_SECURITY_CATEGORY);
- if (securityCategory != null) {
- PackageManager pm = getPackageManager();
- List<ResolveInfo> resolveInfos = pm.queryIntentServices(TRUST_AGENT_INTENT,
- PackageManager.GET_META_DATA);
- List<ComponentName> enabledTrustAgents = mLockPatternUtils.getEnabledTrustAgents();
- if (enabledTrustAgents != null && !enabledTrustAgents.isEmpty()) {
- for (ResolveInfo resolveInfo : resolveInfos) {
- if (resolveInfo.serviceInfo == null) continue;
- if (!TrustAgentUtils.checkProvidePermission(resolveInfo, pm)) continue;
- TrustAgentUtils.TrustAgentComponentInfo trustAgentComponentInfo =
- TrustAgentUtils.getSettingsComponent(pm, resolveInfo);
- if (trustAgentComponentInfo.componentName == null ||
- !enabledTrustAgents.contains(
- TrustAgentUtils.getComponentName(resolveInfo)) ||
- TextUtils.isEmpty(trustAgentComponentInfo.title)) continue;
- Preference trustAgentPreference =
- new Preference(securityCategory.getContext());
- trustAgentPreference.setKey(KEY_TRUST_AGENT);
- trustAgentPreference.setTitle(trustAgentComponentInfo.title);
- trustAgentPreference.setSummary(trustAgentComponentInfo.summary);
- // Create intent for this preference.
- Intent intent = new Intent();
- intent.setComponent(trustAgentComponentInfo.componentName);
- intent.setAction(Intent.ACTION_MAIN);
- trustAgentPreference.setIntent(intent);
- // Add preference to the settings menu.
- securityCategory.addPreference(trustAgentPreference);
- break; // Only render the first one.
- }
- }
- }
-
return root;
}
@@ -439,7 +447,14 @@ public class SecuritySettings extends SettingsPreferenceFragment
best = i;
}
}
- mLockAfter.setSummary(getString(R.string.lock_after_timeout_summary, entries[best]));
+
+ Preference preference = getPreferenceScreen().findPreference(KEY_TRUST_AGENT);
+ if (preference != null && preference.getTitle().length() > 0) {
+ mLockAfter.setSummary(getString(R.string.lock_after_timeout_summary_with_exception,
+ entries[best], preference.getTitle()));
+ } else {
+ mLockAfter.setSummary(getString(R.string.lock_after_timeout_summary, entries[best]));
+ }
}
private void disableUnusableTimeouts(long maxTimeout) {
@@ -562,9 +577,12 @@ public class SecuritySettings extends SettingsPreferenceFragment
} else if (KEY_TRUST_AGENT.equals(key)) {
ChooseLockSettingsHelper helper =
new ChooseLockSettingsHelper(this.getActivity(), this);
- if (!helper.launchConfirmationActivity(CHANGE_TRUST_AGENT_SETTINGS, null, null)) {
+ mClickedTrustAgentPreference = preference;
+ if (!helper.launchConfirmationActivity(CHANGE_TRUST_AGENT_SETTINGS, null, null) &&
+ preference.getIntent() != null) {
// If this returns false, it means no password confirmation is required.
startActivity(preference.getIntent());
+ mClickedTrustAgentPreference = null;
}
} else {
// If we didn't handle it, let preferences handle it.
@@ -597,12 +615,12 @@ public class SecuritySettings extends SettingsPreferenceFragment
// because mBiometricWeakLiveliness could be null
return;
} else if (requestCode == CHANGE_TRUST_AGENT_SETTINGS && resultCode == Activity.RESULT_OK) {
- Preference preference = getPreferenceScreen().findPreference(KEY_TRUST_AGENT);
- if (preference != null) {
- Intent intent = preference.getIntent();
+ if (mClickedTrustAgentPreference != null) {
+ Intent intent = mClickedTrustAgentPreference.getIntent();
if (intent != null) {
startActivity(intent);
}
+ mClickedTrustAgentPreference = null;
}
}
createPreferenceHierarchy();