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
7 de agosto de 2024 1.2.0 - - -

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.2.0"

    // Use to implement support for Wear ProtoLayout
    implementation "androidx.wear.protolayout:protolayout:1.2.0"

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

Kotlin

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

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

    // Use to utilize components and layouts with Material design in your ProtoLayout
    implementation("androidx.wear.protolayout:protolayout-material:1.2.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.2

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 oferecer suporte extra a fontes para os eixos variáveis e uma API de seleção de fonte melhor para oferecer suporte às próximas fontes Flex.
  • Suporte a mais modificadores:
    • Modificador de transformação que oferece translação, rotação e escalonamento, com ou sem animações.
    • Especificar valores diferentes (horizontal e vertical) para cada raio dos cantos.
  • Melhoramos a acessibilidade de todas as áreas de toque estendendo a área tocável de qualquer elemento que usa o modificador clicável para que pelo menos 48dp até 48dp.
  • PrimaryLayout e EdgeContentLayout foram aprimorados 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
  • Melhorias no dimensionamento/sem dimensionamento do Material Text para o dimensionamento de fontes não linear do Android 14.
  • Melhoria na compatibilidade com a direção de 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 estas confirmações.

Correções de bugs

  • Corrigimos o ícone do Material Design padrão para que ele só possa ser usado como ícone se nenhum dos rótulos principal ou secundário for transmitido. (Iceef9).
  • A documentação dos layouts do Material Design foi atualizada para incluir recursos visuais 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 essa versão da biblioteca tem todos os recursos e que a API está bloqueada (exceto quando marcada como experimental). O Wear ProtoLayout 1.2 inclui estas novas funcionalidades e APIs:

  • FontStyle foi atualizado para oferecer suporte a mais fontes, como o seguinte:
    • Definir uma configuração diferente de variação de fonte, por exemplo, FontSetting.weight e FontSetting.width
    • Definição da mesma largura para todos os caracteres numéricos, números tabulares (configuração de recurso de fonte FontSetting.tnum)
    • As APIs de seleção de fonte foram aprimoradas para oferecer suporte às próximas fontes flexíveis, especificando os nomes das famílias de fontes preferidos a serem usados.
  • Modificador Corner estendido para oferecer suporte à especificação de cada CornerRadius com valores horizontais e verticais separados, a fim de permitir a criação de elementos com cantos assimétricos.
  • Foi adicionado um novo modificador Transformation que oferece translação, rotação e escalonamento de LayoutElement. Essas transformações podem ser animadas usando valores dinâmicos.
  • Adição de setArcDirection com as opções Clockwise, CounterClockwise e Normal a todos os elementos de arco (Arc, ArcLine e ArcText) para oferecer melhor suporte a diferentes direções de layout (como LTR e RTL).
  • Melhoramos a acessibilidade de todas as áreas de toque estendendo a área tocável de qualquer elemento que usa o modificador Clickable para que ela seja pelo menos 48dp até 48dp.
  • PrimaryLayout e EdgeContentLayout foram aprimorados 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 no dimensionamento/sem dimensionamento da Text do Material Design 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 fica implícito porque a API preferredFontFamilies não é usada. (I39dab).
  • O parâmetro transmitido ao 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

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

Mudanças na API

  • FontFamily constantes são movidas para ficar em FontStyle, em vez de sua classe Builder. (I06ced).
  • As APIs FontSetting.weight e FontSetting.width foram atualizadas para incluir anotações de intervalo e mudar o parâmetro de peso para int. (Ia726c).

Correções de bugs

  • Textos não escalonáveis na biblioteca do Material 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 poder especificar separadamente o raio de cada canto com dois valores. (Icbd69).
  • A API FontSetting foi estendida para incluir:
    • configuração do recurso de fonte, por exemplo, definir a fonte como tabular. (If12b7).
    • configuração de variação de fonte, como a largura personalizada de fontes variáveis. (I2b36d).
  • A API de família de fontes foi adicionada a FontStyle para permitir a especificação de uma lista de ordem de quais famílias de fontes precisam ser usadas. (Iba9f5).
  • As constantes para altura do espaço entre o conteúdo e o rótulo secundário no LayoutDefaults do Material Design foram renomeadas para serem mais genéricas, já que podem ser aplicadas a PrimaryLayout e EdgeContentLayout. (I4dc32).

Correções de bugs

  • A nomenclatura dos eixos de fonte variáveis foi renomeada 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

  • Corrija a falha em getTouchDelegateInfo devido a um mapa de destino vazio. (I2accf).

Versão 1.2.0-alpha02

1o 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 à desativação do feedback de ondulação em elementos clicáveis individuais. (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 a mesclagem de uma PlatformDataValue com outra. (I50ba3).
  • Text#setIsScalable foi renomeado como Text#setScalable. (If920e).
  • O Material Text pode definir se é necessário usar o 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).
  • CompactChip foi corrigido para funcionar corretamente apenas com ícones e atualizar a API para permitir essa opção. (I6589e).

Correções de bugs

  • Correção de um problema de possíveis dados de plataforma duplicados durante a inicialização. (Iba0fd).
  • Introdução de um novo getter ao DynamicDataNode para extrair o custo do nó. O custo é usado ao adquirir a cota de nó dinâmico. No momento, os nós com valores fixos terão um custo de 0, e todos os outros nós terão 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 fornecer uma correção rápida. (I12025).
  • Há um limite para um 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) a ele. Adicionar esse comportamento a Arc, ArcLine ou ArcText vai corrigir o comportamento em layouts RTL. (I90699).
  • EdgeContentLayout foi atualizado com um novo setter de setResponsiveContentInsetEnabled para conseguir um melhor alinhamento com as diretrizes de UX, consistência em blocos com o rótulo principal no lugar fixo na parte superior e o encarte responsivo para rótulos. (I60175).
  • Adicionamos PrimaryLayout.setResponsiveContentInsetEnabled, que adiciona um encarte responsivo ao marcador principal, secundário e ao ícone inferior nesse layout para evitar que o conteúdo saia da borda da tela. (I0c457).
  • Adição de um método para remover 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 fonte em todos os elementos de texto por padrão, sem a opção de incluí-lo. (I3e300).

