Revert "Fixing refresh bug with ContactsPreferences"

This reverts commit cfaee482a616fb8a50fc16cad62cefab5efd72bd.

Change-Id: I93f6fc9a9dbd5546495a1187011234a569582077
diff --git a/src/com/android/contacts/common/preference/ContactsPreferences.java b/src/com/android/contacts/common/preference/ContactsPreferences.java
index 1d7b120..befcbe4 100644
--- a/src/com/android/contacts/common/preference/ContactsPreferences.java
+++ b/src/com/android/contacts/common/preference/ContactsPreferences.java
@@ -16,11 +16,14 @@
 
 package com.android.contacts.common.preference;
 
+import android.content.ContentResolver;
 import android.content.Context;
 import android.content.SharedPreferences;
 import android.content.SharedPreferences.Editor;
 import android.content.SharedPreferences.OnSharedPreferenceChangeListener;
+import android.database.ContentObserver;
 import android.os.Handler;
+import android.provider.ContactsContract;
 import android.provider.Settings;
 import android.provider.Settings.SettingNotFoundException;
 import android.text.TextUtils;
@@ -58,17 +61,11 @@
     public static final int SORT_ORDER_ALTERNATIVE = 2;
 
     public static final String PREF_DISPLAY_ONLY_PHONES = "only_phones";
-
     public static final boolean PREF_DISPLAY_ONLY_PHONES_DEFAULT = false;
 
-    /**
-     * Value to use when a preference is unassigned and needs to be read from the shared preferences
-     */
-    private static final int PREFERENCE_UNASSIGNED = -1;
-
     private final Context mContext;
-    private int mSortOrder = PREFERENCE_UNASSIGNED;
-    private int mDisplayOrder = PREFERENCE_UNASSIGNED;
+    private int mSortOrder = -1;
+    private int mDisplayOrder = -1;
     private String mDefaultAccount = null;
     private ChangeListener mListener = null;
     private Handler mHandler;
@@ -104,7 +101,7 @@
         if (!isSortOrderUserChangeable()) {
             return getDefaultSortOrder();
         }
