am 87160757: Basic handling of Notifications with fullScreenIntent.

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

* commit '87160757e827e8e158d233de09d70e7128184729':
  Basic handling of Notifications with fullScreenIntent.
This commit is contained in:
Daniel Sandler
2010-06-24 19:13:22 -07:00
committed by Android Git Automerger

View File

@@ -312,8 +312,45 @@ public class PhoneStatusBarService extends StatusBarService {
public void addNotification(IBinder key, StatusBarNotification notification) { public void addNotification(IBinder key, StatusBarNotification notification) {
addNotificationViews(key, notification); addNotificationViews(key, notification);
// show the ticker boolean immersive = false;
tick(notification); 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. // Recalculate the position of the sliding windows and the titles.
setAreThereNotifications(); setAreThereNotifications();