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
24 de septiembre de 2025 1.3.0 - - 1.4.0-alpha01

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"

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

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

Kotlin

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

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

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

Para 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.4

Versión 1.4.0-alpha01

24 de septiembre de 2025

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

Nuevas funciones

  • Se agregó un método auxiliar para LayoutModifier que hace que un elemento aparezca gradualmente a medida que la tarjeta se hace visible. (I38531, b/390345969)
  • Se agregó materialScopeWithResources para admitir el concepto de MaterialScope de M3 que también se encarga del registro automático de recursos. Se agregaron nuevos métodos de ayuda para imágenes (backgroundImage avatarImage y el ícono) que eliminan la necesidad de registrar recursos de forma manual en onTileResourceRequest cuando se usan. (I525bd, b/428692714)
  • ProtoLayout asistentes de Kotlin para Image y ImageResources para usar con ProtoLayoutScope y el registro automático de recursos (Iada82, b/430584304)
  • Se agregó un getter para saber cuántas propiedades de Lottie se permiten en la personalización de una animación de Lottie. (I73733, b/436532706)
  • Se agregó una API en AndroidLottieResourceByResId para permitir la personalización de la animación de Lottie a través de propiedades y se agregó una API para crear una propiedad para el espacio de temas con el ID del espacio al color especificado. (I301b3, b/423581481)
  • Se agregaron APIs de proveedores para aceptar PendingIntent como acción de clic (I01978, b/433802488).
  • Agrega una nueva API en Image.Builder - setImageResource para establecer el objeto de recurso directamente en la imagen en onTileRequest, sin necesidad de registrarlo en la asignación en onTileResourcesRequest. (Ifa69a, b/428693523)
  • Se agregó el concepto de ProtoLayoutScope en preparación para un mejor manejo de recursos en Tiles. (I132ce, b/428692423)
  • ProtoLayout Material3 MaterialScope ahora expone el campo Context como público para usarlo en métodos dentro del alcance, sin necesidad de pasarlo. (I0e5cc, b/414559956)
  • Se hicieron públicas las APIs semánticas de encabezado (I75299, b/413653475).
  • Expone las constantes de ARC_DIRECTION_* como públicas para usarlas en Arc/ArcLine/ArcText/DashedArcLine. (I83959, b/427556439)

Cambios en la API

  • Dimos de baja los métodos Image.Builder() y Image.Builder.setResourceId en favor de la nueva API de registro automático de recursos, disponible en las APIs de Image.Builder(ProtoLayoutScope) y Image.Builder.setImageResource que eliminan la necesidad de anular onTileResourcesRequest. (I7bfe6, b/432758526)
  • Se trasladaron las APIs para crear ProtoLayoutScope de restringidas a públicas. Sin embargo, no se deben usar, ya que el sistema ya controla esas llamadas. (I1d8e8, b/432758251)

Correcciones de errores

  • Se agregó la implementación para admitir PendingIntent en ProtoTiles (I38167, b/430610429).
  • Se agregó el método invalidateLayout. (Ief898)
  • Se cambió el valor predeterminado de minSdk de la API 21 a la API 23 (Ibdfca, b/380448311, b/435705964, b/435705223).
  • ImageResource ahora tiene métodos hashCode y equals. (I650ee, b/428692423, b/428693523)
  • Se agregaron el nuevo mensaje .proto PendingIntentAction y su compilador de wrapper (Ie2aca, b/427643502).
  • Reduce la frecuencia con la que se crea la instancia de ZoneId. (I284d3)
  • Aplica la descripción de contenido predeterminada a la única ranura textButton. (I0dc8a, b/415001534)
  • Se corrigieron los cálculos para ajustar la cantidad máxima de líneas en el renderizador. (I933bc, b/414353620)

Versión 1.3

Versión 1.3.0

4 de junio de 2025

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

