Fixed
Status Update
Comments
sm...@google.com <sm...@google.com> #2
This is caused by events either being dropped or received out of order.
Can you narrow this behavior down to any particular device and/or SDK version?
Can you narrow this behavior down to any particular device and/or SDK version?
ap...@google.com <ap...@google.com> #3
Project: platform/frameworks/support
Branch: androidx-master-dev
commit 809b6acbcbef583825e6f80af0e877fa946b9233
Author: Steve McKay <smckay@google.com>
Date: Fri Apr 05 10:47:13 2019
Cleanup Gesture selection.
Update GestureSelectionHelper:
- Remove some dead code that was attempting to set range anchor...but never called.
- Consult SelectionPredicate before trying to make a selection.
- Guard against handling events when SelectionTracker doesn't have an
active range.
Cleanup TouchInputHandler:
- Simplify logic for initiating gesture selection
- Don't try to initiate selection unless range is active.
BUG: 70518185
BUG: 109808552
BUG: 128054552
Test: Passing. Added new coverage in TouchInputHandler.
Change-Id: I68d87e28995df009f0e0ecb0cf91c4c38c06bbd7
M recyclerview/selection/src/androidTest/java/androidx/recyclerview/selection/GestureSelectionHelperTest.java
M recyclerview/selection/src/androidTest/java/androidx/recyclerview/selection/TouchInputHandlerTest.java
A recyclerview/selection/src/androidTest/java/androidx/recyclerview/selection/testing/TestDragListener.java
M recyclerview/selection/src/main/java/androidx/recyclerview/selection/GestureSelectionHelper.java
M recyclerview/selection/src/main/java/androidx/recyclerview/selection/MotionInputHandler.java
M recyclerview/selection/src/main/java/androidx/recyclerview/selection/MouseInputHandler.java
M recyclerview/selection/src/main/java/androidx/recyclerview/selection/SelectionTracker.java
M recyclerview/selection/src/main/java/androidx/recyclerview/selection/TouchInputHandler.java
https://android-review.googlesource.com/940781
https://goto.google.com/android-sha1/809b6acbcbef583825e6f80af0e877fa946b9233
Branch: androidx-master-dev
commit 809b6acbcbef583825e6f80af0e877fa946b9233
Author: Steve McKay <smckay@google.com>
Date: Fri Apr 05 10:47:13 2019
Cleanup Gesture selection.
Update GestureSelectionHelper:
- Remove some dead code that was attempting to set range anchor...but never called.
- Consult SelectionPredicate before trying to make a selection.
- Guard against handling events when SelectionTracker doesn't have an
active range.
Cleanup TouchInputHandler:
- Simplify logic for initiating gesture selection
- Don't try to initiate selection unless range is active.
BUG: 70518185
BUG: 109808552
BUG: 128054552
Test: Passing. Added new coverage in TouchInputHandler.
Change-Id: I68d87e28995df009f0e0ecb0cf91c4c38c06bbd7
M recyclerview/selection/src/androidTest/java/androidx/recyclerview/selection/GestureSelectionHelperTest.java
M recyclerview/selection/src/androidTest/java/androidx/recyclerview/selection/TouchInputHandlerTest.java
A recyclerview/selection/src/androidTest/java/androidx/recyclerview/selection/testing/TestDragListener.java
M recyclerview/selection/src/main/java/androidx/recyclerview/selection/GestureSelectionHelper.java
M recyclerview/selection/src/main/java/androidx/recyclerview/selection/MotionInputHandler.java
M recyclerview/selection/src/main/java/androidx/recyclerview/selection/MouseInputHandler.java
M recyclerview/selection/src/main/java/androidx/recyclerview/selection/SelectionTracker.java
M recyclerview/selection/src/main/java/androidx/recyclerview/selection/TouchInputHandler.java
je...@gmail.com <je...@gmail.com> #4
You can reproduce a crash like this by pressing Back to cancel selection while you're drag-selecting.
You can even do this in the Files app in Pie/Q.
You can even do this in the Files app in Pie/Q.
je...@gmail.com <je...@gmail.com> #5
See attached video.
ap...@google.com <ap...@google.com> #6
Project: platform/frameworks/support
Branch: androidx-master-dev
commit c5140a9ea3fc27fa6a2ef4496e2000ad5ec7b01c
Author: Steve McKay <smckay@google.com>
Date: Fri May 10 22:22:17 2019
Roll forward: "Cleanup Gesture selection.""
Rollforward change + fix for issue: 78615740
Also guard against invalid position in range extensions (an issue
encountered while this CL was being created).
This reverts commit 94b660e1a130e0b21db4a5621d73354f869635f6.
Bug: 132447183
Bug: 131607268
Bug: 78615740
BUG: 70518185
BUG: 109808552
BUG: 128054552
Test: Added new test for issue being fixed.
Change-Id: Ia92e7158f23700d1799a5c554b238d6943f427f2
M recyclerview/selection/src/androidTest/java/androidx/recyclerview/selection/GestureSelectionHelperTest.java
M recyclerview/selection/src/androidTest/java/androidx/recyclerview/selection/TouchInputHandlerTest.java
A recyclerview/selection/src/androidTest/java/androidx/recyclerview/selection/testing/TestDragListener.java
M recyclerview/selection/src/main/java/androidx/recyclerview/selection/DefaultSelectionTracker.java
M recyclerview/selection/src/main/java/androidx/recyclerview/selection/GestureSelectionHelper.java
M recyclerview/selection/src/main/java/androidx/recyclerview/selection/MotionInputHandler.java
M recyclerview/selection/src/main/java/androidx/recyclerview/selection/MouseInputHandler.java
M recyclerview/selection/src/main/java/androidx/recyclerview/selection/SelectionTracker.java
M recyclerview/selection/src/main/java/androidx/recyclerview/selection/TouchInputHandler.java
https://android-review.googlesource.com/960213
https://goto.google.com/android-sha1/c5140a9ea3fc27fa6a2ef4496e2000ad5ec7b01c
Branch: androidx-master-dev
commit c5140a9ea3fc27fa6a2ef4496e2000ad5ec7b01c
Author: Steve McKay <smckay@google.com>
Date: Fri May 10 22:22:17 2019
Roll forward: "Cleanup Gesture selection.""
Rollforward change + fix for issue: 78615740
Also guard against invalid position in range extensions (an issue
encountered while this CL was being created).
This reverts commit 94b660e1a130e0b21db4a5621d73354f869635f6.
Bug: 132447183
Bug: 131607268
Bug: 78615740
BUG: 70518185
BUG: 109808552
BUG: 128054552
Test: Added new test for issue being fixed.
Change-Id: Ia92e7158f23700d1799a5c554b238d6943f427f2
M recyclerview/selection/src/androidTest/java/androidx/recyclerview/selection/GestureSelectionHelperTest.java
M recyclerview/selection/src/androidTest/java/androidx/recyclerview/selection/TouchInputHandlerTest.java
A recyclerview/selection/src/androidTest/java/androidx/recyclerview/selection/testing/TestDragListener.java
M recyclerview/selection/src/main/java/androidx/recyclerview/selection/DefaultSelectionTracker.java
M recyclerview/selection/src/main/java/androidx/recyclerview/selection/GestureSelectionHelper.java
M recyclerview/selection/src/main/java/androidx/recyclerview/selection/MotionInputHandler.java
M recyclerview/selection/src/main/java/androidx/recyclerview/selection/MouseInputHandler.java
M recyclerview/selection/src/main/java/androidx/recyclerview/selection/SelectionTracker.java
M recyclerview/selection/src/main/java/androidx/recyclerview/selection/TouchInputHandler.java
sm...@google.com <sm...@google.com> #8
For some reason I can't edit bug status (or assignee).
sh...@google.com <sh...@google.com>
al...@gmail.com <al...@gmail.com> #9
This isn't fixed in alpha 6 :(. It's easily reproducible by starting a drag with one finger and then tapping somewhere else (think back button) which calls clearSelection().
PS: this issue is a duplicate:https://issuetracker.google.com/issues/130707991
PS: this issue is a duplicate:
sm...@google.com <sm...@google.com> #10
Thanks for the repo steps. I don't have permissions to re-open this bug, but will followup on b/130707991 .
Description
Fatal Exception: java.lang.IllegalStateException: Range start point not set.
at androidx.core.util.Preconditions.checkState(SourceFile:96)
at androidx.recyclerview.selection.DefaultSelectionTracker.extendProvisionalRange(SourceFile:281)
at androidx.recyclerview.selection.GestureSelectionHelper.extendSelection(SourceFile:227)
at androidx.recyclerview.selection.GestureSelectionHelper.handleMoveEvent(SourceFile:204)
at androidx.recyclerview.selection.GestureSelectionHelper.handleTouch(SourceFile:151)
at androidx.recyclerview.selection.GestureSelectionHelper.onTouchEvent(SourceFile:125)
at androidx.recyclerview.selection.TouchEventRouter.onTouchEvent(SourceFile:103)
at androidx.recyclerview.widget.RecyclerView.dispatchToOnItemTouchListeners(SourceFile:3035)
at android.view.View.dispatchTouchEvent(View.java:10775)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2859)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2535)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2865)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2550)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2865)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2550)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2865)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2550)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2865)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2550)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2865)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2550)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2865)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2550)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2865)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2550)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2865)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2550)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2865)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2550)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2865)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2550)
at com.android.internal.policy.DecorView.superDispatchTouchEvent(DecorView.java:568)
at com.android.internal.policy.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1896)
at android.app.Activity.dispatchTouchEvent(Activity.java:3247)
at com.supercilex.robotscouter.core.ui.ActivityBase.dispatchTouchEvent(SourceFile:82)
at androidx.appcompat.view.WindowCallbackWrapper.dispatchTouchEvent(SourceFile:69)
at androidx.appcompat.view.WindowCallbackWrapper.dispatchTouchEvent(SourceFile:69)
at com.android.internal.policy.DecorView.dispatchTouchEvent(DecorView.java:530)
at android.view.View.dispatchPointerEvent(View.java:11004)
at android.view.ViewRootImpl$ViewPostImeInputStage.processPointerEvent(ViewRootImpl.java:5111)
at android.view.ViewRootImpl$ViewPostImeInputStage.onProcess(ViewRootImpl.java:4963)
at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:4494)
at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:4547)
at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:4513)
at android.view.ViewRootImpl$AsyncInputStage.forward(ViewRootImpl.java:4646)
at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:4521)
at android.view.ViewRootImpl$AsyncInputStage.apply(ViewRootImpl.java:4703)
at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:4494)
at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:4547)
at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:4513)
at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:4521)
at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:4494)
at android.view.ViewRootImpl.deliverInputEvent(ViewRootImpl.java:7003)
at android.view.ViewRootImpl.doProcessInputEvents(ViewRootImpl.java:6934)
at android.view.ViewRootImpl.enqueueInputEvent(ViewRootImpl.java:6895)
at android.view.ViewRootImpl$WindowInputEventReceiver.onInputEvent(ViewRootImpl.java:7113)
at android.view.InputEventReceiver.dispatchInputEvent(InputEventReceiver.java:185)
at android.view.InputEventReceiver.nativeConsumeBatchedInputEvents(InputEventReceiver.java)
at android.view.InputEventReceiver.consumeBatchedInputEvents(InputEventReceiver.java:176)
at android.view.ViewRootImpl.doConsumeBatchedInput(ViewRootImpl.java:7077)
at android.view.ViewRootImpl$ConsumeBatchedInputRunnable.run(ViewRootImpl.java:7140)
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:927)
at android.view.Choreographer.doCallbacks(Choreographer.java:702)
at android.view.Choreographer.doFrame(Choreographer.java:632)
at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:913)
at android.os.Handler.handleCallback(Handler.java:751)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:154)
at android.app.ActivityThread.main(ActivityThread.java:6836)
at java.lang.reflect.Method.invoke(Method.java)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1520)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1410)