Fixed
Status Update
Comments
sm...@google.com <sm...@google.com> #2
Project: platform/frameworks/support
Branch: androidx-master-dev
commit b90079595f33f58fece04026a97faa0d243acdb1
Author: Yuichi Araki <yaraki@google.com>
Date: Wed Sep 18 16:55:49 2019
Change the way to detect mismatch between POJO and query
This fixes cursor mismatch warnings with expandProjection.
Bug: 140759491
Test: QueryMethodProcessorTest
Change-Id: I7659002e5e0d1ef60fc1af2a625c0c36da0664d8
M room/compiler/src/main/kotlin/androidx/room/processor/QueryMethodProcessor.kt
M room/compiler/src/main/kotlin/androidx/room/solver/TypeAdapterStore.kt
M room/compiler/src/main/kotlin/androidx/room/solver/query/result/PojoRowAdapter.kt
M room/compiler/src/test/kotlin/androidx/room/processor/QueryMethodProcessorTest.kt
M room/compiler/src/test/kotlin/androidx/room/testing/TestProcessor.kt
https://android-review.googlesource.com/1123258
https://goto.google.com/android-sha1/b90079595f33f58fece04026a97faa0d243acdb1
Branch: androidx-master-dev
commit b90079595f33f58fece04026a97faa0d243acdb1
Author: Yuichi Araki <yaraki@google.com>
Date: Wed Sep 18 16:55:49 2019
Change the way to detect mismatch between POJO and query
This fixes cursor mismatch warnings with expandProjection.
Bug: 140759491
Test: QueryMethodProcessorTest
Change-Id: I7659002e5e0d1ef60fc1af2a625c0c36da0664d8
M room/compiler/src/main/kotlin/androidx/room/processor/QueryMethodProcessor.kt
M room/compiler/src/main/kotlin/androidx/room/solver/TypeAdapterStore.kt
M room/compiler/src/main/kotlin/androidx/room/solver/query/result/PojoRowAdapter.kt
M room/compiler/src/test/kotlin/androidx/room/processor/QueryMethodProcessorTest.kt
M room/compiler/src/test/kotlin/androidx/room/testing/TestProcessor.kt
ap...@google.com <ap...@google.com> #3
je...@gmail.com <je...@gmail.com> #4
Project: platform/frameworks/support
Branch: androidx-master-dev
commit bdde5a1a970ddc9007b28de4aa29d60ffa588f08
Author: Yigit Boyar <yboyar@google.com>
Date: Thu Apr 16 16:47:05 2020
Re-factor how errors are dismissed when query is re-written
This CL changes how we handle errors/warnings if query is
re-written.
There was a bug in expandProjection where we would report warnings
for things that Room already fixes automatically ( b/140759491 ).
The solution to that problem (I7659002e5e0d1ef60fc1af2a625c0c36da0664d8)
solved it by deferring validating of columns until after re-write
decision is made. Unfortunately, this required changing PojoRowAdapter
to have a dummy mapping until it is validating, make it hard to use
as it does have a non-null mapping which is not useful.
This CL partially reverts that change and instead rely on the log
deferring logic we have in Context. This way, we don't need to break
the stability of PojoRowAdapter while still having the ability to
drop warnings that room fixes. This will also play nicer when we
have different query re-writing options that can use more information
about the query results.
Bug: 153387066
Bug: 140759491
Test: existing tests pass
Change-Id: I2ec967c763d33d7a3ff02c1a13c6953b460d1e5f
M room/compiler/src/main/kotlin/androidx/room/log/RLog.kt
M room/compiler/src/main/kotlin/androidx/room/processor/QueryMethodProcessor.kt
M room/compiler/src/main/kotlin/androidx/room/solver/TypeAdapterStore.kt
M room/compiler/src/main/kotlin/androidx/room/solver/query/result/PojoRowAdapter.kt
https://android-review.googlesource.com/1288456
Branch: androidx-master-dev
commit bdde5a1a970ddc9007b28de4aa29d60ffa588f08
Author: Yigit Boyar <yboyar@google.com>
Date: Thu Apr 16 16:47:05 2020
Re-factor how errors are dismissed when query is re-written
This CL changes how we handle errors/warnings if query is
re-written.
There was a bug in expandProjection where we would report warnings
for things that Room already fixes automatically (
The solution to that problem (I7659002e5e0d1ef60fc1af2a625c0c36da0664d8)
solved it by deferring validating of columns until after re-write
decision is made. Unfortunately, this required changing PojoRowAdapter
to have a dummy mapping until it is validating, make it hard to use
as it does have a non-null mapping which is not useful.
This CL partially reverts that change and instead rely on the log
deferring logic we have in Context. This way, we don't need to break
the stability of PojoRowAdapter while still having the ability to
drop warnings that room fixes. This will also play nicer when we
have different query re-writing options that can use more information
about the query results.
Bug: 153387066
Bug: 140759491
Test: existing tests pass
Change-Id: I2ec967c763d33d7a3ff02c1a13c6953b460d1e5f
M room/compiler/src/main/kotlin/androidx/room/log/RLog.kt
M room/compiler/src/main/kotlin/androidx/room/processor/QueryMethodProcessor.kt
M room/compiler/src/main/kotlin/androidx/room/solver/TypeAdapterStore.kt
M room/compiler/src/main/kotlin/androidx/room/solver/query/result/PojoRowAdapter.kt
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)