Emoji2

Wyświetlaj emotikony na obecnych i starszych urządzeniach.
Ostatnia aktualizacja Wersja stabilna Wersja kandydująca Wersja Beta Wersja alfa
4 września 2024 r. 1.5.0 - - -

Deklarowanie zależności

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

W pliku build.gradle aplikacji lub modułu dodaj zależności artefaktów, których potrzebujesz:

Groovy

dependencies {
    def emoji2_version = "1.5.0"

    implementation "androidx.emoji2:emoji2:$emoji2_version"
    implementation "androidx.emoji2:emoji2-views:$emoji2_version"
    implementation "androidx.emoji2:emoji2-views-helper:$emoji2_version"
}

Kotlin

dependencies {
    val emoji2_version = "1.5.0"

    implementation("androidx.emoji2:emoji2:$emoji2_version")
    implementation("androidx.emoji2:emoji2-views:$emoji2_version")
    implementation("androidx.emoji2:emoji2-views-helper:$emoji2_version")
}

Więcej informacji o zależnościach znajdziesz w artykule Dodawanie zależności kompilacji.

Opinia

Twoja opinia pomoże nam ulepszyć Jetpacka. Jeśli zauważysz nowe problemy lub masz pomysły na ulepszenie tej biblioteki, daj nam znać. Zanim utworzysz nową bibliotekę, przejrzyj istniejące problemy w tej bibliotece. Możesz oddać swój głos do istniejącego problemu, klikając przycisk gwiazdki.

Tworzenie nowego zgłoszenia

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

Selektor emotikonów w wersji 1.0

Wersja 1.5.0

4 września 2024 r.

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

Ważne zmiany od wersji 1.4.0

  • Obsługa interfejsu emotikonów 15.1 i dwukierunkowego selektora emotikonów. Wystarczy jedno kliknięcie przełącznika dwukierunkowego, aby przełączyć się między wersjami emotikonów skierowanymi w lewo i w prawo.
  • Obsługa selektora emotikonów z różnymi odcieniami skóry. Długie naciśnięcie emotikonów pary powoduje wyświetlenie selektora emotikonów z wieloma osobami w stanie bez emotikonów. Gdy użytkownik kliknie lewą połowę emotikonu, jego podgląd w prawym dolnym rogu zostanie odpowiednio zaktualizowany. Gdy użytkownik wybierze obie połowy emotikonu, w prawym dolnym rogu pojawi się jego podgląd, a następnie będzie można go wstawić.

Wersja 1.0.0-alpha03

8 marca 2023 r.

androidx.emoji2:emoji2-emojipicker:1.0.0-alpha03 został zwolniony. Wersja 1.0.0-alfa03 zawiera te zatwierdzenia.

Poprawki błędów

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

Wersja 1.0.0-alpha02

22 lutego 2023 roku

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

Zmiany w interfejsie API

  • Dodano nowy interfejs API dla klientów Javy, aby umożliwić wyświetlanie najnowszych emotikonów. (I39d10)

Poprawki błędów

  • Aktualizacja zasobów emotikonów w celu obsługi emotikonów 15.0 (Ib4eb3)
  • Podczas wybierania emotikona w wyskakującym okienku zmień wszystkie emotikony, które są identyczne (z wyjątkiem wiersza ostatnio wybranych). Po kliknięciu emotikona zostanie też ogłoszony. (I892C6)
  • Zanim wyświetlisz EmojiPickerView, poczekaj, aż wczyta się emojicompat. (I29e03)

Wersja 1.0.0-alpha01

25 stycznia 2023 r.

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

Nowe funkcje

  • Wprowadziliśmy selektor emotikonów, który zapewnia spójne wrażenia użytkownika z najnowszymi emotikonami na urządzeniach i w aplikacjach OEM z systemem operacyjnym Android. Oferuje najnowszą obsługę i interfejs selektora emotikonów, w tym warianty odcieni skóry i zgodność emotikonów.

