Emoji2

Mostre emojis em dispositivos atuais e mais antigos.
Atualização mais recente Versão estável Versão candidata a lançamento Versão Beta Versão Alfa
2 de julho de 2025 1.5.0 - 1.6.0-beta01 -

Declarar dependências

Para adicionar uma dependência à Emoji2, é preciso adicionar o repositório Maven do Google ao seu projeto. Leia Repositório Maven do Google para ver mais informações.

Adicione as dependências dos artefatos necessários no arquivo build.gradle para seu app ou módulo:

Groovy

dependencies {
    def emoji2_version = "1.5.0"

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

Kotlin

dependencies {
    val emoji2_version = "1.5.0"

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

Para ver mais informações sobre dependências, consulte Adicionar dependências de build.

Feedback

Seu feedback ajuda a melhorar o Jetpack. Avise se você descobrir novos problemas ou tiver ideias para melhorar esta biblioteca. Consulte os problemas conhecidos nesta biblioteca antes de criar um novo. Adicione seu voto a um problema clicando no botão de estrela.

Criar novo problema

Consulte a documentação do Issue Tracker para saber mais.

Emoji2 Emojipicker: versão 1.0

Versão 1.5.0

4 de setembro de 2024

Lançamento de androidx.emoji2:emoji2-*:1.5.0. A versão 1.5.0 contém estas confirmações.

Mudanças importantes desde a versão 1.4.0

  • Suporte para emoji 15.1 e interface do seletor bidirecional de emojis. Um simples clique no seletor bidirecional permite que os usuários alternem entre as versões de emojis voltadas para a esquerda e para a direita.
  • Suporte para seletor de emojis com vários tons de pele. Ao pressionar e manter pressionados os emojis de casal, um seletor de emojis com várias pessoas é exibido para o estado zero. Quando o usuário toca na metade esquerda de um emoji, a prévia no canto inferior direito é atualizada de acordo. Quando o usuário seleciona as duas metades de um emoji, a prévia no canto inferior direito mostra o emoji inteiro, e o usuário pode inserir.

Versão 1.0.0-alpha03

8 de março de 2023

Lançamento de androidx.emoji2:emoji2-emojipicker:1.0.0-alpha03. A versão 1.0.0-alpha03 contém estas confirmações.

Correções de bugs

  • Recursos desnecessários foram removidos e o tamanho da biblioteca foi reduzido em aproximadamente 0,3 M.

Versão 1.0.0-alpha02

22 de fevereiro de 2023

Lançamento de androidx.emoji2:emoji2-emojipicker:1.0.0-alpha02. A versão 1.0.0-alpha02 contém estas confirmações.

Mudanças na API

  • Adição de uma nova API para que clientes Java possam fornecer emojis recentes. (I39d10).

Correções de bugs

  • Atualização dos recursos de emoji para oferecer suporte ao emoji 15.0 (Ib4eb3)
  • Ao escolher um emoji na janela pop-up, atualize todos os emojis idênticos para o emoji escolhido, exceto a linha de emojis recentes. Também anuncie o emoji ao clicar. (I892c6).
  • Aguarde o carregamento do emojicompat antes de mostrar o EmojiPickerView. (I29e03).

Versão 1.0.0-alpha01

25 de janeiro de 2023

Lançamento de androidx.emoji2:emoji2-emojipicker:1.0.0-alpha01. A versão 1.0.0-alpha01 contém estas confirmações.

Novos recursos

  • Introduzimos um seletor de emojis que oferece uma experiência de usuário consistente com os emojis mais recentes em dispositivos e apps OEM do SO Android. Ela oferece suporte aos emojis mais recentes e uma interface do seletor de emojis, incluindo variantes de tom de pele e suporte à compatibilidade de emojis.

Mudanças na API

  • Introduzida a classe EmojiPickerView, que fornece emojis atualizados em uma visualização rolável vertical com um cabeçalho horizontal clicável.
  • As colunas da grade do seletor de emojis podem ser definidas pelo atributo XML emojiGridColumns ou pela função setEmojiGridColumns().
  • As linhas da grade do seletor de emojis podem ser definidas pelo atributo XML emojiGridRows ou pela função setEmojiGridRows().
  • O listener de emoji escolhido pode ser definido usando setOnEmojiPickedListener(), e ele será notificado sempre que o usuário clicar em um emoji.
  • O provedor de emojis recentes pode ser fornecido com setRecentEmojiProvider(). Essa é uma função opcional. Se o provedor de emojis recentes não estiver definido, a biblioteca vai usar um padrão. O comportamento padrão é definido da seguinte forma: 1) todos os emojis selecionados são salvos no nível de cada app em preferências compartilhadas. 2) O seletor vai mostrar no máximo três linhas de emojis selecionados, sem duplicações e em ordem cronológica inversa.
  • Introduzida a classe EmojiViewItem, que contém o emoji mostrado e as variantes dele.
  • Introdução da interface RecentEmojiProvider, que pode ser implementada para fornecer uma lista de emojis usados recentemente. O recentEmojiProvider é responsável por fornecer emojis na categoria "Usados recentemente".

