Emotikon2

Wyświetlaj emotikony na obecnych i starszych urządzeniach.
Najnowsza aktualizacja Wersja stabilna Kandydat do wydania Wersja Beta Wydanie 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 swojego w projektach AI. Zapoznaj się z repozytorium Google Maven. .

Dodaj zależności 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ć Jetpack. Daj nam znać, jeśli odkryjesz nowe problemy jak ulepszyć tę bibliotekę. Przyjrzyj się istniejące problemy w tej bibliotece, zanim utworzysz nową. Możesz zagłosować nad istniejącym problemem przez klikając przycisk gwiazdki.

Tworzenie nowego numeru

Zobacz dokumentację narzędzia Issue Tracker. .

Selektor emotikonów w wersji 1.0

Wersja 1.0.0-alpha03

8 marca 2023 r.

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

Poprawki błędów

  • Usunęliśmy niepotrzebne zasoby i zmniejszyliśmy rozmiar biblioteki o ok.0,3 mln.

Wersja 1.0.0-alpha02

22 lutego 2023 roku

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

Zmiany interfejsu API

  • Dodaliśmy nowy interfejs API dla klientów Java, aby umożliwić udostępnianie najnowszych emotikonów. (I39d10)

Poprawki błędów

  • Zaktualizuj zasoby emotikonów, aby zapewnić obsługę emotikonów w wersji 15.0 (Ib4eb3)
  • Podczas wybierania emotikona w wyskakującym okienku zmień wszystkie emotikony, które są identyczne (z wyjątkiem wiersza ostatnio wybranych). Wypowiadaj też emotikony po kliknięciu. (I892C6)
  • Poczekaj, aż EmojiPickerView się załaduje. (I29e03)

Wersja 1.0.0-alpha01

25 stycznia 2023 r.

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

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 interfejsu API

  • Wprowadzono klasę EmojiPickerView, która wyświetla aktualne emotikony w widoku pionowym, który można przewijać w poziomie, z klikalnym poziomym nagłówkiem.
  • 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(). Ta funkcja jest opcjonalna. Jeśli nie ustawisz ostatnio wybranego dostawcy emotikonów, biblioteka będzie używać domyślnego dostawcy emotikonów. Domyślne działanie jest określone w ten sposób: 1) Wszystkie wybrane emotikony zostaną zapisane w preferencjach wspólnych na poziomie aplikacji. 2) Selektor wyświetli maksymalnie 3 wiersze wybranych emotikonów (z usuniętymi duplikatami) w odwrotnej kolejności chronologicznej.
  • Wprowadzono klasę EmojiViewItem, która zawiera wyświetlane emotikony oraz ich warianty.
  • Nowy interfejs RecentEmojiProvider, który można wdrożyć w celu udostępniania najnowszych emotikonów. recentEmojiProvider odpowiada za udostępnianie emotikonów w kategorii „Ostatnio używane”.

Wersja 1.5

Wersja 1.5.0

4 września 2024 r.

Usługa androidx.emoji2:emoji2-*:1.5.0 została zwolniona. 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 kliknąć dwukierunkowy przełącznik, aby użytkownicy mogli przełączać się między emotikonami w wersji lewej i prawej.
  • Obsługuj selektor emotikonów w różnych kolorach. Naciśnięte i przytrzymanie emotikona pary powodują wyświetlenie selektora wieloosobowego emotikona dla stanu zerowego. Gdy użytkownik kliknie lewą część emotikona, podgląd emotikona w prawym dolnym rogu zostanie odpowiednio zaktualizowany. Gdy użytkownik wybierze obie połówki emotikona, na podglądzie w prawym dolnym rogu pojawi się cały emotikon, który można następnie wpisać.

Wersja 1.5.0-rc01

21 sierpnia 2024 r.

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