Zmiany w interfejsie API

  • Wprowadziliśmy klasę EmojiPickerView, która zawiera aktualne emotikony w widoku pionowym z możliwością przewijania oraz nagłówkiem poziomym z możliwością kliknięcia.
  • Kolumny siatki selektora emotikonów można ustawić za pomocą atrybutu XML emojiGridColumns lub funkcji setEmojiGridColumns().
  • Wiersze siatki selektora emotikonów można ustawić za pomocą atrybutu XML emojiGridRows lub funkcji setEmojiGridRows().
  • Odkrywcę wybranego emotikona można ustawić za pomocą funkcji setOnEmojiPickedListener(). Osoba ta będzie otrzymywać powiadomienie za każdym razem, gdy kliknie dowolny emotikon.
  • Najnowszego dostawcy emotikonów można użyć za pomocą setRecentEmojiProvider(). To funkcja opcjonalna. Jeśli nie ustawisz ostatniego używanego dostawcy emotikonów, biblioteka będzie używać domyślnego ostatniego używanego dostawcy emotikonów. Domyślne działanie jest zdefiniowane w ten sposób: 1) wszystkie wybrane emotikony zostaną zapisane na poziomie aplikacji w ramach wspólnych preferencji. 2) selektor wyświetli maksymalnie 3 wiersze wybranych emotikonów, bez duplikatów, w odwrotnej kolejności chronologicznej.
  • Wprowadzono klasę EmojiViewItem, która zawiera wyświetlane emotikony oraz ich warianty.
  • Wprowadziliśmy interfejs RecentEmojiProvider, który można zaimplementować, aby wyświetlić listę ostatnich emotikonów. recentEmojiProvider odpowiada za emotikony w kategorii „Ostatnio używane”.

Wersja 1.5

Wersja 1.5.0

4 września 2024 r.

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

Ważne zmiany wprowadzone od wersji 1.4.0

  • Obsługa interfejsu emotikonów 15.1 i dwukierunkowego selektora emotikonów. Wystarczy jedno kliknięcie przełącznika dwukierunkowego, aby przełączyć się między wersjami emotikonów skierowanymi w lewo i w prawo.
  • Obsługa selektora emotikonów z różnymi odcieniami skóry. Długie naciśnięcie emotikonów pary powoduje wyświetlenie selektora emotikonów z wieloma osobami w stanie bez emotikonów. Gdy użytkownik kliknie lewą połowę emotikonu, jego podgląd w prawym dolnym rogu zostanie odpowiednio zaktualizowany. Gdy użytkownik wybierze obie połowy emotikonu, w prawym dolnym rogu pojawi się jego podgląd, a następnie będzie można go wstawić.

Wersja 1.5.0-rc01

21 sierpnia 2024 r.

androidx.emoji2:emoji2-*:1.5.0-rc01 został zwolniony. Wersja 1.5.0-rc01 zawiera te komisy.

Nowe funkcje

  • Obsługa emotikonów 15.1 i interfejsu selektora emotikonów dwukierunkowego. Wystarczy jedno kliknięcie przełącznika dwukierunkowego, aby przełączać się między wersjami emotikonów zwróconymi w lewo i w prawo.
  • Obsługa selektora emotikonów z różnymi odcieniami skóry. Długie naciśnięcie emotikonów pary powoduje wyświetlenie selektora emotikonów z wieloma osobami w stanie bez emotikonów. Gdy użytkownik kliknie lewą połowę emotikonu, jego podgląd w prawym dolnym rogu zostanie odpowiednio zaktualizowany. Gdy użytkownik wybierze obie połówki emotikona, na podglądzie zobaczysz cały emotikon, a użytkownik będzie mógł go wpisać.

