Emoji2

Visualizzare le emoji nei dispositivi attuali e meno recenti.
Ultimo aggiornamento Release stabile Candidato per la release Versione beta Alpha Release
2 luglio 2025 1.5.0 - 1.6.0-beta01 -

Dichiarazione di dipendenze

Per aggiungere una dipendenza da Emoji2, devi aggiungere il repository Maven di Google al tuo progetto. Per saperne di più, consulta il repository Maven di Google.

Aggiungi le dipendenze per gli artefatti che ti servono nel file build.gradle per la tua app o il tuo modulo:

Alla moda

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")
}

Per saperne di più sulle dipendenze, consulta Aggiungere dipendenze di build.

Feedback

Il tuo feedback ci aiuta a migliorare Jetpack. Facci sapere se riscontri nuovi problemi o hai idee per migliorare questa libreria. Prima di crearne uno nuovo, dai un'occhiata ai problemi esistenti in questa libreria. Puoi aggiungere il tuo voto a un problema esistente facendo clic sul pulsante a forma di stella.

Creare un nuovo problema

Per ulteriori informazioni, consulta la documentazione di Issue Tracker.

Emoji2 Emojipicker versione 1.0

Versione 1.5.0

4 settembre 2024

androidx.emoji2:emoji2-*:1.5.0 viene ritirata. La versione 1.5.0 contiene questi commit.

Modifiche importanti dalla versione 1.4.0

  • Supporto dell'emoji 15.1 e dell'interfaccia utente del selettore di emoji bidirezionale. Un semplice clic sul selettore bidirezionale consente agli utenti di passare dalla versione delle emoji rivolta a sinistra a quella rivolta a destra.
  • Supporta il selettore di emoji con più tonalità della pelle. La pressione prolungata sulle emoji di coppia rivela un selettore di emoji per più persone per lo stato zero. Quando l'utente tocca la metà sinistra di un'emoji, l'anteprima dell'emoji in basso a destra viene aggiornata di conseguenza. Quando l'utente seleziona entrambe le metà di un'emoji, l'anteprima dell'emoji in basso a destra mostra l'emoji intera e l'utente può inserirla.

Versione 1.0.0-alpha03

8 marzo 2023

androidx.emoji2:emoji2-emojipicker:1.0.0-alpha03 viene ritirata. La versione 1.0.0-alpha03 contiene questi commit.

Correzioni di bug

  • Sono state rimosse risorse inutili e la dimensione della libreria è stata ridotta di circa 0,3 MB.

Versione 1.0.0-alpha02

22 febbraio 2023

androidx.emoji2:emoji2-emojipicker:1.0.0-alpha02 viene ritirata. La versione 1.0.0-alpha02 contiene questi commit.

Modifiche alle API

  • È stata aggiunta una nuova API per i client Java per poter fornire emoji recenti. (I39d10)

Correzioni di bug

  • Aggiorna le risorse emoji per supportare le emoji 15.0 (Ib4eb3)
  • Quando scegli un'emoji dalla finestra popup, aggiorna tutte le emoji identiche con quella appena selezionata (ad eccezione della riga delle emoji recenti). Annuncia anche l'emoji quando fai clic. (I892c6)
  • Attendi il caricamento di emojicompat prima di mostrare EmojiPickerView. (I29e03)

Versione 1.0.0-alpha01

25 gennaio 2023

androidx.emoji2:emoji2-emojipicker:1.0.0-alpha01 viene ritirata. La versione 1.0.0-alpha01 contiene questi commit.

Nuove funzionalità

  • È stato introdotto un selettore di emoji che offre un'esperienza utente coerente con le emoji più recenti su app e dispositivi OEM con sistema operativo Android. Fornisce il supporto per le emoji più recenti e l'interfaccia utente del selettore di emoji, incluse le varianti di tonalità della pelle e il supporto della compatibilità delle emoji.

Modifiche alle API

  • È stata introdotta la classe EmojiPickerView che fornisce emoji aggiornate in una visualizzazione verticale scorrevole con un'intestazione orizzontale selezionabile.
  • Le colonne della griglia del selettore di emoji possono essere impostate tramite l'attributo XML emojiGridColumns o la funzione setEmojiGridColumns().
  • Le righe della griglia del selettore di emoji possono essere impostate tramite l'attributo XML emojiGridRows o la funzione setEmojiGridRows().
  • Il listener di emoji selezionate può essere impostato tramite setOnEmojiPickedListener() e riceverà una notifica ogni volta che l'utente fa clic su un'emoji.
  • Il fornitore di emoji recente può essere fornito con setRecentEmojiProvider(). Questa è una funzione facoltativa. Se il fornitore di emoji recenti non è impostato, la libreria utilizzerà un fornitore di emoji recenti predefinito. Il comportamento predefinito è definito come segue: 1) tutte le emoji selezionate verranno salvate a livello di app nelle preferenze condivise. 2) Il selettore mostrerà al massimo tre righe di emoji selezionate, deduplicate, in ordine cronologico inverso.
  • È stata introdotta la classe EmojiViewItem che contiene l'emoji visualizzata e le relative varianti.
  • È stata introdotta l'interfaccia RecentEmojiProvider, che può essere implementata per fornire un elenco di emoji recenti. recentEmojiProvider è responsabile della fornitura delle emoji nella categoria "Usate di recente".

