Emoji2

Wyświetlanie emoji na obecnych i starszych urządzeniach.
Najnowsza aktualizacja Wersja stabilna Wersja kandydująca do publikacji Wersja Beta Wersja alfa
2 lipca 2025 r. 1.5.0 - 1.6.0-beta01 -

Deklarowanie zależności

Aby dodać zależność od Emoji2, musisz dodać repozytorium Google Maven do projektu. Więcej informacji znajdziesz w 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.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 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 dodać swój głos do istniejącego problemu, klikając przycisk gwiazdki.

Tworzenie nowego problemu

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

Emoji2 Emojipicker w wersji 1.0

Wersja 1.5.0

4 września 2024 r.

Zostanie wycofaneandroidx.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ługa 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 przypadku stanu zerowego. 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 w prawym dolnym rogu pojawi się cały emotikon, który będzie można wstawić.

Wersja 1.0.0-alpha03

8 marca 2023 r.

Zostanie wycofaneandroidx.emoji2:emoji2-emojipicker:1.0.0-alpha03 Wersja 1.0.0-alpha03 zawiera te zmiany.

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

Zostanie wycofaneandroidx.emoji2:emoji2-emojipicker:1.0.0-alpha02 Wersja 1.0.0-alpha02 zawiera te zmiany.

Zmiany w interfejsie API

  • Dodaliśmy nowy interfejs API dla klientów Javy, aby mogli oni udostępniać najnowsze emoji. (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.

Zostanie wycofaneandroidx.emoji2:emoji2-emojipicker:1.0.0-alpha01 Wersja 1.0.0-alpha01 zawiera te zmiany.

Nowe funkcje

  • Wprowadziliśmy selektor emoji, który zapewnia spójność wrażeń użytkowników dzięki najnowszym emoji na urządzeniach OEM z Androidem 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 emoji można ustawić za pomocą atrybutu XML emojiGridColumns lub funkcji setEmojiGridColumns().
  • Wiersze siatki selektora emoji można ustawić za pomocą atrybutu XML emojiGridRows lub funkcji setEmojiGridRows().
  • Słuchacza wybranego emotikona można ustawić za pomocą setOnEmojiPickedListener(). Będzie on powiadamiany za każdym razem, gdy użytkownik kliknie dowolny emotikon.
  • Ostatni dostawca emotikonów może być oznaczony symbolem setRecentEmojiProvider(). Jest to funkcja 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 poszczególnych 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 wyświetlać listę ostatnio używanych emoji. recentEmojiProvider odpowiada za dostarczanie emotikonów w kategorii „Ostatnio używane”.

Wersja 1.6

Wersja 1.6.0-beta01

2 lipca 2025 r.

Zostanie wycofaneandroidx.emoji2:emoji2-*:1.6.0-beta01 Wersja 1.6.0-beta01 zawiera te zmiany.

Nowe funkcje

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

Wersja 1.6.0-alpha01

4 czerwca 2025 r.

Zostanie wycofaneandroidx.emoji2:emoji2-*:1.6.0-alpha01 Wersja 1.6.0-alpha01 zawiera te zmiany.

Nowe funkcje

  • Aktualizacje danych Emoji 16.0 (Ifc878)
  • Dodawanie do opisu treści sufiksu „emoji”

Poprawki błędów

  • Ta biblioteka używa teraz adnotacji o wartości null JSpecify, które są używane w typach. 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.

Zostanie wycofaneandroidx.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ługa 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 przypadku stanu zerowego. 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 w prawym dolnym rogu pojawi się cały emotikon, który będzie można wstawić.

Wersja 1.5.0-rc01

21 sierpnia 2024 r.

Zostanie wycofaneandroidx.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 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 przedstawiających pary powoduje wyświetlenie selektora emotikonów z wieloma osobami w przypadku stanu zerowego. 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

  • Usunęliśmy ręczne określanie dostępu do nowych interfejsów API platformy, ponieważ odbywa się to automatycznie za pomocą modelowania interfejsu API podczas korzystania z R8 z AGP 7.3 lub nowszym (np. R8 w wersji 3.3) oraz w przypadku wszystkich kompilacji podczas korzystania z AGP 8.1 lub nowszego (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)
  • EmojiPickerView’s tab selection and indicator updates one click behind. (146b02, b/288261054)
  • EmojiPickerView nie działa wybór karty ani wskaźnik. (5e1f14, b/273883688)

Wersja 1.5.0-beta01

10 lipca 2024 r.

Zostanie wycofaneandroidx.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.
  • Zmiana projektu obsługi wyboru wielu odcieni skóry.

Poprawki błędów

  • EmojiPickerView’s tab selection and indicator updates one click behind. (146b02, b/288261054)
  • EmojiPickerView nie działa wybór karty ani wskaźnik. (5e1f14, b/273883688)

Wersja 1.5.0-alpha01

13 grudnia 2023 r.

Zostanie wycofaneandroidx.emoji2:emoji2-*:1.5.0-alpha01 Wersja 1.5.0-alpha01 zawiera te zmiany.

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 teraz przyjmuje wykonawcę do sterowania wątkami ładowania. (I00e81)

Wersja 1.4

Wersja 1.4.0

9 sierpnia 2023 r.

Zostanie wycofaneandroidx.emoji2:emoji2-*:1.4.0 Wersja 1.4.0 zawiera te zmiany.

Ważne zmiany od wersji 1.3.0

Wersja 1.4.0-rc01

26 lipca 2023 r.

Zostanie wycofaneandroidx.emoji2:emoji2-*:1.4.0-rc01 Wersja 1.4.0-rc01 zawiera te zmiany.

Zmiany w interfejsie API

  • Wprowadzenie listy registerSource (Iae92f)
  • Opinia Rady ds. API: nazwa TransitionManager.seekTo() została zmieniona na createSeekController(). Proszę zmień poprzedni komentarz dotyczący dodania TransitionManager.seekTo() do TransitionManager.createSeekController(). (Idbeb1)
  • Dodano ExerciseRouteResult, która nie jest nadklasą dla Data, NoDataConsentRequiredStates. Dodano ExerciseRoute jako samodzielną klasę, która zawiera dane o lokalizacji na trasie. (I22eed)
  • Wprowadzono PagerLayoutInfo z informacjami zebranymi po przejściu testu 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 Material3. Rolę semantyczną elementów Button, IconButtonTextButton można teraz zastąpić za pomocą atrybutu Modifier.semantics. (Ib2495)
  • Naprawiono problem z wyborem karty i aktualizacją wskaźnika w EmojiPickerView, które były opóźnione o 1 kliknięcie. (I4db04)
  • FileNotFoundException – wyświetlanie selektora emotikonów (I353e4)
  • Wykorzystaj WindowManager.BadTokenException podczas korzystania z EmojiPickerView (I0a144)

Wersja 1.4.0-beta05

7 czerwca 2023 r.

Zostanie wycofaneandroidx.emoji2:emoji2-*:1.4.0-beta05 Wersja 1.4.0-beta05 zawiera te zmiany.

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 skalowany, 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.

Zostanie wycofaneandroidx.emoji2:emoji2-*:1.4.0-beta04 Wersja 1.4.0-beta04 zawiera te zmiany.

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 występuje on u Ciebie, zaktualizuj oprogramowanie do tej wersji lub nowszej.

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.

Zostanie wycofaneandroidx.emoji2:emoji2-*:1.4.0-beta03 Wersja 1.4.0-beta03 zawiera te zmiany.

Poprawki błędów

  • Naprawiono awarię zagnieżdżonego widoku wyskakującego okienka selektora emotikonów. (0acc8e)
  • Wyrzucaj wczesne wyjątki w EmojiCompat getEmojiStart/getEmojiEnd. (26177f)

Wersja 1.4.0-beta02

19 kwietnia 2023 r.

Zostanie wycofaneandroidx.emoji2:emoji2-*:1.4.0-beta02 Wersja 1.4.0-beta02 zawiera te zmiany.

Poprawki błędów

  • Aktualizacja plików podstawowych lint (Iaa212)

Wersja 1.4.0-beta01

5 kwietnia 2023 r.

Zostanie wycofaneandroidx.emoji2:emoji2-*:1.4.0-beta01 Wersja 1.4.0-beta01 zawiera te zmiany.

Nowe funkcje

androidx.emoji2:emoji2-emojipicker

Selektor emotikonów to rozwiązanie interfejsu, które zapewnia nowoczesny wygląd i styl, aktualne emotikony oraz łatwość obsługi. Użytkownicy mogą przeglądać i wybierać emotikony oraz ich warianty, a także 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 emoji bez konieczności tworzenia i utrzymywania własnego selektora emoji od zera.

Aktualne emotikony

Co roku pojawiają się nowe emotikony, które będziemy selektywnie dodawać do selektora emotikonów. Aby zapewnić zgodność wsteczną, przeprowadzamy wewnętrzną kontrolę renderowania emoji, aby wyeliminować tofu. Dzięki temu biblioteka będzie zgodna z wieloma wersjami Androida i urządzeniami.

Warianty przyklejone

Gdy 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 dostarczanie emotikonów w kategorii „Ostatnio używane”. Biblioteka ma domyślnego dostawcę ostatnio używanych emoji, który spełnia wymagania większości typowych przypadków 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. Duplikaty są usuwane.

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

Praca z biblioteką 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 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 emojiGridRows i emojiGridColumns na podstawie żądanego rozmiaru każdej komórki emotikonu.

    • Możesz pozostawić je bez ustawienia. Domyślna wartość to 9 emojiGridColumns. Liczba wierszy zostanie obliczona na podstawie wysokości widoku nadrzędnego 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 tego kodu: setOnEmojiPickedListener()

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

  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 zmieni kolor 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 emoji 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ść podania ostatniego dostawcy emoji za pomocą metody setRecentEmojiProvider(). Jest to funkcja opcjonalna. Jeśli nie ustawisz ostatnio używanego dostawcy emoji, biblioteka użyje domyślnego dostawcy. Domyślne działanie jest zdefiniowane w ten sposób:
    • Wszystkie wybrane emoji zostaną zapisane na poziomie 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 wyświetlać listę ostatnio używanych emotikonów. recentEmojiProvider odpowiada za dostarczanie emotikonów w kategorii „Ostatnio używane”.
  • Interfejs RecentEmojiAsyncProvider, który można wdrożyć, aby wyświetlać listę ostatnio używanych emotikonów. RecentEmojiAsyncProvider odpowiada za dostarczanie 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.

Zostanie wycofaneandroidx.emoji2:emoji2-*:1.4.0-alpha01 Wersja 1.4.0-alpha01 zawiera te zmiany.

Poprawki błędów

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

Wersja 1.3

Wersja 1.3.0

22 marca 2023 r.

Zostanie wycofaneandroidx.emoji2:emoji2-*:1.3.0 Wersja 1.3.0 zawiera te zmiany.

Ważne zmiany od wersji 1.2.0

  • Ta wersja umożliwia integrację emoji2 w Compose Foundation1.4.0 i nowszych.
  • Umożliwia też zastępowanie znaku EmojiSpans niestandardowym kodem rysowania oraz obsługuje wykluczenia emotikonów zdefiniowane na Androidzie.

Wersja 1.3.0-rc01

8 marca 2023 r.

Zostanie wycofaneandroidx.emoji2:emoji2-*:1.3.0-rc01 Wersja 1.3.0-rc01 zawiera te zmiany.

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 r.

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

Zostanie wycofaneandroidx.emoji2:emoji2:1.3.0-beta03 Wersja 1.3.0-beta03 zawiera te zmiany.

Nowe funkcje

  • Brak zmian. Ta wersja ma na celu przygotowanie do integracji z komponowaniem.

Wersja 1.3.0-beta02

8 lutego 2023 r.

Zostanie wycofaneandroidx.emoji2:emoji2-*:1.3.0-beta02 Wersja 1.3.0-beta02 zawiera te zmiany.

Nowe funkcje

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

Wersja 1.3.0-beta01

25 stycznia 2023 r.

Zostanie wycofaneandroidx.emoji2:emoji2-*:1.3.0-beta01 Wersja 1.3.0-beta01 zawiera te zmiany.

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. W najbliższej wersji wprowadzimy obsługę tworzenia emotikonów w trybie zgodności.

Wersja 1.3.0-alpha01

11 stycznia 2023 r.

Zostanie wycofaneandroidx.emoji2:emoji2-*:1.3.0-alpha01 Wersja 1.3.0-alpha01 zawiera te zmiany.

Nowe interfejsy API do interakcji niskiego poziomu

  • Wykluczenia zapytań systemowych
  • Zastępowanie zakresów w kodzie 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. 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)
  • Dodano 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 Pisanie (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.

Zostanie wycofaneandroidx.emoji2:emoji2-*:1.2.0 Wersja 1.2.0 zawiera te zmiany.

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 biblioteka emoji2 wczytywała czcionkę i użyto wartości TextView.setText(char[]). (Id511e, b/206859724)

Wersja 1.2.0-rc01

27 lipca 2022 roku

Zostanie wycofaneandroidx.emoji2:emoji2-*:1.2.0-rc01 Wersja 1.2.0-rc01 zawiera te zmiany.

  • Brak zmian od ostatniej wersji beta.

Wersja 1.2.0-beta01

13 lipca 2022 r.

Zostanie wycofaneandroidx.emoji2:emoji2-*:1.2.0-beta01 Wersja 1.2.0-beta01 zawiera te zmiany.

Nowe funkcje

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

Wersja 1.2.0-alpha04

20 kwietnia 2022 r.

Zostanie wycofaneandroidx.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

Zostanie wycofaneandroidx.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 appcompat).

