wear protolayout

  
Esta biblioteca permite definir un conjunto de diseños de la IU y expresiones ajenas a ella para que se rendericen o evalúen en plataformas remotas.
Actualización más reciente Versión estable Versión potencial Versión beta Versión alfa
11 de diciembre de 2024 1.2.1 - - 1.3.0-alpha05

Cómo declarar dependencias

Para agregar una dependencia en wear-protolayout, debes agregar el repositorio de Maven de Google a tu proyecto. Lee el repositorio de Maven de Google para obtener más información.

Agrega las dependencias de los artefactos que necesites en el archivo build.gradle de tu app o 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 obtener más información sobre las dependencias, consulta Cómo agregar dependencias de compilación.

Comentarios

Tus comentarios ayudan a mejorar Jetpack. Avísanos si descubres nuevos errores o tienes ideas para mejorar esta biblioteca. Consulta los errores existentes de esta biblioteca antes de crear uno nuevo. Puedes agregar tu voto a un error existente haciendo clic en el botón de la estrella.

Crear un error nuevo

Consulta la documentación sobre la Herramienta de seguimiento de errores para obtener más información.

Versión 1.3

Versión 1.3.0-alpha05

11 de diciembre de 2024

Lanzamiento de androidx.wear.protolayout:protolayout-*:1.3.0-alpha05. La versión 1.3.0-alpha05 contiene estas confirmaciones.

Nuevas funciones

  • Se agregó LayoutString para admitir campos de cadenas de diseño vinculables. (Ida650).
  • Se agregó el componente del contenedor de tarjetas ProtoLayout Material3. (Ic985a).

Correcciones de errores

  • Esta biblioteca ahora usa anotaciones de nulidad de JSpecify, que son de tipo de uso. Los desarrolladores de Kotlin deben usar los siguientes argumentos del compilador para aplicar el uso correcto: -Xjspecify-annotations=strict, -Xtype-enhancement-improvements-strict-mode (Id1f9b, b/326456246).

Versión 1.3.0-alpha04

13 de noviembre de 2024

Lanzamiento de androidx.wear.protolayout:protolayout-*:1.3.0-alpha04. La versión 1.3.0-alpha04 contiene estas confirmaciones.

Nuevas funciones

  • Se actualizó la forma de Material3 para que sea una clase con campos que contengan el valor real de Corner, al igual que en Wear Compose. (Ied8cd)
  • Se actualizaron los colores de Material3 para incluir el concepto de ColorScheme, al igual que en Wear Compose. (If645e).
  • Se agregaron varios comparadores de uso general a la biblioteca de pruebas. (Ie5cec).

Versión 1.3.0-alpha03

30 de octubre de 2024

Lanzamiento de androidx.wear.protolayout:protolayout-*:1.3.0-alpha03. La versión 1.3.0-alpha03 contiene estas confirmaciones.

Nuevas funciones

  • Se agregaron LayoutElementAssertionsProvider, LayoutElementAssertion y LayoutElementMatcher a la biblioteca de pruebas (Id1110).

Versión 1.3.0-alpha02

16 de octubre de 2024

Lanzamiento de androidx.wear.protolayout:protolayout-*:1.3.0-alpha02. La versión 1.3.0-alpha02 contiene estas confirmaciones.

Nuevas funciones

  • Versión inicial de la biblioteca de Material 3. Incluye los componentes text, edgeButton, buttonGroup y primaryLayout.

Correcciones de seguridad

  • A partir de este cambio, androidx compila con protobuf 4.28.2 para abordar el CVE-2024-7254. Actualiza la dependencia de la versión 1.3.0-alpha01 de androidx.wear.protolayout:protolayout-proto y androidx.wear.protolayout:protolayout-external-protobuf a la 1.3.0-alpha02 para abordar el riesgo de vulnerabilidad.

Contribución externa

Versión 1.3.0-alpha01

2 de octubre de 2024

Lanzamiento de androidx.wear.protolayout:protolayout-*:1.3.0-alpha01. La versión 1.3.0-alpha01 contiene estas confirmaciones.

Correcciones de errores

  • Se aclaró que la disponibilidad de los nombres de las familias de fuentes Roboto y Roboto Flex depende del dispositivo. (I193be).
  • Se habilitó la familia de fuentes Roboto Flex en el renderizador de tarjetas de AndroidX. (I08e94).

Versión 1.2

Versión 1.2.1

16 de octubre de 2024

Lanzamiento de androidx.wear.protolayout:protolayout-*:1.2.1. La versión 1.2.1 contiene estas confirmaciones.

Correcciones de seguridad

  • A partir de este cambio, androidx compila con protobuf 4.28.2 para abordar el CVE-2024-7254. Actualiza la dependencia de la versión 1.2.0 de androidx.wear.protolayout:protolayout-proto y androidx.wear.protolayout:protolayout-external-protobuf a la 1.2.1 para abordar el riesgo de vulnerabilidad.

Versión 1.2.0

7 de agosto de 2024

Lanzamiento de androidx.wear.protolayout:protolayout-*:1.2.0. La versión 1.2.0 contiene estas confirmaciones.

