Commit Graph

12 Commits

Author SHA1 Message Date
Benoit Marty a740423343 Sync strings. 2026-08-17 11:34:52 +02:00
Benoit Marty 414d2b5dd0 Add KDoc to the libraries/emoji API interfaces
Document AddRecentEmoji, GetRecentEmojis.invoke, the EmojiPickerRenderer
interface and the EmojiPickerPresenter factory, pointing at the no-op renderer
and the empty recent-emoji source so callers know how to opt out of each.

EmojiPickerPresenter itself is a Presenter and therefore out of scope.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-14 09:39:36 +02:00
hayyaksi 348c7bcea8 Expand the emoji picker to full height when the keyboard is shown (#7382)
* Expand the emoji picker to full height when the keyboard is shown

The picker content is rendered with fillMaxSize, so the sheet measures itself to
the full window height. That makes the partially expanded anchor available, and
the modal sheet auto-shows at that anchor, half way down the screen.

The sheet reserves the IME inset through its content window insets, but applies
that padding at its own bottom edge, which is off-screen while it rests half way
down. The band that is both on-screen and above the keyboard is then only about
a tenth of the screen, which is why the matching emoji end up behind it.

Expand the sheet while the keyboard is visible so its bottom edge returns to the
screen edge and the inset it already reserves lands on top of the keyboard.
Modifier.imePadding on the sheet content is not an option: the sheet applies the
insets with windowInsetsPadding, which consumes them, so a nested imePadding
reads zero.

* Cover the keyboard driven sheet expansion with a test

The IME reaction moves into ExpandSheetWhenImeIsVisible so a Robolectric test can
drive it: dispatching window insets to the composition flips
WindowInsets.isImeVisible, and the sheet state is observable from the test. Both
the shown and the hidden case are asserted, which is the patch coverage this
change was missing.

* Do not leave a blank strip below the expanded emoji search

The 10dp of bottom padding on the search bar separates the collapsed
field from the category tabs underneath it. It stayed applied once the
search bar expanded to fill the picker, so the picker stopped 10dp short
of its own bottom edge.

That strip used to sit below the visible part of a half height sheet.
Now that the sheet expands against the keyboard it reads as a gap
between the results and the keyboard, so only pad while collapsed.
2026-08-10 16:35:38 +02:00
ganfra 9d427077f0 Refactor SearchBarResultState.Initial and NoResultsFound to data objects 2026-07-23 16:15:02 +02:00
ganfra 14feeca2a5 Add some comments after PR review 2026-07-23 11:25:40 +02:00
ganfra e4f8139791 Sync emoji picker translations from Localazy 2026-07-22 21:00:16 +02:00
ganfra 19c38f7e7f Fix lint, detekt and konsist checks 2026-07-22 16:46:58 +02:00
ganfra 4dadb3c8c8 Wire the emoji picker into the user-status feature 2026-07-22 15:48:55 +02:00
ganfra 89deff8a53 Add libraries/emoji/test module with picker fakes 2026-07-22 15:48:54 +02:00
ganfra 93d6d5c84c Migrate EmojiPickerPresenter to assisted-factory pattern with EmptyGetRecentEmojis 2026-07-22 15:48:54 +02:00
ganfra 5d8290b240 Extract EmojiPicker into libraries/emoji with Renderer/Presenter pattern 2026-07-22 15:48:54 +02:00
ganfra e492f06386 Migrate libraries/recentemojis into libraries/emoji 2026-07-22 15:48:54 +02:00