Adding mock shared preferences

Change-Id: I1af7cb97703191ce016a936fd843e1ac73be1022
diff --git a/src/com/android/contacts/ContactsActivity.java b/src/com/android/contacts/ContactsActivity.java
index 90a975f..79ebecb 100644
--- a/src/com/android/contacts/ContactsActivity.java
+++ b/src/com/android/contacts/ContactsActivity.java
@@ -20,6 +20,7 @@
 
 import android.app.Activity;
 import android.content.ContentResolver;
+import android.content.SharedPreferences;
 
 /**
  * A common superclass for Contacts activities that handles application-wide services.
@@ -43,6 +44,19 @@
     }
 
     @Override
+    public SharedPreferences getSharedPreferences(String name, int mode) {
+        InjectedServices services = ContactsApplication.getInjectedServices();
+        if (services != null) {
+            SharedPreferences prefs = services.getSharedPreferences();
+            if (prefs != null) {
+                return prefs;
+            }
+        }
+
+        return super.getSharedPreferences(name, mode);
+    }
+
+    @Override
     public Object getSystemService(String name) {
         Object service = super.getSystemService(name);
         if (service != null) {
diff --git a/src/com/android/contacts/ContactsApplication.java b/src/com/android/contacts/ContactsApplication.java
index 288a3d7..f0e2736 100644
--- a/src/com/android/contacts/ContactsApplication.java
+++ b/src/com/android/contacts/ContactsApplication.java
@@ -22,6 +22,7 @@
 import android.app.Application;
 import android.content.ContentResolver;
 import android.content.Context;
+import android.content.SharedPreferences;
 import android.os.StrictMode;
 import android.preference.PreferenceManager;
 
@@ -53,6 +54,18 @@
     }
 
     @Override
+    public SharedPreferences getSharedPreferences(String name, int mode) {
+        if (sInjectedServices != null) {
+            SharedPreferences prefs = sInjectedServices.getSharedPreferences();
+            if (prefs != null) {
+                return prefs;
+            }
+        }
+
+        return super.getSharedPreferences(name, mode);
+    }
+
+    @Override
     public Object getSystemService(String name) {
         if (sInjectedServices != null) {
             Object service = sInjectedServices.getSystemService(name);
diff --git a/src/com/android/contacts/list/ContactBrowseListFragment.java b/src/com/android/contacts/list/ContactBrowseListFragment.java
index a53fce7..0301f44 100644
--- a/src/com/android/contacts/list/ContactBrowseListFragment.java
+++ b/src/com/android/contacts/list/ContactBrowseListFragment.java
@@ -611,6 +611,9 @@
     private void restoreFilter() {
         if (mFilterEnabled) {
             mFilter = ContactListFilter.restoreFromPreferences(mPrefs);
+            if (mFilter == null) {
+                mFilter = new ContactListFilter(ContactListFilter.FILTER_TYPE_ALL_ACCOUNTS);
+            }
         }
     }
 
diff --git a/src/com/android/contacts/test/InjectedServices.java b/src/com/android/contacts/test/InjectedServices.java
index f059f3a..b74481c 100644
--- a/src/com/android/contacts/test/InjectedServices.java
+++ b/src/com/android/contacts/test/InjectedServices.java
@@ -19,6 +19,7 @@
 import com.google.android.collect.Maps;
 
 import android.content.ContentResolver;
+import android.content.SharedPreferences;
 
 import java.util.HashMap;
 
@@ -30,16 +31,25 @@
 public class InjectedServices {
 
     private ContentResolver mContentResolver;
+    private SharedPreferences mSharedPreferences;
     private HashMap<String, Object> mSystemServices;
 
-    public void setContentResolver(ContentResolver mContentResolver) {
-        this.mContentResolver = mContentResolver;
+    public void setContentResolver(ContentResolver contentResolver) {
+        this.mContentResolver = contentResolver;
     }
 
     public ContentResolver getContentResolver() {
         return mContentResolver;
     }
 
+    public void setSharedPreferences(SharedPreferences sharedPreferences) {
+        this.mSharedPreferences = sharedPreferences;
+    }
+
+    public SharedPreferences getSharedPreferences() {
+        return mSharedPreferences;
+    }
+
     public void setSystemService(String name, Object service) {
         if (mSystemServices == null) {
             mSystemServices = Maps.newHashMap();