Cambios importantes desde 1.2.0

  • El diseño de Material 3 llega al reloj con componentes y diseños optimizados para la pantalla redonda y se ajusta de forma adecuada desde tamaños de pantalla pequeños hasta grandes.
    • Esto incluye la biblioteca protolayout-material3 solo para Kotlin con más APIs similares a Compose para los siguientes componentes y funciones:
    • Tema de color dinámico proveniente del sistema y la carátula del reloj con el tema de Material 3 más reciente para colores, formas y tipografía
    • MaterialScope para encargarse de todos los valores predeterminados basados en opiniones y facilitar la personalización
    • iconEdgeButton, textEdgeButton
    • iconButton, textButton, button, imageButton, avatarButton, compactButton
    • titleCard, appCard, graphicDataCard, iconDataCard, textDataCard
    • circularProgressIndicator, segmentedCircularProgressIndicator
    • primaryLayout, buttonGroup
    • Todos los componentes funcionan en todos los niveles del SDK y en la versión del renderizador ProtoLayout, y proporcionan alternativas adecuadas cuando corresponde.
  • APIs más compatibles con Kotlin y similares a Compose para elementos base de ProtoLayout
    • LayoutModifier con la capacidad de agregar la mayoría de los modificadores como funciones encadenadas (padding, contentDescription [incluido clearSemantics], background, clip, opacity, etcétera), que se pueden convertir en el objeto Modifiers existente
    • LayoutColors y LayoutString como tipos con una compatibilidad más sencilla para usar campos y restricciones dinámicos
    • text y fontStyle
    • Mejor compatibilidad con mapas para StateBuilder, incluidos DynamicDataMap y métodos de fábrica, como intAppDataKey, para facilitar la creación de objetos AppDataKey
  • Las animaciones de Lottie admiten la opción de establecer diferentes activadores para el inicio de la animación, por ejemplo, cuando se carga el diseño o cuando se hace visible.
    • Se mejoró la compatibilidad con los gradientes:
    • API de gradiente lineal como parte de Brush que se puede usar en modificadores de Background para elementos como Box, Spacer, etcétera…
    • Permite valores de color dinámicos en ColorStop que se usan para el gradiente lineal y de barrido
    • El gradiente radial existente en los objetos de arco ahora admite colores dinámicos y ángulos de inicio y finalización.
  • Vinculación de datos de la plataforma en protolayout-expression para recibir información cada vez que se cambia la visibilidad del diseño, lo que, por ejemplo, se puede usar para ocultar ciertas partes del diseño mientras se desliza la tarjeta
  • Se agregó la biblioteca de pruebas (protolayout-testing) para facilitar la cobertura de pruebas de unidades para cualquier elemento de ProtoLayout.
  • Nuevo elemento DashedArcLine con un conjunto mejorado de funciones para que la línea pueda tener guiones, a diferencia del ArcLine existente
  • Compatibilidad con ArcSpacer para establecer su longitud en la dimensión de DP en lugar de grados
  • Se agregó el eje de redondez FontSetting aplicable a algunas fuentes

Versión 1.3.0-rc01

20 de mayo de 2025

Se lanzó androidx.wear.protolayout:protolayout-*:1.3.0-rc01 sin cambios desde la versión anterior. La versión 1.3.0-rc01 contiene estas confirmaciones.

Versión 1.3.0-beta02

7 de mayo de 2025

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

Correcciones de errores

  • Realizamos una mejora importante en los valores de diseño de tipografía que se aplican en la API 36 y versiones posteriores. Esto se debe a que, a partir de la API 36, todas las tarjetas estarán en la fuente del sistema, por lo que este cambio introduce una mejor coherencia en el carrusel de tarjetas. (If316f)
  • Los compiladores de Text,Spacer, ArcLine y DashedArcLine no arrojarán una excepción si no se establecen los valores dinámicos de layoutConstraints. Ten en cuenta que los renderizadores más antiguos aún requieren que se establezca layoutConstraints y omitirán cualquier valor dinámico que no lo tenga establecido. (Ic52e8)
  • Agrega el modificador semántico de encabezado para indicar que un elemento de diseño es un encabezado de una sección de contenido con fines de accesibilidad y marca el texto en la ranura de título de primaryLayout para que sea un encabezado de accesibilidad de forma predeterminada. (Iae1fb)
  • Se realizó el pulido final de la UX de primaryLayout, en el que se redujo el espacio entre la ranura del título y la ranura principal a 4 dp en lugar de 6 dp en pantallas más pequeñas. (I0e056)
  • Aplica la descripción de contenido predeterminada a textEdgeButton. (Ifaf8b)
  • Se actualizó ligeramente el relleno interno de avatarButton. (I0910b)

Versión 1.3.0-beta01

9 de abril de 2025

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

Nuevas funciones

