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: Ic781324da69a06ef30a0b34cd4e16d561c9c7df2
diff --git a/src/com/android/contacts/ContactLoader.java b/src/com/android/contacts/ContactLoader.java
index 7ceef91..e70cf69 100644
--- a/src/com/android/contacts/ContactLoader.java
+++ b/src/com/android/contacts/ContactLoader.java
@@ -981,7 +981,12 @@
         mContact = null;
     }
 
-    @Override
+    public void reset() {
+        unregisterObserver();
+        mContact = null;
+        mDestroyed = true;
+    }
+
     public void destroy() {
         unregisterObserver();
         mContact = null;
diff --git a/src/com/android/contacts/detail/ContactDetailFragment.java b/src/com/android/contacts/detail/ContactDetailFragment.java
index dde6b59..8d45ec8 100644
--- a/src/com/android/contacts/detail/ContactDetailFragment.java
+++ b/src/com/android/contacts/detail/ContactDetailFragment.java
@@ -53,6 +53,7 @@
 import android.content.Intent;
 import android.content.Loader;
 import android.content.res.Resources;
+import android.database.Cursor;
 import android.graphics.drawable.Drawable;
 import android.net.ParseException;
 import android.net.Uri;
@@ -1173,6 +1174,10 @@
                 mListener.onContactNotFound();
             }
         }
+
+        public void onLoaderReset(Loader<ContactLoader.Result> loader) {
+            mContactData = null;
+        }
     };
 
     private ContactDetailHeaderView.Listener mHeaderViewListener =
diff --git a/src/com/android/contacts/editor/ContactEditorFragment.java b/src/com/android/contacts/editor/ContactEditorFragment.java
index df748ae..80baa42 100644
--- a/src/com/android/contacts/editor/ContactEditorFragment.java
+++ b/src/com/android/contacts/editor/ContactEditorFragment.java
@@ -1641,6 +1641,9 @@
             }
             Log.v(TAG, "Time needed for setting UI: " + (setDataEndTime-setDataStartTime));
         }
+
+        public void onLoaderReset(Loader<ContactLoader.Result> loader) {
+        }
     };
 
     /**
@@ -1659,6 +1662,9 @@
             mGroupMetaData = data;
             bindGroupMetaData();
         }
+
+        public void onLoaderReset(Loader<Cursor> loader) {
+        }
     };
 
     @Override
diff --git a/src/com/android/contacts/interactions/ContactDeletionInteraction.java b/src/com/android/contacts/interactions/ContactDeletionInteraction.java
index 78a98b8..7426593 100644
--- a/src/com/android/contacts/interactions/ContactDeletionInteraction.java
+++ b/src/com/android/contacts/interactions/ContactDeletionInteraction.java
@@ -180,6 +180,9 @@
         showDialog(messageId, contactUri);
     }
 
+    public void onLoaderReset(Loader<Cursor> loader) {
+    }
+    
     /* Visible for testing */
     void showDialog(int messageId, final Uri contactUri) {
         mDialog = new AlertDialog.Builder(getActivity())
diff --git a/src/com/android/contacts/list/ContactBrowseListFragment.java b/src/com/android/contacts/list/ContactBrowseListFragment.java
index 6f06c82..e0626e0 100644
--- a/src/com/android/contacts/list/ContactBrowseListFragment.java
+++ b/src/com/android/contacts/list/ContactBrowseListFragment.java
@@ -363,6 +363,9 @@
         refreshSelectedContactUri();
     }
 
+    public void onLoaderReset(Loader<Cursor> loader) {
+    }
+
     private void checkSelection() {
         if (mSelectionVerified) {
             return;
diff --git a/src/com/android/contacts/list/ContactEntryListFragment.java b/src/com/android/contacts/list/ContactEntryListFragment.java
index 6447a7c..c73b86e 100644
--- a/src/com/android/contacts/list/ContactEntryListFragment.java
+++ b/src/com/android/contacts/list/ContactEntryListFragment.java
@@ -433,6 +433,9 @@
 //            }
     }
 
+    public void onLoaderReset(Loader<Cursor> loader) {
+    }
+
     protected void onPartitionLoaded(int partitionIndex, Cursor data) {
         mAdapter.changeCursor(partitionIndex, data);
         showCount(partitionIndex, data);
diff --git a/src/com/android/contacts/list/ContactListFilterController.java b/src/com/android/contacts/list/ContactListFilterController.java
index 920ff86..111dcd0 100644
--- a/src/com/android/contacts/list/ContactListFilterController.java
+++ b/src/com/android/contacts/list/ContactListFilterController.java
@@ -24,6 +24,7 @@
 import android.content.Loader;
 import android.content.SharedPreferences;
 import android.content.res.TypedArray;
+import android.database.Cursor;
 import android.os.Bundle;
 import android.preference.PreferenceManager;
 import android.text.TextUtils;
@@ -224,6 +225,9 @@
         }
     }
 
+    public void onLoaderReset(Loader<List<ContactListFilter>> loader) {
+    }
+
     private void setContactListFilter(int filterId) {
         ContactListFilter filter;
         if (filterId == ContactListFilter.FILTER_TYPE_ALL_ACCOUNTS) {
diff --git a/src/com/android/contacts/list/JoinContactListFragment.java b/src/com/android/contacts/list/JoinContactListFragment.java
index 2b071ad..96bae93 100644
--- a/src/com/android/contacts/list/JoinContactListFragment.java
+++ b/src/com/android/contacts/list/JoinContactListFragment.java
@@ -86,6 +86,9 @@
                 }
             }
         }
+        
+        public void onLoaderReset(Loader<Cursor> loader) {
+        }
     };
 
     public JoinContactListFragment() {