Versione 1.6

Versione 1.6.0-beta01

2 luglio 2025

androidx.emoji2:emoji2-*:1.6.0-beta01 viene ritirata. La versione 1.6.0-beta01 contiene questi commit.

Nuove funzionalità

  • Supporto degli aggiornamenti di Emoji 16.0
  • Aggiungi il suffisso "emoji" alla descrizione dei contenuti per assicurarti un comportamento di accessibilità coerente in tutte le app di selezione delle emoji.

Versione 1.6.0-alpha01

4 giugno 2025

androidx.emoji2:emoji2-*:1.6.0-alpha01 viene ritirata. La versione 1.6.0-alpha01 contiene questi commit.

Nuove funzionalità

  • Aggiornamenti dei dati delle emoji 16.0 (Ifc878)
  • Aggiunta del suffisso "emoji" alla descrizione dei contenuti

Correzioni di bug

  • Questa libreria ora utilizza le annotazioni di nullabilità JSpecify, che sono di tipo use. Gli sviluppatori Kotlin devono utilizzare i seguenti argomenti del compilatore per garantire un utilizzo corretto: -Xjspecify-annotations=strict, -Xtype-enhancement-improvements-strict-mode (Id07e7, b/326456246)

Versione 1.5

Versione 1.5.0

4 settembre 2024

androidx.emoji2:emoji2-*:1.5.0 viene ritirata. La versione 1.5.0 contiene questi commit.

Modifiche importanti dalla versione 1.4.0

  • Supporto dell'emoji 15.1 e dell'interfaccia utente del selettore di emoji bidirezionale. Un semplice clic sul selettore bidirezionale consente agli utenti di passare dalla versione delle emoji rivolta a sinistra a quella rivolta a destra.
  • Supporta il selettore di emoji con più tonalità della pelle. La pressione prolungata sulle emoji di coppia rivela un selettore di emoji per più persone per lo stato zero. Quando l'utente tocca la metà sinistra di un'emoji, l'anteprima dell'emoji in basso a destra viene aggiornata di conseguenza. Quando l'utente seleziona entrambe le metà di un'emoji, l'anteprima dell'emoji in basso a destra mostra l'emoji intera e l'utente può inserirla.

Versione 1.5.0-rc01

21 agosto 2024

androidx.emoji2:emoji2-*:1.5.0-rc01 viene ritirata. La versione 1.5.0-rc01 contiene questi commit.

Nuove funzionalità

  • Supporto dell'emoji 15.1 e dell'interfaccia utente del selettore di emoji bidirezionale. Un semplice clic sul selettore bidirezionale consente agli utenti di passare dalla versione delle emoji rivolta a sinistra a quella rivolta a destra e viceversa.
  • Supporta il selettore di emoji con più tonalità della pelle. La pressione prolungata sulle emoji di coppia rivela un selettore di emoji per più persone per lo stato zero. Quando l'utente tocca la metà sinistra di un'emoji, l'anteprima dell'emoji in basso a destra viene aggiornata di conseguenza. Quando l'utente seleziona entrambe le metà di un'emoji, l'anteprima mostra l'emoji intera e l'utente può inserirla.

Correzioni di bug

  • È stata rimossa la definizione manuale dell'accesso alle nuove API della piattaforma, poiché questa avviene automaticamente tramite la modellazione delle API quando si utilizza R8 con AGP 7.3 o versioni successive (ad es. R8 versione 3.3) e per tutte le build quando si utilizza AGP 8.1 o versioni successive (ad es. D8 versione 8.1). I client che non utilizzano AGP sono invitati a eseguire l'aggiornamento alla versione 8.1 o successive di D8. Consulta questo articolo per ulteriori dettagli. (If6b4c, b/345472586)
  • La selezione delle schede e gli indicatori di EmojiPickerView vengono aggiornati con un clic di ritardo. (146b02, b/288261054)
  • La selezione e l'indicatore delle schede di EmojiPickerView non funzionano. (5e1f14, b/273883688)

Versione 1.5.0-beta01

10 luglio 2024

androidx.emoji2:emoji2-*:1.5.0-beta01 viene ritirata. La versione 1.5.0-beta01 contiene questi commit.

Nuove funzionalità

  • Supporto dell'emoji 15.1 e dell'interfaccia utente di selezione bidirezionale delle emoji.
  • Supporto della riprogettazione della selezione di più tonalità della pelle.

Correzioni di bug

  • La selezione delle schede e gli indicatori di EmojiPickerView vengono aggiornati con un clic di ritardo. (146b02, b/288261054)
  • La selezione e l'indicatore delle schede di EmojiPickerView non funzionano. (5e1f14, b/273883688)

