Cache whether voicemail tab should be shown.

Bug: 21530107
Change-Id: Ib3023e7100157d6e061542075f0930a6b622e516
diff --git a/src/com/android/dialer/list/ListsFragment.java b/src/com/android/dialer/list/ListsFragment.java
index 49226d6..0e3df52 100644
--- a/src/com/android/dialer/list/ListsFragment.java
+++ b/src/com/android/dialer/list/ListsFragment.java
@@ -9,6 +9,7 @@
 import android.database.Cursor;
 import android.os.Bundle;
 import android.os.Trace;
+import android.preference.PreferenceManager;
 import android.provider.CallLog.Calls;
 import android.support.v13.app.FragmentPagerAdapter;
 import android.support.v4.view.ViewPager;
@@ -62,7 +63,7 @@
     // Oldest recents entry to display is 2 weeks old.
     private static final long OLDEST_RECENTS_DATE = 1000L * 60 * 60 * 24 * 14;
 
-    private static final String KEY_HAS_ACTIVE_VOICEMAIL_PROVIDER =
+    private static final String PREF_KEY_HAS_ACTIVE_VOICEMAIL_PROVIDER =
             "has_active_voicemail_provider";
 
     public interface HostInterface {
@@ -81,7 +82,9 @@
     private AllContactsFragment mAllContactsFragment;
     private CallLogFragment mVoicemailFragment;
 
+    private SharedPreferences mPrefs;
     private boolean mHasActiveVoicemailProvider;
+
     private VoicemailStatusHelper mVoicemailStatusHelper;
     private ArrayList<OnPageChangeListener> mOnPageChangeListeners =
             new ArrayList<OnPageChangeListener>();
@@ -165,10 +168,10 @@
 
         mVoicemailStatusHelper = new VoicemailStatusHelperImpl();
 
-        if (savedInstanceState != null) {
-            mHasActiveVoicemailProvider = savedInstanceState.getBoolean(
-                    KEY_HAS_ACTIVE_VOICEMAIL_PROVIDER, false);
-        }
+        mPrefs = PreferenceManager.getDefaultSharedPreferences(getActivity());
+        mHasActiveVoicemailProvider = mPrefs.getBoolean(
+                PREF_KEY_HAS_ACTIVE_VOICEMAIL_PROVIDER, false);
+
         Trace.endSection();
     }
 
@@ -235,12 +238,6 @@
     }
 
     @Override
-    public void onSaveInstanceState(Bundle outState) {
-        super.onSaveInstanceState(outState);
-        outState.putBoolean(KEY_HAS_ACTIVE_VOICEMAIL_PROVIDER, mHasActiveVoicemailProvider);
-    }
-
-    @Override
     public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
         mTabIndex = getRtlPosition(position);
 
@@ -283,6 +280,10 @@
             mHasActiveVoicemailProvider = hasActiveVoicemailProvider;
             mViewPagerAdapter.notifyDataSetChanged();
             mViewPagerTabs.setViewPager(mViewPager);
+
+            mPrefs.edit()
+                    .putBoolean(PREF_KEY_HAS_ACTIVE_VOICEMAIL_PROVIDER, hasActiveVoicemailProvider)
+                    .commit();
         }
     }