Emoji2

wyświetlać emotikony na obecnych i starszych urządzeniach;
Ostatnia aktualizacja Wersja stabilna Wersja kandydująca do publikacji Wersja Beta Wersja alfa
4 czerwca 2025 r. 1.5.0 - - 1.6.0-alpha01

Deklarowanie zależności

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

Dodaj zależności dla artefaktów, których potrzebujesz, 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 zauważysz nowe problemy lub masz pomysły na ulepszenie tej biblioteki, daj nam znać. Zanim utworzysz nowy problem, zapoznaj się z dotychczasowymi problemami w tej bibliotece. Możesz dodać swój głos do istniejącego problemu, klikając przycisk z gwiazdką.

Tworzenie nowego zgłoszenia

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.

Element 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 emotikonów 15.1 i interfejsu selektora emotikonów dwukierunkowego. 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łówki 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.

Element androidx.emoji2:emoji2-emojipicker:1.0.0-alpha03 został zwolniony. Wersja 1.0.0-alpha03 zawiera te commity.

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

Element 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 emotikonu w oknie wyskakującym wszystkie identyczne emotikony zostaną zaktualizowane do nowo wybranego emotikonu (z wyjątkiem wiersza z ostatnio używanymi emotikonami). 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.

Element 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żytkowników dzięki najnowszym emotikonom na urządzeniach OEM i w aplikacjach z Androidem. Oferuje ona najnowsze emotikony i interfejs selektora emotikonów, w tym warianty odcieni skóry i obsługę zgodności emotikonów.

Zmiany w interfejsie API

  • Wprowadziliśmy klasę EmojiPickerView, która zawiera aktualne emotikony w pionowym widoku z możliwością przewijania oraz klikalny nagłówek poziomy.
  • 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().
  • Odbiorcę wybranego emotikonu można ustawić za pomocą setOnEmojiPickedListener(). Odbiorca zostanie powiadomiony, gdy użytkownik kliknie dowolny emotikon.
  • Ostatni dostawca emotikonów może być udostępniony za pomocą setRecentEmojiProvider(). To funkcja opcjonalna. Jeśli nie ustawisz ostatniego dostawcy emotikonów, biblioteka będzie używać domyślnego ostatniego 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.
  • Wprowadziliśmy klasę EmojiViewItem, która przechowuje wyświetlany emotikon i jego 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.6

Wersja 1.6.0-alpha01

4 czerwca 2025 r.

Element androidx.emoji2:emoji2-*:1.6.0-alpha01 został zwolniony. Wersja 1.6.0-alpha01 zawiera te komity.

Nowe funkcje

  • Aktualizacje danych emotikonów 16.0 (Ifc878)
  • Dodanie przyrostka „emoji” do opisu treści

Poprawki błędów

  • Biblioteka ta korzysta teraz z adnotacji JSpecify dotyczących nullowania, które są używane w zależności od typu. Deweloperzy Kotlina 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.

Element 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 emotikonów 15.1 i interfejsu selektora emotikonów dwukierunkowego. 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łówki 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.

Element 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 emotikonu, podgląd będzie zawierał cały emotikon, który 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 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 EmojiPickerView i wskaźnik są uszkodzone. (5e1f14, b/273883688)

Wersja 1.5.0-beta01

10 lipca 2024 r.

Element androidx.emoji2:emoji2-*:1.5.0-beta01 został zwolniony. Wersja 1.5.0-beta01 zawiera te komity.

Nowe funkcje

  • Obsługa emotikonów 15.1 i interfejsu do wyboru emotikonów w obie strony.
  • Zmiana projektu, aby umożliwić wybór różnych 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 EmojiPickerView i wskaźnik są uszkodzone. (5e1f14, b/273883688)

Wersja 1.5.0-alpha01

13 grudnia 2023 r.

Element 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 teraz używa wykonawcy do sterowania wątkami wczytywania. (I00e81)

Wersja 1.4

Wersja 1.4.0

9 sierpnia 2023 r.

Element androidx.emoji2:emoji2-*:1.4.0 został zwolniony. Wersja 1.4.0 zawiera te zatwierdzenia.