Versione 1.5.0-alpha01

13 dicembre 2023

androidx.emoji2:emoji2-*:1.5.0-alpha01 viene ritirata. La versione 1.5.0-alpha01 contiene questi commit.

Nuove funzionalità

  • emoji2-bundled contiene un carattere emoji aggiornato per supportare Emoji 15.1.

Modifiche alle API

  • Aggiungi esecutori per controllare il thread di callback per InitCallback. (I32b67)
  • BundledEmojiCompatConfig ora richiede un executor per controllare i thread di caricamento. (I00e81)

Versione 1.4

Versione 1.4.0

9 agosto 2023

androidx.emoji2:emoji2-*:1.4.0 viene ritirata. La versione 1.4.0 contiene questi commit.

Modifiche importanti dalla versione 1.3.0

Versione 1.4.0-rc01

26 luglio 2023

androidx.emoji2:emoji2-*:1.4.0-rc01 viene ritirata. La versione 1.4.0-rc01 contiene questi commit.

Modifiche alle API

  • Introduzione dell'elenco registerSource (Iae92f)
  • Feedback del Consiglio API: TransitionManager.seekTo() è stato rinominato in createSeekController(). Modifica il commento precedente sull'aggiunta di TransitionManager.seekTo() a TransitionManager.createSeekController(). (Idbeb1)
  • È stato aggiunto ExerciseRouteResult, che non è la superclasse di Data, NoData e ConsentRequiredStates. È stata aggiunta la classe autonoma ExerciseRoute, che contiene i dati sulla posizione per l'itinerario. (I22eed)
  • È stato introdotto PagerLayoutInfo con le informazioni raccolte dopo un passaggio di misurazione in Pager. È stata introdotta anche PageInfo, le informazioni su una singola pagina misurata in Pager. (Iad003, b/283098900)

Correzioni di bug

  • Abbiamo aggiornato i colori per Button, IconButton e TextButton in linea con il design Material3. Il ruolo semantico per Button, IconButton e TextButton ora può essere sostituito utilizzando Modifier.semantics. (Ib2495)
  • È stato risolto il problema relativo alla selezione delle schede e agli aggiornamenti degli indicatori di EmojiPickerView con un clic di ritardo. (I4db04)
  • FileNotFoundException sulla visualizzazione del selettore di emoji (I353e4)
  • Catch the WindowManager.BadTokenException when using EmojiPickerView (I0a144)

Versione 1.4.0-beta05

7 giugno 2023

androidx.emoji2:emoji2-*:1.4.0-beta05 viene ritirata. La versione 1.4.0-beta05 contiene questi commit.

Correzioni di bug

  • È stato corretto un bug introdotto nella versione 1.3 che causava l'applicazione doppia di MetricsAffectingSpans come RelativeSizeSpan. Una volta durante il layout del testo e di nuovo all'interno di EmojiSpan.draw. Il risultato era un disegno di dimensioni errate, visibile se uno dei parametri di dimensione del testo era stato modificato dallo span. (b/283208650)

Versione 1.4.0-beta04

24 maggio 2023

androidx.emoji2:emoji2-*:1.4.0-beta04 viene ritirata. La versione 1.4.0-beta04 contiene questi commit.

Questa release corregge un bug presente dalla versione 1.0 in cui le visualizzazioni con un gestore non principale generavano un'eccezione quando si tentava di aggiornare gli intervalli di emoji dopo il completamento del caricamento del carattere. Non esiste una soluzione alternativa. Se il bug ti riguarda, esegui l'upgrade a questa versione o a una successiva.

Correzioni di bug

  • I callback di inizializzazione di EmojiCompat ora utilizzeranno l'handler di ogni visualizzazione, rispettando le visualizzazioni non presenti nel thread principale. (Iccbcf)

Versione 1.4.0-beta03

10 maggio 2023

androidx.emoji2:emoji2-*:1.4.0-beta03 viene ritirata. La versione 1.4.0-beta03 contiene questi commit.

Correzioni di bug

  • Correzione dell'arresto anomalo della visualizzazione popup nidificata del selettore di emoji. (0acc8e)
  • Genera eccezioni anticipate in EmojiCompat getEmojiStart/getEmojiEnd. (26177f)

Versione 1.4.0-beta02

19 aprile 2023

androidx.emoji2:emoji2-*:1.4.0-beta02 viene ritirata. La versione 1.4.0-beta02 contiene questi commit.

Correzioni di bug

  • Aggiorna i file di riferimento di lint (Iaa212)

Versione 1.4.0-beta01

5 aprile 2023

androidx.emoji2:emoji2-*:1.4.0-beta01 viene ritirata. La versione 1.4.0-beta01 contiene questi commit.

Nuove funzionalità

androidx.emoji2:emoji2-emojipicker