Nowe funkcje

  • Obsługa interfejsu emotikonów 15.1 i dwukierunkowego selektora emotikonów. Wystarczy kliknąć dwukierunkowy przełącznik, aby użytkownicy mogli przełączać się między lewą a prawą wersją emotikonów.
  • Obsługuj selektor emotikonów w różnych kolorach. Naciśnięte i przytrzymanie emotikona pary powodują wyświetlenie selektora wieloosobowego emotikona dla stanu zerowego. Gdy użytkownik kliknie lewą część emotikona, podgląd emotikona 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

  • Usunęliśmy ręczne dodawanie informacji o dostępie do nowych interfejsów API platformy, ponieważ dzieje się to automatycznie przez modelowanie API w przypadku korzystania z R8 z pakietem AGP w wersji 7.3 lub nowszej (np. R8 w wersji 3.3) oraz wszystkich kompilacji z pakietem AGP 8.1 lub nowszym (np. D8 w wersji 8.1). Klientom, którzy nie korzystają z pakietu AGP, zalecamy zaktualizowanie go do wersji D8 w wersji 8.1 lub nowszej. Więcej szczegółów znajdziesz w tym artykule. (If6b4c, b/345472586)
  • Wybór karty i wskaźnik na koncie EmojiPickerView jest aktualizowane o jedno kliknięcie później. (146b02, b/288261054)
  • Wybór karty i wskaźnik urządzenia EmojiPickerView nie działają prawidłowo. (5e1f14, b/273883688)

Wersja 1.5.0-beta01

10 lipca 2024 r.

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

Nowe funkcje

  • Obsługa interfejsu wyboru emotikonów 15.1 i dwukierunkowego wyboru emotikonów.
  • Obsługuj nowy wygląd wyboru wieloskładnikowego.

Poprawki błędów

  • Wybór karty i wskaźnik na koncie EmojiPickerView jest aktualizowane o jedno kliknięcie później. (146b02, b/288261054)
  • Wybór karty i wskaźnik urządzenia EmojiPickerView nie działają prawidłowo. (5e1f14, b/273883688)

Wersja 1.5.0-alpha01

13 grudnia 2023 r.

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

Nowe funkcje

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

Zmiany interfejsu API

  • Dodaj wykonawców, aby kontrolować wątek wywołania zwrotnego dla zadania InitCallback. (I32b67)
  • BundledEmojiCompatConfig korzysta teraz z wykonawcy, który kontroluje wczytywanie wątków. (I00e81)

Wersja 1.4

Wersja 1.4.0

9 sierpnia 2023 r.

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

Ważne zmiany wprowadzone od wersji 1.3.0

Wersja 1.4.0-rc01

26 lipca 2023 r.

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

Zmiany interfejsu API

  • Wprowadź listę registerSource (Iae92f)
  • Opinia Rady interfejsu API: zmieniono nazwę z TransitionManager.seekTo() na createSeekController(). Zmień poprzedni komentarz na temat dodania użytkownika TransitionManager.seekTo() do: TransitionManager.createSeekController(). (Idbeb1),
  • Dodano klasę ExerciseRouteResult, która nie jest superklasą w klasach Data, NoData i ConsentRequiredStates. Dodano klasę ExerciseRoute jako samodzielną klasę, która przechowuje dane o lokalizacji na trasie. (Z22iK)
  • Wdrożenie funkcji PagerLayoutInfo z informacjami zebranymi po zaliczeniu pomiaru na stronie Pager. 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. Rolę semantyczną w usługach Button, IconButton i TextButton można teraz zastąpić za pomocą ustawienia Modifier.semantics. (IB2495).
  • Naprawiono wybór kart i wskaźnik aktualizowany o 1 kliknięcie wcześniej przez użytkownika EmojiPickerView. (I4db04).
  • FileNotFoundException o wyświetlaniu selektora emotikonów (I353e4)
  • Złap WindowManager.BadTokenException podczas korzystania z 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 zatwierdzenia.

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 dwukrotnie. Raz podczas układu tekstu, a potem ponownie w komponencie EmojiSpan.draw. Rozmiar wyniku ma nieprawidłowy rozmiar, co widać, jeśli rozmiar tekstu zostanie zmieniony przez rozpiętość. (B/283208650)

Wersja 1.4.0-beta04

24 maja 2023 r.

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

W tej wersji naprawiliśmy błąd występujący od wersji 1.0, w wyniku którego widoki z użyciem innej funkcji powodowały zgłaszanie wyjątku przy próbie zaktualizowania rozpiętości emotikonów po zakończeniu wczytywania czcionki. 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

  • Wywołania zwrotne EmojiCompat inicjowane będą teraz korzystać z modułu obsługi z każdego widoku z uwzględnieniem wyświetleń spoza wątku głównego. (Iccbcf).

Wersja 1.4.0-beta03

10 maja 2023 r.

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

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.

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

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 wybierać spośród 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

Co roku udostępniamy nowe emotikony, które są dobierane w selektorze emotikonów. Aby zapewnić zgodność wsteczną, przeprowadzamy wewnętrznie dokładną kontrolę renderowania emotikonów, aby wyeliminować tofu. Dzięki temu biblioteka będzie kompatybilna z różnymi wersjami Androida i urządzeń.