Versão 1.6

Versão 1.6.0-beta01

2 de julho de 2025

Lançamento de androidx.emoji2:emoji2-*:1.6.0-beta01. A versão 1.6.0-beta01 contém estas confirmações.

Novos recursos

  • Suporte a atualizações do Emoji 16.0
  • Adicione o sufixo "emoji" à descrição do conteúdo para garantir um comportamento de acessibilidade consistente em todos os apps de seleção de emojis.

Versão 1.6.0-alpha01

4 de junho de 2025

Lançamento de androidx.emoji2:emoji2-*:1.6.0-alpha01. A versão 1.6.0-alpha01 contém estas confirmações.

Novos recursos

  • Atualizações de dados do Emoji 16.0 (Ifc878)
  • Adicionar o sufixo "emoji" à descrição do conteúdo

Correções de bugs

  • Agora, essa biblioteca usa anotações de nulidade do JSpecify, que são de uso de tipo. Os desenvolvedores Kotlin precisam usar os seguintes argumentos do compilador para garantir o uso correto: -Xjspecify-annotations=strict, -Xtype-enhancement-improvements-strict-mode (Id07e7, b/326456246).

Versão 1.5

Versão 1.5.0

4 de setembro de 2024

Lançamento de androidx.emoji2:emoji2-*:1.5.0. A versão 1.5.0 contém estas confirmações.

Mudanças importantes desde a versão 1.4.0

  • Suporte para emoji 15.1 e interface do seletor bidirecional de emojis. Um simples clique no seletor bidirecional permite que os usuários alternem entre as versões de emojis voltadas para a esquerda e para a direita.
  • Suporte para seletor de emojis com vários tons de pele. Ao pressionar e manter pressionados os emojis de casal, um seletor de emojis com várias pessoas é exibido para o estado zero. Quando o usuário toca na metade esquerda de um emoji, a prévia no canto inferior direito é atualizada de acordo. Quando o usuário seleciona as duas metades de um emoji, a prévia no canto inferior direito mostra o emoji inteiro, e o usuário pode inserir.

Versão 1.5.0-rc01

21 de agosto de 2024

Lançamento de androidx.emoji2:emoji2-*:1.5.0-rc01. A versão 1.5.0-rc01 contém estas confirmações.

Novos recursos

  • Suporte para emoji 15.1 e interface do seletor bidirecional de emojis. Um simples clique no seletor bidirecional permite que os usuários alternem entre as versões de emojis voltadas para a esquerda e para a direita.
  • Suporte para seletor de emojis com vários tons de pele. Ao pressionar e manter pressionados os emojis de casal, um seletor de emojis com várias pessoas é exibido para o estado zero. Quando o usuário toca na metade esquerda de um emoji, a prévia no canto inferior direito é atualizada de acordo. Quando o usuário seleciona as duas metades de um emoji, a prévia mostra o emoji inteiro, e o usuário pode inserir.

Correções de bugs

  • Removemos o esboço manual do acesso a novas APIs da plataforma, já que isso acontece automaticamente pela modelagem de API ao usar o R8 com o AGP 7.3 ou mais recente (por exemplo, a versão 3.3 do R8) e para todos os builds ao usar o AGP 8.1 ou mais recente (por exemplo, a versão 8.1 do D8). Recomendamos que os clientes que não usam o AGP atualizem para a versão 8.1 ou mais recente do D8. Veja mais detalhes neste artigo. (If6b4c, b/345472586)
  • A seleção de guias e o indicador do EmojiPickerView são atualizados com um clique de atraso. (146b02, b/288261054).
  • A seleção e o indicador de guias do EmojiPickerView estão corrompidos. (5e1f14, b/273883688)

Versão 1.5.0-beta01

10 de julho de 2024

Lançamento de androidx.emoji2:emoji2-*:1.5.0-beta01. A versão 1.5.0-beta01 contém estas confirmações.

Novos recursos

  • Suporte para emoji 15.1 e interface bidirecional de seleção de emojis.
  • Redesenho da seleção de vários tons de pele.

Correções de bugs

  • A seleção de guias e o indicador do EmojiPickerView são atualizados com um clique de atraso. (146b02, b/288261054).
  • A seleção e o indicador de guias do EmojiPickerView estão corrompidos. (5e1f14, b/273883688)

