diff --git a/res/layout/setup_choose_lock_generic_biometrics_header.xml b/res/layout/setup_choose_lock_generic_biometrics_header.xml
deleted file mode 100644
index daeeedd845d..00000000000
--- a/res/layout/setup_choose_lock_generic_biometrics_header.xml
+++ /dev/null
@@ -1,26 +0,0 @@
-
-
-
-
diff --git a/res/layout/setup_choose_lock_generic_header.xml b/res/layout/setup_choose_lock_generic_header.xml
deleted file mode 100644
index 7ec16d2c420..00000000000
--- a/res/layout/setup_choose_lock_generic_header.xml
+++ /dev/null
@@ -1,26 +0,0 @@
-
-
-
-
diff --git a/src/com/android/settings/password/SetupChooseLockGeneric.java b/src/com/android/settings/password/SetupChooseLockGeneric.java
index 2f136e68f4c..551789d3ff2 100644
--- a/src/com/android/settings/password/SetupChooseLockGeneric.java
+++ b/src/com/android/settings/password/SetupChooseLockGeneric.java
@@ -109,6 +109,7 @@ public class SetupChooseLockGeneric extends ChooseLockGeneric {
super.onViewCreated(view, savedInstanceState);
GlifPreferenceLayout layout = (GlifPreferenceLayout) view;
+ layout.setDescriptionText(loadDescriptionText());
layout.setDividerItemDecoration(new SettingsDividerItemDecoration(getContext()));
layout.setDividerInset(getContext().getResources().getDimensionPixelSize(
R.dimen.sud_items_glif_text_divider_inset));
@@ -129,11 +130,9 @@ public class SetupChooseLockGeneric extends ChooseLockGeneric {
@Override
protected void addHeaderView() {
- if (isForBiometric()) {
- setHeaderView(R.layout.setup_choose_lock_generic_biometrics_header);
- } else {
- setHeaderView(R.layout.setup_choose_lock_generic_header);
- }
+ // The original logic has been moved to onViewCreated and
+ // uses GlifLayout#setDescriptionText instead,
+ // keep empty body here since we won't call super method.
}
@Override
@@ -239,6 +238,12 @@ public class SetupChooseLockGeneric extends ChooseLockGeneric {
private boolean isForBiometric() {
return mForFingerprint || mForFace || mForBiometrics;
}
+
+ String loadDescriptionText() {
+ return getString(isForBiometric()
+ ? R.string.lock_settings_picker_biometrics_added_security_message
+ : R.string.setup_lock_settings_picker_message);
+ }
}
public static class InternalActivity extends ChooseLockGeneric.InternalActivity {
diff --git a/tests/robotests/src/com/android/settings/password/SetupChooseLockGenericTest.java b/tests/robotests/src/com/android/settings/password/SetupChooseLockGenericTest.java
index cd79f58ee31..494d3f0671b 100644
--- a/tests/robotests/src/com/android/settings/password/SetupChooseLockGenericTest.java
+++ b/tests/robotests/src/com/android/settings/password/SetupChooseLockGenericTest.java
@@ -23,15 +23,20 @@ import static com.android.settings.password.ChooseLockSettingsHelper.EXTRA_KEY_R
import static com.google.common.truth.Truth.assertThat;
-import static org.robolectric.Shadows.shadowOf;
-
import android.content.Intent;
+import android.text.TextUtils;
+import androidx.annotation.NonNull;
+import androidx.fragment.app.Fragment;
+
+import com.android.settings.password.SetupChooseLockGeneric.SetupChooseLockGenericFragment;
import com.android.settings.testutils.shadow.ShadowLockPatternUtils;
import com.android.settings.testutils.shadow.ShadowPasswordUtils;
import com.android.settings.testutils.shadow.ShadowUserManager;
import com.android.settings.testutils.shadow.ShadowUtils;
+import com.google.android.setupdesign.GlifPreferenceLayout;
+
import org.junit.After;
import org.junit.Test;
import org.junit.runner.RunWith;
@@ -41,6 +46,8 @@ import org.robolectric.Shadows;
import org.robolectric.annotation.Config;
import org.robolectric.shadows.ShadowActivity;
+import java.util.List;
+
@RunWith(RobolectricTestRunner.class)
@Config(shadows = {
ShadowUserManager.class,
@@ -78,4 +85,43 @@ public class SetupChooseLockGenericTest {
ShadowActivity shadowActivity = Shadows.shadowOf(activity);
assertThat(shadowActivity.isFinishing()).isFalse();
}
+
+ @Test
+ public void setupChooseLockGenericUsingDescriptionTextOfGlifLayout() {
+ SetupChooseLockGenericFragment fragment = getFragmentOfSetupChooseLockGeneric(false);
+ GlifPreferenceLayout view = getViewOfSetupChooseLockGenericFragment(fragment);
+ assertThat(TextUtils.isEmpty(view.getDescriptionText())).isFalse();
+ assertThat(view.getDescriptionText().toString()).isEqualTo(fragment.loadDescriptionText());
+ }
+
+ @Test
+ public void setupChooseLockGenericUsingDescriptionTextOfGlifLayoutForBiometric() {
+ SetupChooseLockGenericFragment fragment = getFragmentOfSetupChooseLockGeneric(true);
+ GlifPreferenceLayout view = getViewOfSetupChooseLockGenericFragment(fragment);
+ assertThat(TextUtils.isEmpty(view.getDescriptionText())).isFalse();
+ assertThat(view.getDescriptionText().toString()).isEqualTo(fragment.loadDescriptionText());
+ }
+
+ private SetupChooseLockGenericFragment getFragmentOfSetupChooseLockGeneric(boolean biometric) {
+ ShadowPasswordUtils.addGrantedPermission(REQUEST_PASSWORD_COMPLEXITY);
+ Intent intent = new Intent("com.android.settings.SETUP_LOCK_SCREEN");
+ intent.putExtra(EXTRA_KEY_REQUESTED_MIN_COMPLEXITY, PASSWORD_COMPLEXITY_HIGH);
+ intent.putExtra(ChooseLockSettingsHelper.EXTRA_KEY_FOR_FINGERPRINT, biometric);
+ SetupChooseLockGeneric activity =
+ Robolectric.buildActivity(SetupChooseLockGeneric.class, intent).setup().get();
+
+ List fragments = activity.getSupportFragmentManager().getFragments();
+ assertThat(fragments).isNotNull();
+ assertThat(fragments.size()).isEqualTo(1);
+ assertThat(fragments.get(0)).isInstanceOf(SetupChooseLockGenericFragment.class);
+
+ return (SetupChooseLockGenericFragment) fragments.get(0);
+ }
+ private GlifPreferenceLayout getViewOfSetupChooseLockGenericFragment(
+ @NonNull SetupChooseLockGenericFragment fragment) {
+ assertThat(fragment.getView()).isNotNull();
+ assertThat(fragment.getView()).isInstanceOf(GlifPreferenceLayout.class);
+
+ return (GlifPreferenceLayout) fragment.getView();
+ }
}