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
11 de dezembro de 2024 1.2.1 - - 1.3.0-alpha05

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-alpha04"

    // Use to implement support for Wear ProtoLayout
    implementation "androidx.wear.protolayout:protolayout:1.3.0-alpha04"

    // Use to utilize components and layouts with Material design in your ProtoLayout
    implementation "androidx.wear.protolayout:protolayout-material:1.3.0-alpha04"
}

Kotlin

dependencies {
    // Use to implement support for Wear ProtoLayout Expressions
    implementation("androidx.wear.protolayout:protolayout-expression:1.3.0-alpha04")

    // Use to implement support for Wear ProtoLayout
    implementation("androidx.wear.protolayout:protolayout:1.3.0-alpha04")

    // Use to utilize components and layouts with Material design in your ProtoLayout
    implementation("androidx.wear.protolayout:protolayout-material:1.3.0-alpha04")
}

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.3

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 estas confirmações.

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 cartão ProtoLayout Material3. (Ic985a).

Correções de bugs

  • Essa biblioteca agora usa anotações de nulidade JSpecify, que são de uso de tipo. Os desenvolvedores Kotlin precisam usar os seguintes argumentos do compilador para aplicar o uso correto: -Xjspecify-annotations=strict, -Xtype-enhancement-improvements-strict-mode (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 estas confirmações.

Novos recursos

  • A forma Material3 foi atualizada para ser uma classe com campos que contêm o valor real do canto, assim como no Wear Compose. (Ied8cd).
  • As cores do Material 3 foram atualizadas para incluir o conceito ColorScheme, assim como no Wear Compose. (If645e).
  • Adicione vários comparadores 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 estas confirmações.

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 estas confirmações.

Novos recursos

  • Versão inicial da biblioteca Material 3. Inclui os componentes text, edgeButton, buttonGroup e primaryLayout.

Correções de segurança

  • A partir dessa mudança, o androidx é compilado com o protobuf 4.28.2 para resolver o CVE-2024-7254. Faça upgrade da dependência da versão 1.3.0-alpha01 de androidx.wear.protolayout:protolayout-proto e androidx.wear.protolayout:protolayout-external-protobuf para a versão 1.3.0-alpha02 para resolver 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 estas confirmações.

Correções de bugs

  • A disponibilidade dos nomes das famílias de fontes Roboto e Roboto Flex depende do dispositivo. (I193be).
  • A família de fontes Roboto Flex foi ativada 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 estas confirmações.

Correções de segurança

  • A partir dessa mudança, o androidx é compilado com o protobuf 4.28.2 para resolver o 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 para resolver 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 estas confirmações.

Mudanças importantes desde a 1.1.0

  • O FontStyle foi atualizado para ter mais suporte a fontes para eixos variáveis e uma API de seleção de fontes melhor para oferecer suporte às próximas fontes Flex.
  • Compatibilidade com outros modificadores:
    • Modificador de transformação que oferece translação, rotação e escalonamento com ou sem animações.
    • Especifique valores diferentes (horizontal e vertical) para cada raio de canto.
  • Melhoria na acessibilidade de todos os alvos de toque com a extensão da área de toque de qualquer elemento que usa o modificador clicável para ser pelo menos 48dp por 48dp.
  • Melhorias em PrimaryLayout e EdgeContentLayout com a adição de setResponsiveContentInsetEnabled para oferecer melhor suporte ao comportamento responsivo desses layouts em diferentes tamanhos de tela e melhorar a consistência dos blocos.
  • Melhoria na escala/não escala do Material Text para o dimensionamento de fonte não linear do Android 14.
  • Melhoria no suporte à direção do layout RTL em todos os elementos de arco.

Outras mudanças

  • Para conferir 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 estas confirmações.

Correções de bugs

  • Corrigimos o ícone padrão do Material Design para que ele possa ser usado como um ícone apenas se nenhum dos rótulos primário ou secundário for transmitido. (Iceef9).
  • A documentação sobre layouts do Material Design foi atualizada para incluir imagens da página relevante para facilitar 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 estas confirmações.

Novos recursos

A versão 1.2.0-beta01 do Wear ProtoLayout indica que esta versão da biblioteca tem todos os recursos e a API está bloqueada (exceto quando marcada como experimental). O Wear ProtoLayout 1.2 inclui as seguintes novas APIs e funcionalidades:

  • O FontStyle foi atualizado para ter mais suporte a fontes:
    • Definir diferentes configurações de variação de fonte, 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)
    • Melhorias nas APIs de seleção de fontes para oferecer suporte às próximas fontes flex, especificando os nomes das famílias de fontes preferidas a serem usadas.
  • O modificador Corner foi estendido para oferecer suporte à especificação de cada CornerRadius com valores horizontais e verticais separados, permitindo a criação de elementos com cantos assimétricos.
  • Um novo modificador Transformation foi adicionado, oferecendo translação, rotação e dimensionamento de LayoutElement. Essas transformações podem ser animadas usando valores dinâmicos.
  • Foram adicionadas as opções setArcDirection com Clockwise, CounterClockwise e Normal a todos os elementos de arco (Arc, ArcLine e ArcText) para melhor suporte a diferentes direções de layout (como LTR e RTL).
  • Melhoria na acessibilidade de todas as áreas de toque com a extensão da área de toque de qualquer elemento que usa o modificador Clickable para ser pelo menos 48dp por 48dp.
  • Melhorias em PrimaryLayout e EdgeContentLayout com a adição de 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 de linter para sugerir o uso dessas APIs com uma correção rápida.
  • Melhoria na escala/não escala do Material Text para o dimensionamento de fontes não linear do Android 14.

