Emoji2

Muestra emojis en dispositivos modernos y antiguos.
Actualización más reciente Versión estable Versión potencial Versión beta Versión alfa
13 de diciembre de 2023 1.4.0 - - 1.5.0-alpha01

Cómo declarar dependencias

Para agregar una dependencia en Emoji2, debes agregar el repositorio de Maven de Google a tu proyecto. Lee el repositorio de Maven de Google para obtener más información.

Agrega las dependencias de los artefactos que necesites en el archivo build.gradle de tu app o módulo:

Groovy

dependencies {
    def emoji2_version = "1.4.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.4.0"

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

Para obtener más información sobre las dependencias, consulta Cómo agregar dependencias de compilación.

Comentarios

Tus comentarios ayudan a mejorar Jetpack. Avísanos si descubres nuevos errores o tienes ideas para mejorar esta biblioteca. Consulta los errores existentes de esta biblioteca antes de crear uno nuevo. Puedes agregar tu voto a un error existente haciendo clic en el botón de la estrella.

Crear un error nuevo

Consulta la documentación sobre la Herramienta de seguimiento de errores para obtener más información.

Emoji2: Emojipicker versión 1.0

Versión 1.0.0-alpha03

8 de marzo de 2023

Lanzamiento de androidx.emoji2:emoji2-emojipicker:1.0.0-alpha03. La versión 1.0.0-alpha03 contiene estas confirmaciones.

Correcciones de errores

  • Se quitaron los recursos innecesarios y se redujo el tamaño de la biblioteca alrededor de 0.3 millones.

Versión 1.0.0-alpha02

22 de febrero de 2023

Lanzamiento de androidx.emoji2:emoji2-emojipicker:1.0.0-alpha02. La versión 1.0.0-alpha02 contiene estas confirmaciones.

Cambios en la API

  • Se agregó una nueva API para que los clientes Java puedan proporcionar emojis recientes. (I39d10).

Correcciones de errores

  • Se actualizaron los recursos de emojis para que sean compatibles con la versión 15.0 (Ib4eb3).
  • Cuando selecciones un emoji de la ventana emergente, actualiza todos los emojis idénticos al que se acaba de elegir (excepto la fila de emojis recientes). También anuncia el emoji cuando hagas clic. (I892c6).
  • Espera a que se cargue EmojiCompat antes de mostrar EmojiPickerView. (I29e03).

Versión 1.0.0-alpha01

25 de enero de 2023

Lanzamiento de androidx.emoji2:emoji2-emojipicker:1.0.0-alpha01. La versión 1.0.0-alpha01 contiene estas confirmaciones.

Nuevas funciones

  • Se agregó un selector de emojis que brinda una experiencia del usuario coherente con los últimos emojis en todos los dispositivos y las apps de OEM del SO Android. Proporciona la IU del selector de emojis y compatibilidad con los emojis más recientes, incluidas variantes de tonos de piel y compatibilidad con emojis.

Cambios en la API

  • Se introdujo la clase EmojiPickerView, que proporciona emojis actualizados en una vista vertical desplazable con un encabezado horizontal en el que se puede hacer clic.
  • Las columnas de la cuadrícula del selector de emojis se pueden configurar con el atributo XML emojiGridColumns o la función setEmojiGridColumns().
  • Las filas de la cuadrícula del selector de emojis se pueden configurar con el atributo XML emojiGridRows o la función setEmojiGridRows().
  • El objeto de escucha seleccionado para emojis se puede configurar con setOnEmojiPickedListener(), y este objeto recibirá una notificación cada vez que el usuario haga clic en un emoji.
  • Se puede proporcionar el proveedor de emojis reciente con setRecentEmojiProvider(). Esta es una función opcional. Si no estableces el proveedor de emojis reciente, la biblioteca usará uno predeterminado. El comportamiento predeterminado se define de la siguiente manera: 1) Todos los emojis seleccionados se guardarán en el nivel de la app en las preferencias compartidas. 2) El selector mostrará, como máximo, 3 filas de emojis seleccionados, sin duplicados, en orden cronológico inverso.
  • Se introdujo la clase EmojiViewItem que contiene el emoji que se muestra y sus variantes.
  • Se introdujo la interfaz de RecentEmojiProvider, que se puede implementar para brindar una lista de emojis recientes. El recentEmojiProvider se encarga de proporcionar emojis en la categoría "Usados recientemente".