La versión 1.3.0-beta01 de Wear ProtoLayout indica que esta versión de la biblioteca está completa y la API está bloqueada (excepto donde se marque como experimental). Wear ProtoLayout 1.3 incluye las siguientes API y funcionalidades nuevas:

  • El diseño de Material 3 llega al reloj con componentes y diseños optimizados para la pantalla redonda y se ajusta de forma adecuada desde tamaños de pantalla pequeños hasta grandes.
    • Esto incluye la biblioteca protolayout-material3 solo para Kotlin con más APIs similares a Compose para los siguientes componentes y funciones:
    • Tema de color dinámico proveniente del sistema y la carátula del reloj con el tema de Material 3 más reciente para colores, formas y tipografía
    • MaterialScope para encargarse de todos los valores predeterminados basados en opiniones y facilitar la personalización
    • iconEdgeButton, textEdgeButton
    • iconButton, textButton, button, imageButton, avatarButton, compactButton
    • titleCard, appCard, graphicDataCard, iconDataCard, textDataCard
    • circularProgressIndicator, segmentedCircularProgressIndicator
    • primaryLayout, buttonGroup
    • Todos los componentes funcionan en todos los niveles del SDK y en todas las versiones del renderizador de ProtoLayout, y proporcionan alternativas adecuadas cuando corresponde.
  • APIs más compatibles con Kotlin y similares a Compose para elementos base de ProtoLayout
    • LayoutModifier con la capacidad de agregar la mayoría de los modificadores como funciones encadenadas (padding, contentDescription [incluido clearSemantics], background, clip, opacity, etcétera), que se pueden convertir en el objeto Modifiers existente
    • LayoutColors y LayoutString como tipos con una compatibilidad más sencilla para usar campos y restricciones dinámicos
    • text y fontStyle
    • Mejor compatibilidad con mapas para StateBuilder, incluidos DynamicDataMap y métodos de fábrica, como intAppDataKey, para facilitar la creación de objetos AppDataKey
  • Las animaciones de Lottie admiten la opción de establecer diferentes activadores para el inicio de la animación, por ejemplo, cuando se carga el diseño o cuando se hace visible.
    • Se mejoró la compatibilidad con los gradientes:
    • API de gradiente lineal como parte de Brush que se puede usar en modificadores de Background para elementos como Box, Spacer, etcétera…
    • Permite valores de color dinámicos en ColorStop que se usan para el gradiente lineal y de barrido
    • El gradiente radial existente en los objetos de arco ahora admite colores dinámicos y ángulos de inicio y finalización.
  • Vinculación de datos de la plataforma en protolayout-expression para recibir información cada vez que se cambia la visibilidad del diseño, lo que, por ejemplo, se puede usar para ocultar ciertas partes del diseño mientras se desliza la tarjeta
  • Se agregó la biblioteca de pruebas (protolayout-testing) para facilitar la cobertura de pruebas de unidades para cualquier elemento de ProtoLayout.
  • Nuevo elemento DashedArcLine con un conjunto mejorado de funciones para que la línea pueda tener guiones, a diferencia del ArcLine existente
  • Compatibilidad con ArcSpacer para establecer su longitud en la dimensión de DP en lugar de grados
  • Se agregó el eje de redondez FontSetting aplicable a algunas fuentes

Versión 1.3.0-alpha10

12 de marzo de 2025

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

Nuevas funciones

  • Se agregó un asistente para Brush en el modificador Background de Kotlin. (I995de)
  • El campo obligatorio Android Context se hizo público en MaterialScope para permitir un uso más sencillo en las funciones de los desarrolladores que crean componentes para tarjetas de Material 3. (I7df73)

Cambios en la API

  • Se cambió el nombre de la API platformVisibilityStatus a PlatformEventSources.isLayoutVisible y se agregó una nueva API experimental PlatformEventSources.isLayoutUpdatePending. (Ie1e04)

Correcciones de errores

  • Ahora, los márgenes de primaryLayout se redondean correctamente hacia arriba, lo que puede afectar algunos diseños con hasta 2 dp menos de espacio para el espacio principal. (I8f5d3)
  • Se aclaró el tema de color dinámico predeterminado en los componentes de ProtoLayout Material3. (Iff5f3)
  • Las tipografías Typography.NUMERAL_* ya no son tabulares ni de ancho fijo de forma predeterminada. Si el texto tiene una animación, se recomienda agregarle el parámetro de configuración FontSetting.tabularNum(). En todos los demás casos, esta opción de monoespacio no es necesaria y habrá más caracteres disponibles si no la usas. (Id3cd9)
  • Se aclaró el tema de color dinámico predeterminado en los componentes de ProtoLayout Material3. (I9d831)

Versión 1.3.0-alpha09

26 de febrero de 2025

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

Nuevas funciones

  • Se agregaron modificadores experimentales para enterTransition y exitTransition (I4a4d6).
  • Agregamos una vinculación de plataforma adicional para recibir el estado de visibilidad del diseño completo cada vez que cambia. (I250c3)
  • Permite insertar datos de la plataforma y el estado de la app de prueba en LayoutElementAssertionsProvider para evaluar valores dinámicos. (Ib5fcb)
  • Agrega filtros de esquinas a la biblioteca de pruebas de protolayout (Ie2361).
  • ButtonColors, CardColors y ProgressIndicatorColors ahora admiten el método de copia, con la anulación opcional de algunos parámetros. (Ie2054)

