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

Commit 4e33cc12 authored by Doris Ling's avatar Doris Ling Committed by android-build-merger
Browse files

Merge "Update summary text for Trust agent." into oc-dev

am: b9a54bae

Change-Id: I16a2423d405c34afe1cd589f9007a4b4dafb6925
parents 3da90f7f b9a54bae
Loading
Loading
Loading
Loading
+0 −1
Original line number Diff line number Diff line
@@ -64,7 +64,6 @@

    <Preference android:key="manage_trust_agents"
        android:title="@string/manage_trust_agents"
        android:summary="@string/manage_trust_agents_summary"
        android:persistent="false"
        android:fragment="com.android.settings.TrustAgentSettings"/>

+25 −10
Original line number Diff line number Diff line
@@ -40,7 +40,6 @@ import android.support.annotation.VisibleForTesting;
import android.support.v14.preference.SwitchPreference;
import android.support.v7.preference.Preference;
import android.support.v7.preference.Preference.OnPreferenceChangeListener;
import android.support.v7.preference.Preference.OnPreferenceClickListener;
import android.support.v7.preference.PreferenceGroup;
import android.support.v7.preference.PreferenceScreen;
import android.telephony.CarrierConfigManager;
@@ -65,7 +64,6 @@ import com.android.settings.overlay.FeatureFactory;
import com.android.settings.search.BaseSearchIndexProvider;
import com.android.settings.search.Indexable;
import com.android.settings.search.SearchIndexableRaw;
import com.android.settings.search2.SearchFeatureProvider;
import com.android.settings.security.OwnerInfoPreferenceController;
import com.android.settings.security.SecurityFeatureProvider;
import com.android.settings.trustagent.TrustAgentManager;
@@ -102,7 +100,8 @@ public class SecuritySettings extends SettingsPreferenceFragment
    private static final String KEY_UNLOCK_SET_OR_CHANGE_PROFILE = "unlock_set_or_change_profile";
    private static final String KEY_VISIBLE_PATTERN_PROFILE = "visiblepattern_profile";
    private static final String KEY_SECURITY_CATEGORY = "security_category";
    private static final String KEY_MANAGE_TRUST_AGENTS = "manage_trust_agents";
    @VisibleForTesting
    static final String KEY_MANAGE_TRUST_AGENTS = "manage_trust_agents";
    private static final String KEY_UNIFICATION = "unification";

    private static final int SET_OR_CHANGE_LOCK_METHOD_REQUEST = 123;
@@ -312,11 +311,12 @@ public class SecuritySettings extends SettingsPreferenceFragment
        mIsAdmin = mUm.isAdminUser();

        // Fingerprint and trust agents
        int numberOfTrustAgent = 0;
        PreferenceGroup securityCategory = (PreferenceGroup)
                root.findPreference(KEY_SECURITY_CATEGORY);
        if (securityCategory != null) {
            maybeAddFingerprintPreference(securityCategory, UserHandle.myUserId());
            addTrustAgentSettings(securityCategory);
            numberOfTrustAgent = addTrustAgentSettings(securityCategory);
        }

        mVisiblePatternProfile =
@@ -351,11 +351,7 @@ public class SecuritySettings extends SettingsPreferenceFragment
        final UserManager um = (UserManager) getActivity().getSystemService(Context.USER_SERVICE);

        // Advanced Security features
        Preference manageAgents = root.findPreference(KEY_MANAGE_TRUST_AGENTS);
        if (manageAgents != null && !mLockPatternUtils.isSecure(MY_USER_ID)) {
            manageAgents.setEnabled(false);
            manageAgents.setSummary(R.string.disabled_because_no_backup_security);
        }
        initTrustAgentPreference(root, numberOfTrustAgent);

        // The above preferences come and go based on security state, so we need to update
        // the index. This call is expected to be fairly cheap, but we may want to do something