Versión 1.5

Versión 1.5.0-alpha01

13 de diciembre de 2023

Lanzamiento de androidx.emoji2:emoji2-*:1.5.0-alpha01. La versión 1.5.0-alpha01 contiene estas confirmaciones.

Nuevas funciones

  • emoji2-bundled contiene una fuente de emojis actualizada para admitir Emoji 15.1.

Cambios en la API

  • Se agregaron ejecutores para controlar el subproceso de devolución de llamada de InitCallback. (I32b67).
  • BundledEmojiCompatConfig ahora toma un ejecutor para controlar los subprocesos de carga. (I00e81).

Versión 1.4

Versión 1.4.0

9 de agosto de 2023

Lanzamiento de androidx.emoji2:emoji2-*:1.4.0. La versión 1.4.0 contiene estas confirmaciones.

Cambios importantes desde la versión 1.3.0

Versión 1.4.0-rc01

26 de julio de 2023

Lanzamiento de androidx.emoji2:emoji2-*:1.4.0-rc01. La versión 1.4.0-rc01 contiene estas confirmaciones.

Cambios en la API

  • Se introdujo la lista registerSource (Iae92f).
  • Comentarios del consejo de la API: se cambió el nombre de TransitionManager.seekTo() a createSeekController(). Ajusta el comentario anterior sobre agregar TransitionManager.seekTo() a TransitionManager.createSeekController(). (Idbeb1).
  • Se agregó ExerciseRouteResult, que no es la superclase para Data, NoData y ConsentRequiredStates. Se agregó ExerciseRoute como una clase independiente, que contiene datos de ubicación para la ruta. (I22eed).
  • Se introdujo PagerLayoutInfo con información recopilada después de un pase de medición en Pager También se introdujo PageInfo, la información sobre una única medida Pager en Pager. (Iad003, b/283098900).

Correcciones de errores

  • Actualizamos los colores de Button, IconButton y TextButton de acuerdo con el diseño de Material 3 La función semántica para Button, IconButton y TextButton ahora se puede anular con Modifier.semantics (Ib2495).
  • Se corrigió la selección de pestañas de EmojiPickerView y las actualizaciones del indicador con un clic. (I4db04).
  • Se muestra FileNotFoundException en el selector de emojis (I353e4).
  • Se capturó el WindowManager.BadTokenException cuando se usa EmojiPickerView (I0a144).

Versión 1.4.0-beta05

7 de junio de 2023

Lanzamiento de androidx.emoji2:emoji2-*:1.4.0-beta05. La versión 1.4.0-beta05 contiene estas confirmaciones.

Correcciones de errores

  • Se corrigió un error introducido en la versión 1.3 que causaba que MetricsAffectingSpans, como RelativeSizeSpan, se aplicara dos veces. Una vez durante el diseño del texto y otra vez dentro de EmojiSpan.draw. El resultado tenía un tamaño incorrecto y visible si el intervalo cambia alguno de los parámetros de tamaño del texto. (b/283208650).

Versión 1.4.0-beta04

24 de mayo de 2023

Lanzamiento de androidx.emoji2:emoji2-*:1.4.0-beta04. La versión 1.4.0-beta04 contiene estas confirmaciones.

En esta versión, se corrige un error desde la versión 1.0 en el que las vistas con un controlador que no era el principal arrojaban una excepción cuando se intentaba actualizar los intervalos de emojis después de que se completaba la carga de la fuente. No hay una solución alternativa. Si este error te afecta, actualiza a esta versión o a una posterior.

Correcciones de errores

  • Las devoluciones de llamada de inicialización EmojiCompat ahora usarán el controlador desde cada vista y respetarán las vistas que no estén en el subproceso principal. (Iccbcf).

Versión 1.4.0-beta03

10 de mayo de 2023

Lanzamiento de androidx.emoji2:emoji2-*:1.4.0-beta03. La versión 1.4.0-beta03 contiene estas confirmaciones.

Correcciones de errores

  • Se corrigió la falla de la vista emergente anidada del selector de emojis. (0acc8e).
  • Arroja excepciones tempranas en el EmojiCompat getEmojiStart/getEmojiEnd. (26177f).

