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
- 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çã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 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. 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 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
- Introdução da biblioteca do seletor de emojis. Confira o documento para desenvolvedores se quiser 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
- Introdução da lista
registerSource
(Iae92f). - Feedback do conselho de API: o elemento
TransitionManager.seekTo()
foi renomeado comocreateSeekController()
. Ajuste o comentário anterior sobre adicionarTransitionManager.seekTo()
aTransitionManager.createSeekController()
. (Idbeb1). - Adição de
ExerciseRouteResult
, que não é a superclasse paraData
,NoData
eConsentRequiredStates
AExerciseRoute
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
eTextButton
de acordo com o design do Material 3 O papel semântico paraButton
,IconButton
eTextButton
agora pode ser substituído usandoModifier.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 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 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
Importe
androidx.emoji2:emojipicker:$version
embuild.gradle
.dependencies { implementation "androidx.emoji2:emojipicker:$version" }
Aumente a visualização do seletor de emojis e, opcionalmente, defina
emojiGridRows
eemojiGridColumns
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 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 (opcional). Crie seu próprio estilo para substituir atributos comuns de tema e aplicar ao
EmojiPickerView
. Por exemplo, substituircolorControlNormal
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
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 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
eemojiGridRows
ou os métodossetEmojiGridColumns()
esetEmojiGridRows()
. - 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. 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 aRecentEmojiProvider
, 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 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 doEmojiSpan
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 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 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 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
.