Fixed
Status Update
Comments
se...@google.com <se...@google.com>
ap...@google.com <ap...@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
ap...@google.com <ap...@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
ap...@google.com <ap...@google.com> #5
Project: platform/frameworks/support
Branch: androidx-main
commit 48a03c8e31e7ae37924b173b7396f1087740024b
Author: Sean McQuillan <seanmcq@google.com>
Date: Tue Dec 20 14:04:38 2022
Port heightInLines behavior to new modifier
Adds support for minLines/maxLines to TextUsingModifier
Bug: b/246960758
Test: ./gradlew :com:found--d-n-s-newtext:cAT
Change-Id: Ic2823ce15f10cafb180aca46e80f62d6b6abd9e0
A compose/foundation/foundation-newtext/src/androidAndroidTest/kotlin/androidx/compose/foundation/newtext/text/TextUsingModifierMinMaxLinesTest.kt
A compose/foundation/foundation-newtext/src/commonMain/kotlin/androidx/compose/foundation/newtext/text/modifiers/MinMaxLinesUtils.kt
M compose/foundation/foundation-newtext/src/commonMain/kotlin/androidx/compose/foundation/newtext/text/modifiers/MultiParagraphLayoutCache.kt
M compose/foundation/foundation-newtext/src/commonMain/kotlin/androidx/compose/foundation/newtext/text/modifiers/TextInlineContentLayoutDrawModifier.kt
M compose/foundation/foundation-newtext/src/commonMain/kotlin/androidx/compose/foundation/newtext/text/modifiers/TextInlineContentLayoutDrawParams.kt
https://android-review.googlesource.com/2361789
Branch: androidx-main
commit 48a03c8e31e7ae37924b173b7396f1087740024b
Author: Sean McQuillan <seanmcq@google.com>
Date: Tue Dec 20 14:04:38 2022
Port heightInLines behavior to new modifier
Adds support for minLines/maxLines to TextUsingModifier
Bug:
Test: ./gradlew :com:found--d-n-s-newtext:cAT
Change-Id: Ic2823ce15f10cafb180aca46e80f62d6b6abd9e0
A compose/foundation/foundation-newtext/src/androidAndroidTest/kotlin/androidx/compose/foundation/newtext/text/TextUsingModifierMinMaxLinesTest.kt
A compose/foundation/foundation-newtext/src/commonMain/kotlin/androidx/compose/foundation/newtext/text/modifiers/MinMaxLinesUtils.kt
M compose/foundation/foundation-newtext/src/commonMain/kotlin/androidx/compose/foundation/newtext/text/modifiers/MultiParagraphLayoutCache.kt
M compose/foundation/foundation-newtext/src/commonMain/kotlin/androidx/compose/foundation/newtext/text/modifiers/TextInlineContentLayoutDrawModifier.kt
M compose/foundation/foundation-newtext/src/commonMain/kotlin/androidx/compose/foundation/newtext/text/modifiers/TextInlineContentLayoutDrawParams.kt
ap...@google.com <ap...@google.com> #6
Project: platform/frameworks/support
Branch: androidx-main
commit 05bdcc6bc778f2ccd4a9378ede04bd99c26372f1
Author: Sean McQuillan <seanmcq@google.com>
Date: Mon Jan 09 16:36:03 2023
Remove 6 more allocations from TextUsingModifier measure
// before
1,220,605 ns 306 allocs trace ModifierAllAppsSetText.measureIt[size=8]
// after
1,176,671 ns 300 allocs trace ModifierAllAppsSetText.measureIt[size=8]
Test: bench
Bug: b/246960758
Change-Id: I98e2a5ba2657d634bbcc87be4cba5c3a0f24a53a
M compose/foundation/foundation-newtext/src/commonMain/kotlin/androidx/compose/foundation/newtext/text/modifiers/StaticTextModifier.kt
https://android-review.googlesource.com/2380665
Branch: androidx-main
commit 05bdcc6bc778f2ccd4a9378ede04bd99c26372f1
Author: Sean McQuillan <seanmcq@google.com>
Date: Mon Jan 09 16:36:03 2023
Remove 6 more allocations from TextUsingModifier measure
// before
1,220,605 ns 306 allocs trace ModifierAllAppsSetText.measureIt[size=8]
// after
1,176,671 ns 300 allocs trace ModifierAllAppsSetText.measureIt[size=8]
Test: bench
Bug:
Change-Id: I98e2a5ba2657d634bbcc87be4cba5c3a0f24a53a
M compose/foundation/foundation-newtext/src/commonMain/kotlin/androidx/compose/foundation/newtext/text/modifiers/StaticTextModifier.kt
ap...@google.com <ap...@google.com> #7
Project: platform/frameworks/support
Branch: androidx-main
commit 596ad9439f540ba37416b492e991dfc90b5177b3
Author: Sean McQuillan <seanmcq@google.com>
Date: Mon Jan 09 15:03:13 2023
Fix restart behavior in TextUsingModifier
Use new restarting methods correctly
Bug: b/246960758
Test: Manual - integrated with Sample app
Change-Id: I0cf75a543927280fcc1efb5b0460c50f3bc37088
M compose/foundation/foundation-newtext/src/commonMain/kotlin/androidx/compose/foundation/newtext/text/modifiers/StaticTextModifier.kt
https://android-review.googlesource.com/2380657
Branch: androidx-main
commit 596ad9439f540ba37416b492e991dfc90b5177b3
Author: Sean McQuillan <seanmcq@google.com>
Date: Mon Jan 09 15:03:13 2023
Fix restart behavior in TextUsingModifier
Use new restarting methods correctly
Bug:
Test: Manual - integrated with Sample app
Change-Id: I0cf75a543927280fcc1efb5b0460c50f3bc37088
M compose/foundation/foundation-newtext/src/commonMain/kotlin/androidx/compose/foundation/newtext/text/modifiers/StaticTextModifier.kt
ap...@google.com <ap...@google.com> #8
Project: platform/frameworks/support
Branch: androidx-main
commit b930c4eaebb6b0405197e31122c2b5cc3ac2cc38
Author: Sean McQuillan <seanmcq@google.com>
Date: Fri Jan 06 13:31:11 2023
Remove excess allocs from TextUsingModifier
- AnnotatedString overload is no-alloc for no-inline content
- Both overloads use cheaper Layout call when possible
- Cache MeasurePolicy to avoid realloc
- Merge both modifiers into StaticTextModifier
- Make semantics allocation lazy
- Cache FirstBaseline and LastBaseline calcs & map
- Don't box MultParagraphLayoutCache Pair<Int, Int>
- Don't box MinMaxLinesCoercer<Float, Float> (use NaN as sentinal instead)
Add new AnnotatedString.hasStringAnnotations zero-alloc query method
Relnote: "Add AnnotatedString.hasStringAnnotations to query for annotations with zero-allocations."
Bug: b/246960758
Test: ./gradlew :com:ui:ui-text:test
Change-Id: I94dfec1e10e72e2fdc2eb482c74f8c058095b348
M compose/foundation/foundation-newtext/src/androidAndroidTest/kotlin/androidx/compose/foundation/newtext/text/modifiers/MultiParagraphLayoutCacheTest.kt
M compose/foundation/foundation-newtext/src/androidAndroidTest/kotlin/androidx/compose/foundation/newtext/text/modifiers/MultiParagraphLayoutCacheWidthWithLetterSpacingTest.kt
M compose/foundation/foundation-newtext/src/androidAndroidTest/kotlin/androidx/compose/foundation/newtext/text/modifiers/TextLayoutResultIntegrationTest.kt
M compose/foundation/foundation-newtext/src/commonMain/kotlin/androidx/compose/foundation/newtext/text/AnnotatedStringResolveInlineContent.kt
M compose/foundation/foundation-newtext/src/commonMain/kotlin/androidx/compose/foundation/newtext/text/TextUsingModifier.kt
M compose/foundation/foundation-newtext/src/commonMain/kotlin/androidx/compose/foundation/newtext/text/modifiers/MinMaxLinesCoercer.kt
M compose/foundation/foundation-newtext/src/commonMain/kotlin/androidx/compose/foundation/newtext/text/modifiers/MultiParagraphLayoutCache.kt
A compose/foundation/foundation-newtext/src/commonMain/kotlin/androidx/compose/foundation/newtext/text/modifiers/StaticTextLayoutDrawParams.kt
M compose/foundation/foundation-newtext/src/commonMain/kotlin/androidx/compose/foundation/newtext/text/modifiers/StaticTextModifier.kt
D compose/foundation/foundation-newtext/src/commonMain/kotlin/androidx/compose/foundation/newtext/text/modifiers/TextInlineContentLayoutDrawModifier.kt
D compose/foundation/foundation-newtext/src/commonMain/kotlin/androidx/compose/foundation/newtext/text/modifiers/TextInlineContentLayoutDrawParams.kt
M compose/foundation/foundation-newtext/src/test/kotlin/androidx/compose/foundation/newtext/text/modifiers/MultiParagraphLayoutCacheTest.kt
A compose/foundation/foundation-newtext/src/test/kotlin/androidx/compose/foundation/newtext/text/modifiers/StaticTextLayouDrawParamsTest.kt
M compose/ui/ui-text/api/current.txt
M compose/ui/ui-text/api/public_plus_experimental_current.txt
M compose/ui/ui-text/api/restricted_current.txt
M compose/ui/ui-text/src/commonMain/kotlin/androidx/compose/ui/text/AnnotatedString.kt
M compose/ui/ui-text/src/test/java/androidx/compose/ui/text/AnnotatedStringBuilderTest.kt
https://android-review.googlesource.com/2378103
Branch: androidx-main
commit b930c4eaebb6b0405197e31122c2b5cc3ac2cc38
Author: Sean McQuillan <seanmcq@google.com>
Date: Fri Jan 06 13:31:11 2023
Remove excess allocs from TextUsingModifier
- AnnotatedString overload is no-alloc for no-inline content
- Both overloads use cheaper Layout call when possible
- Cache MeasurePolicy to avoid realloc
- Merge both modifiers into StaticTextModifier
- Make semantics allocation lazy
- Cache FirstBaseline and LastBaseline calcs & map
- Don't box MultParagraphLayoutCache Pair<Int, Int>
- Don't box MinMaxLinesCoercer<Float, Float> (use NaN as sentinal instead)
Add new AnnotatedString.hasStringAnnotations zero-alloc query method
Relnote: "Add AnnotatedString.hasStringAnnotations to query for annotations with zero-allocations."
Bug:
Test: ./gradlew :com:ui:ui-text:test
Change-Id: I94dfec1e10e72e2fdc2eb482c74f8c058095b348
M compose/foundation/foundation-newtext/src/androidAndroidTest/kotlin/androidx/compose/foundation/newtext/text/modifiers/MultiParagraphLayoutCacheTest.kt
M compose/foundation/foundation-newtext/src/androidAndroidTest/kotlin/androidx/compose/foundation/newtext/text/modifiers/MultiParagraphLayoutCacheWidthWithLetterSpacingTest.kt
M compose/foundation/foundation-newtext/src/androidAndroidTest/kotlin/androidx/compose/foundation/newtext/text/modifiers/TextLayoutResultIntegrationTest.kt
M compose/foundation/foundation-newtext/src/commonMain/kotlin/androidx/compose/foundation/newtext/text/AnnotatedStringResolveInlineContent.kt
M compose/foundation/foundation-newtext/src/commonMain/kotlin/androidx/compose/foundation/newtext/text/TextUsingModifier.kt
M compose/foundation/foundation-newtext/src/commonMain/kotlin/androidx/compose/foundation/newtext/text/modifiers/MinMaxLinesCoercer.kt
M compose/foundation/foundation-newtext/src/commonMain/kotlin/androidx/compose/foundation/newtext/text/modifiers/MultiParagraphLayoutCache.kt
A compose/foundation/foundation-newtext/src/commonMain/kotlin/androidx/compose/foundation/newtext/text/modifiers/StaticTextLayoutDrawParams.kt
M compose/foundation/foundation-newtext/src/commonMain/kotlin/androidx/compose/foundation/newtext/text/modifiers/StaticTextModifier.kt
D compose/foundation/foundation-newtext/src/commonMain/kotlin/androidx/compose/foundation/newtext/text/modifiers/TextInlineContentLayoutDrawModifier.kt
D compose/foundation/foundation-newtext/src/commonMain/kotlin/androidx/compose/foundation/newtext/text/modifiers/TextInlineContentLayoutDrawParams.kt
M compose/foundation/foundation-newtext/src/test/kotlin/androidx/compose/foundation/newtext/text/modifiers/MultiParagraphLayoutCacheTest.kt
A compose/foundation/foundation-newtext/src/test/kotlin/androidx/compose/foundation/newtext/text/modifiers/StaticTextLayouDrawParamsTest.kt
M compose/ui/ui-text/api/current.txt
M compose/ui/ui-text/api/public_plus_experimental_current.txt
M compose/ui/ui-text/api/restricted_current.txt
M compose/ui/ui-text/src/commonMain/kotlin/androidx/compose/ui/text/AnnotatedString.kt
M compose/ui/ui-text/src/test/java/androidx/compose/ui/text/AnnotatedStringBuilderTest.kt
ap...@google.com <ap...@google.com> #9
Project: platform/frameworks/support
Branch: androidx-main
commit 5753305834000e86fc9c886ce4941f4e5cf77dbf
Author: Sean McQuillan <seanmcq@google.com>
Date: Thu Jan 05 15:07:42 2023
Cache minMaxLines in new TextUsingModifier
This is a substantial increase in work for measure compared to short text.
Added a LRU=1 cache for same text layout params (in the common case of repeated text styling).
In addition, each Modifier caches internally as well.
For size = 2
Gain (time abs)| Gain (time pct) | Gain (alloc abs)
288,610 | 10.04% | 15
Bug: b/246960758
Test: benchmarks
Change-Id: Ie7d16a91c2395f315319d88eb71931db835688f2
A compose/foundation/foundation-newtext/src/commonMain/kotlin/androidx/compose/foundation/newtext/text/modifiers/MinMaxLinesCoercer.kt
D compose/foundation/foundation-newtext/src/commonMain/kotlin/androidx/compose/foundation/newtext/text/modifiers/MinMaxLinesUtils.kt
M compose/foundation/foundation-newtext/src/commonMain/kotlin/androidx/compose/foundation/newtext/text/modifiers/MultiParagraphLayoutCache.kt
https://android-review.googlesource.com/2376866
Branch: androidx-main
commit 5753305834000e86fc9c886ce4941f4e5cf77dbf
Author: Sean McQuillan <seanmcq@google.com>
Date: Thu Jan 05 15:07:42 2023
Cache minMaxLines in new TextUsingModifier
This is a substantial increase in work for measure compared to short text.
Added a LRU=1 cache for same text layout params (in the common case of repeated text styling).
In addition, each Modifier caches internally as well.
For size = 2
Gain (time abs)| Gain (time pct) | Gain (alloc abs)
288,610 | 10.04% | 15
Bug:
Test: benchmarks
Change-Id: Ie7d16a91c2395f315319d88eb71931db835688f2
A compose/foundation/foundation-newtext/src/commonMain/kotlin/androidx/compose/foundation/newtext/text/modifiers/MinMaxLinesCoercer.kt
D compose/foundation/foundation-newtext/src/commonMain/kotlin/androidx/compose/foundation/newtext/text/modifiers/MinMaxLinesUtils.kt
M compose/foundation/foundation-newtext/src/commonMain/kotlin/androidx/compose/foundation/newtext/text/modifiers/MultiParagraphLayoutCache.kt
ap...@google.com <ap...@google.com> #10
Project: platform/frameworks/support
Branch: androidx-main
commit 9b45a135e82b693385cdf79bd9fbd3d7803dc3c3
Author: Sean McQuillan <seanmcq@google.com>
Date: Wed Dec 21 15:17:03 2022
Modifier fixes:
* Selection now delegates onGloballyPositioned correctly
* invalidateDraw is now invalidateLayer (which works)
* Correctly restart when async typefaces resolve
Bug: b/246960758
Test: ./gradlew :com:found--d-n-s-newtext:cAT
Change-Id: I7918144b56900e582908326556361cc033b967f2
M compose/foundation/foundation-newtext/src/commonMain/kotlin/androidx/compose/foundation/newtext/text/modifiers/MultiParagraphLayoutCache.kt
M compose/foundation/foundation-newtext/src/commonMain/kotlin/androidx/compose/foundation/newtext/text/modifiers/StaticTextModifier.kt
M compose/foundation/foundation-newtext/src/commonMain/kotlin/androidx/compose/foundation/newtext/text/modifiers/TextInlineContentLayoutDrawModifier.kt
https://android-review.googlesource.com/2366969
Branch: androidx-main
commit 9b45a135e82b693385cdf79bd9fbd3d7803dc3c3
Author: Sean McQuillan <seanmcq@google.com>
Date: Wed Dec 21 15:17:03 2022
Modifier fixes:
* Selection now delegates onGloballyPositioned correctly
* invalidateDraw is now invalidateLayer (which works)
* Correctly restart when async typefaces resolve
Bug:
Test: ./gradlew :com:found--d-n-s-newtext:cAT
Change-Id: I7918144b56900e582908326556361cc033b967f2
M compose/foundation/foundation-newtext/src/commonMain/kotlin/androidx/compose/foundation/newtext/text/modifiers/MultiParagraphLayoutCache.kt
M compose/foundation/foundation-newtext/src/commonMain/kotlin/androidx/compose/foundation/newtext/text/modifiers/StaticTextModifier.kt
M compose/foundation/foundation-newtext/src/commonMain/kotlin/androidx/compose/foundation/newtext/text/modifiers/TextInlineContentLayoutDrawModifier.kt
ap...@google.com <ap...@google.com> #11
Project: platform/frameworks/support
Branch: androidx-main
commit 325cdef1ab447cc50aeeed75a8b9af7865de23b6
Author: Sean McQuillan <seanmcq@google.com>
Date: Wed Dec 21 13:04:06 2022
Copypasta integrate selection with new modifier
This code depends on pointerInput to finalize.
For now, use remember to add lifecycle to node-like
StaticTextSelectionModifierController.
Also fixed typo s/ture/true/ linter found in presubmit
Bug: b/246960758
Test: ./gradlew :com:found--d-n-s-newtext:cAT
Change-Id: I1992103b5e777a6e3e868080bb50081ee7d89fd7
M compose/foundation/foundation-newtext/build.gradle
A compose/foundation/foundation-newtext/src/androidMain/kotlin/androidx/compose/foundation/newtext/text/copypasta/ActualJvm.kt
A compose/foundation/foundation-newtext/src/androidMain/kotlin/androidx/compose/foundation/newtext/text/copypasta/ContextMenu.android.kt
A compose/foundation/foundation-newtext/src/androidMain/kotlin/androidx/compose/foundation/newtext/text/copypasta/StringHelpers.android.kt
A compose/foundation/foundation-newtext/src/androidMain/kotlin/androidx/compose/foundation/newtext/text/copypasta/TextPointerIcon.android.kt
A compose/foundation/foundation-newtext/src/androidMain/kotlin/androidx/compose/foundation/newtext/text/copypasta/TouchMode.kt
A compose/foundation/foundation-newtext/src/androidMain/kotlin/androidx/compose/foundation/newtext/text/copypasta/selection/AndroidSelectionHandles.android.kt
A compose/foundation/foundation-newtext/src/androidMain/kotlin/androidx/compose/foundation/newtext/text/copypasta/selection/SelectionManager.android.kt
M compose/foundation/foundation-newtext/src/commonMain/kotlin/androidx/compose/foundation/newtext/text/TextUsingModifier.kt
A compose/foundation/foundation-newtext/src/commonMain/kotlin/androidx/compose/foundation/newtext/text/copypasta/ContextMenu.kt
A compose/foundation/foundation-newtext/src/commonMain/kotlin/androidx/compose/foundation/newtext/text/copypasta/Expect.kt
A compose/foundation/foundation-newtext/src/commonMain/kotlin/androidx/compose/foundation/newtext/text/copypasta/LongPressTextDragObserver.kt
A compose/foundation/foundation-newtext/src/commonMain/kotlin/androidx/compose/foundation/newtext/text/copypasta/StringHelpers.kt
A compose/foundation/foundation-newtext/src/commonMain/kotlin/androidx/compose/foundation/newtext/text/copypasta/TextLayoutResultProxy.kt
A compose/foundation/foundation-newtext/src/commonMain/kotlin/androidx/compose/foundation/newtext/text/copypasta/TextPointerIcon.kt
A compose/foundation/foundation-newtext/src/commonMain/kotlin/androidx/compose/foundation/newtext/text/copypasta/TouchMode.android.kt
A compose/foundation/foundation-newtext/src/commonMain/kotlin/androidx/compose/foundation/newtext/text/copypasta/selection/MultiWidgetSelectionDelegate.kt
A compose/foundation/foundation-newtext/src/commonMain/kotlin/androidx/compose/foundation/newtext/text/copypasta/selection/Selectable.kt
A compose/foundation/foundation-newtext/src/commonMain/kotlin/androidx/compose/foundation/newtext/text/copypasta/selection/Selection.kt
A compose/foundation/foundation-newtext/src/commonMain/kotlin/androidx/compose/foundation/newtext/text/copypasta/selection/SelectionAdjustment.kt
A compose/foundation/foundation-newtext/src/commonMain/kotlin/androidx/compose/foundation/newtext/text/copypasta/selection/SelectionContainer.kt
A compose/foundation/foundation-newtext/src/commonMain/kotlin/androidx/compose/foundation/newtext/text/copypasta/selection/SelectionHandles.kt
A compose/foundation/foundation-newtext/src/commonMain/kotlin/androidx/compose/foundation/newtext/text/copypasta/selection/SelectionMagnifier.kt
A compose/foundation/foundation-newtext/src/commonMain/kotlin/androidx/compose/foundation/newtext/text/copypasta/selection/SelectionManager.kt
A compose/foundation/foundation-newtext/src/commonMain/kotlin/androidx/compose/foundation/newtext/text/copypasta/selection/SelectionMode.kt
A compose/foundation/foundation-newtext/src/commonMain/kotlin/androidx/compose/foundation/newtext/text/copypasta/selection/SelectionRegistrar.kt
A compose/foundation/foundation-newtext/src/commonMain/kotlin/androidx/compose/foundation/newtext/text/copypasta/selection/SelectionRegistrarImpl.kt
A compose/foundation/foundation-newtext/src/commonMain/kotlin/androidx/compose/foundation/newtext/text/copypasta/selection/SimpleLayout.kt
A compose/foundation/foundation-newtext/src/commonMain/kotlin/androidx/compose/foundation/newtext/text/copypasta/selection/TextPreparedSelection.kt
A compose/foundation/foundation-newtext/src/commonMain/kotlin/androidx/compose/foundation/newtext/text/copypasta/selection/TextSelectionColors.kt
A compose/foundation/foundation-newtext/src/commonMain/kotlin/androidx/compose/foundation/newtext/text/copypasta/selection/TextSelectionDelegate.kt
A compose/foundation/foundation-newtext/src/commonMain/kotlin/androidx/compose/foundation/newtext/text/copypasta/selection/TextSelectionMouseDetector.kt
A compose/foundation/foundation-newtext/src/commonMain/kotlin/androidx/compose/foundation/newtext/text/modifiers/StaticTextSelectionModifierController.kt
M compose/foundation/foundation-newtext/src/commonMain/kotlin/androidx/compose/foundation/newtext/text/modifiers/TextInlineContentLayoutDrawModifier.kt
M compose/foundation/foundation-newtext/src/commonMain/kotlin/androidx/compose/foundation/newtext/text/modifiers/TextInlineContentLayoutDrawParams.kt
M compose/foundation/foundation/src/commonMain/kotlin/androidx/compose/foundation/text/selection/SelectionAdjustment.kt
M compose/foundation/foundation/src/commonMain/kotlin/androidx/compose/foundation/text/selection/SelectionMode.kt
https://android-review.googlesource.com/2366929
Branch: androidx-main
commit 325cdef1ab447cc50aeeed75a8b9af7865de23b6
Author: Sean McQuillan <seanmcq@google.com>
Date: Wed Dec 21 13:04:06 2022
Copypasta integrate selection with new modifier
This code depends on pointerInput to finalize.
For now, use remember to add lifecycle to node-like
StaticTextSelectionModifierController.
Also fixed typo s/ture/true/ linter found in presubmit
Bug:
Test: ./gradlew :com:found--d-n-s-newtext:cAT
Change-Id: I1992103b5e777a6e3e868080bb50081ee7d89fd7
M compose/foundation/foundation-newtext/build.gradle
A compose/foundation/foundation-newtext/src/androidMain/kotlin/androidx/compose/foundation/newtext/text/copypasta/ActualJvm.kt
A compose/foundation/foundation-newtext/src/androidMain/kotlin/androidx/compose/foundation/newtext/text/copypasta/ContextMenu.android.kt
A compose/foundation/foundation-newtext/src/androidMain/kotlin/androidx/compose/foundation/newtext/text/copypasta/StringHelpers.android.kt
A compose/foundation/foundation-newtext/src/androidMain/kotlin/androidx/compose/foundation/newtext/text/copypasta/TextPointerIcon.android.kt
A compose/foundation/foundation-newtext/src/androidMain/kotlin/androidx/compose/foundation/newtext/text/copypasta/TouchMode.kt
A compose/foundation/foundation-newtext/src/androidMain/kotlin/androidx/compose/foundation/newtext/text/copypasta/selection/AndroidSelectionHandles.android.kt
A compose/foundation/foundation-newtext/src/androidMain/kotlin/androidx/compose/foundation/newtext/text/copypasta/selection/SelectionManager.android.kt
M compose/foundation/foundation-newtext/src/commonMain/kotlin/androidx/compose/foundation/newtext/text/TextUsingModifier.kt
A compose/foundation/foundation-newtext/src/commonMain/kotlin/androidx/compose/foundation/newtext/text/copypasta/ContextMenu.kt
A compose/foundation/foundation-newtext/src/commonMain/kotlin/androidx/compose/foundation/newtext/text/copypasta/Expect.kt
A compose/foundation/foundation-newtext/src/commonMain/kotlin/androidx/compose/foundation/newtext/text/copypasta/LongPressTextDragObserver.kt
A compose/foundation/foundation-newtext/src/commonMain/kotlin/androidx/compose/foundation/newtext/text/copypasta/StringHelpers.kt
A compose/foundation/foundation-newtext/src/commonMain/kotlin/androidx/compose/foundation/newtext/text/copypasta/TextLayoutResultProxy.kt
A compose/foundation/foundation-newtext/src/commonMain/kotlin/androidx/compose/foundation/newtext/text/copypasta/TextPointerIcon.kt
A compose/foundation/foundation-newtext/src/commonMain/kotlin/androidx/compose/foundation/newtext/text/copypasta/TouchMode.android.kt
A compose/foundation/foundation-newtext/src/commonMain/kotlin/androidx/compose/foundation/newtext/text/copypasta/selection/MultiWidgetSelectionDelegate.kt
A compose/foundation/foundation-newtext/src/commonMain/kotlin/androidx/compose/foundation/newtext/text/copypasta/selection/Selectable.kt
A compose/foundation/foundation-newtext/src/commonMain/kotlin/androidx/compose/foundation/newtext/text/copypasta/selection/Selection.kt
A compose/foundation/foundation-newtext/src/commonMain/kotlin/androidx/compose/foundation/newtext/text/copypasta/selection/SelectionAdjustment.kt
A compose/foundation/foundation-newtext/src/commonMain/kotlin/androidx/compose/foundation/newtext/text/copypasta/selection/SelectionContainer.kt
A compose/foundation/foundation-newtext/src/commonMain/kotlin/androidx/compose/foundation/newtext/text/copypasta/selection/SelectionHandles.kt
A compose/foundation/foundation-newtext/src/commonMain/kotlin/androidx/compose/foundation/newtext/text/copypasta/selection/SelectionMagnifier.kt
A compose/foundation/foundation-newtext/src/commonMain/kotlin/androidx/compose/foundation/newtext/text/copypasta/selection/SelectionManager.kt
A compose/foundation/foundation-newtext/src/commonMain/kotlin/androidx/compose/foundation/newtext/text/copypasta/selection/SelectionMode.kt
A compose/foundation/foundation-newtext/src/commonMain/kotlin/androidx/compose/foundation/newtext/text/copypasta/selection/SelectionRegistrar.kt
A compose/foundation/foundation-newtext/src/commonMain/kotlin/androidx/compose/foundation/newtext/text/copypasta/selection/SelectionRegistrarImpl.kt
A compose/foundation/foundation-newtext/src/commonMain/kotlin/androidx/compose/foundation/newtext/text/copypasta/selection/SimpleLayout.kt
A compose/foundation/foundation-newtext/src/commonMain/kotlin/androidx/compose/foundation/newtext/text/copypasta/selection/TextPreparedSelection.kt
A compose/foundation/foundation-newtext/src/commonMain/kotlin/androidx/compose/foundation/newtext/text/copypasta/selection/TextSelectionColors.kt
A compose/foundation/foundation-newtext/src/commonMain/kotlin/androidx/compose/foundation/newtext/text/copypasta/selection/TextSelectionDelegate.kt
A compose/foundation/foundation-newtext/src/commonMain/kotlin/androidx/compose/foundation/newtext/text/copypasta/selection/TextSelectionMouseDetector.kt
A compose/foundation/foundation-newtext/src/commonMain/kotlin/androidx/compose/foundation/newtext/text/modifiers/StaticTextSelectionModifierController.kt
M compose/foundation/foundation-newtext/src/commonMain/kotlin/androidx/compose/foundation/newtext/text/modifiers/TextInlineContentLayoutDrawModifier.kt
M compose/foundation/foundation-newtext/src/commonMain/kotlin/androidx/compose/foundation/newtext/text/modifiers/TextInlineContentLayoutDrawParams.kt
M compose/foundation/foundation/src/commonMain/kotlin/androidx/compose/foundation/text/selection/SelectionAdjustment.kt
M compose/foundation/foundation/src/commonMain/kotlin/androidx/compose/foundation/text/selection/SelectionMode.kt
ap...@google.com <ap...@google.com> #12
Project: platform/frameworks/support
Branch: androidx-main
commit c4a2afae6c6487104d4a930b8165f142cc04389b
Author: Sean McQuillan <seanmcq@google.com>
Date: Wed Dec 21 13:38:57 2022
Fix inline content and enable tests
This is feature complete TextUsingModifier
Bug: b/246960758
Test: ./gradlew :com:found--d-n-s-newtext:cAT
Change-Id: I788ebe18d09d44b2ad784853e1b0e11dc7bfbee3
M compose/foundation/foundation-newtext/src/androidAndroidTest/kotlin/androidx/compose/foundation/newtext/text/CoreTextInlineContentTest.kt
M compose/foundation/foundation-newtext/src/commonMain/kotlin/androidx/compose/foundation/newtext/text/AnnotatedStringResolveInlineContent.kt
M compose/foundation/foundation-newtext/src/commonMain/kotlin/androidx/compose/foundation/newtext/text/modifiers/MultiParagraphLayoutCache.kt
https://android-review.googlesource.com/2366889
Branch: androidx-main
commit c4a2afae6c6487104d4a930b8165f142cc04389b
Author: Sean McQuillan <seanmcq@google.com>
Date: Wed Dec 21 13:38:57 2022
Fix inline content and enable tests
This is feature complete TextUsingModifier
Bug:
Test: ./gradlew :com:found--d-n-s-newtext:cAT
Change-Id: I788ebe18d09d44b2ad784853e1b0e11dc7bfbee3
M compose/foundation/foundation-newtext/src/androidAndroidTest/kotlin/androidx/compose/foundation/newtext/text/CoreTextInlineContentTest.kt
M compose/foundation/foundation-newtext/src/commonMain/kotlin/androidx/compose/foundation/newtext/text/AnnotatedStringResolveInlineContent.kt
M compose/foundation/foundation-newtext/src/commonMain/kotlin/androidx/compose/foundation/newtext/text/modifiers/MultiParagraphLayoutCache.kt
ap...@google.com <ap...@google.com> #13
Project: platform/frameworks/support
Branch: androidx-main
commit cd4c15184eedd3ccb6136ccb1ba2c8ab53f6d9b1
Author: Sean McQuillan <seanmcq@google.com>
Date: Mon Jan 09 18:52:04 2023
AnnotatedString now stores internal nullable lists
This avoids allocations during all map/sort etc operations when empty.
In Composition this saves two allocs for Text("Ok")
// before
300 allocs
// after
298 allocs
Test: :com:ui:ui-text:cAT :com:ui:ui-text:test
Test: bench
Bug: b/246960758
Change-Id: I5a0cd09e174a4e6d0842a1480b1cb55bfb0ea767
M compose/ui/ui-text/src/androidMain/kotlin/androidx/compose/ui/text/platform/AndroidAccessibilitySpannableString.android.kt
M compose/ui/ui-text/src/commonMain/kotlin/androidx/compose/ui/text/AnnotatedString.kt
M compose/ui/ui-text/src/commonMain/kotlin/androidx/compose/ui/text/Savers.kt
M compose/ui/ui-text/src/jvmMain/kotlin/androidx/compose/ui/text/JvmAnnotatedString.jvm.kt
M compose/ui/ui-text/src/test/java/androidx/compose/ui/text/AnnotatedStringBuilderTest.kt
M compose/ui/ui-text/src/test/java/androidx/compose/ui/text/AnnotatedStringTest.kt
https://android-review.googlesource.com/2380668
Branch: androidx-main
commit cd4c15184eedd3ccb6136ccb1ba2c8ab53f6d9b1
Author: Sean McQuillan <seanmcq@google.com>
Date: Mon Jan 09 18:52:04 2023
AnnotatedString now stores internal nullable lists
This avoids allocations during all map/sort etc operations when empty.
In Composition this saves two allocs for Text("Ok")
// before
300 allocs
// after
298 allocs
Test: :com:ui:ui-text:cAT :com:ui:ui-text:test
Test: bench
Bug:
Change-Id: I5a0cd09e174a4e6d0842a1480b1cb55bfb0ea767
M compose/ui/ui-text/src/androidMain/kotlin/androidx/compose/ui/text/platform/AndroidAccessibilitySpannableString.android.kt
M compose/ui/ui-text/src/commonMain/kotlin/androidx/compose/ui/text/AnnotatedString.kt
M compose/ui/ui-text/src/commonMain/kotlin/androidx/compose/ui/text/Savers.kt
M compose/ui/ui-text/src/jvmMain/kotlin/androidx/compose/ui/text/JvmAnnotatedString.jvm.kt
M compose/ui/ui-text/src/test/java/androidx/compose/ui/text/AnnotatedStringBuilderTest.kt
M compose/ui/ui-text/src/test/java/androidx/compose/ui/text/AnnotatedStringTest.kt
ap...@google.com <ap...@google.com> #14
Project: platform/frameworks/support
Branch: androidx-main
commit 383a62d168407ffee3590928cbe651cc87e0de80
Author: Sean McQuillan <seanmcq@google.com>
Date: Mon Jan 09 17:04:21 2023
Remove OnGloballyPositioned overhead from TextUsingBenchmark
This does not hit any profiled benchmarks, but will reduce the overall
cost of Text on a screen.
Test: bench
Bug: b/246960758
Change-Id: Ic41a58bf39f02eca7b5bca998893093623ab05bf
M compose/foundation/foundation-newtext/src/commonMain/kotlin/androidx/compose/foundation/newtext/text/TextUsingModifier.kt
A compose/foundation/foundation-newtext/src/commonMain/kotlin/androidx/compose/foundation/newtext/text/modifiers/SelectableStaticTextModifier.kt
M compose/foundation/foundation-newtext/src/commonMain/kotlin/androidx/compose/foundation/newtext/text/modifiers/StaticTextModifier.kt
https://android-review.googlesource.com/2380666
Branch: androidx-main
commit 383a62d168407ffee3590928cbe651cc87e0de80
Author: Sean McQuillan <seanmcq@google.com>
Date: Mon Jan 09 17:04:21 2023
Remove OnGloballyPositioned overhead from TextUsingBenchmark
This does not hit any profiled benchmarks, but will reduce the overall
cost of Text on a screen.
Test: bench
Bug:
Change-Id: Ic41a58bf39f02eca7b5bca998893093623ab05bf
M compose/foundation/foundation-newtext/src/commonMain/kotlin/androidx/compose/foundation/newtext/text/TextUsingModifier.kt
A compose/foundation/foundation-newtext/src/commonMain/kotlin/androidx/compose/foundation/newtext/text/modifiers/SelectableStaticTextModifier.kt
M compose/foundation/foundation-newtext/src/commonMain/kotlin/androidx/compose/foundation/newtext/text/modifiers/StaticTextModifier.kt
ap...@google.com <ap...@google.com> #15
Project: platform/frameworks/support
Branch: androidx-main
commit ba0972437dc77a2da386c15f98093cf0028ae188
Author: Sean McQuillan <seanmcq@google.com>
Date: Wed Jan 11 17:20:01 2023
Rename modifier classes in preparation for String|AnnotatedString
Bug: b/246960758
Change-Id: Ifa262aa01150b0cea5373881ccb51d9498ae2d2e
M compose/foundation/foundation-newtext/src/commonMain/kotlin/androidx/compose/foundation/newtext/text/modifiers/SelectableTextAnnotatedStringElement.kt
M compose/foundation/foundation-newtext/src/commonMain/kotlin/androidx/compose/foundation/newtext/text/modifiers/SelectableTextAnnotatedStringNode.kt
M compose/foundation/foundation-newtext/src/commonMain/kotlin/androidx/compose/foundation/newtext/text/modifiers/TextAnnotatedStringElement.kt
M compose/foundation/foundation-newtext/src/commonMain/kotlin/androidx/compose/foundation/newtext/text/modifiers/TextAnnotatedStringNode.kt
https://android-review.googlesource.com/2385533
Branch: androidx-main
commit ba0972437dc77a2da386c15f98093cf0028ae188
Author: Sean McQuillan <seanmcq@google.com>
Date: Wed Jan 11 17:20:01 2023
Rename modifier classes in preparation for String|AnnotatedString
Bug:
Change-Id: Ifa262aa01150b0cea5373881ccb51d9498ae2d2e
M compose/foundation/foundation-newtext/src/commonMain/kotlin/androidx/compose/foundation/newtext/text/modifiers/SelectableTextAnnotatedStringElement.kt
M compose/foundation/foundation-newtext/src/commonMain/kotlin/androidx/compose/foundation/newtext/text/modifiers/SelectableTextAnnotatedStringNode.kt
M compose/foundation/foundation-newtext/src/commonMain/kotlin/androidx/compose/foundation/newtext/text/modifiers/TextAnnotatedStringElement.kt
M compose/foundation/foundation-newtext/src/commonMain/kotlin/androidx/compose/foundation/newtext/text/modifiers/TextAnnotatedStringNode.kt
ap...@google.com <ap...@google.com> #16
Project: platform/frameworks/support
Branch: androidx-main
commit c33f346f6403266ee3fd76e34a0a9da749175310
Author: Sean McQuillan <seanmcq@google.com>
Date: Wed Jan 11 14:59:05 2023
Refactor StaticTextModifier to avoid params alloc
Instead, element directly mutates node.
LayoutCache became mutable as well.
// after
Connected to process 29220 on device 'google-pixel_3a_xl-8C1AX00FLZ'.
154,779 ns 127 allocs trace ModifierAllAppsSetText.recomposeOnly[size=2]
871,749 ns 297 allocs trace ModifierAllAppsSetText.recomposeMeasureLayout[size=2]
110,276 ns 126 allocs trace ModifierAllAppsSetText.recomposeOnly[size=16]
724,428 ns 296 allocs trace ModifierAllAppsSetText.recomposeMeasureLayout[size=16]
60,532 ns 126 allocs trace ModifierAllAppsSetText.recomposeOnly[size=32]
487,778 ns 296 allocs trace ModifierAllAppsSetText.recomposeMeasureLayout[size=32]
58,389 ns 126 allocs trace ModifierAllAppsSetText.recomposeOnly[size=64]
545,027 ns 323 allocs trace ModifierAllAppsSetText.recomposeMeasureLayout[size=64]
// before
171,664 ns 128 allocs trace ModifierAllAppsSetText.recomposeOnly[size=2]
1,149,593 ns 299 allocs trace ModifierAllAppsSetText.recomposeMeasureLayout[size=2]
118,190 ns 127 allocs trace ModifierAllAppsSetText.recomposeOnly[size=16]
813,664 ns 298 allocs trace ModifierAllAppsSetText.recomposeMeasureLayout[size=16]
59,823 ns 127 allocs trace ModifierAllAppsSetText.recomposeOnly[size=32]
541,924 ns 298 allocs trace ModifierAllAppsSetText.recomposeMeasureLayout[size=32]
57,761 ns 127 allocs trace ModifierAllAppsSetText.recomposeOnly[size=64]
575,203 ns 324 allocs trace ModifierAllAppsSetText.recomposeMeasureLayout[size=64]
Bug: b/246960758
Test: ./gradlew :com:found:found-d-n-s-newtext:test cAT
Change-Id: Id83cb48cfcf4f9d5017d7045d3babeeb3fbe6f3e
M compose/foundation/foundation-newtext/src/androidAndroidTest/kotlin/androidx/compose/foundation/newtext/text/modifiers/MultiParagraphLayoutCacheTest.kt
M compose/foundation/foundation-newtext/src/androidAndroidTest/kotlin/androidx/compose/foundation/newtext/text/modifiers/MultiParagraphLayoutCacheWidthWithLetterSpacingTest.kt
M compose/foundation/foundation-newtext/src/androidAndroidTest/kotlin/androidx/compose/foundation/newtext/text/modifiers/TextLayoutResultIntegrationTest.kt
M compose/foundation/foundation-newtext/src/commonMain/kotlin/androidx/compose/foundation/newtext/text/TextUsingModifier.kt
M compose/foundation/foundation-newtext/src/commonMain/kotlin/androidx/compose/foundation/newtext/text/modifiers/MinMaxLinesCoercer.kt
M compose/foundation/foundation-newtext/src/commonMain/kotlin/androidx/compose/foundation/newtext/text/modifiers/MultiParagraphLayoutCache.kt
M compose/foundation/foundation-newtext/src/commonMain/kotlin/androidx/compose/foundation/newtext/text/modifiers/SelectableStaticTextModifier.kt
A compose/foundation/foundation-newtext/src/commonMain/kotlin/androidx/compose/foundation/newtext/text/modifiers/SelectableTextAnnotatedStringElement.kt
M compose/foundation/foundation-newtext/src/commonMain/kotlin/androidx/compose/foundation/newtext/text/modifiers/SelectionController.kt
D compose/foundation/foundation-newtext/src/commonMain/kotlin/androidx/compose/foundation/newtext/text/modifiers/StaticTextLayoutDrawParams.kt
M compose/foundation/foundation-newtext/src/commonMain/kotlin/androidx/compose/foundation/newtext/text/modifiers/StaticTextModifier.kt
A compose/foundation/foundation-newtext/src/commonMain/kotlin/androidx/compose/foundation/newtext/text/modifiers/TextAnnotatedStringElement.kt
M compose/foundation/foundation-newtext/src/test/kotlin/androidx/compose/foundation/newtext/text/modifiers/MultiParagraphLayoutCacheTest.kt
D compose/foundation/foundation-newtext/src/test/kotlin/androidx/compose/foundation/newtext/text/modifiers/StaticTextLayouDrawParamsTest.kt
https://android-review.googlesource.com/2385532
Branch: androidx-main
commit c33f346f6403266ee3fd76e34a0a9da749175310
Author: Sean McQuillan <seanmcq@google.com>
Date: Wed Jan 11 14:59:05 2023
Refactor StaticTextModifier to avoid params alloc
Instead, element directly mutates node.
LayoutCache became mutable as well.
// after
Connected to process 29220 on device 'google-pixel_3a_xl-8C1AX00FLZ'.
154,779 ns 127 allocs trace ModifierAllAppsSetText.recomposeOnly[size=2]
871,749 ns 297 allocs trace ModifierAllAppsSetText.recomposeMeasureLayout[size=2]
110,276 ns 126 allocs trace ModifierAllAppsSetText.recomposeOnly[size=16]
724,428 ns 296 allocs trace ModifierAllAppsSetText.recomposeMeasureLayout[size=16]
60,532 ns 126 allocs trace ModifierAllAppsSetText.recomposeOnly[size=32]
487,778 ns 296 allocs trace ModifierAllAppsSetText.recomposeMeasureLayout[size=32]
58,389 ns 126 allocs trace ModifierAllAppsSetText.recomposeOnly[size=64]
545,027 ns 323 allocs trace ModifierAllAppsSetText.recomposeMeasureLayout[size=64]
// before
171,664 ns 128 allocs trace ModifierAllAppsSetText.recomposeOnly[size=2]
1,149,593 ns 299 allocs trace ModifierAllAppsSetText.recomposeMeasureLayout[size=2]
118,190 ns 127 allocs trace ModifierAllAppsSetText.recomposeOnly[size=16]
813,664 ns 298 allocs trace ModifierAllAppsSetText.recomposeMeasureLayout[size=16]
59,823 ns 127 allocs trace ModifierAllAppsSetText.recomposeOnly[size=32]
541,924 ns 298 allocs trace ModifierAllAppsSetText.recomposeMeasureLayout[size=32]
57,761 ns 127 allocs trace ModifierAllAppsSetText.recomposeOnly[size=64]
575,203 ns 324 allocs trace ModifierAllAppsSetText.recomposeMeasureLayout[size=64]
Bug:
Test: ./gradlew :com:found:found-d-n-s-newtext:test cAT
Change-Id: Id83cb48cfcf4f9d5017d7045d3babeeb3fbe6f3e
M compose/foundation/foundation-newtext/src/androidAndroidTest/kotlin/androidx/compose/foundation/newtext/text/modifiers/MultiParagraphLayoutCacheTest.kt
M compose/foundation/foundation-newtext/src/androidAndroidTest/kotlin/androidx/compose/foundation/newtext/text/modifiers/MultiParagraphLayoutCacheWidthWithLetterSpacingTest.kt
M compose/foundation/foundation-newtext/src/androidAndroidTest/kotlin/androidx/compose/foundation/newtext/text/modifiers/TextLayoutResultIntegrationTest.kt
M compose/foundation/foundation-newtext/src/commonMain/kotlin/androidx/compose/foundation/newtext/text/TextUsingModifier.kt
M compose/foundation/foundation-newtext/src/commonMain/kotlin/androidx/compose/foundation/newtext/text/modifiers/MinMaxLinesCoercer.kt
M compose/foundation/foundation-newtext/src/commonMain/kotlin/androidx/compose/foundation/newtext/text/modifiers/MultiParagraphLayoutCache.kt
M compose/foundation/foundation-newtext/src/commonMain/kotlin/androidx/compose/foundation/newtext/text/modifiers/SelectableStaticTextModifier.kt
A compose/foundation/foundation-newtext/src/commonMain/kotlin/androidx/compose/foundation/newtext/text/modifiers/SelectableTextAnnotatedStringElement.kt
M compose/foundation/foundation-newtext/src/commonMain/kotlin/androidx/compose/foundation/newtext/text/modifiers/SelectionController.kt
D compose/foundation/foundation-newtext/src/commonMain/kotlin/androidx/compose/foundation/newtext/text/modifiers/StaticTextLayoutDrawParams.kt
M compose/foundation/foundation-newtext/src/commonMain/kotlin/androidx/compose/foundation/newtext/text/modifiers/StaticTextModifier.kt
A compose/foundation/foundation-newtext/src/commonMain/kotlin/androidx/compose/foundation/newtext/text/modifiers/TextAnnotatedStringElement.kt
M compose/foundation/foundation-newtext/src/test/kotlin/androidx/compose/foundation/newtext/text/modifiers/MultiParagraphLayoutCacheTest.kt
D compose/foundation/foundation-newtext/src/test/kotlin/androidx/compose/foundation/newtext/text/modifiers/StaticTextLayouDrawParamsTest.kt
ap...@google.com <ap...@google.com> #17
Project: platform/frameworks/support
Branch: androidx-main
commit 9e1aa8ac0bf298ea252b9251930211d4a83a8dd5
Author: Sean McQuillan <seanmcq@google.com>
Date: Thu Jan 12 13:05:47 2023
Split String to a optimized path
Jump directly to Paragraph, skipping MultiParagraph
/// before
155,091 ns 127 allocs trace ModifierAllAppsSetText.recomposeOnly[size=2]
1,202,912 ns 297 allocs trace ModifierAllAppsSetText.recomposeMeasureLayout[size=2]
110,556 ns 126 allocs trace ModifierAllAppsSetText.recomposeOnly[size=16]
722,395 ns 296 allocs trace ModifierAllAppsSetText.recomposeMeasureLayout[size=16]
59,376 ns 126 allocs trace ModifierAllAppsSetText.recomposeOnly[size=32]
558,085 ns 296 allocs trace ModifierAllAppsSetText.recomposeMeasureLayout[size=32]
58,667 ns 126 allocs trace ModifierAllAppsSetText.recomposeOnly[size=64]
618,217 ns 322 allocs trace ModifierAllAppsSetText.recomposeMeasureLayout[size=64]
/// after
154,641 ns 126 allocs trace ModifierAllAppsSetText.recomposeOnly[size=2]
836,262 ns 269 allocs trace ModifierAllAppsSetText.recomposeMeasureLayout[size=2]
111,169 ns 125 allocs trace ModifierAllAppsSetText.recomposeOnly[size=16]
639,055 ns 268 allocs trace ModifierAllAppsSetText.recomposeMeasureLayout[size=16]
59,712 ns 125 allocs trace ModifierAllAppsSetText.recomposeOnly[size=32]
469,161 ns 268 allocs trace ModifierAllAppsSetText.recomposeMeasureLayout[size=32]
58,248 ns 125 allocs trace ModifierAllAppsSetText.recomposeOnly[size=64]
522,301 ns 294 allocs trace ModifierAllAppsSetText.recomposeMeasureLayout[size=64]
Bug: b/246960758
Test: ./gradlew :com:found:found-d-n-s-newtext:cAT test
Change-Id: I39dc3eaa3e2ba585d6a57b804e6d6da3aa973966
M compose/foundation/foundation-newtext/src/commonMain/kotlin/androidx/compose/foundation/newtext/text/TextUsingModifier.kt
A compose/foundation/foundation-newtext/src/commonMain/kotlin/androidx/compose/foundation/newtext/text/modifiers/ParagraphLayoutCache.kt
A compose/foundation/foundation-newtext/src/commonMain/kotlin/androidx/compose/foundation/newtext/text/modifiers/TextStringSimpleElement.kt
A compose/foundation/foundation-newtext/src/commonMain/kotlin/androidx/compose/foundation/newtext/text/modifiers/TextStringSimpleNode.kt
https://android-review.googlesource.com/2386898
Branch: androidx-main
commit 9e1aa8ac0bf298ea252b9251930211d4a83a8dd5
Author: Sean McQuillan <seanmcq@google.com>
Date: Thu Jan 12 13:05:47 2023
Split String to a optimized path
Jump directly to Paragraph, skipping MultiParagraph
/// before
155,091 ns 127 allocs trace ModifierAllAppsSetText.recomposeOnly[size=2]
1,202,912 ns 297 allocs trace ModifierAllAppsSetText.recomposeMeasureLayout[size=2]
110,556 ns 126 allocs trace ModifierAllAppsSetText.recomposeOnly[size=16]
722,395 ns 296 allocs trace ModifierAllAppsSetText.recomposeMeasureLayout[size=16]
59,376 ns 126 allocs trace ModifierAllAppsSetText.recomposeOnly[size=32]
558,085 ns 296 allocs trace ModifierAllAppsSetText.recomposeMeasureLayout[size=32]
58,667 ns 126 allocs trace ModifierAllAppsSetText.recomposeOnly[size=64]
618,217 ns 322 allocs trace ModifierAllAppsSetText.recomposeMeasureLayout[size=64]
/// after
154,641 ns 126 allocs trace ModifierAllAppsSetText.recomposeOnly[size=2]
836,262 ns 269 allocs trace ModifierAllAppsSetText.recomposeMeasureLayout[size=2]
111,169 ns 125 allocs trace ModifierAllAppsSetText.recomposeOnly[size=16]
639,055 ns 268 allocs trace ModifierAllAppsSetText.recomposeMeasureLayout[size=16]
59,712 ns 125 allocs trace ModifierAllAppsSetText.recomposeOnly[size=32]
469,161 ns 268 allocs trace ModifierAllAppsSetText.recomposeMeasureLayout[size=32]
58,248 ns 125 allocs trace ModifierAllAppsSetText.recomposeOnly[size=64]
522,301 ns 294 allocs trace ModifierAllAppsSetText.recomposeMeasureLayout[size=64]
Bug:
Test: ./gradlew :com:found:found-d-n-s-newtext:cAT test
Change-Id: I39dc3eaa3e2ba585d6a57b804e6d6da3aa973966
M compose/foundation/foundation-newtext/src/commonMain/kotlin/androidx/compose/foundation/newtext/text/TextUsingModifier.kt
A compose/foundation/foundation-newtext/src/commonMain/kotlin/androidx/compose/foundation/newtext/text/modifiers/ParagraphLayoutCache.kt
A compose/foundation/foundation-newtext/src/commonMain/kotlin/androidx/compose/foundation/newtext/text/modifiers/TextStringSimpleElement.kt
A compose/foundation/foundation-newtext/src/commonMain/kotlin/androidx/compose/foundation/newtext/text/modifiers/TextStringSimpleNode.kt
se...@google.com <se...@google.com>
ap...@google.com <ap...@google.com> #18
Project: platform/frameworks/support
Branch: androidx-main
commit 90f4c99038ccfcfd3f004bc54b666b936de0dda2
Author: Sean McQuillan <seanmcq@google.com>
Date: Tue Mar 21 13:16:22 2023
Modifier based Text now correctly computes maxLines
Allow Paragaraph to decide maxLines for static text, like old BasicText.
Bug: b/246960758
Test: :com:found:found:cAT
Change-Id: Iba8e03806a7a69cf7558bb1a966f0c080d2288d1
M compose/foundation/foundation/src/androidAndroidTest/kotlin/androidx/compose/foundation/text/modifiers/MultiParagraphLayoutCacheTest.kt
A compose/foundation/foundation/src/androidAndroidTest/kotlin/androidx/compose/foundation/text/modifiers/ParagraphLayoutCacheTest.kt
M compose/foundation/foundation/src/commonMain/kotlin/androidx/compose/foundation/text/modifiers/MinLinesConstrainer.kt
M compose/foundation/foundation/src/commonMain/kotlin/androidx/compose/foundation/text/modifiers/MultiParagraphLayoutCache.kt
M compose/foundation/foundation/src/commonMain/kotlin/androidx/compose/foundation/text/modifiers/ParagraphLayoutCache.kt
https://android-review.googlesource.com/2500945
Branch: androidx-main
commit 90f4c99038ccfcfd3f004bc54b666b936de0dda2
Author: Sean McQuillan <seanmcq@google.com>
Date: Tue Mar 21 13:16:22 2023
Modifier based Text now correctly computes maxLines
Allow Paragaraph to decide maxLines for static text, like old BasicText.
Bug:
Test: :com:found:found:cAT
Change-Id: Iba8e03806a7a69cf7558bb1a966f0c080d2288d1
M compose/foundation/foundation/src/androidAndroidTest/kotlin/androidx/compose/foundation/text/modifiers/MultiParagraphLayoutCacheTest.kt
A compose/foundation/foundation/src/androidAndroidTest/kotlin/androidx/compose/foundation/text/modifiers/ParagraphLayoutCacheTest.kt
M compose/foundation/foundation/src/commonMain/kotlin/androidx/compose/foundation/text/modifiers/MinLinesConstrainer.kt
M compose/foundation/foundation/src/commonMain/kotlin/androidx/compose/foundation/text/modifiers/MultiParagraphLayoutCache.kt
M compose/foundation/foundation/src/commonMain/kotlin/androidx/compose/foundation/text/modifiers/ParagraphLayoutCache.kt
ap...@google.com <ap...@google.com> #19
Project: platform/frameworks/support
Branch: androidx-main
commit 3c50497658bbee90a40a88a3647ba1c485782d48
Author: Sean McQuillan <seanmcq@google.com>
Date: Mon Mar 20 14:23:18 2023
Enable the new Modifier-backed Text by default
Bug: b/246960758
Test: cAT
Change-Id: Iada234d046dffb92e45c1a910f6976aa1dd339cf
M compose/foundation/foundation/src/commonMain/kotlin/androidx/compose/foundation/text/BasicText.kt
https://android-review.googlesource.com/2498396
Branch: androidx-main
commit 3c50497658bbee90a40a88a3647ba1c485782d48
Author: Sean McQuillan <seanmcq@google.com>
Date: Mon Mar 20 14:23:18 2023
Enable the new Modifier-backed Text by default
Bug:
Test: cAT
Change-Id: Iada234d046dffb92e45c1a910f6976aa1dd339cf
M compose/foundation/foundation/src/commonMain/kotlin/androidx/compose/foundation/text/BasicText.kt
se...@google.com <se...@google.com>
na...@google.com <na...@google.com> #20
The following release(s) address this bug.It is possible this bug has only been partially addressed:
androidx.compose.foundation:foundation:1.5.0-alpha02
ap...@google.com <ap...@google.com> #21
Project: platform/frameworks/support
Branch: androidx-main
commit a79c4d456ce18733d152c08a72781f84af8bb8e0
Author: Sean McQuillan <seanmcq@google.com>
Date: Wed Apr 26 13:42:00 2023
Remove old text stack, stabilizing Text for 1.5 release.
This removes the old text stack completely, in preparation for the 1.5 release.
Bug: b/246960758
Test: ./gradle :com:found:found:[test|cAT]
Relnote: "New text stack is newly stable in 1.5."
Relnote: "NewTextRendering1_5 configuration option is removed"
Change-Id: Id5f40ede246efd5679fde7500a7f90e2b6faa7d9
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/text/TextUsingModifierMinMaxLinesTest.kt
M compose/foundation/foundation/src/androidAndroidTest/kotlin/androidx/compose/foundation/text/modifiers/BasicTextSemanticsTest.kt
M compose/foundation/foundation/src/androidAndroidTest/kotlin/androidx/compose/foundation/text/modifiers/TextStringSimpleNodeTest.kt
M compose/foundation/foundation/src/commonMain/kotlin/androidx/compose/foundation/text/AnnotatedStringResolveInlineContent.kt
M compose/foundation/foundation/src/commonMain/kotlin/androidx/compose/foundation/text/BasicText.kt
D compose/foundation/foundation/src/commonMain/kotlin/androidx/compose/foundation/text/CoreText.kt
M compose/foundation/foundation/src/commonMain/kotlin/androidx/compose/foundation/text/TextDelegate.kt
D compose/foundation/foundation/src/commonMain/kotlin/androidx/compose/foundation/text/TextUsingModifier.kt
D compose/foundation/foundation/src/test/kotlin/androidx/compose/foundation/text/TextControllerTest.kt
D compose/foundation/foundation/src/test/kotlin/androidx/compose/foundation/text/TextSelectionLongPressDragTest.kt
D compose/foundation/foundation/src/test/kotlin/androidx/compose/foundation/text/TextStateTest.kt
M compose/integration-tests/demos/src/main/java/androidx/compose/integration/demos/DemoApp.kt
M tv/tv-material/src/main/java/androidx/tv/material3/Text.kt
https://android-review.googlesource.com/2566214
Branch: androidx-main
commit a79c4d456ce18733d152c08a72781f84af8bb8e0
Author: Sean McQuillan <seanmcq@google.com>
Date: Wed Apr 26 13:42:00 2023
Remove old text stack, stabilizing Text for 1.5 release.
This removes the old text stack completely, in preparation for the 1.5 release.
Bug:
Test: ./gradle :com:found:found:[test|cAT]
Relnote: "New text stack is newly stable in 1.5."
Relnote: "NewTextRendering1_5 configuration option is removed"
Change-Id: Id5f40ede246efd5679fde7500a7f90e2b6faa7d9
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/text/TextUsingModifierMinMaxLinesTest.kt
M compose/foundation/foundation/src/androidAndroidTest/kotlin/androidx/compose/foundation/text/modifiers/BasicTextSemanticsTest.kt
M compose/foundation/foundation/src/androidAndroidTest/kotlin/androidx/compose/foundation/text/modifiers/TextStringSimpleNodeTest.kt
M compose/foundation/foundation/src/commonMain/kotlin/androidx/compose/foundation/text/AnnotatedStringResolveInlineContent.kt
M compose/foundation/foundation/src/commonMain/kotlin/androidx/compose/foundation/text/BasicText.kt
D compose/foundation/foundation/src/commonMain/kotlin/androidx/compose/foundation/text/CoreText.kt
M compose/foundation/foundation/src/commonMain/kotlin/androidx/compose/foundation/text/TextDelegate.kt
D compose/foundation/foundation/src/commonMain/kotlin/androidx/compose/foundation/text/TextUsingModifier.kt
D compose/foundation/foundation/src/test/kotlin/androidx/compose/foundation/text/TextControllerTest.kt
D compose/foundation/foundation/src/test/kotlin/androidx/compose/foundation/text/TextSelectionLongPressDragTest.kt
D compose/foundation/foundation/src/test/kotlin/androidx/compose/foundation/text/TextStateTest.kt
M compose/integration-tests/demos/src/main/java/androidx/compose/integration/demos/DemoApp.kt
M tv/tv-material/src/main/java/androidx/tv/material3/Text.kt
pr...@google.com <pr...@google.com> #22
The following release(s) address this bug.It is possible this bug has only been partially addressed:
androidx.tv:tv-material:1.0.0-alpha07
Description
New modifier for Text composable