Emoji2

Wyświetlanie emotikonów na obecnych i starszych urządzeniach.
Najnowsza aktualizacja Wersja stabilna Wersja kandydująca do publikacji Wersja beta Wersja alfa
10 września 2025 r. 1.6.0 - - -

Deklarowanie zależności

Aby dodać zależność od Emoji2, musisz dodać do projektu repozytorium Maven Google. Więcej informacji znajdziesz w artykule Repozytorium Maven Google.

Dodaj zależności dotyczące potrzebnych artefaktów w pliku build.gradle aplikacji lub modułu:

Odlotowe

dependencies {
    def emoji2_version = "1.6.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.6.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.

Prześlij opinię

Twoja opinia pomoże nam ulepszyć Jetpacka. Jeśli odkryjesz nowe problemy lub masz pomysły na ulepszenie tej biblioteki, daj nam znać. Zanim utworzysz nową kartę, zapoznaj się z dotychczasowymi problemami w tej bibliotece. Możesz oddać głos na istniejący problem, klikając przycisk gwiazdki.

Tworzenie nowego problemu

Więcej informacji znajdziesz w dokumentacji narzędzia Issue Tracker.

Wersja 1.6

Wersja 1.6.0

10 września 2025 r.

Publikacja androidx.emoji2:emoji2-*:1.6.0 Wersja 1.6.0 zawiera te zmiany.

Ważne zmiany od wersji 1.5.0:

  • Obsługa emotikonów w wersji 16.0
  • Dodaj do opisu emotikonów sufiks „emotikon”.

Poprawki błędów

Wersja 1.6.0-rc01

13 sierpnia 2025 r.

Publikacja androidx.emoji2:emoji2-*:1.6.0-rc01 Wersja 1.6.0-rc01 zawiera te zmiany.

Nowe funkcje

  • Obsługa emotikonów w wersji 16.0 i dodanie do opisu treści sufiksu „emoji”.

Zmiany w interfejsie API

  • Usuwanie przestarzałych adnotacji @RequiresApi(21) (Ic4792)
  • Usuwanie przestarzałych adnotacji @RequiresApi(21) (I9103b)

Wersja 1.6.0-beta01

2 lipca 2025 r.

Publikacja androidx.emoji2:emoji2-*:1.6.0-beta01 Wersja 1.6.0-beta01 zawiera te zmiany.

Nowe funkcje

  • Obsługa aktualizacji emotikonów 16.0
  • Dodaj do opisu treści sufiks „emoji”, aby zapewnić spójne działanie ułatwień dostępu we wszystkich selektorach emotikonów.

Wersja 1.6.0-alpha01

4 czerwca 2025 r.

Publikacja androidx.emoji2:emoji2-*:1.6.0-alpha01 Wersja 1.6.0-alpha01 zawiera te zmiany.

Nowe funkcje

  • Aktualizacje danych dotyczące emotikonów w wersji 16.0 (Ifc878)
  • Dodawanie do opisu treści sufiksu „emoji”

Poprawki błędów

  • Ta biblioteka korzysta teraz z adnotacji o wartości null JSpecify, które są używane w typie. Deweloperzy Kotlin powinni używać tych argumentów kompilatora, aby wymusić prawidłowe użycie: -Xjspecify-annotations=strict, -Xtype-enhancement-improvements-strict-mode (Id07e7, b/326456246)

Wersja 1.5

Wersja 1.5.0

4 września 2024 r.

Publikacja androidx.emoji2:emoji2-*:1.5.0 Wersja 1.5.0 zawiera te zmiany.

Ważne zmiany od wersji 1.4.0

  • Obsługa emotikonów w wersji 15.1 i dwukierunkowego interfejsu selektora emotikonów. Proste kliknięcie przełącznika dwukierunkowego umożliwia użytkownikom przełączanie się między wersjami emotikonów skierowanymi w lewo i w prawo.
  • obsługi selektora emotikonów z różnymi odcieniami skóry, Długie naciśnięcie emotikonów przedstawiających pary powoduje wyświetlenie selektora emotikonów z wieloma osobami w stanie zerowym. Gdy użytkownik kliknie lewą połowę emotikona, podgląd emotikona w prawym dolnym rogu zostanie odpowiednio zaktualizowany. Gdy użytkownik wybierze obie połówki emotikona, w prawym dolnym rogu pojawi się podgląd całego emotikona, który będzie można wstawić.

Wersja 1.5.0-rc01

21 sierpnia 2024 r.

Publikacja androidx.emoji2:emoji2-*:1.5.0-rc01 Wersja 1.5.0-rc01 zawiera te zmiany.

Nowe funkcje

  • Obsługa emotikonów w wersji 15.1 i dwukierunkowego interfejsu selektora emotikonów. Proste kliknięcie przełącznika dwukierunkowego umożliwia użytkownikom przełączanie się między wersjami emoji skierowanymi w lewo i w prawo.
  • obsługi selektora emotikonów z różnymi odcieniami skóry, Długie naciśnięcie emotikonów przedstawiających pary powoduje wyświetlenie selektora emotikonów z wieloma osobami w stanie zerowym. Gdy użytkownik kliknie lewą połowę emotikona, podgląd emotikona w prawym dolnym rogu zostanie odpowiednio zaktualizowany. Gdy użytkownik wybierze obie połówki emotikona, w podglądzie pojawi się cały emotikon, który będzie można wstawić.

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 interfejsów API podczas korzystania z R8 z AGP 7.3 lub nowszą (np. R8 w wersji 3.3) oraz w przypadku wszystkich kompilacji podczas korzystania z AGP 8.1 lub nowszej (np. D8 w wersji 8.1). Klientom, którzy nie korzystają z AGP, zalecamy przejście na D8 w wersji 8.1 lub nowszej. Więcej szczegółów znajdziesz w tym artykule. (If6b4c, b/345472586)
  • EmojiPickerView – wybór karty i wskaźnik aktualizują się z opóźnieniem o 1 kliknięcie. (146b02, b/288261054)
  • Wybór karty i wskaźnik EmojiPickerView nie działają. (5e1f14, b/273883688)

Wersja 1.5.0-beta01

10 lipca 2024 r.

Publikacja androidx.emoji2:emoji2-*:1.5.0-beta01 Wersja 1.5.0-beta01 zawiera te zmiany.

Nowe funkcje

  • Obsługa emotikonów w wersji 15.1 i dwukierunkowego interfejsu wyboru emotikonów.
  • Przeprojektowanie obsługi wyboru wielu odcieni skóry.

Poprawki błędów

  • EmojiPickerView – wybór karty i wskaźnik aktualizują się z opóźnieniem o 1 kliknięcie. (146b02, b/288261054)
  • Wybór karty i wskaźnik EmojiPickerView nie działają. (5e1f14, b/273883688)

Wersja 1.5.0-alpha01

13 grudnia 2023 r.

Publikacja androidx.emoji2:emoji2-*:1.5.0-alpha01 Wersja 1.5.0-alpha01 zawiera te zatwierdzenia.

Nowe funkcje

  • emoji2-bundled zawiera zaktualizowaną czcionkę emotikonów, która obsługuje Emoji 15.1.

Zmiany w interfejsie API

  • Dodaj wykonawców, aby kontrolować wątek wywołania zwrotnego dla InitCallback. (I32b67)
  • BundledEmojiCompatConfig korzysta teraz z wykonawcy do sterowania wątkami wczytywania. (I00e81)

Wersja 1.4

Wersja 1.4.0

9 sierpnia 2023 r.

Publikacja androidx.emoji2:emoji2-*:1.4.0 Wersja 1.4.0 zawiera te zatwierdzenia.

Ważne zmiany od wersji 1.3.0

Wersja 1.4.0-rc01

26 lipca 2023 r.

Publikacja androidx.emoji2:emoji2-*:1.4.0-rc01 Wersja 1.4.0-rc01 zawiera te zatwierdzenia.

Zmiany w interfejsie API

  • Wprowadzenie listy registerSource (Iae92f)
  • Opinia Rady ds. API: zmieniliśmy nazwę interfejsu TransitionManager.seekTo() na createSeekController(). Zmień poprzedni komentarz dotyczący dodania TransitionManager.seekTo() na TransitionManager.createSeekController(). (Idbeb1)
  • Dodano element ExerciseRouteResult, który nie jest klasą nadrzędną elementów Data, NoDataConsentRequiredStates. Dodano ExerciseRoute jako samodzielną klasę, która zawiera dane o lokalizacji na trasie. (I22eed)
  • Wprowadzono PagerLayoutInfo z informacjami zebranymi po przejściu pomiaru w aplikacji Pager. Wprowadziliśmy też PageInfo, czyli informacje o pojedynczej zmierzonej stronie w Pagerze. (Iad003, b/283098900)

Poprawki błędów

  • Zaktualizowaliśmy kolory Button, IconButtonTextButton zgodnie z zasadami projektowania Material 3. Rolę semantyczną elementów Button, IconButtonTextButton można teraz zastąpić za pomocą parametru Modifier.semantics. (Ib2495)
  • Naprawiono problem z wyborem karty i aktualizacją wskaźnika EmojiPickerView, które były opóźnione o 1 kliknięcie. (I4db04)
  • FileNotFoundException – wyświetlanie selektora emotikonów (I353e4)
  • Złap WindowManager.BadTokenException podczas korzystania z EmojiPickerView (I0a144)

Wersja 1.4.0-beta05

7 czerwca 2023 r.

Publikacja androidx.emoji2:emoji2-*:1.4.0-beta05 Wersja 1.4.0-beta05 zawiera te zatwierdzenia.

Poprawki błędów

  • Naprawiliśmy błąd wprowadzony w wersji 1.3, który powodował dwukrotne zastosowanie MetricsAffectingSpans, np. RelativeSizeSpan. raz podczas układania tekstu i ponownie w elemencie EmojiSpan.draw. Wynik był nieprawidłowo narysowany, co było widoczne, jeśli którykolwiek z parametrów rozmiaru tekstu został zmieniony przez zakres. (b/283208650)

Wersja 1.4.0-beta04

24 maja 2023 r.

Publikacja androidx.emoji2:emoji2-*:1.4.0-beta04 Wersja 1.4.0-beta04 zawiera te zatwierdzenia.

Ta wersja rozwiązuje błąd występujący od wersji 1.0, który powodował, że widoki z obsługą inną niż główna zgłaszały wyjątek podczas próby zaktualizowania zakresów emoji po zakończeniu ładowania czcionki. Nie ma obejścia tego problemu. Jeśli dotyczy Cię ten błąd, zaktualizuj aplikację do tej lub nowszej wersji.

Poprawki błędów

  • Wywołania zwrotne inicjowania EmojiCompat będą teraz korzystać z procedury obsługi z każdego widoku, z uwzględnieniem widoków, które nie znajdują się w głównym wątku. (Iccbcf)

Wersja 1.4.0-beta03

10 maja 2023 r.

Publikacja androidx.emoji2:emoji2-*:1.4.0-beta03 Wersja 1.4.0-beta03 zawiera te zatwierdzenia.

Poprawki błędów

  • Naprawiono awarię zagnieżdżonego widoku wyskakującego okienka selektora emotikonów. (0acc8e)
  • Wcześniej zgłaszaj wyjątki w EmojiCompat getEmojiStart/getEmojiEnd. (26177f)

Wersja 1.4.0-beta02

19 kwietnia 2023 r.

Publikacja androidx.emoji2:emoji2-*:1.4.0-beta02 Wersja 1.4.0-beta02 zawiera te zatwierdzenia.

Poprawki błędów

  • Aktualizacja plików bazowych lint (Iaa212)

Wersja 1.4.0-beta01

5 kwietnia 2023 r.

Publikacja androidx.emoji2:emoji2-*:1.4.0-beta01 Wersja 1.4.0-beta01 zawiera te zatwierdzenia.

Nowe funkcje

androidx.emoji2:emoji2-emojipicker

Selektor emotikonów to rozwiązanie interfejsu, które zapewnia nowoczesny wygląd, aktualne emotikony i łatwość obsługi. Użytkownicy mogą przeglądać i wybierać emotikony oraz ich warianty lub wybierać spośród ostatnio używanych emotikonów. Dzięki tej bibliotece aplikacje różnych producentów OEM mogą zapewniać użytkownikom spójne i jednolite wrażenia związane z emotikonami bez konieczności tworzenia i utrzymywania przez deweloperów własnego selektora emotikonów od podstaw.

Aktualne emotikony

Nowe emotikony są publikowane co roku i będziemy je selektywnie dodawać do selektora emotikonów. Aby zapewnić zgodność wsteczną, przeprowadzamy wewnętrznie dokładne sprawdzanie renderowania emoji, aby wyeliminować tofu. Dzięki temu biblioteka będzie zgodna z wieloma wersjami Androida i urządzeniami.

Warianty przyklejone

Jeśli przytrzymasz emotikon, wyświetli się menu z jego wariantami, np. różnymi płciami lub odcieniami 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ć preferowane warianty emoji jednym kliknięciem.

Ostatnio używane emotikony

RecentEmojiProvider odpowiada za udostępnianie emotikonów w kategorii „Ostatnio używane”. Biblioteka ma domyślnego dostawcę ostatnio używanych emoji, który spełnia wymagania najczęstszego przypadku użycia:

  • Wszystkie wybrane emoji są zapisywane na poziomie poszczególnych aplikacji w ustawieniach udostępnionych.
  • Selektor wyświetla maksymalnie 3 wiersze wybranych emotikonów w odwrotnej kolejności chronologicznej.

Jeśli to domyślne działanie jest wystarczające, nie musisz ustawiać metody setRecentEmojiProvider().

Korzystanie z biblioteki 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łączony, selektor emotikonów nadal będzie działać prawidłowo.

Jak korzystać z biblioteki

Aby korzystać z biblioteki, deweloper aplikacji powinien:

  1. Zaimportuj androidx.emoji2:emojipicker:$versionbuild.gradle.

    dependencies {
      implementation "androidx.emoji2:emojipicker:$version"
    }
    
  2. Rozwiń widok selektora emotikonów i opcjonalnie ustaw wartości emojiGridRowsemojiGridColumns na podstawie żądanego rozmiaru każdej komórki emotikonu.

    • Możesz pozostawić te wartości nieustawione. Domyślnie jest to 9 emojiGridColumns, a liczba wierszy zostanie obliczona na podstawie wysokości widoku rodzica i emojiGridColumns.
    • Możesz ustawić wartość emojiGridRows jako liczbę zmiennoprzecinkową, aby wskazać, że po przewinięciu w dół pojawi się więcej emoji.
     <androidx.emoji2.emojipicker.EmojiPickerView
      android:id="@+id/emoji_picker"
      android:layout_width="match_parent"
      android:layout_height="match_parent"
      app:emojiGridColumns="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)
  1. Jeśli chcesz dodać wybrane emotikony do pola EditText, użyj setOnEmojiPickedListener()

      emojiPickerView.setOnEmojiPickedListener {
          findViewById<EditText>(R.id.edit_text).append(it.emoji)
      }
    
  2. Opcjonalnie ustaw RecentEmojiProvider. Przykład implementacji znajdziesz w przykładowej aplikacji.

  3. Opcjonalnie dostosuj style. Utwórz własny styl, aby zastąpić typowe atrybuty motywu i zastosować go do elementu EmojiPickerView. Na przykład zastąpienie colorControlNormal 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" />
    

Przykład implementacji znajdziesz w przykładowej aplikacji.

Pełną listę interfejsów API znajdziesz tutaj.

Przykładowa aplikacja

Ta przykładowa aplikacja pokazuje podstawowe przypadki użycia oraz te dodatkowe scenariusze:

  • Widok został ponownie rozmieszczony, ponieważ emojiGridRowsemojiGridColumns zostały zresetowane.
  • Ostatnio używane emotikony są zastępowane sortowaniem według częstotliwości.
  • Dostosowywanie stylu.

Zmiany w interfejsie API

Biblioteka selektora emoji została zaktualizowana o te nowe interfejsy API:

  • Klasa EmojiPickerView, która zapewnia aktualne emotikony w widoku z możliwością przewijania w pionie i klikalnym nagłówkiem poziomym.
  • Możliwość ustawienia liczby kolumn i wierszy w siatce selektora emotikonów za pomocą atrybutów XML emojiGridColumnsemojiGridRows lub metod setEmojiGridColumns()setEmojiGridRows().
  • Możliwość ustawienia odbiorcy wybranego emotikona za pomocą metody setOnEmojiPickedListener(). Słuchacz otrzyma powiadomienie, gdy użytkownik kliknie dowolną emotikonę.
  • Możliwość udostępniania ostatnio używanych emotikonów za pomocą metody setRecentEmojiProvider(). Ta funkcja jest opcjonalna. Jeśli dostawca ostatnio używanych emoji nie jest ustawiony, biblioteka użyje domyślnego dostawcy ostatnio używanych emoji. Domyślne działanie jest zdefiniowane w ten sposób:
    • Wszystkie wybrane emoji zostaną zapisane na poziomie poszczególnych aplikacji w ustawieniach udostępnionych.
    • Selektor wyświetli maksymalnie 3 wiersze wybranych emotikonów w odwrotnej kolejności chronologicznej. Duplikaty zostaną usunięte.
  • Klasa EmojiViewItem, która zawiera wyświetlany emotikon i jego warianty.
  • Interfejs RecentEmojiProvider, który można wdrożyć, aby udostępnić listę ostatnio używanych emoji. recentEmojiProvider odpowiada za udostępnianie emotikonów w kategorii „Ostatnio używane”.
  • Interfejs RecentEmojiAsyncProvider, który można wdrożyć, aby udostępnić listę ostatnio używanych emoji. RecentEmojiAsyncProvider odpowiada za udostępnianie emotikonów w kategorii „Ostatnio używane”. Ten interfejs jest odpowiednikiem interfejsu RecentEmojiProvider, który umożliwia klientom zastąpienie metody getRecentEmojiListAsync(), aby udostępniać ostatnio używane emoji.
  • Klasa RecentEmojiProviderAdapter, która jest adapterem dla RecentEmojiAsyncProvider i implementuje RecentEmojiProvider.

Wersja 1.4.0-alpha01

22 marca 2023 r.

Publikacja androidx.emoji2:emoji2-*:1.4.0-alpha01 Wersja 1.4.0-alpha01 zawiera te zatwierdzenia.

Poprawki błędów

  • Poprawianie testów, wyłączanie testów niestabilnych i czyszczenie.

Wersja 1.3

Wersja 1.3.0

22 marca 2023 r.

Publikacja androidx.emoji2:emoji2-*:1.3.0 Wersja 1.3.0 zawiera te zatwierdzenia.

Ważne zmiany od wersji 1.2.0

  • Ta wersja umożliwia włączenie integracji emoji2 w Compose Foundation1.4.0 i nowszych.
  • Umożliwia też zastępowanie znaku EmojiSpans niestandardowym kodem rysowania, a także obsługuje wykluczenia emoji zdefiniowane na Androidzie.

Wersja 1.3.0-rc01

8 marca 2023 r.

Publikacja androidx.emoji2:emoji2-*:1.3.0-rc01 Wersja 1.3.0-rc01 zawiera te zatwierdzenia.

Nowe funkcje

  • Ta wersja obsługuje integrację tworzenia emoji2.

Zmiany w interfejsie API

  • Zastąp zakresy niestandardowym kodem rysowania.
  • Wykonywanie zapytań dotyczących wykluczeń systemowych.

Poprawki błędów

  • Rozwiązaliśmy też błąd polegający na tym, że zakresy tła nie były prawidłowo stosowane za znakiem EmojiSopans.

Wersja 1.3.0-beta03

23 lutego 2023 roku

androidx.emoji2:emoji2-bundled:1.3.0-beta03, androidx.emoji2:emoji2-views:1.3.0-beta03androidx.emoji2:emoji2-views-helper:1.3.0-beta03 są zwalniane.

22 lutego 2023 roku

Publikacja androidx.emoji2:emoji2:1.3.0-beta03 Wersja 1.3.0-beta03 zawiera te zatwierdzenia.

Nowe funkcje

  • Bez zmian. Ta wersja ma na celu przygotowanie integracji z funkcją pisania.

Wersja 1.3.0-beta02

8 lutego 2023 r.

Publikacja androidx.emoji2:emoji2-*:1.3.0-beta02 Wersja 1.3.0-beta02 zawiera te zatwierdzenia.

Nowe funkcje

  • Ta wersja stabilizuje działanie, aby umożliwić integrację z kompozycją.

Wersja 1.3.0-beta01

25 stycznia 2023 r.

Publikacja androidx.emoji2:emoji2-*:1.3.0-beta01 Wersja 1.3.0-beta01 zawiera te zatwierdzenia.

Nowe funkcje

  • Wykonywanie zapytań dotyczących wykluczeń systemowych.
  • Zastępowanie zakresów kodem rysowania niestandardowego.
  • Rozwiązaliśmy też błąd polegający na tym, że zakresy tła nie były prawidłowo stosowane za znakiem EmojiSopans.
  • Ta wersja dodaje interfejsy API niezbędne do obsługi EmojiCompat w Compose. Obsługa tworzenia emotikonów w trybie zgodności zostanie dodana w jednej z najbliższych wersji.

Wersja 1.3.0-alpha01

11 stycznia 2023 r.

Publikacja androidx.emoji2:emoji2-*:1.3.0-alpha01 Wersja 1.3.0-alpha01 zawiera te zatwierdzenia.

Nowe interfejsy API do interakcji niskiego poziomu

  • Wykluczenia zapytań systemowych
  • Zastępowanie zakresów w przypadku niestandardowego kodu rysowania
  • Rozwiązaliśmy też błąd polegający na tym, że zakresy tła nie były prawidłowo stosowane za znakiem EmojiSopans.
  • Ta wersja dodaje interfejsy API niezbędne do obsługi EmojiCompat w Compose. W najbliższej wersji wprowadzimy obsługę tworzenia emotikonów w trybie zgodności.

Zmiany w interfejsie API

  • Dodaliśmy możliwość wysyłania zapytań o wykluczenia systemowe do TypefaceEmojiRasterizer. (I5653e)
  • Dodaliśmy nowy interfejs API EmojiCompat.SpanFactory, który umożliwia zastąpienie domyślnego działania EmojiSpan niestandardowym kodem rysowania i określania rozmiaru. (Ib69d9)
  • Dodano EmojiCompat do funkcji pisania (I96f37, b/139326806)

Poprawki błędów

  • Emoji2 będzie teraz prawidłowo rysować tła z BackgroundSpan. (Ide6a8, b/230525134)
  • Finalizacja interfejsów API AppCompat w wersji 1.5.0-beta01 (I2a43d, b/236866227)

Wersja 1.2

Wersja 1.2.0

10 sierpnia 2022 r.

Publikacja androidx.emoji2:emoji2-*:1.2.0 Wersja 1.2.0 zawiera te zatwierdzenia.

Ważne zmiany od wersji 1.1.0

Jest to wersja poprawiająca błędy. 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 emotikony do PrecomputedText, odrzucając wcześniej obliczony układ tekstu. (I47d06, b/211231958)
  • Przeniesienie poprawki błędu powodującego awarię edytora z Androida P do wersji EditText skonfigurowanej do korzystania z emoji2. (Ifd709, b/216891011)
  • Rozwiązanie problemu z awarią, która występowała, gdy emoji2 wczytywał czcionkę i użyto wartości TextView.setText(char[]). (Id511e, b/206859724)

Wersja 1.2.0-rc01

27 lipca 2022 roku

Publikacja androidx.emoji2:emoji2-*:1.2.0-rc01 Wersja 1.2.0-rc01 zawiera te zatwierdzenia.

  • Brak zmian od ostatniej wersji beta.

Wersja 1.2.0-beta01

13 lipca 2022 r.

Publikacja androidx.emoji2:emoji2-*:1.2.0-beta01 Wersja 1.2.0-beta01 zawiera te zatwierdzenia.

Nowe funkcje

  • Brak zmian w porównaniu z ostatnią wersją (ta wersja jest przeznaczona do obsługi wersji AppCompat).

Wersja 1.2.0-alpha04

20 kwietnia 2022 r.

Publikacja androidx.emoji2:emoji2-*:1.2.0-alpha04 Wersja 1.2.0-alpha04 zawiera te zmiany.

Nowe funkcje

  • W tej wersji nie wprowadzono żadnych zmian.

Wersja 1.2.0-alpha03

6 kwietnia 2022 roku

Publikacja androidx.emoji2:emoji2-*:1.2.0-alpha03 Wersja 1.2.0-alpha03 zawiera te zmiany.

Nowe funkcje

  • Brak zmian w porównaniu z ostatnią wersją (ta wersja jest przeznaczona do obsługi wersji biblioteki appcompat).

Wersja 1.2.0-alpha02

23 marca 2022 r.

Publikacja androidx.emoji2:emoji2-*:1.2.0-alpha02 Wersja 1.2.0-alpha02 zawiera te zmiany.

Poprawki błędów

  • Emoji2 doda emotikony do PrecomputedText, odrzucając wcześniej obliczony układ tekstu. (I47d06, b/211231958)
  • Przeniesienie poprawki błędu edytora z Androida P do elementu EditText skonfigurowanego do korzystania z emoji2. (Ifd709, b/216891011)
  • Rozwiązanie problemu z awarią, która występowała, gdy emoji2 wczytywał czcionkę i użyto znaku TextView.setText(char[]). (Id511e, b/206859724)

Wersja 1.2.0-alpha01

23 lutego 2022 r.

Publikacja androidx.emoji2:emoji2-*:1.2.0-alpha01 Wersja 1.2.0-alpha01 zawiera te zmiany.

Brak zmian od wersji 1.1.0.

1.1

Wersja 1.1.0

23 lutego 2022 r.

Publikacja androidx.emoji2:emoji2-*:1.1.0 Wersja 1.1.0 zawiera te zmiany.

Ważne zmiany od wersji 1.0.0

  • emoji2-bundled zawiera czcionkę emoji 14
  • Nowy interfejs getEmojiMatch API zwraca dokładne informacje, dzięki którym klawiatury mogą określać, jak emotikon będzie wyświetlany w obecności czcionki zgodnej z emotikonami, która jest za czcionką systemową.
  • Poprawka błędu NumberKeyListener, która sprawia, że wprowadzanie cyfr prawidłowo filtruje znaki.

Wersja 1.1.0-rc01

9 lutego 2022 r.

Publikacja androidx.emoji2:emoji2-*:1.1.0-rc01 Wersja 1.1.0-rc01 zawiera te zmiany.

Nowe funkcje

Brak zmian w porównaniu z wersją beta.

Nowe funkcje w porównaniu z emoji2 1.0.0:

  • emoji2-bundled zawiera czcionkę Emoji 14
  • Nowy interfejs getEmojiMatch API zwraca dokładne informacje, dzięki którym klawiatury mogą określać, jak emotikon będzie wyświetlany w obecności czcionki zgodnej z emotikonami, która jest za czcionką systemową.
  • Poprawka błędu NumberKeyListener, która sprawia, że wprowadzanie cyfr prawidłowo filtruje znaki

Wersja 1.1.0-beta01

26 stycznia 2022 r.

Publikacja androidx.emoji2:emoji2-*:1.1.0-beta01 Wersja 1.1.0-beta01 zawiera te zmiany.

Poprawki błędów

  • Wersja beta01 biblioteki androidx-emoji2. Brak zmian w porównaniu z wersją alpha01 (Ic61d9)

Wersja 1.1.0-alpha01

15 grudnia 2021 roku

Publikacja androidx.emoji2:emoji2-*:1.1.0-alpha01 Wersja 1.1.0-alpha01 zawiera te zmiany.

Nowe funkcje

  • emoji2-bundled zawiera czcionkę Emoji 14
  • Nowy interfejs getEmojiMatch API zwraca dokładne informacje, dzięki którym klawiatury mogą określać, jak emotikon będzie wyświetlany w obecności czcionki zgodnej z emotikonami, która jest za czcionką systemową.
  • Poprawka błędu NumberKeyListener, która sprawia, że wprowadzanie cyfr prawidłowo filtruje znaki

Zmiany w interfejsie API

  • Dodanie nowego interfejsu API getEmojiMatch, aby klawiatury mogły dokładniej wyszukiwać zachowania dopasowania emoji w emojicompat.
  • Wycofanie funkcji hasEmojiGlyph, ponieważ jej wartość logiczna jest nieprawidłowa w przypadku testowania czcionki starszej niż czcionka emoji na platformie. Zastąp elementem getEmojiMatch. (Ie693d)

Poprawki błędów

  • Emoji2 nie będzie opakowywać instancji NumberKeyListener, co umożliwi konfigurowanie ustawień regionalnych przez TextView.
  • Biblioteka Appcompat nie będzie opakowywać instancji NumberKeyListener przekazywanych do setKeyListener, co umożliwi bibliotece TextView prawidłowe skonfigurowanie ustawień regionalnych w NumberKeyListeners. (Ibf113, b/207119921)

1,0

Wersja 1.0.1

15 grudnia 2021 roku

Publikacja androidx.emoji2:emoji2-*:1.0.1 Wersja 1.0.1 zawiera te zatwierdzenia.

Poprawki błędów

  • Emoji2 nie będzie obejmować instancji NumberKeyListener, co umożliwi skonfigurowanie ustawień regionalnych przez TextView.
  • Biblioteka Appcompat nie będzie opakowywać instancji NumberKeyListener przekazywanych do setKeyListener, co umożliwi bibliotece TextView prawidłowe skonfigurowanie ustawień regionalnych w NumberKeyListeners. (Ibf113, b/207119921)

Wersja 1.0.0

17 listopada 2021 r.

Publikacja androidx.emoji2:emoji2-*:1.0.0 Wersja 1.0.0 zawiera te zatwierdzenia.

Główne funkcje wersji 1.0.0

Biblioteka androidx.emoji2 zastępuje bibliotekę androidx.emoji i ma dodatkowe możliwości:

  • Zmniejszenie rozmiaru pliku APK w porównaniu z androidx.emoji
  • Automatyczna konfiguracja
  • Dodano jako zależność do biblioteki appcompat w wersji 1.4

Więcej informacji o androidx.emoji2 znajdziesz w artykule Obsługa nowoczesnych emotikonów oraz w naszej prezentacji z Android Dev Summit Wyświetlanie wszystkich emotikonów w aplikacji na Androida.

Wersja 1.0.0-rc01

27 października 2021 r.

Publikacja androidx.emoji2:emoji2-*:1.0.0-rc01 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.

Publikacja androidx.emoji2:emoji2-*:1.0.0-beta01 Wersja 1.0.0-beta01 zawiera te zatwierdzenia.

Zmiany w interfejsie API

  • Dodano setLoadingExecutor do FontRequestEmojiCompatConfig, co zastępuje poprzedni interfejs API setHandler. Ten interfejs API umożliwia aplikacjom konfigurowanie FontRequestEmojiCompatConfig do korzystania z dowolnego wykonawcy w tle.

    Ta zmiana jest zmianą powodującą niezgodność z androidx.emoji:emoji, więc setHandler jest zachowywany jako wycofany interfejs API, który nie wykonuje żadnych działań, aby ułatwić migrację. (I6cd48)

  • Biblioteka EmojiCompat prawidłowo ustawia wartość EditorInfo.extras na Androidzie 11

    • Niestandardowe widżety, które używają IME i nie są podklasą EditText, mogą wywoływać EmojiCompat.updateEditorInfo, aby poinformować IME, że obsługują przetwarzanie EmojiCompat. (I1ea9b)

Poprawki błędów

  • Poprawiono DefaultEmojiCompatConfig, aby prawidłowo wyszukiwać dostawcę czcionki emoji na interfejsach API 19 i 28. Rozwiązuje to błąd wprowadzony w bibliotece emoji2 w wersji 1.0.0-alpha01. (Ib33d8, b/197906329)

Wersja 1.0.0-alpha03

30 czerwca 2021 r.

Publikacja androidx.emoji2:emoji2-*:1.0.0-alpha03 Wersja 1.0.0-alpha03 zawiera te zatwierdzenia.

Nowe funkcje

Ta wersja zawiera poprawki błędów i zapewnia większą stabilność.

  1. Klasa EmojiEditTextHelper umożliwia teraz przekazywanie wartości null jako KeyListener. Umożliwia to zastosowanie do implementacji EditText obsługujących emoji zachowania platformy, które zezwala na wartości null.
  2. W przypadku używania klasy EmojiCompatInitializer początkowe opóźnienie uruchamiania jest mniejsze, ponieważ wyzwalanie następuje po wznowieniu pierwszej aktywności. Dzięki temu aplikacja może uruchamiać się bez zakłóceń i nie trzeba wczytywać czcionki w przypadku uruchomień, które nigdy nie wyświetlają interfejsu. Po krótkim opóźnieniu biblioteka EmojiCompat utworzy wątek do wczytania czcionki emotikonów.
  • Aby wdrożyć opóźnienie, dodano nową zależność od androidx.lifecycle:lifecycle-processandroidx.emoji2:emoji2. W przypadku aplikacji, które już zawierają cykl życia (np. aplikacji z biblioteką appcompat), będzie to miało znikomy wpływ na rozmiar pliku APK.

Zmiany w interfejsie API

  • Zezwalaj na wartość null w przypadku KeyListener w klasie AppCompatEditText. Cofa to adnotację o wartości niezerowej, która została dodana do AppCompatEditText w wersji 1.4.0-alpha01, i przywraca poprzednie działanie w przypadku przekazania wartości null. (I21482, b/189559345)

Poprawki błędów

  • Zmień EmojiCompatInitializer, aby opóźnić ładowanie czcionki do 500 ms po pierwszym Activity.onResume. Dzięki temu aktywność może wykonywać operacje Application.onCreateActivity.onCreate bez zakłóceń, a jednocześnie zapewniać, że czcionka emoji zostanie wczytana krótko po uruchomieniu aplikacji. (I4bff7)

Wersja 1.0.0-alpha02

2 czerwca 2021 r.

androidx.emoji2:emoji2:1.0.0-alpha02, androidx.emoji2:emoji2-views:1.0.0-alpha02androidx.emoji2:emoji2-views-helper:1.0.0-alpha02 są zwalniane. Wersja 1.0.0-alpha02 zawiera te zatwierdzenia.

Zmiany w interfejsie API

  • Zmieniono nazwę pakietu w emoji2-views-helper na androidx.emoji2.viewsintegration. Jest to zmiana powodująca niezgodność w przypadku AppCompat 1.4.0-alpha01. Aplikacje muszą zaktualizować zależność AppCompat, 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-alpha01androidx.emoji2:emoji2-views-helper:1.0.0-alpha01 są zwalniane. Wersja 1.0.0-alpha01 zawiera te zatwierdzenia.

Funkcje w tej pierwszej wersji

Zalecamy zintegrowanie biblioteki emojicompat ze wszystkimi aplikacjami, aby obsługiwać nowoczesne emotikony od API19. Wszystkie treści generowane przez użytkowników w Twojej aplikacji zawierają emoji 🎉.

Biblioteka EmojiCompat została przeniesiona z artefaktów androidx.emoji do nowych artefaktów androidx.emoji2, które są obecnie w wersji alfa01. Nowe artefakty zastąpią poprzednią wersję.

emoji2 jest dodawany jako zależność do AppCompat od AppCompat 1.4.0-alpha01 i jest domyślnie włączony w przypadku widoków AppCompat.

Artefakt emoji2 wprowadza nową automatyczną konfigurację z użyciem biblioteki androidx.startup. Nie musisz już pisać żadnego 👨🏽‍💻 kodu, aby wyświetlić 🐻‍❄️.

Zmiany w emoji2 w porównaniu z emoji

  • Dodano nową automatyczną konfigurację EmojiCompatInitializer za pomocą androidx.startup.
  • Dodano nową konfigurację domyślną, która używa lokalizacji usługi do znajdowania dostawcy czcionek do pobrania w sekcji DefaultEmojiCompatConfiguration.
  • Zajęcia przeniesione z pakietu androidx.emoji do androidx.emoji2.
  • Podziel widok EmojiTextView i powiązane widoki na osobny artefakt emoji2-views. Używaj tej opcji tylko wtedy, gdy aplikacja nie korzysta z biblioteki appcompat.
  • Wyodrębnione funkcje pomocnicze do integrowania biblioteki emojicompat z widokami niestandardowymi w osobnym artefakcieemoji2-views-helper.
  • Dodano adnotacje dotyczące dopuszczalności wartości null.
  • Funkcje pomocnicze w emoji2-views-helper można teraz używać nawet wtedy, gdy EmojiCompat nie jest zainicjowany (wcześniej powodowały wyjątek).

Jaką zależność należy dodać?

  • Aplikacje korzystające z AppCompat powinny zostać uaktualnione do wersji AppCompat 1.4.0-alpha01 lub nowszej.
  • Aplikacje bez AppCompat korzystające z TextView/EditText z platformy powinny używać EmojiTextView i powiązanych klas z emoji2-views.

Obsługa w widokach niestandardowych

  • Aplikacje korzystające z biblioteki AppCompat powinny rozszerzać klasy AppCompatTextView, AppCompatButton itp. zamiast klas platformy TextView itp.
  • Aplikacje bez AppCompat powinny dodać zależność androidx.emoji2:emoji2-views-helper i używać funkcji pomocniczych do integracji z niestandardowymi podklasami TextView lub EditText.

Konfigurowanie automatycznej inicjalizacji

  • Aplikacje mogą wyłączyć automatyczną inicjację, dodając do pliku manifestu ten kod:

     <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>
    
  • Wyłącza to automatyczną konfigurację, a następnie możesz przekazać niestandardową konfigurację do EmojiCompat.init. Domyślną konfigurację systemu można pobrać DefaultEmojiCompatConfig.create(context) w celu dalszej konfiguracji przed przekazaniem do EmojiCompat.init.

Emoji2 Emojipicker w wersji 1.0

Wersja 1.0.0-alpha03

8 marca 2023 r.

Publikacja androidx.emoji2:emoji2-emojipicker:1.0.0-alpha03 Wersja 1.0.0-alpha03 zawiera te zatwierdzenia.

Poprawki błędów

  • Usunięto niepotrzebne zasoby i zmniejszono rozmiar biblioteki o ok.0,3 M.

Wersja 1.0.0-alpha02

22 lutego 2023 roku

Publikacja androidx.emoji2:emoji2-emojipicker:1.0.0-alpha02 Wersja 1.0.0-alpha02 zawiera te zatwierdzenia.

Zmiany w interfejsie API

  • Dodaliśmy nowy interfejs API dla klientów Javy, aby mogli oni udostępniać najnowsze emotikony. (I39d10)

Poprawki błędów

  • Aktualizacja zasobów emotikonów w celu obsługi emotikonów w wersji 15.0 (Ib4eb3)
  • Gdy wybierzesz emotikon w wyskakującym okienku, wszystkie identyczne emotikony zostaną zastąpione nowo wybranym emotikonem (z wyjątkiem wiersza z ostatnio używanymi emotikonami). Odczytuj też emotikony po kliknięciu. (I892c6)
  • Zanim wyświetlisz znak EmojiPickerView, poczekaj, aż załaduje się emojicompat. (I29e03)

Wersja 1.0.0-alpha01

25 stycznia 2023 r.

Publikacja androidx.emoji2:emoji2-emojipicker:1.0.0-alpha01 Wersja 1.0.0-alpha01 zawiera te zatwierdzenia.

Nowe funkcje

  • Wprowadziliśmy selektor emotikonów, który zapewnia spójność wrażeń użytkowników dzięki najnowszym emotikonom na urządzeniach OEM z systemem operacyjnym Android i w aplikacjach. Zapewnia obsługę najnowszych emotikonów i interfejs selektora emotikonów, w tym warianty odcieni skóry i obsługę zgodności emotikonów.

Zmiany w interfejsie API

  • Wprowadzono klasę EmojiPickerView, która zapewnia aktualne emotikony w widoku przewijanym w pionie z nagłówkiem poziomym, w który można kliknąć.
  • Kolumny siatki selektora emotikonów można ustawić za pomocą atrybutu XML emojiGridColumns lub funkcji setEmojiGridColumns().
  • Wiersze siatki selektora emotikonów można ustawić za pomocą atrybutu XML emojiGridRows lub funkcji setEmojiGridRows().
  • Słuchacza wybranego emotikona można ustawić za pomocą setOnEmojiPickedListener(). Będzie on otrzymywać powiadomienia za każdym razem, gdy użytkownik kliknie dowolny emotikon.
  • Ostatni dostawca emotikonów może być oznaczony symbolem setRecentEmojiProvider(). Ta funkcja jest opcjonalna. Jeśli dostawca ostatnio używanych emoji nie jest ustawiony, biblioteka użyje domyślnego dostawcy ostatnio używanych emoji. Domyślne działanie jest zdefiniowane w ten sposób: 1) wszystkie wybrane emoji zostaną zapisane na poziomie aplikacji w ustawieniach udostępnionych. 2) selektor wyświetli maksymalnie 3 wiersze wybranych emotikonów w odwrotnej kolejności chronologicznej, bez duplikatów.
  • Wprowadzono klasę EmojiViewItem, która zawiera wyświetlany emotikon i jego warianty.
  • Wprowadzono interfejs RecentEmojiProvider, który można wdrożyć, aby udostępnić listę ostatnio używanych emoji. recentEmojiProvider odpowiada za udostępnianie emotikonów w kategorii „Ostatnio używane”.