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
13 de dezembro de 2023 1.4.0 - - 1.5.0-alpha01

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

  • Foram removidos recursos desnecessários e redução do tamanho da biblioteca em cerca de 0,3 milhão.

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

  • Foi adicionada uma nova API para que clientes Java possam fornecer emojis recentes. (I39d10).

Correções de bugs

  • Os recursos de emojis foram atualizados para oferecer suporte à versão 15.0 (Ib4eb3).
  • Ao escolher um emoji na janela pop-up, atualize todos os emojis idênticos para o emoji recém-escolhido (exceto a linha de emojis mais recente). Também anuncie o emoji ao clicar. (I892c6).
  • Aguarde o carregamento da 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

  • Introdução de um seletor de emojis que oferece uma experiência do usuário consistente com os emojis mais recentes em dispositivos e apps de OEM do SO Android. Ele oferece o suporte mais recente a emojis e a interface do seletor de emojis, incluindo variantes de tons de pele e compatibilidade com emojis.

Mudanças na API

  • Introdução da classe EmojiPickerView, que fornece emojis atualizados em uma visualização rolável vertical com um cabeçalho horizontal clicável
  • As colunas de 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 escolhido pode ser definido usando setOnEmojiPickedListener(), e o listener será notificado sempre que o usuário clicar em um emoji.
  • O provedor de emojis recente pode ser informado com setRecentEmojiProvider(). Esta é uma função opcional. Se o provedor de emojis recentes não estiver definido, um provedor padrão de emojis recentes vai ser usado pela biblioteca. O comportamento padrão é definido da seguinte maneira: 1) todos os emojis selecionados são salvos por app nas preferências compartilhadas. 2) o seletor exibirá no máximo 3 linhas de emojis selecionados, com duplicações eliminadas, em ordem cronológica inversa.
  • Introdução da classe EmojiViewItem, que contém o emoji exibido e as variantes dele.
  • Introdução da interface RecentEmojiProvider, que pode ser implementada para fornecer uma lista de emojis recente. O recentEmojiProvider é responsável por fornecer emojis na categoria "Usados recentemente".

