Merge "Don't always auto-collapse an empty notification shade."
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 ed9b542..a92703c 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java
@@ -968,7 +968,8 @@
mHandler.sendEmptyMessage(MSG_HIDE_HEADS_UP);
}
- if (CLOSE_PANEL_WHEN_EMPTIED && mNotificationData.size() == 0) {
+ if (CLOSE_PANEL_WHEN_EMPTIED && mNotificationData.size() == 0
+ && !mStatusBarWindow.isPointerDown()) {
animateCollapsePanels();
}
}
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarWindowView.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarWindowView.java
index a600aae..800bc02 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarWindowView.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/StatusBarWindowView.java
@@ -42,6 +42,7 @@
private NotificationRowLayout latestItems;
private NotificationPanelView mNotificationPanel;
private ScrollView mScrollView;
+ private boolean mPointerDown;
PhoneStatusBar mService;
@@ -86,6 +87,7 @@
@Override
public boolean onInterceptTouchEvent(MotionEvent ev) {
+ registerPointer(ev);
boolean intercept = false;
if (mNotificationPanel.isFullyExpanded() && mScrollView.getVisibility() == View.VISIBLE) {
intercept = mExpandHelper.onInterceptTouchEvent(ev);
@@ -131,5 +133,21 @@
mExpandHelper.cancel();
}
}
+
+ private void registerPointer(MotionEvent event) {
+ switch (event.getAction()) {
+ case MotionEvent.ACTION_DOWN:
+ mPointerDown = true;
+ break;
+ case MotionEvent.ACTION_CANCEL:
+ case MotionEvent.ACTION_UP:
+ mPointerDown = false;
+ break;
+ }
+ }
+
+ public boolean isPointerDown() {
+ return mPointerDown;
+ }
}