Wersja 1.2.0-alpha02

23 marca 2022 r.

Zostanie wycofaneandroidx.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.

Zostanie wycofaneandroidx.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.

Zostanie wycofaneandroidx.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 API getEmojiMatch zwraca dokładne informacje o klawiaturach, aby określić, jak emoji będzie wyświetlane w przypadku czcionki zgodnej z emoji, która jest ukryta 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.

Zostanie wycofaneandroidx.emoji2:emoji2-*:1.1.0-rc01 Wersja 1.1.0-rc01 zawiera te zmiany.

Nowe funkcje

Brak zmian w stosunku do wersji beta.

Nowe funkcje w porównaniu z emoji2 w wersji 1.0.0:

  • emoji2-bundled zawiera czcionkę Emoji 14
  • Nowy interfejs API getEmojiMatch zwraca dokładne informacje o klawiaturach, aby określić, jak emoji będzie wyświetlane w przypadku czcionki zgodnej z emoji, która jest ukryta 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.

Zostanie wycofaneandroidx.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

Zostanie wycofaneandroidx.emoji2:emoji2-*:1.1.0-alpha01 Wersja 1.1.0-alpha01 zawiera te zmiany.

Nowe funkcje

  • emoji2-bundled zawiera czcionkę Emoji 14
  • Nowy interfejs API getEmojiMatch zwraca dokładne informacje o klawiaturach, aby określić, jak emoji będzie wyświetlane w przypadku czcionki zgodnej z emoji, która jest ukryta 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ć zachowanie dopasowania emotikonów w bibliotece 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 pozwoli na 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)