Ważne zmiany od wersji 1.3.0

Wersja 1.4.0-rc01

26 lipca 2023 r.

Element androidx.emoji2:emoji2-*:1.4.0-rc01 został zwolniony. Wersja 1.4.0-rc01 zawiera te zatwierdzenia.

Zmiany w interfejsie API

  • Wprowadzenie listy registerSource (Iae92f)
  • Opinia Rady Interfejsów API: nazwa TransitionManager.seekTo() została zmieniona na createSeekController(). Proszę zmienić poprzedni komentarz o dodaniu TransitionManager.seekTo() na TransitionManager.createSeekController(). (Idbeb1)
  • Dodano klasę ExerciseRouteResult, która nie jest superklasą dla klas Data, NoDataConsentRequiredStates. Dodano ExerciseRoute 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ż PageInfo, czyli informacje o pojedynczej zmierzonej stronie w Pagerze. (Iad003, b/283098900)

Poprawki błędów

  • Zaktualizowaliśmy kolory elementów Button, IconButtonTextButton zgodnie z Material Design 3. Semantyczna rola elementów Button, IconButtonTextButton może teraz zostać zastąpiona za pomocą elementu Modifier.semantics. (Ib2495)
  • Rozwiązanie problemu polegającego na tym, że przy wyborze karty EmojiPickerView i aktualizacji wskaźnika kliknięciem wskaźnik jest aktualizowany o jeden kliknięcie za mało. (I4db04)
  • FileNotFoundException wyświetlanie selektora emotikonów (I353e4)
  • Catch the WindowManager.BadTokenException when using EmojiPickerView (I0a144)

Wersja 1.4.0-beta05

7 czerwca 2023 r.

Element androidx.emoji2:emoji2-*:1.4.0-beta05 został zwolniony. Wersja 1.4.0-beta05 zawiera te commity.

Poprawki błędów

  • Naprawiliśmy błąd wprowadzony w wersji 1.3, który powodował, że MetricsAffectingSpans, np. RelativeSizeSpan, był stosowany dwukrotnie. raz podczas układania tekstu i jeszcze raz wewnątrz elementu EmojiSpan.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.

Element 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 czcionki. Nie ma obejścia tego problemu. Jeśli masz z nim do czynienia, zaktualizuj aplikację do tej wersji lub nowszej.

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.

Element androidx.emoji2:emoji2-*:1.4.0-beta03 został zwolniony. Wersja 1.4.0-beta03 zawiera te commity.

Poprawki błędów

  • Naprawiono błąd powodujący awarię w widoku w wyskakującym oknie selekcjonera emotikonów. (0acc8e)
  • Wyjątki wczesnego rzutu w funkcję EmojiCompat getEmojiStart/getEmojiEnd. (26177f)

Wersja 1.4.0-beta02

19 kwietnia 2023 r.

Element androidx.emoji2:emoji2-*:1.4.0-beta02 został zwolniony. 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.

Element 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 rozwiązanie UI, które zapewnia nowoczesny wygląd i sposób działania, aktualne emotikony oraz łatwość 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ą zapewniać użytkownikom przyjazne i ujednolicone emoji bez konieczności tworzenia i utrzymywania własnego selektora emoji od podstaw.

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

wariantów przyklejonych,

Długie naciśnięcie emotikonu spowoduje wyświetlenie menu z wersjami, takimi jak różne płcie czy odcienie skóry. Wybrany wariant zostanie zapisany w selektorze emotikonów, a ostatni wybrany wariant będzie używany w panelu głównym. Dzięki tej funkcji użytkownicy mogą wysyłać wybrane emotikony jednym kliknięciem.

Ostatnie emotikony

RecentEmojiProvider odpowiada za emotikony 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 w wspólnych preferencjach na poziomie aplikacji.
  • Selektor wyświetla maksymalnie 3 wiersze wybranych emotikonów, bez duplikatów, w odwrotnej kolejności chronologicznej.

Jeśli 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 nadal będzie działać.

Jak korzystać z biblioteki

