Status Update
Comments
si...@google.com <si...@google.com> #2
Thanks for reporting this!
The intention here was for parentWidth
to be hidden and it will be fixed soon. I see the potential convenience of exposing parentWidth
and parentHeight
, but in general it leads to a not very clean data flow: it would mean that after telling the layout system my size I receive the size back although my initial calculation is still in scope. I am afraid this would bring more confusion than convenience longer term.
Just as a background, the reason we have parentWidth
and not parentHeight
is that it is needed to calculate horizontally mirrored positioning of children for layout direction RTL when placeRelative
is used.
si...@google.com <si...@google.com>
si...@google.com <si...@google.com>
di...@google.com <di...@google.com> #3
Branch: androidx-master-dev
commit 36b705d1dd148fc57e8089a94d485e0bfcd05d0f
Author: Mihai Popa <popam@google.com>
Date: Mon Sep 14 11:59:30 2020
Hide parentWidth and parentLD in PlacementScope
When writing a custom layout, parentWidth and parentLayoutDirection
should not be read from the placement block as they are available or
calculated in the measure block. This CL is making them protected in
PlacementScope. The CL also merges the PlacementScope implementations
used for modifiers and layout nodes, which is now possible after the
modules' merging.
Relnote: PlacementScope#parentWidth and PlacementScope#parentLayoutDirection can no longer be read from the placement block of a custom layout.
Fixes: 168295623
Test: tests in foundation-layout
Change-Id: Icc1ae00d774147c5fa7006c4bb408c99c7731690
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/commonMain/kotlin/androidx/compose/ui/MeasureScope.kt
M compose/ui/ui/src/commonMain/kotlin/androidx/compose/ui/Placeable.kt
M compose/ui/ui/src/commonMain/kotlin/androidx/compose/ui/node/DelegatingLayoutNodeWrapper.kt
M compose/ui/ui/src/commonMain/kotlin/androidx/compose/ui/node/LayoutNode.kt
M compose/ui/ui/src/commonMain/kotlin/androidx/compose/ui/node/OuterMeasurablePlaceable.kt
di...@google.com <di...@google.com> #4 Restricted
di...@google.com <di...@google.com> #5
Note that parentWidth
was referring to the size of the current modifier (the same one returned when calling layout
), not to the size of the parent.
In general there would be a way to extend the layout system to provide the info you are looking for (the size of our parent when placing our children). However, I do not think this would be a good idea because modifiers relying on the parent size would not be nicely composable. I can write a modifier that positions children at a percentage of the parent but what if before me there is a modifier that offsets me? The percentage will not work anymore for my content.
ju...@gmail.com <ju...@gmail.com> #6
Hmm. I see that as completely valid though. You might want to place it in the center but offset X a number of DP.
But I understand there might be other complexities. I was just surprised there was no way to write such a modifier today.
no...@gmail.com <no...@gmail.com> #7
According to [¡a conversation from the Compose slack channel on May 2021(see
Now that the support for downloadable fonts in Compose is fixed (April 2022), what is the state of the Emoji compatibility in Compose?
se...@google.com <se...@google.com> #8
Yep, static text integration is unblocked.
Editable text will take more work.
se...@google.com <se...@google.com> #9
Doing planning now, will take comment as a vote for priority :)
bu...@google.com <bu...@google.com> #11
br...@gmail.com <br...@gmail.com> #12
+1 🙏
ap...@google.com <ap...@google.com> #14
Branch: androidx-main
commit 358ce0cf2083f6d0e2e2a0897c860a6c1b71b514
Author: Sean McQuillan <seanmcq@google.com>
Date: Mon Nov 07 15:37:22 2022
Support for EmojiCompat in Compose
Add support for EmojiCompat for all Text and TextField in compose
This adds support for EmojiCompat to all Compose based applications.
EmojiCompat configuration must be done outside of Compose, and the global EmojiCompat config will be used.
This change enables automatic configuration of EmojiCompat to compose :ui:ui-text, similar to the configuration in appcompat.
Apps that wish to configure emojicompat monually should continue to disable [EmojiCompatIniitalizer] in their manifest.
Changes:
* Text, BasicText, *TextField, BasicTextField will all now call EmojiCompat.process as needed
* If EmojiCompat loads the font after a Paragraph or MultiParagraph is create, [hasStaleReslovedFonts] will become true
Bug:
Test: ./gradlew :com:ui:ui-text:cAT
Relnote: "Added EmojiCompat to Compose"
Change-Id: Ibf6f9f9d37c6280fe1b051269b127f0dfb1d6b6a
A compose/foundation/foundation/integration-tests/foundation-demos/src/main/java/androidx/compose/foundation/demos/text/EmojiCompatDemo.kt
M compose/foundation/foundation/integration-tests/foundation-demos/src/main/java/androidx/compose/foundation/demos/text/TextDemos.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/build.gradle
A compose/ui/ui-text/src/androidAndroidTest/kotlin/androidx/compose/ui/text/platform/AndroidParagraphIntrinsicsTest.kt
A compose/ui/ui-text/src/androidAndroidTest/kotlin/androidx/compose/ui/text/platform/EmojiCompatStatusTest.kt
M compose/ui/ui-text/src/androidMain/kotlin/androidx/compose/ui/text/platform/AndroidParagraphHelper.android.kt
M compose/ui/ui-text/src/androidMain/kotlin/androidx/compose/ui/text/platform/AndroidParagraphIntrinsics.android.kt
A compose/ui/ui-text/src/androidMain/kotlin/androidx/compose/ui/text/platform/EmojiCompatStatus.kt
ap...@google.com <ap...@google.com> #15
Branch: androidx-main
commit e5c660680805acb637b7a8b7ee26ba168562ef1f
Author: zzeng <zzeng@google.com>
Date: Mon Nov 21 16:08:50 2022
Let EmojiCompat supports returning emoji boundaries.
This is part of the effort to make Compose Apps use EmojiCompat to determine cursor movement or deletion.
Bug:
Test: ./gradlew :emoji2:emoji2:cAT
Relnote: "Added EmojiCompat to Compose"
Change-Id: I96f37bd992fc8cf305e4cb5e3bbe9ea3be19e52b
M emoji2/emoji2/api/current.txt
M emoji2/emoji2/api/public_plus_experimental_current.txt
M emoji2/emoji2/api/restricted_current.txt
M emoji2/emoji2/src/androidTest/java/androidx/emoji2/text/EmojiProcessorTest.java
M emoji2/emoji2/src/main/java/androidx/emoji2/text/EmojiCompat.java
M emoji2/emoji2/src/main/java/androidx/emoji2/text/EmojiProcessor.java
ap...@google.com <ap...@google.com> #16
Branch: androidx-main
commit 42039d57d8357094bdacb901d28689ba55b99d92
Author: zzeng <zzeng@google.com>
Date: Fri Dec 02 15:34:12 2022
Support for EmojiCompat in Compose
Add support for cursor movement and deletion by EmojiCompat in Compose.
Bug: 139326806
Test: NA
Change-Id: I34773512ffbfaddbd796e8b9c33447e114b9a651
M compose/foundation/foundation/build.gradle
M compose/foundation/foundation/src/androidMain/kotlin/androidx/compose/foundation/text/StringHelpers.android.kt
M settings.gradle
ap...@google.com <ap...@google.com> #17
Branch: androidx-main
commit 5f032489693eed2771265c47da815a908b4a06fb
Author: Sean McQuillan <seanmcq@google.com>
Date: Thu Dec 08 14:54:39 2022
Add EmojiCompat editorInfo when configured
Bug:
Test: ./gradlew :com:ui:ui:cAT
Change-Id: Ic121f989d549309058c36fd54fd3caa50f23f172
M compose/ui/ui/build.gradle
A compose/ui/ui/src/androidAndroidTest/kotlin/androidx/compose/ui/input/TextInputServiceAndroidEmojiTest.kt
M compose/ui/ui/src/androidMain/kotlin/androidx/compose/ui/text/input/TextInputServiceAndroid.android.kt
ap...@google.com <ap...@google.com> #18
Branch: androidx-main
commit 5b20374ecd983e5078f8ea6852ae60888d2007e4
Author: Sean McQuillan <seanmcq@google.com>
Date: Thu Dec 15 15:56:42 2022
PlatformParagraphStyle to disable emoji processing for a Paragraph.
Fixes:
Test: ./gradlew :com:ui:ui-text:cAT
Relnote: "Add PlatformTextStyle(emojiSupportMatch) to optionally disable emoji support processing for a single Paragraph."
Change-Id: Ia710096395ecfe4bbd986326882331e0a7e6a74d
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/androidAndroidTest/kotlin/androidx/compose/ui/text/PlatformParagraphStyleTest.kt
M compose/ui/ui-text/src/androidAndroidTest/kotlin/androidx/compose/ui/text/PlatformTextStyleTest.kt
M compose/ui/ui-text/src/androidAndroidTest/kotlin/androidx/compose/ui/text/platform/AndroidParagraphIntrinsicsTest.kt
M compose/ui/ui-text/src/androidMain/kotlin/androidx/compose/ui/text/AndroidTextStyle.android.kt
A compose/ui/ui-text/src/androidMain/kotlin/androidx/compose/ui/text/EmojiSupportMatch.kt
M compose/ui/ui-text/src/androidMain/kotlin/androidx/compose/ui/text/platform/AndroidParagraphIntrinsics.android.kt
na...@google.com <na...@google.com> #19
The following release(s) address this bug.It is possible this bug has only been partially addressed:
androidx.compose.foundation:foundation:1.4.0-alpha04
androidx.compose.ui:ui:1.4.0-alpha04
androidx.compose.ui:ui-text:1.4.0-alpha04
androidx.emoji2:emoji2:1.3.0-alpha01
Description
No description yet.