Cambios importantes desde la versión 1.1.0

  • Se actualizó FontStyle para admitir fuentes adicionales para los ejes variables y una mejor API de selección de fuentes para admitir las próximas fuentes Flex.
  • Compatibilidad con modificadores adicionales:
    • Es un modificador de transformación que ofrece traslación, rotación y escalamiento con o sin animaciones.
    • Especifica valores diferentes (horizontal y vertical) para cada radio de esquina.
  • Se mejoró la accesibilidad de todos los objetivos táctiles extendiendo el área táctil de cualquier elemento que use el modificador Clickable a un mínimo de 48dp por 48dp.
  • Se mejoraron PrimaryLayout y EdgeContentLayout agregando setResponsiveContentInsetEnabled para admitir mejor el comportamiento responsivo de estos diseños en diferentes tamaños de pantalla y mejorar la coherencia de las tarjetas.
  • Se mejoró el escalamiento o la falta de escalamiento del texto de Material para el escalamiento de fuente no lineal de Android 14.
  • Se mejoró la compatibilidad con la dirección de diseño de RTL en todos los elementos de arco.

Cambios adicionales

Versión 1.2.0-rc01

24 de julio de 2024

Lanzamiento de androidx.wear.protolayout:protolayout-*:1.2.0-rc01. La versión 1.2.0-rc01 contiene estas confirmaciones.

Correcciones de errores

  • Corrigimos el chip de Material estándar para que se pueda usar como ícono solo si no se pasa ninguna de las etiquetas principales o secundarias. (Iceef9)
  • Se actualizó la documentación de los diseños de Material para incluir imágenes de la página relevante y facilitar la comprensión de los diseños. (I0256a)

Versión 1.2.0-beta01

10 de julio de 2024

Lanzamiento de androidx.wear.protolayout:protolayout-*:1.2.0-beta01. La versión 1.2.0-beta01 contiene estas confirmaciones.

Nuevas funciones

La versión 1.2.0-beta01 de Wear ProtoLayout indica que esta versión de la biblioteca está completa y la API está bloqueada (excepto donde se marca como experimental). Wear ProtoLayout 1.2 incluye las siguientes APIs y funciones nuevas:

  • FontStyle se actualizó para admitir fuentes adicionales de la siguiente manera:
    • Configura diferentes parámetros de variación de fuente, como FontSetting.weight y FontSetting.width.
    • Establecer el mismo ancho para todos los caracteres numéricos: números tabulares (configuración de la función de fuente FontSetting.tnum)
    • Se mejoraron las APIs de selección de fuentes para admitir las próximas fuentes flex especificando los nombres de las familias de fuentes preferidas que se usarán.
  • Se extendió el modificador Corner para admitir la especificación de cada CornerRadius con valores horizontales y verticales separados para permitir la creación de elementos con esquinas asimétricas.
  • Se agregó un nuevo modificador Transformation que ofrece traslación, rotación y escalamiento de LayoutElement. Estas transformaciones se pueden animar con valores dinámicos.
  • Se agregó setArcDirection con las opciones Clockwise, CounterClockwise y Normal a todos los elementos de arco (Arc, ArcLine y ArcText) para brindar una mejor compatibilidad en diferentes direcciones de diseño (como LTR y RTL).
  • Se mejoró la accesibilidad de todos los objetivos táctiles extendiendo el área táctil de cualquier elemento que use el modificador Clickable para que sea de al menos 48dp por 48dp.
  • Se mejoraron PrimaryLayout y EdgeContentLayout agregando setResponsiveContentInsetEnabled para admitir mejor el comportamiento responsivo de estos diseños en diferentes tamaños de pantalla y mejorar la coherencia de las tarjetas. Se agregó una advertencia de lint para sugerir el uso de estas APIs con una solución rápida.
  • Se mejoró el escalamiento o no de Text de Material para el escalamiento de fuente no lineal de Android 14.

Cambios en la API

  • Se quita el nombre de la familia de fuentes predeterminada (DEFAULT_SYSTEM_FONT), ya que se infiere por no usar la API de preferredFontFamilies. (I39dab).
  • El parámetro que se pasa a FontSetting.width debe ser positivo. (I1266f).

Versión 1.2.0-alpha05

26 de junio de 2024

Lanzamiento de androidx.wear.protolayout:protolayout-*:1.2.0-alpha05. La versión 1.2.0-alpha05 contiene estas confirmaciones.

Nuevas funciones

  • Se agregó el método hasText a Material.CompactChip para verificar si se configuró el contenido de texto. (I6e8fc).

Cambios en la API

  • Los const de FontFamily se mueven para estar en FontStyle en lugar de su clase de Builder. (I06ced).
  • Se actualizó la API de FontSetting.weight y FontSetting.width para incluir anotaciones de rango y cambiar el parámetro de peso a int (Ia726c).

Correcciones de errores

  • Los textos no escalables en la biblioteca de Material ahora funcionan correctamente con el escalamiento de fuente no lineal de Android 14. (I6601e).

Versión 1.2.0-alpha04

29 de mayo de 2024

Lanzamiento de androidx.wear.protolayout:protolayout-*:1.2.0-alpha04. La versión 1.2.0-alpha04 contiene estas confirmaciones.

Cambios en la API

  • Se agregó la API de esquinas asimétricas para poder especificar por separado el radio de cada esquina con 2 valores. (Icbd69).
  • Se extendió la API de FontSetting para incluir lo siguiente:
    • configuración de atributos de fuente, como establecer la fuente como tabular (If12b7).
    • configuración de la variación de la fuente, como establecer el ancho personalizado para las fuentes variables (I2b36d)
  • Se agregó la API de la familia de fuentes a FontStyle para permitir especificar una lista de orden de las familias de fuentes que se deben usar. (Iba9f5).
  • Se cambiaron los nombres de las constantes para la altura del espacio entre el contenido y la etiqueta secundaria en LayoutDefaults de Material, que inicialmente tenían el prefijo "Edge content" para ser más genéricos, ya que se pueden aplicar a PrimaryLayout y EdgeContentLayout. (I4dc32)

Correcciones de errores

  • Se cambió el nombre de los ejes de fuente variable de axisName a axisTag. (I02ba3).