Versão 1.5.0-alpha01

13 de dezembro de 2023

Lançamento de androidx.emoji2:emoji2-*:1.5.0-alpha01. A versão 1.5.0-alpha01 contém estas confirmações.

Novos recursos

  • O emoji2-bundled contém uma fonte de emoji atualizada para oferecer suporte ao Emoji 15.1.

Mudanças na API

  • Adicione executores para controlar a linha de execução de callback para InitCallback. (I32b67)
  • Agora, o BundledEmojiCompatConfig usa um executor para controlar as linhas de execução de carregamento. (I00e81).

Versão 1.4

Versão 1.4.0

9 de agosto de 2023

Lançamento de androidx.emoji2:emoji2-*:1.4.0. A versão 1.4.0 contém estas confirmações.

Mudanças importantes desde a versão 1.3.0

Versão 1.4.0-rc01

26 de julho de 2023

Lançamento de androidx.emoji2:emoji2-*:1.4.0-rc01. A versão 1.4.0-rc01 contém estas confirmações.

Mudanças na API

  • Apresentar a lista registerSource (Iae92f)
  • Feedback do Conselho de APIs: TransitionManager.seekTo() foi renomeado como createSeekController(). Ajuste o comentário anterior sobre a adição de TransitionManager.seekTo() a TransitionManager.createSeekController(). (Idbeb1)
  • Adição de ExerciseRouteResult, que não é a superclasse de Data, NoData e ConsentRequiredStates. Adicionada ExerciseRoute como uma classe independente que contém dados de local para a rota. (I22eed)
  • Introduzido PagerLayoutInfo com informações coletadas após uma transmissão de medição no Pager. Também foi introduzido o PageInfo, as informações sobre uma única página medida no Pager. (Iad003, b/283098900).

Correções de bugs

  • Atualizamos as cores de Button, IconButton e TextButton de acordo com o design do Material3. A função semântica de Button, IconButton e TextButton agora pode ser substituída usando Modifier.semantics. (Ib2495).
  • Corrigimos a seleção de guias e as atualizações de indicadores do EmojiPickerView com um clique de atraso. (I4db04).
  • FileNotFoundException ao mostrar o seletor de emojis (I353e4)
  • Capturar o WindowManager.BadTokenException ao usar EmojiPickerView (I0a144)

Versão 1.4.0-beta05

7 de junho de 2023

Lançamento de androidx.emoji2:emoji2-*:1.4.0-beta05. A versão 1.4.0-beta05 contém estas confirmações.

Correções de bugs

  • Correção de um bug introduzido na versão 1.3 que fazia com que MetricsAffectingSpans, como RelativeSizeSpan, fossem aplicados duas vezes. Uma vez durante o layout do texto e outra dentro de EmojiSpan.draw. O resultado foi um desenho dimensionado incorretamente, visível se algum dos parâmetros de tamanho do texto foi alterado pelo intervalo. (b/283208650)

Versão 1.4.0-beta04

24 de maio de 2023

Lançamento de androidx.emoji2:emoji2-*:1.4.0-beta04. A versão 1.4.0-beta04 contém estas confirmações.

Esta versão corrige um bug presente desde a versão 1.0 em que as visualizações com um manipulador não principal geravam uma exceção ao tentar atualizar os intervalos de emoji após a conclusão do carregamento da fonte. Não há solução alternativa. Se você for afetado por esse bug, faça upgrade para essa versão ou uma mais recente.

Correções de bugs

  • Os callbacks de inicialização do EmojiCompat agora vão usar o manipulador de cada visualização, respeitando as visualizações que não estão na linha de execução principal. (Iccbcf).

Versão 1.4.0-beta03

10 de maio de 2023

Lançamento de androidx.emoji2:emoji2-*:1.4.0-beta03. A versão 1.4.0-beta03 contém estas confirmações.

Correções de bugs

  • Correção da falha na visualização do pop-up aninhado do seletor de emojis. (0acc8e)
  • Gerar exceções antecipadas no EmojiCompat getEmojiStart/getEmojiEnd. (26177f)

Versão 1.4.0-beta02

19 de abril de 2023

Lançamento de androidx.emoji2:emoji2-*:1.4.0-beta02. A versão 1.4.0-beta02 contém estas confirmações.

Correções de bugs

  • Atualizar arquivos de valor de referência do lint (Iaa212)

Versão 1.4.0-beta01

5 de abril de 2023

Lançamento de androidx.emoji2:emoji2-*:1.4.0-beta01. A versão 1.4.0-beta01 contém estas confirmações.

Novos recursos

androidx.emoji2:emoji2-emojipicker

