create a synthetic 2U heads up notification
combine the 1U with the action buttons to make a mid-sized notification bounded to 128dp by the system ui used for the heads up Bug: 13208692 Change-Id: I382bb0bd1ce73f35295f05ca2606195986cff1d3
This commit is contained in:
@ -79,6 +79,9 @@
|
||||
<!-- Height of a large notification in the status bar -->
|
||||
<dimen name="notification_max_height">256dp</dimen>
|
||||
|
||||
<!-- Height of a medium notification in the status bar -->
|
||||
<dimen name="notification_mid_height">128dp</dimen>
|
||||
|
||||
<!-- Height of a small notification in the status bar plus glow, padding, etc -->
|
||||
<dimen name="notification_row_min_height">70dp</dimen>
|
||||
|
||||
|
@ -685,6 +685,13 @@ public abstract class BaseStatusBar extends SystemUI implements
|
||||
StatusBarNotification sbn = entry.notification;
|
||||
RemoteViews contentView = sbn.getNotification().contentView;
|
||||
RemoteViews bigContentView = sbn.getNotification().bigContentView;
|
||||
|
||||
if (isHeadsUp) {
|
||||
maxHeight =
|
||||
mContext.getResources().getDimensionPixelSize(R.dimen.notification_mid_height);
|
||||
bigContentView = sbn.getNotification().headsUpContentView;
|
||||
}
|
||||
|
||||
if (contentView == null) {
|
||||
return false;
|
||||
}
|
||||
@ -1040,6 +1047,8 @@ public abstract class BaseStatusBar extends SystemUI implements
|
||||
final RemoteViews contentView = notification.getNotification().contentView;
|
||||
final RemoteViews oldBigContentView = oldNotification.getNotification().bigContentView;
|
||||
final RemoteViews bigContentView = notification.getNotification().bigContentView;
|
||||
final RemoteViews oldHeadsUpContentView = oldNotification.getNotification().headsUpContentView;
|
||||
final RemoteViews headsUpContentView = notification.getNotification().headsUpContentView;
|
||||
final Notification oldPublicNotification = oldNotification.getNotification().publicVersion;
|
||||
final RemoteViews oldPublicContentView = oldPublicNotification != null
|
||||
? oldPublicNotification.contentView : null;
|
||||
@ -1079,6 +1088,13 @@ public abstract class BaseStatusBar extends SystemUI implements
|
||||
&& oldBigContentView.getPackage() != null
|
||||
&& oldBigContentView.getPackage().equals(bigContentView.getPackage())
|
||||
&& oldBigContentView.getLayoutId() == bigContentView.getLayoutId());
|
||||
boolean headsUpContentsUnchanged =
|
||||
(oldHeadsUpContentView == null && headsUpContentView == null)
|
||||
|| ((oldHeadsUpContentView != null && headsUpContentView != null)
|
||||
&& headsUpContentView.getPackage() != null
|
||||
&& oldHeadsUpContentView.getPackage() != null
|
||||
&& oldHeadsUpContentView.getPackage().equals(headsUpContentView.getPackage())
|
||||
&& oldHeadsUpContentView.getLayoutId() == headsUpContentView.getLayoutId());
|
||||
boolean publicUnchanged =
|
||||
(oldPublicContentView == null && publicContentView == null)
|
||||
|| ((oldPublicContentView != null && publicContentView != null)
|
||||
@ -1097,7 +1113,7 @@ public abstract class BaseStatusBar extends SystemUI implements
|
||||
&& !TextUtils.equals(notification.getNotification().tickerText,
|
||||
oldEntry.notification.getNotification().tickerText);
|
||||
boolean isTopAnyway = isTopNotification(rowParent, oldEntry);
|
||||
if (contentsUnchanged && bigContentsUnchanged && publicUnchanged
|
||||
if (contentsUnchanged && bigContentsUnchanged && headsUpContentsUnchanged && publicUnchanged
|
||||
&& (orderUnchanged || isTopAnyway)) {
|
||||
if (DEBUG) Log.d(TAG, "reusing notification for key: " + key);
|
||||
oldEntry.notification = notification;
|
||||
@ -1181,7 +1197,9 @@ public abstract class BaseStatusBar extends SystemUI implements
|
||||
private void updateNotificationViews(NotificationData.Entry entry,
|
||||
StatusBarNotification notification, boolean isHeadsUp) {
|
||||
final RemoteViews contentView = notification.getNotification().contentView;
|
||||
final RemoteViews bigContentView = notification.getNotification().bigContentView;
|
||||
final RemoteViews bigContentView = isHeadsUp
|
||||
? notification.getNotification().headsUpContentView
|
||||
: notification.getNotification().bigContentView;
|
||||
final Notification publicVersion = notification.getNotification().publicVersion;
|
||||
final RemoteViews publicContentView = publicVersion != null ? publicVersion.contentView
|
||||
: null;
|
||||
|
Reference in New Issue
Block a user