Versión 1.2.0-alpha03

14 de mayo de 2024

Lanzamiento de androidx.wear.protolayout:protolayout-*:1.2.0-alpha03. La versión 1.2.0-alpha03 contiene estas confirmaciones.

Nuevas funciones

  • Se agregó una API para establecer valores de peso personalizados para FontStyle. (I7390a)

Correcciones de errores

  • Se corrigió la falla en getTouchDelegateInfo debido a un mapa de destino vacío. (I2accf)

Versión 1.2.0-alpha02

1 de mayo de 2024

Lanzamiento de androidx.wear.protolayout:protolayout-*:1.2.0-alpha02. La versión 1.2.0-alpha02 contiene estas confirmaciones.

Cambios en la API

  • Se agregó compatibilidad para inhabilitar los comentarios de onda en elementos individuales en los que se puede hacer clic. (If1ede).
  • Se quitó la API de transformación de ArcModifiers, ya que no admite esa función (Ic0827).
  • El compilador de ArcDirectionProp ahora espera un valor en el constructor. (I76ada).
  • El método PlatformDataValues.Builder.putAll permitirá combinar un PlatformDataValue en otro. (I50ba3).
  • El nombre de Text#setIsScalable cambió por Text#setScalable. (If920e).
  • Material Text puede establecer si se usa un tamaño escalable (aumenta cuando se cambia el tamaño de la fuente del usuario) o no. (Ibc849).
  • Se agregó la opción para establecer la descripción del contenido en TitleChip. (I5d21f).
  • Se corrigió CompactChip para que funcione correctamente solo con el ícono y se actualizó la API para permitir esta opción. (I6589e).

Correcciones de errores

  • Se solucionó un problema de posibles datos de plataforma duplicados durante la inicialización. (Iba0fd).
  • Se agregó un nuevo método get a DynamicDataNode para recuperar el costo del nodo. El costo se usa cuando se adquiere la cuota de nodos dinámicos. Actualmente, los nodos con valores fijos tendrán un costo de 0 y todos los demás tendrán un costo de 1. (Ia33e1).
  • Se quitó la lógica de recuento de NO_OP_QUOTA_MANAGER. (Ib50b8)
  • Agregamos una regla de lint para informar una advertencia cuando se usa PrimaryLayout sin setResponsiveContentInsetEnabled y proporcionar una solución rápida. (I12025).
  • Hay un límite para la cantidad de nodos de expresión dinámica. (Iffae8).

Versión 1.2.0-alpha01

6 de marzo de 2024

Lanzamiento de androidx.wear.protolayout:protolayout-*:1.2.0-alpha01. La versión 1.2.0-alpha01 contiene estas confirmaciones.

Nuevas funciones

  • Los elementos ProtoLayout Arc ahora tienen la opción de agregar ArcDirection (Clockwise, Counterclockwise o Normal). Si agregas este comportamiento a Arc, ArcLine o ArcText, se corregirá su comportamiento en los diseños de RTL. (I90699).
  • Se actualizó EdgeContentLayout con un nuevo set setResponsiveContentInsetEnabled para lograr una mejor alineación con los lineamientos de UX y coherencia en las tarjetas, ya que tiene la etiqueta principal en el lugar fijo en la parte superior y un inserto responsivo para las etiquetas. (I60175)
  • Agregamos PrimaryLayout.setResponsiveContentInsetEnabled, que agrega una inserción responsiva a la etiqueta principal, la etiqueta secundaria y el chip inferior en este diseño para evitar que el contenido salga del borde de la pantalla. (I0c457).
  • Se agregó un método para quitar los márgenes externos de CircularProgressIndicator para que se pueda usar como un componente más pequeño. (I55c06).

Cambios en la API

  • El renderizador de tarjetas ahora excluye el padding de la fuente en todos los elementos de texto de forma predeterminada, sin una opción para incluirlo. (I3e300).

Correcciones de errores

  • Se corrigió el problema de alineación del texto cuando se usaban elipses, espaciado entre letras y alineación central en el texto. (I716c7).
  • Se agregó una solución alternativa para un problema de dibujo de arco de Skia. (I08f09).
  • Se corrigió la dirección de dibujo de ArcLine para los diseños de derecha a izquierda. (I6c141).

Versión 1.1

Versión 1.1.0

7 de febrero de 2024

Lanzamiento de androidx.wear.protolayout:protolayout-*:1.1.0. La versión 1.1.0 contiene estas confirmaciones.

Cambios importantes desde 1.0.0

  • Compatibilidad con gradientes y mejor representación de longitudes superiores a 360 grados en ArcLine.
  • El formato de fecha y hora admite diferentes zonas horarias para los tipos de datos dinámicos.
  • Mejores opciones de ajuste automático del texto y elipses para controlar el texto truncado
  • El espaciador admite dimensiones expandidas con peso opcional.
  • Se agregó una anotación de requisitos de versión de esquema a todas las APIs de ProtoLayout.
  • Se amplió el área objetivo de cualquier elemento Clickable a 48 dp x 48 dp para satisfacer los requisitos de accesibilidad.
  • El padding de la fuente está desactivado de forma predeterminada y es el único comportamiento en todos los elementos de texto y componentes de Material que contienen texto.

Cambios adicionales

Versión 1.1.0-rc01

24 de enero de 2024

Lanzamiento de androidx.wear.protolayout:protolayout-*:1.1.0-rc01. La versión 1.1.0-rc01 contiene estas confirmaciones.