1,0

Wersja 1.0.1

15 grudnia 2021 roku

Zostanie wycofaneandroidx.emoji2:emoji2-*:1.0.1 Wersja 1.0.1 zawiera te zmiany.

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.

Zostanie wycofaneandroidx.emoji2:emoji2-*:1.0.0 Wersja 1.0.0 zawiera te zmiany.

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 roku

Zostanie wycofaneandroidx.emoji2:emoji2-*:1.0.0-rc01 Wersja 1.0.0-rc01 zawiera te zmiany.

  • Brak zmian od wersji beta02.

Emoji2 w wersji 1.0.0-beta01

15 września 2021 r.

Zostanie wycofaneandroidx.emoji2:emoji2-*:1.0.0-beta01 Wersja 1.0.0-beta01 zawiera te zmiany.

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 za pomocą biblioteki 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.

Zostanie wycofaneandroidx.emoji2:emoji2-*:1.0.0-alpha03 Wersja 1.0.0-alpha03 zawiera te zmiany.

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 uruchomienia 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 emoji.
  • 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 konfliktów, a jednocześnie zapewniać, że czcionka emoji zostanie wczytana wkrótce 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 zmiany.

Zmiany w interfejsie API

  • Zmieniono nazwę pakietu w emoji2-views-helper na androidx.emoji2.viewsintegration. Jest to zmiana powodująca niezgodność wsteczną w przypadku biblioteki 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 zmiany.

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ć emoji 🐻‍❄️.

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. Tej opcji należy używać 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 możliwości przyjmowania 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 TextView itp.
  • Aplikacje bez AppCompat powinny dodać zależność androidx.emoji2:emoji2-views-helper i używać pomocników 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.