Implement expandable candidates pane

This change removes horizontal scroll from candidates strip. Instead
of that this change introduces "fixed 3 items candidates strip" and
"expandable candidates pane".

Bug: 4175031

Change-Id: Ia367d9074436fdea76d3b653d81798ce2749170e
diff --git a/java/res/layout/candidates_strip.xml b/java/res/layout/candidates_strip.xml
new file mode 100644
index 0000000..296ea75
--- /dev/null
+++ b/java/res/layout/candidates_strip.xml
@@ -0,0 +1,61 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+/*
+**
+** Copyright 2011, The Android Open Source Project
+**
+** Licensed under the Apache License, Version 2.0 (the "License");
+** you may not use this file except in compliance with the License.
+** You may obtain a copy of the License at
+**
+**     http://www.apache.org/licenses/LICENSE-2.0
+**
+** Unless required by applicable law or agreed to in writing, software
+** distributed under the License is distributed on an "AS IS" BASIS,
+** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+** See the License for the specific language governing permissions and
+** limitations under the License.
+*/
+-->
+
+<merge
+    xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:latin="http://schemas.android.com/apk/res/com.android.inputmethod.latin"
+>
+    <include
+        android:id="@+id/candidate_left"
+        layout="@layout/candidate" />
+    <include
+        layout="@layout/candidate_divider" />
+    <include
+        android:id="@+id/candidate_center"
+        layout="@layout/candidate" />
+    <include
+        layout="@layout/candidate_divider" />
+    <LinearLayout
+        android:orientation="horizontal"
+        android:layout_weight="1.0"
+        android:layout_width="0dp"
+        android:layout_height="wrap_content"
+        android:gravity="center_vertical"
+    >
+        <include
+            android:id="@+id/candidate_right"
+            layout="@layout/candidate" />
+        <!-- TODO: These images' drawable must be determined depending on theme. -->
+        <ImageButton
+            android:id="@+id/expand_candidates_pane"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:src="@drawable/btn_expand_candidates_pane"
+            android:visibility="gone"
+            style="?attr/suggestionBackgroundStyle" />
+        <ImageButton
+            android:id="@+id/close_candidates_pane"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:src="@drawable/btn_close_candidates_pane"
+            android:visibility="gone"
+            style="?attr/suggestionBackgroundStyle" />
+    </LinearLayout>
+</merge>
diff --git a/java/res/layout/input_view.xml b/java/res/layout/input_view.xml
index 5da1a48..52b5ecc 100644
--- a/java/res/layout/input_view.xml
+++ b/java/res/layout/input_view.xml
@@ -32,32 +32,47 @@
         android:id="@+id/candidates_container"
         android:orientation="horizontal"
         android:layout_width="match_parent"
-        android:layout_height="wrap_content"
-        style="?attr/suggestionsStripBackgroundStyle"
+        android:layout_height="@dimen/candidate_strip_minimum_height"
+        android:gravity="bottom"
     >
         <View
             android:layout_width="@dimen/candidate_strip_padding"
             android:layout_height="@dimen/candidate_strip_height"
             style="?attr/suggestionsStripBackgroundStyle" />
-        <HorizontalScrollView
-            android:layout_width="match_parent"
-            android:layout_height="wrap_content"
-            android:fadingEdge="horizontal"
-            android:fadingEdgeLength="@dimen/candidate_strip_fading_edge_length"
-            android:scrollbars="none"
-        >
-            <com.android.inputmethod.latin.CandidateView
-                android:id="@+id/candidates"
-                android:layout_width="match_parent"
-                android:layout_height="@dimen/candidate_strip_height"
-                android:gravity="center_vertical" />
-        </HorizontalScrollView>
+        <com.android.inputmethod.latin.CandidateView
+            android:id="@+id/candidates"
+            android:layout_weight="1.0"
+            android:layout_width="0dp"
+            android:layout_height="@dimen/candidate_strip_height"
+            android:gravity="center_vertical"
+            style="?attr/suggestionsStripBackgroundStyle" />
         <View
             android:layout_width="@dimen/candidate_strip_padding"
             android:layout_height="@dimen/candidate_strip_height"
             style="?attr/suggestionsStripBackgroundStyle" />
     </LinearLayout>
 
+    <LinearLayout
+        android:id="@+id/candidates_pane_container"
+        android:orientation="horizontal"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:visibility="gone"
+        style="?attr/suggestionsStripBackgroundStyle"
+    >
+        <View
+            android:layout_width="@dimen/candidate_strip_padding"
+            android:layout_height="@dimen/candidate_strip_height" />
+        <FrameLayout
+            android:id="@+id/candidates_pane"
+            android:layout_weight="1.0"
+            android:layout_width="0dp"
+            android:layout_height="match_parent" />
+        <View
+            android:layout_width="@dimen/candidate_strip_padding"
+            android:layout_height="@dimen/candidate_strip_height" />
+    </LinearLayout>
+
     <com.android.inputmethod.keyboard.LatinKeyboardView
         android:id="@+id/keyboard_view"
         android:layout_alignParentBottom="true"