Cambios en la API

  • Se agregó compatibilidad con la vinculación de datos dinámicos a la biblioteca de pruebas (Ib98de).
  • Se corrigió imageButton cuando se usa con la función backgroundImage quitando la superposición. Además, permite que la función backgroundImage especifique un valor nulo para el color de superposición, lo que significa que no se aplicará la superposición. (Ibec3c)

Correcciones de errores

  • Se cambió el método hasValueOfType predeterminado para que arroje UnsupportedOperationException en lugar de IllegalArgumentException. (Ia36c3)
  • Se actualizaron los valores de los tokens de color predeterminados para reflejar la especificación más reciente. (I75d44)
  • Se corrigieron problemas de alias visibles en las líneas de arco del renderizador de tarjetas de AndroidX. (I88190)

Versión 1.3.0-alpha08

12 de febrero de 2025

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

Nuevas funciones

  • Agrega el parámetro de lista FontSetting para el texto de Material 3. (Ic102d)
  • Se agregó la clase DynamicDataMap, que ahora admite StateBuilder para una mejor API de Kotlin con seguridad de tipos para los estados de la app (I012ba).
  • Se agregaron métodos de fábrica, como intAppDataKey, para facilitar la creación de objetos AppDataKey (Icea2a).
  • DynamicDataValue ahora tiene un método hasValueOfType(Class<?>) además de los métodos hasInt/hasColor/… (I4f7a6)
  • Agregamos errorDim a ProtoLayout de Material 3 ColorScheme para errores de alta prioridad o acciones de emergencia, como alertas de seguridad. (Ia17bb)
  • Agregamos una protección contra fallas cuando se accede al parámetro de configuración global de reducir movimiento, que se activaba en algunas plataformas en las que no se proporcionaba ese parámetro. (I01e2c)

Cambios en la API

  • Se cambió el nombre de addKeyToValueMapping a addToStateMap y se quitaron los métodos DynamicDataMap.put, ya que eran redundantes. (Ibe9dd)
  • La tipografía de Material 3 ahora admite el eje de variables de redondez para las fuentes del sistema que admiten este eje. ProtoLayout FontSetting admite el eje de redondez para las fuentes que lo admiten. (I33eb5)
  • Se cambió el nombre de multilineAlignment a alignment en el método de texto de Material 3. (I2b66b)
  • Actualiza el indicador de progreso circular para que sea de tipo Box y especifica que mainContent en constructGraphic también sea de tipo Box (I5a3dc).
  • Mejor compatibilidad para usar el indicador de progreso circular en el gráfico (I039db)

Correcciones de errores

  • Permite valores dinámicos en ColorStop y también para los ángulos de inicio y finalización en SweepGradient. (I0146d)
  • Se corrigieron errores en Documentos. (I4a63a)
  • Se actualizaron los componentes de Material 3 (graphicCard y avatarButton) para proporcionar una alternativa cuando no se admite la dimensión de expansión weight (p.ej., por debajo de la API 33). Se actualizó el componente de texto para que recurra a TEXT_OVERFLOW_ELLIPSIZE_END cuando el renderizador no admita TEXT_OVERFLOW_ELLIPSIZE. (I19e2c)
  • Actualización de la documentación para PrimaryLayoutMargins. (Ibaf7b)

Versión 1.3.0-alpha07

29 de enero de 2025

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

Nuevas funciones

  • Se agregó una opción de API para establecer diferentes activadores para las animaciones de Lottie. Además, se agregó una API para los activadores que se activan cuando el diseño está visible (I8272d).
  • Se agregaron los modificadores border, visibility y opacity. (I6d3dd)
  • Se agregó un botón de avatar al componente Material3 de ProtoLayout. (Idb5ae)
  • Ahora permitimos que los márgenes (laterales y, en algunos casos, inferiores) se personalicen en Material 3 primaryLayout. (Ib22f6)
  • Agrega la variante segmentada del indicador de progreso circular. (I6a648)
  • Se agregó el componente de botón compacto a ProtoLayout Material3. (Ia3c5c)
  • Se agregaron componentes de botones con forma de píldora y botones de imagen a ProtoLayout Material3. (Ifb88a)

