Assigned
Status Update
Comments
ma...@google.com <ma...@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
qa...@google.com <qa...@google.com>
yi...@google.com <yi...@google.com> #3
ma...@google.com <ma...@google.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
yi...@google.com <yi...@google.com> #5
we already have onDoubleClick lamda in the clickable argument, we can add onDoubleClickLabel to the clickable arguments, if so, it will be implemented like this:
@Composable
fun Modifier.clickable(
enabled: Boolean = true,
onClickLabel: String? = null,
interactionState: InteractionState = remember { InteractionState() },
indication: Indication? = IndicationAmbient.current(),
onLongClickLabel: String? = null,
onLongClick: (() -> Unit)? = null,
onDoubleClickLabel: String? = null, <-------------
onDoubleClick: (() -> Unit)? = null,
onClick: () -> Unit
) = composed {
val semanticModifier = Modifier.semantics(mergeAllDescendants = true) {
if (enabled) {
// b/156468846 : add long click semantics and double click if needed
onClick(action = { onClick(); true }, label = onClickLabel)
if (onLongClick != null) {
onLongClick(action = { onLongClick(); true }, label = onLongClickLabel)
}
if (onDoubleClick != null) {. <-----------------------
this.customActions = listOf(
CustomAccessibilityAction(
action = { onDoubleClick(); true},
label = onDoubleClickLabel ?: defaultDoubleClickLabel
)
)
}
} else {
disabled()
}
This will pass a custom accessibility action to accessibility framework. In talkback (not very familiar with switch access, but I think they should have ways to handle it), this custom action will show up in local context menu (when focus on the item, swipe up then right. The context menu is a list. The custom action will show up as a list item with the onDoubleClickLabel or defaultDoubleClickLabel as the text). When user clicks on local context menu item, it performs the onDoubleClick lambda.
Is this what you have in mind? The only concern I have is whether talkback user will be confused if the developer didn't pass a good onDoubleClick label because when talkback is turned on, single click is used to place accessibility focus on an item and double click is used to perform "normal click (onClick)".
@Composable
fun Modifier.clickable(
enabled: Boolean = true,
onClickLabel: String? = null,
interactionState: InteractionState = remember { InteractionState() },
indication: Indication? = IndicationAmbient.current(),
onLongClickLabel: String? = null,
onLongClick: (() -> Unit)? = null,
onDoubleClickLabel: String? = null, <-------------
onDoubleClick: (() -> Unit)? = null,
onClick: () -> Unit
) = composed {
val semanticModifier = Modifier.semantics(mergeAllDescendants = true) {
if (enabled) {
//
onClick(action = { onClick(); true }, label = onClickLabel)
if (onLongClick != null) {
onLongClick(action = { onLongClick(); true }, label = onLongClickLabel)
}
if (onDoubleClick != null) {. <-----------------------
this.customActions = listOf(
CustomAccessibilityAction(
action = { onDoubleClick(); true},
label = onDoubleClickLabel ?: defaultDoubleClickLabel
)
)
}
} else {
disabled()
}
This will pass a custom accessibility action to accessibility framework. In talkback (not very familiar with switch access, but I think they should have ways to handle it), this custom action will show up in local context menu (when focus on the item, swipe up then right. The context menu is a list. The custom action will show up as a list item with the onDoubleClickLabel or defaultDoubleClickLabel as the text). When user clicks on local context menu item, it performs the onDoubleClick lambda.
Is this what you have in mind? The only concern I have is whether talkback user will be confused if the developer didn't pass a good onDoubleClick label because when talkback is turned on, single click is used to place accessibility focus on an item and double click is used to perform "normal click (onClick)".
ap...@google.com <ap...@google.com> #6
Project: platform/frameworks/support
Branch: androidx-master-dev
commit 93463e73490f38e19b2baa4cc6e0ee97a4d30081
Author: yingleiw <yingleiw@google.com>
Date: Thu Sep 17 14:52:59 2020
Add long click semantics action and handle it in accessibility
Relnote: "Add long click semantics action"
Bug: b/156468846
Test: tested with switch access and compose demo app. Also added unit
test on semantics side. Will add unit test when accessibility unit test
is in.
Change-Id: I6281b383328d549b30b3ef915e717abbbb28ddaa
M compose/foundation/foundation/api/current.txt
M compose/foundation/foundation/api/public_plus_experimental_current.txt
M compose/foundation/foundation/api/restricted_current.txt
M compose/foundation/foundation/src/androidAndroidTest/kotlin/androidx/compose/foundation/ClickableTest.kt
M compose/foundation/foundation/src/commonMain/kotlin/androidx/compose/foundation/Clickable.kt
M compose/ui/ui/api/current.txt
M compose/ui/ui/api/public_plus_experimental_current.txt
M compose/ui/ui/api/restricted_current.txt
M compose/ui/ui/src/androidMain/kotlin/androidx/compose/ui/platform/AndroidComposeViewAccessibilityDelegateCompat.kt
M compose/ui/ui/src/commonMain/kotlin/androidx/compose/ui/semantics/SemanticsProperties.kt
https://android-review.googlesource.com/1430831
Branch: androidx-master-dev
commit 93463e73490f38e19b2baa4cc6e0ee97a4d30081
Author: yingleiw <yingleiw@google.com>
Date: Thu Sep 17 14:52:59 2020
Add long click semantics action and handle it in accessibility
Relnote: "Add long click semantics action"
Bug:
Test: tested with switch access and compose demo app. Also added unit
test on semantics side. Will add unit test when accessibility unit test
is in.
Change-Id: I6281b383328d549b30b3ef915e717abbbb28ddaa
M compose/foundation/foundation/api/current.txt
M compose/foundation/foundation/api/public_plus_experimental_current.txt
M compose/foundation/foundation/api/restricted_current.txt
M compose/foundation/foundation/src/androidAndroidTest/kotlin/androidx/compose/foundation/ClickableTest.kt
M compose/foundation/foundation/src/commonMain/kotlin/androidx/compose/foundation/Clickable.kt
M compose/ui/ui/api/current.txt
M compose/ui/ui/api/public_plus_experimental_current.txt
M compose/ui/ui/api/restricted_current.txt
M compose/ui/ui/src/androidMain/kotlin/androidx/compose/ui/platform/AndroidComposeViewAccessibilityDelegateCompat.kt
M compose/ui/ui/src/commonMain/kotlin/androidx/compose/ui/semantics/SemanticsProperties.kt
Description