Poprawki błędów

  • Usunięto ręczne określanie dostępu do nowych interfejsów API platformy, ponieważ odbywa się to automatycznie za pomocą modelowania interfejsu API, gdy korzystasz z R8 z AGP 7.3 lub nowszej wersji (np. R8 w wersji 3.3) oraz we wszystkich wersjach kompilacji, gdy korzystasz z AGP 8.1 lub nowszej wersji (np. D8 w wersji 8.1). Klienci, którzy nie korzystają z AGP, powinni zaktualizować D8 do wersji 8.1 lub nowszej. Więcej szczegółów znajdziesz w tym artykule. (If6b4c, b/345472586)
  • Wybór karty i wskaźnik EmojiPickerView aktualizują się z opóźnieniem o 1 kliknięcie. (146b02, b/288261054)
  • Wybór karty i wskaźnik EmojiPickerView są uszkodzone. (5e1f14, b/273883688)

Wersja 1.5.0-beta01

10 lipca 2024 r.

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

Nowe funkcje

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

Poprawki błędów

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

Wersja 1.5.0-alpha01

13 grudnia 2023 r.

androidx.emoji2:emoji2-*:1.5.0-alpha01 został zwolniony. Wersja 1.5.0-alpha01 zawiera te zatwierdzenia.

Nowe funkcje

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

Zmiany w interfejsie API

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

Wersja 1.4

Wersja 1.4.0

9 sierpnia 2023 r.

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

Ważne zmiany od wersji 1.3.0

Wersja 1.4.0-rc01

26 lipca 2023 r.

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

Zmiany w interfejsie API

  • Wprowadź listę registerSource (Iae92f)
  • Opinia Rady Interfejsów API: nazwa TransitionManager.seekTo() została zmieniona na createSeekController(). Proszę zmienić poprzedni komentarz dotyczący dodania 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ż funkcję PageInfo, która zawiera informacje o pojedynczej stronie objętej pomiarem. (Iad003, b/283098900)

Poprawki błędów

  • Zaktualizowaliśmy kolory produktów Button, IconButton i TextButton, aby były zgodne ze stylem Material3. Semantyczna rola elementów Button, IconButton i TextButton może teraz zostać zastąpiona za pomocą elementu Modifier.semantics. (Ib2495)
  • Rozwiązanie problemu polegającego na tym, że przy wyborze karty EmojiPickerView wskaźnik aktualizuje się dopiero po kliknięciu. (I4db04)
  • FileNotFoundException wyświetlanie selektora emotikonów (I353e4)
  • Catch the WindowManager.BadTokenException when using EmojiPickerView (I0a144)

Wersja 1.4.0-beta05

7 czerwca 2023 r.

Usługa androidx.emoji2:emoji2-*:1.4.0-beta05 została zwolniona. Wersja 1.4.0-beta05 zawiera te commity.

Poprawki błędów

  • Naprawiliśmy błąd związany z wersją 1.3, w wyniku którego funkcje MetricsAffectingSpans, np. RelativeSizeSpan, były stosowane podwójnie. Raz w trakcie układu tekstu, a potem ponownie w komponencie 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.

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

Ta wersja rozwiązuje błąd występujący od wersji 1.0, w którym widoki z obsługą niegłówną wywoływały wyjątek podczas próby zaktualizowania zakresów emotikonów po zakończeniu wczytywania czcionek. Nie ma sposobu obejścia tego problemu. Jeśli ten błąd Cię dotyczy, przejdź na tę wersję lub nowszą wersję.

Poprawki błędów

  • EmojiCompat inicjujące wywołania zwrotne będą teraz używać modułu obsługi z każdego widoku, uwzględniając widoki spoza wątku głównego. (Iccbcf)

Wersja 1.4.0-beta03

10 maja 2023 r.

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

Poprawki błędów

  • Naprawiono awarię zagnieżdżonego widoku wyskakującego selektora emotikonów. (0acc8e)
  • Dodaj wcześniejsze wyjątki w: EmojiCompat getEmojiStart/getEmojiEnd. (26177f)

Wersja 1.4.0-beta02

19 kwietnia 2023 r.