Correcciones de errores

  • PlatformTimeUpdateNotifierImpl marca inmediatamente después de habilitar la actualización. (I77145)
  • Se corrigió CircularProgressIndicator para los diseños de derecha a izquierda. A partir de ahora, se hará en el sentido de las manecillas del reloj en todos los casos. (I95ee3).
  • Se agregó una solución alternativa para un problema de dibujo de arco de Skia. (I08f09).

Versión 1.1.0-beta01

10 de enero de 2024

Lanzamiento de androidx.wear.protolayout:protolayout-*:1.1.0-beta01. La versión 1.1.0-beta01 contiene estas confirmaciones.

Nuevas funciones

La versión 1.1.0-beta01 de Wear ProtoLayout indica que esta versión de la biblioteca está completa y la API está bloqueada (excepto donde se marca como experimental). Wear ProtoLayout 1.1 incluye las siguientes APIs y funciones nuevas:

  • ArcLine ahora admite gradientes agregando Brush con SweepGradient y teniendo una sombra en la tapa para representar mejor la longitud superior a 360 grados agregando Shadow en el StrokeCap existente.
  • DynamicInstant admite el formato de fecha y hora por zona. DynamicInstant y DynamicDuration se pueden usar como tipos de datos de estado o de plataforma.
  • Función de tamaño automático para el tamaño de texto que permite establecer varios tamaños en FontStyle.setSizes, en los que el tamaño de texto se escalará automáticamente en función del espacio que tenga dentro del elemento superior. Además, mejoramos las opciones de puntos suspensivos para el texto que se desborda agregando TEXT_OVERFLOW_ELLIPSIZE y dando de baja TEXT_OVERFLOW_ELLIPSIZE_END.
  • Spacer ahora admite dimensiones expandidas con peso opcional. Para compilar ExpandedDimensionProp, agregamos un método de ayuda DimensionBuilders.weight.
  • Compatibilidad para ocultar y mostrar elementos de diseño de forma dinámica con Modifier.visible. Esto incluye tener valores dinámicos en BoolProp.
  • Todas las APIs de ProtoLayout ahora tienen una anotación de requisitos de versión del esquema, y se puede verificar la versión antes de llamar a una API más reciente.
  • Cada elemento que tiene Clickable ahora tiene su área objetivo extendida a, al menos, 48 × 48 en el renderizador para admitir mejor los requisitos de accesibilidad.
  • Siguiendo otras iniciativas de componentes de Material y Compose, ahora desactivamos el padding de fuente de forma predeterminada en todos los elementos Text. Además, se quitaron AndroidTextStyle y los seters relacionados de la API pública. Se realizaron las siguientes correcciones de errores:
  • Se agregó un set para posicionar el contenido perimetral en EdgeContentLayout para que se pueda posicionar antes que otro contenido.
  • Genera una excepción de forma coherente cuando se encuentra un valor de enumeración no reconocido.
  • Invalida el resultado de una expresión cuando genera un valor numérico no válido (NaN o infinito) o arroja un ArithmeticException.

Cambios en la API

  • Se realizaron actualizaciones en la API de SweepGradient para permitir aceptar colores o ColorStops en el constructor. (I6676f).

Correcciones de errores

  • Se agregó una API restringida y compatibilidad con el renderizador para establecer una dirección en la que se dibujan los elementos de arco. (Idef5a).
  • RoundMode se establece de forma predeterminada en Floor en FloatToInt32Node cuando no se especifica. El nodo seguirá arrojando una excepción si no se reconoce el RoundMode proporcionado. (I1b2d8).

Versión 1.1.0-alpha04

13 de diciembre de 2023

Lanzamiento de androidx.wear.protolayout:protolayout-*:1.1.0-alpha04. La versión 1.1.0-alpha04 contiene estas confirmaciones.

Nuevas funciones

  • La clase VersionInfo no implementa la interfaz Comparable. (I8d13c).
  • El renderizador ahora admite la opción TEXT_OVERFLOW_ELLIPSIZE. (I7f085).

Cambios en la API

  • La opción de desbordamiento de texto TEXT_OVERFLOW_ELLIPSIZE_END dejó de estar disponible. Usa la nueva API TEXT_OVERFLOW_ELLIPSIZE con un comportamiento muy similar. (I822d8).
  • Siguiendo otras iniciativas de componentes de Material y Compose, ahora desactivamos el padding de fuente de forma predeterminada en todos los elementos de texto. Además, se quitaron AndroidTextStyle y los establecedores relacionados de la API pública. (I79094, Ib0b03, I32959, Iaf7d5, Ifa298, I0a4ae, Ida9d3).
  • Modifier.hidden se reemplaza por Modifier.visible (I56902).
  • FontStyle#setSizes ahora acepta int en lugar de argumentos SpProp. (I02b37).

Correcciones de errores

  • Genera una excepción cuando se encuentra un valor de enumeración no reconocido o no definido. (I9d2cf)
  • Refactoriza DynamicTypeBindingRequest. (I27b57).
  • Invalida el resultado de una expresión cuando genera un valor numérico no válido (NaN o infinito) o arroja un ArithmeticException. (I681ae).

Versión 1.1.0-alpha03

29 de noviembre de 2023

Lanzamiento de androidx.wear.protolayout:protolayout-*:1.1.0-alpha03. La versión 1.1.0-alpha03 contiene estas confirmaciones.