Correções de bugs

  • Corrigimos o problema de alinhamento do texto quando os tamanhos de reticências, o espaçamento entre letras e o alinhamento central eram usados no texto. (I716c7).
  • Foi adicionada uma solução alternativa para um problema de desenho de arco skia. (I08f09).
  • A direção de desenho de ArcLine para layouts RTL foi corrigida (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

  • Compatibilidade com gradiente e melhor representação de comprimentos maiores que 360 graus em 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 dimensionamento automático e reticências de texto para lidar com texto truncado.
  • O espaçador oferece suporte a dimensões expandidas com peso opcional.
  • Anotação de requisito da versão do esquema para todas as APIs ProtoLayout.
  • A área de destino foi ampliada para qualquer elemento Clickable em 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

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 é iniciado imediatamente após a ativação da atualização. (I77145).
  • Correção de CircularProgressIndicator para layouts RTL A partir de agora, será no sentido horário em todos os casos. (I95ee3).
  • Foi adicionada uma solução alternativa para um problema de desenho de arco 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 essa versão da biblioteca tem todos os recursos e que a API está bloqueada (exceto quando marcada como experimental). O Wear ProtoLayout 1.1 inclui estas novas funcionalidades e APIs:

  • O ArcLine agora oferece suporte ao gradiente adicionando Brush com SweepGradient e com uma sombra na extremidade para representar melhor um comprimento maior que 360 graus, adicionando Shadow ao StrokeCap existente.
  • DynamicInstant oferece suporte à formatação de data-hora zonal. 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 como FontStyle.setSizes, em que o tamanho do texto será dimensionado automaticamente com base no espaço dentro do pai. Além disso, melhoramos as opções de reticências para textos que estouram adicionando TEXT_OVERFLOW_ELLIPSIZE e descontinuando TEXT_OVERFLOW_ELLIPSIZE_END
  • Spacer agora é compatível com dimensões expandidas com peso opcional. Adicionamos um método auxiliar DimensionBuilders.weight para criar ExpandedDimensionProp.
  • Suporte a ocultar e exibir dinamicamente elementos de layout com Modifier.visible. Isso inclui ter valores dinâmicos em BoolProp.
  • Agora todas as APIs ProtoLayout têm a anotação do requisito de versão do esquema, e a versão pode ser verificada antes de chamar uma API mais recente.
  • Cada elemento que tem Clickable agora tem a área de destino estendida para pelo menos 48 x 48 no renderizador para oferecer melhor suporte aos requisitos de acessibilidade.
  • Seguindo outros componentes do Material Design e iniciativas do Compose, agora desativamos o padding de 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 da borda em EdgeContentLayout para que ele possa ser posicionado antes de outro conteúdo.
  • Geração consistente de uma exceção ao encontrar um valor de tipo enumerado não reconhecido.
  • Invalidar o resultado de uma expressão quando ela produzir um valor numérico inválido (NaN ou infinito) ou gerar um ArithmeticException.

Mudanças na API

  • Atualizamos a 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 a direção em que os elementos do arco são desenhados (Idef5a).
  • O padrão de RoundMode é 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 Design e iniciativas do Compose, agora 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 argumentos int em vez de SpProp. (I02b37).

Correções de bugs

  • Uma exceção é gerada ao encontrar um valor de tipo enumerado não definido ou não reconhecido. (I9d2cf).
  • Refatorar DynamicTypeBindingRequest. (I27b57).
  • Invalidar o resultado de uma expressão quando ela produzir um valor numérico inválido (NaN ou infinito) ou gerar 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

  • Foi adicionado suporte experimental à ocultação dinâmica de elementos de layout (I64a78).
  • Foi adicionado suporte a valor dinâmico para BoolProp (I2fe96).
  • A anotação de requisito da versão do esquema foi adicionada às APIs ProtoLayout (I0f03c).
  • Estender a API com a nova opção em TextOverflow para aplicar reticências ao texto em um contêiner pai fixo mesmo quando o número máximo de linhas não for atingido, mas não houver espaço suficiente para o texto. (I110a9).
  • Foi adicionado um 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 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

  • Adicionamos um campo ArcLine StrokeCap Shadow à API. (I830ec).
  • Estender a API para poder especificar a largura ou a altura do espaçador para expandir. (I757ca).
  • Adicionamos uma API experimental para dimensionar automaticamente o tamanho do texto com base no espaço do elemento pai. (Ibbe63).
  • Suporte ao tamanho mínimo clicável (I178e3).
  • Foi adicionado suporte ao renderizador para StrokeCap Shadow. (I48b17).
  • Foi adicionado suporte ao renderizador para "Varredura Gradiente" 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 a SweepGradient. (Ie7ce3).
  • Inclusão de suporte à formatação de data e hora em zonas. (Ibfae0).
  • Foram adicionados protos e java Wrappers necessários para a formatação de data e hora zonada. (I97126).
  • Getters foram adicionados para ler o valor armazenado em um DynamicDataValue. (Ie6cea).
  • Foi adicionado um setter para posicionar o conteúdo da borda em EdgeContentLayout para que ele possa ser posicionado antes de outro conteúdo. (Ie8e8a).

Correções de bugs

  • Correção de um problema quando uma expressão com vários registros de fonte de dados de tempo não estava sendo atualizada imediatamente. (I8e1a8).
  • Correção de um bug para centralizar o elemento raiz durante atualizações de diferenças. (Ie48f7).
  • Valores de restrição de layout não definidos (ou vazios) não serão mais ignorados. (Ibc785).
  • Atraso reduzido entre um layout se tornar visível e os nós de pipeline sendo inicializados. (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 introduz APIs para criar layouts e expressões que podem ser usados 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 dos dados do bloco) e a 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 afetaram o layout fornecido. (If7d01).
  • Limitamos a profundidade máxima que o layout de uma ProtoLayout pode ter a 30 LayoutElements aninhadas. (I8a74b).

Correções de bugs

  • Adicionamos uma verificação para ser lançada 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

  • Permitir a configuração do relógio para testes de vinculação de tempo. (I05622).

Mudanças na API

  • PlatformDataReceiver.onData() e StateBuilders.Builder.addKeyToValueMapping agora aceitam mapeamento com segurança de tipo de DynamicDataKey para DynamicDataValue em vez de genéricos não seguros. Isso significa que o DynamicDataValue agora é digitado com o próprio DynamicType. As constantes HEART_RATE_ACCURACY_X foram movidas para a raiz de PlatformHealthSources para corresponder a outros posicionamentos das constantes do Android. As constantes de 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 ser notificado. (I9d938).
  • Mudamos o tipo de parâmetro no PlatformTimeUpdateNotifier#setReceiver de Callable para Supplier. (I664bf).
  • CompactChip e TitleChip agora oferecem suporte à adição de um ícone. (I5a01e).

Correções de bugs

  • As mensagens de propriedade foram atualizadas com campos dinâmicos para usar oneof (I81739).
  • Reutilização da implementação de setters para sobrecargas que têm setters (Ied70c).
  • Registre as impressões digitais corretamente em setters que têm 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 precisão da frequência cardíaca. (I7f9b8).

Mudanças na API

  • Renomeie StateBuilders#getIdToValueMapping como getKeyToValueMapping e mude o tipo de retorno para Map<<AppDataKey<?>,DynamicDataValue>. (Iaa7ae).
  • Transforme 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 horário. (I60869).
  • register/unregisterForData em PlatformDataProvider foi renomeado como set/clearReceiver (I14b02).
  • No Material Text, getExcludeFontPadding foi renomeado como hasExcludeFontPadding (Iea01d).
  • O setter para alinhar perfeitamente o rótulo foi adicionado a todos os componentes do ícone. Agora todos os ícones têm a meta de toque mínima aplicada. (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 dos tipos de propriedade para esclarecer por que o valor estático é aplicado. Especifique o valor padrão usado se o valor estático não tiver sido fornecido. (I155aa).
  • Os namespaces PlatformDataKey precisam seguir a nomenclatura de estilo do 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 pelo app. Adição de PlatformDataKey para acessar dados da plataforma. Foi adicionado suporte a namespace em StateStore. (I7985e).
  • Suporte às 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).
  • 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 adicionado suporte ao formato ARGB_8888 para recursos de imagem inline. (I8a07c).
  • Renomeie StateEntryValue como DynamicDataValue e atualize as APIs de estado para usar DynamicDataKey (If1c01).
  • Estamos limitando o número de entradas permitidas na 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 tenha mais de MAX_STATE_ENTRY_COUNT entradas no mapa. Caso contrário, ele vai receber uma IllegalStateException ao criar ou atualizar a StateStore. (Ibadb3).
  • Oculte as classes OnLoadTrigger e OnConditionMetTrigger e renomeie setTrigger como setCondition para OnConditionMetTrigger. (Ibf629).
  • Por motivos de desempenho e compatibilidade, os renderizadores ProtoLayout não oferecem suporte ao conjunto completo de recursos nos recursos AnimatedVectorDrawable. Essas APIs vão ser marcadas como experimentais até que seja possível definir o conjunto compatível. (Ic6daf).
  • Foram adicionados tipos dinâmicos para a 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 easing dessa classe agora podem ser acessadas diretamente pela 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 progresso em CircularProgressIndicator. Isso é suportado para renderizadores compatíveis com a versão 1.2. Os renderizadores antigos vão substituir o staticValue, se fornecido. Caso contrário, o valor será 0 (I0d91b).
  • As constantes MultiButtonLayout foram refatoradas para a classe LayoutDefaults.MultiButtonLayoutDefaults, que agora contém as para tamanhos de botão, dependendo de vários botões no layout. (I13973).
  • Foi adicionado suporte ao uso de StringProp com DynamicString no Material Text. Isso é suportado para renderizadores compatíveis com a versão 1.2. Os renderizadores antigos serão substituídos pelo 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 requer uma extensão de renderizador capaz de entender o elemento de layout. (I6581d).
  • Foi adicionado suporte a StrokeCap para ArcLine. (I94951).
  • Inclusão de compatibilidade com a operação instantânea condicional. (I489a7).
  • Inclusão de compatibilidade com a operação de duração condicional. (Iab469).
  • Foi adicionado suporte para 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).
  • Permitir o limite do tamanho dos tipos de dados vinculados. (Ie2966).
  • Foi adicionado suporte à descrição de conteúdo dinâmico no 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 à configuração de exclusão de padding de fonte no Material Text ProtoLayout (I17f5d).
  • ARGB_8888 agora é compatível com imagens inline. (I18c1e).
  • DynamicColor agora é compatível com a operação onCondition. (I10927).