Usługa androidx.emoji2:emoji2-*:1.4.0-beta02 została zwolniona. Wersja 1.4.0-beta02 zawiera te zatwierdzenia.

Poprawki błędów

  • Aktualizowanie plików podstawowych lint (Iaa212)

Wersja 1.4.0-beta01

5 kwietnia 2023 r.

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

Nowe funkcje

androidx.emoji2:emoji2-emojipicker

Selektor emotikonów to interfejs, który zapewnia nowoczesny wygląd i styl oraz pozwala korzystać z aktualnych emotikonów i łatwości obsługi. Użytkownicy mogą przeglądać i wybierać emotikony oraz ich warianty lub wybrać emotikony z ostatnio używanych. Dzięki tej bibliotece aplikacje różnych producentów OEM mogą zapewnić użytkownikom spójne i promujące integrację społeczną emotikony, bez konieczności tworzenia i utrzymywania od podstaw własnego selektora emotikonów.

Aktualne emotikony

Nowe emotikony są publikowane co roku i będziemy je selektywnie dodawać do selektora emotikonów. Aby zapewnić zgodność wsteczną, wewnętrznie przeprowadzamy dokładne sprawdzenie możliwości renderowania emotikonów, aby wyeliminować problemy z tofu. Dzięki temu biblioteka będzie kompatybilna z różnymi wersjami i urządzeniami z Androidem.

wariantów przyklejonych,

Po przytrzymaniu emotikona wyświetli się menu wariantów, np. różne płcie lub odcienie skóry. Wybrany wariant zostanie zapisany w selektorze emotikonów, a ostatnio wybrany wariant będzie używany w panelu głównym. Dzięki tej funkcji użytkownicy mogą wysyłać wybrane emotikony jednym kliknięciem.

Najnowsze emotikony

RecentEmojiProvider odpowiada za udostępnianie emotikonów w kategorii „Ostatnio używane”. Biblioteka ma domyślnego dostawcę emotikonów, który spełnia większość typowych przypadków użycia:

  • Wszystkie wybrane emotikony są zapisywane na poziomie aplikacji w ramach wspólnych preferencji.
  • Selektor wyświetla maksymalnie 3 wiersze wybranych emotikonów, bez duplikatów, w odwrotnej kolejności chronologicznej.

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

Praca z EmojiCompat

Jeśli aplikacja ma instancję EmojiCompat, będzie ona używana w selektorze emotikonów do renderowania jak największej liczby emotikonów. Jeśli EmojiCompat jest wyłączona, selektor emotikonów będzie nadal działał prawidłowo.

Jak korzystać z biblioteki

Aby można było korzystać z biblioteki, deweloper aplikacji powinien

  1. Importuj androidx.emoji2:emojipicker:$version w: 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 pozostawić je nieskonfigurowane. Wartość domyślna to 9 emojiGridColumns. Liczba wierszy będzie obliczana na podstawie wysokości widoku nadrzędnego i emojiGridColumns.
    • Możesz ustawić emojiGridRows jako liczbę zmiennoprzecinkową, aby wskazać, że jest więcej emotikonów, jeśli przewijasz w dół w pliku XML.
     <androidx.emoji2.emojipicker.EmojiPickerView
      android:id="@+id/emoji_picker"
      android:layout_width="match_parent"
      android:layout_height="match_parent"
      app:emojiGridColumns="9" />
    

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 tekstu 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 atrybutu 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" />
    

Zobacz przykładową aplikację.

Pełną stronę interfejsu API znajdziesz tutaj.

Przykładowa aplikacja

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

  • Widok został ponownie ułożony, ponieważ emojiGridRows i emojiGridColumns zostały zresetowane.
  • Dostawca ostatniego emotikonu jest zastępowany, aby sortować według częstotliwości.
  • dostosowywanie stylu;

Zmiany interfejsu API