Mudanças na API

  • O nome da família de fontes padrão (DEFAULT_SYSTEM_FONT) foi removido, porque é implícito 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 estas confirmações.

Novos recursos

  • O método hasText foi adicionado a Material.CompactChip para verificar se o conteúdo de texto foi definido. (I6e8fc).

Mudanças na API

  • O const FontFamily foi movido para FontStyle em vez da classe Builder (I06ced).
  • A API FontSetting.weight e FontSetting.width foi atualizada para incluir anotações de intervalo e mudar o parâmetro de peso para int. (Ia726c).

Correções de bugs

  • Textos não dimensionáveis na biblioteca do Material Design agora funcionam corretamente com o dimensionamento de fontes 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 estas confirmações.

Mudanças na API

  • A API de cantos assimétricos foi adicionada para especificar separadamente o raio de cada canto com dois valores. (Icbd69).
  • A API FontSetting foi ampliada para incluir:
    • definir a fonte como tabular. (If12b7).
    • configuração de variação de fonte, como definir largura personalizada para fontes variáveis. (I2b36d).
  • A API de família de fontes foi adicionada a FontStyle para permitir a especificação de uma lista de ordenação de quais famílias de fontes devem ser usadas. (Iba9f5).
  • As constantes foram renomeadas para a altura do espaço entre o conteúdo e o rótulo secundário no LayoutDefaults do Material Design que foram prefixados inicialmente com "Conteúdo de borda" para serem mais genéricas, já que podem ser aplicadas a PrimaryLayout e EdgeContentLayout. (I4dc32).

Correções de bugs

  • O nome dos eixos de fontes variáveis foi renomeado 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 estas confirmações.

Novos recursos

  • Adição da API para definir valores de peso personalizados para FontStyle. (I7390a).

Correções de bugs

  • Correção da falha em getTouchDelegateInfo devido ao 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 estas confirmações.