Il selettore di emoji è una soluzione UI che offre un aspetto moderno, emoji aggiornate e facilità d'uso. Gli utenti possono sfogliare e selezionare le emoji e le relative varianti oppure scegliere tra le emoji usate di recente. Con questa libreria, le app di diversi OEM possono offrire ai propri utenti un'esperienza inclusiva e unificata con le emoji senza che gli sviluppatori debbano creare e gestire il proprio selettore di emoji da zero.

Emoji aggiornate

Ogni anno vengono rilasciate nuove emoji e le includeremo selettivamente nel selettore di emoji. Per garantire la compatibilità con le versioni precedenti, eseguiamo internamente un controllo accurato del rendering delle emoji per eliminare i caratteri tofu. In questo modo, la libreria sarà compatibile con più versioni e dispositivi Android.

Varianti persistenti

Se tieni premuto a lungo un'emoji, viene visualizzato un menu di varianti, ad esempio generi o tonalità della pelle diversi. La variante scelta verrà salvata nel selettore di emoji e l'ultima variante selezionata verrà utilizzata nel riquadro principale. Con questa funzionalità, gli utenti possono inviare le loro varianti di emoji preferite con un solo tocco.

Emoji recenti

RecentEmojiProvider è responsabile della fornitura delle emoji nella categoria "Usate di recente". La libreria ha un provider di emoji recenti predefinito che soddisfa il caso d'uso più comune:

  • Tutte le emoji selezionate vengono salvate a livello di app nelle preferenze condivise.
  • Il selettore mostra al massimo tre righe di emoji selezionate, deduplicate, in ordine cronologico inverso.

Se questo comportamento predefinito è sufficiente, non è necessario impostare il metodo setRecentEmojiProvider().

Utilizzare EmojiCompat

Se l'app ha un'istanza EmojiCompat, questa verrà utilizzata nel selettore di emoji per visualizzare il maggior numero possibile di emoji. Se EmojiCompat è disattivato, il selettore di emoji continuerà a funzionare correttamente.

Come utilizzare la libreria

Per utilizzare la libreria, uno sviluppatore di app deve

  1. Importa androidx.emoji2:emojipicker:$version in build.gradle.

    dependencies {
      implementation "androidx.emoji2:emojipicker:$version"
    }
    
  2. Gonfia la visualizzazione del selettore di emoji e, se vuoi, imposta emojiGridRows e emojiGridColumns in base alle dimensioni desiderate di ogni cella di emoji

    • Puoi lasciarli non impostati. Il valore predefinito è 9 emojiGridColumns. Le righe verranno calcolate in base all'altezza della visualizzazione principale e a emojiGridColumns.
    • Puoi impostare emojiGridRows come float per indicare che ci sono altre emoji se scorri verso il basso in XML
     <androidx.emoji2.emojipicker.EmojiPickerView
      android:id="@+id/emoji_picker"
      android:layout_width="match_parent"
      android:layout_height="match_parent"
      app:emojiGridColumns="9" />
    

nel codice

    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. Supponendo che tu voglia aggiungere le emoji selezionate a un EditText, utilizza setOnEmojiPickedListener()

      emojiPickerView.setOnEmojiPickedListener {
          findViewById<EditText>(R.id.edit_text).append(it.emoji)
      }
    
  2. Se vuoi, imposta RecentEmojiProvider. Per un esempio di implementazione, consulta l'app di esempio.

  3. (Facoltativo) Personalizza gli stili. Crea il tuo stile per ignorare gli attributi del tema comuni e applicarlo a EmojiPickerView. Ad esempio, la sovrascrittura di colorControlNormal cambierà il colore dell'icona della categoria.

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

Per un esempio di implementazione, consulta l'app di esempio.

Una superficie API completa è disponibile qui.

App di esempio

Questa app di esempio mostra i casi d'uso di base e i seguenti scenari aggiuntivi:

  • Il layout della visualizzazione è stato modificato perché emojiGridRows e emojiGridColumns sono stati reimpostati.
  • Il fornitore di emoji recenti viene sostituito per ordinare in base alla frequenza.
  • Personalizzazione dello stile.

Modifiche alle API

La libreria Emoji Picker è stata aggiornata con le seguenti nuove API:

  • La classe EmojiPickerView, che fornisce emoji aggiornate in una visualizzazione verticale scorrevole con un'intestazione orizzontale su cui è possibile fare clic.
  • La possibilità di impostare il numero di colonne e righe nella griglia del selettore di emoji tramite gli attributi XML emojiGridColumns e emojiGridRows o i metodi setEmojiGridColumns() e setEmojiGridRows().
  • La possibilità di impostare un listener di emoji selezionate tramite il metodo setOnEmojiPickedListener(). L'ascoltatore riceverà una notifica ogni volta che l'utente fa clic su un'emoji.
  • La possibilità di fornire un fornitore di emoji recente tramite il metodo setRecentEmojiProvider(). Questa è una funzione facoltativa. Se il fornitore di emoji recenti non è impostato, la libreria utilizzerà un fornitore di emoji recenti predefinito. Il comportamento predefinito è definito come segue:
    • Tutte le emoji selezionate verranno salvate a livello di app nelle preferenze condivise.
    • Il selettore mostrerà al massimo tre righe di emoji selezionate, deduplicate, in ordine cronologico inverso.
  • La classe EmojiViewItem, che contiene l'emoji visualizzata e le relative varianti.
  • L'interfaccia RecentEmojiProvider, che può essere implementata per fornire un elenco di emoji recenti. recentEmojiProvider è responsabile della fornitura delle emoji nella categoria "Usate di recente".
  • L'interfaccia RecentEmojiAsyncProvider, che può essere implementata per fornire un elenco di emoji recenti. RecentEmojiAsyncProvider è responsabile della fornitura delle emoji nella categoria "Usate di recente". Questa interfaccia è equivalente a RecentEmojiProvider che consente ai client di eseguire l'override del metodo getRecentEmojiListAsync() per fornire emoji recenti.
  • La classe RecentEmojiProviderAdapter, che è un adattatore per RecentEmojiAsyncProvider e implementa RecentEmojiProvider.

