Merge "Maintain the current view (voicemail only or all calls) on updates."
diff --git a/src/com/android/contacts/calllog/CallLogAdapter.java b/src/com/android/contacts/calllog/CallLogAdapter.java
index bf1f857..0dc5e35 100644
--- a/src/com/android/contacts/calllog/CallLogAdapter.java
+++ b/src/com/android/contacts/calllog/CallLogAdapter.java
@@ -54,7 +54,7 @@
         implements Runnable, ViewTreeObserver.OnPreDrawListener, CallLogGroupBuilder.GroupCreator {
     /** Interface used to initiate a refresh of the content. */
     public interface CallFetcher {
-        public void startCallsQuery();
+        public void fetchCalls();
     }
 
     /** The time in millis to delay starting the thread processing requests. */
@@ -183,9 +183,7 @@
      */
     @Override
     protected void onContentChanged() {
-        // When the content changes, always fetch all the calls, in case a new missed call came
-        // in and we were filtering over voicemail only, so that we see the missed call.
-        mCallFetcher.startCallsQuery();
+        mCallFetcher.fetchCalls();
     }
 
     void setLoading(boolean loading) {
diff --git a/src/com/android/contacts/calllog/CallLogFragment.java b/src/com/android/contacts/calllog/CallLogFragment.java
index df52395..6ccf7bb 100644
--- a/src/com/android/contacts/calllog/CallLogFragment.java
+++ b/src/com/android/contacts/calllog/CallLogFragment.java
@@ -220,6 +220,14 @@
     }
 
     @Override
+    public void fetchCalls() {
+        if (mShowingVoicemailOnly) {
+            mCallLogQueryHandler.fetchVoicemailOnly();
+        } else {
+            mCallLogQueryHandler.fetchAllCalls();
+        }
+    }
+
     public void startCallsQuery() {
         mAdapter.setLoading(true);
         mCallLogQueryHandler.fetchAllCalls();
diff --git a/tests/src/com/android/contacts/calllog/CallLogAdapterTest.java b/tests/src/com/android/contacts/calllog/CallLogAdapterTest.java
index 42733c9..25a0ae3 100644
--- a/tests/src/com/android/contacts/calllog/CallLogAdapterTest.java
+++ b/tests/src/com/android/contacts/calllog/CallLogAdapterTest.java
@@ -50,7 +50,7 @@
         // Use a call fetcher that does not do anything.
         CallLogAdapter.CallFetcher fakeCallFetcher = new CallLogAdapter.CallFetcher() {
             @Override
-            public void startCallsQuery() {}
+            public void fetchCalls() {}
         };
 
         mAdapter = new TestCallLogAdapter(getContext(), fakeCallFetcher, TEST_COUNTRY_ISO,