Versión 1.4.0-beta02

19 de abril de 2023

Lanzamiento de androidx.emoji2:emoji2-*:1.4.0-beta02. La versión 1.4.0-beta02 contiene estas confirmaciones.

Correcciones de errores

  • Se actualizaron los archivos de referencia de lint (Iaa212).

Versión 1.4.0-beta01

5 de abril de 2023

Lanzamiento de androidx.emoji2:emoji2-*:1.4.0-beta01. La versión 1.4.0-beta01 contiene estas confirmaciones.

Nuevas funciones

androidx.emoji2:emoji2-emojipicker

El selector de emojis es una solución de IU que ofrece un estilo moderno, emojis actualizados y facilidad de uso. Los usuarios pueden explorar y seleccionar emojis y sus variantes, o bien elegir los que usaron recientemente. Con esta biblioteca, las apps de diferentes OEM pueden proporcionar una experiencia de emojis inclusiva y unificada a sus usuarios sin que los desarrolladores tengan que crear y mantener su propio selector de emojis desde cero.

Emojis actualizados

Todos los años se lanzan nuevos emojis, que se incluirán de forma selectiva en el Selector de emojis. Para garantizar la retrocompatibilidad, realizamos una comprobación precisa de la capacidad de renderización de los emojis a nivel interno para eliminar el tofu. Esto garantizará que la biblioteca sea compatible con múltiples versiones de Android y dispositivos.

Variantes fijas

Si mantienes presionado un emoji, aparece un menú de variantes, como diferentes géneros o tonos de piel. La variante que elijas se guardará en el selector de emojis, y la última variante se usará en el panel principal. Con esta función, los usuarios pueden enviar sus variantes de emojis preferidas con solo presionar una vez.

Emojis recientes

El RecentEmojiProvider se encarga de proporcionar emojis en la categoría "Usados recientemente". La biblioteca tiene un proveedor predeterminado de emojis reciente que satisface el caso de uso más común:

  • Todos los emojis seleccionados se guardan en el nivel de la app en las preferencias compartidas.
  • El selector muestra como máximo 3 filas de emojis seleccionados, sin duplicados, en orden cronológico inverso.

Si este comportamiento predeterminado es suficiente, no necesitas configurar el método setRecentEmojiProvider().

Cómo trabajar con EmojiCompat

Si la app tiene una instancia de EmojiCompat, se usará en el selector de emojis para renderizar tantos emojis como sea posible. Si inhabilitas EmojiCompat, el selector de emojis funcionará correctamente.

Cómo usar la biblioteca

Para usar la biblioteca, un desarrollador de apps debe hacer lo siguiente:

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

    dependencies {
      implementation "androidx.emoji2:emojipicker:$version"
    }
    
  2. Aumenta la vista del selector de emojis y, de manera opcional, configura emojiGridRows y emojiGridColumns según el tamaño deseado de cada celda de emojis.

    • Puedes dejarlas sin configurar. El valor predeterminado es 9 emojiGridColumns, las filas se calcularán en función de la altura de la vista superior y el emojiGridColumns
    • Puedes establecer emojiGridRows como un número de punto flotante para indicar que hay más emojis si te desplazas hacia abajo en XML.
     <androidx.emoji2.emojipicker.EmojiPickerView
      android:id="@+id/emoji_picker"
      android:layout_width="match_parent"
      android:layout_height="match_parent"
      app:emojiGridColumns="9" />
    

en el código

    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 quieres agregar los emojis seleccionados a un EditText, usa setOnEmojiPickedListener().

      emojiPickerView.setOnEmojiPickedListener {
          findViewById<EditText>(R.id.edit_text).append(it.emoji)
      }
    
  2. De manera opcional, configura RecentEmojiProvider. Consulta la app de ejemplo para ver una implementación de ejemplo.

  3. Si lo deseas, puedes personalizar los estilos. Crea tu propio estilo para anular los atributos comunes del tema y aplicar el estilo a EmojiPickerView. Por ejemplo, si anulas colorControlNormal, se cambiará el color del ícono de la categoría.

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

Consulta la app de ejemplo para ver una implementación de ejemplo.

Puedes encontrar una plataforma de API completa aquí.

App de ejemplo

