Emoji2
Ostatnia aktualizacja | Wersja stabilna | Wersja kandydująca | Wersja Beta | Wersja alfa |
---|---|---|---|---|
4 września 2024 r. | 1.5.0 | - | - | - |
Deklarowanie zależności
Aby dodać zależność od Emoji2, musisz dodać repozytorium Google Maven do projektu. Więcej informacji znajdziesz w repozytorium Google Maven.
W pliku build.gradle
aplikacji lub modułu dodaj zależności artefaktów, których potrzebujesz:
Groovy
dependencies { def emoji2_version = "1.5.0" implementation "androidx.emoji2:emoji2:$emoji2_version" implementation "androidx.emoji2:emoji2-views:$emoji2_version" implementation "androidx.emoji2:emoji2-views-helper:$emoji2_version" }
Kotlin
dependencies { val emoji2_version = "1.5.0" implementation("androidx.emoji2:emoji2:$emoji2_version") implementation("androidx.emoji2:emoji2-views:$emoji2_version") implementation("androidx.emoji2:emoji2-views-helper:$emoji2_version") }
Więcej informacji o zależnościach znajdziesz w artykule Dodawanie zależności kompilacji.
Opinia
Twoja opinia pomoże nam ulepszyć Jetpacka. Jeśli zauważysz nowe problemy lub masz pomysły na ulepszenie tej biblioteki, daj nam znać. Zanim utworzysz nową bibliotekę, przejrzyj istniejące problemy w tej bibliotece. Możesz oddać swój głos do istniejącego problemu, klikając przycisk gwiazdki.
Więcej informacji znajdziesz w dokumentacji narzędzia Issue Tracker.
Selektor emotikonów w wersji 1.0
Wersja 1.5.0
4 września 2024 r.
androidx.emoji2:emoji2-*:1.5.0
został zwolniony. Wersja 1.5.0 zawiera te komity.
Ważne zmiany od wersji 1.4.0
- Obsługa interfejsu emotikonów 15.1 i dwukierunkowego selektora emotikonów. Wystarczy jedno kliknięcie przełącznika dwukierunkowego, aby przełączyć się między wersjami emotikonów skierowanymi w lewo i w prawo.
- Obsługa selektora emotikonów z różnymi odcieniami skóry. Długie naciśnięcie emotikonów pary powoduje wyświetlenie selektora emotikonów z wieloma osobami w stanie bez emotikonów. Gdy użytkownik kliknie lewą połowę emotikonu, jego podgląd w prawym dolnym rogu zostanie odpowiednio zaktualizowany. Gdy użytkownik wybierze obie połowy emotikonu, w prawym dolnym rogu pojawi się jego podgląd, a następnie będzie można go wstawić.
Wersja 1.0.0-alpha03
8 marca 2023 r.
androidx.emoji2:emoji2-emojipicker:1.0.0-alpha03
został zwolniony. Wersja 1.0.0-alfa03 zawiera te zatwierdzenia.
Poprawki błędów
- Usunięto niepotrzebne zasoby i zmniejszono rozmiar biblioteki o około 0,3 M.
Wersja 1.0.0-alpha02
22 lutego 2023 roku
androidx.emoji2:emoji2-emojipicker:1.0.0-alpha02
został zwolniony. Wersja 1.0.0-alpha02 zawiera te commity.
Zmiany w interfejsie API
- Dodano nowy interfejs API dla klientów Javy, aby umożliwić wyświetlanie najnowszych emotikonów. (I39d10)
Poprawki błędów
- Aktualizacja zasobów emotikonów w celu obsługi emotikonów 15.0 (Ib4eb3)
- Podczas wybierania emotikona w wyskakującym okienku zmień wszystkie emotikony, które są identyczne (z wyjątkiem wiersza ostatnio wybranych). Po kliknięciu emotikona zostanie też ogłoszony. (I892C6)
- Zanim wyświetlisz
EmojiPickerView
, poczekaj, aż wczyta się emojicompat. (I29e03)
Wersja 1.0.0-alpha01
25 stycznia 2023 r.
androidx.emoji2:emoji2-emojipicker:1.0.0-alpha01
został zwolniony. Wersja 1.0.0-alpha01 zawiera te commity.
Nowe funkcje
- Wprowadziliśmy selektor emotikonów, który zapewnia spójne wrażenia użytkownika z najnowszymi emotikonami na urządzeniach i w aplikacjach OEM z systemem operacyjnym Android. Oferuje najnowszą obsługę i interfejs selektora emotikonów, w tym warianty odcieni skóry i zgodność emotikonów.
Zmiany w interfejsie API
- Wprowadziliśmy klasę
EmojiPickerView
, która zawiera aktualne emotikony w widoku pionowym z możliwością przewijania oraz nagłówkiem poziomym z możliwością kliknięcia. - Kolumny siatki selektora emotikonów można ustawić za pomocą atrybutu XML
emojiGridColumns
lub funkcjisetEmojiGridColumns()
. - Wiersze siatki selektora emotikonów można ustawić za pomocą atrybutu XML
emojiGridRows
lub funkcjisetEmojiGridRows()
. - Odkrywcę wybranego emotikona można ustawić za pomocą funkcji
setOnEmojiPickedListener()
. Osoba ta będzie otrzymywać powiadomienie za każdym razem, gdy kliknie dowolny emotikon. - Najnowszego dostawcy emotikonów można użyć za pomocą
setRecentEmojiProvider()
. To funkcja opcjonalna. Jeśli nie ustawisz ostatniego używanego dostawcy emotikonów, biblioteka będzie używać domyślnego ostatniego używanego dostawcy emotikonów. Domyślne działanie jest zdefiniowane w ten sposób: 1) wszystkie wybrane emotikony zostaną zapisane na poziomie aplikacji w ramach wspólnych preferencji. 2) selektor wyświetli maksymalnie 3 wiersze wybranych emotikonów, bez duplikatów, w odwrotnej kolejności chronologicznej. - Wprowadzono klasę
EmojiViewItem
, która zawiera wyświetlane emotikony oraz ich warianty. - Wprowadziliśmy interfejs
RecentEmojiProvider
, który można zaimplementować, aby wyświetlić listę ostatnich emotikonów.recentEmojiProvider
odpowiada za emotikony w kategorii „Ostatnio używane”.
Wersja 1.5
Wersja 1.5.0
4 września 2024 r.
androidx.emoji2:emoji2-*:1.5.0
został zwolniony. Wersja 1.5.0 zawiera te zatwierdzenia.
Ważne zmiany wprowadzone od wersji 1.4.0
- Obsługa interfejsu emotikonów 15.1 i dwukierunkowego selektora emotikonów. Wystarczy jedno kliknięcie przełącznika dwukierunkowego, aby przełączyć się między wersjami emotikonów skierowanymi w lewo i w prawo.
- Obsługa selektora emotikonów z różnymi odcieniami skóry. Długie naciśnięcie emotikonów pary powoduje wyświetlenie selektora emotikonów z wieloma osobami w stanie bez emotikonów. Gdy użytkownik kliknie lewą połowę emotikonu, jego podgląd w prawym dolnym rogu zostanie odpowiednio zaktualizowany. Gdy użytkownik wybierze obie połowy emotikonu, w prawym dolnym rogu pojawi się jego podgląd, a następnie będzie można go wstawić.
Wersja 1.5.0-rc01
21 sierpnia 2024 r.
androidx.emoji2:emoji2-*:1.5.0-rc01
został zwolniony. Wersja 1.5.0-rc01 zawiera te komisy.
Nowe funkcje
- Obsługa emotikonów 15.1 i interfejsu selektora emotikonów dwukierunkowego. Wystarczy jedno kliknięcie przełącznika dwukierunkowego, aby przełączać się między wersjami emotikonów zwróconymi w lewo i w prawo.
- Obsługa selektora emotikonów z różnymi odcieniami skóry. Długie naciśnięcie emotikonów pary powoduje wyświetlenie selektora emotikonów z wieloma osobami w stanie bez emotikonów. Gdy użytkownik kliknie lewą połowę emotikonu, jego podgląd w prawym dolnym rogu zostanie odpowiednio zaktualizowany. Gdy użytkownik wybierze obie połówki emotikona, na podglądzie zobaczysz cały emotikon, a użytkownik będzie mógł go wpisać.
Poprawki błędów
- Usunięto ręczne określanie dostępu do nowych interfejsów API platformy, ponieważ odbywa się to automatycznie za pomocą modelowania interfejsu API, gdy korzystasz z R8 z AGP 7.3 lub nowszej wersji (np. R8 w wersji 3.3) oraz we wszystkich wersjach kompilacji, gdy korzystasz z AGP 8.1 lub nowszej wersji (np. D8 w wersji 8.1). Klienci, którzy nie korzystają z AGP, powinni zaktualizować D8 do wersji 8.1 lub nowszej. Więcej szczegółów znajdziesz w tym artykule. (If6b4c, b/345472586)
- Wybór karty i wskaźnik
EmojiPickerView
aktualizują się z opóźnieniem o 1 kliknięcie. (146b02, b/288261054) - Wybór karty i wskaźnik
EmojiPickerView
są uszkodzone. (5e1f14, b/273883688)
Wersja 1.5.0-beta01
10 lipca 2024 r.
androidx.emoji2:emoji2-*:1.5.0-beta01
został zwolniony. Wersja 1.5.0-beta01 zawiera te komity.
Nowe funkcje
- Obsługa interfejsu wyboru emotikonów 15.1 i dwukierunkowego wyboru emotikonów.
- Obsługa wielu odcieni skóry.
Poprawki błędów
- Wybór karty i wskaźnik
EmojiPickerView
aktualizują się z opóźnieniem o 1 kliknięcie. (146b02, b/288261054) - Wybór karty i wskaźnik
EmojiPickerView
są uszkodzone. (5e1f14, b/273883688)
Wersja 1.5.0-alpha01
13 grudnia 2023 r.
androidx.emoji2:emoji2-*:1.5.0-alpha01
został zwolniony. Wersja 1.5.0-alpha01 zawiera te zatwierdzenia.
Nowe funkcje
emoji2-bundled
zawiera zaktualizowaną czcionkę emotikonów, która obsługuje standard Emoji 15.1.
Zmiany w interfejsie API
- Dodaj wykonawców, aby kontrolować wątek wywołania zwrotnego w przypadku
InitCallback
. (I32b67) BundledEmojiCompatConfig
używa teraz wykonawcy do sterowania wątkami wczytywania. (I00e81)
Wersja 1.4
Wersja 1.4.0
9 sierpnia 2023 r.
androidx.emoji2:emoji2-*:1.4.0
został zwolniony. Wersja 1.4.0 zawiera te zatwierdzenia.
Ważne zmiany od wersji 1.3.0
- Wprowadziliśmy bibliotekę selektora emotikonów. Więcej informacji znajdziesz w dokumentacji dla programistów.
Wersja 1.4.0-rc01
26 lipca 2023 r.
androidx.emoji2:emoji2-*:1.4.0-rc01
został zwolniony. Wersja 1.4.0-rc01 zawiera te zatwierdzenia.
Zmiany w interfejsie API
- Wprowadź listę
registerSource
(Iae92f) - Opinia Rady Interfejsów API: nazwa
TransitionManager.seekTo()
została zmieniona nacreateSeekController()
. Proszę zmienić poprzedni komentarz dotyczący dodaniaTransitionManager.seekTo()
naTransitionManager.createSeekController()
. (Idbeb1) - Dodano klasę
ExerciseRouteResult
, która nie jest superklasą dla klasData
,NoData
iConsentRequiredStates
. DodanoExerciseRoute
jako samodzielną klasę, która zawiera dane o lokalizacji trasy. (I22eed) - Wprowadziliśmy
PagerLayoutInfo
z informacjami zebranymi po przeprowadzeniu pomiaru w Pagerze. Wprowadziliśmy też funkcję PageInfo, która zawiera informacje o pojedynczej stronie objętej pomiarem. (Iad003, b/283098900)
Poprawki błędów
- Zaktualizowaliśmy kolory produktów
Button
,IconButton
iTextButton
, aby były zgodne ze stylem Material3. Semantyczna rola elementówButton
,IconButton
iTextButton
może teraz zostać zastąpiona za pomocą elementuModifier.semantics
. (Ib2495) - Rozwiązanie problemu polegającego na tym, że przy wyborze karty
EmojiPickerView
wskaźnik aktualizuje się dopiero po kliknięciu. (I4db04) FileNotFoundException
wyświetlanie selektora emotikonów (I353e4)- Catch the
WindowManager.BadTokenException
when usingEmojiPickerView
(I0a144)
Wersja 1.4.0-beta05
7 czerwca 2023 r.
Usługa androidx.emoji2:emoji2-*:1.4.0-beta05
została zwolniona. Wersja 1.4.0-beta05 zawiera te commity.
Poprawki błędów
- Naprawiliśmy błąd związany z wersją 1.3, w wyniku którego funkcje
MetricsAffectingSpans
, np.RelativeSizeSpan
, były stosowane podwójnie. Raz w trakcie układu tekstu, a potem ponownie w komponencieEmojiSpan.draw
. Wynik był nieprawidłowo narysowany, co było widoczne, jeśli którykolwiek z parametrów rozmiaru tekstu został zmieniony przez element span. (b/283208650)
Wersja 1.4.0-beta04
24 maja 2023 r.
androidx.emoji2:emoji2-*:1.4.0-beta04
został zwolniony. Wersja 1.4.0-beta04 zawiera te commity.
Ta wersja rozwiązuje błąd występujący od wersji 1.0, w którym widoki z obsługą niegłówną wywoływały wyjątek podczas próby zaktualizowania zakresów emotikonów po zakończeniu wczytywania czcionek. Nie ma sposobu obejścia tego problemu. Jeśli ten błąd Cię dotyczy, przejdź na tę wersję lub nowszą wersję.
Poprawki błędów
EmojiCompat
inicjujące wywołania zwrotne będą teraz używać modułu obsługi z każdego widoku, uwzględniając widoki spoza wątku głównego. (Iccbcf)
Wersja 1.4.0-beta03
10 maja 2023 r.
androidx.emoji2:emoji2-*:1.4.0-beta03
został zwolniony. Wersja 1.4.0-beta03 zawiera te commity.
Poprawki błędów
- Naprawiono awarię zagnieżdżonego widoku wyskakującego selektora emotikonów. (0acc8e)
- Dodaj wcześniejsze wyjątki w:
EmojiCompat getEmojiStart/getEmojiEnd
. (26177f)
Wersja 1.4.0-beta02
19 kwietnia 2023 r.
Usługa androidx.emoji2:emoji2-*:1.4.0-beta02
została zwolniona. Wersja 1.4.0-beta02 zawiera te zatwierdzenia.
Poprawki błędów
- Aktualizowanie plików podstawowych lint (Iaa212)
Wersja 1.4.0-beta01
5 kwietnia 2023 r.
androidx.emoji2:emoji2-*:1.4.0-beta01
został zwolniony. Wersja 1.4.0-beta01 zawiera te commity.
Nowe funkcje
androidx.emoji2:emoji2-emojipicker
Selektor emotikonów to interfejs, który zapewnia nowoczesny wygląd i styl oraz pozwala korzystać z aktualnych emotikonów i łatwości obsługi. Użytkownicy mogą przeglądać i wybierać emotikony oraz ich warianty lub wybrać emotikony z ostatnio używanych. Dzięki tej bibliotece aplikacje różnych producentów OEM mogą zapewnić użytkownikom spójne i promujące integrację społeczną emotikony, bez konieczności tworzenia i utrzymywania od podstaw własnego selektora emotikonów.
Aktualne emotikony
Nowe emotikony są publikowane co roku i będziemy je selektywnie dodawać do selektora emotikonów. Aby zapewnić zgodność wsteczną, wewnętrznie przeprowadzamy dokładne sprawdzenie możliwości renderowania emotikonów, aby wyeliminować problemy z tofu. Dzięki temu biblioteka będzie kompatybilna z różnymi wersjami i urządzeniami z Androidem.
wariantów przyklejonych,
Po przytrzymaniu emotikona wyświetli się menu wariantów, np. różne płcie lub odcienie skóry. Wybrany wariant zostanie zapisany w selektorze emotikonów, a ostatnio wybrany wariant będzie używany w panelu głównym. Dzięki tej funkcji użytkownicy mogą wysyłać wybrane emotikony jednym kliknięciem.
Najnowsze emotikony
RecentEmojiProvider
odpowiada za udostępnianie emotikonów w kategorii „Ostatnio używane”. Biblioteka ma domyślnego dostawcę emotikonów, który spełnia większość typowych przypadków użycia:
- Wszystkie wybrane emotikony są zapisywane na poziomie aplikacji w ramach wspólnych preferencji.
- Selektor wyświetla maksymalnie 3 wiersze wybranych emotikonów, bez duplikatów, w odwrotnej kolejności chronologicznej.
Jeśli to domyślne działanie jest wystarczające, nie musisz ustawiać metody setRecentEmojiProvider()
.
Praca z EmojiCompat
Jeśli aplikacja ma instancję EmojiCompat
, będzie ona używana w selektorze emotikonów do renderowania jak największej liczby emotikonów. Jeśli EmojiCompat
jest wyłączona, selektor emotikonów będzie nadal działał prawidłowo.
Jak korzystać z biblioteki
Aby można było korzystać z biblioteki, deweloper aplikacji powinien
Importuj
androidx.emoji2:emojipicker:$version
w:build.gradle
.dependencies { implementation "androidx.emoji2:emojipicker:$version" }
Rozwiń widok selektora emotikonów i opcjonalnie ustaw
emojiGridRows
orazemojiGridColumns
na podstawie żądanego rozmiaru każdej komórki emotikonu.- Możesz pozostawić je nieskonfigurowane. Wartość domyślna to 9
emojiGridColumns
. Liczba wierszy będzie obliczana na podstawie wysokości widoku nadrzędnego iemojiGridColumns
. - Możesz ustawić
emojiGridRows
jako liczbę zmiennoprzecinkową, aby wskazać, że jest więcej emotikonów, jeśli przewijasz w dół w pliku XML.
<androidx.emoji2.emojipicker.EmojiPickerView android:id="@+id/emoji_picker" android:layout_width="match_parent" android:layout_height="match_parent" app:emojiGridColumns="9" />
- Możesz pozostawić je nieskonfigurowane. Wartość domyślna to 9
w kodzie
val emojiPickerView = EmojiPickerView(context).apply {
emojiGridColumns = 15
layoutParams = ViewGroup.LayoutParams(
ViewGroup.LayoutParams.MATCH_PARENT,
ViewGroup.LayoutParams.MATCH_PARENT
)
}
findViewById<ViewGroup>(R.id.emoji_picker_layout).addView(emojiPickerView)
Jeśli chcesz dodać wybrane emotikony do tekstu EditText, użyj
setOnEmojiPickedListener()
emojiPickerView.setOnEmojiPickedListener { findViewById<EditText>(R.id.edit_text).append(it.emoji) }
Opcjonalnie ustaw
RecentEmojiProvider
. Przykładową implementację znajdziesz w aplikacji przykładowej.Opcjonalnie dostosuj style. Utwórz własny styl, aby zastąpić typowe atrybuty motywu, i zastosuj go do
EmojiPickerView
. Na przykład zastąpienie atrybutucolorControlNormal
spowoduje zmianę koloru ikony kategorii.<style name="CustomStyle" > <item name="colorControlNormal">#FFC0CB</item> </style> <androidx.emoji2.emojipicker.EmojiPickerView android:id="@+id/emoji_picker" android:layout_width="match_parent" android:layout_height="match_parent" android:theme="@style/CustomStyle" app:emojiGridColumns="9" />
Zobacz przykładową aplikację.
Pełną stronę interfejsu API znajdziesz tutaj.
Przykładowa aplikacja
Ta przykładowa aplikacja demonstruje podstawowe przypadki użycia oraz te dodatkowe scenariusze:
- Widok został ponownie ułożony, ponieważ
emojiGridRows
iemojiGridColumns
zostały zresetowane. - Dostawca ostatniego emotikonu jest zastępowany, aby sortować według częstotliwości.
- dostosowywanie stylu;
Zmiany interfejsu API
Biblioteka Emoji Picker została zaktualizowana o te nowe interfejsy API:
- Klasa
EmojiPickerView
, która zawiera aktualne emotikony w pionowym widoku z możliwością przewijania oraz klikalny nagłówek poziomy. - Możliwość ustawiania liczby kolumn i wierszy w siatce emoji za pomocą atrybutów XML
emojiGridColumns
iemojiGridRows
lub metodsetEmojiGridColumns()
isetEmojiGridRows()
. - Możliwość ustawienia emotikonu wybranego przez słuchacza za pomocą metody
setOnEmojiPickedListener()
. Słuchacz zostanie powiadomiony, gdy użytkownik kliknie dowolny emotikon. - Umożliwienie podania dostawcy emotikonów za pomocą metody
setRecentEmojiProvider()
. To funkcja opcjonalna. Jeśli nie ustawisz dostawcy ostatnich emotikonów, biblioteka będzie używać domyślnego dostawcy ostatnich emotikonów. Działanie domyślne jest określone w ten sposób:- Wszystkie wybrane emotikony zostaną zapisane w udostępnionych preferencjach na poziomie aplikacji.
- Selektor wyświetli maksymalnie 3 wiersze wybranych emotikonów (z usuniętym duplikatem) w odwrotnej kolejności chronologicznej.
- Klasa
EmojiViewItem
, która zawiera wyświetlany emotikon i jego warianty. - Interfejs
RecentEmojiProvider
, który można zaimplementować, aby wyświetlić listę ostatnio używanych emotikonów.recentEmojiProvider
odpowiada za emotikony w kategorii „Ostatnio używane”. - Interfejs
RecentEmojiAsyncProvider
, który można zaimplementować, aby wyświetlić listę najnowszych emotikonów.RecentEmojiAsyncProvider
odpowiada za emotikony w kategorii „Ostatnio używane”. Ten interfejs jest odpowiednikiem interfejsuRecentEmojiProvider
, który pozwala klientom zastąpić metodęgetRecentEmojiListAsync()
, aby wyświetlać ostatnio używane emotikony. - Klasa
RecentEmojiProviderAdapter
, która jest adapterem klasyRecentEmojiAsyncProvider
i implementuje interfejsRecentEmojiProvider
.
Wersja 1.4.0-alpha01
22 marca 2023 r.
Usługa androidx.emoji2:emoji2-*:1.4.0-alpha01
została zwolniona. Wersja 1.4.0-alpha01 zawiera te commity.
Poprawki błędów
- naprawiać testy, wyłączać testy niestabilne i usuwać niepotrzebne dane.
Wersja 1.3
Wersja 1.3.0
22 marca 2023 r.
androidx.emoji2:emoji2-*:1.3.0
został zwolniony. Wersja 1.3.0 zawiera te commity.
Ważne zmiany od wersji 1.2.0
- Ta wersja umożliwia Compose Foundation
1.4.0
i nowsze wersje integrację z emoji2. - Umożliwia też zastępowanie
EmojiSpans
niestandardowym kodem rysowania oraz obsługę wykluczeń emotikonów zdefiniowanych na Androidzie.
Wersja 1.3.0-rc01
8 marca 2023 r.
androidx.emoji2:emoji2-*:1.3.0-rc01
został zwolniony. Wersja 1.3.0-rc01 zawiera te commity.
Nowe funkcje
- Ta wersja obsługuje integrację emoji2 z edytorem.
Zmiany interfejsu API
- Zastąp zakresy kodów niestandardowych rysunków.
- Wysyłanie zapytań o wykluczenia systemowe.
Poprawki błędów
- Naprawiliśmy też błąd polegający na tym, że elementy tła nie były prawidłowo stosowane za elementem
EmojiSopans
.
Wersja 1.3.0-beta03
23 lutego 2023 r.
Funkcje androidx.emoji2:emoji2-bundled:1.3.0-beta03
, androidx.emoji2:emoji2-views:1.3.0-beta03
i androidx.emoji2:emoji2-views-helper:1.3.0-beta03
są dostępne.
22 lutego 2023 roku
androidx.emoji2:emoji2:1.3.0-beta03
został zwolniony. Wersja 1.3.0-beta03 zawiera te zatwierdzenia.
Nowe funkcje
- Brak zmian. Ta wersja przygotowuje integrację z Compose.
Wersja 1.3.0-beta02
8 lutego 2023 r.
androidx.emoji2:emoji2-*:1.3.0-beta02
został zwolniony. Wersja 1.3.0-beta02 zawiera te zatwierdzenia.
Nowe funkcje
- Ta wersja jest stabilizowana na potrzeby integracji tworzenia wiadomości.
Wersja 1.3.0-beta01
25 stycznia 2023 r.
androidx.emoji2:emoji2-*:1.3.0-beta01
został zwolniony. Wersja 1.3.0-beta01 zawiera te zatwierdzenia.
Nowe funkcje
- Wysyłanie zapytań o wykluczenia systemowe.
- Zastępowanie zakresów kodu rysowania niestandardowego.
- Naprawiliśmy też błąd, przez który rozpiętości tła w tabeli
EmojiSopans
nie były prawidłowo stosowane. - Ta wersja dodaje interfejsy API potrzebne do obsługi
EmojiCompat
w Compose. W najbliższej przyszłości wprowadzimy obsługę funkcji tworzenia emotikonów.
Wersja 1.3.0-alpha01
11 stycznia 2023 r.
androidx.emoji2:emoji2-*:1.3.0-alpha01
został zwolniony. Wersja 1.3.0-alpha01 zawiera te zatwierdzenia.
Nowe interfejsy API do interakcji na niskim poziomie
- Wyszukiwanie wykluczeń systemowych
- Zastępowanie spanów niestandardowego kodu rysunku
- Naprawiliśmy też błąd polegający na tym, że elementy tła nie były prawidłowo stosowane za elementem
EmojiSopans
. - W tej wersji dodaliśmy interfejsy API niezbędne do obsługi funkcji
EmojiCompat
w Compose. W najbliższej aktualizacji udostępnimy obsługę emotikonów w komponowaniu.
Zmiany w interfejsie API
- Dodaliśmy możliwość wysyłania zapytań o wykluczenia systemowe do
TypefaceEmojiRasterizer
. (I5653e) - Dodano nowy interfejs API
EmojiCompat.SpanFactory
, który zastępuje domyślne zachowanieEmojiSpan
niestandardowymi rysunkami i kodem do określania rozmiaru. (Ib69d9) - Dodano
EmojiCompat
do Compose (I96f37, b/139326806)
Poprawki błędów
- Emoji2 będzie teraz prawidłowo rysować tła z
BackgroundSpan
. (Ide6a8, b/230525134) - Finalizowanie interfejsów AppCompat w wersji 1.5.0-beta01 (I2a43d, b/236866227)
Wersja 1.2
Wersja 1.2.0
10 sierpnia 2022 r.
Usługa androidx.emoji2:emoji2-*:1.2.0
została zwolniona. Wersja 1.2.0 zawiera te zatwierdzenia.
Ważne zmiany od wersji 1.1.0
To jest wersja z poprawkami błędów. Od wersji 1.1.0 nie dodano żadnych nowych funkcji ani interfejsów API.
Aplikacje korzystające z wersji PrecomputedText
lub TextView.setText(char[])
powinny jednak w pierwszej kolejności przejść na tę wersję.
Naprawiono te błędy:
Emoji2
doda emotikon doPrecomputedText
, odrzucając wcześniej obliczony układ tekstu. (I47d06, b/211231958)- Naprawiono błąd awarii edytora w wersji z Androida P, który został przeniesiony do
EditText
skonfigurowanego do korzystania z emoji2. (Ifd709, b/216891011) - Naprawiono błąd, który powodował, że emotikon 2 wczytuje czcionkę i była używana
TextView.setText(char[])
. (Id511e, b/206859724)
Wersja 1.2.0-rc01
27 lipca 2022 roku
androidx.emoji2:emoji2-*:1.2.0-rc01
został zwolniony. Wersja 1.2.0-rc01 zawiera te zatwierdzenia.
- Brak zmian od ostatniej wersji beta.
Wersja 1.2.0-beta01
13 lipca 2022 r.
Usługa androidx.emoji2:emoji2-*:1.2.0-beta01
została zwolniona. Wersja 1.2.0-beta01 zawiera te commity.
Nowe funkcje
- Brak zmian w porównaniu z poprzednią wersją (ta wersja obsługuje wersję AppCompat).
Wersja 1.2.0-alpha04
20 kwietnia 2022 r.
androidx.emoji2:emoji2-*:1.2.0-alpha04
został zwolniony. Wersja 1.2.0-alfa04 zawiera te zatwierdzenia.
Nowe funkcje
- Brak zmian w tej wersji.
Wersja 1.2.0-alpha03
6 kwietnia 2022 roku
androidx.emoji2:emoji2-*:1.2.0-alpha03
został zwolniony. Wersja 1.2.0-alpha03 zawiera te komisy.
Nowe funkcje
- Brak zmian w porównaniu z poprzednią wersją (ta wersja będzie obsługiwać wersję kompatybilną z aplikacją).
Wersja 1.2.0-alpha02
23 marca 2022 r.
androidx.emoji2:emoji2-*:1.2.0-alpha02
został zwolniony. Wersja 1.2.0-alfa02 zawiera te zatwierdzenia.
Poprawki błędów
- Emoji2 doda emotikony do
PrecomputedText
, odrzucając wcześniej obliczony układ tekstu. (I47d06, b/211231958) - Poprawka dotycząca błędu edytowania z Androida P w przypadku pola tekstowego skonfigurowanego do używania emoji2. (Ifd709, b/216891011)
- Rozwiązanie problemu z zawieszaniem się podczas wczytywania czcionki przez emoji2 i używania
TextView.setText(char[])
. (Id511e, b/206859724)
Wersja 1.2.0-alpha01
23 lutego 2022 r.
androidx.emoji2:emoji2-*:1.2.0-alpha01
został zwolniony. Wersja 1.2.0-alfa01 zawiera te zatwierdzenia.
Brak zmian od wersji 1.1.0.
1,1
Wersja 1.1.0
23 lutego 2022 r.
Usługa androidx.emoji2:emoji2-*:1.1.0
została zwolniona. Wersja 1.1.0 zawiera te zatwierdzenia.
Ważne zmiany wprowadzone od wersji 1.0.0
- emoji2-bundled zawiera czcionkę emoji 14.
- Nowy interfejs API
getEmojiMatch
zwraca dokładne informacje, aby klawiatury mogły określić, jak emotikon będzie wyświetlany w przypadku czcionki emojicompat, która jest czcionką systemową - Poprawka błędu dotycząca
NumberKeyListener
, która umożliwia prawidłowe filtrowanie znaków podczas wpisywania cyfr.
Wersja 1.1.0-rc01
9 lutego 2022 r.
androidx.emoji2:emoji2-*:1.1.0-rc01
został zwolniony. Wersja 1.1.0-rc01 zawiera te zatwierdzenia.
Nowe funkcje
Brak zmian w stosunku do wersji beta.
Nowe funkcje w porównaniu z emoji2 1.0.0:
emoji2-bundled
zawiera czcionkę emotikonów 14- Nowy interfejs API
getEmojiMatch
zwraca dokładne informacje, aby klawiatury mogły określić, jak emotikon ma się wyświetlać w przypadku czcionki emojicompat, która jest czcionką systemową - Poprawka dotycząca
NumberKeyListener
, która umożliwia prawidłowe filtrowanie znaków podczas wprowadzania cyfr
Wersja 1.1.0-beta01
26 stycznia 2022 r.
Usługa androidx.emoji2:emoji2-*:1.1.0-beta01
została zwolniona. Wersja 1.1.0-beta01 zawiera te commity.
Poprawki błędów
- Wersja androidx-emoji2 beta01. Brak zmian w wersji alpha01 (Ic61d9)
Wersja 1.1.0-alpha01
15 grudnia 2021 roku
androidx.emoji2:emoji2-*:1.1.0-alpha01
został zwolniony. Wersja 1.1.0-alpha01 zawiera te commity.
Nowe funkcje
emoji2-bundled
zawiera czcionkę emotikonów 14- Nowy interfejs API
getEmojiMatch
zwraca dokładne informacje, aby klawiatury mogły określić, jak emotikon ma się wyświetlać w przypadku czcionki emojicompat, która jest czcionką systemową - Poprawka błędu
NumberKeyListener
, który sprawia, że wpisywane cyfry prawidłowo filtrują znaki
Zmiany w interfejsie API
- Dodaj nowy interfejs API
getEmojiMatch
, aby umożliwić klawiaturom dokładniejsze sprawdzanie zachowania dopasowywania emotikonów w funkcji emojicompat. - Oznacz jako przestarzałą funkcję
hasEmojiGlyph
, ponieważ zwracana przez nią wartość logiczna jest niedokładna podczas testowania czcionki starszej niż czcionka emoji na platformie. ZastąpgetEmojiMatch
. (Ie693d)
Poprawki błędów
- Emoji2 nie owija wystąpień
NumberKeyListener
, co pozwala skonfigurować ustawienia regionalne za pomocąTextView
. - Appcompat nie owija wystąpień
NumberKeyListener
przekazanych dosetKeyListener
, co pozwalaTextView
prawidłowo skonfigurować lokalizację naNumberKeyListeners
. (Ibf113, b/207119921)
1,0
Wersja 1.0.1
15 grudnia 2021 roku
androidx.emoji2:emoji2-*:1.0.1
został zwolniony. Wersja 1.0.1 zawiera te zatwierdzenia.
Poprawki błędów
Emoji2
nie będzie opakowywać instancjiNumberKeyListener
, co pozwoli na skonfigurowanie języka przezTextView
.- Appcompat nie owija wystąpień
NumberKeyListener
przekazanych dosetKeyListener
, co pozwalaTextView
prawidłowo skonfigurować lokalizację naNumberKeyListeners
. (Ibf113, b/207119921)
Wersja 1.0.0
17 listopada 2021 r.
Usługa androidx.emoji2:emoji2-*:1.0.0
została zwolniona. Wersja 1.0.0 zawiera te zatwierdzenia.
Główne funkcje 1.0.0
androidx.emoji2 zastępuje androidx.emoji, oferując dodatkowe możliwości:
- Zmniejszenie rozmiaru pliku APK w porównaniu z androidx.emoji
- Konfiguracja automatyczna
- Dodano jako zależność do biblioteki appcompat 1.4
Więcej informacji o androidx.emoji2 znajdziesz w artykule Obsługa współczesnych emotikonów oraz w prezentacji z Android Dev Summit Wyświetlanie WSZYSTKICH emotikonów w aplikacji na Androida.
Wersja 1.0.0-rc01
27 października 2021 roku
androidx.emoji2:emoji2-*:1.0.0-rc01
został zwolniony. Wersja 1.0.0-rc01 zawiera te zatwierdzenia.
- Brak zmian od wersji beta02.
Emoji2 w wersji 1.0.0-beta01
15 września 2021 r.
androidx.emoji2:emoji2-*:1.0.0-beta01
został zwolniony. Wersja 1.0.0-beta01 zawiera te zatwierdzenia.
Zmiany w interfejsie API
Dodano
setLoadingExecutor
doFontRequestEmojiCompatConfig
, co zastępuje poprzedni interfejs APIsetHandler
. Ten interfejs API umożliwia aplikacjom konfigurowanieFontRequestEmojiCompatConfig
do korzystania z dowolnego wykonawcy w tle.Ta zmiana jest zmianą powodującą przerwanie działania interfejsu
androidx.emoji:emoji
, więc interfejssetHandler
jest zachowany jako niedziałający interfejs wycofany, aby ułatwić migrację. (I6cd48)EmojiCompat poprawnie ustawia
EditorInfo.extras
na Androidzie 11- W przypadku widżetów niestandardowych, które używają IME, ale nie są podklasą EditText, można wywołać funkcję
EmojiCompat.updateEditorInfo
, aby poinformować IME o obsługiwaniu przetwarzania EmojiCompat. (I1ea9b)
- W przypadku widżetów niestandardowych, które używają IME, ale nie są podklasą EditText, można wywołać funkcję
Poprawki błędów
- Poprawiono
DefaultEmojiCompatConfig
, aby poprawnie wyszukiwać dostawcę czcionek emoji w wersjach interfejsu API 19 i 28. Poprawia on błąd wprowadzony w emoji2 1.0.0-alpha01. (Ib33d8, b/197906329)
Wersja 1.0.0-alpha03
30 czerwca 2021 r.
Usługa androidx.emoji2:emoji2-*:1.0.0-alpha03
została zwolniona. Wersja 1.0.0-alpha03 zawiera te commity.
Nowe funkcje
Ta wersja zawiera poprawki błędów i poprawki stabilności.
- emojiEditTextHelper umożliwia teraz przekazywanie elementu
null
jako detektora kluczy. Dzięki temu platforma pozwala na stosowanie wartości null do emotikonów obsługujących implementacje EditText. - Gdy używasz EmojiCompatInitializer, początkowe opóźnienie uruchamiania zostało ulepszone, aby uruchamiać się po wznowieniu pierwszej aktywności. Dzięki temu aplikacja uruchamia się bez opóźnień i nie trzeba wczytywać czcionki w przypadku uruchamiania aplikacji, które nigdy nie wyświetlają interfejsu. Po krótkim opóźnieniu EmojiCompat utworzy wątek do załadowania czcionki emotikonów.
- W celu zaimplementowania opóźnienia dodano nową zależność od
androidx.lifecycle:lifecycle-process
zandroidx.emoji2:emoji2
. Będzie to miało nieistotny wpływ na rozmiar pliku APK w przypadku aplikacji, które mają już określony cykl życia (np. aplikacji z kompatybilną aplikacją).
Zmiany interfejsu API
- Zezwalanie na null KeyListener w AppCompatEditText. To odwraca adnotację non-null, która została dodana do AppCompatEditText w wersji 1.4.0-alpha01 i przywraca poprzednie zachowanie, gdy przekazano wartość null. (I21482, b/189559345)
Poprawki błędów
- Zmień EmojiCompatInitializer, aby opóźnić wczytywanie czcionek do 500 ms po pierwszym
Activity.onResume
. Dzięki temu aktywność może wykonywać czynnościApplication.onCreate
iActivity.onCreate
bez rywalizacji, jednocześnie zapewniając, że czcionka emoji zostanie załadowana wkrótce po uruchomieniu aplikacji. (I4bff7)
Wersja 1.0.0-alpha02
2 czerwca 2021 r.
Funkcje androidx.emoji2:emoji2:1.0.0-alpha02
, androidx.emoji2:emoji2-views:1.0.0-alpha02
i androidx.emoji2:emoji2-views-helper:1.0.0-alpha02
są dostępne. Wersja 1.0.0-alpha02 zawiera te commity.
Zmiany w interfejsie API
- Nazwa pakietu w folderze
emoji2-views-helper
została zmieniona naandroidx.emoji2.viewsintegration
. Jest to zmiana powodująca przerwanie działania biblioteki AppCompat1.4.0-alpha01
. Aplikacje muszą być zaktualizowane, aby używać nowej wersji emoji2. (Ie8397)
Wersja 1.0.0-alpha01
18 maja 2021 r.
androidx.emoji2:emoji2:1.0.0-alpha01
, androidx.emoji2:emoji2-views:1.0.0-alpha01
i androidx.emoji2:emoji2-views-helper:1.0.0-alpha01
zostały udostępnione. Wersja 1.0.0-alpha01 zawiera te commity.
Funkcje dostępne w tej wersji
Aby zapewnić obsługę współczesnych emotikonów z poziomu API 19, zalecamy integrację pakietu emojicompat we wszystkich aplikacjach. Wszystkie treści w Twojej aplikacji generowane przez użytkowników zawierają 🎉.
EmojiCompat zostało przeniesione z elementów androidx.emoji
do nowych elementów androidx.emoji2
, które są teraz w wersji alpha01. Nowe artefakty zastępują poprzednią wersję.
emoji2
jest dodawane jako zależność do AppCompat od wersji AppCompat 1.4.0-alpha01
i jest domyślnie włączone w przypadku widoków AppCompat.
Element emoji2
wprowadza nową konfigurację automatyczną korzystającą z biblioteki androidx.startup
. Nie musisz już pisać kodu 👨🏽💻, aby wyświetlić 🐻❄️.
Zmiany w emoji2 z emoji
- Dodano nową konfigurację automatyczną
EmojiCompatInitializer
za pomocą:androidx.startup
. - Dodano nową konfigurację domyślną, która korzysta z lokalizacji usługi, aby znaleźć dostawcę czcionek do pobrania w sekcji
DefaultEmojiCompatConfiguration
. - Zajęcia zostały przeniesione z pakietu
androidx.emoji
do pakietuandroidx.emoji2
. - Podziel
EmojiTextView
i powiązane widoki na osobny elementemoji2-views
. Należy go używać tylko wtedy, gdy aplikacja nie korzysta z funkcji appcompat. - Wyodrębnione pomocnicze funkcje do integracji obsługi emotikonów w widokach niestandardowych w oddzielnym pliku
emoji2-views-helper
. - Dodano adnotacje dotyczące możliwości wystąpienia wartości null.
- Elementy pomocnicze w trybie
emoji2-views-helper
mogą być teraz używane nawet wtedy, gdy systemEmojiCompat
nie został zainicjowany (wcześniej stanowił wyjątek).
Jaką zależność należy dodać?
- Aplikacje korzystające z AppCompat powinny zostać zaktualizowane do wersji AppCompat
1.4.0-alpha01
lub nowszej. - Aplikacje bez AppCompat korzystające z platformy
TextView
/EditText
powinny używaćEmojiTextView
i powiązanych klas zemoji2-views
.
Obsługa widoków niestandardowych
- Aplikacje z AppCompat powinny rozszerzać
AppCompatTextView
,AppCompatButton
itd., a nie platformęTextView
itd. - Aplikacje bez AppCompat powinny dodać zależność
androidx.emoji2:emoji2-views-helper
i użyć pomocników do integracji z niestandardowymi podklasamiTextView
lubEditText
.
Konfigurowanie automatycznego inicjowania
Aplikacje mogą wyłączyć automatyczne inicjowanie, dodając ten element do pliku manifestu:
<provider android:name="androidx.startup.InitializationProvider" android:authorities="${applicationId}.androidx-startup" android:exported="false" tools:node="merge"> <meta-data android:name="androidx.emoji2.text.EmojiCompatInitializer" tools:node="remove" /> </provider>
Spowoduje to wyłączenie konfiguracji automatycznej, dzięki czemu możesz przekazać niestandardową konfigurację do
EmojiCompat.init
. Domyślna konfiguracja systemu może zostać pobrana zDefaultEmojiCompatConfig.create(context)
w celu dalszej konfiguracji, zanim zostanie przekazana doEmojiCompat.init
.