Tune Recents Search and Search Results

- add the capability to scroll recents and results with their
header (old request from UX)

See bug: #12910134 Implement Search into the Settings App

Change-Id: If3c4a23b928b189803f2ef8e13a61746c2790b4b
diff --git a/res/layout/search_panel.xml b/res/layout/search_panel.xml
index 1242c73..c892ff9 100644
--- a/res/layout/search_panel.xml
+++ b/res/layout/search_panel.xml
@@ -33,17 +33,6 @@
                 android:layout_gravity="center"
                 android:orientation="vertical">
 
-            <TextView android:layout_width="wrap_content"
-                      android:layout_height="@dimen/dashboard_category_title_height"
-                      android:paddingStart="@dimen/search_title_padding_start"
-                      android:singleLine="true"
-                      android:ellipsize="marquee"
-                      android:gravity="center_vertical"
-                      android:textAppearance="@style/TextAppearance.RecentsTitle"
-                      android:textAlignment="viewStart"
-                      android:text="@string/search_recents_queries_label"
-                    />
-
             <ListView android:id="@+id/list_suggestions"
                     android:layout_width="match_parent"
                     android:layout_height="match_parent"
@@ -58,17 +47,6 @@
                 android:orientation="vertical"
                 android:layout_weight="1">
 
-            <TextView android:layout_width="wrap_content"
-                      android:layout_height="@dimen/dashboard_category_title_height"
-                      android:paddingStart="@dimen/search_title_padding_start"
-                      android:singleLine="true"
-                      android:ellipsize="marquee"
-                      android:gravity="center_vertical"
-                      android:textAppearance="@style/TextAppearance.ResultTitle"
-                      android:textAlignment="viewStart"
-                      android:text="@string/search_results_label"
-                    />
-
             <ListView android:id="@+id/list_results"
                     android:layout_width="match_parent"
                     android:layout_height="match_parent"
diff --git a/res/layout/search_panel_results_header.xml b/res/layout/search_panel_results_header.xml
new file mode 100644
index 0000000..07f77a7
--- /dev/null
+++ b/res/layout/search_panel_results_header.xml
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2014 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.
+-->
+
+<TextView xmlns:android="http://schemas.android.com/apk/res/android"
+          android:layout_width="wrap_content"
+          android:layout_height="@dimen/dashboard_category_title_height"
+          android:paddingStart="@dimen/search_title_padding_start"
+          android:singleLine="true"
+          android:ellipsize="marquee"
+          android:gravity="center_vertical"
+          android:textAppearance="@style/TextAppearance.ResultTitle"
+          android:textAlignment="viewStart"
+          android:text="@string/search_results_label"
+        />
diff --git a/res/layout/search_panel_suggestions_header.xml b/res/layout/search_panel_suggestions_header.xml
new file mode 100644
index 0000000..21500bc
--- /dev/null
+++ b/res/layout/search_panel_suggestions_header.xml
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2014 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.
+-->
+
+<TextView xmlns:android="http://schemas.android.com/apk/res/android"
+          android:layout_width="wrap_content"
+          android:layout_height="@dimen/dashboard_category_title_height"
+          android:paddingStart="@dimen/search_title_padding_start"
+          android:singleLine="true"
+          android:ellipsize="marquee"
+          android:gravity="center_vertical"
+          android:textAppearance="@style/TextAppearance.RecentsTitle"
+          android:textAlignment="viewStart"
+          android:text="@string/search_recents_queries_label"
+        />
diff --git a/src/com/android/settings/dashboard/SearchResultsSummary.java b/src/com/android/settings/dashboard/SearchResultsSummary.java
index c31a893..6981634 100644
--- a/src/com/android/settings/dashboard/SearchResultsSummary.java
+++ b/src/com/android/settings/dashboard/SearchResultsSummary.java
@@ -166,6 +166,9 @@
         mResultsListView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
             @Override
             public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
+                // We have a header, so we need to decrement the position by one
+                position--;
+
                 final Cursor cursor = mResultsAdapter.mCursor;
                 cursor.moveToPosition(position);
 
@@ -202,12 +205,17 @@
                 saveQueryToDatabase();
             }
         });
+        mResultsListView.addHeaderView(
+                LayoutInflater.from(getActivity()).inflate(
+                R.layout.search_panel_results_header, mResultsListView, false));
 
         mSuggestionsListView = (ListView) view.findViewById(R.id.list_suggestions);
         mSuggestionsListView.setAdapter(mSuggestionsAdapter);
         mSuggestionsListView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
             @Override
             public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
+                // We have a header, so we need to decrement the position by one
+                position--;
                 final Cursor cursor = mSuggestionsAdapter.mCursor;
                 cursor.moveToPosition(position);
 
@@ -216,6 +224,9 @@
                 mSearchView.setQuery(mQuery, false);
             }
         });
+        mSuggestionsListView.addHeaderView(
+                LayoutInflater.from(getActivity()).inflate(
+                        R.layout.search_panel_suggestions_header, mSuggestionsListView, false));
 
         return view;
     }