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

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

Change-Id: I06655ae21068d4f9bd0f9430e88be8b3a69eacf9
This commit is contained in:
Stanley Wang
2020-06-22 10:50:39 +00:00
committed by Automerger Merge Worker
2 changed files with 30 additions and 7 deletions

View File

@@ -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);

View File

@@ -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);
}
}