am 87160757: Basic handling of Notifications with fullScreenIntent.

Merge commit '87160757e827e8e158d233de09d70e7128184729' into gingerbread-plus-aosp

* commit '87160757e827e8e158d233de09d70e7128184729':
  Basic handling of Notifications with fullScreenIntent.
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/PhoneStatusBarService.java b/packages/SystemUI/src/com/android/systemui/statusbar/PhoneStatusBarService.java
index 801cb91..5d16e93 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/PhoneStatusBarService.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/PhoneStatusBarService.java
@@ -312,8 +312,45 @@
     public void addNotification(IBinder key, StatusBarNotification notification) {
         addNotificationViews(key, notification);
 
-        // show the ticker
-        tick(notification);
+        boolean immersive = false;
+        try {
+            immersive = ActivityManagerNative.getDefault().isTopActivityImmersive();
+            Slog.d(TAG, "Top activity is " + (immersive?"immersive":"not immersive"));
+        } catch (RemoteException ex) {
+        }
+        if (immersive) {
+            if ((notification.notification.flags & Notification.FLAG_HIGH_PRIORITY) != 0) {
+                Slog.d(TAG, "Presenting high-priority notification in immersive activity");
+                // @@@ special new transient ticker mode
+                /*
+                // 1. Populate mAlertBarView
+
+                ImageView alertIcon = (ImageView) mAlertBarView.findViewById(R.id.alertIcon);
+                TextView alertText = (TextView) mAlertBarView.findViewById(R.id.alertText);
+                alertIcon.setImageDrawable(StatusBarIconView.getIcon(
+                    alertIcon.getContext(), 
+                    iconView.getStatusBarIcon()));
+                alertText.setText(notification.notification.tickerText);
+
+                // 2. Animate mAlertBarView in
+                mAlertBarView.setVisibility(View.VISIBLE);
+
+                // 3. Set alarm to age the notification off (TODO)
+                */
+            }
+        } else if (notification.notification.fullScreenIntent != null) {
+            // not immersive & a full-screen alert should be shown
+            Slog.d(TAG, "Notification has fullScreenIntent and activity is not immersive; sending fullScreenIntent");
+            try {
+                notification.notification.fullScreenIntent.send();
+            } catch (PendingIntent.CanceledException e) {
+            }
+        } else {
+            // usual case: status bar visible & not immersive
+
+            // show the ticker
+            tick(notification);
+        }
 
         // Recalculate the position of the sliding windows and the titles.
         setAreThereNotifications();