Aby korzystać z biblioteki, deweloper aplikacji powinien:

  1. Zaimportuj androidx.emoji2:emojipicker:$version do build.gradle.

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

    • Możesz je pozostawić niewypełnione. Domyślnie jest to 9 emojiGridColumns. Wiersze będą obliczane na podstawie wysokości widoku nadrzędnego i emojiGridColumns
    • Możesz ustawić emojiGridRows jako liczbę zmienną, aby wskazać, że w XML jest więcej emotikonów, jeśli przewiniesz w dół.
     <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 dołączyć wybrane emotikony do elementu EditText, użyj setOnEmojiPickedListener().

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

  3. Opcjonalnie dostosuj style. Utwórz własny styl, aby zastąpić typowe atrybuty motywu, i zastosuj go do 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ładową implementację znajdziesz w przykładowej aplikacji.

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 rozmieszczony, ponieważ emojiGridRows i emojiGridColumns zostały zresetowane.
  • Ostatni użyty dostawca emotikonów jest zastąpiony przez sortowanie według częstotliwości.
  • dostosowywanie stylu;

Zmiany w interfejsie 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 emojiGridColumnsemojiGridRows lub metod setEmojiGridColumns()setEmojiGridRows().
  • 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 ostatnich 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 zdefiniowane w ten sposób:
    • Wszystkie wybrane emotikony zostaną zapisane na poziomie aplikacji w ramach wspólnych preferencji.
    • Selektor wyświetli maksymalnie 3 wiersze wybranych emotikonów, bez duplikatów, 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ę ostatnio używanych emotikonów. RecentEmojiAsyncProvider odpowiada za emotikony w kategorii „Ostatnio używane”. Ten interfejs jest odpowiednikiem interfejsu RecentEmojiProvider, który pozwala klientom zastąpić metodę getRecentEmojiListAsync(), aby wyświetlać ostatnio używane emotikony.
  • Klasa RecentEmojiProviderAdapter, która jest adapterem klasy RecentEmojiAsyncProvider i implementuje interfejs RecentEmojiProvider.

Wersja 1.4.0-alpha01

22 marca 2023 r.

Element androidx.emoji2:emoji2-*:1.4.0-alpha01 został zwolniony. Wersja 1.4.0-alpha01 zawiera te commity.

Poprawki błędów

  • naprawiać testy, wyłączać testy niestabilne i czyszczyć.

Wersja 1.3

Wersja 1.3.0

22 marca 2023 r.

Element 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 do integracji 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.

Element 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 w interfejsie API

  • Zastąp elementy z kodem niestandardowego rysunku.
  • 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-beta03androidx.emoji2:emoji2-views-helper:1.3.0-beta03 są dostępne.

22 lutego 2023 roku

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

Element androidx.emoji2:emoji2-*:1.3.0-beta02 został zwolniony. Wersja 1.3.0-beta02 zawiera te zatwierdzenia.

Nowe funkcje

  • Ta wersja stabilizuje działanie funkcji integracji z Compose.

Wersja 1.3.0-beta01

25 stycznia 2023 r.

Element 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 polegający na tym, że elementy tła nie były prawidłowo stosowane za elementem EmojiSopans.
  • Ta wersja dodaje interfejsy API potrzebne do obsługi EmojiCompat w Compose. W najbliższej aktualizacji udostępnimy obsługę emotikonów w komponowaniu.

Wersja 1.3.0-alpha01

11 stycznia 2023 r.

Element androidx.emoji2:emoji2-*:1.3.0-alpha01 został zwolniony. Wersja 1.3.0-alpha01 zawiera te commity.

Nowe interfejsy API do interakcji na niskim poziomie

  • Wyszukiwanie wykluczeń systemowych
  • Zastępowanie zakresów w kodzie niestandardowego rysowania
  • Naprawiliśmy też błąd polegający na tym, że elementy tła nie były prawidłowo stosowane za elementem EmojiSopans.
  • Ta wersja dodaje interfejsy API potrzebne do obsługi 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 umożliwia zastąpienie domyślnego zachowania EmojiSpan niestandardowym kodem rysowania i wymiarowania. (Ib69d9)
  • Dodano EmojiCompat do Compose (I96f37, b/139326806)