Biblioteka Emoji Picker została zaktualizowana o te nowe interfejsy API:

  • Klasa EmojiPickerView, która zawiera aktualne emotikony w pionowym widoku z możliwością przewijania oraz klikalny nagłówek poziomy.
  • Możliwość ustawiania liczby kolumn i wierszy w siatce emoji za pomocą atrybutów XML 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 emotikonów za pomocą metody setRecentEmojiProvider(). To funkcja opcjonalna. Jeśli nie ustawisz dostawcy ostatnich emotikonów, biblioteka będzie używać domyślnego dostawcy ostatnich emotikonów. Działanie domyślne jest określone w ten sposób:
    • Wszystkie wybrane emotikony zostaną zapisane w udostępnionych preferencjach na poziomie aplikacji.
    • Selektor wyświetli maksymalnie 3 wiersze wybranych emotikonów (z usuniętym duplikatem) w odwrotnej kolejności chronologicznej.
  • Klasa EmojiViewItem, która zawiera wyświetlany emotikon i jego warianty.
  • Interfejs RecentEmojiProvider, który można zaimplementować, aby wyświetlić listę ostatnio używanych emotikonów. recentEmojiProvider odpowiada za emotikony w kategorii „Ostatnio używane”.
  • Interfejs RecentEmojiAsyncProvider, który można zaimplementować, aby wyświetlić listę najnowszych emotikonów. RecentEmojiAsyncProvider odpowiada za emotikony w kategorii „Ostatnio używane”. Ten interfejs jest odpowiednikiem 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.

Usługa androidx.emoji2:emoji2-*:1.4.0-alpha01 została zwolniona. Wersja 1.4.0-alpha01 zawiera te commity.

Poprawki błędów

  • naprawiać testy, wyłączać testy niestabilne i usuwać niepotrzebne dane.

Wersja 1.3

Wersja 1.3.0

22 marca 2023 r.

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

Ważne zmiany od wersji 1.2.0

  • Ta wersja umożliwia Compose Foundation 1.4.0 i nowsze wersje integrację z emoji2.
  • Umożliwia też zastępowanie EmojiSpans niestandardowym kodem rysowania oraz obsługę wykluczeń emotikonów zdefiniowanych na Androidzie.

Wersja 1.3.0-rc01

8 marca 2023 r.

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

Nowe funkcje

  • Ta wersja obsługuje integrację emoji2 z edytorem.

Zmiany interfejsu API

  • Zastąp zakresy kodów niestandardowych rysunków.
  • Wysyłanie zapytań o wykluczenia systemowe.

Poprawki błędów

  • Naprawiliśmy też błąd polegający na tym, że elementy tła nie były prawidłowo stosowane za elementem EmojiSopans.

Wersja 1.3.0-beta03

23 lutego 2023 r.

Funkcje androidx.emoji2:emoji2-bundled:1.3.0-beta03, androidx.emoji2:emoji2-views:1.3.0-beta03androidx.emoji2:emoji2-views-helper:1.3.0-beta03 są dostępne.

22 lutego 2023 roku

androidx.emoji2:emoji2:1.3.0-beta03 został zwolniony. Wersja 1.3.0-beta03 zawiera te zatwierdzenia.

Nowe funkcje

  • Brak zmian. Ta wersja przygotowuje integrację z Compose.

Wersja 1.3.0-beta02

8 lutego 2023 r.

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

Nowe funkcje

  • Ta wersja jest stabilizowana na potrzeby integracji tworzenia wiadomości.

Wersja 1.3.0-beta01

25 stycznia 2023 r.

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

Nowe funkcje

  • Wysyłanie zapytań o wykluczenia systemowe.
  • Zastępowanie zakresów kodu rysowania niestandardowego.
  • Naprawiliśmy też błąd, przez który rozpiętości tła w tabeli EmojiSopans nie były prawidłowo stosowane.
  • Ta wersja dodaje interfejsy API potrzebne do obsługi EmojiCompat w Compose. W najbliższej przyszłości wprowadzimy obsługę funkcji tworzenia emotikonów.

Wersja 1.3.0-alpha01

11 stycznia 2023 r.

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

