am bc4bc709: am 87160757: Basic handling of Notifications with fullScreenIntent.

Merge commit 'bc4bc709a819801a23aa604896ae2457ae710bec'

* commit 'bc4bc709a819801a23aa604896ae2457ae710bec':
  Basic handling of Notifications with fullScreenIntent.
This commit is contained in:
Daniel Sandler
2010-06-25 08:29:56 -07:00
committed by Android Git Automerger

View File

@ -313,8 +313,45 @@ public class PhoneStatusBarService extends StatusBarService {
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();