Cambios en la API

  • Ahora, LayoutModfier.foldIn se llama foldRight para reflejar mejor su comportamiento esperado (Idf242).
  • El activador de VisibleOnce ahora es experimental. (Ib2d26)
  • Se quitó withOpacity de la API pública, ya que existe una alternativa de biblioteca de gráficos. (I030c2)
  • Se cambiaron los nombres de los métodos de nivel superior en LayoutString.kt y LayoutColor.kt para que sean compatibles con Java. (I7aff0)
  • Se quitaron las tipografías que no son de ProtoLayout en Material 3. (Idd9ae)
  • Se agregó el sufijo Color a los campos de las clases *Colors en Material3. (I2d114)

Correcciones de errores

  • Agrega la implementación de resguardo de EdgeButton para el renderizador anterior sin compatibilidad con esquinas asimétricas. (I63364)
  • Se agregó una implementación de resguardo del indicador de progreso circular con un renderizador anterior. (I0f134)

Versión 1.3.0-alpha06

15 de enero de 2025

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

Nuevas funciones

  • LayoutColor para admitir tipos de color estáticos y dinámicos (I4c89b)
  • Se agregó el componente ProtoLayout Material3 textButton. (Id680d)
  • Se agregó el componente iconButton de ProtoLayout Material3. (Ica3f0)
  • Se agregó el componente de contenedor de botones de Material3 de ProtoLayout. (I17a38)
  • Se agregó compatibilidad con los modificadores semánticos encadenables a protolayout-material3 (I4af62).
  • Se agregó el elemento CircularProgressIndicator de segmento único de Material3 de ProtoLayout (I2c8a2).
  • Se agregaron los modificadores padding y metadata (I8720a).
  • Se agregaron los modificadores background,clip y clickable (I35478).
  • Agrega LinearGradient al pincel y permite que se use en el modificador de fondo. (Ic4dea)
  • Se agregó un tamaño pequeño para appCard y titleCard. (I91f98)
  • Se agregó el componente graphicDataCard de Material3 de ProtoLayout. (I92be7)
  • Se agregaron componentes iconDataCard y textDataCard de Material3 de ProtoLayout. (I4e1e4)
  • Se agregó el componente appCard de Material3 de ProtoLayout. (Id4c57)
  • Abstrae EdgeButtonColors a ButtonColors. (I83624)
  • Se agregó el componente titleCard de Material3 de ProtoLayout. (I2dc72)

Cambios en la API

  • La API de ProtoLayout Material3 ahora acepta LayoutString para admitir textos estáticos y dinámicos. (I9c24a)