O seletor de emojis é uma solução de interface que oferece uma aparência moderna, emojis atualizados e facilidade de uso. Os usuários podem navegar e selecionar emojis e variantes ou escolher entre os usados recentemente. Com essa biblioteca, os apps de diferentes OEMs podem oferecer uma experiência de emoji inclusiva e unificada aos usuários sem que os desenvolvedores precisem criar e manter o próprio seletor de emoji do zero.

Emojis atualizados

Novos emojis são lançados todos os anos, e vamos incluí-los seletivamente no seletor de emojis. Para garantir a compatibilidade retroativa, fazemos uma verificação interna precisa da capacidade de renderização de emojis para eliminar o tofu. Isso garante que a biblioteca seja compatível com várias versões e dispositivos Android.

Variantes fixas

Ao pressionar e manter pressionado um emoji, um menu de variantes vai aparecer, como diferentes gêneros ou tons de pele. A variante escolhida será salva no seletor de emojis, e a última selecionada será usada no painel principal. Com esse recurso, os usuários podem enviar as variantes de emoji preferidas com apenas um toque.

Emojis usados recentemente

O RecentEmojiProvider é responsável por fornecer emojis na categoria "Usados recentemente". A biblioteca tem um provedor de emojis recentes padrão que atende ao caso de uso mais comum:

  • Todos os emojis selecionados são salvos por app nas preferências compartilhadas.
  • O seletor mostra no máximo três linhas de emojis selecionados, sem duplicações e em ordem cronológica inversa.

Se esse comportamento padrão for suficiente, não será necessário definir o método setRecentEmojiProvider().

Trabalhar com a EmojiCompat

Se o app tiver uma instância EmojiCompat, ela será usada no seletor de emojis para renderizar o máximo possível de emojis. Se EmojiCompat estiver desativado, o seletor de emojis ainda vai funcionar normalmente.

Como usar a biblioteca

Para usar a biblioteca, um desenvolvedor de apps precisa:

  1. Importe androidx.emoji2:emojipicker:$version em build.gradle.

    dependencies {
      implementation "androidx.emoji2:emojipicker:$version"
    }
    
  2. Infla a visualização do seletor de emojis e, opcionalmente, define emojiGridRows e emojiGridColumns com base no tamanho desejado de cada célula de emoji.

    • Você pode deixar esses valores indefinidos. O padrão é 9 emojiGridColumns. As linhas serão calculadas com base na altura da visualização principal e em emojiGridColumns.
    • Você pode definir emojiGridRows como um ponto flutuante para indicar que há mais emojis se rolar para baixo em XML.
     <androidx.emoji2.emojipicker.EmojiPickerView
      android:id="@+id/emoji_picker"
      android:layout_width="match_parent"
      android:layout_height="match_parent"
      app:emojiGridColumns="9" />
    

no 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. Supondo que você queira anexar os emojis selecionados a um EditText, use setOnEmojiPickedListener()

      emojiPickerView.setOnEmojiPickedListener {
          findViewById<EditText>(R.id.edit_text).append(it.emoji)
      }
    
  2. Defina RecentEmojiProvider (opcional). Consulte o app de exemplo para ver um exemplo de implementação.

  3. Se quiser, personalize os estilos. Crie seu próprio estilo para substituir atributos de tema comuns e aplique-o à EmojiPickerView. Por exemplo, substituir colorControlNormal vai mudar a cor do ícone da 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" />
    

Confira um exemplo de implementação no app de amostra.

Confira uma plataforma de API completa aqui.

App de exemplo

Este app de exemplo demonstra casos de uso básicos e os seguintes cenários adicionais:

  • O layout da visualização foi refeito porque emojiGridRows e emojiGridColumns foram redefinidos.
  • O provedor de emojis recentes é substituído para classificar por frequência.
  • Personalização de estilo.

Mudanças na API