Versione 1.4.0-alpha01

22 marzo 2023

androidx.emoji2:emoji2-*:1.4.0-alpha01 viene ritirata. La versione 1.4.0-alpha01 contiene questi commit.

Correzioni di bug

  • Correzione dei test, disattivazione dei test non deterministici e pulizia.

Versione 1.3

Versione 1.3.0

22 marzo 2023

androidx.emoji2:emoji2-*:1.3.0 viene ritirata. La versione 1.3.0 contiene questi commit.

Modifiche importanti dalla versione 1.2.0

  • Questa release consente a Compose Foundation 1.4.0 e versioni successive di attivare l'integrazione di emoji2.
  • Consente inoltre funzionalità per la sostituzione di EmojiSpans con codice di disegno personalizzato, nonché il supporto per le esclusioni di emoji definite su Android.

Versione 1.3.0-rc01

8 marzo 2023

androidx.emoji2:emoji2-*:1.3.0-rc01 viene ritirata. La versione 1.3.0-rc01 contiene questi commit.

Nuove funzionalità

  • Questa versione supporta l'integrazione della composizione di emoji2.

Modifiche alle API

  • Sostituisci gli intervalli per il codice di disegno personalizzato.
  • Esecuzione di query sulle esclusioni del sistema.

Correzioni di bug

  • È stato corretto un bug per cui gli intervalli di sfondo non venivano applicati correttamente dietro EmojiSopans.

Versione 1.3.0-beta03

23 febbraio 2023

androidx.emoji2:emoji2-bundled:1.3.0-beta03, androidx.emoji2:emoji2-views:1.3.0-beta03 e androidx.emoji2:emoji2-views-helper:1.3.0-beta03 sono rilasciati.

22 febbraio 2023

androidx.emoji2:emoji2:1.3.0-beta03 viene ritirata. La versione 1.3.0-beta03 contiene questi commit.

Nuove funzionalità

  • Nessuna modifica. Questa release serve a preparare l'integrazione della composizione.

Versione 1.3.0-beta02

8 febbraio 2023

androidx.emoji2:emoji2-*:1.3.0-beta02 viene ritirata. La versione 1.3.0-beta02 contiene questi commit.

Nuove funzionalità

  • Questa release è una stabilizzazione per supportare l'integrazione della composizione.

Versione 1.3.0-beta01

25 gennaio 2023

androidx.emoji2:emoji2-*:1.3.0-beta01 viene ritirata. La versione 1.3.0-beta01 contiene questi commit.

Nuove funzionalità

  • Esecuzione di query sulle esclusioni del sistema.
  • Sostituzione degli intervalli per il codice di disegno personalizzato.
  • È stato corretto un bug per cui gli intervalli di sfondo non venivano applicati correttamente dietro EmojiSopans.
  • Questa release aggiunge le API necessarie per supportare EmojiCompat in Compose. Il supporto per la composizione per la compatibilità delle emoji sarà disponibile in una release futura.

Versione 1.3.0-alpha01

11 gennaio 2023

androidx.emoji2:emoji2-*:1.3.0-alpha01 viene ritirata. La versione 1.3.0-alpha01 contiene questi commit.

Nuove API per interazioni di basso livello

  • Esecuzione di query sulle esclusioni del sistema
  • Sostituzione degli span per il codice di disegno personalizzato
  • È stato corretto un bug per cui gli intervalli di sfondo non venivano applicati correttamente dietro EmojiSopans.
  • Questa release aggiunge le API necessarie per supportare EmojiCompat in Compose. Il supporto per la composizione per la compatibilità delle emoji sarà disponibile in una release futura.

Modifiche alle API

  • È stata aggiunta la possibilità di eseguire query sulle esclusioni di sistema in TypefaceEmojiRasterizer. (I5653e)
  • È stata aggiunta una nuova API EmojiCompat.SpanFactory per sostituire il comportamento predefinito EmojiSpan con codice di disegno e dimensionamento personalizzato. (Ib69d9)
  • Aggiunta di EmojiCompat a Compose (I96f37, b/139326806)