Correcciones de errores

  • Se agregó la implementación del renderizador para inflar DashedArcLine (I0c700).
  • Cambio en el renderizador para permitir que ArcSpacer tome la longitud en dp. (I1437b)

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 nulabilidad de JSpecify, que son de uso de tipo. Los desarrolladores de Kotlin deberían usar el siguiente argumento del compilador para aplicar el uso correcto: -Xjspecify-annotations=strict (este es el valor predeterminado a partir de la versión 2.1.0 del compilador de Kotlin). (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 Material 3 para que sea una clase con campos que contengan el valor de esquina real, igual que en Wear Compose. (Ied8cd)
  • Se actualizaron los colores de Material3 para incluir el concepto ColorScheme, igual que en Wear Compose. (If645e)
  • Se agregaron varios comparadores de uso común 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 componentes text, edgeButton, buttonGroup y primaryLayout.

Correcciones de seguridad

  • A partir de este cambio, androidx se compila con protobuf 4.28.2 para abordar el CVE-2024-7254. Actualiza tu dependencia de la versión 1.3.0-alpha01 de androidx.wear.protolayout:protolayout-proto y androidx.wear.protolayout:protolayout-external-protobuf a la versión 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 la familia de fuentes Roboto y Roboto Flex depende del dispositivo. (I193be)
  • Se habilitó la familia de fuentes Roboto Flex en el renderizador de mosaicos 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 se compila con protobuf 4.28.2 para abordar el CVE-2024-7254. Actualiza tu dependencia de la versión 1.2.0 de androidx.wear.protolayout:protolayout-proto y androidx.wear.protolayout:protolayout-external-protobuf a la versión 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

  • FontStyle se actualizó para admitir fuentes adicionales para los ejes variables y una mejor API de selección de fuentes para admitir las próximas fuentes Flex.
  • Se agregó compatibilidad con modificadores adicionales:
    • Modificador de transformación que ofrece traslación, rotación y escalamiento con o sin animaciones.
    • Especificar valores diferentes (horizontal y vertical) para cada radio de esquina
  • Se mejoró la accesibilidad de todos los objetivos táctiles extendiendo el área en la que se puede presionar 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 los Tiles.
  • Se mejoró el escalamiento y el no escalamiento del texto de Material para el escalamiento de fuente no lineal de Android 14.
  • Se mejoró la compatibilidad con la dirección del diseño de derecha a izquierda 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

  • Corregimos el chip de Material estándar para que se pueda usar como ícono solo si no se pasa ninguna etiqueta principal o secundaria. (Iceef9)
  • Se actualizó la documentación de los diseños de Material para incluir imágenes de la página correspondiente 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 marque como experimental). Wear ProtoLayout 1.2 incluye las siguientes API y funcionalidades nuevas:

  • FontStyle se actualizó para admitir fuentes adicionales de la siguiente manera:
    • Configurar diferentes parámetros de variación de fuentes, como FontSetting.weight y FontSetting.width
    • Establecer el mismo ancho para todos los caracteres numéricos: cifras tabulares (parámetro de 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 flexibles 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 mejorar la compatibilidad con diferentes direcciones de diseño (como LTR y RTL).
  • Se mejoró la accesibilidad de todos los objetivos táctiles extendiendo el área en la que se puede presionar 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 los Tiles. Se agregó una advertencia del verificador de código para sugerir el uso de estas APIs con una solución rápida.
  • Se mejoró el escalamiento y el no escalamiento del 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 da por sentado que no se usa 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

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

Cambios en la API

  • Las constantes FontFamily se mueven a FontStyle en lugar de a su clase Builder. (I06ced)
  • Se actualizaron las APIs 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 de 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:
    • Es un parámetro de configuración de funciones de fuentes, como establecer la fuente para que sea tabular. (If12b7)
    • Es un parámetro de configuración de variación de fuente, como establecer un ancho personalizado para las fuentes variables. (I2b36d)
  • Se agregó la API de 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 el LayoutDefaults de Material que, inicialmente, tenían el prefijo "Contenido de borde" para que fueran más genéricas, ya que se pueden aplicar tanto a PrimaryLayout como a EdgeContentLayout. (I4dc32)

Correcciones de errores

  • Se cambió el nombre de los ejes de fuentes variables 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

  • Agregamos compatibilidad para inhabilitar la respuesta visual de ondulación 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)
  • El texto de Material puede establecer si se debe usar un tamaño escalable (crece cuando se cambia el tamaño de la fuente del usuario) o no. (Ibc849)
  • Agregamos 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 corrigió un problema de posible duplicación de datos de la plataforma durante la inicialización. (Iba0fd)
  • Se introduce un nuevo getter en DynamicDataNode para recuperar el costo del nodo. El costo se usa cuando se adquiere una cuota de nodos dinámicos. Actualmente, los nodos con valores fijos tendrán un costo de 0, y todos los demás nodos tendrán un costo de 1. (Ia33e1)
  • Quita 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 expresiones dinámicas. (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). Agregar este comportamiento a Arc, ArcLine o ArcText corregirá su comportamiento en los diseños de derecha a izquierda. (I90699)
  • EdgeContentLayout se actualizó con un nuevo establecedor setResponsiveContentInsetEnabled para lograr una mejor alineación con los lineamientos de UX, coherencia en las tarjetas con la etiqueta principal en la parte superior en una posición fija y una inserción adaptable para las etiquetas. (I60175)
  • Agregamos PrimaryLayout.setResponsiveContentInsetEnabled que agrega una inserción adaptable a la etiqueta principal, la etiqueta secundaria y el chip inferior de este diseño para evitar que el contenido se salga del borde de la pantalla. (I0c457)
  • Se agregó un método para quitar los márgenes exteriores de CircularProgressIndicator, de modo que se pueda usar como un componente más pequeño. (I55c06)

Cambios en la API

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