En esta app de ejemplo, se muestran casos de uso básicos, además de las siguientes situaciones adicionales:

  • Se cambió el diseño de la vista porque se restablecieron emojiGridRows y emojiGridColumns.
  • Se anula el proveedor de emojis reciente para que se ordene por frecuencia.
  • Personalización de diseños.

Cambios en la API

Se actualizó la biblioteca del selector de emojis con las siguientes APIs nuevas:

  • La clase EmojiPickerView, que proporciona emojis actualizados en una vista vertical desplazable con un encabezado horizontal en el que se puede hacer clic
  • La capacidad de establecer la cantidad de columnas y filas en la cuadrícula del selector de emojis a través de los atributos XML emojiGridColumns y emojiGridRows o los métodos setEmojiGridColumns() y setEmojiGridRows()
  • La capacidad de establecer un objeto de escucha seleccionado de emojis a través del método setOnEmojiPickedListener(). El objeto de escucha recibirá una notificación cada vez que el usuario haga clic en un emoji.
  • La capacidad de proporcionar un proveedor de emojis reciente con el método setRecentEmojiProvider() Esta es una función opcional. Si no estableces el proveedor de emojis reciente, la biblioteca usará uno predeterminado. El comportamiento predeterminado se define de la siguiente manera:
    • Todos los emojis seleccionados se guardarán en el nivel de la app en las preferencias compartidas.
    • El selector mostrará, como máximo, 3 filas de emojis seleccionados, sin duplicados, en orden cronológico inverso.
  • La clase EmojiViewItem, que contiene el emoji que se muestra y sus variantes
  • La interfaz de RecentEmojiProvider, que se puede implementar para proporcionar una lista de emojis recientes El recentEmojiProvider se encarga de proporcionar emojis en la categoría "Usados recientemente".
  • La interfaz de RecentEmojiAsyncProvider, que se puede implementar para proporcionar una lista de emojis recientes El RecentEmojiAsyncProvider se encarga de proporcionar emojis en la categoría "Usados recientemente". Esta interfaz es equivalente a RecentEmojiProvider, que permite a los clientes anular el método getRecentEmojiListAsync() para proporcionar emojis recientes.
  • La clase RecentEmojiProviderAdapter, que es un adaptador para RecentEmojiAsyncProvider e implementa RecentEmojiProvider.

Versión 1.4.0-alpha01

22 de marzo de 2023

Lanzamiento de androidx.emoji2:emoji2-*:1.4.0-alpha01. La versión 1.4.0-alpha01 contiene estas confirmaciones.

Correcciones de errores

  • Corrige pruebas, inhabilita las pruebas de fallas y realiza limpiezas.

Versión 1.3

Versión 1.3.0

22 de marzo de 2023

Lanzamiento de androidx.emoji2:emoji2-*:1.3.0. La versión 1.3.0 contiene estas confirmaciones.

Cambios importantes desde 1.2.0

  • Esta versión permite que Compose Foundation 1.4.0 y versiones posteriores habiliten la integración de Emoji2.
  • También permite funciones para reemplazar EmojiSpans por código de dibujo personalizado, así como compatibilidad con las exclusiones de emojis definidas en Android.

Versión 1.3.0-rc01

8 de marzo de 2023

Lanzamiento de androidx.emoji2:emoji2-*:1.3.0-rc01. La versión 1.3.0-rc01 contiene estas confirmaciones.

Nuevas funciones

  • Esta versión es compatible con la integración de Compose en Emoji2.

Cambios en la API

  • Reemplaza los intervalos para el código de dibujo personalizado.
  • Se permiten las consultas sobre exclusiones del sistema.

Correcciones de errores

  • También se corrigió un error por el que no se aplicaban correctamente los intervalos de fondo detrás de EmojiSopans.

Versión 1.3.0-beta03

23 de febrero de 2023

Lanzamiento de androidx.emoji2:emoji2-bundled:1.3.0-beta03, androidx.emoji2:emoji2-views:1.3.0-beta03 y androidx.emoji2:emoji2-views-helper:1.3.0-beta03.

22 de febrero de 2023

Lanzamiento de androidx.emoji2:emoji2:1.3.0-beta03. La versión 1.3.0-beta03 contiene estas confirmaciones.

Nuevas funciones

  • Sin cambios. El objetivo de esta versión es preparar la integración de Compose.

