Merge "SecuritySubSettings: Show trust agent label on lock timeout setting"

This commit is contained in:
TreeHugger Robot
2017-03-08 19:54:10 +00:00
committed by Android (Google) Code Review

View File

@@ -521,6 +521,14 @@ public class SecuritySettings extends SettingsPreferenceFragment
return result; return result;
} }
private static CharSequence getActiveTrustAgentLabel(Context context,
TrustAgentManager trustAgentManager, LockPatternUtils utils,
DevicePolicyManager dpm) {
ArrayList<TrustAgentComponentInfo> agents = getActiveTrustAgents(context,
trustAgentManager, utils, dpm);
return agents.isEmpty() ? null : agents.get(0).title;
}
@Override @Override
public void onGearClick(GearPreference p) { public void onGearClick(GearPreference p) {
if (KEY_UNLOCK_SET_OR_CHANGE.equals(p.getKey())) { if (KEY_UNLOCK_SET_OR_CHANGE.equals(p.getKey())) {
@@ -908,6 +916,7 @@ public class SecuritySettings extends SettingsPreferenceFragment
private SwitchPreference mPowerButtonInstantlyLocks; private SwitchPreference mPowerButtonInstantlyLocks;
private RestrictedPreference mOwnerInfoPref; private RestrictedPreference mOwnerInfoPref;
private TrustAgentManager mTrustAgentManager;
private LockPatternUtils mLockPatternUtils; private LockPatternUtils mLockPatternUtils;
private DevicePolicyManager mDPM; private DevicePolicyManager mDPM;
@@ -919,6 +928,9 @@ public class SecuritySettings extends SettingsPreferenceFragment
@Override @Override
public void onCreate(Bundle icicle) { public void onCreate(Bundle icicle) {
super.onCreate(icicle); super.onCreate(icicle);
SecurityFeatureProvider securityFeatureProvider =
FeatureFactory.getFactory(getActivity()).getSecurityFeatureProvider();
mTrustAgentManager = securityFeatureProvider.getTrustAgentManager();
mLockPatternUtils = new LockPatternUtils(getContext()); mLockPatternUtils = new LockPatternUtils(getContext());
mDPM = getContext().getSystemService(DevicePolicyManager.class); mDPM = getContext().getSystemService(DevicePolicyManager.class);
createPreferenceHierarchy(); createPreferenceHierarchy();
@@ -973,13 +985,12 @@ public class SecuritySettings extends SettingsPreferenceFragment
// lock instantly on power key press // lock instantly on power key press
mPowerButtonInstantlyLocks = (SwitchPreference) findPreference( mPowerButtonInstantlyLocks = (SwitchPreference) findPreference(
KEY_POWER_INSTANTLY_LOCKS); KEY_POWER_INSTANTLY_LOCKS);
Preference trustAgentPreference = findPreference(KEY_TRUST_AGENT); CharSequence trustAgentLabel = getActiveTrustAgentLabel(getContext(),
if (mPowerButtonInstantlyLocks != null && mTrustAgentManager, mLockPatternUtils, mDPM);
trustAgentPreference != null && if (mPowerButtonInstantlyLocks != null && !TextUtils.isEmpty(trustAgentLabel)) {
trustAgentPreference.getTitle().length() > 0) {
mPowerButtonInstantlyLocks.setSummary(getString( mPowerButtonInstantlyLocks.setSummary(getString(
R.string.lockpattern_settings_power_button_instantly_locks_summary, R.string.lockpattern_settings_power_button_instantly_locks_summary,
trustAgentPreference.getTitle())); trustAgentLabel));
} }
mOwnerInfoPref = (RestrictedPreference) findPreference(KEY_OWNER_INFO_SETTINGS); mOwnerInfoPref = (RestrictedPreference) findPreference(KEY_OWNER_INFO_SETTINGS);
@@ -1048,14 +1059,15 @@ public class SecuritySettings extends SettingsPreferenceFragment
} }
} }
Preference preference = findPreference(KEY_TRUST_AGENT); CharSequence trustAgentLabel = getActiveTrustAgentLabel(getContext(),
if (preference != null && preference.getTitle().length() > 0) { mTrustAgentManager, mLockPatternUtils, mDPM);
if (!TextUtils.isEmpty(trustAgentLabel)) {
if (Long.valueOf(values[best].toString()) == 0) { if (Long.valueOf(values[best].toString()) == 0) {
summary = getString(R.string.lock_immediately_summary_with_exception, summary = getString(R.string.lock_immediately_summary_with_exception,
preference.getTitle()); trustAgentLabel);
} else { } else {
summary = getString(R.string.lock_after_timeout_summary_with_exception, summary = getString(R.string.lock_after_timeout_summary_with_exception,
entries[best], preference.getTitle()); entries[best], trustAgentLabel);
} }
} else { } else {
summary = getString(R.string.lock_after_timeout_summary, entries[best]); summary = getString(R.string.lock_after_timeout_summary, entries[best]);