@@ -410,6 +406,23 @@ public class SecuritySettings extends SettingsPreferenceFragment
        return root;
    }

    @VisibleForTesting
    void initTrustAgentPreference(PreferenceScreen root, int numberOfTrustAgent) {
        Preference manageAgents = root.findPreference(KEY_MANAGE_TRUST_AGENTS);
        if (manageAgents != null) {
            if (!mLockPatternUtils.isSecure(MY_USER_ID)) {
                manageAgents.setEnabled(false);
                manageAgents.setSummary(R.string.disabled_because_no_backup_security);
            } else if (numberOfTrustAgent > 0) {
                manageAgents.setSummary(getActivity().getResources().getQuantityString(
                    R.plurals.manage_trust_agents_summary_on,
                    numberOfTrustAgent, numberOfTrustAgent));
            } else {
                manageAgents.setSummary(R.string.manage_trust_agents_summary);
            }
        }
    }

    /*
     * Sets the preference as disabled by admin if PASSWORD_QUALITY_MANAGED is set.
     * The preference must be a RestrictedPreference.
@@ -434,7 +447,8 @@ public class SecuritySettings extends SettingsPreferenceFragment
        }
    }

    private void addTrustAgentSettings(PreferenceGroup securityCategory) {
    // Return the number of trust agents being added
    private int addTrustAgentSettings(PreferenceGroup securityCategory) {
        final boolean hasSecurity = mLockPatternUtils.isSecure(MY_USER_ID);
        ArrayList<TrustAgentComponentInfo> agents = getActiveTrustAgents(
            getActivity(), mTrustAgentManager, mLockPatternUtils, mDPM);
@@ -459,6 +473,7 @@ public class SecuritySettings extends SettingsPreferenceFragment
                trustAgentPreference.setSummary(R.string.disabled_because_no_backup_security);
            }
        }
        return agents.size();
    }

    /* Return true if a there is a Slot that has Icc.
+32 −1
Original line number Diff line number Diff line
@@ -16,13 +16,17 @@

package com.android.settings;

import android.app.Activity;
import android.content.Context;
import android.content.IContentProvider;
import android.content.pm.PackageManager;
import android.hardware.fingerprint.FingerprintManager;
import android.os.Bundle;
import android.provider.Settings;
import android.support.v7.preference.Preference;
import android.support.v7.preference.PreferenceScreen;

import com.android.internal.widget.LockPatternUtils;
import com.android.settings.dashboard.SummaryLoader;
import com.android.settings.testutils.FakeFeatureFactory;
import com.android.settings.testutils.shadow.ShadowSecureSettings;
@@ -39,13 +43,17 @@ import org.mockito.MockitoAnnotations;
import org.robolectric.annotation.Config;
import org.robolectric.annotation.Implementation;
import org.robolectric.annotation.Implements;
import org.robolectric.shadows.ShadowApplication;
import org.robolectric.util.ReflectionHelpers;

import java.util.Map;

import static com.google.common.truth.Truth.assertThat;
import static org.mockito.Matchers.any;
import static org.mockito.Matchers.anyInt;
import static org.mockito.Matchers.isNull;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.spy;
import static org.mockito.Mockito.times;
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.verifyNoMoreInteractions;
@@ -121,7 +129,6 @@ public class SecuritySettingsTest {
        verify(mContext).getString(R.string.security_dashboard_summary);
    }


    @Test
    public void testGetPackageVerifierSummary_nullInput() {
        assertThat(mSummaryProvider.getPackageVerifierSummary(null)).isNull();
@@ -155,4 +162,28 @@ public class SecuritySettingsTest {
        assertThat(mSummaryProvider.getPackageVerifierSummary(mDashboardCategory))
                .isEqualTo(MOCK_SUMMARY);
    }

    @Test
    public void testInitTrustAgentPreference_secure_shouldSetSummaryToNumberOfTrustAgent() {
        final Preference preference = mock(Preference.class);
        final PreferenceScreen screen = mock(PreferenceScreen.class);
        when(screen.findPreference(SecuritySettings.KEY_MANAGE_TRUST_AGENTS))
                .thenReturn(preference);
        final LockPatternUtils utils = mock(LockPatternUtils.class);
        when(utils.isSecure(anyInt())).thenReturn(true);
        final Context context = ShadowApplication.getInstance().getApplicationContext();
        final Activity activity = mock(Activity.class);
        when(activity.getResources()).thenReturn(context.getResources());
        final SecuritySettings securitySettings = spy(new SecuritySettings());
        when(securitySettings.getActivity()).thenReturn(activity);

        ReflectionHelpers.setField(securitySettings, "mLockPatternUtils", utils);

        securitySettings.initTrustAgentPreference(screen, 0);
        verify(preference).setSummary(R.string.manage_trust_agents_summary);

        securitySettings.initTrustAgentPreference(screen, 2);
        verify(preference).setSummary(context.getResources().getQuantityString(
            R.plurals.manage_trust_agents_summary_on, 2, 2));
    }
}