Versión 1.3.0-beta02

8 de febrero de 2023

Lanzamiento de androidx.emoji2:emoji2-*:1.3.0-beta02. La versión 1.3.0-beta02 contiene estas confirmaciones.

Nuevas funciones

  • Esta versión es una estabilización para admitir la integración de Compose.

Versión 1.3.0-beta01

25 de enero de 2023

Lanzamiento de androidx.emoji2:emoji2-*:1.3.0-beta01. La versión 1.3.0-beta01 contiene estas confirmaciones.

Nuevas funciones

  • Se permiten las consultas sobre exclusiones del sistema.
  • Se reemplazaron los intervalos del código de dibujo personalizado.
  • También se corrigió un error por el que no se aplicaban correctamente los intervalos de fondo detrás de EmojiSopans.
  • Esta versión agrega las APIs necesarias para admitir EmojiCompat en Compose. En una versión futura, se admitirá la compatibilidad con Compose para emojis.

Versión 1.3.0-alpha01

11 de enero de 2023

Lanzamiento de androidx.emoji2:emoji2-*:1.3.0-alpha01. La versión 1.3.0-alpha01 contiene estas confirmaciones.

Nuevas APIs para interacciones de nivel inferior

  • Permiten las consultas sobre exclusiones del sistema.
  • Se reemplazaron los intervalos del código de dibujo personalizado.
  • También se corrigió un error por el que no se aplicaban correctamente los intervalos de fondo detrás de EmojiSopans.
  • Esta versión agrega las APIs necesarias para admitir EmojiCompat en Compose. En una versión futura, se admitirá la compatibilidad con Compose para emojis.

Cambios en la API

  • Se agregó la capacidad de consultar exclusiones del sistema a TypefaceEmojiRasterizer (I5653e).
  • Se agregó una nueva API de EmojiCompat.SpanFactory para reemplazar el comportamiento predeterminado de EmojiSpan por código personalizado de dibujo y tamaño (Ib69d9).
  • Se agregó EmojiCompat a Compose (I96f37, b/139326806).

Correcciones de errores

  • Emoji2 ahora dibujará correctamente los fondos desde BackgroundSpan (Ide6a8, b/230525134).
  • Se completaron las APIs de AppCompat para 1.5.0-beta01 (I2a43d, b/236866227).

Versión 1.2

Versión 1.2.0

10 de agosto de 2022

Lanzamiento de androidx.emoji2:emoji2-*:1.2.0. La versión 1.2.0 contiene estas confirmaciones.

Cambios importantes desde la versión 1.1.0

Esta es una versión con correcciones de errores. No se agregaron funciones ni APIs nuevas desde la versión 1.1.0.

Las apps que usan PrecomputedText o TextView.setText(char[]) deben priorizar la transmisión de esta versión.

Se corrigieron los siguientes errores:

  • Emoji2 agregará emojis a PrecomputedText y descartará el diseño de texto procesado previamente (I47d06, b/211231958).
  • Se corrigieron fallas del editor de portabilidad a versiones anteriores de Android P a EditText, que está configurado para usar Emoji2 (Ifd709, b/216891011).
  • Se corrigió la falla que se producía cuando Emoji2 cargaba la fuente y se usaba TextView.setText(char[]) (Id511e, b/206859724).

Versión 1.2.0-rc01

27 de julio de 2022

Lanzamiento de androidx.emoji2:emoji2-*:1.2.0-rc01. La versión 1.2.0-rc01 contiene estas confirmaciones.

  • Sin modificaciones desde la última versión beta.

Versión 1.2.0-beta01

13 de julio de 2022

Lanzamiento de androidx.emoji2:emoji2-*:1.2.0-beta01. La versión 1.2.0-beta01 contiene estas confirmaciones.

Nuevas funciones

  • No hay cambios desde la última versión (esta versión es compatible con la versión de AppCompat).

Versión 1.2.0-alpha04

20 de abril de 2022

Lanzamiento de androidx.emoji2:emoji2-*:1.2.0-alpha04. La versión 1.2.0-alpha04 contiene estas confirmaciones.

Nuevas funciones

  • No hay cambios en esta versión.

Versión 1.2.0-alpha03

6 de abril de 2022