Nuevas funciones

  • Se agregó compatibilidad experimental para ocultar o mostrar elementos de diseño de forma dinámica (I64a78).
  • Se agregó compatibilidad con valores dinámicos a BoolProp (I2fe96).
  • Se agregó una anotación de requisito de versión de esquema a las APIs de ProtoLayout (I0f03c).
  • Se extendió la API con la nueva opción en TextOverflow para elipse el texto en un contenedor superior fijo, incluso cuando no se alcanza la cantidad máxima de líneas (pero no hay suficiente espacio para el texto). (I110a9)
  • Se agregó el método auxiliar DimensionBuilders.weight para compilar ExpandedDimensionProp con peso. (I4f72b).
  • DynamicInstant y DynamicDuration se pueden usar como tipos de datos de estado o de plataforma. (I6819f).

Cambios en la API

  • Se actualizó la API para ocultar DynamicZonedDateTime y mover todas sus operaciones a DyanamicInstant (I34b94).
  • El espacio ahora admite la dimensión expandida para el ancho o la altura. (Ie7c94).
  • Se agregó compatibilidad con la extensión del área de destino de clic en el renderizador (I39c79).

Versión 1.1.0-alpha02

15 de noviembre de 2023

Lanzamiento de androidx.wear.protolayout:protolayout-*:1.1.0-alpha02. La versión 1.1.0-alpha02 contiene estas confirmaciones.

Nuevas funciones

  • Se agregó un campo Shadow StrokeCap ArcLine a la API. (I830ec).
  • Se extendió la API para poder especificar el ancho o la altura del espaciador para expandirlo. (I757ca).
  • Agregamos una API experimental para escalar automáticamente el tamaño del texto según el espacio que tiene dentro del elemento superior. (Ibbe63).
  • Se admite el tamaño mínimo en el que se puede hacer clic (I178e3).
  • Se agregó compatibilidad con el renderizador para StrokeCap Shadow. (I48b17).
  • Se agregó compatibilidad del renderizador para el gradiente de barrido en ArcLine. (I4d5bb).

Versión 1.1.0-alpha01

18 de octubre de 2023

Lanzamiento de androidx.wear.protolayout:protolayout-*:1.1.0-alpha01. La versión 1.1.0-alpha01 contiene estas confirmaciones.

Nuevas funciones

  • Se agregó una opción de pincel a Arcline, con compatibilidad para SweepGradient. (Ie7ce3).
  • Se agregó compatibilidad con el formato de fecha y hora por zona. (Ibfae0).
  • Se agregaron protos y wrappers de Java necesarios para el formato de fecha y hora por zona. (I97126).
  • Se agregaron métodos get para volver a leer el valor almacenado en un DynamicDataValue. (Ie6cea).
  • Se agregó un set para posicionar el contenido perimetral en EdgeContentLayout para que se pueda posicionar antes que otro contenido. (Ie8e8a).

Correcciones de errores

  • Se corrigió un problema por el que una expresión con varios registros de fuentes de datos de hora no se actualizaba de inmediato. (I8e1a8).
  • Se corrigió un error para centrar el elemento raíz durante las actualizaciones de diferencias. (Ie48f7).
  • Ya no se ignorarán los valores de restricción de diseño no establecidos (o vacíos). (Ibc785)
  • Se redujo la demora entre el momento en que un diseño se vuelve visible y el momento en que se inicializan sus nodos de canalización. (I38d4e)

Versión 1.0

Versión 1.0.0

9 de agosto de 2023

Lanzamiento de androidx.wear.protolayout:protolayout-*:1.0.0. La versión 1.0.0 contiene estas confirmaciones.

Funciones principales de la versión 1.0.0

La biblioteca de ProtoLayout presenta APIs para crear diseños y expresiones que se pueden usar en diferentes plataformas de Wear OS. Por ejemplo, la biblioteca de tarjetas usa estas APIs para admitir animaciones y vinculaciones de datos de plataforma (para actualizaciones de datos de tarjetas más rápidas).

Versión 1.0.0-rc01

26 de julio de 2023

Lanzamiento de androidx.wear.protolayout:protolayout-*:1.0.0-rc01. La versión 1.0.0-rc01 contiene estas confirmaciones.

  • Para migrar de tarjetas a ProtoLayout, sigue las instrucciones que se indican aquí.

Cambios en la API

  • Quitamos los métodos setLayoutConstraintForDynamicAnchorAngle y getLayoutConstraintForDynamicAnchorAngle del elemento Arc. Estos métodos se agregaron por error y no tuvieron ningún efecto en el diseño proporcionado. (If7d01).
  • Limitamos la profundidad máxima que puede tener el diseño de un ProtoLayout a 30 LayoutElements anidados. (I8a74b)

Correcciones de errores

  • Se agregó una verificación para arrojar si se configuró DynamicColor para un SpanText. (I0e5bc).
  • Se aclara que la unidad de la fuente de datos DAILY_CALORIES es kcal. (Iaa785).

Versión 1.0.0-beta01

21 de junio de 2023

Lanzamiento de androidx.wear.protolayout:protolayout-*:1.0.0-beta01. La Versión 1.0.0-beta01 contiene estas confirmaciones.

Nuevas funciones

  • Permite configurar el reloj para las pruebas de vinculación de tiempo. (I05622).

Cambios en la API

  • PlatformDataReceiver.onData() y StateBuilders.Builder.addKeyToValueMapping ahora aceptan la asignación segura de tipos de DynamicDataKey a DynamicDataValue en lugar de genéricos no seguros. Eso significa que DynamicDataValue ahora se escribe con su DynamicType. Las constantes HEART_RATE_ACCURACY_X se movieron a la raíz de PlatformHealthSources para que coincidan con el posicionamiento de otras constantes de Android. Las constantes int HEART_RATE_ACCURACY_X ahora se usan directamente en DynamicHeartRateAccuracy.constant() y DynamicHeartRateAccuracy.dynamicDataValueOf() en lugar de la constante de valor. (I82ff5).
  • La clase PlatformHealthSources.Constants se pudo crear por error. Ya se solucionó. (Icb849).
  • PlatformTimeUpdateNotifier#setReceiver ahora recibe Runnable en lugar de la función Supplier y Executor para notificar. (I9d938).
  • Cambiamos el tipo de parámetro en PlatformTimeUpdateNotifier#setReceiver de Callable a Supplier. (I664bf).
  • CompactChip y TitleChip ahora admiten agregar un ícono. (I5a01e).

