wear protolayout
Atualização mais recente | Versão estável | Versão candidata a lançamento | Versão Beta | Versão Alfa |
---|---|---|---|---|
24 de setembro de 2025 | 1.3.0 | - | - | 1.4.0-alpha01 |
Declarar dependências
Para adicionar uma dependência à biblioteca wear-protolayout, adicione o repositório Maven do Google ao seu projeto. Consulte a seção Repositório Maven do Google para mais informações.
Adicione as dependências dos artefatos necessários ao arquivo build.gradle
do
seu app ou módulo:
Groovy
dependencies { // Use to implement support for Wear ProtoLayout Expressions implementation "androidx.wear.protolayout:protolayout-expression:1.3.0" // Use to implement support for Wear ProtoLayout implementation "androidx.wear.protolayout:protolayout:1.3.0" // Use to utilize components and layouts with Material design in your ProtoLayout implementation "androidx.wear.protolayout:protolayout-material:1.3.0" }
Kotlin
dependencies { // Use to implement support for Wear ProtoLayout Expressions implementation("androidx.wear.protolayout:protolayout-expression:1.3.0") // Use to implement support for Wear ProtoLayout implementation("androidx.wear.protolayout:protolayout:1.3.0") // Use to utilize components and layouts with Material design in your ProtoLayout implementation("androidx.wear.protolayout:protolayout-material:1.3.0") }
Para 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.
Versão 1.4
Versão 1.4.0-alpha01
24 de setembro de 2025
Lançamento de androidx.wear.protolayout:protolayout-*:1.4.0-alpha01
. A versão 1.4.0-alpha01 contém estes commits.
Novos recursos
- Adição de um método auxiliar para
LayoutModifier
que faz um elemento aparecer gradualmente à medida que o bloco fica visível. (I38531, b/390345969). - Adicionamos
materialScopeWithResources
para oferecer suporte ao conceito deMaterialScope
do M3, que também cuida do registro automático de recursos. Nele, adicionamos novos métodos auxiliares para imagens (backgroundImage
avatarImage
e ícone) que eliminam a necessidade de registrar recursos manualmente emonTileResourceRequest
quando usados. (I525bd, b/428692714) ProtoLayout
Auxiliares do Kotlin paraImage
eImageResources
para uso comProtoLayoutScope
e registro automático de recursos. (Iada82, b/430584304).- Adicionado getter para quantas propriedades Lottie são permitidas na personalização de uma animação Lottie. (I73733, b/436532706).
- Adição de API em
AndroidLottieResourceByResId
para permitir a personalização da animação Lottie por propriedades e adição de API para criar uma propriedade para o slot de temas com o ID do slot na cor especificada. (I301b3, b/423581481). - Adição de APIs de provedor para aceitar
PendingIntent
como ação de clique (I01978, b/433802488). - Adicione uma nova API em
Image.Builder
-setImageResource
para definir o objeto de recurso diretamente na imagem emonTileRequest
, sem precisar registrá-lo no mapeamento emonTileResourcesRequest
. (Ifa69a, b/428693523) - Adição do conceito
ProtoLayoutScope
para preparar um melhor gerenciamento de recursos no Tiles. (I132ce, b/428692423). - O
ProtoLayout
Material3MaterialScope
agora expõe o campoContext
como público para uso em métodos dentro do escopo, sem a necessidade de transmiti-lo. (I0e5cc, b/414559956) - Tornar públicas as APIs semânticas de cabeçalho (I75299, b/413653475).
- Exponha constantes
ARC_DIRECTION_*
como públicas para uso emArc/ArcLine/ArcText/DashedArcLine
. (I83959, b/427556439)
Mudanças na API
- Descontinuamos os métodos
Image.Builder()
eImage.Builder.setResourceId
em favor da nova API de registro automático de recursos, disponível nas APIsImage.Builder(ProtoLayoutScope)
eImage.Builder.setImageResource
, que eliminam a necessidade de substituironTileResourcesRequest
. (I7bfe6, b/432758526) - Mova as APIs para criar
ProtoLayoutScope
de restritas para públicas. No entanto, eles não devem ser usados, já que o sistema já processa essas chamadas. (I1d8e8, b/432758251)
Correções de bugs
- Adição de uma implementação para oferecer suporte a
PendingIntent
emProtoTiles
(I38167, b/430610429). - Adicione o método
invalidateLayout
. (Ief898). - Mudança da minSdk padrão da API 21 para a API 23 (Ibdfca, b/380448311, b/435705964, b/435705223).
ImageResource
agora tem métodoshashCode
eequals
. (I650ee, b/428692423, b/428693523).- Adição da nova mensagem proto
PendingIntentAction
e do builder de wrapper dela (Ie2aca, b/427643502). - Reduza a frequência com que a instância
ZoneId
é criada. (I284d3). - Aplique a descrição de conteúdo padrão ao slot único
textButton
. (I0dc8a, b/415001534). - Correção de cálculos para ajustar o número máximo de linhas no lado do renderizador. (I933bc, b/414353620).
Versão 1.3
Versão 1.3.0
4 de junho de 2025
Lançamento de androidx.wear.protolayout:protolayout-*:1.3.0
. A versão 1.3.0 contém estes commits.
Mudanças importantes desde a versão 1.2.0
- O design do Material 3 chega ao relógio, com componentes e layouts otimizados para a tela redonda e que se ajustam adequadamente de telas pequenas a grandes.
- Isso inclui a biblioteca
protolayout-material3
somente em Kotlin com mais APIs semelhantes ao Compose para os seguintes componentes e recursos: - Tema de cores dinâmicas do sistema e mostrador do relógio com o tema mais recente do Material3 para cores, formas e tipografia
MaterialScope
para cuidar de todos os padrões opinativos e facilitar a personalizaçãoiconEdgeButton
,textEdgeButton
iconButton
,textButton
,button
,imageButton
,avatarButton
,compactButton
titleCard
,appCard
,graphicDataCard
,iconDataCard
,textDataCard
circularProgressIndicator
,segmentedCircularProgressIndicator
primaryLayout
,buttonGroup
- Todos os componentes funcionam em todos os níveis de SDK e na versão do
ProtoLayout
Renderer, fornecendo substituições adequadas quando aplicável.
- Isso inclui a biblioteca
- APIs mais compatíveis com Kotlin e semelhantes ao Compose para elementos básicos do ProtoLayout
LayoutModifier
com a capacidade de adicionar a maioria dos modificadores como funções encadeadas (padding
,contentDescription
, incluindoclearSemantics
,background
,clip
,opacity
etc.), conversível para o objetoModifiers
atualLayoutColors
eLayoutString
como tipos com suporte mais fácil para usar campos e restrições dinâmicostext
efontStyle
- Melhor suporte a mapas para
StateBuilder
, incluindoDynamicDataMap
e métodos de fábrica, comointAppDataKey
, para facilitar a criação de objetosAppDataKey
.
- As animações Lottie oferecem suporte à inclusão de opções para definir diferentes acionadores de quando a animação deve começar, por exemplo, quando o layout é carregado ou quando fica visível.
- Suporte aprimorado a gradientes:
- API de gradiente linear como parte do
Brush
que pode ser usada em modificadoresBackground
para elementos comoBox
,Spacer
etc. … - Permitir valores de cor dinâmicos em
ColorStop
usados para gradiente linear e de varredura - O gradiente de varredura em objetos de arco agora oferece suporte a cores dinâmicas e ângulos inicial e final
- Vinculação de dados da plataforma em
protolayout-expression
para receber informações sempre que a visibilidade do layout for alterada. Por exemplo, isso pode ser usado para ocultar determinadas partes do layout enquanto o bloco é deslizado para - A biblioteca de testes
protolayout-testing
foi adicionada para facilitar a cobertura de testes de unidade para qualquer elemento ProtoLayout. - Novo elemento
DashedArcLine
com um conjunto de recursos aprimorado para que a linha possa ter traços, em vez doArcLine
atual - Suporte a
ArcSpacer
para definir o comprimento na dimensão DP em vez de graus - Adição do eixo de arredondamento
FontSetting
aplicável a algumas fontes
Versão 1.3.0-rc01
20 de maio de 2025
Lançamento de androidx.wear.protolayout:protolayout-*:1.3.0-rc01
sem mudanças desde a versão anterior. A versão 1.3.0-rc01 contém estes commits.
Versão 1.3.0-beta02
7 de maio de 2025
Lançamento de androidx.wear.protolayout:protolayout-*:1.3.0-beta02
. A versão 1.3.0-beta02 contém estes commits.
Correções de bugs
- Fizemos uma melhoria importante nos valores de design de tipografia aplicados na API 36 e em versões mais recentes. Isso porque, a partir da API 36, todos os blocos vão usar a fonte do sistema, o que melhora a consistência no carrossel de blocos. (If316f).
- Os criadores de
Text
,Spacer
,ArcLine
eDashedArcLine
não vão gerar exceção selayoutConstraints
para valores dinâmicos não estiver definido. Renderizadores mais antigos ainda exigem que olayoutConstraints
seja definido e ignoram qualquer valor dinâmico que não tenha essa definição. (Ic52e8) - Adicione o modificador de semântica de cabeçalho para indicar que um elemento de layout é um cabeçalho de uma seção de conteúdo para fins de acessibilidade e marque o texto no slot de título de
primaryLayout
como cabeçalho de acessibilidade por padrão. (Iae1fb). - Polimento final da UX do
primaryLayout
, em que o espaço entre o slot de título e o slot principal é reduzido para 4 dp em vez de 6 dp em telas menores. (I0e056). - Aplique a descrição de conteúdo padrão a
textEdgeButton
. (Ifaf8b). - Pequena atualização no padding interno do
avatarButton
. (I0910b)
Versão 1.3.0-beta01
9 de abril de 2025
Lançamento de androidx.wear.protolayout:protolayout-*:1.3.0-beta01
. A versão 1.3.0-beta01 contém estes commits.
Novos recursos
A versão 1.3.0-beta01 do Wear ProtoLayout indica que esta versão da biblioteca está com todos os recursos e a API está bloqueada (exceto onde marcado como experimental). O Wear ProtoLayout 1.3 inclui as seguintes novas funcionalidades e APIs:
- O design do Material 3 chega ao relógio, com componentes e layouts otimizados para a tela redonda e que se ajustam adequadamente de telas pequenas a grandes.
- Isso inclui a biblioteca
protolayout-material3
somente em Kotlin com mais APIs semelhantes ao Compose para os seguintes componentes e recursos: - Tema de cores dinâmicas do sistema e mostrador do relógio com o tema mais recente do Material3 para cores, formas e tipografia
MaterialScope
para cuidar de todos os padrões opinativos e facilitar a personalizaçãoiconEdgeButton
,textEdgeButton
iconButton
,textButton
,button
,imageButton
,avatarButton
,compactButton
titleCard
,appCard
,graphicDataCard
,iconDataCard
,textDataCard
circularProgressIndicator
,segmentedCircularProgressIndicator
primaryLayout
,buttonGroup
- Todos os componentes funcionam em qualquer nível de SDK e versão do renderizador ProtoLayout, fornecendo substituições sensatas quando aplicável.
- Isso inclui a biblioteca
- APIs mais compatíveis com Kotlin e semelhantes ao Compose para elementos básicos do ProtoLayout
LayoutModifier
com a capacidade de adicionar a maioria dos modificadores como funções encadeadas (padding
,contentDescription
, incluindoclearSemantics
,background
,clip
,opacity
etc.), conversível para o objetoModifiers
atualLayoutColors
eLayoutString
como tipos com suporte mais fácil para usar campos e restrições dinâmicostext
efontStyle
- Melhor suporte a mapas para
StateBuilder
, incluindoDynamicDataMap
e métodos de fábrica, comointAppDataKey
, para facilitar a criação de objetosAppDataKey
.
- As animações Lottie oferecem suporte à inclusão de opções para definir diferentes acionadores de quando a animação deve começar, por exemplo, quando o layout é carregado ou quando fica visível.
- Suporte aprimorado a gradientes:
- API de gradiente linear como parte do
Brush
que pode ser usada em modificadoresBackground
para elementos comoBox
,Spacer
etc. … - Permitir valores de cor dinâmicos em
ColorStop
usados para gradiente linear e de varredura - O gradiente de varredura em objetos de arco agora oferece suporte a cores dinâmicas e ângulos inicial e final
- Vinculação de dados da plataforma em
protolayout-expression
para receber informações sempre que a visibilidade do layout for alterada. Por exemplo, isso pode ser usado para ocultar determinadas partes do layout enquanto o bloco é deslizado para - A biblioteca de testes
protolayout-testing
foi adicionada para facilitar a cobertura de testes de unidade para qualquer elemento ProtoLayout. - Novo elemento
DashedArcLine
com um conjunto de recursos aprimorado para que a linha possa ter traços, em vez doArcLine
atual - Suporte a
ArcSpacer
para definir o comprimento na dimensão DP em vez de graus - Adição do eixo de arredondamento
FontSetting
aplicável a algumas fontes
Versão 1.3.0-alpha10
12 de março de 2025
Lançamento de androidx.wear.protolayout:protolayout-*:1.3.0-alpha10
. A versão 1.3.0-alpha10 contém estes commits.
Novos recursos
- Adicione um auxiliar para Brush no modificador de segundo plano do Kotlin. (I995de).
- O campo de contexto obrigatório do Android foi disponibilizado publicamente em
MaterialScope
para facilitar o uso em funções de desenvolvedores que estão criando componentes para blocos do Material3. (I7df73).
Mudanças na API
- Renomeie a API
platformVisibilityStatus
comoPlatformEventSources.isLayoutVisible
e adicione uma nova API experimentalPlatformEventSources.isLayoutUpdatePending
. (Ie1e04).
Correções de bugs
- Agora, as margens de
primaryLayout
são arredondadas corretamente, o que pode afetar alguns layouts, com até 2 dp a menos de espaço para o slot principal. (I8f5d3). - Esclarecimento sobre o tema de cores dinâmicas padrão nos componentes do
ProtoLayout
Material3. (Iff5f3). - As tipografias
Typography.NUMERAL_*
não são mais tabulares/monoespaçadas por padrão. Se o texto estiver animado, é altamente recomendável adicionar a configuraçãoFontSetting.tabularNum()
. Em todos os outros casos, essa opção monoespaçada não é necessária, e haverá mais caracteres disponíveis se você não a usar. (Id3cd9). - Esclarecimento sobre o tema de cores dinâmicas padrão nos componentes do
ProtoLayout
Material3. (I9d831)
Versão 1.3.0-alpha09
26 de fevereiro de 2025
Lançamento de androidx.wear.protolayout:protolayout-*:1.3.0-alpha09
. A versão 1.3.0-alpha09 contém estes commits.
Novos recursos
- Adição de modificadores experimentais para
enterTransition
eexitTransition
(I4a4d6). - Adicionamos vinculação de plataforma extra para receber o status de visibilidade do layout completo sempre que ele for alterado. (I250c3).
- Permite injetar o estado do app de teste e dados da plataforma em
LayoutElementAssertionsProvider
para avaliar valores dinâmicos. (Ib5fcb). - Adicionar filtros de canto à biblioteca de testes do protolayout (Ie2361)
- Agora,
ButtonColors
,CardColors
eProgressIndicatorColors
oferecem suporte ao método de cópia, com substituição opcional de alguns parâmetros. (Ie2054).
Mudanças na API
- Adicionar suporte à vinculação de dados dinâmicos à biblioteca de testes (Ib98de)
- Correção do
imageButton
quando usado com a funçãobackgroundImage
removendo a sobreposição. Além disso, permita que a funçãobackgroundImage
especifique nulo para a cor de sobreposição, o que significa que a sobreposição não será aplicada. (Ibec3c).
Correções de bugs
- O método
hasValueOfType
padrão foi alterado para gerarUnsupportedOperationException
em vez deIllegalArgumentException
. (Ia36c3). - Os valores de token de cor padrão foram atualizados para refletir a especificação mais recente. (I75d44)
- Correções para o problema de aliasing visível nas linhas de arco no renderizador de blocos do AndroidX. (I88190)
Versão 1.3.0-alpha08
12 de fevereiro de 2025
Lançamento de androidx.wear.protolayout:protolayout-*:1.3.0-alpha08
. A versão 1.3.0-alpha08 contém estes commits.
Novos recursos
- Adicione o parâmetro de lista
FontSetting
para texto do Material3. (Ic102d). - Adição da classe
DynamicDataMap
, que agora é compatível comStateBuilder
para uma API Kotlin com melhor segurança de tipo para estados de app (I012ba) - Adição de métodos de fábrica, como
intAppDataKey
, para facilitar a criação de objetosAppDataKey
(Icea2a). - Agora,
DynamicDataValue
tem um métodohasValueOfType(Class<?>)
além dos métodoshasInt/hasColor/
... (I4f7a6). - Adicionamos
errorDim
ao ProtoLayoutColorScheme
do Material3 para erros de alta prioridade ou ações de emergência, como alertas de segurança. (Ia17bb) - Adicionamos uma proteção contra falhas ao acessar a configuração global "Reduzir movimento", que era acionada em algumas plataformas em que essa configuração não era fornecida. (I01e2c)
Mudanças na API
addKeyToValueMapping
foi renomeado comoaddToStateMap
, e os métodosDynamicDataMap.put
foram removidos por serem redundantes. (Ibe9dd)- A tipografia do Material 3 agora oferece suporte ao eixo variável de arredondamento para fontes do sistema que oferecem suporte a esse eixo. O ProtoLayout
FontSetting
oferece suporte ao eixo de arredondamento para fontes que o aceitam. (I33eb5). - O
multilineAlignment
foi renomeado como alinhamento no método de texto do Material3. (I2b66b). - Atualize o indicador de progresso circular para o tipo "Box" e especifique o
mainContent
emconstructGraphic
como tipo "Box" (I5a3dc). - Melhor suporte para usar o indicador de progresso circular no gráfico (I039db)
Correções de bugs
- Permita valores dinâmicos em
ColorStop
e também para ângulos de início/fim emSweepGradient
. (I0146d). - Correções do Documentos. (I4a63a).
- Atualizamos os componentes do Material 3 (
graphicCard
eavatarButton
) para oferecer um substituto quando a dimensão de expansãoweight
não é compatível (por exemplo, abaixo da API 33). Atualizamos o componente de texto para usarTEXT_OVERFLOW_ELLIPSIZE_END
quandoTEXT_OVERFLOW_ELLIPSIZE
não é compatível com o renderizador. (I19e2c). - Atualização da documentação para
PrimaryLayoutMargins
. (Ibaf7b).
Versão 1.3.0-alpha07
29 de janeiro de 2025
Lançamento de androidx.wear.protolayout:protolayout-*:1.3.0-alpha07
. A versão 1.3.0-alpha07 contém estes commits.
Novos recursos
- Adicionamos uma opção de API para definir diferentes acionadores para animações Lottie. Além disso, adicionamos uma API para acionadores disparados quando o layout está visível (I8272d).
- Adição dos modificadores
border
,visibility
eopacity
. (I6d3dd). - Adição de um botão de avatar ao componente ProtoLayout Material3. (Idb5ae).
- Agora é possível personalizar as margens (laterais e, em alguns casos, inferiores) no Material3
primaryLayout
. (Ib22f6). - Adicione a variante segmentada do indicador de progresso circular. (I6a648).
- Adição do componente de botão compacto ao ProtoLayout Material3. (Ia3c5c).
- Adição de componentes de botão em forma de pílula e botão de imagem ao ProtoLayout Material3. (Ifb88a).
Mudanças na API
LayoutModfier.foldIn
agora é chamado defoldRight
para refletir melhor o comportamento esperado (Idf242).- O gatilho
VisibleOnce
agora é experimental. (Ib2d26). - Remoção de
withOpacity
da API pública porque há uma alternativa de biblioteca gráfica. (I030c2). - Os métodos de nível superior em
LayoutString.kt
eLayoutColor.kt
foram renomeados para ter nomes compatíveis com Java. (I7aff0). - Remoção de tipografias não ProtoLayout no Material3. (Idd9ae).
- Adicione o sufixo "Color" aos campos nas classes
*Colors
no Material3. (I2d114)
Correções de bugs
- Adicione a implementação de substituição
EdgeButton
para renderizadores mais antigos sem suporte a cantos assimétricos. (I63364). - Adicione uma implementação substituta do indicador de progresso circular com um renderizador mais antigo. (I0f134).
Versão 1.3.0-alpha06
15 de janeiro de 2025
Lançamento de androidx.wear.protolayout:protolayout-*:1.3.0-alpha06
. A versão 1.3.0-alpha06 contém estes commits.
Novos recursos
LayoutColor
para oferecer suporte a tipos de cores estáticas e dinâmicas (I4c89b).- Adição do componente
ProtoLayout Material3
textButton. (Id680d). - Adição do componente
iconButton
ProtoLayout Material3. (Ica3f0). - Adição do componente de contêiner de botão do ProtoLayout Material3. (I17a38).
- Adicionado suporte para modificadores semânticos encadeáveis ao protolayout-material3 (I4af62).
- Adição do
CircularProgressIndicator
de segmento único do ProtoLayout Material3 (I2c8a2) - Adição dos modificadores
padding
emetadata
(I8720a) - Adição dos modificadores
background
,clip
eclickable
(I35478) - Adicione
LinearGradient
ao pincel e permita que ele seja usado no modificador de segundo plano. (Ic4dea). - Adição de tamanho pequeno para appCard e
titleCard
. (I91f98). - Adição do componente
graphicDataCard
do ProtoLayout Material3. (I92be7). - Adição de componentes
iconDataCard
etextDataCard
do ProtoLayout Material3. (I4e1e4). - Adição do componente
appCard
do ProtoLayout Material3. (Id4c57). - Abstraia
EdgeButtonColors
paraButtonColors
. (I83624). - Adição do componente
titleCard
do ProtoLayout Material3. (I2dc72).
Mudanças na API
- A API ProtoLayout Material3 agora aceita
LayoutString
para oferecer suporte a textos estáticos e dinâmicos. (I9c24a).
Correções de bugs
- Adição da implementação do renderizador para inflar
DashedArcLine
(I0c700). - Mudança no renderizador para permitir que
ArcSpacer
use o comprimento dp. (I1437b)
Versão 1.3.0-alpha05
11 de dezembro de 2024
Lançamento de androidx.wear.protolayout:protolayout-*:1.3.0-alpha05
. A versão 1.3.0-alpha05 contém estes commits.
Novos recursos
- Adição de
LayoutString
para oferecer suporte a campos de string de layout vinculáveis. (Ida650). - Adição do componente de contêiner de card
ProtoLayout Material3
. (Ic985a).
Correções de bugs
- Agora, essa biblioteca usa anotações de nulidade do JSpecify, que são de uso de tipo. Os desenvolvedores Kotlin precisam usar o seguinte argumento do compilador para garantir o uso correto:
-Xjspecify-annotations=strict
(esse é o padrão a partir da versão 2.1.0 do compilador Kotlin). (Id1f9b, b/326456246)
Versão 1.3.0-alpha04
13 de novembro de 2024
Lançamento de androidx.wear.protolayout:protolayout-*:1.3.0-alpha04
. A versão 1.3.0-alpha04 contém estes commits.
Novos recursos
- Atualizamos a forma do Material3 para ser uma classe com campos que contêm o valor real de Corner, assim como no Wear Compose. (Ied8cd).
- Cores do Material3 atualizadas para incluir o conceito
ColorScheme
, assim como no Wear Compose. (If645e). - Adicione vários correspondentes usados com frequência à biblioteca de testes. (Ie5cec)
Versão 1.3.0-alpha03
30 de outubro de 2024
Lançamento de androidx.wear.protolayout:protolayout-*:1.3.0-alpha03
. A versão 1.3.0-alpha03 contém estes commits.
Novos recursos
- Adição de
LayoutElementAssertionsProvider
,LayoutElementAssertion
eLayoutElementMatcher
à biblioteca de testes (Id1110).
Versão 1.3.0-alpha02
16 de outubro de 2024
Lançamento de androidx.wear.protolayout:protolayout-*:1.3.0-alpha02
. A versão 1.3.0-alpha02 contém estes commits.
Novos recursos
- Versão inicial da biblioteca Material 3. Inclui componentes
text
,edgeButton
,buttonGroup
eprimaryLayout
.
Correções de segurança
- A partir desta mudança, o androidx é compilado com o protobuf 4.28.2 para resolver a CVE-2024-7254. Faça upgrade da dependência na versão 1.3.0-alpha01 de
androidx.wear.protolayout:protolayout-proto
eandroidx.wear.protolayout:protolayout-external-protobuf
para a 1.3.0-alpha02 e resolva o risco de vulnerabilidade.
Contribuição externa
Versão 1.3.0-alpha01
2 de outubro de 2024
Lançamento de androidx.wear.protolayout:protolayout-*:1.3.0-alpha01
. A versão 1.3.0-alpha01 contém estes commits.
Correções de bugs
- Esclarecemos que a disponibilidade dos nomes da família de fontes Roboto e Roboto Flex depende do dispositivo. (I193be).
- Ativada a família de fontes Roboto Flex no renderizador de blocos do AndroidX. (I08e94)
Versão 1.2
Versão 1.2.1
16 de outubro de 2024
Lançamento de androidx.wear.protolayout:protolayout-*:1.2.1
. A versão 1.2.1 contém estes commits.
Correções de segurança
- A partir desta mudança, o androidx é compilado com o protobuf 4.28.2 para resolver a CVE-2024-7254. Faça upgrade da dependência na versão 1.2.0 de
androidx.wear.protolayout:protolayout-proto
eandroidx.wear.protolayout:protolayout-external-protobuf
para 1.2.1 e resolva o risco de vulnerabilidade.
Versão 1.2.0
7 de agosto de 2024
Lançamento de androidx.wear.protolayout:protolayout-*:1.2.0
. A versão 1.2.0 contém estes commits.
Mudanças importantes desde a 1.1.0
- O
FontStyle
foi atualizado para ter suporte adicional a fontes para os eixos variáveis e uma API de seleção de fontes melhor para oferecer suporte às próximas fontes Flex. - Mais suporte para modificadores:
- Modificador de transformação que oferece tradução, rotação e escalonamento com ou sem animações.
- Especificando valores diferentes (horizontal e vertical) para cada raio de canto.
- Melhoria na acessibilidade de todos os destinos de toque ao estender a área de toque de qualquer elemento que use o modificador "Clicável" para ser pelo menos
48dp
por48dp
. - Melhoramos
PrimaryLayout
eEdgeContentLayout
adicionandosetResponsiveContentInsetEnabled
para oferecer melhor suporte ao comportamento responsivo desses layouts em diferentes tamanhos de tela e melhorar a consistência dos blocos. - Melhoria no dimensionamento/não dimensionamento do texto do Material Design para o dimensionamento de fonte não linear do Android 14.
- Melhoria do suporte à direção do layout RTL em todos os elementos de arco.
Outras mudanças
- Para um conjunto mais completo das mudanças introduzidas na versão 1.1.0, consulte as notas da versão beta01.
Versão 1.2.0-rc01
24 de julho de 2024
Lançamento de androidx.wear.protolayout:protolayout-*:1.2.0-rc01
. A versão 1.2.0-rc01 contém estes commits.
Correções de bugs
- Corrigimos o Material Chip padrão para que ele possa ser usado como um ícone somente se nenhum dos rótulos principal ou secundário for transmitido. (Iceef9).
- A documentação dos layouts do Material foi atualizada para incluir recursos visuais da página relevante, facilitando a compreensão dos layouts. (I0256a)
Versão 1.2.0-beta01
10 de julho de 2024
Lançamento de androidx.wear.protolayout:protolayout-*:1.2.0-beta01
. A versão 1.2.0-beta01 contém estes commits.
Novos recursos
A versão 1.2.0-beta01 do Wear ProtoLayout indica que esta versão da biblioteca está com todos os recursos e a API está bloqueada (exceto onde marcado como experimental). O Wear ProtoLayout 1.2 inclui as seguintes novas funcionalidades e APIs:
FontStyle
foi atualizado para ter suporte adicional a fontes da seguinte forma:- Definir configurações de variação de fonte diferentes, como
FontSetting.weight
eFontSetting.width
- Definir a mesma largura para todos os caracteres numéricos: algarismos tabulares (configuração de recurso de fonte
FontSetting.tnum
) - APIs de seleção de fontes aprimoradas para oferecer suporte às próximas fontes flexíveis, especificando os nomes de família de fontes preferidos a serem usados.
- Definir configurações de variação de fonte diferentes, como
- O modificador
Corner
foi estendido para permitir a especificação de cadaCornerRadius
com valores horizontais e verticais separados, permitindo a criação de elementos com cantos assimétricos. - Adição de um novo modificador
Transformation
que oferece translação, rotação e dimensionamento deLayoutElement
. Essas transformações podem ser animadas usando valores dinâmicos. - Adicionamos
setArcDirection
com as opçõesClockwise
,CounterClockwise
eNormal
a todos os elementos de arco (Arc
,ArcLine
eArcText
) para melhorar o suporte em diferentes direções de layout (como LTR e RTL). - Melhoria na acessibilidade de todas as áreas de toque ao estender a área de toque de qualquer elemento que use o modificador
Clickable
para pelo menos48dp
por48dp
. - Melhoramos
PrimaryLayout
eEdgeContentLayout
adicionandosetResponsiveContentInsetEnabled
para oferecer melhor suporte ao comportamento responsivo desses layouts em diferentes tamanhos de tela e melhorar a consistência dos blocos. Adicionamos um aviso do linter para sugerir o uso dessas APIs com uma correção rápida. - Melhoria no dimensionamento/não dimensionamento do Material
Text
para o dimensionamento de fonte não linear do Android 14.
Mudanças na API
- O nome da família de fontes padrão (
DEFAULT_SYSTEM_FONT
) é removido porque está implícito ao não usar a APIpreferredFontFamilies
. (I39dab). - O parâmetro transmitido para
FontSetting.width
precisa ser positivo. (I1266f).
Versão 1.2.0-alpha05
26 de junho de 2024
Lançamento de androidx.wear.protolayout:protolayout-*:1.2.0-alpha05
. A versão 1.2.0-alpha05 contém estes commits.
Novos recursos
- Adicione o método
hasText
aoMaterial.CompactChip
para verificar se o conteúdo do texto foi definido. (I6e8fc)
Mudanças na API
- As constantes
FontFamily
foram movidas paraFontStyle
em vez da classe Builder. (I06ced) - Atualize as APIs
FontSetting.weight
eFontSetting.width
para incluir anotações de intervalo e mude o parâmetro de peso para int. (Ia726c)
Correções de bugs
- Textos não escalonáveis na biblioteca Material agora funcionam corretamente com o dimensionamento de fonte não linear do Android 14. (I6601e).
Versão 1.2.0-alpha04
29 de maio de 2024
Lançamento de androidx.wear.protolayout:protolayout-*:1.2.0-alpha04
. A versão 1.2.0-alpha04 contém estes commits.
Mudanças na API
- Adicionada a API de cantos assimétricos para especificar separadamente o raio de cada canto com dois valores. (Icbd69).
- A API
FontSetting
foi estendida para incluir: - Adição da API de família de fontes a
FontStyle
para permitir especificar uma lista ordenada de quais famílias de fontes devem ser usadas. (Iba9f5). - Constantes renomeadas para altura do espaço entre o conteúdo e o rótulo secundário em
LayoutDefaults
do Material, que inicialmente eram prefixadas com "Conteúdo da borda" para serem mais genéricas, já que podem ser aplicadas aPrimaryLayout
eEdgeContentLayout
. (I4dc32).
Correções de bugs
- Renomeamos a nomenclatura dos eixos de fontes variáveis de
axisName
paraaxisTag
. (I02ba3).
Versão 1.2.0-alpha03
14 de maio de 2024
Lançamento de androidx.wear.protolayout:protolayout-*:1.2.0-alpha03
. A versão 1.2.0-alpha03 contém estes commits.
Novos recursos
- Adição da API para definir valores de peso personalizados para
FontStyle
. (I7390a)
Correções de bugs
- Corrija a falha em
getTouchDelegateInfo
devido a um mapa de destino vazio. (I2accf).
Versão 1.2.0-alpha02
1º de maio de 2024
Lançamento de androidx.wear.protolayout:protolayout-*:1.2.0-alpha02
. A versão 1.2.0-alpha02 contém estes commits.
Mudanças na API
- Adicionamos suporte para desativar o feedback de ondulação em elementos clicáveis individuais. (If1ede)
- A API de transformação foi removida do
ArcModifiers
porque não é compatível com esse recurso (Ic0827) - O
ArcDirectionProp
Builder agora espera um valor no construtor. (I76ada) - O método
PlatformDataValues.Builder.putAll
permite mesclar umPlatformDataValue
em outro. (I50ba3). Text#setIsScalable
foi renomeado comoText#setScalable
. (If920e).- O texto do Material pode definir se deve usar tamanho escalonável (aumenta quando o tamanho da fonte do usuário é alterado) ou não. (Ibc849)
- Adicionamos a opção de definir a descrição do conteúdo como
TitleChip
. (I5d21f). - Correção de
CompactChip
para funcionar corretamente apenas com ícones e atualização da API para permitir essa opção. (I6589e).
Correções de bugs
- Foi corrigido um problema de possível duplicação de dados da plataforma durante a inicialização. (Iba0fd).
- Introduza um novo getter em
DynamicDataNode
para recuperar o custo do nó. O custo é usado ao adquirir a cota de nós dinâmicos. No momento, os nós com valores fixos têm um custo de 0, e todos os outros têm um custo de 1. (Ia33e1). - Remova a lógica de contagem do
NO_OP_QUOTA_MANAGER
. (Ib50b8). - Adicionamos uma regra de lint para informar um aviso quando
PrimaryLayout
é usado semsetResponsiveContentInsetEnabled
e oferecemos uma correção rápida. (I12025). - Há um limite para o número de nós de expressão dinâmica. (Iffae8).
Versão 1.2.0-alpha01
6 de março de 2024
Lançamento de androidx.wear.protolayout:protolayout-*:1.2.0-alpha01
. A versão 1.2.0-alpha01 contém estes commits.
Novos recursos
- Agora, os elementos
ProtoLayout Arc
têm a opção de adicionarArcDirection
(Clockwise
,Counterclockwise
ouNormal
). Adicionar esse comportamento aArc
,ArcLine
ouArcText
vai corrigir o comportamento deles em layouts da direita para a esquerda. (I90699). - O
EdgeContentLayout
foi atualizado com um novo settersetResponsiveContentInsetEnabled
para melhorar o alinhamento com as diretrizes de UX e a consistência nos blocos, com o rótulo principal no lugar fixo na parte de cima e um encarte responsivo para os rótulos. (I60175). - Adicionamos
PrimaryLayout.setResponsiveContentInsetEnabled
, que adiciona um encarte responsivo ao rótulo principal, ao rótulo secundário e ao ícone na parte de baixo desse layout para evitar que o conteúdo saia da borda da tela. (I0c457). - Adiciona um método para remover as margens externas de
CircularProgressIndicator
para que ele possa ser usado como um componente menor. (I55c06).
Mudanças na API
- O renderizador de blocos agora exclui o padding de fontes em todos os elementos de texto por padrão, sem uma opção para incluí-lo. (I3e300).
Correções de bugs
- Corrigimos o problema de alinhamento de texto quando reticências, espaçamento entre letras e alinhamento centralizado são usados no texto. (I716c7)
- Adição de uma solução alternativa para um problema de desenho de arco do skia. (I08f09).
- Correção da direção de desenho
ArcLine
para layouts RTL. (I6c141).
Versão 1.1
Versão 1.1.0
7 de fevereiro de 2024
Lançamento de androidx.wear.protolayout:protolayout-*:1.1.0
. A versão 1.1.0 contém estas confirmações.
Mudanças importantes desde a versão 1.0.0
- Suporte a gradiente e melhor representação de comprimentos maiores que 360 graus em
ArcLine
. - A formatação de data e hora é compatível com diferentes fusos horários para tipos de dados dinâmicos.
- Melhores opções de ajuste automático e elipse de texto para lidar com textos truncados.
- O espaçador aceita dimensões expandidas com peso opcional.
- Anotação de requisito de versão do esquema para todas as APIs
ProtoLayout
. - Aumentamos a área de destino para qualquer elemento
Clickable
para 48 dp x 48 dp, atendendo aos requisitos de acessibilidade. - O padding de fonte fica desativado por padrão e é o único comportamento em todos os elementos de texto e componentes do Material que contêm texto.
Outras mudanças
- Para um conjunto mais completo das mudanças introduzidas na versão 1.1.0, consulte as notas da versão beta01.
Versão 1.1.0-rc01
24 de janeiro de 2024
Lançamento de androidx.wear.protolayout:protolayout-*:1.1.0-rc01
. A versão 1.1.0-rc01 contém estas confirmações.
Correções de bugs
PlatformTimeUpdateNotifierImpl
marca imediatamente após a ativação da atualização. (I77145)- O
CircularProgressIndicator
foi corrigido para layouts RTL. A partir de agora, ele vai girar no sentido horário em todos os casos. (I95ee3). - Adição de uma solução alternativa para um problema de desenho de arco do skia. (I08f09).
Versão 1.1.0-beta01
10 de janeiro de 2024
Lançamento de androidx.wear.protolayout:protolayout-*:1.1.0-beta01
. A versão 1.1.0-beta01 contém estas confirmações.
Novos recursos
A versão 1.1.0-beta01 do Wear ProtoLayout indica que esta versão da biblioteca está com todos os recursos e a API está bloqueada (exceto onde marcado como experimental). O Wear ProtoLayout 1.1 inclui as seguintes novas funcionalidades e APIs:
- O
ArcLine
agora oferece suporte a gradiente ao adicionarBrush
comSweepGradient
e ter uma sombra na tampa para representar melhor comprimentos maiores que 360 graus ao adicionarShadow
noStrokeCap
atual. DynamicInstant
tem suporte para formatação de data e hora com fuso horário.DynamicInstant
eDynamicDuration
podem ser usados como tipos de dados de estado ou plataforma.- Recurso de dimensionamento automático para tamanho do texto que permite definir vários tamanhos para
FontStyle.setSizes
. O tamanho do texto será dimensionado automaticamente com base no espaço disponível dentro do elemento pai. Além disso, melhoramos as opções de elipse para texto que transborda adicionandoTEXT_OVERFLOW_ELLIPSIZE
e descontinuandoTEXT_OVERFLOW_ELLIPSIZE_END
. - O
Spacer
agora oferece suporte a dimensões expandidas com peso opcional. Para criarExpandedDimensionProp
, adicionamos um método auxiliarDimensionBuilders.weight
. - Suporte para ocultar e mostrar dinamicamente elementos de layout com
Modifier.visible
. Isso inclui ter valores dinâmicos emBoolProp
. - Todas as APIs
ProtoLayout
agora têm uma anotação de requisito de versão do esquema, e a versão pode ser verificada antes de chamar uma API mais recente. - Todos os elementos que têm
Clickable
agora têm a área de destino estendida para pelo menos 48x48 no renderizador para oferecer melhor suporte aos requisitos de acessibilidade. - Seguindo outros componentes do Material e iniciativas do Compose, desativamos o padding de fontes por padrão em todos os elementos
Text
. Além disso,AndroidTextStyle
e os setters relacionados foram removidos da API pública. com as seguintes correções de bugs: - Adicionamos um setter para posicionar o conteúdo da borda em
EdgeContentLayout
para que ele possa ser posicionado antes de outros conteúdos. - Gerar uma exceção consistente ao encontrar um valor de enum não reconhecido.
- Invalida o resultado de uma expressão quando ela gera um valor numérico inválido (NaN ou infinito) ou gera um
ArithmeticException
.
Mudanças na API
- Atualizações na API
SweepGradient
para permitir a aceitação de cores ouColorStops
no construtor. (I6676f).
Correções de bugs
- Adição de uma API restrita e suporte a renderizador para definir uma direção em que os elementos de arco são desenhados. (Idef5a)
RoundMode
tem como padrãoFloor
emFloatToInt32Node
quando não especificado. O nó ainda vai gerar uma exceção se oRoundMode
fornecido não for reconhecido. (I1b2d8)
Versão 1.1.0-alpha04
13 de dezembro de 2023
Lançamento de androidx.wear.protolayout:protolayout-*:1.1.0-alpha04
. A versão 1.1.0-alpha04 contém estas confirmações.
Novos recursos
- A classe
VersionInfo
não implementa a interfaceComparable
. (I8d13c) - O renderizador agora oferece suporte à opção
TEXT_OVERFLOW_ELLIPSIZE
. (I7f085).
Mudanças na API
- A opção de estouro de texto
TEXT_OVERFLOW_ELLIPSIZE_END
foi descontinuada. Use a nova APITEXT_OVERFLOW_ELLIPSIZE
com um comportamento muito semelhante. (I822d8). - Seguindo outros componentes do Material e iniciativas do Compose, desativamos o padding de fontes por padrão em todos os elementos de texto. Além disso,
AndroidTextStyle
e os setters relacionados foram removidos da API pública. (I79094, Ib0b03, I32959, Iaf7d5, Ifa298, I0a4ae, Ida9d3). Modifier.hidden
foi substituído porModifier.visible
(I56902).FontStyle#setSizes
agora aceita int em vez de argumentosSpProp
. (I02b37).
Correções de bugs
- Gerar uma exceção ao encontrar um valor de enumeração indefinido ou não reconhecido. (I9d2cf).
- Refatore
DynamicTypeBindingRequest
. (I27b57). - Invalida o resultado de uma expressão quando ela gera um valor numérico inválido (NaN ou infinito) ou gera um
ArithmeticException
. (I681ae).
Versão 1.1.0-alpha03
29 de novembro de 2023
Lançamento de androidx.wear.protolayout:protolayout-*:1.1.0-alpha03
. A versão 1.1.0-alpha03 contém estas confirmações.
Novos recursos
- Adição de suporte experimental para ocultar/mostrar elementos de layout de forma dinâmica (I64a78).
- Adição de suporte a valores dinâmicos em
BoolProp
(I2fe96) - Adição de uma anotação de requisito de versão do esquema às APIs
ProtoLayout
(I0f03c). - Extensão da API com a nova opção em
TextOverflow
para usar reticências no texto em um contêiner pai fixo, mesmo quando o número máximo de linhas não é atingido (mas não há espaço suficiente para o texto). (I110a9). - Adição do método auxiliar
DimensionBuilders.weight
para criarExpandedDimensionProp
com peso. (I4f72b). DynamicInstant
eDynamicDuration
podem ser usados como tipos de dados de estado ou plataforma. (I6819f).
Mudanças na API
- Atualização da API para ocultar
DynamicZonedDateTime
e mover todas as operações paraDyanamicInstant
(I34b94). - O Spacer agora oferece suporte à dimensão Expanded para largura/altura. (Ie7c94).
- Suporte à extensão da área de destino do clique no renderizador (I39c79)
Versão 1.1.0-alpha02
15 de novembro de 2023
Lançamento de androidx.wear.protolayout:protolayout-*:1.1.0-alpha02
. A versão 1.1.0-alpha02 contém estas confirmações.
Novos recursos
- Adição de um campo
ArcLine
StrokeCap
Shadow
à API. (I830ec). - Extensão da API para especificar a largura ou altura do Spacer para expansão. (I757ca).
- Adicionamos uma API experimental para dimensionar automaticamente o tamanho do texto com base no espaço disponível no elemento pai. (Ibbe63).
- Suporte ao tamanho mínimo clicável (I178e3).
- Adição de compatibilidade com renderizador para
StrokeCap
Shadow
. (I48b17). - Adição de suporte ao renderizador para gradiente de varredura em
ArcLine
. (I4d5bb).
Versão 1.1.0-alpha01
18 de outubro de 2023
Lançamento de androidx.wear.protolayout:protolayout-*:1.1.0-alpha01
. A versão 1.1.0-alpha01 contém estas confirmações.
Novos recursos
- Adicionamos uma opção de pincel a
Arcline
, com suporte paraSweepGradient
. (Ie7ce3). - Adicionamos suporte para formatação de data e hora com fuso horário. (Ibfae0).
- Adição de protos e wrappers Java necessários para formatação de data e hora com fuso horário. (I97126).
- Adição de getters para ler o valor armazenado em um
DynamicDataValue
. (Ie6cea). - Adicionamos um setter para posicionar o conteúdo da borda em
EdgeContentLayout
para que ele possa ser posicionado antes de outros conteúdos. (Ie8e8a).
Correções de bugs
- Corrigimos um problema em que uma expressão com várias inscrições de fonte de dados de tempo não era atualizada imediatamente. (I8e1a8)
- Correção de um bug para centralizar o elemento raiz durante as atualizações de diff. (Ie48f7).
- Valores de restrição de layout não definidos (ou vazios) não serão mais ignorados. (Ibc785).
- Redução do atraso entre a visibilidade de um layout e a inicialização dos nós do pipeline. (I38d4e).
Versão 1.0
Versão 1.0.0
9 de agosto de 2023
Lançamento de androidx.wear.protolayout:protolayout-*:1.0.0
. A versão 1.0.0 contém estas confirmações.
Principais recursos da versão 1.0.0
A biblioteca ProtoLayout apresenta APIs para criar layouts e expressões que podem ser usadas em diferentes plataformas do Wear OS. Por exemplo, a biblioteca Tiles usa essas APIs para oferecer suporte à vinculação de dados da plataforma (para atualizações mais rápidas de dados de blocos) e animações.
Versão 1.0.0-rc01
26 de julho de 2023
Lançamento de androidx.wear.protolayout:protolayout-*:1.0.0-rc01
. A versão 1.1.0-rc01 contém estas confirmações.
- Para migrar de blocos para
ProtoLayout
, siga as instruções aqui.
Mudanças na API
- Removemos os métodos
setLayoutConstraintForDynamicAnchorAngle
egetLayoutConstraintForDynamicAnchorAngle
do elemento Arc. Esses métodos foram adicionados por engano e não tiveram efeito no layout fornecido. (If7d01). - Limitamos a profundidade máxima que um layout de
ProtoLayout
pode ter a 30LayoutElements
aninhados. (I8a74b).
Correções de bugs
- Adicionamos uma verificação para gerar uma exceção se
DynamicColor
tiver sido definido para umSpanText
. (I0e5bc). - Esclarecemos que a unidade da fonte de dados
DAILY_CALORIES
é kcal. (Iaa785)
Versão 1.0.0-beta01
21 de junho de 2023
Lançamento de androidx.wear.protolayout:protolayout-*:1.0.0-beta01
. A versão 1.0.0-beta01 contém estas confirmações.
Novos recursos
- Permite definir o relógio para testes de vinculação de tempo. (I05622).
Mudanças na API
PlatformDataReceiver.onData()
eStateBuilders.Builder.addKeyToValueMapping
agora aceitam o mapeamento com segurança de tipos deDynamicDataKey
paraDynamicDataValue
em vez de tipos genéricos não seguros. Isso significa queDynamicDataValue
agora é digitado com oDynamicType
dele. As constantesHEART_RATE_ACCURACY_X
foram movidas para a raiz dePlatformHealthSources
, para corresponder ao posicionamento de outras constantes do Android. As constantes intHEART_RATE_ACCURACY_X
agora são usadas diretamente emDynamicHeartRateAccuracy.constant()
eDynamicHeartRateAccuracy.dynamicDataValueOf()
em vez de constantes de valor. (I82ff5).- A classe
PlatformHealthSources.Constants
foi instanciada por engano. Isso já foi corrigido. (Icb849). PlatformTimeUpdateNotifier#setReceiver
agora recebeRunnable
em vez da funçãoSupplier
eExecutor
para notificar. (I9d938)- Mudamos o tipo de parâmetro em
PlatformTimeUpdateNotifier#setReceiver
deCallable
paraSupplier
. (I664bf). CompactChip
eTitleChip
agora permitem adicionar um ícone. (I5a01e).
Correções de bugs
- Atualização das mensagens de propriedade com campos dinâmicos para usar "oneof" (I81739)
- Reutilize a implementação de setters para sobrecargas que têm setters (Ied70c).
- Registro adequado de impressões digitais em setters com sobrecargas (I86ed2).
Versão 1.0.0-alpha11
7 de junho de 2023
Lançamento de androidx.wear.protolayout:protolayout-*:1.0.0-alpha11
. A versão 1.0.0-alpha11 contém estas confirmações.
Novos recursos
- Adicionamos uma
PlatformDataKey
para a precisão da frequência cardíaca. (I7f9b8)
Mudanças na API
- Renomeie
StateBuilders#getIdToValueMapping
paragetKeyToValueMapping
e mude o tipo de retorno paraMap<<AppDataKey<?>,DynamicDataValue>
. (Iaa7ae). - Transformar
StateStore
em uma classe final (I408ca). - A interface
TimeGateway
foi substituída porPlatformTimeUpdateNotifier
na bibliotecaprotolayout-expression-pipeline
, que fornece a frequência desejada para atualizar dados de tempo. (I60869). register
/unregisterForData
emPlatformDataProvider
foi renomeado comoset
/clearReceiver
(I14b02).- Em Material Text,
getExcludeFontPadding
foi renomeado comohasExcludeFontPadding
. (Iea01d) - O setter para alinhar perfeitamente o rótulo foi adicionado a todos os componentes de chip. Todos os ícones agora têm um destino mínimo tocável aplicado. (I8ae92).
LayoutDefaults#BUTTON_MAX_NUMBER
foi renomeado comoMAX_BUTTONS
(I84788).DAILY_DISTANCE
foi renomeado comoDAILY_DISTANCE_M
. (I4f758).
Correções de bugs
- Atualização da documentação de tipos de propriedades para esclarecer por que o valor estático é aplicado. Especifique o valor padrão usado se o valor estático não for fornecido. (I155aa).
- Os namespaces
PlatformDataKey
precisam seguir a nomenclatura de estilo Java. (I47bda)
Versão 1.0.0-alpha10
24 de maio de 2023
Lançamento de androidx.wear.protolayout:protolayout-*:1.0.0-alpha10
. A versão 1.0.0-alpha10 contém estas confirmações.
Novos recursos
- Adição de
AppDataKey
para acessar o estado enviado por push do app,PlatformDataKey
para acessar dados da plataforma e suporte a namespaces emStateStore
. (I7985e). - Compatibilidade com operações
Equal
eNotEqual
paraDynamicBool
. (I6a0c1).
Mudanças na API
- A classe
FontStyles
agora é final (Iaa2ea). - O uso de
LayoutElementBuilders#FontStyles
foi descontinuado Useandroidx.wear.protolayout.Typography
ou crie seu próprioFontStyle
. (Ic929b). - Oculte a interface aninhada
Action#Builder
da interfaceAction
. As implementações do Builder já são fornecidas pelas classesLoadAction
eLaunchAction
. (I1d70c) - Permitir o uso de
DynamicFloat
comFloatProp
. Observe queFloatProp
não exige restrições de layout porque não é usado como uma propriedade de mudança de layout. (I286ac) - As ações
LoalAction
eSetStateAction
foram removidas porque ainda não eram compatíveis. (I5d6a6) - Foi adicionada compatibilidade com o formato ARGB_8888 para recursos de imagem inline. (I8a07c).
StateEntryValue
foi renomeado comoDynamicDataValue
, e as APIs de estado foram atualizadas para usarDynamicDataKey
(If1c01).- Estamos limitando o número de entradas permitidas no
StateStore
para garantir que o uso da memória e o tempo de atualização do estado sejam bem contidos e controlados para cada instância doStateStore
. Como resultado, o desenvolvedor precisa garantir que não haja mais deMAX_STATE_ENTRY_COUNT
entradas no mapa. Caso contrário, ele vai receber umIllegalStateException
ao criar ou atualizar oStateStore
. (Ibadb3). - Ocultar as classes
OnLoadTrigger
eOnConditionMetTrigger
e renomearsetTrigger
comosetCondition
paraOnConditionMetTrigger
. (Ibf629) - Por motivos de desempenho e compatibilidade, os renderizadores
ProtoLayout
não são compatíveis com o conjunto completo de recursos nos recursosAnimatedVectorDrawable
. Vamos marcar essas APIs como experimentais até que possamos definir o conjunto compatível. (Ic6daf) - Adicionamos tipos dinâmicos para distância, calorias e andares diários. As chaves para fontes de integridade da plataforma agora estão em
PlatformHealthSources.Keys
(Ib7637) - O método
Easing.cubicBezier
substitui oCubicBezierEasing.Builder
. Com isso, a classeEasingFunction
é removida, e as constantes de suavização dessa classe agora podem ser acessadas diretamente da interfaceEasing
. Além disso,setInfiniteRepeatable
foi substituído porINFINITE_REPEATABLE_WITH_RESTART
eINFINITE_REPEATABLE_WITH_REVERSE
(Ib41e7). - Implemente
PlatformDataProvider
para fornecer frequência cardíaca e passos diários. A interfaceSensorGateway
foi removida da API pública. (I55b84). - Adicione
PlatformDataProvider
e atualizeStateStore
para registrar emPlatformDataProvider
quando a chave compatível do provedor for exigida pelo nó do pipeline de expressão. (Ib616a). - O
SensorGateway
não é maisCloseable
porque não mantém mais nenhum estado. (I6b4f7) - Permitir o uso do
FloatProp
com oDynamicFloat
para acompanhar o progresso noCircularProgressIndicator
. Isso é compatível com renderizadores que oferecem suporte à versão 1.2. Renderizadores antigos vão usar ostaticValue
se ele for fornecido. Caso contrário, vão usar 0 (I0d91b). - As constantes
MultiButtonLayout
foram refatoradas na classeLayoutDefaults.MultiButtonLayoutDefaults
, que agora contém as constantes para tamanhos de botões, dependendo do número de botões no layout. (I13973) - Suporte ao uso de
StringProp
comDynamicString
no texto do Material. Isso é compatível com renderizadores que oferecem suporte à versão 1.2. Renderizadores antigos vão usar o valor estático fornecido. Atualize o tipo de retornoText#getText
deString
paraStringProp
. (I7275b).
Versão 1.0.0-alpha09
10 de maio de 2023
Lançamento de androidx.wear.protolayout:protolayout-*:1.0.0-alpha09
. A versão 1.0.0-alpha09 contém estas confirmações.
Novos recursos
- Adicionamos um elemento de layout de extensão experimental. Isso não pode ser usado por padrão e exige uma extensão de renderizador capaz de entender o elemento de layout. (I6581d).
- Adição de compatibilidade com
StrokeCap
paraArcLine
. (I94951) - Adição de suporte à operação instantânea condicional. (I489a7).
- Adição de suporte à operação de duração condicional. (Iab469).
- Adição de suporte para criar duração em segundos. (Ib5fa1)
Mudanças na API
- Os métodos
enable/disablePlatformSource
foram removidos deDynamicTypeEvaluator
. O autor da chamada é responsável pelas atualizações. (I78c6d). - Permitir o limite do tamanho de tipos de dados vinculados. (Ie2966)
- Adição de suporte para descrição de conteúdo dinâmico em
protolayout-material
. (I62c8e) - Use long e
@IntRange
para duração e atraso em AnimationParameters. (I388b6).
Versão 1.0.0-alpha08
19 de abril de 2023
Lançamento de androidx.wear.protolayout:protolayout-*:1.0.0-alpha08
. A versão 1.0.0-alpha08 contém estas confirmações.
Novos recursos
AndroidTextStyle
foi adicionado(a) aLayoutElementBuilders
. (I8d967)- Adicionamos suporte para definir o padding de fonte de exclusão no texto do Material
ProtoLayout
. (I17f5d). - O ARGB_8888 agora é compatível com imagens inline. (I18c1e)
- O
DynamicColor
agora é compatível com a operaçãoonCondition
. (I10927)
Mudanças na API
- Suporte à duração personalizada para animação inversa (I3251f)
- Adicionamos o modificador
SemanticDescription
. Além disso,ContentDescription
não pode ser vinculado. (I3f1d). - O método
DynamicBool.isFalse()
foi substituído porDynamicBool.negate()
, e oDynamicBool.isTrue()
foi removido. Além disso, valores NaNDynamicFloat
e a redução de umDynamicInt32
para umDynamicFloat
agora emitem um resultado dinâmico inválido. (I6ac1e). - Os formatadores de números inteiros e de ponto flutuante agora usam o padrão Builder. (Ieb213).
Correções de bugs
- O valor estático de substituição foi removido dos campos animáveis. (Ifcb01)
- O
DynamicTypeValueReceiver#onPreUpdate
foi removido. (I2dc35). - O tamanho das strings em expressões dinâmicas agora é limitado. (I4c93).
- As dependências do Gradle agora estão definidas corretamente como
api
em vez deimplementation
quando necessário. (I40503)
Versão 1.0.0-alpha07
5 de abril de 2023
Lançamento de androidx.wear.protolayout:protolayout-*:1.0.0-alpha07
. A versão 1.0.0-alpha07 contém estas confirmações.
Novos recursos
- Adição de suporte a valores dinâmicos para
StringProp
(I04342). - Marcar elementos de layout vinculáveis (Ia110b)
Mudanças na API
sensorGateway#registerSensorGatewayConsumer
usa o tipo de dados como parâmetro em vez do método em "Consumer". (Icf314).ObservableStateStore
foi renomeado comoStateStore
(Ieb0e2).- Adição de
DynamicTypeEvaluator.Builder
em vez de argumentos de construtor para permitir mais argumentos opcionais, incluindoObservableStateStore
, que agora tem como padrão uma loja vazia. (I6f832). - Refatoração da ordem dos parâmetros em
DynamicTypeEvaluator
. (Ic1ba4).
Correções de bugs
- Propagação correta de indicadores de fontes de sensores da plataforma para nós downstream (I5a922)
Versão 1.0.0-alpha06
22 de março de 2023
Lançamento de androidx.wear.protolayout:protolayout-*:1.0.0-alpha06
. A versão 1.0.0-alpha06 contém estas confirmações.
Novos recursos
- Adicionamos uma API experimental para usar a frequência cardíaca e as etapas diárias em expressões dinâmicas (Ifd711).
- Adicionamos suporte a atraso para frente e para trás em animações. (Ic25f7).
- Adicionamos suporte a
DynamicColor
para borda e segundo plano - Adicionamos suporte a valores dinâmicos aos tipos em
DimensionBuilder
. - O layout e os componentes de
tiles-material
estão sendo movidos paraprotolayout-material
Mudanças na API
LoadActionListener
foi adicionado(a) aProtoLayoutViewInstance
. (If7806)
Correções de bugs
FloatNodesTest
foi adicionado (Id7281).- Correção de uma falha no renderizador quando não é possível carregar um bitmap estruturado.
Versão 1.0.0-alpha05
8 de março de 2023
Lançamento de androidx.wear.protolayout:protolayout-*:1.0.0-alpha05
. A versão 1.0.0-alpha05 contém estas confirmações.
Novos recursos
- Adicionamos uma animação experimental de "atualização de conteúdo" ao objeto
Modifiers
. Essa animação é acionada sempre que o elemento (com esse modificador) ou um dos filhos dele muda durante uma atualização de layout. (bd03e5d)
Mudanças na API
- Adicionamos
forwardRepeatDelayMillis
ereverseRepeatDelayMillis
aRepeatable
. Também renomeamosdelayMillis
emAnimationSpec
parastartDelayMillis
(Ifb266). - Os métodos
DynamicTypeEvaluator.bind
agora aceitam um Executor. (I346ab). - Adicionamos o método
startEvaluation
aoBoundDynamicType
para acionar a avaliação depois que o tipo dinâmico é vinculado. (I19908)
Correções de bugs
- O objeto Animator será reutilizado para animações subsequentes de um único elemento. (Ia3be9)
Versão 1.0.0-alpha04
22 de fevereiro de 2023
Lançamento de androidx.wear.protolayout:protolayout-*:1.0.0-alpha04
. A versão 1.0.0-alpha04 contém estas confirmações.
Novos recursos
- O
ObservableStateStore
agora informa os listeners quando uma chave também é removida. - Adicionamos a versão do esquema do renderizador e a escala de fonte a
DeviceParameters
, que pode ser usada para criar layouts condicionalmente em resposta a diferentes versões e configurações de fonte. - Adicionamos suporte para animação de valores
DynamicInt32
(I05485). - Adicionamos gatilhos
OnLoad
eOnConditionalMet
. Eles podem ser usados para iniciar animações que oferecem suporte a um gatilho. - Adicionamos peso de layout para dimensões expandidas e tamanho mínimo para dimensões agrupadas.
- Adicionamos tipos dinâmicos de duração e instantâneos. Eles podem ser usados para representar um instante ou uma duração em uma expressão dinâmica.
- Adicionamos suporte para
AnimatedVectorDrawable
eSeekableAnimatedVectorDrawable
como recursos de layout.
Mudanças na API
- Os dados do sensor exigem a API 29 ou mais recente. (I8099e)
- Adicionamos dois métodos auxiliares
launchAction
(para iniciar atividades).
Correções de bugs
- Renomeação de
set/getSpec
paraset/getAnimationSpec
na animação de blocos (I3d74b).
Versão 1.0.0-alpha03
8 de fevereiro de 2023
Lançamento de androidx.wear.protolayout:protolayout-*:1.0.0-alpha03
. A versão 1.0.0-alpha03 contém estas confirmações.
Novos recursos
- Adicionamos
toByteArray()
efromByteArray()
aos tipos dinâmicos na biblioteca protolayout-express. - Adicionamos
toString()
aos tipos dinâmicos na biblioteca protolayout-expression. - Adicionamos suporte a avaliações para tipos dinâmicos. A classe
DynamicTypeEvaluator
da biblioteca protolayout-expression-pipeline pode ser usada para avaliar e receber valores atualizados para um tipo dinâmico criado anteriormente (DynamicString
,DynamicFloat
, …) - Quando não é possível reproduzir as animações, seja porque foram desativadas pelo avaliador ou porque o número de animações em execução atingiu o limite definido, os valores estáticos definidos no nó animado são usados para substituir a animação.
Versão 1.0.0-alpha02
25 de janeiro de 2023
Lançamento de androidx.wear.protolayout:protolayout:1.0.0-alpha02
, androidx.wear.protolayout:protolayout-expression:1.0.0-alpha02
e androidx.wear.protolayout:protolayout-proto:1.0.0-alpha02
. A versão 1.0.0-alpha02 contém estas confirmações.
Novos recursos
- Os builders de layout de
androidx.wear.tiles:tiles
estão sendo movidos paraandroidx.wear.protolayout:protolayout
. O uso deandroidx.wear.tiles:tiles
vai ser descontinuado em uma das próximas versões Alfa.
Versão 1.0.0-alpha01
11 de janeiro de 2023
Lançamento de androidx.wear.protolayout:protolayout-expression:1.0.0-alpha01
e androidx.wear.protolayout:protolayout-proto:1.0.0-alpha01
. A versão 1.0.0-alpha01 contém estas confirmações.
Novos recursos
- Esta versão apresenta uma nova biblioteca ProtoLayout Expression para criar expressões usando variáveis dinâmicas.