Nowe interfejsy API do interakcji na niskim poziomie

  • Wyszukiwanie wykluczeń systemowych
  • Zastępowanie spanów niestandardowego kodu rysunku
  • Naprawiliśmy też błąd polegający na tym, że elementy tła nie były prawidłowo stosowane za elementem EmojiSopans.
  • W tej wersji dodaliśmy interfejsy API niezbędne do obsługi funkcji EmojiCompat w Compose. W najbliższej aktualizacji udostępnimy obsługę emotikonów w komponowaniu.

Zmiany w interfejsie API

  • Dodaliśmy możliwość wysyłania zapytań o wykluczenia systemowe do TypefaceEmojiRasterizer. (I5653e)
  • Dodano nowy interfejs API EmojiCompat.SpanFactory, który zastępuje domyślne zachowanie EmojiSpan niestandardowymi rysunkami i kodem do określania rozmiaru. (Ib69d9)
  • Dodano EmojiCompat do Compose (I96f37, b/139326806)

Poprawki błędów

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

Wersja 1.2

Wersja 1.2.0

10 sierpnia 2022 r.

Usługa androidx.emoji2:emoji2-*:1.2.0 została zwolniona. Wersja 1.2.0 zawiera te zatwierdzenia.

Ważne zmiany od wersji 1.1.0

To jest wersja z poprawkami błędów. Od wersji 1.1.0 nie dodano żadnych nowych funkcji ani interfejsów API.

Aplikacje korzystające z wersji PrecomputedText lub TextView.setText(char[]) powinny jednak w pierwszej kolejności przejść na tę wersję.

Naprawiono te błędy:

  • Emoji2 doda emotikon 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)
  • Naprawiono błąd, który powodował, że emotikon 2 wczytuje czcionkę i była używana TextView.setText(char[]). (Id511e, b/206859724)

Wersja 1.2.0-rc01

27 lipca 2022 roku

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

  • Brak zmian od ostatniej wersji beta.

Wersja 1.2.0-beta01

13 lipca 2022 r.

Usługa androidx.emoji2:emoji2-*:1.2.0-beta01 została zwolniona. Wersja 1.2.0-beta01 zawiera te commity.

Nowe funkcje

  • Brak zmian w porównaniu z poprzednią wersją (ta wersja obsługuje wersję AppCompat).

Wersja 1.2.0-alpha04

20 kwietnia 2022 r.

androidx.emoji2:emoji2-*:1.2.0-alpha04 został zwolniony. Wersja 1.2.0-alfa04 zawiera te zatwierdzenia.

Nowe funkcje

  • Brak zmian w tej wersji.

Wersja 1.2.0-alpha03

6 kwietnia 2022 roku

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

Nowe funkcje

  • Brak zmian w porównaniu z poprzednią wersją (ta wersja będzie obsługiwać wersję kompatybilną z aplikacją).

Wersja 1.2.0-alpha02

23 marca 2022 r.

androidx.emoji2:emoji2-*:1.2.0-alpha02 został zwolniony. Wersja 1.2.0-alfa02 zawiera te zatwierdzenia.

Poprawki błędów

  • Emoji2 doda emotikony do PrecomputedText, odrzucając wcześniej obliczony układ tekstu. (I47d06, b/211231958)
  • Poprawka dotycząca błędu edytowania z Androida P w przypadku pola tekstowego skonfigurowanego do używania emoji2. (Ifd709, b/216891011)
  • Rozwiązanie problemu z zawieszaniem się podczas wczytywania czcionki przez emoji2 i używania TextView.setText(char[]). (Id511e, b/206859724)

Wersja 1.2.0-alpha01

23 lutego 2022 r.

androidx.emoji2:emoji2-*:1.2.0-alpha01 został zwolniony. Wersja 1.2.0-alfa01 zawiera te zatwierdzenia.

Brak zmian od wersji 1.1.0.

1,1

Wersja 1.1.0