Correcciones de errores

  • Se corrigió el problema de alineación del texto cuando se usan los parámetros de elipsis, espaciado entre letras y alineación central en Text. (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

  • Se agregó compatibilidad con gradientes y una 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 de tamaño y de elipsis para controlar el texto truncado
  • Spacer admite dimensiones expandidas con un peso opcional.
  • Anotación de requisito de versión del esquema para todas las APIs de ProtoLayout.
  • Se extendió 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 Text 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 se marca inmediatamente después de habilitar la actualización. (I77145)
  • Se corrigió CircularProgressIndicator para los diseños de RTL. A partir de ahora, girará en el sentido de las agujas 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 marque como experimental). Wear ProtoLayout 1.1 incluye las siguientes funciones y APIs nuevas:

  • ArcLine ahora admite el gradiente agregando Brush con SweepGradient y teniendo una sombra en el tope para representar mejor las longitudes mayores a 360 grados agregando Shadow en el StrokeCap existente.
  • DynamicInstant admite el formato de fecha y hora con zona. DynamicInstant y DynamicDuration se pueden usar como tipos de datos de estado o de plataforma.
  • Función de ajuste automático del tamaño del texto que permite establecer varios tamaños en FontStyle.setSizes, en la que el tamaño del texto se ajustará automáticamente según el espacio que tenga dentro del elemento superior. Además, mejoramos las opciones de elipsis para el texto que se desborda agregando TEXT_OVERFLOW_ELLIPSIZE y dejando de usar TEXT_OVERFLOW_ELLIPSIZE_END.
  • Spacer ahora admite tener dimensiones expandidas con un peso opcional. Para compilar ExpandedDimensionProp, agregamos un método de ayuda DimensionBuilders.weight.
  • Se agregó compatibilidad para ocultar y mostrar de forma dinámica elementos de diseño con Modifier.visible. Esto incluye tener valores dinámicos en BoolProp.
  • Todas las APIs de ProtoLayout ahora tienen una anotación de requisito de versión del esquema, y la versión se puede verificar antes de llamar a una API más reciente.
  • Todos los elementos que tienen Clickable ahora tienen su área de destino extendida a, al menos, 48 x 48 en el renderizador para satisfacer mejor los requisitos de accesibilidad.
  • Siguiendo otras iniciativas de componentes de Material y Compose, ahora desactivamos el padding de fuentes de forma predeterminada en todos los elementos Text. Además, se quitaron AndroidTextStyle y los métodos de configuración relacionados de la API pública, con las siguientes correcciones de errores:
  • Se agregó un setter para posicionar el contenido del borde en EdgeContentLayout, de modo que se pueda posicionar antes que otro contenido.
  • Se lanza 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 actualizaron las APIs de SweepGradient para permitir la aceptación de 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)
  • Si no se especifica, RoundMode se establece de forma predeterminada como Floor en FloatToInt32Node. 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 ya no está disponible. Usa la nueva API TEXT_OVERFLOW_ELLIPSIZE, que tiene un comportamiento muy similar. (I822d8)
  • Siguiendo otras iniciativas de Material Components y Compose, ahora desactivamos el padding de fuentes de forma predeterminada en todos los elementos Text. Además, se quitaron AndroidTextStyle y los métodos de configuración relacionados de la API pública. (I79094, Ib0b03, I32959, Iaf7d5, Ifa298, I0a4ae, Ida9d3)
  • Se reemplazó Modifier.hidden por Modifier.visible (I56902).
  • FontStyle#setSizes ahora acepta int en lugar de argumentos SpProp. (I02b37)

