Merge "Call log auto refresh."
diff --git a/src/com/android/contacts/calllog/CallLogFragment.java b/src/com/android/contacts/calllog/CallLogFragment.java
index c06b474..58dcc8b 100644
--- a/src/com/android/contacts/calllog/CallLogFragment.java
+++ b/src/com/android/contacts/calllog/CallLogFragment.java
@@ -857,7 +857,6 @@
         mVoiceMailNumber = ((TelephonyManager) getActivity().getSystemService(
                 Context.TELEPHONY_SERVICE)).getVoiceMailNumber();
         mCallLogQueryHandler = new CallLogQueryHandler(getActivity().getContentResolver(), this);
-
         setHasOptionsMenu(true);
     }
 
@@ -953,12 +952,22 @@
     @Override
     public void onPause() {
         super.onPause();
-
         // Kill the requests thread
         mAdapter.stopRequestProcessing();
     }
 
     @Override
+    public void onStop() {
+        super.onStop();
+        resetNewCallsFlag();
+        // Clear notifications only when window gains focus.  This activity won't
+        // immediately receive focus if the keyguard screen is above it.
+        if (getActivity().hasWindowFocus()) {
+            removeMissedCallNotifications();
+        }
+    }
+
+    @Override
     public void onDestroy() {
         super.onDestroy();
         mAdapter.stopRequestProcessing();
@@ -1147,7 +1156,6 @@
         // again once being shown.
         mAdapter.invalidateCache();
         startCallsQuery();
-        resetNewCallsFlag();
         startVoicemailStatusQuery();
         mAdapter.mPreDrawListener = null; // Let it restart the thread after next draw
         // Clear notifications only when window gains focus.  This activity won't
diff --git a/src/com/android/contacts/calllog/ExtendedCursor.java b/src/com/android/contacts/calllog/ExtendedCursor.java
index b17c018..499a350 100644
--- a/src/com/android/contacts/calllog/ExtendedCursor.java
+++ b/src/com/android/contacts/calllog/ExtendedCursor.java
@@ -19,7 +19,9 @@
 import com.android.common.io.MoreCloseables;
 
 import android.database.AbstractCursor;
+import android.database.ContentObserver;
 import android.database.Cursor;
+import android.database.DataSetObserver;
 
 /**
  * Wraps a cursor to add an additional column with the same value for all rows.
@@ -129,4 +131,24 @@
         MoreCloseables.closeQuietly(mCursor);
         super.close();
     }
-}
\ No newline at end of file
+
+    @Override
+    public void registerContentObserver(ContentObserver observer) {
+        mCursor.registerContentObserver(observer);
+    }
+
+    @Override
+    public void unregisterContentObserver(ContentObserver observer) {
+        mCursor.unregisterContentObserver(observer);
+    }
+
+    @Override
+    public void registerDataSetObserver(DataSetObserver observer) {
+        mCursor.registerDataSetObserver(observer);
+    }
+
+    @Override
+    public void unregisterDataSetObserver(DataSetObserver observer) {
+        mCursor.unregisterDataSetObserver(observer);
+    }
+}