A biblioteca do seletor de emojis foi atualizada com as seguintes novas APIs:

  • A classe EmojiPickerView, que fornece emojis atualizados em uma visualização rolável vertical com um cabeçalho horizontal clicável.
  • A capacidade de definir o número de colunas e linhas na grade do seletor de emojis usando os atributos XML emojiGridColumns e emojiGridRows ou os métodos setEmojiGridColumns() e setEmojiGridRows().
  • A capacidade de definir um listener de emoji escolhido usando o método setOnEmojiPickedListener(). O listener será notificado sempre que o usuário clicar em um emoji.
  • A capacidade de fornecer um provedor de emojis recentes usando o método setRecentEmojiProvider(). Essa é uma função opcional. Se o provedor de emojis recentes não estiver definido, a biblioteca vai usar um provedor padrão. O comportamento padrão é definido da seguinte forma:
    • Todos os emojis selecionados serão salvos por app nas preferências compartilhadas.
    • O seletor vai mostrar no máximo três linhas de emojis selecionados, sem duplicações e em ordem cronológica inversa.
  • A classe EmojiViewItem, que contém o emoji mostrado e as variantes dele.
  • A interface RecentEmojiProvider, que pode ser implementada para fornecer uma lista de emojis recentes. O recentEmojiProvider é responsável por fornecer emojis na categoria "Usados recentemente".
  • A interface RecentEmojiAsyncProvider, que pode ser implementada para fornecer uma lista de emojis recentes. O RecentEmojiAsyncProvider é responsável por fornecer emojis na categoria "Usados recentemente". Essa interface é equivalente a RecentEmojiProvider, que permite que os clientes substituam o método getRecentEmojiListAsync() para fornecer emojis recentes.
  • A classe RecentEmojiProviderAdapter, que é um adaptador para o RecentEmojiAsyncProvider e implementa RecentEmojiProvider.

Versão 1.4.0-alpha01

22 de março de 2023

Lançamento de androidx.emoji2:emoji2-*:1.4.0-alpha01. A versão 1.4.0-alpha01 contém estas confirmações.

Correções de bugs

  • Correção de testes, desativação de testes instáveis e limpeza.

Versão 1.3

Versão 1.3.0

22 de março de 2023

Lançamento de androidx.emoji2:emoji2-*:1.3.0. A versão 1.3.0 contém estas confirmações.

Mudanças importantes desde a versão 1.2.0

  • Com essa versão, o Compose Foundation 1.4.0 e versões mais recentes podem ativar a integração do emoji2.
  • Ele também permite recursos para substituir EmojiSpans por um código de desenho personalizado, além de compatibilidade com exclusões de emoji definidas no Android.

Versão 1.3.0-rc01

8 de março de 2023

Lançamento de androidx.emoji2:emoji2-*:1.3.0-rc01. A versão 1.3.0-rc01 contém estas confirmações.

Novos recursos

  • Esta versão é para oferecer suporte à integração de composição do emoji2.

Mudanças na API

  • Substitua intervalos por código de desenho personalizado.
  • Consultar exclusões do sistema.

Correções de bugs

  • Além disso, corrigimos um bug em que os intervalos de segundo plano não eram aplicados corretamente atrás de EmojiSopans.

Versão 1.3.0-beta03

23 de fevereiro de 2023

Lançamento de 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.

22 de fevereiro de 2023

Lançamento de androidx.emoji2:emoji2:1.3.0-beta03. A versão 1.3.0-beta03 contém estas confirmações.

Novos recursos

  • Sem alterações. Esta versão é para preparar a integração do Compose.

Versão 1.3.0-beta02

8 de fevereiro de 2023

Lançamento de androidx.emoji2:emoji2-*:1.3.0-beta02. A versão 1.3.0-beta02 contém estas confirmações.

Novos recursos

  • Esta versão é de estabilização para oferecer suporte à integração do Compose.

Versão 1.3.0-beta01

25 de janeiro de 2023

Lançamento de androidx.emoji2:emoji2-*:1.3.0-beta01. A versão 1.3.0-beta01 contém estas confirmações.

Novos recursos

  • Consultar exclusões do sistema.
  • Substituir os intervalos pelo código de desenho personalizado.
  • Além disso, corrigimos um bug em que os intervalos de segundo plano não eram aplicados corretamente atrás de EmojiSopans.
  • Esta versão adiciona as APIs necessárias para oferecer suporte a EmojiCompat no Compose. Aguarde o suporte do Compose para compatibilidade com emojis em uma versão futura.

Versão 1.3.0-alpha01

11 de janeiro de 2023

Lançamento de androidx.emoji2:emoji2-*:1.3.0-alpha01. A versão 1.3.0-alpha01 contém estas confirmações.

Novas APIs para interações de baixo nível

  • Consultar exclusões do sistema
  • Substituir os intervalos do código de desenho personalizado
  • Além disso, corrigimos um bug em que os intervalos de segundo plano não eram aplicados corretamente atrás de EmojiSopans.
  • Esta versão adiciona as APIs necessárias para oferecer suporte a EmojiCompat no Compose. Aguarde o suporte do Compose para compatibilidade com emojis em uma versão futura.

Mudanças na API

  • Adicionamos a capacidade de consultar exclusões do sistema em TypefaceEmojiRasterizer. (I5653e).
  • Adição da nova API EmojiCompat.SpanFactory para substituir o comportamento padrão de EmojiSpan por um código de desenho e dimensionamento personalizado. (Ib69d9).
  • Adição de EmojiCompat ao Compose (I96f37, b/139326806).