Correzioni di bug

Versione 1.2

Versione 1.2.0

10 agosto 2022

androidx.emoji2:emoji2-*:1.2.0 viene ritirata. La versione 1.2.0 contiene questi commit.

Modifiche importanti dalla versione 1.1.0

Questa è una release di correzione dei bug. Nessuna nuova funzionalità o API aggiunta dalla versione 1.1.0.

Tuttavia, le app che utilizzano PrecomputedText o TextView.setText(char[]) devono dare la priorità all'aggiornamento a questa versione.

Sono stati corretti i seguenti bug:

  • Emoji2 aggiungerà emoji a PrecomputedText eliminando il layout di testo precalcolato in precedenza. (I47d06, b/211231958)
  • Esegui il backport della correzione dell'arresto anomalo dell'editor da Android P a EditText configurato per l'utilizzo di emoji2. (Ifd709, b/216891011)
  • È stato risolto il problema di arresto anomalo quando emoji2 carica il carattere e viene utilizzato TextView.setText(char[]). (Id511e, b/206859724)

Versione 1.2.0-rc01

27 luglio 2022

androidx.emoji2:emoji2-*:1.2.0-rc01 viene ritirata. La versione 1.2.0-rc01 contiene questi commit.

  • Nessuna modifica rispetto all'ultima versione beta.

Versione 1.2.0-beta01

13 luglio 2022

androidx.emoji2:emoji2-*:1.2.0-beta01 viene ritirata. La versione 1.2.0-beta01 contiene questi commit.

Nuove funzionalità

  • Nessuna modifica rispetto all'ultima versione (questa release supporta la release AppCompat).

Versione 1.2.0-alpha04

20 aprile 2022

androidx.emoji2:emoji2-*:1.2.0-alpha04 viene ritirata. La versione 1.2.0-alpha04 contiene questi commit.

Nuove funzionalità

  • Nessuna modifica in questa release.

Versione 1.2.0-alpha03

6 aprile 2022

androidx.emoji2:emoji2-*:1.2.0-alpha03 viene ritirata. La versione 1.2.0-alpha03 contiene questi commit.

Nuove funzionalità

  • Nessuna modifica rispetto all'ultima versione (questa release supporta la release appcompat).

Versione 1.2.0-alpha02

23 marzo 2022

androidx.emoji2:emoji2-*:1.2.0-alpha02 viene ritirata. La versione 1.2.0-alpha02 contiene questi commit.

Correzioni di bug

  • Emoji2 aggiungerà emoji a PrecomputedText eliminando il layout del testo precalcolato in precedenza. (I47d06, b/211231958)
  • Esegui il backporting della correzione dell'arresto anomalo dell'editor da Android P a EditText configurato per l'utilizzo di emoji2. (Ifd709, b/216891011)
  • È stato risolto il problema di arresto anomalo quando emoji2 carica il carattere e viene utilizzato TextView.setText(char[]). (Id511e, b/206859724)

Versione 1.2.0-alpha01

23 febbraio 2022

androidx.emoji2:emoji2-*:1.2.0-alpha01 viene ritirata. La versione 1.2.0-alpha01 contiene questi commit.

Nessuna modifica dalla versione 1.1.0.

1,1

Versione 1.1.0

23 febbraio 2022

androidx.emoji2:emoji2-*:1.1.0 viene ritirata. La versione 1.1.0 contiene questi commit.

Modifiche importanti dalla versione 1.0.0

  • emoji2-bundled contiene il carattere emoji 14
  • La nuova API getEmojiMatch restituisce informazioni accurate per le tastiere per decidere come verrà visualizzata un'emoji in presenza di un carattere compatibile con le emoji che si trova dietro il carattere di sistema
  • Correzione di bug per NumberKeyListener che consente di filtrare correttamente i caratteri durante l'inserimento delle cifre.

Versione 1.1.0-rc01

9 febbraio 2022

androidx.emoji2:emoji2-*:1.1.0-rc01 viene ritirata. La versione 1.1.0-rc01 contiene questi commit.

Nuove funzionalità

Nessuna modifica rispetto alla versione beta.

Nuove funzionalità rispetto a emoji2 1.0.0:

  • emoji2-bundled contiene il carattere emoji 14
  • La nuova API getEmojiMatch restituisce informazioni accurate per le tastiere per decidere come verrà visualizzata un'emoji in presenza di un carattere compatibile con le emoji che si trova dietro il carattere di sistema
  • Correzione di bug per NumberKeyListener che consente di filtrare correttamente i caratteri durante l'inserimento delle cifre

Versione 1.1.0-beta01

26 gennaio 2022

androidx.emoji2:emoji2-*:1.1.0-beta01 viene ritirata. La versione 1.1.0-beta01 contiene questi commit.

Correzioni di bug

  • androidx-emoji2 beta01 release. Nessuna modifica rispetto ad alpha01 (Ic61d9)

Versione 1.1.0-alpha01

15 dicembre 2021

