Merge "Initial integration of search into the two-pane activity"
diff --git a/res/layout/two_pane_activity.xml b/res/layout/two_pane_activity.xml
index a352ec3..bcf0ad8 100644
--- a/res/layout/two_pane_activity.xml
+++ b/res/layout/two_pane_activity.xml
@@ -16,19 +16,29 @@
 
 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
     android:id="@+id/two_pane_activity"
-    android:orientation="horizontal"
+    android:orientation="vertical"
     android:layout_width="match_parent"
     android:layout_height="match_parent">
 
-    <fragment android:name="com.android.contacts.list.DefaultContactBrowseListFragment"
-            android:id="@+id/two_pane_list"
-            android:layout_width="wrap_content"
-            android:layout_height="wrap_content"
-            android:layout_weight="1" />
+    <include android:id="@+id/searchView"
+        layout="@layout/search_bar"/>
 
-    <fragment android:name="com.android.contacts.views.detail.ContactDetailFragment"
-            android:id="@+id/two_pane_detail"
-            android:layout_width="wrap_content"
-            android:layout_height="wrap_content"
-            android:layout_weight="1" />
+    <LinearLayout
+        android:id="@+id/two_pane_activity"
+        android:orientation="horizontal"
+        android:layout_width="match_parent"
+        android:layout_height="match_parent">
+
+        <fragment android:name="com.android.contacts.list.DefaultContactBrowseListFragment"
+                android:id="@+id/two_pane_list"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_weight="1" />
+
+        <fragment android:name="com.android.contacts.views.detail.ContactDetailFragment"
+                android:id="@+id/two_pane_detail"
+                android:layout_width="wrap_content"
+                android:layout_height="wrap_content"
+                android:layout_weight="1" />
+  </LinearLayout>
 </LinearLayout>
diff --git a/src/com/android/contacts/activities/TwoPaneActivity.java b/src/com/android/contacts/activities/TwoPaneActivity.java
index cd5a378..9c02ee2 100644
--- a/src/com/android/contacts/activities/TwoPaneActivity.java
+++ b/src/com/android/contacts/activities/TwoPaneActivity.java
@@ -20,11 +20,14 @@
 import com.android.contacts.list.DefaultContactBrowseListFragment;
 import com.android.contacts.list.OnContactBrowserActionListener;
 import com.android.contacts.views.detail.ContactDetailFragment;
+import com.android.contacts.widget.SearchEditText;
+import com.android.contacts.widget.SearchEditText.OnFilterTextListener;
 
 import android.app.Activity;
 import android.content.Intent;
 import android.net.Uri;
 import android.os.Bundle;
+import android.text.TextUtils;
 import android.widget.Toast;
 
 public class TwoPaneActivity extends Activity {
@@ -47,6 +50,21 @@
 //        mDetailFragment = (ContactDetailFragment) findFragmentById(R.id.two_pane_detail);
         mDetailFragment = ContactDetailFragment.sLastInstance;
         mDetailFragment.setCallbacks(mDetailCallbackHandler);
+
+        setupSearchUI();
+    }
+
+    private void setupSearchUI() {
+        SearchEditText searchEditText = (SearchEditText)findViewById(R.id.search_src_text);
+        searchEditText.setOnFilterTextListener(new OnFilterTextListener() {
+            public void onFilterChange(String queryString) {
+                mListFragment.setSearchMode(!TextUtils.isEmpty(queryString));
+                mListFragment.setQueryString(queryString);
+            }
+
+            public void onCancelSearch() {
+            }
+        });
     }
 
     private class ListCallbackHandler implements OnContactBrowserActionListener {
diff --git a/src/com/android/contacts/list/ContactEntryListFragment.java b/src/com/android/contacts/list/ContactEntryListFragment.java
index 1f8822e..bb8484d 100644
--- a/src/com/android/contacts/list/ContactEntryListFragment.java
+++ b/src/com/android/contacts/list/ContactEntryListFragment.java
@@ -213,6 +213,9 @@
 
     public void setSearchMode(boolean flag) {
         mSearchMode = flag;
+        if (mAdapter != null) {
+            mAdapter.setSearchMode(flag);
+        }
     }
 
     public boolean isSearchMode() {
@@ -221,6 +224,9 @@
 
     public void setSearchResultsMode(boolean flag) {
         mSearchResultsMode = flag;
+        if (mAdapter != null) {
+            mAdapter.setSearchResultsMode(flag);
+        }
     }
 
     public boolean isSearchResultsMode() {