Poprawki błędów

  • Emoji2 będzie teraz prawidłowo wyświetlać 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.

Element androidx.emoji2:emoji2-*:1.2.0 został zwolniony. 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 do PrecomputedText, 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)
  • Rozwiązanie problemu z awarią podczas wczytywania czcionki przez emoji2 i używania TextView.setText(char[]). (Id511e, b/206859724)

Wersja 1.2.0-rc01

27 lipca 2022 roku

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

Element androidx.emoji2:emoji2-*:1.2.0-beta01 został zwolniony. 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.

Element androidx.emoji2:emoji2-*:1.2.0-alpha04 został zwolniony. Wersja 1.2.0-alpha04 zawiera te commity.

Nowe funkcje

  • W tej wersji nie ma żadnych zmian.

Wersja 1.2.0-alpha03

6 kwietnia 2022 roku

Element androidx.emoji2:emoji2-*:1.2.0-alpha03 został zwolniony. Wersja 1.2.0-alpha03 zawiera te komisy.

Nowe funkcje

  • Brak zmian w tej wersji w porównaniu z poprzednią (ta wersja obsługuje wersję aplikacji zgodnej z Androidem).

Wersja 1.2.0-alpha02

23 marca 2022 r.

Element androidx.emoji2:emoji2-*:1.2.0-alpha02 został zwolniony. Wersja 1.2.0-alpha02 zawiera te commity.

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 awarią podczas wczytywania czcionki przez emoji2 i używania TextView.setText(char[]). (Id511e, b/206859724)

Wersja 1.2.0-alpha01

23 lutego 2022 r.

Element androidx.emoji2:emoji2-*:1.2.0-alpha01 został zwolniony. Wersja 1.2.0-alpha01 zawiera te commity.

Brak zmian od wersji 1.1.0.

1,1

Wersja 1.1.0

23 lutego 2022 r.

Element androidx.emoji2:emoji2-*:1.1.0 został zwolniony. Wersja 1.1.0 zawiera te zatwierdzenia.

Ważne zmiany 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 ma się wyświetlać 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.

Element androidx.emoji2:emoji2-*:1.1.0-rc01 został zwolniony. Wersja 1.1.0-rc01 zawiera te zatwierdzenia.

Nowe funkcje

Brak zmian od 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 wpisywania cyfr

Wersja 1.1.0-beta01

26 stycznia 2022 r.

Element androidx.emoji2:emoji2-*:1.1.0-beta01 został zwolniony. 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

Element 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 dotycząca NumberKeyListener, która umożliwia prawidłowe filtrowanie znaków podczas wpisywania cyfr

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ąp getEmojiMatch. (Ie693d)

Poprawki błędów

  • Emoji2 nie otacza wystąpień NumberKeyListener, co pozwala skonfigurować ustawienia regionalne za pomocą TextView.
  • Appcompat nie owija wystąpień NumberKeyListener przekazanych do setKeyListener, co pozwala TextView prawidłowo skonfigurować lokalizację na NumberKeyListeners. (Ibf113, b/207119921)

1,0

Wersja 1.0.1

15 grudnia 2021 roku

Element androidx.emoji2:emoji2-*:1.0.1 został zwolniony. Wersja 1.0.1 zawiera te zatwierdzenia.

Poprawki błędów

  • Emoji2 nie spowoduje owijania wystąpień funkcji NumberKeyListener, co pozwoli na skonfigurowanie lokalizacji przez funkcję TextView.
  • Appcompat nie owija wystąpień NumberKeyListener przekazanych do setKeyListener, co pozwala TextView prawidłowo skonfigurować lokalizację na NumberKeyListeners. (Ibf113, b/207119921)

Wersja 1.0.0

17 listopada 2021 r.

Element androidx.emoji2:emoji2-*:1.0.0 został zwolniony. Wersja 1.0.0 zawiera te zatwierdzenia.

Najważniejsze funkcje wersji 1.0.0

androidx.emoji2 zastępuje androidx.emoji, oferując dodatkowe możliwości:

  • Zmniejszenie rozmiaru pliku APK w porównaniu z pakietem 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

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

