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();