Mudanças na API

  • Suporte à duração personalizada para animação reversa (I3251f).
  • Adicionamos o modificador SemanticDescription. Além disso, ContentDescription não é vinculável. (I3f1d).
  • O método DynamicBool.isFalse() foi substituído por DynamicBool.negate() e o DynamicBool.isTrue() foi removido. Além disso, os valores NaN DynamicFloat e a restrição de um DynamicInt32 a um DynamicFloat agora emitem um resultado dinâmico inválido. (I6ac1e).
  • Formatadores inteiros e flutuantes agora usam o padrão Builder. (Ieb213).

Correções de bugs

  • O valor estático substituto foi removido dos campos animados. (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

  • Foi adicionado suporte a valor dinâmico para StringProp (I04342).
  • Marcamos elementos de layout vinculáveis (Ia110b).

Mudanças na API

  • sensorGateway#registerSensorGatewayConsumer usa o tipo de dados como um parâmetro em vez de um método no Consumer. (Icf314).
  • ObservableStateStore foi renomeado como StateStore (Ieb0e2).
  • Foram adicionados DynamicTypeEvaluator.Builder em vez de argumentos de construtor para permitir mais argumentos opcionais, incluindo ObservableStateStore, que agora tem um armazenamento vazio por padrão. (I6f832).
  • Ordem refatorada de parâmetros em DynamicTypeEvaluator. (Ic1ba4).

Correções de bugs

  • Propagação correta de sinais das fontes do sensor 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 frequência cardíaca e passos diários em expressões dinâmicas (Ifd711).
  • Adicionamos suporte a atrasos de reversão e encaminhamento para animações. (Ic25f7).
  • Adicionamos suporte ao DynamicColor para borda e plano de fundo
  • Adicionamos suporte a valor dinâmico 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

  • Adição de FloatNodesTest (Id7281).
  • Correção da falha do renderizador quando não é possível carregar o 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 "atualização de conteúdo" experimental animação para o 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 após a vinculação do tipo dinâmico. (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

  • ObservableStateStore agora também informa os listeners quando uma chave é removida.
  • Adicionamos a versão do esquema do renderizador e a escala de 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 de DynamicInt32 (I05485).
  • Adicionamos os acionadores OnLoad e OnConditionalMet. Elas podem ser usadas para iniciar animações compatíveis com gatilhos.
  • Adicionamos peso do layout para dimensões expandidas e tamanho mínimo para dimensões unidas.
  • Adicionamos duração e tipos dinâmicos instantâneos. Eles podem ser usados para representar um instante ou uma duração de tempo em uma expressão dinâmica.
  • Adicionamos suporte a 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

  • set/getSpec foi renomeado como 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.