androidx.emoji2:emoji2-*:1.1.0-alpha01 viene ritirata. La versione 1.1.0-alpha01 contiene questi commit.

Nuove funzionalità

  • emoji2-bundled contiene il carattere emoji 14
  • La nuova API getEmojiMatch restituisce informazioni accurate per le tastiere per decidere come verrà visualizzata un'emoji in presenza di un carattere compatibile con le emoji che si trova dietro il carattere di sistema
  • Correzione di bug per NumberKeyListener che consente di filtrare correttamente i caratteri durante l'inserimento delle cifre

Modifiche alle API

  • Aggiungi la nuova API getEmojiMatch per consentire alle tastiere di cercare con maggiore precisione il comportamento di corrispondenza delle emoji in emojicompat.
  • Ritira hasEmojiGlyph, in quanto il valore booleano restituito è impreciso quando viene testato rispetto a un carattere precedente al carattere emoji della piattaforma. Sostituisci con getEmojiMatch. (Ie693d)

Correzioni di bug

  • Emoji2 non eseguirà il wrapping delle istanze di NumberKeyListener, consentendo la configurazione delle impostazioni internazionali da parte di TextView.
  • Appcompat non eseguirà il wrapping delle istanze di NumberKeyListener passate a setKeyListener, consentendo a TextView di configurare correttamente le impostazioni internazionali su NumberKeyListeners. (Ibf113, b/207119921)

1.0

Versione 1.0.1

15 dicembre 2021

androidx.emoji2:emoji2-*:1.0.1 viene ritirata. La versione 1.0.1 contiene questi commit.

Correzioni di bug

  • Emoji2 non eseguirà il wrapping delle istanze di NumberKeyListener, consentendo la configurazione delle impostazioni internazionali da parte di TextView.
  • Appcompat non eseguirà il wrapping delle istanze di NumberKeyListener passate a setKeyListener, consentendo a TextView di configurare correttamente le impostazioni internazionali su NumberKeyListeners. (Ibf113, b/207119921)

Versione 1.0.0

17 novembre 2021

androidx.emoji2:emoji2-*:1.0.0 viene ritirata. La versione 1.0.0 contiene questi commit.

Funzionalità principali della versione 1.0.0

androidx.emoji2 sostituisce androidx.emoji con funzionalità aggiuntive:

  • Riduzione delle dimensioni dell'APK rispetto ad androidx.emoji
  • Configurazione automatica
  • Aggiunta come dipendenza ad appcompat 1.4

Per saperne di più su androidx.emoji2, consulta Supporto delle emoji moderne e la nostra conferenza all'Android Dev Summit Displaying ALL the emojis in your app Android Dev.

Versione 1.0.0-rc01

27 ottobre 2021

androidx.emoji2:emoji2-*:1.0.0-rc01 viene ritirata. La versione 1.0.0-rc01 contiene questi commit.

  • Nessuna modifica dalla versione beta02.

Emoji2 versione 1.0.0-beta01

15 settembre 2021

androidx.emoji2:emoji2-*:1.0.0-beta01 viene ritirata. La versione 1.0.0-beta01 contiene questi commit.

Modifiche alle API

  • Aggiunta di setLoadingExecutor a FontRequestEmojiCompatConfig, che sostituisce l'API precedente di setHandler. Questa API consente alle app di configurare FontRequestEmojiCompatConfig per utilizzare qualsiasi executor in background.

    Questa modifica è una modifica che causa interruzioni rispetto a androidx.emoji:emoji, quindi setHandler viene mantenuta come API deprecata no-op per facilitare la migrazione. (I6cd48)

  • EmojiCompat imposta correttamente EditorInfo.extras su Android 11

    • I widget personalizzati che utilizzano l'IME senza sottoclassi EditText possono chiamare EmojiCompat.updateEditorInfo per comunicare all'IME che supportano l'elaborazione di EmojiCompat. (I1ea9b)

Correzioni di bug

  • Correggi DefaultEmojiCompatConfig per cercare correttamente il provider di caratteri emoji sulle API 19 e 28. Questo aggiornamento corregge un bug introdotto in emoji2 1.0.0-alpha01. (Ib33d8, b/197906329)

Versione 1.0.0-alpha03

30 giugno 2021

androidx.emoji2:emoji2-*:1.0.0-alpha03 viene ritirata. La versione 1.0.0-alpha03 contiene questi commit.

Nuove funzionalità

Questa release include correzioni di bug e miglioramenti della stabilità.

  1. EmojiEditTextHelper ora consente di passare null come KeyListener. Ciò consente di applicare il comportamento della piattaforma che consente i valori null alle implementazioni EditText che supportano le emoji.
  2. Quando si utilizza EmojiCompatInitializer, il ritardo di avvio iniziale viene migliorato per attivarsi dopo la ripresa della prima attività. In questo modo, l'avvio dell'app avviene senza contese ed evita di caricare il carattere per gli avvii di app che non mostrano mai un'interfaccia utente. Dopo un breve ritardo, EmojiCompat creerà un thread per caricare il carattere emoji.
  • Per implementare il ritardo, viene aggiunta una nuova dipendenza da androidx.lifecycle:lifecycle-process a partire da androidx.emoji2:emoji2. L'impatto sulle dimensioni dell'APK sarà trascurabile per le app che includono già il ciclo di vita (ad esempio le app con appcompat).

