Fix the “screen lock option” and password restriction view are

in the wrong position on PIN/Password/Pattern in the landscape mode.

1. Move the description position under the GlifLayout header
2. Move the position "Screen lock options" button under the
GlifLayout header

Bug: 272676038
Bug: 285271342

Test: manully test with reproducible steps:
STEPS TO REPRODUCE:
1. Go through the setup flow
2. Continue steps until “set pin” page
3. The “screen lock option” is in the wrong position

Test: make RunSettingsRoboTests ROBOTEST_FILTER="com.android.settings
.password.SetupChooseLockPasswordTest"

Change-Id: I24464e6b7e93f20abbeb59426919ed7fec5c7cbb
This commit is contained in:
Jason Chang
2023-06-15 16:09:06 +00:00
parent cc1fe61339
commit c0f0b0ca1a
12 changed files with 112 additions and 39 deletions

View File

@@ -74,9 +74,11 @@ import android.view.WindowManager;
import android.view.inputmethod.EditorInfo;
import android.widget.CheckBox;
import android.widget.ImeAwareEditText;
import android.widget.LinearLayout;
import android.widget.TextView;
import android.widget.TextView.OnEditorActionListener;
import androidx.annotation.Nullable;
import androidx.annotation.StringRes;
import androidx.fragment.app.Fragment;
import androidx.recyclerview.widget.LinearLayoutManager;
@@ -517,7 +519,9 @@ public class ChooseLockPassword extends SettingsActivity {
|| DevicePolicyManager.PASSWORD_QUALITY_ALPHANUMERIC == mPasswordType
|| DevicePolicyManager.PASSWORD_QUALITY_COMPLEX == mPasswordType;
setupPasswordRequirementsView(view);
final LinearLayout headerLayout = view.findViewById(
R.id.sud_layout_header);
setupPasswordRequirementsView(headerLayout);
mPasswordRestrictionView.setLayoutManager(new LinearLayoutManager(getActivity()));
mPasswordEntry = view.findViewById(R.id.password_entry);
@@ -626,11 +630,33 @@ public class ChooseLockPassword extends SettingsActivity {
}
}
private void setupPasswordRequirementsView(View view) {
mPasswordRestrictionView = view.findViewById(R.id.password_requirements_view);
private void setupPasswordRequirementsView(@Nullable ViewGroup view) {
if (view == null) {
return;
}
createHintMessageView(view);
mPasswordRestrictionView.setLayoutManager(new LinearLayoutManager(getActivity()));
mPasswordRequirementAdapter = new PasswordRequirementAdapter();
mPasswordRequirementAdapter = new PasswordRequirementAdapter(getActivity());
mPasswordRestrictionView.setAdapter(mPasswordRequirementAdapter);
view.addView(mPasswordRestrictionView);
}
private void createHintMessageView(ViewGroup view) {
if (mPasswordRestrictionView != null) {
return;
}
final TextView sucTitleView = view.findViewById(R.id.suc_layout_title);
final ViewGroup.MarginLayoutParams titleLayoutParams =
(ViewGroup.MarginLayoutParams) sucTitleView.getLayoutParams();
mPasswordRestrictionView = new RecyclerView(getActivity());
final LinearLayout.LayoutParams lp = new LinearLayout.LayoutParams(
LinearLayout.LayoutParams.MATCH_PARENT,
LinearLayout.LayoutParams.WRAP_CONTENT);
lp.setMargins(titleLayoutParams.leftMargin, getResources().getDimensionPixelSize(
R.dimen.password_requirement_view_margin_top), titleLayoutParams.leftMargin, 0);
mPasswordRestrictionView.setLayoutParams(lp);
}
@Override