Emoji2

Mostre emojis em dispositivos atuais e mais antigos.
Atualização mais recente Versão estável atual Próximo candidato a lançamento Versão Beta Versão Alfa
17 de novembro de 2021 1.0.0 - - -

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.0.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.0.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 compilação.

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 existente clicando no botão de estrela.

Criar novo problema

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

1.0

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.