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