Mudanças na API

  • Adicionamos suporte para desativar o feedback de ondulação em elementos individuais clicáveis. (If1ede).
  • A API para transformação foi removida de ArcModifiers porque não oferece suporte a esse recurso (Ic0827).
  • O builder ArcDirectionProp agora espera um valor no construtor. (I76ada).
  • O método PlatformDataValues.Builder.putAll permite mesclar um PlatformDataValue a outro. (I50ba3).
  • Text#setIsScalable foi renomeado como Text#setScalable. (If920e).
  • O Material Text pode definir se vai usar o tamanho escalonável (que 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 o ícone e atualização da API para permitir essa opção. (I6589e).

Correções de bugs

  • Correção de um problema de dados de plataforma duplicados durante a inicialização. (Iba0fd).
  • Um novo getter foi introduzido em DynamicDataNode para recuperar o custo do nó. O custo é usado ao adquirir a cota de nó dinâmico. Atualmente, os nós com valores fixos têm um custo de 0, e todos os outros têm um custo de 1. (Ia33e1).
  • Removemos 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 fornecer 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 estas confirmações.

Novos recursos

  • Os elementos ProtoLayout Arc agora 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 RTL. (I90699).
  • O EdgeContentLayout foi atualizado com um novo setter setResponsiveContentInsetEnabled para um melhor alinhamento com as diretrizes de UX, consistência nos blocos com o rótulo principal no lugar fixo na parte de cima e inserção responsiva para rótulos. (I60175).
  • Adicionamos PrimaryLayout.setResponsiveContentInsetEnabled, que adiciona um inseto responsivo ao rótulo principal, ao rótulo secundário e ao ícone de baixo neste 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 da fonte 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 a elipse, o espaçamento entre letras e o alinhamento central são usados no texto. (I716c7).
  • Adição de uma solução alternativa para um problema de desenho de arco de 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 gradientes e melhor representação de comprimentos maiores que 360 graus no ArcLine.
  • A formatação de data e hora oferece suporte a diferentes fusos horários para tipos de dados dinâmicos.
  • Melhores opções de autodimensionamento e elipse de texto para processar texto truncado.
  • O espaço tem suporte a dimensões expandidas com peso opcional.
  • A anotação de requisito de versão do esquema para todas as APIs ProtoLayout.
  • A área de destino foi estendida para qualquer elemento Clickable de 48 dp x 48 dp, para atender aos requisitos de acessibilidade.
  • O padding da fonte é desativado por padrão e é o único comportamento em todos os elementos de texto e componentes do Material Design que contêm texto.

Outras mudanças

  • Para conferir 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 é marcado imediatamente após ativar a atualização. (I77145).
  • 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 de 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 tem todos os recursos e a API está bloqueada (exceto quando marcada como experimental). O Wear ProtoLayout 1.1 inclui as seguintes novas APIs e funcionalidades:

  • Agora, ArcLine oferece suporte a gradientes ao adicionar Brush com SweepGradient e ter uma sombra no limite para representar melhor o comprimento maior que 360 graus adicionando Shadow ao StrokeCap.
  • 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 de texto que permite definir vários tamanhos para FontStyle.setSizes, em que o tamanho do texto é dimensionado automaticamente com base no espaço que ele tem dentro do elemento pai. Além disso, melhoramos as opções de omissão de texto que transborda, adicionando TEXT_OVERFLOW_ELLIPSIZE e descontinuando TEXT_OVERFLOW_ELLIPSIZE_END.
  • Agora, o Spacer oferece suporte a dimensões expandidas com peso opcional. Para criar ExpandedDimensionProp, adicionamos um método auxiliar DimensionBuilders.weight.
  • Suporte para ocultar e mostrar elementos de layout dinamicamente com Modifier.visible. Isso inclui valores dinâmicos em BoolProp.
  • Todas as APIs ProtoLayout agora têm a anotação de requisito de versão do esquema, e a versão pode ser verificada antes de chamar uma API mais recente.
  • Agora, todos os elementos que têm Clickable têm a área de destino estendida para pelo menos 48x48 no renderizador para oferecer suporte aos requisitos de acessibilidade.
  • Seguindo outras iniciativas de componentes do Material Design e do Compose, desativamos o padding da fonte por padrão em todos os elementos Text. Além disso, AndroidTextStyle e setters relacionados foram removidos da API pública com as seguintes correções de bugs:
  • Foi adicionado um setter para posicionar o conteúdo de borda em EdgeContentLayout para que ele possa ser posicionado antes de outros conteúdos.
  • Geração consistente de uma exceção ao encontrar um valor de tipo enumerado não reconhecido.
  • Invalida o resultado de uma expressão quando ela gera um valor numérico inválido (NaN ou infinito) ou gera uma 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 ao renderizador para definir uma direção em que os elementos de arco são desenhados. (Idef5a).
  • RoundMode assume o valor 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 transbordamento de texto TEXT_OVERFLOW_ELLIPSIZE_END foi descontinuada. Use a nova API TEXT_OVERFLOW_ELLIPSIZE com um comportamento muito semelhante. (I822d8).
  • Seguindo outras iniciativas do Compose e dos componentes do Material Design, desativamos o padding de fonte por padrão em todos os elementos de texto. Além disso, AndroidTextStyle e 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

  • Gera uma exceção ao encontrar um valor de tipo enumerado 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 uma 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

  • Foi adicionado suporte experimental para ocultar/mostrar elementos de layout de forma dinâmica (I64a78).
  • Foi adicionado suporte a valores dinâmicos a BoolProp (I2fe96).
  • Adição de anotação de requisito de versão do esquema às APIs ProtoLayout (I0f03c).
  • A API foi ampliada com a nova opção em TextOverflow para elipse do texto em um contêiner pai fixo, mesmo quando o número máximo de linhas não é alcançado (mas não há espaço suficiente para o texto). (I110a9).
  • Foi adicionado o 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

  • A API foi atualizada para ocultar DynamicZonedDateTime e mover todas as operações dela para DyanamicInstant (I34b94).
  • O espaçador agora oferece suporte à dimensão expandida 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

  • Um campo Shadow StrokeCap ArcLine foi adicionado à API. (I830ec).
  • A API foi ampliada para poder especificar a largura ou a altura do Spacer para expansão. (I757ca).
  • Adicionamos uma API experimental para dimensionar automaticamente o tamanho do texto com base no espaço que ele tem no elemento pai. (Ibbe63).
  • Suporte ao tamanho mínimo clicável (I178e3).
  • Adição de suporte ao renderizador para StrokeCap Shadow. (I48b17).
  • Adição de suporte ao renderizador para o gradiente em 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

  • Uma opção de pincel foi adicionada a Arcline, com suporte para SweepGradient. (Ie7ce3).
  • Adição de suporte à formatação de data e hora com fuso horário. (Ibfae0).
  • Foram adicionados protos e wrappers Java necessários para a formatação de data/hora com fuso horário. (I97126).
  • Foram adicionados getters para ler o valor armazenado em um DynamicDataValue. (Ie6cea).
  • Foi adicionado um setter para posicionar o conteúdo de 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ários registros de origem de dados de tempo não era atualizada imediatamente. (I8e1a8).
  • Correção de um bug para centralizar o elemento raiz durante atualizações de diferença. (Ie48f7).
  • Os valores de restrição de layout não definidos (ou vazios) não serão mais ignorados. (Ibc785).
  • O atraso entre a exibição de um layout e a inicialização dos nós do pipeline foi reduzido. (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 a vinculações 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.

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 nenhum 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 o DynamicColor tiver sido definido para um SpanText. (I0e5bc).
  • 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 seguro de tipo de DynamicDataKey para DynamicDataValue em vez de genéricos não seguros. Isso significa que DynamicDataValue agora é digitado com o DynamicType. 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 da constante 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 oferecem suporte à adição de um ícone. (I5a01e).

Correções de bugs

  • Atualização das mensagens de propriedade com campos dinâmicos para usar o oneof (I81739).
  • Reutilização da implementação de setters para sobrecargas que têm setters (Ied70c).
  • As impressões digitais são registradas corretamente 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 um 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).
  • StateStore agora é 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).
  • Renomeação de register/unregisterForData em PlatformDataProvider para set/clearReceiver (I14b02).
  • No Material Text, getExcludeFontPadding foi renomeado como hasExcludeFontPadding. (Iea01d).
  • O seletor para alinhar perfeitamente o rótulo foi adicionado a todos os componentes de chip. Todos os ícones agora têm um destino mínimo de toque 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

  • Atualizamos os documentos de tipos de propriedades para esclarecer por que o valor estático é aplicado. Especifica o valor padrão usado se o valor estático não for fornecido. (I155aa).
  • Os namespaces PlatformDataKey precisam seguir a nomenclatura do 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

  • Foi adicionado AppDataKey para acessar o estado de envio do app. Foi adicionado PlatformDataKey para acessar dados da plataforma. Foi adicionado suporte a namespaces em StateStore. (I7985e).
  • Suporte a 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).
  • Ocultar a interface aninhada Action#Builder da interface Action. As implementações do Builder já são fornecidas pelas classes LoadAction e LaunchAction. (I1d70c).
  • Permita o uso de DynamicFloat com FloatProp. 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 tinham suporte. (I5d6a6).
  • Foi adicionado suporte ao formato ARGB_8888 para recursos de imagem inline. (I8a07c).
  • Renomeação de StateEntryValue para DynamicDataValue e atualização das APIs de estado para usar DynamicDataKey (If1c01).
  • Estamos limitando o número de entradas permitidas no StateStore para garantir que o uso de memória e o tempo de atualização de estado sejam bem contidos e controlados para cada instância do StateStore. Como resultado, o desenvolvedor precisa garantir que não tenha mais de MAX_STATE_ENTRY_COUNT entradas no mapa. Caso contrário, ele vai receber uma 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 oferecem suporte ao conjunto completo de recursos dos recursos AnimatedVectorDrawable. Vamos marcar essas APIs como experimentais até que possamos definir o conjunto compatível. (Ic6daf).
  • Foram adicionados tipos dinâmicos para distância diária, calorias diárias 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 foi removida, e as constantes de suavização dessa classe agora são diretamente acessíveis na 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 se registrar em PlatformDataProvider quando a chave com suporte do provedor for exigida pelo nó do pipeline de expressão. (Ib616a).
  • SensorGateway não é mais Closeable, porque não mantém mais nenhum estado. (I6b4f7).
  • Permitir o uso de FloatProp com DynamicFloat para o progresso em CircularProgressIndicator. Isso é compatível com renderizadores que suportam a versão 1.2. Os renderizadores antigos vão usar o staticValue se ele for fornecido. Caso contrário, eles vão usar o 0 (I0d91b).
  • As constantes MultiButtonLayout foram refatoradas para a classe LayoutDefaults.MultiButtonLayoutDefaults, que agora contém as constantes para tamanhos de botão dependendo do número de botões no layout. (I13973).
  • Suporte ao uso de StringProp com DynamicString no Material Text. Isso é compatível com renderizadores que suportam a versão 1.2. Os renderizadores antigos vão usar o valor estático fornecido. O tipo de retorno Text#getText foi atualizado 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. Ele não pode ser usado por padrão e requer uma extensão de renderizador capaz de entender o elemento de layout. (I6581d).
  • Adição de suporte a 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 a criação de duração a partir de segundos. (Ib5fa1).