Lanzamiento de androidx.emoji2:emoji2-*:1.2.0-alpha03. La versión 1.2.0-alpha03 contiene estas confirmaciones.

Nuevas funciones

  • No hay cambios desde la última versión (esta versión es compatible con la versión de AppCompat).

Versión 1.2.0-alpha02

23 de marzo de 2022

Lanzamiento de androidx.emoji2:emoji2-*:1.2.0-alpha02. La Versión 1.2.0-alpha02 contiene estas confirmaciones.

Correcciones de errores

  • Emoji2 agregará emojis a PrecomputedText y descartará el diseño de texto procesado previamente (I47d06, b/211231958).
  • Se corrigieron fallas del editor de portabilidad a versiones anteriores de Android P a EditText, que está configurado para usar Emoji2 (Ifd709, b/216891011).
  • Se corrigió la falla que se producía cuando Emoji2 cargaba la fuente y se usaba TextView.setText(char[]) (Id511e, b/206859724).

Versión 1.2.0-alpha01

23 de febrero de 2022

Lanzamiento de androidx.emoji2:emoji2-*:1.2.0-alpha01. La versión 1.2.0-alpha01 contiene estas confirmaciones.

Sin cambios desde 1.1.0.

1.1

Versión 1.1.0

23 de febrero de 2022

Lanzamiento de androidx.emoji2:emoji2-*:1.1.0. La versión 1.1.0 contiene estas confirmaciones.

Cambios importantes desde 1.0.0

  • emoji2-bundled contiene fuente de emoji 14.
  • La nueva API de getEmojiMatch muestra información precisa de los teclados para decidir cómo se mostrará un emoji en presencia de una fuente de EmojiCompat que se encuentra detrás de la fuente del sistema.
  • Se corrigió un error de NumberKeyListener, por lo que la entrada de dígitos ya filtra caracteres correctamente.

Versión 1.1.0-rc01

9 de febrero de 2022

Lanzamiento de androidx.emoji2:emoji2-*:1.1.0-rc01. La versión 1.1.0-rc01 contiene estas confirmaciones.

Nuevas funciones

No hay cambios desde la versión beta.

Nuevas funciones en comparación con Emoji2 1.0.0:

  • emoji2-bundled contiene la fuente de emojis 14.
  • La nueva API de getEmojiMatch muestra información precisa de los teclados para decidir cómo se mostrará un emoji en presencia de una fuente de EmojiCompat que se encuentra detrás de la fuente del sistema.
  • Se corrigió un error de NumberKeyListener, por lo que la entrada de dígitos ya filtra caracteres correctamente.

Versión 1.1.0-beta01

26 de enero de 2022

Lanzamiento de androidx.emoji2:emoji2-*:1.1.0-beta01. La versión 1.1.0-beta01 contiene estas confirmaciones.

Correcciones de errores

  • Lanzamiento de androidx-emoji2 beta01. No hay cambios desde alpha01 (Ic61d9).

Versión 1.1.0-alpha01

15 de diciembre de 2021

Lanzamiento de androidx.emoji2:emoji2-*:1.1.0-alpha01. La versión 1.1.0-alpha01 contiene estas confirmaciones.

Nuevas funciones

  • emoji2-bundled contiene la fuente de emojis 14.
  • La nueva API de getEmojiMatch muestra información precisa de los teclados para decidir cómo se mostrará un emoji en presencia de una fuente de EmojiCompat que se encuentra detrás de la fuente del sistema.
  • Se corrigió un error de NumberKeyListener, por lo que la entrada de dígitos ya filtra caracteres correctamente.

Cambios en la API

  • Se agregó la nueva API de getEmojiMatch para permitir que los teclados busquen con mayor precisión el comportamiento de coincidencia de emojis en EmojiCompat.
  • hasEmojiGlyph dejó de estar disponible, ya que el valor booleano que mostraba era inexacto cuando se probaba con una fuente anterior a la fuente de emojis de la plataforma. Se reemplazó con getEmojiMatch (Ie693d).

Correcciones de errores

  • Emoji2 no unirá instancias de NumberKeyListener, lo que permitirá que TextView establezca la configuración regional.
  • Appcompat no unirá las instancias de NumberKeyListener que se pasen a setKeyListener, lo que permite que TextView establezca correctamente la configuración regional en NumberKeyListeners (Ibf113, b/207119921).

