diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/ExpandableNotificationRow.java b/packages/SystemUI/src/com/android/systemui/statusbar/ExpandableNotificationRow.java
index fb58ba1..bfc2ae8 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/ExpandableNotificationRow.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/ExpandableNotificationRow.java
@@ -499,6 +499,13 @@
         return mPrivateLayout.getNotificationHeader();
     }
 
+    private NotificationHeaderView getVisibleNotificationHeader() {
+        if (mNotificationHeader != null) {
+            return mNotificationHeader;
+        }
+        return getShowingLayout().getVisibleNotificationHeader();
+    }
+
     public void setOnExpandClickListener(OnExpandClickListener onExpandClickListener) {
         mOnExpandClickListener = onExpandClickListener;
     }
@@ -1171,7 +1178,7 @@
     protected boolean disallowSingleClick(MotionEvent event) {
         float x = event.getX();
         float y = event.getY();
-        NotificationHeaderView header = getNotificationHeader();
+        NotificationHeaderView header = getVisibleNotificationHeader();
         if (header != null) {
             return header.isInTouchRect(x, y);
         }
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/NotificationContentView.java b/packages/SystemUI/src/com/android/systemui/statusbar/NotificationContentView.java
index 839bc45..647f0bf 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/NotificationContentView.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/NotificationContentView.java
@@ -475,6 +475,19 @@
         }
     }
 
+    private NotificationViewWrapper getCurrentVisibleWrapper() {
+        switch (mVisibleType) {
+            case VISIBLE_TYPE_EXPANDED:
+                return mExpandedWrapper;
+            case VISIBLE_TYPE_HEADSUP:
+                return mHeadsUpWrapper;
+            case VISIBLE_TYPE_CONTRACTED:
+                return mContractedWrapper;
+            default:
+                return null;
+        }
+    }
+
     /**
      * @return one of the static enum types in this view, calculated form the current state
      */
@@ -684,6 +697,11 @@
         return header;
     }
 
+    public NotificationHeaderView getVisibleNotificationHeader() {
+        NotificationViewWrapper wrapper = getCurrentVisibleWrapper();
+        return wrapper == null ? null : wrapper.getNotificationHeader();
+    }
+
     public void setContainingNotification(ExpandableNotificationRow containingNotification) {
         mContainingNotification = containingNotification;
     }