Element androidx.emoji2:emoji2-*:1.0.0-beta01 został zwolniony. Wersja 1.0.0-beta01 zawiera te commity.

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ą przerwanie działania interfejsu androidx.emoji:emoji, więc interfejs setHandler 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 dziedziczą z EditText, można wywołać funkcję EmojiCompat.updateEditorInfo, aby poinformować IME o obsługiwaniu przetwarzania EmojiCompat. (I1ea9b)

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.

Element androidx.emoji2:emoji2-*:1.0.0-alpha03 został zwolniony. Wersja 1.0.0-alpha03 zawiera te commity.

Nowe funkcje

Ta wersja zawiera poprawki błędów i poprawki stabilności.

  1. EmojiEditTextHelper umożliwia teraz przekazywanie obiektu null jako KeyListener. Dzięki temu platforma pozwala na stosowanie wartości null do emotikonów obsługujących implementacje EditText.
  2. 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.
  • Aby wdrożyć opóźnienie, dodano nowe uzależnienie androidx.lifecycle:lifecycle-process od androidx.emoji2:emoji2. W przypadku aplikacji, które już zawierają cykl życia (np. aplikacji z funkcją appcompat), będzie to miało znikomy wpływ na rozmiar pliku APK.

Zmiany w interfejsie 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ści Application.onCreateActivity.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-alpha02androidx.emoji2:emoji2-views-helper:1.0.0-alpha02 są dostępne. Wersja 1.0.0-alpha02 zawiera te commity.

Zmiany w interfejsie API

  • Zmieniono nazwę pakietu z emoji2-views-helper na androidx.emoji2.viewsintegration. Jest to zmiana powodująca przerwanie działania biblioteki AppCompat 1.4.0-alpha01. Aplikacje muszą mieć zaktualizowaną zależność AppCompat, aby używać nowej wersji emoji2. (Ie8397)

Wersja 1.0.0-alpha01

18 maja 2021 r.

Funkcje androidx.emoji2:emoji2:1.0.0-alpha01, androidx.emoji2:emoji2-views:1.0.0-alpha01androidx.emoji2:emoji2-views-helper:1.0.0-alpha01 są dostępne. Wersja 1.0.0-alpha01 zawiera te commity.

Funkcje dostępne w tej wersji

Aby zapewnić obsługę współczesnych emotikonów w ramach interfejsu API 19, zalecamy integrację pakietu emojicompat we wszystkich aplikacjach. Wszystkie treści użytkowników w aplikacji zawierają 🎉.

EmojiCompat zostało przeniesione z elementów androidx.emoji do nowych elementów androidx.emoji2, które są teraz w wersji alpha01. Nowe elementy 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ą z użyciem biblioteki androidx.startup. Nie musisz już pisać kodu 👨🏽‍💻, aby wyświetlić 🐻‍❄️.

Zmiany w emoji2 z emoji

  • Dodano nową konfigurację automatyczną EmojiCompatInitializer, która wykorzystuje 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 pakietu androidx.emoji2.
  • Podziel EmojiTextView i powiązane widoki na oddzielny element emoji2-views. Należy go używać tylko wtedy, gdy aplikacja nie korzysta z funkcji appcompat.
  • wyodrębniliśmy pomocnicze funkcje do integracji obsługi emotikonów w widokach niestandardowych w oddzielnym artefakcie emoji2-views-helper.
  • Dodano adnotacje dotyczące możliwości wystąpienia wartości null.
  • Pomocników w emoji2-views-helper można teraz używać nawet wtedy, gdy EmojiCompat nie jest zainicjowany (wcześniej wywoływali oni wyjątek).

Jakie zależności 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 funkcji TextView lub EditText z platformy powinny używać funkcji EmojiTextView i powiązanych klas z poziomu emoji2-views.

Jak obsługiwać widoki niestandardowe

  • 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 podklasami TextView lub EditText.

Konfigurowanie automatycznego inicjowania

  • Aplikacje mogą wyłączyć automatyczną inicjalizację, dodając 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 z DefaultEmojiCompatConfig.create(context) w celu dalszej konfiguracji, zanim zostanie przekazana do EmojiCompat.init.