23 lutego 2022 r.

Usługa androidx.emoji2:emoji2-*:1.1.0 została zwolniona. Wersja 1.1.0 zawiera te zatwierdzenia.

Ważne zmiany wprowadzone od wersji 1.0.0

  • emoji2-bundled zawiera czcionkę emoji 14.
  • Nowy interfejs API getEmojiMatch zwraca dokładne informacje, aby klawiatury mogły określić, jak emotikon będzie wyświetlany w przypadku czcionki emojicompat, która jest czcionką systemową
  • Poprawka błędu dotycząca NumberKeyListener, która umożliwia prawidłowe filtrowanie znaków podczas wpisywania cyfr.

Wersja 1.1.0-rc01

9 lutego 2022 r.

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

Nowe funkcje

Brak zmian w stosunku do wersji beta.

Nowe funkcje w porównaniu z emoji2 1.0.0:

  • emoji2-bundled zawiera czcionkę emotikonów 14
  • Nowy interfejs API getEmojiMatch zwraca dokładne informacje, aby klawiatury mogły określić, jak emotikon ma się wyświetlać w przypadku czcionki emojicompat, która jest czcionką systemową
  • Poprawka dotycząca NumberKeyListener, która umożliwia prawidłowe filtrowanie znaków podczas wprowadzania cyfr

Wersja 1.1.0-beta01

26 stycznia 2022 r.

Usługa androidx.emoji2:emoji2-*:1.1.0-beta01 została zwolniona. Wersja 1.1.0-beta01 zawiera te commity.

Poprawki błędów

  • Wersja androidx-emoji2 beta01. Brak zmian w wersji alpha01 (Ic61d9)

Wersja 1.1.0-alpha01

15 grudnia 2021 roku

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

Nowe funkcje

  • emoji2-bundled zawiera czcionkę emotikonów 14
  • Nowy interfejs API getEmojiMatch zwraca dokładne informacje, aby klawiatury mogły określić, jak emotikon ma się wyświetlać w przypadku czcionki emojicompat, która jest czcionką systemową
  • Poprawka błędu NumberKeyListener, który sprawia, że wpisywane cyfry prawidłowo filtrują znaki

Zmiany w interfejsie API

  • Dodaj nowy interfejs API getEmojiMatch, aby umożliwić klawiaturom dokładniejsze sprawdzanie zachowania dopasowywania emotikonów w funkcji emojicompat.
  • Oznacz jako przestarzałą funkcję hasEmojiGlyph, ponieważ zwracana przez nią wartość logiczna jest niedokładna podczas testowania czcionki starszej niż czcionka emoji na platformie. Zastąp getEmojiMatch. (Ie693d)

Poprawki błędów

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

1,0

Wersja 1.0.1

15 grudnia 2021 roku

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

Poprawki błędów

  • Emoji2 nie będzie opakowywać instancji NumberKeyListener, co pozwoli na skonfigurowanie języka przez 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.

Usługa androidx.emoji2:emoji2-*:1.0.0 została zwolniona. Wersja 1.0.0 zawiera te zatwierdzenia.

Główne funkcje 1.0.0

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

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

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

Wersja 1.0.0-rc01

27 października 2021 roku

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

  • Brak zmian od wersji beta02.

Emoji2 w wersji 1.0.0-beta01

15 września 2021 r.

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

Zmiany w interfejsie API

  • Dodano setLoadingExecutor 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 są podklasą 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.

Usługa androidx.emoji2:emoji2-*:1.0.0-alpha03 została zwolniona. Wersja 1.0.0-alpha03 zawiera te commity.

Nowe funkcje

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

  1. emojiEditTextHelper umożliwia teraz przekazywanie elementu null jako detektora kluczy. Dzięki temu platforma pozwala na stosowanie wartości null do emotikonów obsługujących implementacje EditText.
  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.
  • W celu zaimplementowania opóźnienia dodano nową zależność od androidx.lifecycle:lifecycle-process z androidx.emoji2:emoji2. Będzie to miało nieistotny wpływ na rozmiar pliku APK w przypadku aplikacji, które mają już określony cykl życia (np. aplikacji z kompatybilną aplikacją).

