Emoji2
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.
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
- Os recursos desnecessários foram removidos e o tamanho da biblioteca foi reduzido em aproximadamente 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 ao recém-selecionado (exceto a linha de emojis recentes). Além disso, anuncie o emoji ao clicar. (I892c6).
- Aguarde até que a emojicompat seja carregada antes de mostrar a
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
- Apresentamos um seletor de emojis que fornece uma experiência consistente ao usuário com os emojis mais recentes em dispositivos e apps OEM do SO Android. Ela oferece o suporte mais recente 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 da grade do seletor de emojis podem ser definidas pelo atributo XML
emojiGridColumns
ou pela funçãosetEmojiGridColumns()
. - As linhas da grade do seletor de emojis podem ser definidas pelo atributo XML
emojiGridRows
ou pela funçãosetEmojiGridRows()
. - 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 mais recente pode ser fornecido com
setRecentEmojiProvider()
. Esta é uma função opcional. Se o provedor de emojis recentes não estiver definido, um provedor padrão de emojis recentes será usado pela biblioteca. O comportamento padrão é definido da seguinte forma: 1) todos os emojis selecionados serão salvos por nível de app nas preferências compartilhadas; 2) o seletor exibirá no máximo 3 linhas de emojis selecionados, com duplicações, em ordem cronológica inversa. - Introdução da 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 recente OrecentEmojiProvider
é 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 à Emoji 15.1.
Mudanças na API
- Adicionar 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
- Introdução da biblioteca de seletor de emojis. Confira o documento para desenvolvedores para mais detalhes.
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
- A lista
registerSource
foi introduzida (Iae92f). - Feedback do Conselho de API: renomeado como
TransitionManager.seekTo()
paracreateSeekController()
. Ajuste o comentário anterior sobre a adição deTransitionManager.seekTo()
aTransitionManager.createSeekController()
. (Idbeb1). - Adição de
ExerciseRouteResult
, que não é a superclasse paraData
,NoData
eConsentRequiredStates
ExerciseRoute
foi adicionada como uma classe independente, que contém dados de local para o trajeto. (I22eed). - Introdução de
PagerLayoutInfo
com informações coletadas após uma passagem de medição no Pager. Também introduzimos PageInfo, que são as informações sobre uma única página medida no Pager. (Iad003, b/283098900).
Correções de bugs
- Atualizamos as cores de
Button
,IconButton
eTextButton
de acordo com o design do Material3 O papel semântico paraButton
,IconButton
eTextButton
agora pode ser substituído usandoModifier.semantics
. (Ib2495). - A seleção de guia e as atualizações do indicador de
EmojiPickerView
foram corrigidas com um clique (I4db04). FileNotFoundException
ao mostrar o seletor de emojis (I353e4).- Detecção do
WindowManager.BadTokenException
ao usarEmojiPickerView
(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
, comoRelativeSizeSpan
, fosse aplicado duas vezes Uma vez durante o layout de texto e novamente dentro deEmojiSpan.draw
. O resultado era draw 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.
Esta versão corrige 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 você for afetado por esse bug, atualize para esta versão ou mais recente.
Correções de bugs
- Agora, os callbacks de inicialização
EmojiCompat
usarão 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
- Correção da 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 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 procurar e selecionar emojis e as variantes deles ou escolher um dos emojis usados recentemente. Com essa biblioteca, os apps de diferentes OEMs podem oferecer uma experiência de emojis inclusiva e unificada para os usuários, sem que os desenvolvedores precisem criar e manter o próprio seletor de emojis do zero.
Emojis atualizados
Novos emojis são lançados todos os anos e 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 de renderização de emojis para eliminar o tofu. Isso garante que a biblioteca seja compatível com vários dispositivos e versões do Android.
Variantes fixas
Ao tocar em um emoji e mantê-lo pressionado, um menu de variantes será exibido, 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 preferirem 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 recente que atende ao caso de uso mais comum:
- Todos os emojis selecionados são salvos por nível do app nas preferências compartilhadas.
- O seletor mostra no máximo três linhas de emojis selecionados, com duplicações, 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 máximo possível de emojis. Se a EmojiCompat
estiver desativada, o seletor de emojis ainda vai funcionar.
Como usar a biblioteca
Para usar a biblioteca, um desenvolvedor de apps precisa
Importe
androidx.emoji2:emojipicker:$version
embuild.gradle
.dependencies { implementation "androidx.emoji2:emojipicker:$version" }
Aumente a visualização do seletor de emojis e defina
emojiGridRows
eemojiGridColumns
com base no tamanho desejado de cada célula de emojis- Você pode deixá-las sem definição. O padrão é 9
emojiGridColumns
, as linhas serão calculadas com base na altura da visualização mãe e ememojiGridColumns
- 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" />
- Você pode deixá-las sem definição. O padrão é 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)
Se você quiser anexar os emojis selecionados a um EditText, use
setOnEmojiPickedListener()
.emojiPickerView.setOnEmojiPickedListener { findViewById<EditText>(R.id.edit_text).append(it.emoji) }
Como opção, defina
RecentEmojiProvider
. Consulte o app de exemplo para conferir um exemplo de implementação.Personalize os estilos como opção. Crie seu próprio estilo para substituir atributos de tema comuns e aplicá-lo ao
EmojiPickerView
. Por exemplo, substituircolorControlNormal
muda 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 exemplo.
Uma plataforma completa da API pode ser encontrada aqui.
App de exemplo
Este app de exemplo mostra casos de uso básicos, além dos seguintes cenários adicionais:
- O layout da visualização mudou porque
emojiGridRows
eemojiGridColumns
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 do seletor de emojis foi atualizada com estas novas APIs:
- A classe
EmojiPickerView
, que fornece emojis atualizados em uma visualização rolável na 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
eemojiGridRows
ou os métodossetEmojiGridColumns()
esetEmojiGridRows()
. - A capacidade de definir um listener selecionado por emojis 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 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 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, com duplicações eliminadas, 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 recente. OrecentEmojiProvider
é responsável por fornecer emojis na categoria "Usados recentemente". - A interface
RecentEmojiAsyncProvider
, que pode ser implementada para fornecer uma lista de emojis recente. ORecentEmojiAsyncProvider
é responsável por fornecer emojis na categoria "Usados recentemente". Essa interface é equivalente àRecentEmojiProvider
, que permite que os clientes substituam o métodogetRecentEmojiListAsync()
para fornecer emojis recentes. - A classe
RecentEmojiProviderAdapter
, que é um adaptador para oRecentEmojiAsyncProvider
e implementaRecentEmojiProvider
.
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 fazer a 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
- Esta versão permite que o Compose Foundation
1.4.0
e versões mais recentes ativem 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 spans para receber um 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 é 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 tem estabilização para permitir a 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 as APIs necessárias para oferecer suporte a
EmojiCompat
no Compose. Futuramente, vamos oferecer suporte ao Compose para a compatibilidade de emojis.
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
- Como consultar 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 as APIs necessárias para oferecer suporte a
EmojiCompat
no Compose. Futuramente, vamos oferecer suporte ao Compose para a compatibilidade de emojis.
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 doEmojiSpan
por código personalizado de desenho e dimensionamento (Ib69d9). - Adição de
EmojiCompat
ao Compose (I96f37, b/139326806).
Correções de bugs
- O Emoji2 agora vai desenhar corretamente os planos de fundo do
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 recurso ou API foi adicionado desde a versão 1.1.0.
No entanto, apps que usam PrecomputedText
ou TextView.setText(char[])
precisam
priorizar essa versão.
Os seguintes bugs foram corrigidos:
- O
Emoji2
vai adicionar um emoji aPrecomputedText
, 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 a
TextView.setText(char[])
era usada. (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 oferece 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 mais recente. A finalidade deste lançamento é 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 emojis 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 a
TextView.setText(char[])
era usada. (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 pelogetEmojiMatch
(Ie693d).
Correções de bugs
- A Emoji2 não vai unir instâncias de
NumberKeyListener
, permitindo que a localidade seja configurada porTextView
. - A Appcompat não vai unir as instâncias de
NumberKeyListener
transmitidas parasetKeyListener
, permitindo que aTextView
configure corretamente a localidade nasNumberKeyListeners
(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 deNumberKeyListener
, permitindo que a localidade seja configurada pelaTextView
. - A Appcompat não vai unir as instâncias de
NumberKeyListener
transmitidas parasetKeyListener
, permitindo que aTextView
configure corretamente a localidade nasNumberKeyListeners
(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 desetHandler
. A API permite que os apps configurem aFontRequestEmojiCompatConfig
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).
- 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
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.
- 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. - 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
emandroidx.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 executeApplication.onCreate
eActivity.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 comoandroidx.emoji2.viewsintegration
. Essa é uma alteração interruptiva para AppCompat1.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
usandoandroidx.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
paraandroidx.emoji2
. EmojiTextView
e visualizações relacionadas a um artefatoemoji2-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 aEmojiCompat
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 usarEmojiTextView
e classes relacionadas deemoji2-views
.
Como oferecer compatibilidade com visualizações personalizadas
- Apps que usam a AppCompat precisam estender
AppCompatTextView
,AppCompatButton
etc. em vez deTextView
, 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 subclassesTextView
ouEditText
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 deDefaultEmojiCompatConfig.create(context)
para mais configurações antes de ser transmitida paraEmojiCompat.init
.