Skip to content
Commit 00bb4c6c authored by Lyn Han's avatar Lyn Han
Browse files

Fix shade flicker & touch absorption

Intercept MOVE events for closed shade (with no HUNs)
and call startExpandMotion when appropriate.
----------------------------------------------------
Fixes: 188249360 (shade flicker to full height on swipe open)

This bug happened because ag/13733252 introduced
a new behavior (reverted here) where
PVC intercepts only if PanelView is hidden. This means:
=> PanelView initially shows onIntercept(down),
so we do NOT intercept and onTouch(down) does NOT run.
=> PanelView is then hidden onIntercept(move),
so we intercept and onTouch(move) runs.

When onTouch(down) does NOT run and onTouch(move) runs,
we are MISSING the following:
=> onTouch(down): mGestureWaitForTouchSlop = true for closed shade
=> onTouch(move) calls startExpandMotion
=> startExpandMotion: mInitialOffsetOnTouch = 0
=> onTouch(move): newHeight = mInitialOffsetOnTouch = 0

Instead, newHeight = full shade height from previous shade open.
This causes the shade to jump to full height on swipe start.
----------------------------------------------------
Bug: 178277858 (touch absorption / shade not opening on swipe)

This bug happened because onIntercept(move) did not intercept and call
startExpandMotion when we swipe open from closed shade, resulting in
the shade staying closed while child views silently eat the event.
------------------------------------------------
Test: open/close shade with varying drag speeds and flings
  => shade consistently opens with no flicker to full height
Test: swipe-to-dismiss hun, expand hun, swipe down for hun-to-shade
  => no regressions

Change-Id: I26ada34ed173393ee08a96aefd37b1935702bb90
parent 1daf01ab
Loading
Loading
Loading
Loading
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment