Status Update
Comments
ti...@google.com <ti...@google.com> #2
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
al...@gmail.com <al...@gmail.com> #3
ta...@mercury.com <ta...@mercury.com> #4
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
kl...@google.com <kl...@google.com> #5
For a start, could we at least introduce an animation scale composition local at least to allow apps to change their own compose animations? Then if we want to integrate with system settings in the future, we already have the hook we need into compose's animation system. Some other platforms let you adjust the animation speed at the OS level as well, so Android might not be the only platform on which we need to support this feature.
ti...@google.com <ti...@google.com> #6
Re #5:
It's a good point that the durataion scale could be useful for other platforms. Though I'm not sure about making it a composition local, as that would open doors to unexpected behaviors where at different levels of the tree the animation is playing at different rate.
The good news is, it seems like we are able to read the Settings.Global.TRANSITION_ANIMATION_SCALE
without requiring any permission. We should be able to wire that up with the internal duration scale that we are using and be backward compatible.
Re #4:
Yes. Accesibility does seem to be modifying the same settings as the duration scale in developer options:
ap...@google.com <ap...@google.com> #7
Branch: androidx-main
commit f253fe11ef6d1deda386a0b48cbceca01e1d5e38
Author: Doris Liu <tianliu@google.com>
Date: Fri Feb 11 11:42:29 2022
Wire up animation scale in Dev Options with Compose animation
This CL introduced a MotionDurationScale CoroutineContext.Element. This
allows the duration scale to be put in the coroutine context used
by Recomposer. At the same time, user code can define their own
duration scale and add it to a coroutine context. It will impact
all the animations in that coroutine context.
Fixes: 161675988
Test: Included. Also added a benchmark.
RelNote: "Horray! Compose animation now supports
'Animator duration scale' setting from Developer Options."
Change-Id: I31c2425ff560949f24ef873559057e14f6916a39
A compose/ui/ui/src/commonMain/kotlin/androidx/compose/ui/MotionDurationScale.kt
M compose/animation/animation-core/build.gradle
M compose/ui/ui/api/restricted_current.txt
M compose/animation/animation-core/src/commonMain/kotlin/androidx/compose/animation/core/InfiniteTransition.kt
M compose/animation/animation-core/src/commonMain/kotlin/androidx/compose/animation/core/SuspendAnimation.kt
M compose/ui/ui/api/current.txt
A compose/animation/animation-core/src/test/java/androidx/compose/animation/core/DurationScaleTest.kt
A compose/ui/ui/benchmark/src/androidTest/java/androidx/compose/ui/benchmark/LifecycleAwareWindowRecomposerBenchmark.kt
M compose/ui/ui/src/androidMain/kotlin/androidx/compose/ui/platform/WindowRecomposer.android.kt
M compose/animation/animation-core/src/commonMain/kotlin/androidx/compose/animation/core/Transition.kt
M compose/ui/ui/api/public_plus_experimental_current.txt
ae...@google.com <ae...@google.com> #8
ap...@google.com <ap...@google.com> #9
Branch: androidx-main
commit 23d09b5d5044d10cff93db84f5b59209f56d7e72
Author: Doris Liu <tianliu@google.com>
Date: Fri Feb 11 11:42:29 2022
Animation scale from settings expressed as a SateFlow
This CL introduced a MotionDurationScale CoroutineContext.Element. This
allows the duration scale to be put in the coroutine context used
by Recomposer. At the same time, user code can define their own
duration scale and add it to a coroutine context. It will impact
all the animations in that coroutine context.
Animation duration scale is now expressed as a global StateFlow per
application, with one ContentObserver that emits new values as
the settings change.
Fixes: 161675988
Test: Included. Also added a benchmark.
RelNote: "Horray! Compose animation now supports
'Animator duration scale' setting from Developer Options."
Change-Id: I5a4fc779a3fbfbcb2926ac1624cd679bb9b912ce
A compose/ui/ui/src/commonMain/kotlin/androidx/compose/ui/MotionDurationScale.kt
M compose/animation/animation-core/build.gradle
M compose/animation/animation-core/src/commonMain/kotlin/androidx/compose/animation/core/InfiniteTransition.kt
M compose/ui/ui/api/restricted_current.txt
M compose/animation/animation-core/src/commonMain/kotlin/androidx/compose/animation/core/SuspendAnimation.kt
A compose/animation/animation-core/src/test/java/androidx/compose/animation/core/DurationScaleTest.kt
M compose/ui/ui/api/current.txt
A compose/ui/ui/benchmark/src/androidTest/java/androidx/compose/ui/benchmark/LifecycleAwareWindowRecomposerBenchmark.kt
M compose/ui/ui/src/androidMain/kotlin/androidx/compose/ui/platform/WindowRecomposer.android.kt
M compose/animation/animation-core/src/commonMain/kotlin/androidx/compose/animation/core/Transition.kt
M compose/ui/ui/api/public_plus_experimental_current.txt
Description
- Window animation scale
- Transition animation scale
- Animator duration scale
in Developer options has no effect on transitions right now.
Not sure if there's a public API for them but they're important for debugging.