Wersje przyklejone

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ć preferowane wersje emotikonów jednym kliknięciem.

Najnowsze emotikony

RecentEmojiProvider odpowiada za udostępnianie emotikonów w kategorii „Ostatnio używane”. W bibliotece ma domyślnego dostawcę emotikonów, który spełnia najczęstsze przypadki użycia:

  • Wszystkie wybrane emotikony są zapisywane w ustawieniach wspólnych na poziomie aplikacji.
  • Selektor wyświetla maksymalnie 3 wiersze wybranych emotikonów (z usuniętym duplikatem) w odwrotnej kolejności chronologicznej.

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

Praca z Emotikony

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 zasada EmojiCompat jest wyłączona, selektor emotikonów działa normalnie.

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. Rozszerz widok selektora emotikonów i opcjonalnie ustaw wartości emojiGridRows oraz emojiGridColumns na podstawie żądanego rozmiaru każdej komórki z emotikonami.

    • 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 dostępnych jest więcej emotikonów, gdy przewiniesz 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ład implementacji znajdziesz w przykładowej aplikacji.

  3. Opcjonalnie dostosuj style. Utwórz własny styl, aby zastąpić wspólne atrybuty motywu i zastosować styl do elementów typu 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ą platformę interfejsu API można znaleźć tutaj.

Przykładowa aplikacja

Ta przykładowa aplikacja przedstawia podstawowe przypadki użycia oraz dodatkowo następujące scenariusze:

  • Widok został zmieniony, ponieważ zresetowano emojiGridRows i emojiGridColumns.
  • Ostatni dostawca emotikonów zostanie zastąpiony, aby sortować treści według częstotliwości.
  • Dostosowywanie stylu.

Zmiany interfejsu API

Do biblioteki selektora emotikonów dodaliśmy następujące nowe interfejsy API:

  • Klasa EmojiPickerView, która udostępnia aktualne emotikony w widoku pionowym, który można przewijać w poziomie, z klikalnym poziomym nagłówkiem.
  • Możliwość ustawienia liczby kolumn i wierszy w siatce selektora emotikonów za pomocą atrybutów XML emojiGridColumns i emojiGridRows lub metod setEmojiGridColumns() i setEmojiGridRows().
  • Możliwość ustawienia słuchacza wybranego emotikona za pomocą metody setOnEmojiPickedListener(). Słuchacz otrzyma powiadomienie za każdym razem, gdy kliknie dowolny emotikon.
  • Możliwość udostępnienia aktualnego dostawcy emotikonów za pomocą metody setRecentEmojiProvider(). Ta funkcja jest opcjonalna. Jeśli nie skonfigurowano ostatniego dostawcy emotikonów, biblioteka będzie używać domyślnego dostawcy 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świetlane emotikony oraz ich warianty.
  • Interfejs RecentEmojiProvider, który można zaimplementować, aby wyświetlić listę najnowszych emotikonów. recentEmojiProvider odpowiada za udostępnianie emotikonów w kategorii „Ostatnio używane”.
  • Interfejs RecentEmojiAsyncProvider, który można zaimplementować, aby wyświetlić listę najnowszych emotikonów. RecentEmojiAsyncProvider odpowiada za udostępnianie emotikonów w kategorii „Ostatnio używane”. Ten interfejs jest odpowiednikiem metody RecentEmojiProvider, która umożliwia klientom zastąpienie metody getRecentEmojiListAsync() w celu dostarczania najnowszych emotikonów.
  • Klasa RecentEmojiProviderAdapter, która jest adapterem obiektu RecentEmojiAsyncProvider i implementuje 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-alfa01 zawiera te zatwierdzenia.

Poprawki błędów

  • Naprawiaj testy, wyłączaj testy niestabilne i czyszczenie danych.

Wersja 1.3

Wersja 1.3.0

22 marca 2023 r.

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

Ważne zmiany wprowadzone od wersji 1.2.0

  • W tej wersji Compose Foundation 1.4.0 i nowszych wersjach można włączyć integrację emotikon2.
  • Umożliwia też zastąpienie EmojiSpans niestandardowego kodu rysunku, a także obsługę wykluczeń emotikonów zdefiniowanych w Androidzie.

Wersja 1.3.0-rc01

8 marca 2023 r.

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