Correções de bugs

  • A Emoji2 agora vai desenhar corretamente os planos de fundo de BackgroundSpan. (Ide6a8, b/230525134).
  • As APIs AppCompat foram finalizadas para a versão 1.5.0-beta01 (I2a43d, b/236866227).

Versão 1.2

Versão 1.2.0

10 de agosto de 2022

Lançamento de androidx.emoji2:emoji2-*:1.2.0. A versão 1.2.0 contém estas confirmações.

Mudanças importantes desde a 1.1.0

Esta é uma versão de correção de bugs. Nenhum novo recurso ou API foi adicionado desde a versão 1.1.0.

No entanto, os apps que usam PrecomputedText ou TextView.setText(char[]) precisam priorizar a atualização para essa versão.

Os seguintes bugs foram corrigidos:

  • O Emoji2 adiciona emojis ao PrecomputedText descartando o layout de texto pré-calculado. (I47d06, b/211231958).
  • Correção de falha do editor de backport do Android P para EditText, que está configurado para usar o emoji2. (Ifd709, b/216891011).
  • Correção de falha quando o emoji2 carrega a fonte e o TextView.setText(char[]) é usado. (Id511e, b/206859724).

Versão 1.2.0-rc01

27 de julho de 2022

Lançamento de androidx.emoji2:emoji2-*:1.2.0-rc01. A versão 1.2.0-rc01 contém estas confirmações.

  • Nenhuma mudança desde a última versão Beta.

Versão 1.2.0-beta01

13 de julho de 2022

Lançamento de androidx.emoji2:emoji2-*:1.2.0-beta01. A versão 1.2.0-beta01 contém estas confirmações.

Novos recursos

  • Nenhuma mudança desde a última versão. Esta versão é para oferecer suporte à versão do AppCompat.

Versão 1.2.0-alpha04

20 de abril de 2022

Lançamento de androidx.emoji2:emoji2-*:1.2.0-alpha04. A versão 1.2.0-alpha04 contém estas confirmações.

Novos recursos

  • Nenhuma mudança nesta versão.

Versão 1.2.0-alpha03

6 de abril de 2022

Lançamento de androidx.emoji2:emoji2-*:1.2.0-alpha03. A versão 1.2.0-alpha03 contém estas confirmações.

Novos recursos

  • Nenhuma mudança desde a última versão. Esta versão é para oferecer suporte à versão do appcompat.

Versão 1.2.0-alpha02

23 de março de 2022

Lançamento de androidx.emoji2:emoji2-*:1.2.0-alpha02. A versão 1.2.0-alpha02 contém estas confirmações.

Correções de bugs

  • O Emoji2 vai adicionar emojis ao PrecomputedText descartando o layout de texto pré-calculado. (I47d06, b/211231958).
  • Correção de falha do editor de backport do Android P para EditText configurado para usar emoji2. (Ifd709, b/216891011).
  • Correção de falha quando o emoji2 carrega a fonte e o TextView.setText(char[]) é usado. (Id511e, b/206859724).

Versão 1.2.0-alpha01

23 de fevereiro de 2022

Lançamento de androidx.emoji2:emoji2-*:1.2.0-alpha01. A versão 1.2.0-alpha01 contém essas confirmações.

Nenhuma mudança desde a versão 1.1.0.

1.1

Versão 1.1.0

23 de fevereiro de 2022

androidx.emoji2:emoji2-*:1.1.0 é lançado. A versão 1.1.0 contém estas confirmações.

Mudanças importantes desde a versão 1.0.0

  • O emoji2-bundled contém uma fonte de emoji 14
  • A nova API getEmojiMatch retorna informações precisas para teclados para decidir como um emoji será mostrado se houver uma fonte emojicompat por trás da fonte do sistema.
  • Correção de bug para a classe NumberKeyListener que faz com que a entrada de dígitos filtre os caracteres corretamente.

Versão 1.1.0-rc01

9 de fevereiro de 2022

Lançamento de androidx.emoji2:emoji2-*:1.1.0-rc01. A versão 1.1.0-rc01 contém estas confirmações.

Novos recursos

Nenhuma mudança desde a versão Beta.

Novos recursos em relação à versão emoji2 1.0.0:

  • O artefato emoji2-bundled contém uma fonte de emoji 14.
  • A nova API getEmojiMatch retorna informações precisas para teclados para decidir como um emoji será mostrado se houver uma fonte emojicompat por trás da fonte do sistema.
  • Correção de bug para a classe NumberKeyListener que faz com que a entrada de dígito filtre os caracteres corretamente.

Versão 1.1.0-beta01

26 de janeiro de 2022

