Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 73c52f29 authored by Adrian Roos's avatar Adrian Roos
Browse files

SecuritySubSettings: Show trust agent label on lock timeout setting

Fixes: 35475555
Test: Observe description of 'Automatically lock' and 'Power button instantly locks' options, should mention trust agent when one is enabled.
Change-Id: I7967e44d5155c6620dc44cc4d284a8470166d687
parent d030d7b5
Loading
Loading
Loading
Loading
+21 −9
Original line number Diff line number Diff line
@@ -525,6 +525,14 @@ public class SecuritySettings extends SettingsPreferenceFragment
        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
    public void onGearClick(GearPreference p) {
        if (KEY_UNLOCK_SET_OR_CHANGE.equals(p.getKey())) {
@@ -912,6 +920,7 @@ public class SecuritySettings extends SettingsPreferenceFragment
        private SwitchPreference mPowerButtonInstantlyLocks;
        private RestrictedPreference mOwnerInfoPref;

        private TrustAgentManager mTrustAgentManager;
        private LockPatternUtils mLockPatternUtils;
        private DevicePolicyManager mDPM;

@@ -923,6 +932,9 @@ public class SecuritySettings extends SettingsPreferenceFragment
        @Override
        public void onCreate(Bundle icicle) {
            super.onCreate(icicle);
            SecurityFeatureProvider securityFeatureProvider =
                    FeatureFactory.getFactory(getActivity()).getSecurityFeatureProvider();
            mTrustAgentManager = securityFeatureProvider.getTrustAgentManager();
            mLockPatternUtils = new LockPatternUtils(getContext());
            mDPM = getContext().getSystemService(DevicePolicyManager.class);
            createPreferenceHierarchy();
@@ -977,13 +989,12 @@ public class SecuritySettings extends SettingsPreferenceFragment
            // lock instantly on power key press
            mPowerButtonInstantlyLocks = (SwitchPreference) findPreference(
                    KEY_POWER_INSTANTLY_LOCKS);
            Preference trustAgentPreference = findPreference(KEY_TRUST_AGENT);
            if (mPowerButtonInstantlyLocks != null &&
                    trustAgentPreference != null &&
                    trustAgentPreference.getTitle().length() > 0) {
            CharSequence trustAgentLabel = getActiveTrustAgentLabel(getContext(),
                    mTrustAgentManager, mLockPatternUtils, mDPM);
            if (mPowerButtonInstantlyLocks != null && !TextUtils.isEmpty(trustAgentLabel)) {
                mPowerButtonInstantlyLocks.setSummary(getString(
                        R.string.lockpattern_settings_power_button_instantly_locks_summary,
                        trustAgentPreference.getTitle()));
                        trustAgentLabel));
            }

            mOwnerInfoPref = (RestrictedPreference) findPreference(KEY_OWNER_INFO_SETTINGS);
@@ -1052,14 +1063,15 @@ public class SecuritySettings extends SettingsPreferenceFragment
                    }
                }

                Preference preference = findPreference(KEY_TRUST_AGENT);
                if (preference != null && preference.getTitle().length() > 0) {
                CharSequence trustAgentLabel = getActiveTrustAgentLabel(getContext(),
                        mTrustAgentManager, mLockPatternUtils, mDPM);
                if (!TextUtils.isEmpty(trustAgentLabel)) {
                    if (Long.valueOf(values[best].toString()) == 0) {
                        summary = getString(R.string.lock_immediately_summary_with_exception,
                                preference.getTitle());
                                trustAgentLabel);
                    } else {
                        summary = getString(R.string.lock_after_timeout_summary_with_exception,
                                entries[best], preference.getTitle());
                                entries[best], trustAgentLabel);
                    }
                } else {
                    summary = getString(R.string.lock_after_timeout_summary, entries[best]);