Nowe funkcje

  • Ta wersja obsługuje integrację tworzenia emotikon2.

Zmiany interfejsu API

  • Zastępuje spany niestandardowego kodu rysunku.
  • Wysyłanie zapytań o wykluczenia systemowe.

Poprawki błędów

  • Naprawiliśmy też błąd, przez który rozpiętości tła w tabeli EmojiSopans nie były prawidłowo stosowane.

Wersja 1.3.0-beta03

23 lutego 2023 r.

androidx.emoji2:emoji2-bundled:1.3.0-beta03, androidx.emoji2:emoji2-views:1.3.0-beta03 i androidx.emoji2:emoji2-views-helper:1.3.0-beta03 zostały udostępnione.

22 lutego 2023 roku

Usługa androidx.emoji2:emoji2:1.3.0-beta03 została zwolniona. Wersja 1.3.0-beta03 zawiera te zatwierdzenia.

Nowe funkcje

  • Brak zmian. Ta wersja ma przygotować się do integracji tworzenia wiadomości.

Wersja 1.3.0-beta02

8 lutego 2023 r.

Usługa androidx.emoji2:emoji2-*:1.3.0-beta02 została zwolniona. 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.

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

Nowe funkcje

  • Wysyłanie zapytań o wykluczenia systemowe.
  • Zastępowanie spanów na potrzeby niestandardowego kodu rysunku.
  • Naprawiliśmy też błąd, przez który rozpiętości tła w tabeli EmojiSopans nie były prawidłowo stosowane.
  • W tej wersji dodaliśmy interfejsy API niezbędne do obsługi funkcji 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.

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

Nowe interfejsy API do interakcji niskiego poziomu

  • Wykluczenia systemowe wysyłania zapytań
  • Zastępowanie spanów niestandardowego kodu rysunku
  • Naprawiliśmy też błąd, przez który rozpiętości tła w tabeli EmojiSopans nie były prawidłowo stosowane.
  • W tej wersji dodaliśmy interfejsy API niezbędne do obsługi funkcji EmojiCompat w Compose. W najbliższej przyszłości wprowadzimy obsługę funkcji tworzenia emotikonów.

