Adding app grid layout with fastscroller.

- Adding filtering and using alphabetic index for app grouping.

Change-Id: I745b644fa8f90f5ff24a8642ac377ef1c65d8aff
diff --git a/res/layout/apps_grid_row_icon_view.xml b/res/layout/apps_grid_row_icon_view.xml
index 11c8eeb..81e74b9 100644
--- a/res/layout/apps_grid_row_icon_view.xml
+++ b/res/layout/apps_grid_row_icon_view.xml
@@ -13,10 +13,17 @@
      See the License for the specific language governing permissions and
      limitations under the License.
 -->
-
 <com.android.launcher3.BubbleTextView
     xmlns:android="http://schemas.android.com/apk/res/android"
+    xmlns:launcher="http://schemas.android.com/apk/res-auto"
     style="@style/WorkspaceIcon.AppsCustomize"
-    android:id="@+id/application_icon"
+    android:id="@+id/icon"
+    android:layout_width="wrap_content"
+    android:layout_height="wrap_content"
+    android:layout_gravity="left|center_vertical"
+    android:paddingTop="8dp"
+    android:paddingBottom="8dp"
     android:focusable="true"
-    android:background="@drawable/focusable_view_bg" />
+    android:background="@drawable/focusable_view_bg"
+    launcher:deferShadowGeneration="true" />
+
diff --git a/res/layout/apps_grid_row_view.xml b/res/layout/apps_grid_row_view.xml
deleted file mode 100644
index bce43bc..0000000
--- a/res/layout/apps_grid_row_view.xml
+++ /dev/null
@@ -1,38 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!-- Copyright (C) 2015 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.
--->
-<LinearLayout
-    xmlns:android="http://schemas.android.com/apk/res/android"
-    android:layout_width="match_parent"
-    android:layout_height="@dimen/apps_view_row_height"
-    android:paddingTop="12dp"
-    android:paddingBottom="12dp"
-    android:orientation="horizontal"
-    android:focusable="true"
-    android:background="@drawable/focusable_view_bg"
-    android:descendantFocusability="afterDescendants">
-    <TextView
-        android:id="@+id/section"
-        android:layout_width="48dp"
-        android:layout_height="wrap_content"
-        android:layout_gravity="center_vertical"
-        android:paddingRight="8dp"
-        android:paddingBottom="12dp"
-        android:gravity="right"
-        android:textColor="#1ca195"
-        android:textSize="16sp"
-        android:textAllCaps="true"
-        android:focusable="false" />
-</LinearLayout>
\ No newline at end of file
diff --git a/res/layout/apps_list_reveal_view.xml b/res/layout/apps_list_reveal_view.xml
index 4a26787..19e462b 100644
--- a/res/layout/apps_list_reveal_view.xml
+++ b/res/layout/apps_list_reveal_view.xml
@@ -15,7 +15,7 @@
 -->
 <FrameLayout
     xmlns:android="http://schemas.android.com/apk/res/android"
-    android:id="@+id/all_apps_transition_overlay"
+    android:id="@+id/apps_view_transition_overlay"
     android:layout_width="match_parent"
     android:layout_height="match_parent"
     android:layout_gravity="center"
diff --git a/res/layout/apps_list_row_icon_view.xml b/res/layout/apps_list_row_icon_view.xml
index 607af9b..867dbdc 100644
--- a/res/layout/apps_list_row_icon_view.xml
+++ b/res/layout/apps_list_row_icon_view.xml
@@ -20,9 +20,10 @@
     style="@style/WorkspaceIcon.AppsCustomize"
     android:id="@+id/application_icon"
     android:layout_width="match_parent"
-    android:layout_height="wrap_content"
+    android:layout_height="match_parent"
     android:focusable="true"
     android:background="@drawable/focusable_view_bg"
     launcher:iconPaddingOverride="24dp"
     launcher:textSizeOverride="16dp"
-    launcher:layoutHorizontal="true" />
+    launcher:layoutHorizontal="true"
+    launcher:deferShadowGeneration="true" />
diff --git a/res/layout/apps_list_row_view.xml b/res/layout/apps_list_row_view.xml
index c4dcd00..83c175b 100644
--- a/res/layout/apps_list_row_view.xml
+++ b/res/layout/apps_list_row_view.xml
@@ -26,9 +26,8 @@
         android:layout_width="64dp"
         android:layout_height="match_parent"
         android:paddingLeft="16dp"
-        android:gravity="left|center_vertical"
-        android:textColor="#009688"
-        android:textSize="24sp"
-        android:textAllCaps="true"
+        android:gravity="start|center_vertical"
+        android:textColor="@color/apps_view_section_text_color"
+        android:textSize="@dimen/apps_view_section_text_size"
         android:focusable="false" />
 </LinearLayout>
\ No newline at end of file
diff --git a/res/layout/apps_list_view.xml b/res/layout/apps_list_view.xml
index b1b0f31..dfb2fc4 100644
--- a/res/layout/apps_list_view.xml
+++ b/res/layout/apps_list_view.xml
@@ -13,18 +13,41 @@
      See the License for the specific language governing permissions and
      limitations under the License.
 -->
-<ListView
+<LinearLayout
     xmlns:android="http://schemas.android.com/apk/res/android"
     android:id="@+id/apps_list"
     android:layout_width="match_parent"
     android:layout_height="match_parent"
-    android:layout_gravity="center"
-    android:paddingTop="12dp"
-    android:paddingBottom="12dp"
-    android:clipToPadding="false"
-    android:scrollbars="vertical"
+    android:orientation="vertical"
     android:elevation="15dp"
     android:background="@drawable/apps_list_bg"
-    android:visibility="gone"
-    android:focusable="true"
-    android:descendantFocusability="afterDescendants" />
\ No newline at end of file
+    android:visibility="gone">
+    <EditText
+        android:id="@+id/app_search_box"
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:padding="16dp"
+        android:hint="@string/apps_view_search_bar_hint"
+        android:maxLines="1"
+        android:singleLine="true"
+        android:scrollHorizontally="true"
+        android:gravity="fill_horizontal"
+        android:textSize="16sp"
+        android:textColor="#4c4c4c"
+        android:textColorHint="#9c9c9c"
+        android:imeOptions="flagNoExtractUi"
+        android:background="@drawable/apps_list_search_bg"
+        android:elevation="4dp" />
+    <com.android.launcher3.AppsContainerRecyclerView
+        android:id="@+id/apps_list_view"
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"
+        android:layout_gravity="center"
+        android:paddingTop="12dp"
+        android:paddingBottom="12dp"
+        android:clipToPadding="false"
+        android:scrollbars="vertical"
+        android:scrollbarThumbVertical="@drawable/apps_list_scrollbar_thumb"
+        android:focusable="true"
+        android:descendantFocusability="afterDescendants" />
+</LinearLayout>
\ No newline at end of file
diff --git a/res/layout/apps_view.xml b/res/layout/apps_view.xml
index 19ad3d2..c1bae63 100644
--- a/res/layout/apps_view.xml
+++ b/res/layout/apps_view.xml
@@ -19,7 +19,7 @@
     android:layout_width="match_parent"
     android:layout_height="match_parent"
     android:padding="8dp"
-    android:background="#22000000"
+    android:background="@drawable/apps_customize_bg"
     android:descendantFocusability="afterDescendants">
     <include
         layout="@layout/apps_list_reveal_view" />