1.0

Versión 1.0.1

15 de diciembre de 2021

Lanzamiento de androidx.emoji2:emoji2-*:1.0.1. La versión 1.0.1 contiene estas confirmaciones.

Correcciones de errores

  • Emoji2 no unirá instancias de NumberKeyListener, lo que permitirá que TextView establezca la configuración regional.
  • Appcompat no unirá las instancias de NumberKeyListener que se pasen a setKeyListener, lo que permite que TextView establezca correctamente la configuración regional en NumberKeyListeners (Ibf113, b/207119921).

Versión 1.0.0

17 de noviembre de 2021

Lanzamiento de androidx.emoji2:emoji2-*:1.0.0. La versión 1.0.0 contiene estas confirmaciones.

Funciones principales de la versión 1.0.0

androidx.emoji2 reemplaza a androidx.emoji con funciones adicionales como las siguientes:

  • Reducción del tamaño de los APKs en comparación a androidx.emoji
  • Configuración automática
  • Incorporación como dependencia a appcompat 1.4

Para obtener más información sobre androidx.emoji2, consulta Compatibilidad con emojis modernos y nuestra charla Displaying ALL the emojis in your app Android Dev (Cómo mostrar TODOS los emojis en la app) de Android Dev Summit.

Versión 1.0.0-rc01

27 de octubre de 2021

Lanzamiento de androidx.emoji2:emoji2-*:1.0.0-rc01. La versión 1.0.0-rc01 contiene estas confirmaciones.

  • No hay cambios desde la versión beta02.

Emoji2 versión 1.0.0-beta01

15 de septiembre de 2021

Lanzamiento de androidx.emoji2:emoji2-*:1.0.0-beta01. La Versión 1.0.0-beta01 contiene estas confirmaciones.

Cambios en la API

  • Se agregó setLoadingExecutor a FontRequestEmojiCompatConfig, que reemplaza la API anterior de setHandler. Esta API permite que las apps configuren FontRequestEmojiCompatConfig para usar cualquier ejecutor en segundo plano.

    Esta modificación es un cambio rotundo de androidx.emoji:emoji, por lo que se retiene a setHandler como API obsoleta y no operativa para ayudar en la migración (I6cd48).

  • EmojiCompat configura correctamente EditorInfo.extras en Android 11.

    • Los widgets personalizados que usan IME y no crean subclases de EditText pueden llamar a EmojiCompat.updateEditorInfo para informar al IME que son compatibles con el procesamiento de EmojiCompat (I1ea9b).

Correcciones de errores

  • Se corrigió DefaultEmojiCompatConfig para buscar correctamente el proveedor de fuentes de emojis en los niveles de API 19 y 28. Esto soluciona un error que se introdujo en Emoji2 1.0.0-alpha01 (Ib33d8, b/197906329).

Versión 1.0.0-alpha03

30 de junio de 2021

Lanzamiento de androidx.emoji2:emoji2-*:1.0.0-alpha03. La versión 1.0.0-alpha03 contiene estas confirmaciones.

Nuevas funciones

Esta es una versión de corrección de errores y estabilización.

  1. Ahora, EmojiEditTextHelper permite que se pase null como KeyListener. De esta manera, se habilita el comportamiento de la plataforma que permite que los valores nulos se apliquen al emoji compatible con las implementaciones de EditText.
  2. Cuando se usa EmojiCompatInitializer, se mejora el retraso del primer inicio para que se active después de que se reanuda la primera actividad. De esta manera, se permite que el inicio de una app se realice sin problemas y se evita cargar la fuente para los inicios de la app que nunca muestran una IU. Después de un retraso breve, EmojiCompat creará un subproceso para cargar la fuente del emoji.
  • Se agregó una dependencia nueva en androidx.lifecycle:lifecycle-process desde androidx.emoji2:emoji2 para implementar el retraso, lo que tendrá un impacto insignificante en el tamaño del APK para las apps que ya incluyen un ciclo de vida (como las que tienen appcompat).

Cambios en la API

  • Se permite KeyListener nulo en AppCompatEditText. Esto revierte la anotación no nula que se agregó a AppCompatEditText en la versión 1.4.0-alpha01 y restablece el comportamiento anterior cuando se pasa un valor nulo (I21482, b/189559345).