Zmiany interfejsu API

  • Do TypefaceEmojiRasterizer dodano możliwość wysyłania zapytań o wykluczenia systemu. (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 element EmojiCompat do funkcji Utwórz (I96f37, b/139326806)

Poprawki błędów

  • emotikon2 będzie teraz prawidłowo rysować tło z urządzenia BackgroundSpan. (Ide6a8, b/230525134)
  • Finalizacja interfejsów API AppCompat dla 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

Jest to wersja z poprawką błędów. Od wersji 1.1.0 nie dodano żadnych nowych funkcji ani interfejsów API.

Jednak aplikacje korzystające z metod PrecomputedText lub TextView.setText(char[]) powinny nadaj priorytet tej wersji.

Naprawiliśmy następujące błędy:

  • Aplikacja Emoji2 doda emotikony do aplikacji PrecomputedText, ignorując wstępnie obliczony układ tekstu. (I47d06, b/211231958)
  • Naprawiono awarię edytora backendu z Androida P do wersji EditText, w której skonfigurowano używanie emotikon2. (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

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

  • Bez 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 zatwierdzenia.

Nowe funkcje

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

Wersja 1.2.0-alfa04

20 kwietnia 2022 r.

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

Nowe funkcje

  • Brak zmian w tej wersji.

Wersja 1.2.0-alfa03

6 kwietnia 2022 roku

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

Nowe funkcje

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

Wersja 1.2.0-alfa02

23 marca 2022 r.

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

Poprawki błędów

  • Emotikony2 doda emotikon do PrecomputedText, ignorując wstępnie obliczony układ tekstu. (I47d06, b/211231958)
  • Naprawiono awarię edytora backendu z Androida P do wersji EditText, w której skonfigurowano używanie emotikon2. (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-alpha01

23 lutego 2022 r.

Usługa androidx.emoji2:emoji2-*:1.2.0-alpha01 została zwolniona. 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

  • pakiet emotikon2 zawiera czcionkę emotikonów 14
  • Nowy interfejs API getEmojiMatch zwraca dokładne informacje dla klawiatur, aby określić sposób wyświetlania emotikona w przypadku obecności czcionki kompatybilnej z emotikonami, która znajduje się za czcionką systemową.
  • Poprawka błędu NumberKeyListener, która sprawia, że wpisywanie cyfr poprawnie filtruje znaki.

Wersja 1.1.0-rc01

9 lutego 2022 r.

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

Nowe funkcje

Bez zmian w stosunku do wersji beta.

Nowe funkcje w porównaniu z emotikon2 1.0.0:

  • emoji2-bundled zawiera czcionkę emotikonów 14
  • Nowy interfejs API getEmojiMatch zwraca dokładne informacje dla klawiatur, aby określić sposób wyświetlania emotikona w przypadku obecności czcionki kompatybilnej z emotikonami, która znajduje się za czcionką systemową.
  • Poprawka błędu NumberKeyListener, który sprawia, że wpisywane cyfry prawidłowo filtrują znaki

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

Poprawki błędów

  • Wersja androidx-emoji2 beta01. Brak zmian w stosunku do wersji alfa01 (Ic61d9)

Wersja 1.1.0-alpha01

15 grudnia 2021 roku

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

Nowe funkcje

  • emoji2-bundled zawiera czcionkę emotikonów 14
  • Nowy interfejs API getEmojiMatch zwraca dokładne informacje dla klawiatur, aby określić sposób wyświetlania emotikona w przypadku obecności czcionki kompatybilnej z emotikonami, która znajduje się za czcionką systemową.
  • Poprawka błędu NumberKeyListener, który sprawia, że wpisywane cyfry prawidłowo filtrują znaki

Zmiany interfejsu API

  • Dodaj nowy interfejs API getEmojiMatch, aby umożliwić klawiaturom dokładniejsze wyszukiwanie dopasowania emotikonów w aplikacji Zgodność z emotikonami.
  • Wycofujemy hasEmojiGlyph, ponieważ zwracana wartość logiczna jest nieprawidłowa podczas testowania czcionki w starszej wersji niż czcionka emotikonu platformy. Zamień na element getEmojiMatch. (IE693D).

Poprawki błędów

  • Emotikony2 nie zapakują instancji NumberKeyListener, co pozwoli na skonfigurowanie języka przez TextView.
  • Appcompat nie będzie opakowywać instancji NumberKeyListener przekazanych do setKeyListener, co pozwoli usłudze TextView prawidłowo skonfigurować język w systemie NumberKeyListeners. (Ibf113, b/207119921)

1,0

Wersja 1.0.1

15 grudnia 2021 roku

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

Poprawki błędów

  • Emoji2 nie będzie opakowywać instancji z językiem NumberKeyListener, co pozwoli na skonfigurowanie języka przez TextView.
  • Appcompat nie będzie opakowywać instancji NumberKeyListener przekazanych do setKeyListener, co pozwoli usłudze TextView prawidłowo skonfigurować język w systemie 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 aplikację androidx.emoji o dodatkowe funkcje:

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

Więcej informacji na temat androidx.emoji2 znajdziesz w artykule Obsługa współczesnych emotikonów oraz podczas naszego wydarzenia Android Dev Summit Wyświetlanie WSZYSTKICH emotikonów w aplikacji na Androida w wersji deweloperskiej.

Wersja 1.0.0-rc01

27 października 2021 roku

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

  • Brak zmian od wersji beta02.

Emotikony2 w wersji 1.0.0-beta01

15 września 2021 r.

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

Zmiany interfejsu API

  • Dodano setLoadingExecutor do listy FontRequestEmojiCompatConfig, który zastępuje poprzedni interfejs API setHandler. Ten interfejs API umożliwia aplikacjom skonfiguruj FontRequestEmojiCompatConfig tak, aby używał dowolnego wykonawcy działającego w tle.

    Ta zmiana jest niezbędna w stosunku do androidx.emoji:emoji, więc Aby ułatwić migrację, interfejs setHandler jest zachowywany jako wycofany interfejs API bezobsługowy. (I6cd48).

  • Emotikony prawidłowo ustawia EditorInfo.extras na Androidzie 11

    • Widżety niestandardowe, które nie używają podklasy IME, mogą wywoływać metodę EditText EmojiCompat.updateEditorInfo, aby poinformować IME o obsłudze Przetwarzam emojiCompat. (I1EA9b)

Poprawki błędów

  • Popraw DefaultEmojiCompatConfig, aby prawidłowo wyszukiwać czcionkę emotikonów dla interfejsów API 19 i 28. Naprawiliśmy błąd wprowadzonego w emotikon2 1.0.0-alfa01. (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-alfa03 zawiera te zatwierdzenia.

Nowe funkcje

Ta wersja zawiera poprawki błędów i stabilizację.

  1. emojiEditTextHelper umożliwia teraz przekazywanie elementu null jako detektora kluczy. Umożliwia to działanie platformy polegające na stosowaniu wartości null do emotikonów obsługujących implementacje EditText.
  2. W przypadku korzystania z EmotikonCompatInitializer opóźnienie początkowego uruchomienia jest poprawione, aby aktywować się po wznowieniu pierwszej aktywności. Dzięki temu aplikacja uruchamia się bez zakłóceń i unika wczytywania czcionki w przypadku uruchomień aplikacji, które nigdy nie wyświetlają interfejsu. Po krótkim opóźnieniu emotikon emojiCompat utworzy wątek, aby wczytać czcionkę z emotikonami.
  • W celu wdrożenia opóźnienia została dodana nowa 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

  • Zezwalaj na pustą wartość KeyListener w aplikacji AppCompatEditText. Powoduje to odwrócenie niepusta adnotacja, która została dodana do AppCompatEditText w wersji 1.4.0-alfa01 i przywraca poprzednie zachowanie po przekroczeniu wartości null. (I21482, b/189559345)

Poprawki błędów

  • Zmień emojiCompatInitializer, by ładować czcionkę do 500 ms po pierwszym Activity.onResume. Dzięki temu aktywność może: wykonać zadania Application.onCreate i Activity.onCreate bez rywalizacji, nadal upewniając się, że czcionka emotikonu została załadowana krótko po uruchomieniu aplikacji. (I4bff7)

Wersja 1.0.0-alpha02

2 czerwca 2021 r.

androidx.emoji2:emoji2:1.0.0-alpha02, androidx.emoji2:emoji2-views:1.0.0-alpha02 i androidx.emoji2:emoji2-views-helper:1.0.0-alpha02 zostały udostępnione. Wersja 1.0.0-alfa02 zawiera te zatwierdzenia.

Zmiany interfejsu API

  • Nazwa pakietu w emoji2-views-helper została zmieniona na androidx.emoji2.viewsintegration To niezwykła zmiana dla AppCompat 1.4.0-alpha01 i aplikacje muszą upewnić się, że do korzystania z zależności AppCompat została zaktualizowana zależność nową wersję emotikonów2. (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-alfa01 zawiera te zatwierdzenia.

Funkcje tej pierwszej wersji

W przypadku wszystkich aplikacji, które obsługują nowoczesne emotikony z interfejsu API 19, zalecamy zintegrowanie funkcji zgodności emotikonów. Wszystkie treści w Twojej aplikacji generowane przez użytkowników zawierają 🎉.

Przenieśliśmy emotikonaCompat z artefaktów androidx.emoji do nowego androidx.emoji2, teraz w wersji alfa01. Nowe artefakty zastępują poprzednią wersję.

Metoda emoji2 została dodana jako zależność do AppCompat w kompilacji AppCompat 1.4.0-alpha01 i domyślnie włączona w widokach AppCompat.

Artefakt emoji2 wprowadza nową konfigurację automatyczną za pomocą biblioteki androidx.startup. Nie musisz już pisać kodu 👨🏽 💻 do wyświetlenia 🐻 ☕️

Zmiany w emotikonie2 w stosunku do emotikonów

  • 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 DefaultEmojiCompatConfiguration.
  • Zajęcia zostały przeniesione z pakietu androidx.emoji do androidx.emoji2.
  • Podziel EmojiTextView i powiązane widoki na osobny artefakt emoji2-views. Należy go używać tylko wtedy, gdy aplikacja nie korzysta z kompatybilności aplikacji.
  • Wyodrębniono pomocniki do integracji kompatybilności emotikonów z widokami niestandardowymi w osobnym artefaktie emoji2-views-helper.
  • Dodano adnotacje dotyczące dopuszczalności 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 z AppCompat należy uaktualnić 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 obejmować rozszerzenia AppCompatTextView, AppCompatButton itp., a nie platformy TextView itp.
  • Aplikacje bez AppCompat powinny dodać zależność androidx.emoji2:emoji2-views-helper i korzystać z 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 automatycznej konfiguracji. Następnie możesz przekazać konfigurację niestandardową do EmojiCompat.init. Domyślna konfiguracja systemu może zostać pobrana DefaultEmojiCompatConfig.create(context) w celu dalszej konfiguracji przed przekazaniem do EmojiCompat.init.