Prepare for some changes to LoaderManager/Loader.

Sorry it is a bit ugly, it is to allow this change to be
checked in prior to the first stage of the framework change
without breaking the build.

Change-Id: Ia59181602679608e765664ecff1fbb52306d9559
diff --git a/samples/ApiDemos/src/com/example/android/apis/app/FragmentListCursorLoader.java b/samples/ApiDemos/src/com/example/android/apis/app/FragmentListCursorLoader.java
index f6a06d2..2280cec 100644
--- a/samples/ApiDemos/src/com/example/android/apis/app/FragmentListCursorLoader.java
+++ b/samples/ApiDemos/src/com/example/android/apis/app/FragmentListCursorLoader.java
@@ -33,9 +33,10 @@
 import android.view.MenuItem;
 import android.view.View;
 import android.view.inputmethod.InputMethodManager;
-import android.widget.ListAdapter;
 import android.widget.ListView;
+import android.widget.SearchView;
 import android.widget.SimpleCursorAdapter;
+import android.widget.SearchView.OnQueryChangeListener;
 
 /**
  * Demonstration of more complex use if a ListFragment, including showing
@@ -54,8 +55,10 @@
         }
     }
 
+//BEGIN_INCLUDE(fragment_cursor)
     public static class CursorLoaderListFragment extends ListFragment
-            implements LoaderManager.LoaderCallbacks<Cursor> {
+            implements OnQueryChangeListener, LoaderManager.LoaderCallbacks<Cursor> {
+        SimpleCursorAdapter mAdapter;
         MenuItem mSearchMenu;
 
         @Override
@@ -77,11 +80,25 @@
         @Override
         public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
             mSearchMenu = menu.add("Search");
-            mSearchMenu.setIcon(R.drawable.magnifying_glass);
-            mSearchMenu.setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS);
+            mSearchMenu.setTitle("Search");
+            mSearchMenu.setIcon(android.R.drawable.ic_menu_search);
+            mSearchMenu.setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM);
+            SearchView sv = new SearchView(getActivity());
+            sv.setOnQueryChangeListener(this);
+            mSearchMenu.setActionView(sv);
         }
 
         @Override
+        public boolean onQueryTextChanged(String newText) {
+            return true;
+        }
+
+        @Override
+        public boolean onSubmitQuery(String query) {
+            return true;
+        }
+        
+        @Override
         public boolean onOptionsItemSelected(MenuItem item) {
             if (item == mSearchMenu) {
                 InputMethodManager imm = (InputMethodManager)getActivity()
@@ -117,11 +134,20 @@
         }
 
         public void onLoadFinished(Loader<Cursor> loader, Cursor data) {
-            ListAdapter adapter = new SimpleCursorAdapter(getActivity(),
-                    android.R.layout.simple_list_item_2, data,
-                            new String[] { Contacts.DISPLAY_NAME, Contacts.CONTACT_STATUS },
-                            new int[] { android.R.id.text1, android.R.id.text2 });
-            setListAdapter(adapter);
+            if (mAdapter == null) {
+                mAdapter = new SimpleCursorAdapter(getActivity(),
+                        android.R.layout.simple_list_item_2, data,
+                        new String[] { Contacts.DISPLAY_NAME, Contacts.CONTACT_STATUS },
+                        new int[] { android.R.id.text1, android.R.id.text2 });
+                setListAdapter(mAdapter);
+            } else {
+                mAdapter.changeCursor(data);
+            }
+        }
+
+        public void onLoaderReset(Loader<Cursor> loader) {
+            mAdapter.changeCursor(null);
         }
     }
+//END_INCLUDE(fragment_cursor)
 }