-        if (mSortOrder == PREFERENCE_UNASSIGNED) {
+        if (mSortOrder == -1) {
             mSortOrder = mPreferences.getInt(SORT_ORDER_KEY, getDefaultSortOrder());
         }
         return mSortOrder;
@@ -133,7 +130,7 @@
         if (!isDisplayOrderUserChangeable()) {
             return getDefaultDisplayOrder();
         }
-        if (mDisplayOrder == PREFERENCE_UNASSIGNED) {
+        if (mDisplayOrder == -1) {
             mDisplayOrder = mPreferences.getInt(DISPLAY_ORDER_KEY, getDefaultDisplayOrder());
         }
         return mDisplayOrder;
@@ -155,8 +152,7 @@
             return mDefaultAccount;
         }
         if (TextUtils.isEmpty(mDefaultAccount)) {
-            final String accountString = mPreferences
-                    .getString(mDefaultAccountKey, mDefaultAccount);
+            final String accountString = mPreferences.getString(mDefaultAccountKey, mDefaultAccount);
             if (!TextUtils.isEmpty(accountString)) {
                 final AccountWithDataSet accountWithDataSet = AccountWithDataSet.unstringify(
                         accountString);
@@ -185,8 +181,8 @@
 
         // Reset preferences to "unknown" because they may have changed while the
         // listener was unregistered.
-        mDisplayOrder = PREFERENCE_UNASSIGNED;
-        mSortOrder = PREFERENCE_UNASSIGNED;
+        mDisplayOrder = -1;
+        mSortOrder = -1;
         mDefaultAccount = null;
 
         mPreferences.registerOnSharedPreferenceChangeListener(this);
@@ -207,31 +203,18 @@
         mHandler.post(new Runnable() {
             @Override
             public void run() {
-                refreshValue(key);
+                if (DISPLAY_ORDER_KEY.equals(key)) {
+                    mDisplayOrder = getDisplayOrder();
+                } else if (SORT_ORDER_KEY.equals(key)) {
+                    mSortOrder = getSortOrder();
+                } else if (mDefaultAccountKey.equals(key)) {
+                    mDefaultAccount = getDefaultAccount();
+                }
+                if (mListener != null) mListener.onChange();
             }
         });
     }
 
-    /**
-     * Forces the value for the given key to be looked up from shared preferences and notifies
-     * the registered {@link ChangeListener}
-     *
-     * @param key the {@link SharedPreferences} key to look up
-     */
-    public void refreshValue(String key) {
-        if (DISPLAY_ORDER_KEY.equals(key)) {
-            mDisplayOrder = PREFERENCE_UNASSIGNED;
-            mDisplayOrder = getDisplayOrder();
-        } else if (SORT_ORDER_KEY.equals(key)) {
-            mSortOrder = PREFERENCE_UNASSIGNED;
-            mSortOrder = getSortOrder();
-        } else if (mDefaultAccountKey.equals(key)) {
-            mDefaultAccount = null;
-            mDefaultAccount = getDefaultAccount();
-        }
-        if (mListener != null) mListener.onChange();
-    }
-
     public interface ChangeListener {
         void onChange();
     }
diff --git a/tests/src/com/android/contacts/common/model/account/AccountTypeTest.java b/tests/src/com/android/contacts/common/model/account/AccountTypeTest.java
index 6a40611..8dc7df7 100644
--- a/tests/src/com/android/contacts/common/model/account/AccountTypeTest.java
+++ b/tests/src/com/android/contacts/common/model/account/AccountTypeTest.java
@@ -20,7 +20,7 @@
 import android.test.InstrumentationTestCase;
 import android.test.suitebuilder.annotation.SmallTest;
 
-import com.android.contacts.common.R;
+import com.android.contacts.common.unittest.R;
 
 /**
  * Test case for {@link AccountType}.
diff --git a/tests/src/com/android/contacts/common/model/account/ExternalAccountTypeTest.java b/tests/src/com/android/contacts/common/model/account/ExternalAccountTypeTest.java
index dc3da45..932dddc 100644
--- a/tests/src/com/android/contacts/common/model/account/ExternalAccountTypeTest.java
+++ b/tests/src/com/android/contacts/common/model/account/ExternalAccountTypeTest.java
@@ -33,7 +33,7 @@
 import android.util.Log;
 
 import com.android.contacts.common.model.dataitem.DataKind;
-import com.android.contacts.common.R;
+import com.android.contacts.common.unittest.R;
 import com.google.common.base.Objects;
 
 import java.util.List;
diff --git a/tests/src/com/android/contacts/common/preference/ContactsPreferencesTest.java b/tests/src/com/android/contacts/common/preference/ContactsPreferencesTest.java
deleted file mode 100644
index 6ed5937..0000000
--- a/tests/src/com/android/contacts/common/preference/ContactsPreferencesTest.java
+++ /dev/null
@@ -1,147 +0,0 @@
-/*
- * Copyright (C) 2015 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.
- */
-
-package com.android.contacts.common.preference;
-
-import android.content.Context;
-import android.content.SharedPreferences;
-import android.content.res.Resources;
-import android.test.AndroidTestCase;
-import android.test.suitebuilder.annotation.MediumTest;
-
-import com.android.contacts.common.model.account.AccountWithDataSet;
-
-import junit.framework.Assert;
-
-import org.mockito.Mock;
-import org.mockito.Mockito;
-import org.mockito.MockitoAnnotations;
-
-@MediumTest
-public class ContactsPreferencesTest extends AndroidTestCase {
-
-    private static final String ACCOUNT_KEY = "ACCOUNT_KEY";
-
-    @Mock private Context mContext;
-    @Mock private Resources mResources;
-    @Mock private SharedPreferences mSharedPreferences;
-
-    private ContactsPreferences mContactsPreferences;
-
-    @Override
-    public void setUp() throws Exception {
-        super.setUp();
-        MockitoAnnotations.initMocks(this);
-
-        Mockito.when(mContext.getResources()).thenReturn(mResources);
-        Mockito.when(mResources.getString(Mockito.anyInt()))
-                .thenReturn(ACCOUNT_KEY); // contact_editor_default_account_key
-
-        Mockito.when(mContext.getSharedPreferences(Mockito.anyString(), Mockito.anyInt()))
-                .thenReturn(mSharedPreferences);
-        Mockito.when(mSharedPreferences.contains(ContactsPreferences.SORT_ORDER_KEY))
-                .thenReturn(true);
-        Mockito.when(mSharedPreferences.contains(ContactsPreferences.DISPLAY_ORDER_KEY))
-                .thenReturn(true);
-
-        mContactsPreferences = new ContactsPreferences(mContext);
-    }
-
-    public void testGetSortOrderDefault() {
-        Mockito.when(mResources.getBoolean(Mockito.anyInt())).thenReturn(
-                false, // R.bool.config_sort_order_user_changeable
-                true // R.bool.config_default_sort_order_primary
-        );
-        Assert.assertEquals(ContactsPreferences.SORT_ORDER_PRIMARY,
-                mContactsPreferences.getSortOrder());
-    }
-
-    public void testGetSortOrder() {
-        Mockito.when(mResources.getBoolean(Mockito.anyInt())).thenReturn(
-                true // R.bool.config_sort_order_user_changeable
-        );
-        Mockito.when(mSharedPreferences.getInt(Mockito.eq(ContactsPreferences.SORT_ORDER_KEY),
-                Mockito.anyInt())).thenReturn(ContactsPreferences.SORT_ORDER_PRIMARY);
-        Assert.assertEquals(ContactsPreferences.SORT_ORDER_PRIMARY,
-                mContactsPreferences.getSortOrder());
-    }
-
-    public void testGetDisplayOrderDefault() {
-        Mockito.when(mResources.getBoolean(Mockito.anyInt())).thenReturn(
-                false, // R.bool.config_display_order_user_changeable
-                true // R.bool.config_default_display_order_primary
-        );
-        Assert.assertEquals(ContactsPreferences.DISPLAY_ORDER_PRIMARY,
-                mContactsPreferences.getDisplayOrder());
-    }
-
-    public void testGetDisplayOrder() {
-        Mockito.when(mResources.getBoolean(Mockito.anyInt())).thenReturn(
-                true // R.bool.config_display_order_user_changeable
-        );
-        Mockito.when(mSharedPreferences.getInt(Mockito.eq(ContactsPreferences.DISPLAY_ORDER_KEY),
-                Mockito.anyInt())).thenReturn(ContactsPreferences.DISPLAY_ORDER_PRIMARY);
-        Assert.assertEquals(ContactsPreferences.DISPLAY_ORDER_PRIMARY,
-                mContactsPreferences.getDisplayOrder());
-    }
-
-    public void testRefreshSortOrder() throws InterruptedException {
-        Mockito.when(mResources.getBoolean(Mockito.anyInt())).thenReturn(
-                true // R.bool.config_sort_order_user_changeable
-        );
-        Mockito.when(mSharedPreferences.getInt(Mockito.eq(ContactsPreferences.SORT_ORDER_KEY),
-                Mockito.anyInt())).thenReturn(ContactsPreferences.SORT_ORDER_PRIMARY,
-                ContactsPreferences.SORT_ORDER_ALTERNATIVE);
-
-        Assert.assertEquals(ContactsPreferences.SORT_ORDER_PRIMARY,
-                mContactsPreferences.getSortOrder());
-        mContactsPreferences.refreshValue(ContactsPreferences.SORT_ORDER_KEY);
-
-        Assert.assertEquals(ContactsPreferences.SORT_ORDER_ALTERNATIVE,
-                mContactsPreferences.getSortOrder());
-    }
-
-    public void testRefreshDisplayOrder() throws InterruptedException {
-        Mockito.when(mResources.getBoolean(Mockito.anyInt())).thenReturn(
-                true // R.bool.config_display_order_user_changeable
-        );
-        Mockito.when(mSharedPreferences.getInt(Mockito.eq(ContactsPreferences.DISPLAY_ORDER_KEY),
-                Mockito.anyInt())).thenReturn(ContactsPreferences.DISPLAY_ORDER_PRIMARY,
-                ContactsPreferences.DISPLAY_ORDER_ALTERNATIVE);
-
-        Assert.assertEquals(ContactsPreferences.DISPLAY_ORDER_PRIMARY,
-                mContactsPreferences.getDisplayOrder());
-        mContactsPreferences.refreshValue(ContactsPreferences.DISPLAY_ORDER_KEY);
-
-        Assert.assertEquals(ContactsPreferences.DISPLAY_ORDER_ALTERNATIVE,
-                mContactsPreferences.getDisplayOrder());
-    }
-
-    public void testRefreshDefaultAccount() throws InterruptedException {
-        Mockito.when(mResources.getBoolean(Mockito.anyInt())).thenReturn(
-                true // R.bool.config_default_account_user_changeable
-        );
-
-        Mockito.when(mSharedPreferences.getString(Mockito.eq(ACCOUNT_KEY), Mockito.anyString()))
-                .thenReturn(new AccountWithDataSet("name1", "type1", "dataset1").stringify(),
-                        new AccountWithDataSet("name2", "type2", "dataset2").stringify());
-
-        Assert.assertEquals("name1", mContactsPreferences.getDefaultAccount());
-        mContactsPreferences.refreshValue(ACCOUNT_KEY);
-
-        Assert.assertEquals("name2", mContactsPreferences.getDefaultAccount());
-    }
-}