Mudanças na API

  • Os métodos enable/disablePlatformSource foram removidos de DynamicTypeEvaluator. O autor da chamada precisa ser responsável pelas atualizações. (I78c6d).
  • Permite limitar o tamanho de tipos de dados vinculados. (Ie2966).
  • Foi adicionado suporte à 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 da fonte, exceto no Material Text ProtoLayout (I17f5d).
  • Agora, o ARGB_8888 tem suporte para imagens inline. (I18c1e).
  • Agora, o DynamicColor oferece suporte à operação onCondition. (I10927).

Mudanças na API

  • Suporte a duração personalizada para animação reversa (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 restrição de um DynamicInt32 a 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 fallback foi removido dos campos animáveis. (Ifcb01).
  • O DynamicTypeValueReceiver#onPreUpdate foi removido. (I2dc35).
  • A duração das strings em expressões dinâmicas agora é limitada. (I4c93).
  • As dependências do Gradle agora sã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 a StringProp (I04342).
  • Marcação de elementos de layout vinculáveis (Ia110b).

Mudanças na API

  • sensorGateway#registerSensorGatewayConsumer usa o tipo de dados como um parâmetro em vez de método no consumidor. (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 é padrão para uma loja vazia. (I6f832).
  • Ordem de parâmetros refatorada em DynamicTypeEvaluator. (Ic1ba4).

Correções de bugs

  • Os indicadores das fontes de sensores da plataforma são propagados corretamente para os 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 atrasos de reversão e avanço para animações. (Ic25f7).
  • Adicionamos suporte a DynamicColor para bordas 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 da falha do 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 será acionada sempre que o elemento (com esse modificador) ou um dos filhos dele mudar 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 aos listeners quando uma chave é removida.
  • Adicionamos a versão do esquema do renderizador e a escala da fonte a DeviceParameters, que podem ser usadas para criar layouts condicionalmente em resposta a diferentes versões e configurações de fonte.
  • Adicionamos suporte à animação de valores DynamicInt32 (I05485).
  • Adicionamos os gatilhos OnLoad e OnConditionalMet. Eles podem ser usados para iniciar animações que aceitam um gatilho.
  • Adicionamos o peso do layout para dimensões expandidas e o tamanho mínimo para dimensões unidas.
  • Adicionamos os tipos dinâmicos "duração" e "instantâneo". Eles podem ser usados para representar um instante ou 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.