Lançamento de androidx.emoji2:emoji2-*:1.1.0-beta01. A versão 1.1.0-beta01 contém estas confirmações.

Correções de bugs

  • Lançamento da androidx-emoji2 beta01. Nenhuma mudança em relação à alpha01 (Ic61d9).

Versão 1.1.0-alpha01

15 de dezembro de 2021

Lançamento de androidx.emoji2:emoji2-*:1.1.0-alpha01. A versão 1.1.0-alpha01 contém estas confirmações.

Novos recursos

  • O artefato emoji2-bundled contém uma fonte de emoji 14.
  • A nova API getEmojiMatch retorna informações precisas para teclados para decidir como um emoji será mostrado se houver uma fonte emojicompat por trás da fonte do sistema.
  • Correção de bug para a classe NumberKeyListener que faz com que a entrada de dígito filtre os caracteres corretamente.

Mudanças na API

  • Adição da nova API getEmojiMatch para permitir que os teclados pesquisem com mais precisão o comportamento da correspondência de emojis na emojicompat.
  • O método hasEmojiGlyph foi descontinuado porque o valor booleano retornado por ele é incorreto ao testar com uma fonte mais antiga do que a fonte de emoji da plataforma. Substitua pelo getEmojiMatch (Ie693d).

Correções de bugs

  • A Emoji2 não vai unir as instâncias de NumberKeyListener, permitindo que a localidade seja configurada pela TextView.
  • A Appcompat não vai unir as instâncias de NumberKeyListener transmitidas para setKeyListener, permitindo que a TextView configure corretamente a localidade nas NumberKeyListeners (Ibf113, b/207119921).

1

Versão 1.0.1

15 de dezembro de 2021

Lançamento de androidx.emoji2:emoji2-*:1.0.1. A versão 1.0.1 contém estas confirmações.

Correções de bugs

  • A Emoji2 não vai unir as instâncias de NumberKeyListener, permitindo que a localidade seja configurada pela TextView.
  • A Appcompat não vai unir as instâncias de NumberKeyListener transmitidas para setKeyListener, permitindo que a TextView configure corretamente a localidade nas NumberKeyListeners (Ibf113, b/207119921).

Versão 1.0.0

17 de novembro de 2021

Lançamento de androidx.emoji2:emoji2-*:1.0.0. A versão 1.0.0 contém estas confirmações.

Principais recursos de 1.0.0

androidx.emoji2 substituiu androidx.emoji e oferece estes outros recursos:

  • Redução do tamanho do APK em comparação a androidx.emoji
  • Configuração automática
  • Adicionado como uma dependência em appcompat 1.4

Para mais informações sobre o androidx.emoji2, consulte suporte a emojis modernos e nossa palestra na Conferência de Desenvolvedores Android sobre Como exibir TODOS os emojis no seu app.

Versão 1.0.0-rc01

27 de outubro de 2021

Lançamento de androidx.emoji2:emoji2-*:1.0.0-rc01. A versão 1.1.0-rc01 contém estas confirmações.

  • Nenhuma mudança desde a versão beta02.

Emoji2: versão 1.0.0-beta01

15 de setembro de 2021

Lançamento de androidx.emoji2:emoji2-*:1.0.0-beta01. A versão 1.0.0-beta01 contém estas confirmações.

Mudanças na API

  • Adição de setLoadingExecutor à FontRequestEmojiCompatConfig, que substitui a API anterior de setHandler. A API permite que os apps configurem a FontRequestEmojiCompatConfig para usar qualquer executor em segundo plano.

    Essa é uma alteração interruptiva de androidx.emoji:emoji. Portanto, setHandler é retida como uma API descontinuada de ambiente autônomo para ajudar na migração (I6cd48).

  • A EmojiCompat define EditorInfo.extras corretamente no Android 11

    • Os widgets personalizados que usam o editor de método de entrada (IME, na sigla em inglês) e não criam uma subclasse de EditText podem chamar EmojiCompat.updateEditorInfo para informar o IME de que são compatíveis com o processamento da EmojiCompat (I1ea9b).

Correções de bugs

  • A DefaultEmojiCompatConfig foi corrigida para procurar corretamente o provedor de fontes de emojis nas APIs 19 e 28. Isso corrige um bug introduzido na emoji2 1.0.0-alpha01 (Ib33d8, b/197906329).

Versão 1.0.0-alpha03

30 de junho de 2021

Lançamento de androidx.emoji2:emoji2-*:1.0.0-alpha03. A versão 1.0.0-alpha03 contém estas confirmações.

Novos recursos

