Add scroll view for choose_lock_pattern in land mode
Wrap the title and header with scroll view in case they are too
large to display
Bug: 32261616
Test: Visual
Change-Id: I61ce67c23e27177e2915df012c450f77b40a8fb2
diff --git a/res/layout-land/choose_lock_pattern.xml b/res/layout-land/choose_lock_pattern.xml
index 89e3d57..b4d5fce 100644
--- a/res/layout-land/choose_lock_pattern.xml
+++ b/res/layout-land/choose_lock_pattern.xml
@@ -41,37 +41,46 @@
android:layout_marginBottom="@dimen/suw_content_frame_padding_bottom"
android:orientation="vertical">
- <LinearLayout
- android:layout_width="match_parent"
+ <ImageView
+ android:id="@+id/suw_layout_icon"
+ style="@style/SuwGlifIcon"
+ android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:orientation="vertical">
+ android:layout_marginStart="0dp"
+ android:layout_marginEnd="0dp"
+ android:src="@drawable/ic_lock"/>
- <ImageView
- android:id="@+id/suw_layout_icon"
- style="@style/SuwGlifIcon"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_marginStart="0dp"
- android:layout_marginEnd="0dp"
- android:src="@drawable/ic_lock" />
+ <ScrollView
+ android:id="@+id/scroll_layout_title_header"
+ android:layout_width="match_parent"
+ android:layout_height="0dp"
+ android:layout_weight="3.0">
- <TextView
- android:id="@+id/suw_layout_title"
- style="@style/SuwGlifHeaderTitle"
+ <LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
- android:layout_marginStart="0dp"
- android:layout_marginEnd="0dp" />
+ android:orientation="vertical">
- </LinearLayout>
+ <TextView
+ android:id="@+id/suw_layout_title"
+ style="@style/SuwGlifHeaderTitle"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_marginStart="0dp"
+ android:layout_marginEnd="0dp"/>
- <!-- header message -->
- <TextView android:id="@+id/headerText"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:layout_marginTop="16dp"
- android:gravity="start|bottom"
- android:textSize="18sp" />
+ <!-- header message -->
+ <TextView
+ android:id="@+id/headerText"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_marginTop="16dp"
+ android:gravity="start|bottom"
+ android:textSize="18sp"/>
+
+ </LinearLayout>
+
+ </ScrollView>
<!-- footer can show a message, or confirm / restart buttons -->
<RelativeLayout
diff --git a/src/com/android/settings/ChooseLockPattern.java b/src/com/android/settings/ChooseLockPattern.java
index 42a941a..23768ab 100644
--- a/src/com/android/settings/ChooseLockPattern.java
+++ b/src/com/android/settings/ChooseLockPattern.java
@@ -27,6 +27,7 @@
import android.view.View;
import android.view.ViewGroup;
import android.widget.LinearLayout;
+import android.widget.ScrollView;
import android.widget.TextView;
import com.android.internal.logging.MetricsProto.MetricsEvent;
@@ -152,6 +153,9 @@
protected List<LockPatternView.Cell> mChosenPattern = null;
private boolean mHideDrawer = false;
+ // ScrollView that contains title and header, only exist in land mode
+ private ScrollView mTitleHeaderScrollView;
+
/**
* The patten used during the help screen to show how to draw a pattern.
*/
@@ -237,6 +241,15 @@
mFooterText.setText("");
mFooterLeftButton.setEnabled(false);
mFooterRightButton.setEnabled(false);
+
+ if (mTitleHeaderScrollView != null) {
+ mTitleHeaderScrollView.post(new Runnable() {
+ @Override
+ public void run() {
+ mTitleHeaderScrollView.fullScroll(ScrollView.FOCUS_DOWN);
+ }
+ });
+ }
}
};
@@ -415,6 +428,9 @@
mFooterLeftButton = (TextView) view.findViewById(R.id.footerLeftButton);
mFooterRightButton = (TextView) view.findViewById(R.id.footerRightButton);
+ mTitleHeaderScrollView = (ScrollView) view.findViewById(R.id
+ .scroll_layout_title_header);
+
mFooterLeftButton.setOnClickListener(this);
mFooterRightButton.setOnClickListener(this);