Correcciones de errores

  • Se cambió EmojiCompatInitializer para retrasar la carga de la fuente hasta 500 ms después del primer elemento Activity.onResume. De esta manera, una actividad puede realizar Application.onCreate y Activity.onCreate sin problemas, al mismo tiempo que garantiza que la fuente del emoji se cargue poco después del inicio de la app (I4bff7).

Versión 1.0.0-alpha02

2 de junio de 2021

Lanzamiento de androidx.emoji2:emoji2:1.0.0-alpha02, androidx.emoji2:emoji2-views:1.0.0-alpha02 y androidx.emoji2:emoji2-views-helper:1.0.0-alpha02. La versión 1.0.0-alpha02 contiene estas confirmaciones.

Cambios en la API

  • Se cambió el nombre del paquete en emoji2-views-helper por androidx.emoji2.viewsintegration Este es un cambio rotundo para AppCompat 1.4.0-alpha01, y las apps deben asegurarse de que la dependencia de AppCompat esté actualizada para usar la nueva versión de emoji2 (Ie8397).

Versión 1.0.0-alpha01

18 de mayo de 2021

Lanzamiento de androidx.emoji2:emoji2:1.0.0-alpha01, androidx.emoji2:emoji2-views:1.0.0-alpha01 y androidx.emoji2:emoji2-views-helper:1.0.0-alpha01. La versión 1.0.0-alpha01 contiene estas confirmaciones.

Funciones de esta versión inicial

Se recomienda la integración de EmojiCompat en todas las apps para admitir emojis modernos de API19. Todo el contenido de tu app generado por el usuario contiene 🎉.

EmojiCompat pasó de los artefactos androidx.emoji a los nuevos androidx.emoji2, ahora en alpha01. Los artefactos nuevos reemplazan a la versión anterior.

Se agrega emoji2 como dependencia a AppCompat a partir de AppCompat 1.4.0-alpha01 y está habilitada de forma predeterminada para las vistas de AppCompat.

El artefacto emoji2 incorpora una nueva configuración automática a través de la biblioteca androidx.startup. Ya no tienes que escribir ningún código 👨🏽‍💻 para que se muestre 🐻‍❄️.

Cambios en Emoji2 en comparación con emoji

  • Se agregó la nueva configuración automática EmojiCompatInitializer a través de androidx.startup.
  • Se agregó una nueva configuración predeterminada que usa la ubicación del servicio para encontrar un proveedor de fuentes descargables en DefaultEmojiCompatConfiguration.
  • Las clases pasaron del paquete androidx.emoji a androidx.emoji2.
  • Se dividió EmojiTextView y las vistas relacionadas en un artefacto emoji2-views independiente. Solo debe usarse si la app no usa appcompat.
  • Se extrajeron asistentes para integrar EmojiCompat en vistas personalizadas en un artefacto emoji2-views-helper independiente.
  • Se agregaron anotaciones de nulabilidad.
  • Ahora, se pueden usar los ayudantes en emoji2-views-helper aunque no se inicialice EmojiCompat (antes arrojaban una excepción).

¿Qué dependencia deberías agregar?

  • Las apps con AppCompat deberían actualizarse a la versión Appcompat 1.4.0-alpha01 o versiones posteriores.
  • Las apps sin AppCompat que usan TextView y EditText desde la plataforma deben usar EmojiTextView y las clases relacionadas de emoji2-views.

Cómo brindar asistencia en vistas personalizadas

  • Las apps con AppCompat deberían extender AppCompatTextView, AppCompatButton, etc. en lugar de TextView, y así sucesivamente.
  • Las apps sin AppCompat deben agregar la dependencia a androidx.emoji2:emoji2-views-helper y usar asistentes para integrarla con subclases TextView o EditText personalizadas.

Cómo configurar la inicialización automática

  • Las apps pueden inhabilitar la inicialización automática si se agrega al manifiesto:

     <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>
    
  • Se inhabilita la configuración automática y, luego, puedes pasar una configuración personalizada a EmojiCompat.init. La configuración predeterminada del sistema se puede recuperar de DefaultEmojiCompatConfig.create(context) para realizar más configuraciones antes de pasar a EmojiCompat.init.