wear protolayout

  
Essa biblioteca permite definir um conjunto de layouts de interface e expressões que não são da interface para renderização/avaliação em plataformas remotas.
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.

Criar novo problema

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 de MaterialScope 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 em onTileResourceRequest quando usados. (I525bd, b/428692714)
  • ProtoLayout Auxiliares do Kotlin para Image e ImageResources para uso com ProtoLayoutScope 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 em onTileRequest, sem precisar registrá-lo no mapeamento em onTileResourcesRequest. (Ifa69a, b/428693523)
  • Adição do conceito ProtoLayoutScope para preparar um melhor gerenciamento de recursos no Tiles. (I132ce, b/428692423).
  • O ProtoLayout Material3 MaterialScope agora expõe o campo Context 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 em Arc/ArcLine/ArcText/DashedArcLine. (I83959, b/427556439)

Mudanças na API

  • Descontinuamos os métodos Image.Builder() e Image.Builder.setResourceId em favor da nova API de registro automático de recursos, disponível nas APIs Image.Builder(ProtoLayoutScope) e Image.Builder.setImageResource, que eliminam a necessidade de substituir onTileResourcesRequest. (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

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ção
    • iconEdgeButton, 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.
  • 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, incluindo clearSemantics, background, clip, opacity etc.), conversível para o objeto Modifiers atual
    • LayoutColors e LayoutString como tipos com suporte mais fácil para usar campos e restrições dinâmicos
    • text e fontStyle
    • Melhor suporte a mapas para StateBuilder, incluindo DynamicDataMap e métodos de fábrica, como intAppDataKey, para facilitar a criação de objetos AppDataKey.
  • 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 modificadores Background para elementos como Box, 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 do ArcLine 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 e DashedArcLine não vão gerar exceção se layoutConstraints para valores dinâmicos não estiver definido. Renderizadores mais antigos ainda exigem que o layoutConstraints 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ção
    • iconEdgeButton, 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.
  • 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, incluindo clearSemantics, background, clip, opacity etc.), conversível para o objeto Modifiers atual
    • LayoutColors e LayoutString como tipos com suporte mais fácil para usar campos e restrições dinâmicos
    • text e fontStyle
    • Melhor suporte a mapas para StateBuilder, incluindo DynamicDataMap e métodos de fábrica, como intAppDataKey, para facilitar a criação de objetos AppDataKey.
  • 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 modificadores Background para elementos como Box, 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 do ArcLine 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 como PlatformEventSources.isLayoutVisible e adicione uma nova API experimental PlatformEventSources.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ção FontSetting.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 e exitTransition (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 e ProgressIndicatorColors 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ção backgroundImage removendo a sobreposição. Além disso, permita que a função backgroundImage 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 gerar UnsupportedOperationException em vez de IllegalArgumentException. (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 com StateBuilder 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 objetos AppDataKey (Icea2a).
  • Agora, DynamicDataValue tem um método hasValueOfType(Class<?>) além dos métodos hasInt/hasColor/... (I4f7a6).
  • Adicionamos errorDim ao ProtoLayout ColorScheme 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 como addToStateMap, e os métodos DynamicDataMap.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 em constructGraphic 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 em SweepGradient. (I0146d).
  • Correções do Documentos. (I4a63a).
  • Atualizamos os componentes do Material 3 (graphicCard e avatarButton) para oferecer um substituto quando a dimensão de expansão weight não é compatível (por exemplo, abaixo da API 33). Atualizamos o componente de texto para usar TEXT_OVERFLOW_ELLIPSIZE_END quando TEXT_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 e opacity. (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 de foldRight 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 e LayoutColor.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 e metadata (I8720a)
  • Adição dos modificadores background,clip e clickable (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 e textDataCard do ProtoLayout Material3. (I4e1e4).
  • Adição do componente appCard do ProtoLayout Material3. (Id4c57).
  • Abstraia EdgeButtonColors para ButtonColors. (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 e LayoutElementMatcher à 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 e primaryLayout.

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 e androidx.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 e androidx.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 por 48dp.
  • Melhoramos PrimaryLayout e EdgeContentLayout adicionando setResponsiveContentInsetEnabled 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

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 e FontSetting.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.
  • O modificador Corner foi estendido para permitir a especificação de cada CornerRadius 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 de LayoutElement. Essas transformações podem ser animadas usando valores dinâmicos.
  • Adicionamos setArcDirection com as opções Clockwise, CounterClockwise e Normal a todos os elementos de arco (Arc, ArcLine e ArcText) 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 menos 48dp por 48dp.
  • Melhoramos PrimaryLayout e EdgeContentLayout adicionando setResponsiveContentInsetEnabled 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 API preferredFontFamilies. (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 ao Material.CompactChip para verificar se o conteúdo do texto foi definido. (I6e8fc)

Mudanças na API

  • As constantes FontFamily foram movidas para FontStyle em vez da classe Builder. (I06ced)
  • Atualize as APIs FontSetting.weight e FontSetting.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:
    • configuração de recursos de fonte, como definir a fonte como tabular. (If12b7)
    • configuração de variação de fonte, como definir largura personalizada para fontes variáveis. (I2b36d)
  • 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 a PrimaryLayout e EdgeContentLayout. (I4dc32).

Correções de bugs

  • Renomeamos a nomenclatura dos eixos de fontes variáveis de axisName para axisTag. (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 um PlatformDataValue em outro. (I50ba3).
  • Text#setIsScalable foi renomeado como Text#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 sem setResponsiveContentInsetEnabled 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 adicionar ArcDirection (Clockwise, Counterclockwise ou Normal). Adicionar esse comportamento a Arc, ArcLine ou ArcText vai corrigir o comportamento deles em layouts da direita para a esquerda. (I90699).
  • O EdgeContentLayout foi atualizado com um novo setter setResponsiveContentInsetEnabled 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

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 adicionar Brush com SweepGradient e ter uma sombra na tampa para representar melhor comprimentos maiores que 360 graus ao adicionar Shadow no StrokeCap atual.
  • DynamicInstant tem suporte para formatação de data e hora com fuso horário. DynamicInstant e DynamicDuration 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 adicionando TEXT_OVERFLOW_ELLIPSIZE e descontinuando TEXT_OVERFLOW_ELLIPSIZE_END.
  • O Spacer agora oferece suporte a dimensões expandidas com peso opcional. Para criar ExpandedDimensionProp, adicionamos um método auxiliar DimensionBuilders.weight.
  • Suporte para ocultar e mostrar dinamicamente elementos de layout com Modifier.visible. Isso inclui ter valores dinâmicos em BoolProp.
  • 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 ou ColorStops 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ão Floor em FloatToInt32Node quando não especificado. O nó ainda vai gerar uma exceção se o RoundMode 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 interface Comparable. (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 API TEXT_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 por Modifier.visible (I56902).
  • FontStyle#setSizes agora aceita int em vez de argumentos SpProp. (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 criar ExpandedDimensionProp com peso. (I4f72b).
  • DynamicInstant e DynamicDuration 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 para DyanamicInstant (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 para SweepGradient. (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 e getLayoutConstraintForDynamicAnchorAngle 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 30 LayoutElements aninhados. (I8a74b).

Correções de bugs

  • Adicionamos uma verificação para gerar uma exceção se DynamicColor tiver sido definido para um SpanText. (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() e StateBuilders.Builder.addKeyToValueMapping agora aceitam o mapeamento com segurança de tipos de DynamicDataKey para DynamicDataValue em vez de tipos genéricos não seguros. Isso significa que DynamicDataValue agora é digitado com o DynamicType dele. As constantes HEART_RATE_ACCURACY_X foram movidas para a raiz de PlatformHealthSources, para corresponder ao posicionamento de outras constantes do Android. As constantes int HEART_RATE_ACCURACY_X agora são usadas diretamente em DynamicHeartRateAccuracy.constant() e DynamicHeartRateAccuracy.dynamicDataValueOf() em vez de constantes de valor. (I82ff5).
  • A classe PlatformHealthSources.Constants foi instanciada por engano. Isso já foi corrigido. (Icb849).
  • PlatformTimeUpdateNotifier#setReceiver agora recebe Runnable em vez da função Supplier e Executor para notificar. (I9d938)
  • Mudamos o tipo de parâmetro em PlatformTimeUpdateNotifier#setReceiver de Callable para Supplier. (I664bf).
  • CompactChip e TitleChip 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 para getKeyToValueMapping e mude o tipo de retorno para Map<<AppDataKey<?>,DynamicDataValue>. (Iaa7ae).
  • Transformar StateStore em uma classe final (I408ca).
  • A interface TimeGateway foi substituída por PlatformTimeUpdateNotifier na biblioteca protolayout-expression-pipeline, que fornece a frequência desejada para atualizar dados de tempo. (I60869).
  • register/unregisterForData em PlatformDataProvider foi renomeado como set/clearReceiver (I14b02).
  • Em Material Text, getExcludeFontPadding foi renomeado como hasExcludeFontPadding. (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 como MAX_BUTTONS (I84788).
  • DAILY_DISTANCE foi renomeado como DAILY_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 em StateStore. (I7985e).
  • Compatibilidade com operações Equal e NotEqual para DynamicBool. (I6a0c1).

Mudanças na API

  • A classe FontStyles agora é final (Iaa2ea).
  • O uso de LayoutElementBuilders#FontStyles foi descontinuado Use androidx.wear.protolayout.Typography ou crie seu próprio FontStyle. (Ic929b).
  • Oculte a interface aninhada Action#Builder da interface Action. As implementações do Builder já são fornecidas pelas classes LoadAction e LaunchAction. (I1d70c)
  • Permitir o uso de DynamicFloat com FloatProp. Observe que FloatProp não exige restrições de layout porque não é usado como uma propriedade de mudança de layout. (I286ac)
  • As ações LoalAction e SetStateAction 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 como DynamicDataValue, e as APIs de estado foram atualizadas para usar DynamicDataKey (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 do StateStore. Como resultado, o desenvolvedor precisa garantir que não haja mais de MAX_STATE_ENTRY_COUNT entradas no mapa. Caso contrário, ele vai receber um IllegalStateException ao criar ou atualizar o StateStore. (Ibadb3).
  • Ocultar as classes OnLoadTrigger e OnConditionMetTrigger e renomear setTrigger como setCondition para OnConditionMetTrigger. (Ibf629)
  • Por motivos de desempenho e compatibilidade, os renderizadores ProtoLayout não são compatíveis com o conjunto completo de recursos nos recursos AnimatedVectorDrawable. 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 o CubicBezierEasing.Builder. Com isso, a classe EasingFunction é removida, e as constantes de suavização dessa classe agora podem ser acessadas diretamente da interface Easing. Além disso, setInfiniteRepeatable foi substituído por INFINITE_REPEATABLE_WITH_RESTART e INFINITE_REPEATABLE_WITH_REVERSE (Ib41e7).
  • Implemente PlatformDataProvider para fornecer frequência cardíaca e passos diários. A interface SensorGateway foi removida da API pública. (I55b84).
  • Adicione PlatformDataProvider e atualize StateStore para registrar em PlatformDataProvider quando a chave compatível do provedor for exigida pelo nó do pipeline de expressão. (Ib616a).
  • O SensorGateway não é mais Closeable porque não mantém mais nenhum estado. (I6b4f7)
  • Permitir o uso do FloatProp com o DynamicFloat para acompanhar o progresso no CircularProgressIndicator. Isso é compatível com renderizadores que oferecem suporte à versão 1.2. Renderizadores antigos vão usar o staticValue se ele for fornecido. Caso contrário, vão usar 0 (I0d91b).
  • As constantes MultiButtonLayout foram refatoradas na classe LayoutDefaults.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 com DynamicString 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 retorno Text#getText de String para StringProp. (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 para ArcLine. (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 de DynamicTypeEvaluator. 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) a LayoutElementBuilders. (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ção onCondition. (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 por DynamicBool.negate(), e o DynamicBool.isTrue() foi removido. Além disso, valores NaN DynamicFloat e a redução de um DynamicInt32 para um DynamicFloat 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 de implementation 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 como StateStore (Ieb0e2).
  • Adição de DynamicTypeEvaluator.Builder em vez de argumentos de construtor para permitir mais argumentos opcionais, incluindo ObservableStateStore, 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 para protolayout-material

Mudanças na API

  • LoadActionListener foi adicionado(a) a ProtoLayoutViewInstance. (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 e reverseRepeatDelayMillis a Repeatable. Também renomeamos delayMillis em AnimationSpec para startDelayMillis (Ifb266).
  • Os métodos DynamicTypeEvaluator.bind agora aceitam um Executor. (I346ab).
  • Adicionamos o método startEvaluation ao BoundDynamicType 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 e OnConditionalMet. 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 e SeekableAnimatedVectorDrawable 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 para set/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() e fromByteArray() 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 para androidx.wear.protolayout:protolayout. O uso de androidx.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.