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

Commit 7c0f60f2 authored by Stanley Wang's avatar Stanley Wang Committed by Automerger Merge Worker
Browse files

Merge "Fix the bug of not showing lock screen before entering Smart Lock...

Merge "Fix the bug of not showing lock screen before entering Smart Lock page." into rvc-dev am: 7afb61e6

Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Settings/+/11949297

Change-Id: I2f29322ed4c14d9ed093777d330e9df7b364feb4
parents d4714ff1 7afb61e6
Loading
Loading
Loading
Loading
+8 −2
Original line number Diff line number Diff line
@@ -23,7 +23,6 @@ import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.os.UserHandle;
import android.text.TextUtils;

import androidx.annotation.VisibleForTesting;
import androidx.preference.Preference;
@@ -46,6 +45,7 @@ import com.android.settingslib.core.lifecycle.events.OnResume;
import com.android.settingslib.core.lifecycle.events.OnSaveInstanceState;
import com.android.settingslib.search.SearchIndexableRaw;

import java.util.ArrayList;
import java.util.List;

public class TrustAgentListPreferenceController extends AbstractPreferenceController
@@ -66,6 +66,9 @@ public class TrustAgentListPreferenceController extends AbstractPreferenceContro
    private Intent mTrustAgentClickIntent;
    private PreferenceCategory mSecurityCategory;

    @VisibleForTesting
    final List<String> mTrustAgentsKeyList;

    public TrustAgentListPreferenceController(Context context, SecuritySettings host,
            Lifecycle lifecycle) {
        super(context);
@@ -74,6 +77,7 @@ public class TrustAgentListPreferenceController extends AbstractPreferenceContro
        mHost = host;
        mLockPatternUtils = provider.getLockPatternUtils(context);
        mTrustAgentManager = provider.getTrustAgentManager();
        mTrustAgentsKeyList = new ArrayList();
        if (lifecycle != null) {
            lifecycle.addObserver(this);
        }
@@ -113,7 +117,7 @@ public class TrustAgentListPreferenceController extends AbstractPreferenceContro

    @Override
    public boolean handlePreferenceTreeClick(Preference preference) {
        if (!TextUtils.equals(preference.getKey(), getPreferenceKey())) {
        if (!mTrustAgentsKeyList.contains(preference.getKey())) {
            return super.handlePreferenceTreeClick(preference);
        }
        final ChooseLockSettingsHelper helper = new ChooseLockSettingsHelper(
@@ -189,6 +193,7 @@ public class TrustAgentListPreferenceController extends AbstractPreferenceContro
                mSecurityCategory.removePreference(oldAgent);
            }
        }
        mTrustAgentsKeyList.clear();

        // Then add new ones.
        final boolean hasSecurity = mLockPatternUtils.isSecure(MY_USER_ID);
@@ -196,6 +201,7 @@ public class TrustAgentListPreferenceController extends AbstractPreferenceContro
            final RestrictedPreference trustAgentPreference =
                    new RestrictedPreference(mSecurityCategory.getContext());
            TrustAgentManager.TrustAgentComponentInfo agent = agents.get(i);
            mTrustAgentsKeyList.add(PREF_KEY_TRUST_AGENT + i);
            trustAgentPreference.setKey(PREF_KEY_TRUST_AGENT + i);
            trustAgentPreference.setTitle(agent.title);
            trustAgentPreference.setSummary(agent.summary);
+22 −5
Original line number Diff line number Diff line
@@ -16,10 +16,8 @@

package com.android.settings.security.trustagent;

import static com.android.settings.security.trustagent.TrustAgentListPreferenceController
        .PREF_KEY_SECURITY_CATEGORY;
import static com.android.settings.security.trustagent.TrustAgentListPreferenceController
        .PREF_KEY_TRUST_AGENT;
import static com.android.settings.security.trustagent.TrustAgentListPreferenceController.PREF_KEY_SECURITY_CATEGORY;
import static com.android.settings.security.trustagent.TrustAgentListPreferenceController.PREF_KEY_TRUST_AGENT;

import static com.google.common.truth.Truth.assertThat;

@@ -172,6 +170,26 @@ public class TrustAgentListPreferenceControllerTest {
        verify(mCategory, never()).addPreference(any(Preference.class));
    }

    @Test
    public void onResume_controllerShouldHasKey() {
        final List<TrustAgentManager.TrustAgentComponentInfo> agents = new ArrayList<>();
        final TrustAgentManager.TrustAgentComponentInfo agent =
                mock(TrustAgentManager.TrustAgentComponentInfo.class);
        agent.title = "Test_title";
        agent.summary = "test summary";
        agent.componentName = new ComponentName("pkg", "agent");
        agent.admin = null;
        agents.add(agent);
        when(mTrustAgentManager.getActiveTrustAgents(mActivity, mLockPatternUtils))
                .thenReturn(agents);
        final String key = PREF_KEY_TRUST_AGENT + 0;

        mController.displayPreference(mScreen);
        mController.onResume();

        assertThat(mController.mTrustAgentsKeyList).containsExactly(key);
    }

    @Test
    public void updateDynamicRawDataToIndex_shouldIndexAgents() {
        final List<TrustAgentManager.TrustAgentComponentInfo> agents = new ArrayList<>();
@@ -190,5 +208,4 @@ public class TrustAgentListPreferenceControllerTest {

        assertThat(indexRaws).hasSize(1);
    }

}