Correcciones de errores

  • Arroja una excepción cuando se encuentra un valor de enumeración no definido o no reconocido. (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 agregar puntos suspensivos al texto en un contenedor principal 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 trasladar todas sus operaciones a DyanamicInstant (I34b94).
  • Ahora, Spacer admite la dimensión Expanded para el ancho y la altura. (Ie7c94)
  • Se agregó compatibilidad con la extensión del área de destino del clic en Renderer (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 ArcLine StrokeCap Shadow a la API. (I830ec)
  • Se extendió la API para poder especificar el ancho o la altura del elemento Spacer que se expandirá. (I757ca)
  • Agregamos una API experimental para ajustar 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 para hacer clic (I178e3).
  • Se agregó compatibilidad con el renderizador para StrokeCap Shadow. (I48b17)
  • Se agregó compatibilidad con el 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 zonas. (Ibfae0)
  • Se agregaron los Wrappers de Java y los protos necesarios para el formato de fecha y hora zonales. (I97126)
  • Se agregaron métodos get para leer el valor almacenado en un DynamicDataValue. (Ie6cea)
  • Se agregó un setter para posicionar el contenido del borde en EdgeContentLayout, de modo 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 tiempo no se actualizaba de inmediato. (I8e1a8)
  • Se corrigió un error para centrar el elemento raíz durante las actualizaciones de diferencias. (Ie48f7)
  • Los valores de restricción de diseño no establecidos (o vacíos) ya no se ignorarán. (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 introduce APIs para crear diseños y expresiones que se pueden usar en diferentes plataformas de Wear OS. Por ejemplo, la biblioteca de Tiles usa estas APIs para admitir la vinculación de datos de la plataforma (para actualizaciones más rápidas de los datos de la tarjeta) y las animaciones.

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

  • Agregamos una verificación para arrojar una excepción si se configuró DynamicColor para un SpanText. (I0e5bc)
  • Se aclaró 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 con seguridad de tipos de DynamicDataKey a DynamicDataValue en lugar de elementos genéricos no seguros. Esto significa que DynamicDataValue ahora se escribe con su DynamicType. Las constantes de HEART_RATE_ACCURACY_X se movieron a la raíz de PlatformHealthSources para que coincidan con la posición de otras constantes de Android. Las constantes int de 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 podía crear instancias por error. Ya se solucionó este problema. (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 la adición de un ícono. (I5a01e)

Correcciones de errores

  • Se actualizaron los mensajes de Prop con campos dinámicos para usar oneof en su lugar (I81739).
  • Se reutilizó la implementación de los métodos setter para las sobrecargas que tienen métodos setter (Ied70c).
  • Se registran correctamente las huellas dactilares en los métodos 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

  • Agregamos 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 se modificó el tipo de datos que se muestra a Map<<AppDataKey<?>,DynamicDataValue>. (Iaa7ae)
  • Se convirtió StateStore en 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ó el setter para alinear perfectamente la etiqueta a todos los componentes de chip. Ahora todos los chips tienen aplicado el objetivo mínimo de toque. (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 los 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 PlatformDataKey deben seguir la convención de nomenclatura de 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 de la app enviado por inserción, PlatformDataKey para acceder a los datos de la plataforma y compatibilidad con espacios de nombres en StateStore. (I7985e)
  • Admite las operaciones Equal y NotEqual para DynamicBool. (I6a0c1)

Cambios en la API

  • La clase FontStyles ahora es final (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 una propiedad que cambia el diseño. (I286ac)
  • Se quitaron las acciones LoalAction y SetStateAction porque aún no eran compatibles. (I5d6a6)
  • Se agregó compatibilidad con el formato ARGB_8888 para los recursos de imágenes intercaladas. (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 del 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 de 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 los pisos diarios. 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 las constantes de aceleración de esa clase ahora son accesibles directamente desde la interfaz Easing. Además, setInfiniteRepeatable se reemplazó 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 registrarse en PlatformDataProvider cuando el nodo de la canalización de expresiones requiera la clave admitida del proveedor. (Ib616a)
  • SensorGateway ya no es Closeable, ya que no mantiene ningún estado. (I6b4f7)
  • Permite usar FloatProp con DynamicFloat para el progreso en CircularProgressIndicator. Esto es compatible con los renderizadores que admiten la versión 1.2. Los renderizadores antiguos recurrirán a staticValue si se proporciona, o bien a 0 (I0d91b).
  • Las constantes de 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 para usar StringProp con DynamicString en Material Text. Esto es compatible con los renderizadores que admiten la versión 1.2. Los renderizadores antiguos recurrirán al 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

  • Agregamos un elemento de diseño de extensión experimental. Ten en cuenta que esto no se puede usar de forma predeterminada y requiere una extensión de 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)
  • Agregamos compatibilidad para configurar el padding de fuentes excluyente en el texto de Material de 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 agregó compatibilidad con 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 el estrechamiento 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 Builder. (Ieb213)

Correcciones de errores

  • Se quitó el valor estático de resguardo de los campos que se pueden animar. (Ifcb01)
  • Se quitó DynamicTypeValueReceiver#onPreUpdate. (I2dc35)
  • Ahora, la longitud de las cadenas en las expresiones dinámicas tiene un límite. (I4c93)
  • Ahora, las dependencias de Gradle 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).
  • Marcar elementos de diseño vinculables (Ia110b)

Cambios en la API

  • sensorGateway#registerSensorGatewayConsumer toma el tipo de datos como parámetro en lugar del 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 tiene como valor predeterminado un almacén vacío. (I6f832)
  • Se refactorizó el orden de los parámetros en DynamicTypeEvaluator. (Ic1ba4)

Correcciones de errores

  • Propaga correctamente los indicadores de las fuentes de sensores de la plataforma a los nodos posteriores (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).
  • Agregamos compatibilidad con la demora hacia atrás y hacia adelante 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 que se producía 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

  • Agregamos 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 del diseño. (bd03e5d)

Cambios en la API

  • Agregamos 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 Executor. (I346ab)
  • Agregamos 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 las 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 el factor de escala de la 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 fuentes).
  • Se agregó compatibilidad para animar valores de DynamicInt32 (I05485).
  • Agregamos activadores OnLoad y OnConditionalMet. Se pueden usar para iniciar animaciones que admiten un activador.
  • Agregamos un peso de diseño para las dimensiones expandidas y un 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.
  • Agregamos compatibilidad con AnimatedVectorDrawable y SeekableAnimatedVectorDrawable como recursos de diseño.

Cambios en la API

  • Los datos de sensores requieren la API nivel 29 o superior. (I8099e)
  • Agregamos 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.