Correcciones de errores

  • Se actualizaron los mensajes de Prop con campos dinámicos para usar oneof en su lugar (I81739).
  • Se volvió a usar la implementación de set para las sobrecargas que tienen set (Ied70c).
  • Se registran correctamente las huellas digitales en los set de configuración que tienen sobrecargas (I86ed2).

Versión 1.0.0-alpha11

7 de junio de 2023

Lanzamiento de androidx.wear.protolayout:protolayout-*:1.0.0-alpha11. La versión 1.0.0-alpha11 contiene estas confirmaciones.

Nuevas funciones

  • Se agregó un PlatformDataKey para la precisión de la frecuencia cardíaca. (I7f9b8).

Cambios en la API

  • Se cambió el nombre de StateBuilders#getIdToValueMapping a getKeyToValueMapping y el tipo de datos que se muestra a Map<<AppDataKey<?>,DynamicDataValue>. (Iaa7ae).
  • Se hizo que StateStore sea una clase final (I408ca).
  • La interfaz TimeGateway se reemplazó por PlatformTimeUpdateNotifier en la biblioteca protolayout-expression-pipeline, que proporciona la frecuencia deseada para actualizar los datos de tiempo. (I60869)
  • Se cambió el nombre de register/unregisterForData en PlatformDataProvider a set/clearReceiver (I14b02).
  • En Material Text, se cambió el nombre de getExcludeFontPadding a hasExcludeFontPadding. (Iea01d).
  • Se agregó un set para alinear perfectamente la etiqueta a todos los componentes del chip. Ahora, todos los chips tienen aplicado el objetivo mínimo de elementos en los que se puede hacer clic. (I8ae92).
  • El nombre de LayoutDefaults#BUTTON_MAX_NUMBER cambió por MAX_BUTTONS. (I84788).
  • El nombre de DAILY_DISTANCE cambió por DAILY_DISTANCE_M. (I4f758).

Correcciones de errores

  • Se actualizaron los documentos de tipos de propiedades para aclarar por qué se aplica el valor estático. Especifica el valor predeterminado que se usa si no se proporcionó un valor estático. (I155aa).
  • Los espacios de nombres de PlatformDataKey deben seguir los nombres de estilo Java. (I47bda).

Versión 1.0.0-alpha10

24 de mayo de 2023

Lanzamiento de androidx.wear.protolayout:protolayout-*:1.0.0-alpha10. La versión 1.0.0-alpha10 contiene estas confirmaciones.

Nuevas funciones

  • Se agregó AppDataKey para acceder al estado enviado de la app. Se agregó PlatformDataKey para acceder a los datos de la plataforma. Se agregó compatibilidad con espacios de nombres en StateStore. (I7985e)
  • Se admiten las operaciones Equal y NotEqual para DynamicBool. (I6a0c1).

Cambios en la API

  • La clase FontStyles ahora es definitiva (Iaa2ea).
  • LayoutElementBuilders#FontStyles quedó obsoleto. Usa androidx.wear.protolayout.Typography o crea tu propio FontStyle. (Ic929b).
  • Se ocultó la interfaz anidada Action#Builder de la interfaz Action. Las clases LoadAction y LaunchAction ya proporcionan implementaciones de Builder. (I1d70c).
  • Permite usar DynamicFloat con FloatProp. Ten en cuenta que FloatProp no requiere restricciones de diseño, ya que no se usa como elemento de cambio de diseño. (I286ac)
  • Se quitaron las acciones LoalAction y SetStateAction, ya que aún no eran compatibles. (I5d6a6)
  • Se agregó compatibilidad con el formato ARGB_8888 para los recursos de imagen intercalados. (I8a07c).
  • Se cambió el nombre de StateEntryValue por DynamicDataValue y se actualizaron las APIs de estado para usar DynamicDataKey (If1c01).
  • Limitamos la cantidad de entradas permitidas en StateStore para garantizar que el uso de la memoria y el tiempo de actualización de estado estén bien contenidos y controlados para cada instancia de StateStore. Como resultado, el desarrollador debe asegurarse de no tener más de MAX_STATE_ENTRY_COUNT entradas en el mapa; de lo contrario, recibirá un IllegalStateException cuando cree o actualice el StateStore. (Ibadb3).
  • Se ocultaron las clases OnLoadTrigger y OnConditionMetTrigger, y se cambió el nombre de setTrigger a setCondition para OnConditionMetTrigger. (Ibf629).
  • Por motivos de rendimiento y compatibilidad, los renderizadores de ProtoLayout no admitirán el conjunto completo de funciones en los recursos AnimatedVectorDrawable. Marcaremos esas APIs como experimentales hasta que podamos definir el conjunto compatible. (Ic6daf).
  • Se agregaron tipos dinámicos para la distancia diaria, las calorías diarias y las plantas diarias. Las claves de las fuentes de estado de la plataforma ahora se encuentran en PlatformHealthSources.Keys (Ib7637).
  • El método Easing.cubicBezier reemplaza a CubicBezierEasing.Builder. Con eso, se quita la clase EasingFunction y ahora se puede acceder directamente a las constantes de suavización de esa clase desde la interfaz Easing. Además, setInfiniteRepeatable se reemplaza por INFINITE_REPEATABLE_WITH_RESTART y INFINITE_REPEATABLE_WITH_REVERSE (Ib41e7).
  • Implementa PlatformDataProvider para proporcionar la frecuencia cardíaca y los pasos diarios. Se quitó la interfaz SensorGateway de la API pública. (I55b84).
  • Agrega PlatformDataProvider y actualiza StateStore para registrarte en PlatformDataProvider cuando el nodo de la canalización de expresión requiera la clave compatible del proveedor. (Ib616a).
  • SensorGateway ya no es Closeable, ya que ya no mantiene ningún estado. (I6b4f7).
  • Permite el uso de FloatProp con DynamicFloat para el progreso en CircularProgressIndicator. Esto es compatible con los renderizadores que admiten la versión 1.2. Los renderizadores anteriores recurrirán a staticValue si se proporciona, de lo contrario, a 0 (I0d91b).
  • Las constantes MultiButtonLayout se refactorizaron en la clase LayoutDefaults.MultiButtonLayoutDefaults, que ahora contiene las de los tamaños de los botones según la cantidad de botones en el diseño. (I13973).
  • Se agregó compatibilidad con el uso de StringProp con DynamicString en Material Text. Esto es compatible con los renderizadores que admiten la versión 1.2. Los renderizadores anteriores usarán el valor estático proporcionado. Se actualizó el tipo de datos que se muestra de Text#getText de String a StringProp. (I7275b).