Modifiche alle API

  • Consenti KeyListener nullo in AppCompatEditText. In questo modo viene invertita l'annotazione non nulla aggiunta ad AppCompatEditText nella versione 1.4.0-alpha01 e viene ripristinato il comportamento precedente quando viene passato null. (I21482, b/189559345)

Correzioni di bug

  • Modifica EmojiCompatInitializer per ritardare il caricamento dei caratteri fino a 500 ms dopo il primo Activity.onResume. Ciò consente a un'attività di eseguire Application.onCreate e Activity.onCreate senza contese, garantendo comunque che il carattere emoji venga caricato poco dopo l'avvio dell'app. (I4bff7)

Versione 1.0.0-alpha02

2 giugno 2021

androidx.emoji2:emoji2:1.0.0-alpha02, androidx.emoji2:emoji2-views:1.0.0-alpha02 e androidx.emoji2:emoji2-views-helper:1.0.0-alpha02 sono rilasciati. La versione 1.0.0-alpha02 contiene questi commit.

Modifiche alle API

  • Pacchetto rinominato in emoji2-views-helper in androidx.emoji2.viewsintegration. Si tratta di una modifica che causa interruzioni per AppCompat 1.4.0-alpha01 e le app devono assicurarsi che la dipendenza AppCompat venga aggiornata per utilizzare la nuova versione di emoji2. (Ie8397)

Versione 1.0.0-alpha01

18 maggio 2021

androidx.emoji2:emoji2:1.0.0-alpha01, androidx.emoji2:emoji2-views:1.0.0-alpha01 e androidx.emoji2:emoji2-views-helper:1.0.0-alpha01 sono rilasciati. La versione 1.0.0-alpha01 contiene questi commit.

Funzionalità di questa release iniziale

L'integrazione di emojicompat è consigliata per tutte le app per supportare le emoji moderne a partire dall'API19. Tutti i contenuti generati dagli utenti nella tua app contengono 🎉.

EmojiCompat è stato spostato dagli artefatti androidx.emoji ai nuovi androidx.emoji2, ora in alpha01. I nuovi artefatti sostituiscono la versione precedente.

emoji2 viene aggiunto come dipendenza ad AppCompat a partire da AppCompat 1.4.0-alpha01 ed è attivato per impostazione predefinita per le visualizzazioni AppCompat.

L'artefatto emoji2 introduce una nuova configurazione automatica utilizzando la libreria androidx.startup. Non devi più scrivere codice 👨🏽‍💻 per visualizzare 🐻‍❄️.

Modifiche in emoji2 rispetto a emoji

  • È stata aggiunta una nuova configurazione automatica EmojiCompatInitializer utilizzando androidx.startup.
  • È stata aggiunta una nuova configurazione predefinita che utilizza la posizione del servizio per trovare un fornitore di caratteri scaricabili in DefaultEmojiCompatConfiguration.
  • Le classi sono state spostate dal pacchetto androidx.emoji a androidx.emoji2.
  • Dividi EmojiTextView e le visualizzazioni correlate in un artefatto separato emoji2-views. Questa opzione deve essere utilizzata solo se la tua app non utilizza appcompat.
  • Helper estratti per l'integrazione di emojicompat nelle visualizzazioni personalizzate in un artefatto separato emoji2-views-helper.
  • Sono state aggiunte annotazioni di nullabilità.
  • Ora gli helper in emoji2-views-helper possono essere utilizzati anche quando EmojiCompat non è inizializzato (in precedenza generavano un'eccezione).

Quale dipendenza devi aggiungere?

  • Le app con AppCompat devono eseguire l'upgrade alla versione AppCompat 1.4.0-alpha01 o successive.
  • Le app senza AppCompat che utilizzano TextView/EditText dalla piattaforma devono utilizzare EmojiTextView e le classi correlate di emoji2-views.

Come supportare le visualizzazioni personalizzate

  • Le app con AppCompat devono estendere AppCompatTextView, AppCompatButton e così via anziché TextView e così via.
  • Le app senza AppCompat devono aggiungere la dipendenza androidx.emoji2:emoji2-views-helper e utilizzare gli helper per l'integrazione con le sottoclassi TextView o EditText personalizzate.

Configurazione dell'inizializzazione automatica

  • Le app possono disattivare l'inizializzazione automatica aggiungendo questo al manifest:

     <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>
    
  • In questo modo la configurazione automatica viene disattivata e puoi passare una configurazione personalizzata a EmojiCompat.init. La configurazione predefinita del sistema può essere recuperata DefaultEmojiCompatConfig.create(context) per un'ulteriore configurazione prima di passare a EmojiCompat.init.