Fixed an issue where the phone would be stuck pulseExpanding
During long drags, in combination with face unlock / bypass the phone could get stuck pulseExpanding, especially when the screen was turned off. We now give the pulse expandhelper the touch if it is currently handling the pulse to gracefully reset. Test: expand with a long pulse with bypass, turn off screen, observe not stuck Fixes: 192239213 Change-Id: Ifcb6ce48f9d406843599cc7f8e7edc27f3ad0cd0
This commit is contained in:
@@ -179,7 +179,10 @@ constructor(
|
||||
}
|
||||
|
||||
override fun onTouchEvent(event: MotionEvent): Boolean {
|
||||
if (!canHandleMotionEvent()) {
|
||||
val finishExpanding = (event.action == MotionEvent.ACTION_CANCEL ||
|
||||
event.action == MotionEvent.ACTION_UP) && isExpanding
|
||||
if (!canHandleMotionEvent() && !finishExpanding) {
|
||||
// We allow cancellations/finishing to still go through here to clean up the state
|
||||
return false
|
||||
}
|
||||
|
||||
|
||||
@@ -3821,8 +3821,13 @@ public class NotificationPanelViewController extends PanelViewController {
|
||||
expand(true /* animate */);
|
||||
}
|
||||
initDownStates(event);
|
||||
if (!mIsExpanding && !shouldQuickSettingsIntercept(mDownX, mDownY, 0)
|
||||
&& mPulseExpansionHandler.onTouchEvent(event)) {
|
||||
|
||||
// If pulse is expanding already, let's give it the touch. There are situations
|
||||
// where the panel starts expanding even though we're also pulsing
|
||||
boolean pulseShouldGetTouch = (!mIsExpanding
|
||||
&& !shouldQuickSettingsIntercept(mDownX, mDownY, 0))
|
||||
|| mPulseExpansionHandler.isExpanding();
|
||||
if (pulseShouldGetTouch && mPulseExpansionHandler.onTouchEvent(event)) {
|
||||
// We're expanding all the other ones shouldn't get this anymore
|
||||
return true;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user