Emoji2

Affichez des emoji sur les appareils actuels et plus anciens.
Dernière mise à jour Version stable Version finale Version bêta Version alpha
23 septembre 2026 1.7.0 - - -

Déclarer des dépendances

Pour ajouter une dépendance sur Emoji2, vous devez ajouter le dépôt Maven de Google à votre projet. Pour en savoir plus, consultez la section Dépôt Maven de Google.

Ajoutez les dépendances des artefacts dont vous avez besoin dans le fichier build.gradle de votre application ou module :

Groovy

dependencies {
    def emoji2_version = "1.7.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.7.0"

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

Pour en savoir plus sur les dépendances, consultez la page Ajouter des dépendances de compilation.

Commentaires

Vos commentaires nous aident à améliorer Jetpack. N'hésitez pas à nous contacter si vous découvrez de nouveaux problèmes ou si vous avez des idées pour améliorer cette bibliothèque. Veuillez consulter les problèmes existants de cette bibliothèque avant d'en signaler un nouveau. Vous pouvez ajouter votre vote à un problème existant en cliquant sur le bouton en forme d'étoile.

Signaler un nouveau problème

Pour en savoir plus, consultez la documentation sur l'outil Issue Tracker.

Version 1.7

Version 1.7.0

23 septembre 2026

Publication d'androidx.emoji2:emoji2-*:1.7.0. La version 1.7.0 contient ces commits.

Changements importants depuis la version 1.6.0 :

  1. EmojiCompat est désactivé par défaut. Sur Android 15 et versions ultérieures, EmojiCompat est désactivé par défaut.
  2. Amélioration des performances L'analyse de texte est 4 à 6 fois plus rapide et les allocations de démarrage ont diminué de 99,6%.
  3. minSdk est désormais défini sur 24.

EmojiCompat est désactivé par défaut sur Android 15 et versions ultérieures.

Sur l'API 35 et les versions ultérieures, le système dispose d'une couverture universelle avec les polices système mises à jour. Par conséquent, pour la plupart des applications, EmojiCompat n'a aucun effet.

La nouvelle API EmojiCompat.Config.setUseAfterUpdatableSystemFonts(boolean) permet de configurer ce comportement, qui est défini par défaut sur false. Lorsqu'il est désactivé, EmojiCompat est désactivé sur Android 15 et versions ultérieures, et votre application dessine les emoji avec la police système installée via les polices système pouvant être mises à jour.

Il n'existe aucune API permettant de détecter que EmojiCompat est désactivé. De plus, même lorsque setUseAfterUpdatableSystemFonts est false, getLoadState() renvoie toujours LOAD_STATE_SUCCEEDED.

Réactiver sur Android 15 et versions ultérieures avec un nouveau flag
EmojiCompat.init(
    FontRequestEmojiCompatConfig(context, fontRequest)
        .setUseAfterUpdatableSystemFonts(true)
)

La numérisation de texte est plus rapide

Analyse du texte et allocations de démarrage :

p50 1.6.0 1.7.0
pureLatin 16,43 µs 2,66 µs
latinWithOneSimpleEmoji 12,13 µs 2,43 µs
latinWithOneComplexEmoji 13,42 µs 3,11 µs

Les allocations pour les start-ups ont diminué de 99,6%. L'utilisation totale de la mémoire a également diminué.

Lorsque setUseAfterUpdatableSystemFonts est défini sur false (valeur par défaut) sur Android 15 ou version ultérieure, EmojiCompat coûte des appels de méthode vides et ne contient aucune métadonnée d'emoji en mémoire.

minSdk est égal à 24

minSdk est désormais égal à 24.

Version 1.7.0-rc01

9 septembre 2026

Publication d'androidx.emoji2:emoji2-*:1.7.0-rc01. La version 1.7.0-rc01 contient ces commits.

Cette version se concentre sur l'amélioration des performances et est recommandée pour tous les utilisateurs d'emoji2.

Correction de bugs

  • compileSdk pour les bibliothèques Compose mises à jour vers la version 37.1. Cela nécessitera la mise à jour transitive de compileSdk pour toutes les applications et bibliothèques utilisant Compose. (I05b0f)

Version 1.7.0-alpha01

26 août 2026

Publication d'androidx.emoji2:emoji2-*:1.7.0-alpha01. Liste des commits de la version 1.7.0-alpha01

** Version axée sur les performances **

Cette version améliore considérablement les performances par rapport aux versions précédentes.

• Empreinte mémoire réduite : l'utilisation de la RAM par le trie de métadonnées est réduite, passant d'environ 2,2 Mo à environ 80 Ko.
• Réduction des frais généraux de démarrage : les allocations d'objets de démarrage sont passées de 24 178 à 82.
• Analyse de texte sans allocation : l'analyse de texte latin standard n'effectue désormais aucune allocation.
• Latence réduite : la latence médiane de l'analyse de texte latin est réduite jusqu'à 83% (de 16,43 µs à 2,66 µs).
• Contournement automatique sur l'API 35 et versions ultérieures : le traitement EmojiCompat est automatiquement contourné sur les appareils dotés de polices pouvant être mises à jour par le système.

Modifications apportées à l'API

  • Ajout de setUseAfterUpdatableSystemFonts à EmojiCompat.Config pour continuer à utiliser EmojiCompat sur Android 15 (API 35) et versions ultérieures, même lorsque des polices système pouvant être mises à jour sont disponibles sur tous les appareils. La valeur par défaut désactivera EmojiCompat sur API35+, ce qui permettra d'économiser de la mémoire et de réduire la latence de traitement du texte. (I7235e, b/541363642)

Correction de bugs

  • Sélecteur Emoji2 : mise à jour de Compose compileSdk vers l'API 37. Cela signifie qu'une version AGP minimale de 9.2.0 est requise lorsque vous utilisez Compose. (Id45cd, b/413674743)

Version 1.6

Version 1.6.0

10 septembre 2025

Publication d'androidx.emoji2:emoji2-*:1.6.0. La version 1.6.0 contient ces commits.

Changements importants depuis la version 1.5.0 :

  • Compatible avec les emoji 16.0
  • Ajoutez le suffixe "emoji" à la description du contenu des emoji.

Correction de bugs

Version 1.6.0-rc01

13 août 2025

Publication d'androidx.emoji2:emoji2-*:1.6.0-rc01. La version 1.6.0-rc01 contient ces commits.

Nouvelles fonctionnalités

  • Prise en charge d'Emoji 16.0 et ajout du suffixe "emoji" à la description du contenu.

Modifications apportées à l'API

  • Suppression des annotations @RequiresApi(21) obsolètes (Ic4792)
  • Suppression des annotations @RequiresApi(21) obsolètes (I9103b)

Version 1.6.0-beta01

2 juillet 2025

Publication d'androidx.emoji2:emoji2-*:1.6.0-beta01. La version 1.6.0-beta01 contient ces commits.

Nouvelles fonctionnalités

  • Prise en charge des mises à jour Emoji 16.0
  • Ajoutez le suffixe "emoji" à la description du contenu pour vous assurer que le comportement d'accessibilité est cohérent dans toutes les applications de sélecteur d'emoji.

Version 1.6.0-alpha01

4 juin 2025

Publication d'androidx.emoji2:emoji2-*:1.6.0-alpha01. Liste des commits de la version 1.6.0-alpha01

Nouvelles fonctionnalités

  • Mises à jour des données Emoji 16.0 (Ifc878)
  • Ajouter le suffixe "emoji" à la description du contenu

Correction de bugs

  • Cette bibliothèque utilise désormais les annotations de nullité JSpecify, qui sont de type "type-use". Les développeurs Kotlin doivent utiliser les arguments de compilateur suivants pour garantir une utilisation correcte : -Xjspecify-annotations=strict, -Xtype-enhancement-improvements-strict-mode (Id07e7, b/326456246).

Version 1.5

Version 1.5.0

4 septembre 2024

Publication d'androidx.emoji2:emoji2-*:1.5.0. La version 1.5.0 contient ces commits.

Changements importants depuis la version 1.4.0

  • Compatibilité avec les emoji 15.1 et l'interface utilisateur du sélecteur d'emoji bidirectionnel. Un simple clic sur le sélecteur bidirectionnel permet aux utilisateurs de basculer entre les versions des emojis orientées vers la gauche et vers la droite.
  • Prise en charge du sélecteur d'emoji avec plusieurs couleurs de peau. Si vous appuyez de manière prolongée sur des emoji de couples, un sélecteur d'emoji à plusieurs personnes s'affiche pour l'état zéro. Lorsque l'utilisateur appuie sur la moitié gauche d'un emoji, l'aperçu de l'emoji en bas à droite est mis à jour en conséquence. Lorsque l'utilisateur sélectionne les deux moitiés d'un emoji, l'aperçu de l'emoji en bas à droite affiche l'emoji entier, que l'utilisateur peut ensuite saisir.

Version 1.5.0-rc01

21 août 2024

Publication d'androidx.emoji2:emoji2-*:1.5.0-rc01. La version 1.5.0-rc01 contient ces commits.

Nouvelles fonctionnalités

  • Compatibilité avec les emoji 15.1 et l'interface utilisateur du sélecteur d'emoji bidirectionnel. Un simple clic sur le sélecteur bidirectionnel permet aux utilisateurs de basculer entre les versions orientées vers la gauche et vers la droite des emojis.
  • Prise en charge du sélecteur d'emoji multiteinte. Si vous appuyez de manière prolongée sur des emoji de couples, un sélecteur d'emoji à plusieurs personnes s'affiche pour l'état zéro. Lorsque l'utilisateur appuie sur la moitié gauche d'un emoji, l'aperçu de l'emoji en bas à droite est mis à jour en conséquence. Lorsque l'utilisateur sélectionne les deux moitiés d'un emoji, l'aperçu affiche l'emoji entier, que l'utilisateur peut ensuite saisir.

Correction de bugs

  • Suppression de la présentation manuelle de l'accès aux nouvelles API de plate-forme, car cela se fait automatiquement via la modélisation d'API lorsque vous utilisez R8 avec AGP 7.3 ou version ultérieure (par exemple, R8 version 3.3) et pour toutes les versions lorsque vous utilisez AGP 8.1 ou version ultérieure (par exemple, D8 version 8.1). Nous conseillons aux clients qui n'utilisent pas AGP de passer à la version 8.1 ou ultérieure de D8. Consultez cet article pour en savoir plus. (If6b4c, b/345472586)
  • La sélection d'onglets et l'indicateur de EmojiPickerView sont en retard d'un clic. (146b02, b/288261054)
  • La sélection et l'indicateur d'onglet de EmojiPickerView ne fonctionnent pas. (5e1f14, b/273883688)

Version 1.5.0-beta01

10 juillet 2024

Publication d'androidx.emoji2:emoji2-*:1.5.0-beta01. La version 1.5.0-beta01 contient ces commits.

Nouvelles fonctionnalités

  • Prise en charge des emoji 15.1 et de l'interface utilisateur de sélection d'emoji bidirectionnels.
  • Refonte de la sélection de plusieurs carnations.

Correction de bugs

  • La sélection d'onglets et l'indicateur de EmojiPickerView sont en retard d'un clic. (146b02, b/288261054)
  • La sélection et l'indicateur d'onglet de EmojiPickerView ne fonctionnent pas. (5e1f14, b/273883688)

Version 1.5.0-alpha01

13 décembre 2023

Publication d'androidx.emoji2:emoji2-*:1.5.0-alpha01. Liste des commits de la version 1.5.0-alpha01

Nouvelles fonctionnalités

  • emoji2-bundled contient une police d'emoji mise à jour pour prendre en charge Emoji 15.1.

Modifications apportées à l'API

  • Ajoutez des exécuteurs pour contrôler le thread de rappel pour InitCallback. (I32b67)
  • BundledEmojiCompatConfig accepte désormais un exécuteur pour contrôler les threads de chargement. (I00e81)

Version 1.4

Version 1.4.0

9 août 2023

Publication d'androidx.emoji2:emoji2-*:1.4.0. Liste des commits de la version 1.4.0

Changements importants depuis la version 1.3.0

Version 1.4.0-rc01

26 juillet 2023

Publication d'androidx.emoji2:emoji2-*:1.4.0-rc01. Liste des commits de la version 1.4.0-rc01

Modifications apportées à l'API

  • Ajouter la liste registerSource (Iae92f)
  • Commentaires du conseil sur les API : TransitionManager.seekTo() a été renommé createSeekController(). Veuillez modifier le commentaire précédent concernant l'ajout de TransitionManager.seekTo() à TransitionManager.createSeekController(). (Idbeb1)
  • Ajout de ExerciseRouteResult, qui n'est pas la superclasse de Data, NoData et ConsentRequiredStates. Ajout de ExerciseRoute en tant que classe autonome, qui contient les données de localisation de l'itinéraire. (I22eed)
  • Ajout de PagerLayoutInfo avec les informations collectées après le passage d'une mesure dans Pager. Nous avons également introduit PageInfo, les informations sur une seule page mesurée dans Pager. (Iad003, b/283098900)

Correction de bugs

  • Nous avons mis à jour les couleurs de Button, IconButton et TextButton conformément à la conception Material3. Le rôle sémantique de Button, IconButton et TextButton peut désormais être remplacé à l'aide de Modifier.semantics. (Ib2495)
  • Correction du décalage d'un clic dans la sélection d'onglets et la mise à jour des indicateurs de EmojiPickerView. (I4db04)
  • FileNotFoundException sur l'affichage du sélecteur d'emoji (I353e4)
  • Attraper le WindowManager.BadTokenException lors de l'utilisation de EmojiPickerView (I0a144)

Version 1.4.0-beta05

7 juin 2023

Publication d'androidx.emoji2:emoji2-*:1.4.0-beta05. Liste des commits de la version 1.4.0-beta05

Correction de bugs

  • Correction d'un bug introduit dans la version 1.3 qui entraînait l'application deux fois de MetricsAffectingSpans telles que RelativeSizeSpan. Une fois lors de la mise en page du texte et une autre fois dans EmojiSpan.draw. La taille du dessin du résultat était incorrecte, ce qui était visible si l'un des paramètres de taille du texte était modifié par la plage. (b/283208650)

Version 1.4.0-beta04

24 mai 2023

Publication d'androidx.emoji2:emoji2-*:1.4.0-beta04. Liste des commits de la version 1.4.0-beta04

Cette version corrige un bug présent depuis la version 1.0, qui entraînait l'affichage d'une exception lorsque des vues avec un gestionnaire non principal tentaient de mettre à jour les spans d'emoji après le chargement de la police. Il n'existe aucune solution de contournement. Si vous êtes concerné par ce bug, veuillez passer à cette version ou à une version ultérieure.

Correction de bugs

  • Les rappels d'initialisation EmojiCompat utiliseront désormais le gestionnaire de chaque vue, en respectant les vues qui ne se trouvent pas sur le thread principal. (Iccbcf)

Version 1.4.0-beta03

10 mai 2023

Publication d'androidx.emoji2:emoji2-*:1.4.0-beta03. Liste des commits de la version 1.4.0-beta03

Correction de bugs

  • Correction du plantage de la vue pop-up imbriquée du sélecteur d'emoji. (0acc8e)
  • Générez des exceptions anticipées dans EmojiCompat getEmojiStart/getEmojiEnd. (26177f)

Version 1.4.0-beta02

19 avril 2023

Publication d'androidx.emoji2:emoji2-*:1.4.0-beta02. Liste des commits de la version 1.4.0-beta02

Correction de bugs

  • Mettre à jour les fichiers de référence lint (Iaa212)

Version 1.4.0-beta01

5 avril 2023

Publication d'androidx.emoji2:emoji2-*:1.4.0-beta01. Liste des commits de la version 1.4.0-beta01

Nouvelles fonctionnalités

androidx.emoji2:emoji2-emojipicker

Le sélecteur d'emoji est une solution d'UI qui offre une apparence moderne, des emoji à jour et une grande facilité d'utilisation. Les utilisateurs peuvent parcourir et sélectionner des emoji et leurs variantes, ou choisir parmi leurs emoji récemment utilisés. Grâce à cette bibliothèque, les applications de différents OEM peuvent offrir une expérience emoji inclusive et unifiée à leurs utilisateurs sans que les développeurs aient à créer et à gérer leur propre sélecteur d'emoji à partir de zéro.

Emoji à jour

De nouveaux emoji sont publiés chaque année. Nous les inclurons de manière sélective dans le sélecteur d'emoji. Pour assurer la rétrocompatibilité, nous effectuons en interne une vérification précise de la capacité de rendu des emoji afin d'éliminer le tofu. Cela garantira la compatibilité de la bibliothèque avec plusieurs versions et appareils Android.

Variantes persistantes

Appuyez de manière prolongée sur un emoji pour afficher un menu de variantes, comme différents genres ou couleurs de peau. La variante que vous choisissez sera enregistrée dans le sélecteur d'emoji, et la dernière variante sélectionnée sera utilisée dans le panneau principal. Cette fonctionnalité permet aux utilisateurs d'envoyer leurs variantes d'emoji préférées d'un simple geste.

Emoji récents

Le RecentEmojiProvider est chargé de fournir les emoji dans la catégorie "Utilisés récemment". La bibliothèque dispose d'un fournisseur d'emoji récents par défaut qui répond au cas d'utilisation le plus courant :

  • Tous les emoji sélectionnés sont enregistrés au niveau de l'application dans les préférences partagées.
  • Le sélecteur affiche au maximum trois lignes d'emoji sélectionnés, dédupliqués, dans l'ordre antichronologique.

Si ce comportement par défaut vous convient, vous n'avez pas besoin de définir la méthode setRecentEmojiProvider().

Utiliser EmojiCompat

Si l'application dispose d'une instance EmojiCompat, elle sera utilisée dans le sélecteur d'emoji pour afficher le plus d'emoji possible. Si EmojiCompat est désactivé, le sélecteur d'emoji fonctionnera toujours correctement.

Utiliser la bibliothèque

Pour utiliser la bibliothèque, un développeur d'applications doit

  1. Importez androidx.emoji2:emojipicker:$version dans build.gradle.

    dependencies {
      implementation "androidx.emoji2:emojipicker:$version"
    }
    
  2. Développez la vue du sélecteur d'emoji et définissez éventuellement emojiGridRows et emojiGridColumns en fonction de la taille souhaitée de chaque cellule d'emoji.

    • Vous pouvez les laisser non définis. La valeur par défaut est 9 emojiGridColumns. Les lignes seront calculées en fonction de la hauteur de la vue parente et de emojiGridColumns.
    • Vous pouvez définir emojiGridRows comme un float pour indiquer qu'il y a plus d'emojis si vous faites défiler l'écran vers le bas dans XML.
     <androidx.emoji2.emojipicker.EmojiPickerView
      android:id="@+id/emoji_picker"
      android:layout_width="match_parent"
      android:layout_height="match_parent"
      app:emojiGridColumns="9" />
    

dans le code

    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. Si vous souhaitez ajouter les emoji sélectionnés à un EditText, utilisez setOnEmojiPickedListener().

      emojiPickerView.setOnEmojiPickedListener {
          findViewById<EditText>(R.id.edit_text).append(it.emoji)
      }
    
  2. Vous pouvez éventuellement définir RecentEmojiProvider. Pour obtenir un exemple d'implémentation, consultez l'application exemple.

  3. Vous pouvez également personnaliser les styles. Créez votre propre style pour remplacer les attributs de thème courants et appliquez-le à EmojiPickerView. Par exemple, remplacer colorControlNormal modifiera la couleur de l'icône de catégorie.

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

Pour obtenir un exemple d'implémentation, consultez l'exemple d'application.

Pour consulter l'intégralité de la surface de l'API, cliquez ici.

Application exemple

Cette application exemple illustre des cas d'utilisation de base ainsi que les scénarios supplémentaires suivants :

  • La vue a été réorganisée, car emojiGridRows et emojiGridColumns ont été réinitialisés.
  • Le fournisseur d'emoji récents est remplacé pour trier par fréquence.
  • Personnalisation du style.

Modifications apportées à l'API

La bibliothèque du sélecteur d'emoji a été mise à jour et inclut désormais les API suivantes :

  • La classe EmojiPickerView, qui fournit des emoji récents dans une vue à défilement vertical avec un en-tête horizontal cliquable.
  • Possibilité de définir le nombre de colonnes et de lignes dans la grille du sélecteur d'emoji via les attributs XML emojiGridColumns et emojiGridRows ou les méthodes setEmojiGridColumns() et setEmojiGridRows().
  • Possibilité de définir un écouteur d'emoji sélectionné via la méthode setOnEmojiPickedListener(). L'écouteur est informé chaque fois que l'utilisateur clique sur un emoji.
  • Possibilité de fournir un fournisseur d'emoji récents via la méthode setRecentEmojiProvider(). Cette fonction est facultative. Si le fournisseur d'emoji récents n'est pas défini, un fournisseur d'emoji récents par défaut sera utilisé par la bibliothèque. Le comportement par défaut est défini comme suit :
    • Tous les emoji sélectionnés seront enregistrés au niveau de l'application dans les préférences partagées.
    • Le sélecteur affiche au maximum trois lignes d'emoji sélectionnés, dédupliqués, dans l'ordre antichronologique.
  • La classe EmojiViewItem, qui contient l'emoji affiché et ses variantes d'emoji.
  • L'interface RecentEmojiProvider, qui peut être implémentée pour fournir une liste d'emoji récents. Le recentEmojiProvider est chargé de fournir les emoji dans la catégorie "Utilisés récemment".
  • L'interface RecentEmojiAsyncProvider, qui peut être implémentée pour fournir une liste d'emoji récents. Le RecentEmojiAsyncProvider est chargé de fournir les emoji dans la catégorie "Utilisés récemment". Cette interface est équivalente à RecentEmojiProvider, qui permet aux clients de remplacer la méthode getRecentEmojiListAsync() pour fournir des emoji récents.
  • La classe RecentEmojiProviderAdapter, qui est un adaptateur pour RecentEmojiAsyncProvider et implémente RecentEmojiProvider.

Version 1.4.0-alpha01

22 mars 2023

Publication d'androidx.emoji2:emoji2-*:1.4.0-alpha01. Liste des commits de la version 1.4.0-alpha01.

Correction de bugs

  • Corrige les tests, désactive les tests instables et effectue des nettoyages.

Version 1.3

Version 1.3.0

22 mars 2023

Publication d'androidx.emoji2:emoji2-*:1.3.0. Liste des commits de la version 1.3.0

Changements importants depuis la version 1.2.0

  • Cette version permet à Compose Foundation 1.4.0 et aux versions ultérieures d'activer l'intégration d'emoji2.
  • Il permet également de remplacer EmojiSpans par du code de dessin personnalisé et prend en charge les exclusions d'emoji définies sur Android.

Version 1.3.0-rc01

8 mars 2023

Publication d'androidx.emoji2:emoji2-*:1.3.0-rc01. Liste des commits de la version 1.3.0-rc01

Nouvelles fonctionnalités

  • Cette version est destinée à permettre l'intégration dans Compose.

Modifications apportées à l'API

  • Remplacez les étendues pour le code de dessin personnalisé.
  • Interrogation des exclusions système.

Correction de bugs

  • Correction d'un bug qui provoquait l'application incorrecte des ancrages d'arrière-plan derrière EmojiSopans.

Version 1.3.0-beta03

23 février 2023

Publication d'androidx.emoji2:emoji2-bundled:1.3.0-beta03, androidx.emoji2:emoji2-views:1.3.0-beta03 et androidx.emoji2:emoji2-views-helper:1.3.0-beta03.

22 février 2023

Publication d'androidx.emoji2:emoji2:1.3.0-beta03. Liste des commits de la version 1.3.0-beta03

Nouvelles fonctionnalités

  • Aucune modification. Cette version vise à préparer l'intégration dans Compose.

Version 1.3.0-beta02

8 février 2023

Publication d'androidx.emoji2:emoji2-*:1.3.0-beta02. Liste des commits de la version 1.3.0-beta02.

Nouvelles fonctionnalités

  • Version de stabilisation destinée à permettre l'intégration dans Compose.

Version 1.3.0-beta01

25 janvier 2023

Publication d'androidx.emoji2:emoji2-*:1.3.0-beta01. Liste des commits de la version 1.3.0-beta01

Nouvelles fonctionnalités

  • Interrogation des exclusions système.
  • Remplacement des ancrages pour le code de dessin personnalisé.
  • Correction d'un bug qui provoquait l'application incorrecte des ancrages d'arrière-plan derrière EmojiSopans.
  • Cette version ajoute les API nécessaires à la prise en charge de EmojiCompat dans Compose. Compose devrait être compatible avec EmojiCompat très prochainement.

Version 1.3.0-alpha01

11 janvier 2023

Publication d'androidx.emoji2:emoji2-*:1.3.0-alpha01. Liste des commits de la version 1.3.0-alpha01

Nouvelles API pour les interactions de niveau inférieur

  • Interrogation des exclusions système
  • Remplacement des ancrages pour le code de dessin personnalisé
  • Correction d'un bug qui provoquait l'application incorrecte des ancrages d'arrière-plan derrière EmojiSopans.
  • Cette version ajoute les API nécessaires à la prise en charge de EmojiCompat dans Compose. Compose devrait être compatible avec EmojiCompat très prochainement.

Modifications apportées à l'API

  • Ajout de la possibilité d'interroger les exclusions système dans TypefaceEmojiRasterizer. (I5653e)
  • Ajout d'une API EmojiCompat.SpanFactory pour remplacer le comportement EmojiSpan par défaut par un code de dessin et de dimensionnement personnalisé. (Ib69d9)
  • Ajout d'EmojiCompat à Compose (I96f37, b/139326806)

Correction de bugs

  • Emoji2 dessinera désormais correctement les arrière-plans à partir de BackgroundSpan. (Ide6a8, b/230525134)
  • Finalisation des API AppCompat pour la version 1.5.0-beta01 (I2a43d, b/236866227)

Version 1.2

Version 1.2.0

10 août 2022

Publication d'androidx.emoji2:emoji2-*:1.2.0. Liste des commits de la version 1.2.0

Changements importants depuis la version 1.1.0

Cette version corrige un bug. Aucune nouvelle fonctionnalité ni API ajoutée depuis la version 1.1.0.

Il est toutefois impératif pour les applications qui utilisent PrecomputedText ou TextView.setText(char[]) de passer à cette version.

Les bugs suivants ont été corrigés :

  • Emoji2 ajoutera des emoji à PrecomputedText en supprimant la précédente mise en page de texte précalculée. (I47d06, b/211231958)
  • Correction du plantage de l'éditeur rétroporté sur Android P vers EditText configuré pour utiliser Emoji2. (Ifd709, b/216891011)
  • Correction du plantage lors du chargement de la police Emoji2 et de l'utilisation de TextView.setText(char[]) (Id511e, b/206859724)

Version 1.2.0-rc01

27 juillet 2022

Publication d'androidx.emoji2:emoji2-*:1.2.0-rc01. Liste des commits de la version 1.2.0-rc01.

  • Aucune modification depuis la dernière version bêta.

Version 1.2.0-beta01

13 juillet 2022

Publication d'androidx.emoji2:emoji2-*:1.2.0-beta01. Liste des commits de la version 1.2.0-beta01

Nouvelles fonctionnalités

  • Aucune modification par rapport à la dernière version (cette version est compatible avec la version d'AppCompat).

Version 1.2.0-alpha04

20 avril 2022

Publication d'androidx.emoji2:emoji2-*:1.2.0-alpha04. Liste des commits de la version 1.2.0-alpha04

Nouvelles fonctionnalités

  • Aucune modification dans cette version.

Version 1.2.0-alpha03

6 avril 2022

Publication d'androidx.emoji2:emoji2-*:1.2.0-alpha03. Liste des commits de la version 1.2.0-alpha03

Nouvelles fonctionnalités

  • Aucune modification par rapport à la dernière version (cette version est compatible avec la version d'AppCompat).

Version 1.2.0-alpha02

23 mars 2022

Publication d'androidx.emoji2:emoji2-*:1.2.0-alpha02. Liste des commits de la version 1.2.0-alpha02

Correction de bugs

  • Emoji2 ajoutera des emoji à PrecomputedText en supprimant la précédente mise en page de texte précalculée. (I47d06, b/211231958)
  • Correction du plantage de l'éditeur rétroporté sur Android P vers EditText configuré pour utiliser emoji2. (Ifd709, b/216891011)
  • Correction du plantage lors du chargement de la police Emoji2 et de l'utilisation de TextView.setText(char[]) (Id511e, b/206859724)

Version 1.2.0-alpha01

23 février 2022

Publication d'androidx.emoji2:emoji2-*:1.2.0-alpha01. Liste des commits de la version 1.2.0-alpha01.

Aucune modification par rapport à la version 1.1.0.

1.1

Version 1.1.0

23 février 2022

Publication d'androidx.emoji2:emoji2-*:1.1.0. Liste des commits de la version 1.1.0

Modifications importantes depuis la version 1.0.0

  • Emoji2-bundle contient une police 14 d'émoji
  • La nouvelle API getEmojiMatch renvoie des informations précises concernant les claviers afin de déterminer la façon dont un emoji s'affiche en présence d'une police emojicompat en arrière-plan de la police du système
  • Correction d'un bug dans NumberKeyListener qui permet de filtrer correctement les caractères en saisissant des chiffres.

Version 1.1.0-rc01

9 février 2022

Publication d'androidx.emoji2:emoji2-*:1.1.0-rc01. Liste des commits de la version 1.1.0-rc01

Nouvelles fonctionnalités

Aucune modification par rapport à la version bêta.

Nouvelles fonctionnalités par rapport à la version 1.0.0 d'Emoji2 :

  • emoji2-bundled contient la police 14 d'emoji
  • La nouvelle API getEmojiMatch renvoie des informations précises concernant les claviers afin de déterminer la façon dont un emoji s'affiche en présence d'une police emojicompat en arrière-plan de la police du système
  • Correction d'un bug dans NumberKeyListener qui permet de filtrer correctement les caractères en saisissant des chiffres

Version 1.1.0-beta01

26 janvier 2022

Publication d'androidx.emoji2:emoji2-*:1.1.0-beta01. Liste des commits de la version 1.1.0-beta01

Correction de bugs

  • Version beta01 d'androidx-emoji2. Aucune modification par rapport à la version alpha01 (Ic61d9)

Version 1.1.0-alpha01

15 décembre 2021

Publication d'androidx.emoji2:emoji2-*:1.1.0-alpha01. Liste des commits de la version 1.1.0-alpha01

Nouvelles fonctionnalités

  • emoji2-bundled contient la police 14 d'emoji
  • La nouvelle API getEmojiMatch renvoie des informations précises concernant les claviers afin de déterminer la façon dont un emoji s'affiche en présence d'une police emojicompat en arrière-plan de la police du système
  • Correction d'un bug dans NumberKeyListener qui permet de filtrer correctement les caractères en saisissant des chiffres

Modifications apportées à l'API

  • Ajout d'une nouvelle API getEmojiMatch pour autoriser les claviers à rechercher plus précisément des comportements correspondants d'emoji dans emojicompat.
  • Abandon de hasEmojiGlyph, car sa valeur de retour booléenne est imprécise lorsqu'il est testé sur une police plus ancienne que celle de la police emoji. Remplacer par getEmojiMatch. (Ie693d)

Correction de bugs

  • Emoji2 n'encapsule pas les instances de NumberKeyListener. Les paramètres régionaux peuvent donc être configurés par TextView.
  • Appcompat n'encapsulera pas les instances de NumberKeyListener transmises à setKeyListener, ce qui permet à TextView de configurer correctement les paramètres régionaux sur NumberKeyListeners. (Ibf113, b/207119921)

1.0

Version 1.0.1

15 décembre 2021

Publication d'androidx.emoji2:emoji2-*:1.0.1. Liste des commits de la version 1.0.1

Correction de bugs

  • Emoji2 n'encapsulera pas les instances de NumberKeyListener, ce qui permet de configurer les paramètres régionaux via TextView.
  • Appcompat n'encapsulera pas les instances de NumberKeyListener transmises à setKeyListener, ce qui permet à TextView de configurer correctement les paramètres régionaux sur NumberKeyListeners. (Ibf113, b/207119921)

Version 1.0.0

17 novembre 2021

Publication d'androidx.emoji2:emoji2-*:1.0.0. Liste des commits de la version 1.0.0

Principales fonctionnalités de la version 1.0.0

Androidx.emoji2 remplace Androidx.emoji par des fonctionnalités supplémentaires :

  • Diminution de la taille de l'APK par rapport à Androidx.emoji
  • Configuration automatique
  • Ajouté en tant que dépendance à Appcompat 1.4

Pour en savoir plus sur Androidx.emoji2, consultez Prise en charge des emoji modernes et notre sommet des développeurs Android qui permet d'afficher TOUS les emoji dans votre application Android Dev.

Version 1.0.0-rc01

27 octobre 2021

Publication d'androidx.emoji2:emoji2-*:1.0.0-rc01. Liste des commits de la version 1.0.0-rc01.

  • Aucune modification depuis la version beta02.

Emoji2 version 1.0.0-beta01

15 septembre 2021

Publication d'androidx.emoji2:emoji2-*:1.0.0-beta01. Liste des commits de la version 1.0.0-beta01

Modifications apportées à l'API

  • Ajout de setLoadingExecutor à FontRequestEmojiCompatConfig, qui remplace l'API précédente de setHandler. Cette API permet aux applications de configurer FontRequestEmojiCompatConfig pour utiliser n'importe quel exécuteur en arrière-plan.

    Il s'agit d'une modification destructive d'androidx.emoji:emoji. setHandler est donc conservé en tant qu'API obsolète no-op pour faciliter la migration. (I6cd48)

  • EmojiCompat définit correctement EditorInfo.extras sur Android 11

    • Les widgets personnalisés qui utilisent l'IME sans sous-classer EditText peuvent appeler EmojiCompat.updateEditorInfo pour indiquer à IME qu'ils acceptent le traitement d'EmojiCompat. (I1ea9b)

Correction de bugs

  • Correction de DefaultEmojiCompatConfig pour rechercher correctement le fournisseur de polices emoji sur les API 19 et 28. Correction d'un bug introduit dans la version 1.0.0-alpha01 d'Emoji2. (Ib33d8, b/197906329)

Version 1.0.0-alpha03

30 juin 2021

Publication d'androidx.emoji2:emoji2-*:1.0.0-alpha03. Liste des commits de la version 1.0.0-alpha03

Nouvelles fonctionnalités

Cette version est une version de correction de bug et de stabilisation.

  1. EmojiEditTextHelper peut désormais transmettre null en tant que KeyListener. Cela permet à la plateforme d'appliquer des valeurs nulles aux emoji compatibles avec les intégrations d'EditText.
  2. En cas d'utilisation d'EmojiCompatInitializer, le délai de démarrage initial est amélioré pour se lancer après la première reprise d'activité. Ainsi, le démarrage de l'application peut se dérouler sans interruption, et la police ne doit pas charger au démarrage des applications qui n'affichent jamais d'interface utilisateur. Après quelques instants, EmojiCompat crée un thread pour charger la police des emoji.
  • Une nouvelle dépendance à androidx.lifecycle:lifecycle-process depuis androidx.emoji2:emoji2 est ajoutée pour intégrer le délai. L'effet sur la taille des APK sera négligeable pour les applications qui incluent déjà un cycle de vie (par exemple, les applications avec Appcompat).

Modifications apportées à l'API

  • Autorise des valeurs nulles de KeyListener dans AppCompatEditText. Cette opération inverse l'annotation non nulle ajoutée à AppCompatEditText dans la version 1.4.0-alpha01 et restaure le comportement précédent lorsqu'il était transmis avec la valeur nulle. (I21482, b/189559345)

Correction de bugs

  • Modifiez EmojiCompatInitializer pour retarder le chargement de la police jusqu'à 500 ms après le premier Activity.onResume. Cela permet à une activité d'effectuer des opérations Application.onCreate et Activity.onCreate non exécutées, tout en s'assurant que la police des emoji est chargée peu de temps après le démarrage de l'application. (I4bff7)

Version 1.0.0-alpha02

2 juin 2021

Publication d'androidx.emoji2:emoji2:1.0.0-alpha02, androidx.emoji2:emoji2-views:1.0.0-alpha02 et androidx.emoji2:emoji2-views-helper:1.0.0-alpha02. Liste des commits de la version 1.0.0-alpha02

Modifications apportées à l'API

  • Le package de emoji2-views-helper a été renommé en androidx.emoji2.viewsintegration. Il s'agit d'une modification destructive pour AppCompat 1.4.0-alpha01, et les applications doivent s'assurer que la dépendance AppCompat est mise à jour pour utiliser la nouvelle version d'Emoji2. (Ie8397)

Version 1.0.0-alpha01

18 mai 2021

Publication d'androidx.emoji2:emoji2:1.0.0-alpha01, androidx.emoji2:emoji2-views:1.0.0-alpha01 et androidx.emoji2:emoji2-views-helper:1.0.0-alpha01. Liste des commits de la version 1.0.0-alpha01

Fonctionnalités de cette version initiale

L'intégration d'Emojicompat est recommandée pour toutes les applications afin qu'elles soient compatibles avec les emoji modernes de l'API 19. Tous les contenus générés par les utilisateurs dans votre application contiennent 🎉.

EmojiCompat est passé des artefacts androidx.emoji au nouveau androidx.emoji2, maintenant en version alpha01. Les nouveaux artefacts remplacent la version précédente.

emoji2 est ajouté en tant que dépendance à AppCompat à partir d'AppCompat 1.4.0-alpha01 et est activé par défaut pour les vues AppCompat.

L'artefact emoji2 introduit une nouvelle configuration automatique à l'aide de la bibliothèque androidx.startup. Vous n'avez plus besoin d'écrire de code 👨🏽 💻 pour afficher 🐻 ❄️.

Modifications entre Emoji2 et Emoji

  • Ajout de la configuration automatique EmojiCompatInitializer avec androidx.startup.
  • Ajout d'une configuration par défaut qui utilise l'emplacement du service pour trouver un fournisseur de polices téléchargeables dans DefaultEmojiCompatConfiguration.
  • Classes déplacées du package androidx.emoji vers androidx.emoji2.
  • Division d'EmojiTextView et des vues associées dans un artefact emoji2-views distinct. À utiliser uniquement si votre application n'utilise pas Appcompat.
  • Des assistants ont été extraits pour intégrer des Emojicompat aux vues personnalisées dans un artefact emoji2-views-helper distinct.
  • Ajout d'annotations pouvant être de valeur nulle.
  • Des assistants dans emoji2-views-helper peuvent désormais être utilisés même si EmojiCompat n'est pas initialisé (auparavant, ils généraient une exception).

Quelle dépendance devez-vous ajouter ?

  • Les applications utilisant AppCompat doivent passer à la version 1.4.0-alpha01 ou ultérieure d'AppCompat.
  • Les applications n'utilisant pas AppCompat, mais plutôt TextView/EditText depuis la plate-forme doivent utiliser EmojiTextView et les classes associées d'emoji2-views.

Comment prendre en charge les vues personnalisées

  • Les applications utilisant AppCompat doivent étendre AppCompatTextView, AppCompatButton, etc. au lieu de la plate-forme TextView, etc.
  • Les applications n'utilisant pas AppCompat doivent ajouter la dépendance androidx.emoji2:emoji2-views-helper et utiliser des assistants pour intégrer des sous-classes TextView ou EditText personnalisées.

Configurer l'initialisation automatique

  • Les applications peuvent désactiver l'initialisation automatique en ajoutant le code suivant au fichier manifeste :

     <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>
    
  • La configuration automatique est alors désactivée, et vous pouvez ensuite transmettre une configuration personnalisée à EmojiCompat.init. La configuration par défaut du système peut être une DefaultEmojiCompatConfig.create(context) récupérée pour une configuration ultérieure avant de la transmettre à EmojiCompat.init.

Emoji2 Emojipicker Version 1.0

Version 1.0.0-alpha03

8 mars 2023

Publication d'androidx.emoji2:emoji2-emojipicker:1.0.0-alpha03. Liste des commits de la version 1.0.0-alpha03

Correction de bugs

  • Suppression des ressources inutiles et réduction de la taille de la bibliothèque d'environ 0,3 M.

Version 1.0.0-alpha02

22 février 2023

Publication d'androidx.emoji2:emoji2-emojipicker:1.0.0-alpha02. Liste des commits de la version 1.0.0-alpha02.

Modifications apportées à l'API

  • Ajout d'une nouvelle API pour que les clients Java puissent fournir des emoji récents. (I39d10)

Correction de bugs

  • Mise à jour des ressources d'emoji pour prendre en charge les emoji 15.0 (Ib4eb3)
  • Lorsque vous sélectionnez un emoji dans la fenêtre pop-up, tous les emoji identiques sont remplacés par le nouvel emoji sélectionné (à l'exception de la rangée des emoji récents). Annoncez également l'emoji lorsque l'utilisateur clique dessus. (I892c6)
  • Attendez qu'emojicompat se charge avant d'afficher EmojiPickerView. (I29e03)

Version 1.0.0-alpha01

25 janvier 2023

Publication d'androidx.emoji2:emoji2-emojipicker:1.0.0-alpha01. Liste des commits de la version 1.0.0-alpha01

Nouvelles fonctionnalités

  • Lancement d'un sélecteur d'emoji offrant une expérience utilisateur cohérente avec les derniers emoji sur les appareils et les applications OEM Android OS. Il est compatible avec les derniers emoji et l'interface utilisateur de sélection d'emoji, y compris les variantes de couleur de peau et la compatibilité avec les emoji.

Modifications apportées à l'API

  • Introduction de la classe EmojiPickerView qui fournit des emoji récents dans une vue à défilement vertical avec un en-tête horizontal cliquable.
  • Les colonnes de la grille du sélecteur d'emoji peuvent être définies via l'attribut XML emojiGridColumns ou la fonction setEmojiGridColumns().
  • Les lignes de la grille du sélecteur d'emoji peuvent être définies via l'attribut XML emojiGridRows ou la fonction setEmojiGridRows().
  • L'écouteur du sélecteur d'emoji peut être défini via setOnEmojiPickedListener(). Il est informé chaque fois que l'utilisateur clique sur un emoji.
  • Le fournisseur d'emoji récents peut être fourni avec setRecentEmojiProvider(). Cette fonction est facultative. Si le fournisseur d'emoji récents n'est pas défini, un fournisseur d'emoji récents par défaut sera utilisé par la bibliothèque. Le comportement par défaut est défini comme suit : 1) Tous les emoji sélectionnés seront enregistrés au niveau de l'application dans les préférences partagées. 2) Le sélecteur affiche au maximum trois lignes d'emoji sélectionnés, dédupliqués, dans l'ordre antichronologique
  • Introduction de la classe EmojiViewItem contenant l'emoji affiché et ses variantes d'emoji.
  • Introduction de l'interface RecentEmojiProvider qui peut être mise en œuvre pour fournir une liste d'emoji récents. Le recentEmojiProvider est chargé de fournir les emoji dans la catégorie "Utilisés récemment".