Zmiany interfejsu API

  • Zezwalanie na null KeyListener w AppCompatEditText. To odwraca adnotację non-null, która została dodana do AppCompatEditText w wersji 1.4.0-alpha01 i przywraca poprzednie zachowanie, gdy przekazano wartość null. (I21482, b/189559345)

Poprawki błędów

  • Zmień EmojiCompatInitializer, aby opóźnić wczytywanie czcionek do 500 ms po pierwszym Activity.onResume. Dzięki temu aktywność może wykonywać czynnoś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

  • Nazwa pakietu w folderze emoji2-views-helper została zmieniona na androidx.emoji2.viewsintegration. Jest to zmiana powodująca przerwanie działania biblioteki AppCompat 1.4.0-alpha01. Aplikacje muszą być zaktualizowane, aby używać nowej wersji emoji2. (Ie8397)

Wersja 1.0.0-alpha01

18 maja 2021 r.

androidx.emoji2:emoji2:1.0.0-alpha01, androidx.emoji2:emoji2-views:1.0.0-alpha01 i androidx.emoji2:emoji2-views-helper:1.0.0-alpha01 zostały udostępnione. Wersja 1.0.0-alpha01 zawiera te commity.

Funkcje dostępne w tej wersji

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

EmojiCompat zostało przeniesione z elementów androidx.emoji do nowych elementów androidx.emoji2, które są teraz w wersji alpha01. Nowe artefakty zastępują poprzednią wersję.

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

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

Zmiany w emoji2 z emoji

  • Dodano nową konfigurację automatyczną EmojiCompatInitializer za pomocą: androidx.startup.
  • Dodano nową konfigurację domyślną, która korzysta z lokalizacji usługi, aby znaleźć dostawcę czcionek do pobrania w sekcji DefaultEmojiCompatConfiguration.
  • Zajęcia zostały przeniesione z pakietu androidx.emoji do pakietu androidx.emoji2.
  • Podziel EmojiTextView i powiązane widoki na osobny element emoji2-views. Należy go używać tylko wtedy, gdy aplikacja nie korzysta z funkcji appcompat.
  • Wyodrębnione pomocnicze funkcje do integracji obsługi emotikonów w widokach niestandardowych w oddzielnym pliku emoji2-views-helper.
  • Dodano adnotacje dotyczące możliwości wystąpienia wartości null.
  • Elementy pomocnicze w trybie emoji2-views-helper mogą być teraz używane nawet wtedy, gdy system EmojiCompat nie został zainicjowany (wcześniej stanowił wyjątek).

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

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

Obsługa widoków niestandardowych

  • Aplikacje z AppCompat powinny rozszerzać AppCompatTextView, AppCompatButton itd., a nie platformę TextView itd.
  • Aplikacje bez AppCompat powinny dodać zależność androidx.emoji2:emoji2-views-helper i użyć pomocników do integracji z niestandardowymi podklasami TextView lub EditText.

Konfigurowanie automatycznego inicjowania

  • Aplikacje mogą wyłączyć automatyczne inicjowanie, dodając ten element do pliku manifestu:

     <provider
         android:name="androidx.startup.InitializationProvider"
         android:authorities="${applicationId}.androidx-startup"
         android:exported="false"
         tools:node="merge">
         <meta-data android:name="androidx.emoji2.text.EmojiCompatInitializer"
                   tools:node="remove" />
     </provider>
    
  • Spowoduje to wyłączenie konfiguracji automatycznej, dzięki czemu możesz przekazać niestandardową konfigurację do EmojiCompat.init. Domyślna konfiguracja systemu może zostać pobrana z DefaultEmojiCompatConfig.create(context) w celu dalszej konfiguracji, zanim zostanie przekazana do EmojiCompat.init.