summaryrefslogtreecommitdiffstats
path: root/packages
diff options
context:
space:
mode:
authorChris Wren <cwren@android.com>2014-02-12 13:52:21 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2014-02-12 13:52:22 +0000
commitad8e18d4908de84550dd45b1104afa31779e7f6e (patch)
treee8cb197db4630171122d753be23abf15c06ef218 /packages
parent55f79f509f2aba413e90706b127c243836105a28 (diff)
parent464c7efcbc4aed97ea7fbf211eeb466b7186d37f (diff)
downloadframeworks_base-ad8e18d4908de84550dd45b1104afa31779e7f6e.zip
frameworks_base-ad8e18d4908de84550dd45b1104afa31779e7f6e.tar.gz
frameworks_base-ad8e18d4908de84550dd45b1104afa31779e7f6e.tar.bz2
Merge topic 'hun'
* changes: use private notification for the heads up explicitly handle clicks on the heads up notification
Diffstat (limited to 'packages')
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/BaseStatusBar.java41
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java3
-rw-r--r--packages/SystemUI/src/com/android/systemui/statusbar/policy/HeadsUpNotificationView.java1
3 files changed, 37 insertions, 8 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/BaseStatusBar.java b/packages/SystemUI/src/com/android/systemui/statusbar/BaseStatusBar.java
index a7cfaba..91ae973 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/BaseStatusBar.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/BaseStatusBar.java
@@ -624,6 +624,14 @@ public abstract class BaseStatusBar extends SystemUI implements
}
public boolean inflateViews(NotificationData.Entry entry, ViewGroup parent) {
+ return inflateViews(entry, parent, false);
+ }
+
+ public boolean inflateViewsForHeadsUp(NotificationData.Entry entry, ViewGroup parent) {
+ return inflateViews(entry, parent, true);
+ }
+
+ public boolean inflateViews(NotificationData.Entry entry, ViewGroup parent, boolean isHeadsUp) {
int minHeight =
mContext.getResources().getDimensionPixelSize(R.dimen.notification_min_height);
int maxHeight =
@@ -666,8 +674,8 @@ public abstract class BaseStatusBar extends SystemUI implements
PendingIntent contentIntent = sbn.getNotification().contentIntent;
if (contentIntent != null) {
- final View.OnClickListener listener = new NotificationClicker(contentIntent,
- sbn.getPackageName(), sbn.getTag(), sbn.getId());
+ final View.OnClickListener listener = makeClicker(contentIntent,
+ sbn.getPackageName(), sbn.getTag(), sbn.getId(), isHeadsUp);
content.setOnClickListener(listener);
} else {
content.setOnClickListener(null);
@@ -778,8 +786,9 @@ public abstract class BaseStatusBar extends SystemUI implements
return true;
}
- public NotificationClicker makeClicker(PendingIntent intent, String pkg, String tag, int id) {
- return new NotificationClicker(intent, pkg, tag, id);
+ public NotificationClicker makeClicker(PendingIntent intent, String pkg, String tag, int id,
+ boolean forHun) {
+ return new NotificationClicker(intent, pkg, tag, id, forHun);
}
protected class NotificationClicker implements View.OnClickListener {
@@ -787,12 +796,15 @@ public abstract class BaseStatusBar extends SystemUI implements
private String mPkg;
private String mTag;
private int mId;
+ private boolean mIsHeadsUp;
- public NotificationClicker(PendingIntent intent, String pkg, String tag, int id) {
+ public NotificationClicker(PendingIntent intent, String pkg, String tag, int id,
+ boolean forHun) {
mIntent = intent;
mPkg = pkg;
mTag = tag;
mId = id;
+ mIsHeadsUp = forHun;
}
public void onClick(View v) {
@@ -825,6 +837,9 @@ public abstract class BaseStatusBar extends SystemUI implements
}
try {
+ if (mIsHeadsUp) {
+ mHandler.sendEmptyMessage(MSG_HIDE_HEADS_UP);
+ }
mBarService.onNotificationClick(mPkg, mTag, mId);
} catch (RemoteException ex) {
// system process is dead if we're here.
@@ -835,6 +850,7 @@ public abstract class BaseStatusBar extends SystemUI implements
visibilityChanged(false);
}
}
+
/**
* The LEDs are turned o)ff when the notification panel is shown, even just a little bit.
* This was added last-minute and is inconsistent with the way the rest of the notifications
@@ -1050,7 +1066,7 @@ public abstract class BaseStatusBar extends SystemUI implements
} else {
if (DEBUG) Log.d(TAG, "updating the current heads up:" + notification);
mInterruptingNotificationEntry.notification = notification;
- updateNotificationViews(mInterruptingNotificationEntry, notification);
+ updateHeadsUpViews(mInterruptingNotificationEntry, notification);
}
}
@@ -1108,6 +1124,16 @@ public abstract class BaseStatusBar extends SystemUI implements
private void updateNotificationViews(NotificationData.Entry entry,
StatusBarNotification notification) {
+ updateNotificationViews(entry, notification, false);
+ }
+
+ private void updateHeadsUpViews(NotificationData.Entry entry,
+ StatusBarNotification notification) {
+ updateNotificationViews(entry, notification, true);
+ }
+
+ private void updateNotificationViews(NotificationData.Entry entry,
+ StatusBarNotification notification, boolean isHeadsUp) {
final RemoteViews contentView = notification.getNotification().contentView;
final RemoteViews bigContentView = notification.getNotification().bigContentView;
final RemoteViews publicContentView
@@ -1125,7 +1151,8 @@ public abstract class BaseStatusBar extends SystemUI implements
final PendingIntent contentIntent = notification.getNotification().contentIntent;
if (contentIntent != null) {
final View.OnClickListener listener = makeClicker(contentIntent,
- notification.getPackageName(), notification.getTag(), notification.getId());
+ notification.getPackageName(), notification.getTag(), notification.getId(),
+ isHeadsUp);
entry.content.setOnClickListener(listener);
} else {
entry.content.setOnClickListener(null);
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java
index 44e7dac..e5bdd59 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java
@@ -912,7 +912,8 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode {
if (mUseHeadsUp && shouldInterrupt(notification)) {
if (DEBUG) Log.d(TAG, "launching notification in heads up mode");
Entry interruptionCandidate = new Entry(key, notification, null);
- if (inflateViews(interruptionCandidate, mHeadsUpNotificationView.getHolder())) {
+ ViewGroup holder = mHeadsUpNotificationView.getHolder();
+ if (inflateViewsForHeadsUp(interruptionCandidate, holder)) {
mInterruptingNotificationTime = System.currentTimeMillis();
mInterruptingNotificationEntry = interruptionCandidate;
shadeEntry.setInterruption();
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/policy/HeadsUpNotificationView.java b/packages/SystemUI/src/com/android/systemui/statusbar/policy/HeadsUpNotificationView.java
index 467e19a..491c35e 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/policy/HeadsUpNotificationView.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/policy/HeadsUpNotificationView.java
@@ -73,6 +73,7 @@ public class HeadsUpNotificationView extends FrameLayout implements SwipeHelper.
public boolean setNotification(NotificationData.Entry headsUp) {
mHeadsUp = headsUp;
mHeadsUp.row.setExpanded(false);
+ mHeadsUp.row.setShowingPublic(false);
if (mContentHolder == null) {
// too soon!
return false;