Merge "Give Wi-Fi Display settings split actionbar."
diff --git a/src/com/android/settings/LocationSettings.java b/src/com/android/settings/LocationSettings.java
index cfbbe26..0e50188 100644
--- a/src/com/android/settings/LocationSettings.java
+++ b/src/com/android/settings/LocationSettings.java
@@ -76,6 +76,7 @@
         if (mSettingsObserver != null) {
             mContentQueryMap.deleteObserver(mSettingsObserver);
         }
+        mContentQueryMap.close();
     }
 
     private PreferenceScreen createPreferenceHierarchy() {
diff --git a/src/com/android/settings/NotificationStation.java b/src/com/android/settings/NotificationStation.java
index 62f1c30..ea0c8b6 100644
--- a/src/com/android/settings/NotificationStation.java
+++ b/src/com/android/settings/NotificationStation.java
@@ -18,42 +18,32 @@
 
 import android.app.Activity;
 import android.app.ActivityManager;
+import android.app.INotificationListener;
 import android.app.INotificationManager;
 import android.app.Notification;
-import android.app.NotificationManager;
-import android.app.TaskStackBuilder;
 import android.content.BroadcastReceiver;
 import android.content.Context;
 import android.content.Intent;
 import android.content.IntentFilter;
 import android.content.pm.PackageManager;
 import android.content.res.Resources;
-import android.database.Cursor;
-import android.database.sqlite.SQLiteDatabase;
-import android.database.sqlite.SQLiteException;
 import android.graphics.drawable.Drawable;
 import android.net.Uri;
 import android.os.Bundle;
 import android.os.RemoteException;
 import android.os.ServiceManager;
 import android.os.UserHandle;
-import android.provider.*;
 import android.util.Log;
-import android.util.Slog;
 import android.view.LayoutInflater;
-import android.view.MotionEvent;
 import android.view.View;
 import android.view.View.OnClickListener;
-import android.view.View.OnTouchListener;
 import android.view.ViewGroup;
 import android.widget.ArrayAdapter;
 import android.widget.DateTimeView;
 import android.widget.ImageView;
 import android.widget.ListView;
-import android.widget.RadioButton;
 import android.widget.TextView;
 import com.android.internal.statusbar.StatusBarNotification;
-import com.android.settings.DreamBackend.DreamInfo;
 
 import java.util.ArrayList;
 import java.util.List;
@@ -65,6 +55,18 @@
 
     private final PackageReceiver mPackageReceiver = new PackageReceiver();
     private INotificationManager mNoMan;
+    private INotificationListener.Stub mListener = new INotificationListener.Stub() {
+        @Override
+        public void onNotificationPosted(StatusBarNotification notification) throws RemoteException {
+            Log.v(TAG, "onNotificationPosted: " + notification);
+            getListView().post(new Runnable() { public void run() { refreshList(); }});
+        }
+
+        @Override
+        public void onNotificationRemoved(StatusBarNotification notification) throws RemoteException {
+            // no-op; we're just showing new notifications
+        }
+    };
 
     private NotificationHistoryAdapter mAdapter;
     private Context mContext;
@@ -76,6 +78,11 @@
         mContext = activity;
         mNoMan = INotificationManager.Stub.asInterface(
                 ServiceManager.getService(Context.NOTIFICATION_SERVICE));
+        try {
+            mNoMan.registerListener(mListener, UserHandle.USER_ALL);
+        } catch (RemoteException e) {
+            // well, that didn't work out
+        }
     }
 
     @Override
@@ -116,7 +123,7 @@
     public void onResume() {
         logd("onResume()");
         super.onResume();
-        refreshFromBackend();
+        refreshList();
 
         // listen for package changes
         IntentFilter filter = new IntentFilter();
@@ -128,7 +135,7 @@
         mContext.registerReceiver(mPackageReceiver , filter);
     }
 
-    private void refreshFromBackend() {
+    private void refreshList() {
         List<HistoricalNotificationInfo> infos = loadNotifications();
         if (infos != null) {
             logd("adding %d infos", infos.size());
@@ -315,7 +322,7 @@
         @Override
         public void onReceive(Context context, Intent intent) {
             logd("PackageReceiver.onReceive");
-            //refreshFromBackend();
+            //refreshList();
         }
     }
 }