Versión 1.0.0-alpha09

10 de mayo de 2023

Lanzamiento de androidx.wear.protolayout:protolayout-*:1.0.0-alpha09. La versión 1.0.0-alpha09 contiene estas confirmaciones.

Nuevas funciones

  • Se agregó un elemento de diseño de extensión experimental. Ten en cuenta que no se puede usar de forma predeterminada y requiere una extensión del renderizador capaz de comprender el elemento de diseño. (I6581d)
  • Se agregó compatibilidad con StrokeCap para ArcLine. (I94951).
  • Se agregó compatibilidad con la operación instantánea condicional. (I489a7).
  • Se agregó compatibilidad con la operación de duración condicional. (Iab469).
  • Se agregó compatibilidad para crear duraciones a partir de segundos. (Ib5fa1).

Cambios en la API

  • Se quitaron los métodos enable/disablePlatformSource de DynamicTypeEvaluator. El llamador debe ser responsable de las actualizaciones. (I78c6d)
  • Permite limitar el tamaño de los tipos de datos vinculados. (Ie2966).
  • Se agregó compatibilidad con la descripción de contenido dinámico en protolayout-material. (I62c8e).
  • Usa long y @IntRange para la duración y la demora en AnimationParameters. (I388b6).

Versión 1.0.0-alpha08

19 de abril de 2023

Lanzamiento de androidx.wear.protolayout:protolayout-*:1.0.0-alpha08. La versión 1.0.0-alpha08 contiene estas confirmaciones.

Nuevas funciones

  • Se ha agregado a AndroidTextStyle a LayoutElementBuilders. (I8d967).
  • Se agregó compatibilidad para configurar el padding de fuente excluido en el texto de Material ProtoLayout. (I17f5d).
  • Ahora se admite ARGB_8888 para las imágenes intercaladas. (I18c1e).
  • DynamicColor ahora admite la operación onCondition. (I10927).

Cambios en la API

  • Se admite la duración personalizada para la animación inversa (I3251f).
  • Agregamos el modificador SemanticDescription. Además, ContentDescription no se puede vincular. (I3f1d).
  • El método DynamicBool.isFalse() ahora se reemplaza por DynamicBool.negate() y se quita DynamicBool.isTrue(). Además, los valores NaN DynamicFloat y la reducción de un DynamicInt32 a un DynamicFloat ahora emiten un resultado dinámico no válido. (I6ac1e).
  • Los formateadores de int y float ahora usan el patrón de compilador. (Ieb213).

Correcciones de errores

  • Se quitó el valor estático de resguardo de los campos animables. (Ifcb01).
  • Se quitó DynamicTypeValueReceiver#onPreUpdate. (I2dc35).
  • La longitud de las cadenas en las expresiones dinámicas ahora tiene un límite. (I4c93).
  • Las dependencias de Gradle ahora se configuran correctamente en api en lugar de implementation cuando es necesario. (I40503)

Versión 1.0.0-alpha07

5 de abril de 2023

Lanzamiento de androidx.wear.protolayout:protolayout-*:1.0.0-alpha07. La versión 1.0.0-alpha07 contiene estas confirmaciones.

Nuevas funciones

  • Se agregó compatibilidad con valores dinámicos a StringProp (I04342).
  • Marca los elementos de diseño vinculables (Ia110b)

Cambios en la API

  • sensorGateway#registerSensorGatewayConsumer toma el tipo de datos como parámetro en lugar de método en Consumer. (Icf314).
  • El nombre de ObservableStateStore cambió por StateStore. (Ieb0e2).
  • Se agregó DynamicTypeEvaluator.Builder en lugar de argumentos de constructor para permitir más argumentos opcionales, incluido ObservableStateStore, que ahora se establece de forma predeterminada en una tienda vacía. (I6f832).
  • Se refactorizó el orden de los parámetros en DynamicTypeEvaluator. (Ic1ba4).

Correcciones de errores

  • Se propagan correctamente los indicadores de las fuentes de sensores de la plataforma a los nodos downstream (I5a922).

Versión 1.0.0-alpha06

22 de marzo de 2023