Versão 1.5

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

  • A emoji2-bundled contém uma fonte de emojis 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).
  • BundledEmojiCompatConfig agora 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

  • Introdução da lista registerSource (Iae92f).
  • Feedback do conselho de API: o elemento TransitionManager.seekTo() foi renomeado como createSeekController(). Ajuste o comentário anterior sobre adicionar TransitionManager.seekTo() a TransitionManager.createSeekController(). (Idbeb1).
  • Adição de ExerciseRouteResult, que não é a superclasse para Data, NoData e ConsentRequiredStates A ExerciseRoute foi adicionada como uma classe independente, que armazena dados de local do trajeto. (I22eed).
  • Introdução de PagerLayoutInfo com informações coletadas após uma passagem de medição no Pager. Também introduziu 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 Material 3 O papel semântico para Button, IconButton e TextButton agora pode ser substituído usando Modifier.semantics (Ib2495).
  • A seleção de guia e o indicador de EmojiPickerView foram corrigidos com um clique. (I4db04).
  • FileNotFoundException ao mostrar o seletor de emojis (I353e4).
  • Detecção do 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, fosse aplicado duas vezes Uma vez durante o layout de texto e novamente dentro de EmojiSpan.draw. O resultado era um desenho com tamanho incorreto, visível se algum dos parâmetros de tamanho de texto fosse alterado pelo período. (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.

Nesta versão, corrigimos um bug desde a versão 1.0 em que as visualizações com um gerenciador não principal geravam uma exceção ao tentar atualizar os períodos de emojis depois que o carregamento da fonte era concluído. Não há solução alternativa. Se esse bug afetar você, atualize para esta versão ou mais recente.

Correções de bugs

  • Os callbacks de inicialização EmojiCompat agora vão usar o gerenciador 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

  • Foi corrigida a falha na visualização pop-up aninhada do seletor de emojis (0acc8e).
  • Gere 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

  • Atualização dos 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 um visual moderno, emojis atualizados e facilidade de uso. Os usuários podem procurar e selecionar emojis e as variantes deles ou escolher entre os usados recentemente. Com essa biblioteca, apps de diferentes OEMs podem oferecer uma experiência de emojis inclusiva e unificada aos usuários, sem que os desenvolvedores precisem criar e manter o próprio seletor de emojis do zero.

Emojis atualizados

Todos os anos, novos emojis são lançados, e eles serão incluídos de forma seletiva no seletor de emojis. Para garantir a compatibilidade com versões anteriores, realizamos internamente uma verificação precisa da capacidade de renderização de emojis para eliminar o uso de tofu. Isso garante que a biblioteca seja compatível com várias versões e dispositivos Android.

Variantes fixas

Toque em um emoji e o mantenha pressionado para abrir um menu de variantes, como diferentes gêneros ou tons de pele. A variante escolhida será salva no seletor de emojis, e a última variante selecionada será usada no painel principal. Com esse recurso, os usuários podem enviar as variantes de emoji que preferir com apenas um toque.

Emojis recentes

O RecentEmojiProvider é responsável por fornecer emojis na categoria "Usados recentemente". A biblioteca tem um provedor padrão de emojis recentes 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, com a duplicação eliminada, 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 de EmojiCompat, ela será usada no seletor de emojis para renderizar o maior número possível de emojis. Se EmojiCompat estiver desativado, o seletor de emojis ainda vai funcionar.

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. Aumente a visualização do seletor de emojis e, opcionalmente, defina emojiGridRows e emojiGridColumns com base no tamanho desejado de cada célula de emoji

    • Você pode deixá-las sem definição. O padrão é 9 emojiGridColumns, e as linhas serão calculadas com base na altura da visualização mãe e em emojiGridColumns
    • Você pode definir emojiGridRows como um ponto flutuante para indicar que há mais emojis ao rolar para baixo no 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. Se você quiser anexar os emojis selecionados a um EditText, use setOnEmojiPickedListener().

      emojiPickerView.setOnEmojiPickedListener {
          findViewById<EditText>(R.id.edit_text).append(it.emoji)
      }
    
  2. Como opção, defina RecentEmojiProvider. Consulte o app de exemplo para conferir um exemplo de implementação.

  3. Personalize os estilos (opcional). Crie seu próprio estilo para substituir atributos comuns de tema e aplicar ao EmojiPickerView. Por exemplo, substituir colorControlNormal 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" />
    

Consulte o app de exemplo para conferir um exemplo de implementação.

Uma superfície completa da API pode ser encontrada neste link.

App de exemplo

Este app de exemplo demonstra casos de uso básicos, além dos seguintes cenários adicionais:

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

Mudanças na API

A biblioteca Emoji Picker foi atualizada com estas novas APIs:

  • A classe EmojiPickerView, que fornece emojis atualizados em uma visualização rolável vertical com um cabeçalho horizontal clicável.
  • 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 emojis selecionado usando o método setOnEmojiPickedListener(). O listener é notificado sempre que o usuário clica em um emoji.
  • A capacidade de fornecer um provedor de emojis recente pelo método setRecentEmojiProvider(). Esta é uma função opcional. Se o provedor de emojis recentes não estiver definido, um provedor padrão de emojis recentes vai ser usado pela biblioteca. O comportamento padrão é definido da seguinte maneira:
    • 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, em ordem cronológica inversa.
  • A classe EmojiViewItem, que contém o emoji exibido e as variantes dele.
  • A interface RecentEmojiProvider, que pode ser implementada para fornecer uma lista de emojis recente. O recentEmojiProvider é responsável por fornecer emojis na categoria "Usados recentemente".
  • A interface RecentEmojiAsyncProvider, que pode ser implementada para fornecer uma lista de emojis recente. 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

  • Corrigir testes, desativar testes de flakes e limpezas.

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

  • Nesta versão, o Compose Foundation 1.4.0 e versões mais recentes podem ativar a integração da emoji2.
  • Ela também permite recursos para substituir EmojiSpans por código de desenho personalizado, além de oferecer suporte a exclusões de emojis 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 oferece suporte à integração do Compose emoji2.

Mudanças na API

  • Substituir os períodos para criar o código de desenho personalizado.
  • Consultando exclusões do sistema.

Correções de bugs

  • Correção de um bug em que os períodos em 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 serve 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 é uma 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

  • Consultando exclusões do sistema.
  • Substituir os períodos por um código de desenho personalizado.
  • Correção de um bug em que os períodos em segundo plano não eram aplicados corretamente atrás de EmojiSopans
  • Esta versão adiciona APIs necessárias para oferecer suporte ao EmojiCompat no Compose. Vamos oferecer suporte ao Compose para a compatibilidade de 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

  • Consulta de exclusões do sistema
  • Substituir os períodos por um código de desenho personalizado
  • Correção de um bug em que os períodos em segundo plano não eram aplicados corretamente atrás de EmojiSopans
  • Esta versão adiciona APIs necessárias para oferecer suporte ao EmojiCompat no Compose. Vamos oferecer suporte ao Compose para a compatibilidade de emojis em uma versão futura.

Mudanças na API

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

Correções de bugs

  • Agora, o Emoji2 vai renderizar corretamente planos de fundo do BackgroundSpan. (Ide6a8, b/230525134).
  • As APIs AppCompat para 1.5.0-beta01 foram finalizadas (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

Nesta versão, corrigimos um bug Nenhum recurso ou API foi adicionado desde a versão 1.1.0.

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

Os seguintes bugs foram corrigidos:

  • Emoji2 vai adicionar um emoji a PrecomputedText, descartando o layout de texto pré-computado anteriormente. (I47d06, b/211231958).
  • Correção de falha do editor de backport do Android P para o EditText, que está configurado para usar emoji2 (Ifd709, b/216891011).
  • Foi corrigida uma falha que ocorria quando a emoji2 carregava a fonte e o TextView.setText(char[]) era 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 alteração desde a última versão (esta versão é para oferecer suporte à versão 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

  • Não há mudanças 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 em relação à versão anterior. Esta é a opção para oferecer suporte à versão 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

  • A Emoji2 vai adicionar um emoji a PrecomputedText, descartando o layout de texto pré-computado anteriormente. (I47d06, b/211231958).
  • Correção de falha do editor de backport do Android P para EditText, que está configurado para usar emoji2 (Ifd709, b/216891011).
  • Foi corrigida uma falha que ocorria quando a emoji2 carregava a fonte e o TextView.setText(char[]) era 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

Lançamento de androidx.emoji2:emoji2-*:1.1.0. 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 uso de hasEmojiGlyph foi descontinuado, já que o valor de retorno booleano é impreciso ao testar com uma fonte mais antiga que a fonte de emojis da plataforma. Substitua pelo getEmojiMatch (Ie693d).

Correções de bugs

  • A Emoji2 não vai unir instâncias de NumberKeyListener, permitindo que a localidade seja configurada por 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.