panes: [BUG] Android: Fast drag with single frame not trigger checkOpacityAttr()
Describe the bug The setup
A page has a cupertino pane and google maps.
The pane has initial position set to bottom, and has middle breakpoint enabled, and top disabled. And UpperThanTop is set to false.
There is content to be shown in the middle breakpoint. The content html element has the hide-on-bottom attribute.
On page load, both the pane and google map are created/displayed at the same time.
While the google map is still loading, when the user drag the pane to above the top position to open the pane to show the content.
The content is blank, but clickable (opacity = 0)
Dragging the pane again will result in showing the content (opacity = 1)
To Reproduce Create a app with the setup as described
Steps to reproduce the behavior:
- Start app
- As soon as the app loads. While the map is still loading, (ie: blank map still) Drag the pane up to open the pane, to show the content.
- Make sure to drag the pane above the middle break point
Demo src code that can reproduce the issue https://github.com/ebhsgit/cupertino-pane-test/tree/bug-content_not_visible
NOTE:
If you want actual map to show, you need to change google map API key in config.xml
Expected behavior The content should be visible.
Screenshots
Issue

Expected

Smartphone (please complete the following information):
- Device: Samsung S9+, Android emulators
- OS: Android
- Browser: Chrome
- Version: 91.0.4472.120
Additional context
The problem is caused by TouchMove event not firing while the pane is being dragged.
Only the last event where the touchEvent position is above the topper. Which results in touchMove() exiting without executing checkOpacityAttr() and checkOverflowAttr()
I don’t know what causes the touchMove events to be lost.
About this issue
- Original URL
- State: closed
- Created 3 years ago
- Comments: 15 (9 by maintainers)
Commits related to this issue
- fix(events): android fast drag was interpreted as tap event (#154) — committed to tech-systems/panes by roman-rr 3 years ago
@ebhsgit Thank you for helps, it is definitely make pane better in common. The problem was not in google maps. Android trigger
touchmovewith low frequency on fast user swipe gesture. Therefore, touch end was interpreted gesture as tap and prevent opacity checks.And this is why i personally like apple devices, for high responsible gestures. Anyway, fixed.
Thank you for investigation @ebhsgit I will look here more deeply to find an exact reason.