Lanzamiento de androidx.wear.protolayout:protolayout-*:1.0.0-alpha06. La versión 1.0.0-alpha06 contiene estas confirmaciones.

Nuevas funciones

  • Agregamos una API experimental para usar la frecuencia cardíaca y los pasos diarios en expresiones dinámicas (Ifd711).
  • Se agregó compatibilidad con la demora de retroceso y avance para las animaciones. (Ic25f7).
  • Agregamos compatibilidad con DynamicColor a Border y Background.
  • Se agregó compatibilidad con valores dinámicos a los tipos en DimensionBuilder.
  • El diseño y los componentes de tiles-material se trasladarán a protolayout-material.

Cambios en la API

  • Se ha agregado a LoadActionListener a ProtoLayoutViewInstance. (If7806).

Correcciones de errores

  • Se agregó FloatNodesTest (Id7281).
  • Se corrigió la falla del renderizador cuando no se podía cargar el mapa de bits estructurado.

Versión 1.0.0-alpha05

8 de marzo de 2023

Lanzamiento de androidx.wear.protolayout:protolayout-*:1.0.0-alpha05. La versión 1.0.0-alpha05 contiene estas confirmaciones.

Nuevas funciones

  • Se agregó una animación experimental de "actualización de contenido" al objeto Modifiers. Esta animación se activará cada vez que el elemento (con este modificador) o uno de sus elementos secundarios cambie durante una actualización de diseño. (bd03e5d).

Cambios en la API

  • Se agregaron forwardRepeatDelayMillis y reverseRepeatDelayMillis a Repeatable. También cambiamos el nombre de delayMillis en AnimationSpec a startDelayMillis (Ifb266).
  • Los métodos DynamicTypeEvaluator.bind ahora aceptan un ejecutor. (I346ab).
  • Se agregó el método startEvaluation a BoundDynamicType para activar la evaluación después de que se vincula el tipo dinámico. (I19908).

Correcciones de errores

  • El objeto Animator se reutilizará para animaciones posteriores de un solo elemento. (Ia3be9).

Versión 1.0.0-alpha04

22 de febrero de 2023

Lanzamiento de androidx.wear.protolayout:protolayout-*:1.0.0-alpha04. La versión 1.0.0-alpha04 contiene estas confirmaciones.

Nuevas funciones

  • ObservableStateStore ahora también informa a los objetos de escucha cuando se quita una clave.
  • Agregamos la versión del esquema del renderizador y la escala de fuente a DeviceParameters (que se puede usar para crear diseños de forma condicional en respuesta a diferentes versiones y parámetros de configuración de fuente).
  • Se agregó compatibilidad con la animación de valores DynamicInt32 (I05485).
  • Se agregaron los activadores OnLoad y OnConditionalMet. Se pueden usar para iniciar animaciones que admiten un activador.
  • Agregamos el peso del diseño para las dimensiones expandidas y el tamaño mínimo para las dimensiones ajustadas.
  • Agregamos tipos dinámicos instantáneos y de duración. Se pueden usar para representar un instante o una duración en una expresión dinámica.
  • Se agregó compatibilidad con AnimatedVectorDrawable y SeekableAnimatedVectorDrawable como recursos de diseño.

Cambios en la API

  • Los datos de sensores requieren el nivel de API 29 o versiones posteriores. (I8099e)
  • Se agregaron dos métodos auxiliares launchAction (para iniciar actividades).

Correcciones de errores

  • Se cambió el nombre de set/getSpec a set/getAnimationSpec en la animación de tarjetas (I3d74b).

Versión 1.0.0-alpha03

8 de febrero de 2023

Lanzamiento de androidx.wear.protolayout:protolayout-*:1.0.0-alpha03. La versión 1.0.0-alpha03 contiene estas confirmaciones.

Nuevas funciones

  • Se agregaron toByteArray() y fromByteArray() a los tipos dinámicos en la biblioteca protolayout-express.
  • Se agregó toString() a los tipos dinámicos en la biblioteca protolayout-expression.
  • Se agregó compatibilidad con la evaluación de los tipos dinámicos. La clase DynamicTypeEvaluator de la biblioteca protolayout-expression-pipeline puede usarse para evaluar (y recibir valores actualizados) para un tipo dinámico que se creó anteriormente (DynamicString, DynamicFloat, …)
  • Cuando no se puedan reproducir las animaciones (ya sea porque están inhabilitadas por el evaluador o porque la cantidad de animaciones en ejecución alcanzó el límite establecido), se usarán los valores estáticos establecidos en el nodo que se puede animar para reemplazar la animación.

Versión 1.0.0-alpha02

25 de enero de 2023

Lanzamiento de androidx.wear.protolayout:protolayout:1.0.0-alpha02, androidx.wear.protolayout:protolayout-expression:1.0.0-alpha02 y androidx.wear.protolayout:protolayout-proto:1.0.0-alpha02. La versión 1.0.0-alpha02 contiene estas confirmaciones.

Nuevas funciones

  • Los compiladores de diseño de androidx.wear.tiles:tiles se trasladarán a androidx.wear.protolayout:protolayout. Los que se encuentran en androidx.wear.tiles:tiles dejarán de estar disponibles en una de las próximas versiones alfa.

Versión 1.0.0-alpha01

11 de enero de 2023

Se lanzaron androidx.wear.protolayout:protolayout-expression:1.0.0-alpha01 y androidx.wear.protolayout:protolayout-proto:1.0.0-alpha01. La versión 1.0.0-alpha01 contiene estas confirmaciones.

Nuevas funciones

  • En esta versión, se presenta una nueva biblioteca llamada "ProtoLayout Expression" que se utiliza para crear expresiones a partir de variables dinámicas.