wear protolayout
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.
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
eLayoutElementMatcher
à biblioteca de testes (Id1110).
Versão 1.3.0-alpha02
16 de outubro de 2024
Lançamento de androidx.wear.protolayout:protolayout-*:1.3.0-alpha02
. A versão 1.3.0-alpha02 contém estas confirmações.
Novos recursos
- Versão inicial da biblioteca Material 3. Inclui os componentes
text
,edgeButton
,buttonGroup
eprimaryLayout
.
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
eandroidx.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
eandroidx.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
por48dp
. - Melhorias em
PrimaryLayout
eEdgeContentLayout
com a adição desetResponsiveContentInsetEnabled
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
eFontSetting.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.
- Definir diferentes configurações de variação de fonte, como
- O modificador
Corner
foi estendido para oferecer suporte à especificação de cadaCornerRadius
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 deLayoutElement
. Essas transformações podem ser animadas usando valores dinâmicos. - Foram adicionadas as opções
setArcDirection
comClockwise
,CounterClockwise
eNormal
a todos os elementos de arco (Arc
,ArcLine
eArcText
) 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 menos48dp
por48dp
. - Melhorias em
PrimaryLayout
eEdgeContentLayout
com a adição desetResponsiveContentInsetEnabled
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 APIpreferredFontFamilies
. (I39dab). - O parâmetro transmitido para
FontSetting.width
precisa ser positivo. (I1266f).
Versão 1.2.0-alpha05
26 de junho de 2024
Lançamento de androidx.wear.protolayout:protolayout-*:1.2.0-alpha05
. A versão 1.2.0-alpha05 contém estas confirmações.
Novos recursos
- O método
hasText
foi adicionado aMaterial.CompactChip
para verificar se o conteúdo de texto foi definido. (I6e8fc).
Mudanças na API
- O const
FontFamily
foi movido paraFontStyle
em vez da classe Builder (I06ced). - A API
FontSetting.weight
eFontSetting.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: - 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 aPrimaryLayout
eEdgeContentLayout
. (I4dc32).
Correções de bugs
- O nome dos eixos de fontes variáveis foi renomeado de
axisName
paraaxisTag
. (I02ba3).
Versão 1.2.0-alpha03
14 de maio de 2024
Lançamento de androidx.wear.protolayout:protolayout-*:1.2.0-alpha03
. A versão 1.2.0-alpha03 contém 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 umPlatformDataValue
a outro. (I50ba3). Text#setIsScalable
foi renomeado comoText#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 semsetResponsiveContentInsetEnabled
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 adicionarArcDirection
(Clockwise
,Counterclockwise
ouNormal
). Adicionar esse comportamento aArc
,ArcLine
ouArcText
vai corrigir o comportamento deles em layouts RTL. (I90699). - O
EdgeContentLayout
foi atualizado com um novo settersetResponsiveContentInsetEnabled
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 adicionarBrush
comSweepGradient
e ter uma sombra no limite para representar melhor o comprimento maior que 360 graus adicionandoShadow
aoStrokeCap
. DynamicInstant
tem suporte para formatação de data e hora com fuso horário.DynamicInstant
eDynamicDuration
podem ser usados como tipos de dados de estado ou plataforma.- Recurso de dimensionamento automático para tamanho 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, adicionandoTEXT_OVERFLOW_ELLIPSIZE
e descontinuandoTEXT_OVERFLOW_ELLIPSIZE_END
. - Agora, o
Spacer
oferece suporte a dimensões expandidas com peso opcional. Para criarExpandedDimensionProp
, adicionamos um método auxiliarDimensionBuilders.weight
. - Suporte para ocultar e mostrar elementos de layout dinamicamente com
Modifier.visible
. Isso inclui valores dinâmicos emBoolProp
. - 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 ouColorStops
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 valorFloor
emFloatToInt32Node
quando não especificado. O nó ainda vai gerar uma exceção se oRoundMode
fornecido não for reconhecido. (I1b2d8).
Versão 1.1.0-alpha04
13 de dezembro de 2023
Lançamento de androidx.wear.protolayout:protolayout-*:1.1.0-alpha04
. A versão 1.1.0-alpha04 contém estas confirmações.
Novos recursos
- A classe
VersionInfo
não implementa a interfaceComparable
. (I8d13c). - O renderizador agora oferece suporte à opção
TEXT_OVERFLOW_ELLIPSIZE
. (I7f085).
Mudanças na API
- A opção de transbordamento de texto
TEXT_OVERFLOW_ELLIPSIZE_END
foi descontinuada. Use a nova APITEXT_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 porModifier.visible
(I56902).FontStyle#setSizes
agora aceita int em vez de argumentosSpProp
(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 criarExpandedDimensionProp
com peso. (I4f72b). DynamicInstant
eDynamicDuration
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 paraDyanamicInstant
(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 paraSweepGradient
. (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.
- Para migrar de Blocos para
ProtoLayout
, siga estas instruções.
Mudanças na API
- Removemos os métodos
setLayoutConstraintForDynamicAnchorAngle
egetLayoutConstraintForDynamicAnchorAngle
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 30LayoutElements
aninhados. (I8a74b).
Correções de bugs
- Adicionamos uma verificação para gerar uma exceção se o
DynamicColor
tiver sido definido para umSpanText
. (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()
eStateBuilders.Builder.addKeyToValueMapping
agora aceitam o mapeamento seguro de tipo deDynamicDataKey
paraDynamicDataValue
em vez de genéricos não seguros. Isso significa queDynamicDataValue
agora é digitado com oDynamicType
. As constantesHEART_RATE_ACCURACY_X
foram movidas para a raiz dePlatformHealthSources
para corresponder ao posicionamento de outras constantes do Android. As constantes intHEART_RATE_ACCURACY_X
agora são usadas diretamente emDynamicHeartRateAccuracy.constant()
eDynamicHeartRateAccuracy.dynamicDataValueOf()
em vez da constante de valor. (I82ff5).- A classe
PlatformHealthSources.Constants
foi instanciada por engano. Isso já foi corrigido. (Icb849). PlatformTimeUpdateNotifier#setReceiver
agora recebeRunnable
em vez da funçãoSupplier
eExecutor
para notificar (I9d938).- Mudamos o tipo de parâmetro em
PlatformTimeUpdateNotifier#setReceiver
deCallable
paraSupplier
. (I664bf). CompactChip
eTitleChip
agora 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
paragetKeyToValueMapping
e mude o tipo de retorno paraMap<<AppDataKey<?>,DynamicDataValue>
. (Iaa7ae). StateStore
agora é uma classe final (I408ca).- A interface
TimeGateway
foi substituída porPlatformTimeUpdateNotifier
na bibliotecaprotolayout-expression-pipeline
, que fornece a frequência desejada para atualizar dados de tempo. (I60869). - Renomeação de
register
/unregisterForData
emPlatformDataProvider
paraset
/clearReceiver
(I14b02). - No Material Text,
getExcludeFontPadding
foi renomeado comohasExcludeFontPadding
. (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 comoMAX_BUTTONS
(I84788).DAILY_DISTANCE
foi renomeado comoDAILY_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 adicionadoPlatformDataKey
para acessar dados da plataforma. Foi adicionado suporte a namespaces emStateStore
. (I7985e). - Suporte a operações
Equal
eNotEqual
paraDynamicBool
. (I6a0c1).
Mudanças na API
- A classe
FontStyles
agora é final (Iaa2ea). - O uso de
LayoutElementBuilders#FontStyles
foi descontinuado Useandroidx.wear.protolayout.Typography
ou crie seu próprioFontStyle
. (Ic929b). - Ocultar a interface aninhada
Action#Builder
da interfaceAction
. As implementações do Builder já são fornecidas pelas classesLoadAction
eLaunchAction
. (I1d70c). - Permita o uso de
DynamicFloat
comFloatProp
.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
eSetStateAction
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
paraDynamicDataValue
e atualização das APIs de estado para usarDynamicDataKey
(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 doStateStore
. Como resultado, o desenvolvedor precisa garantir que não tenha mais deMAX_STATE_ENTRY_COUNT
entradas no mapa. Caso contrário, ele vai receber umaIllegalStateException
ao criar ou atualizar oStateStore
. (Ibadb3). - Ocultar as classes
OnLoadTrigger
eOnConditionMetTrigger
e renomearsetTrigger
comosetCondition
paraOnConditionMetTrigger
. (Ibf629). - Por motivos de desempenho e compatibilidade, os renderizadores
ProtoLayout
não oferecem suporte ao conjunto completo de recursos dos recursosAnimatedVectorDrawable
. 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 oCubicBezierEasing.Builder
. Com isso, a classeEasingFunction
foi removida, e as constantes de suavização dessa classe agora são diretamente acessíveis na interfaceEasing
. Além disso,setInfiniteRepeatable
foi substituído porINFINITE_REPEATABLE_WITH_RESTART
eINFINITE_REPEATABLE_WITH_REVERSE
(Ib41e7). - Implemente
PlatformDataProvider
para fornecer frequência cardíaca e passos diários. A interfaceSensorGateway
foi removida da API pública. (I55b84). - Adicione
PlatformDataProvider
e atualizeStateStore
para se registrar emPlatformDataProvider
quando a chave com suporte do provedor for exigida pelo nó do pipeline de expressão. (Ib616a). SensorGateway
não é maisCloseable
, porque não mantém mais nenhum estado. (I6b4f7).- Permitir o uso de
FloatProp
comDynamicFloat
para o progresso emCircularProgressIndicator
. Isso é compatível com renderizadores que suportam a versão 1.2. Os renderizadores antigos vão usar ostaticValue
se ele for fornecido. Caso contrário, eles vão usar o 0 (I0d91b). - As constantes
MultiButtonLayout
foram refatoradas para a classeLayoutDefaults.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
comDynamicString
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 retornoText#getText
foi atualizado deString
paraStringProp
. (I7275b).
Versão 1.0.0-alpha09
10 de maio de 2023
Lançamento de androidx.wear.protolayout:protolayout-*:1.0.0-alpha09
. A versão 1.0.0-alpha09 contém estas confirmações.
Novos recursos
- Adicionamos um elemento de layout de extensão experimental. 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
paraArcLine
. (I94951). - Adição de suporte à operação instantânea condicional. (I489a7).
- Adição de suporte à operação de duração condicional. (Iab469).
- Adição de suporte para a criação de duração a partir de segundos. (Ib5fa1).
Mudanças na API
- Os métodos
enable/disablePlatformSource
foram removidos deDynamicTypeEvaluator
. 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) aLayoutElementBuilders
. (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çãoonCondition
. (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 porDynamicBool.negate()
, e oDynamicBool.isTrue()
foi removido. Além disso, valores NaNDynamicFloat
e a restrição de umDynamicInt32
a umDynamicFloat
agora emitem um resultado dinâmico inválido. (I6ac1e). - Os formatadores de números inteiros e de ponto flutuante agora usam o padrão Builder. (Ieb213).
Correções de bugs
- O valor estático de 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 deimplementation
quando necessário. (I40503).
Versão 1.0.0-alpha07
5 de abril de 2023
Lançamento de androidx.wear.protolayout:protolayout-*:1.0.0-alpha07
. A versão 1.0.0-alpha07 contém estas confirmações.
Novos recursos
- Adição de suporte a valores dinâmicos 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 comoStateStore
(Ieb0e2).- Adição de
DynamicTypeEvaluator.Builder
em vez de argumentos de construtor para permitir mais argumentos opcionais, incluindoObservableStateStore
, 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 paraprotolayout-material
Mudanças na API
LoadActionListener
foi adicionado(a) aProtoLayoutViewInstance
. (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
ereverseRepeatDelayMillis
aRepeatable
. Também renomeamosdelayMillis
emAnimationSpec
parastartDelayMillis
(Ifb266). - Os métodos
DynamicTypeEvaluator.bind
agora aceitam um executor. (I346ab). - Adicionamos o método
startEvaluation
aoBoundDynamicType
para acionar a avaliação depois que o tipo dinâmico é vinculado. (I19908).
Correções de bugs
- O objeto Animator será reutilizado para animações subsequentes de um único elemento. (Ia3be9).
Versão 1.0.0-alpha04
22 de fevereiro de 2023
Lançamento de androidx.wear.protolayout:protolayout-*:1.0.0-alpha04
. A versão 1.0.0-alpha04 contém estas confirmações.
Novos recursos
- O
ObservableStateStore
agora informa 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
eOnConditionalMet
. 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
eSeekableAnimatedVectorDrawable
como recursos de layout.
Mudanças na API
- Os dados do sensor exigem a API 29 ou mais recente. (I8099e)
- Adicionamos dois métodos auxiliares
launchAction
(para iniciar atividades).
Correções de bugs
- Renomeação de
set/getSpec
paraset/getAnimationSpec
na animação de blocos (I3d74b).
Versão 1.0.0-alpha03
8 de fevereiro de 2023
Lançamento de androidx.wear.protolayout:protolayout-*:1.0.0-alpha03
. A versão 1.0.0-alpha03 contém estas confirmações.
Novos recursos
- Adicionamos
toByteArray()
efromByteArray()
aos tipos dinâmicos na biblioteca protolayout-express. - Adicionamos
toString()
aos tipos dinâmicos na biblioteca protolayout-expression. - Adicionamos suporte a avaliações para tipos dinâmicos. A classe
DynamicTypeEvaluator
da biblioteca protolayout-expression-pipeline pode ser usada para avaliar e receber valores atualizados para um tipo dinâmico criado anteriormente (DynamicString
,DynamicFloat
, …) - Quando não é possível reproduzir as animações, seja porque foram desativadas pelo avaliador ou porque o número de animações em execução atingiu o limite definido, os valores estáticos definidos no nó animado são usados para substituir a animação.
Versão 1.0.0-alpha02
25 de janeiro de 2023
Lançamento de androidx.wear.protolayout:protolayout:1.0.0-alpha02
, androidx.wear.protolayout:protolayout-expression:1.0.0-alpha02
e androidx.wear.protolayout:protolayout-proto:1.0.0-alpha02
. A versão 1.0.0-alpha02 contém estas confirmações.
Novos recursos
- Os builders de layout de
androidx.wear.tiles:tiles
estão sendo movidos paraandroidx.wear.protolayout:protolayout
. O uso deandroidx.wear.tiles:tiles
vai ser descontinuado em uma das próximas versões Alfa.
Versão 1.0.0-alpha01
11 de janeiro de 2023
Lançamento de androidx.wear.protolayout:protolayout-expression:1.0.0-alpha01
e androidx.wear.protolayout:protolayout-proto:1.0.0-alpha01
. A versão 1.0.0-alpha01 contém estas confirmações.
Novos recursos
- Esta versão apresenta uma nova biblioteca ProtoLayout Expression para criar expressões usando variáveis dinâmicas.