don't clear notification effects in response to peeks
When the heads up appears it generates a visibility event for the panel.
This always clears the notification effects (buzz, beep, blink).
If we suppress that for heads up notifications, we never get another chance.
So we add a new call when we open the shade from the heads up to catch this case.
Bug: 20947591
Change-Id: I233e5346617ca2fce7851bd85154c838849df8f7
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/HeadsUpTouchHelper.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/HeadsUpTouchHelper.java
index 10c35af..df8c7fa 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/HeadsUpTouchHelper.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/HeadsUpTouchHelper.java
@@ -114,6 +114,7 @@
/ mPanel.getMaxPanelHeight());
mPanel.startExpandMotion(x, y, true /* startTracking */, expandedHeight
+ mNotificationsTopPadding);
+ mPanel.clearNotificattonEffects();
mHeadsUpManager.unpinAll();
return true;
}
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelView.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelView.java
index c30cb34..cf0d670 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelView.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelView.java
@@ -2340,4 +2340,8 @@
public void setPanelScrimMinFraction(float minFraction) {
mBar.panelScrimMinFractionChanged(minFraction);
}
+
+ public void clearNotificattonEffects() {
+ mStatusBar.clearNotificationEffects();
+ }
}
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PanelBar.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PanelBar.java
index cf553ec..e1a400d 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PanelBar.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PanelBar.java
@@ -28,6 +28,8 @@
public abstract class PanelBar extends FrameLayout {
public static final boolean DEBUG = false;
public static final String TAG = PanelBar.class.getSimpleName();
+ private static final boolean SPEW = false;
+
public static final void LOG(String fmt, Object... args) {
if (!DEBUG) return;
Log.v(TAG, String.format(fmt, args));
@@ -167,7 +169,7 @@
public void panelExpansionChanged(PanelView panel, float frac, boolean expanded) {
boolean fullyClosed = true;
PanelView fullyOpenedPanel = null;
- if (DEBUG) LOG("panelExpansionChanged: start state=%d panel=%s", mState, panel.getName());
+ if (SPEW) LOG("panelExpansionChanged: start state=%d panel=%s", mState, panel.getName());
mPanelExpandedFractionSum = 0f;
for (PanelView pv : mPanels) {
pv.setVisibility(expanded ? View.VISIBLE : View.INVISIBLE);
@@ -180,7 +182,7 @@
fullyClosed = false;
final float thisFrac = pv.getExpandedFraction();
mPanelExpandedFractionSum += thisFrac;
- if (DEBUG) LOG("panelExpansionChanged: -> %s: f=%.1f", pv.getName(), thisFrac);
+ if (SPEW) LOG("panelExpansionChanged: -> %s: f=%.1f", pv.getName(), thisFrac);
if (panel == pv) {
if (thisFrac == 1f) fullyOpenedPanel = panel;
}
@@ -195,7 +197,7 @@
onAllPanelsCollapsed();
}
- if (DEBUG) LOG("panelExpansionChanged: end state=%d [%s%s ]", mState,
+ if (SPEW) LOG("panelExpansionChanged: end state=%d [%s%s ]", mState,
(fullyOpenedPanel!=null)?" fullyOpened":"", fullyClosed?" fullyClosed":"");
}
@@ -241,7 +243,7 @@
}
public void onExpandingFinished() {
-
+ if (DEBUG) LOG("onExpandingFinished");
}
public void onClosingFinished() {
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 9e6dd7e..7f87485 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java
@@ -3290,6 +3290,11 @@
return mState;
}
+ @Override
+ protected boolean isPanelFullyCollapsed() {
+ return mNotificationPanel.isFullyCollapsed();
+ }
+
public void showKeyguard() {
if (mLaunchTransitionFadingAway) {
mNotificationPanel.animate().cancel();