Esta é uma versão de correção de bugs e estabilização.

  1. EmojiEditTextHelper agora permite transmitir null como um KeyListener. Isso permite o comportamento da plataforma de aplicar valores nulos a emojis compatíveis com implementações de EditText.
  2. Ao usar o EmojiCompatInitializer inicial, o atraso inicial da inicialização é acionado após a primeira atividade ser retomada. Isso permite que a inicialização do app ocorra sem disputas e evita carregar a fonte para inicializações do app que nunca exibem uma IU. Após um pequeno atraso, a EmojiCompat criará uma linha de execução para carregar a fonte dos emojis.
  • Uma nova dependência de androidx.lifecycle:lifecycle-process em androidx.emoji2:emoji2 foi adicionada para implementar o atraso. O impacto é insignificante no tamanho do APK para apps que já incluem o ciclo de vida (como aplicativos que usam appcompat).

Mudanças na API

  • Agora, é permitido usar KeyListeners nulos em AppCompatEditText. Isso reverte a anotação não nula que foi adicionada a AppCompatEditText na versão 1.4.0-alpha01 e restaurará o comportamento anterior quando transmitida como nula (I21482, b/189559345).

Correções de bugs

  • A EmojiCompatInitializer mudou para atrasar o carregamento da fonte até 500 ms após o primeiro Activity.onResume. Isso permite que uma atividade execute Application.onCreate e Activity.onCreate sem alterações, garantindo que a fonte de emoji seja carregada pouco depois da inicialização do app (I4bff7).

Versão 1.0.0-alpha02

2 de junho de 2021

Lançamento de 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. A versão 1.0.0-alpha02 contém estas confirmações.

Mudanças na API

  • Pacote em emoji2-views-helper renomeado como androidx.emoji2.viewsintegration. Essa é uma alteração interruptiva para AppCompat 1.4.0-alpha01, e os apps precisam garantir que a dependência de AppCompat seja atualizada para usar a nova versão de emoji2 (Ie8397).

Versão 1.0.0-alpha01

18 de maio de 2021

Lançamento de 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. A versão 1.0.0-alpha01 contém estas confirmações.

Recursos desta versão inicial

A integração com a emojicompat é recomendada para todos os apps oferecerem compatibilidade com emojis modernos da API19. Todo o conteúdo gerado pelo usuário no app contém 🎉.

A EmojiCompat foi movida dos artefatos androidx.emoji para o novo androidx.emoji2, agora em alpha01. Os novos artefatos substituem a versão anterior.

emoji2 foi adicionado como uma dependência de AppCompat a partir da AppCompat 1.4.0-alpha01, e é ativado por padrão para visualizações da AppCompat.

O artefato emoji2 introduz uma nova configuração automática usando a biblioteca androidx.startup. Não é mais necessário escrever códigos 👨🏽‍💻 para exibir 🐻‍❄️.

Mudanças no emoji2 a partir de emoji

  • Uma nova configuração automática EmojiCompatInitializer usando androidx.startup foi adicionada.
  • Uma nova configuração padrão que usa o local do serviço para encontrar um provedor de fontes disponível para download em DefaultEmojiCompatConfiguration foi adicionada.
  • Classes movidas do pacote androidx.emoji para androidx.emoji2.
  • EmojiTextView e visualizações relacionadas a um artefato emoji2-views foram separadas em outro artefato. Essa opção só será usada se o app não usar a appcompat.
  • Auxiliares foram extraídos para integrar a emojicompat em visualizações personalizadas em um artefato emoji2-views-helper separado.
  • Adição de anotações de nulidade.
  • Agora, os auxiliares em emoji2-views-helper podem ser usados mesmo quando a EmojiCompat não for inicializada (antes, eles geravam uma exceção).

Qual dependência você precisa adicionar?

  • Os apps que usam a AppCompat precisam fazer upgrade para a versão AppCompat 1.4.0-alpha01 ou mais recente.
  • Apps que não usam a AppCompat com TextView/EditText da plataforma precisam usar EmojiTextView e classes relacionadas de emoji2-views.

Como oferecer compatibilidade com visualizações personalizadas

  • Apps que usam a AppCompat precisam estender AppCompatTextView, AppCompatButton etc. em vez de TextView, etc. da plataforma.
  • Apps que não usam a AppCompat precisam adicionar a dependência androidx.emoji2:emoji2-views-helper e usar auxiliares para fazerem a integração com subclasses TextView ou EditText personalizadas.

Como configurar a inicialização automática

  • Os apps podem desativar a inicialização automática ao adicionar o código a seguir ao manifesto:

     <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>
    
  • Isso desativa a configuração automática e será possível transmitir uma configuração personalizada para EmojiCompat.init. A configuração padrão do sistema pode ser recuperada de DefaultEmojiCompatConfig.create(context) para mais configurações antes de ser transmitida para EmojiCompat.init.