wear protolayout

  
Esta biblioteca permite definir un conjunto de expresiones y diseños de la IU ajenos 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
7 de agosto de 2024 1.2.0 - - -

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

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

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

Kotlin

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

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

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

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

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 tener compatibilidad de fuentes adicional para los ejes variables y una mejor API de selección de fuentes para admitir las próximas fuentes Flex.
  • Los modificadores adicionales admiten las siguientes funciones:
    • Modificador de transformación que ofrece traslación, rotación y escalamiento con o sin animaciones.
    • Especificar diferentes valores (horizontales y verticales) 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 en el que se puede hacer clic para que sea, al menos, 48dp en 48dp.
  • Se agregaron setResponsiveContentInsetEnabled para mejorar PrimaryLayout y EdgeContentLayout 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 ajuste de escala/no escalado 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 RTL en todos los elementos del arco.

Cambios adicionales

  • Para obtener un conjunto más completo de los cambios que se implementaron en la versión 1.1.0, consulta las notas de la versión beta01.

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 de la etiqueta principal o secundaria. (Iceef9).
  • Se actualizó la documentación de los diseños de Material para incluir imágenes de la página relevante para una comprensión más fácil 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 que la API está bloqueada (excepto cuando se marca como experimental). Wear ProtoLayout 1.2 incluye las siguientes APIs y funcionalidades nuevas:

  • Se actualizó FontStyle para que sea compatible con fuentes adicionales de la siguiente manera:
    • Establecer diferentes parámetros de configuración de variación de fuente, como FontSetting.weight y FontSetting.width
    • Establecer el mismo ancho para todos los caracteres numéricos: numerales tabulares (parámetro de configuración de atributos de fuente FontSetting.tnum)
    • Se mejoraron las APIs de selección de fuentes para admitir las próximas fuentes flexibles mediante la especificación de los nombres de familia de fuentes preferidos que se usarán.
  • Se extendió el modificador Corner para admitir la especificación de cada CornerRadius con valores horizontales y verticales independientes para permitir la compilació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 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 al menos 48dp por 48dp.
  • Se agregaron setResponsiveContentInsetEnabled para mejorar PrimaryLayout y EdgeContentLayout 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 linter para sugerir el uso de estas APIs con una solución rápida.
  • Se mejoró el ajuste de escala/no escalado del Text de Material para el escalamiento de fuente no lineal de Android 14.

Cambios en la API

  • Se quitó el nombre de la familia de fuentes predeterminada (DEFAULT_SYSTEM_FONT), ya que está implícito cuando 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 de texto. (I6e8fc).

Cambios en la API

  • Se movieron la const de FontFamily para que estén en FontStyle en lugar de su clase Builder. (I06ced).
  • Se actualizaron las APIs de FontSetting.weight y FontSetting.width para incluir anotaciones de rango y cambiar el parámetro del peso para que sea 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 que incluya lo siguiente:
    • configuración de características de la fuente, como configurar la fuente para que sea tabular. (If12b7).
    • configuración de variación de fuente, como un ancho personalizado para 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 constantes para la altura de espacio entre el contenido y la etiqueta secundaria en LayoutDefaults de Material que inicialmente tenían el prefijo "Contenido perimetral" para que fueran más genéricas, ya que se pueden aplicar a PrimaryLayout y EdgeContentLayout. (I4dc32).

Correcciones de errores

  • Se cambió el nombre de los ejes de fuente 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 configurar valores de peso personalizados para FontStyle. (I7390a).

Correcciones de errores

  • Se corrigió el error en getTouchDelegateInfo debido a que un mapa de destino está 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 la respuesta de ondas 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 con otro. (I50ba3).
  • El nombre de Text#setIsScalable cambió por Text#setScalable. (If920e).
  • Material Text puede establecer si se usa un tamaño escalable (crece 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 actualice la API para permitir esta opción. (I6589e).

Correcciones de errores

  • Se solucionó un problema de posibles datos duplicados de la plataforma durante la inicialización. (Iba0fd).
  • Introduce un método get nuevo en DynamicDataNode para recuperar el costo del nodo. El costo se usa para adquirir la cuota de nodos dinámicos. Actualmente, los nodos con valores fijos tendrán un costo de 0, mientras que los demás 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).
  • Existe un límite para una 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 agregarle ArcDirection (Clockwise, Counterclockwise o Normal). Si agregas este comportamiento a Arc, ArcLine o ArcText, se corregirá su comportamiento en diseños de derecha a izquierda. (I90699).
  • Se actualizó EdgeContentLayout con un nuevo método set de setResponsiveContentInsetEnabled para lograr una mejor alineación con los lineamientos de UX y coherencia en las tarjetas, ya que tiene la etiqueta principal en un lugar fijo en la parte superior y la inserción responsiva 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 se salga del borde de la pantalla. (I0c457).
  • Agrega un método para quitar los márgenes externos de CircularProgressIndicator de modo que se pueda usar como un componente más pequeño. (I55c06).

Cambios en la API

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

Correcciones de errores

  • Se solucionó el problema de alineación de texto que se producía cuando se usaban la elipsis, el espaciado entre letras y la 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 diseños RTL. (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 de más de 360 grados en ArcLine
  • El formato de fecha y hora admite diferentes zonas horarias para los tipos de datos dinámicos.
  • Mejores opciones de elipsis y ajuste automático de tamaño del texto para controlar el texto truncado.
  • El separador admite dimensiones expandidas con peso opcional.
  • Anotación de los requisitos de la versión del esquema para todas las APIs de ProtoLayout
  • Se extendió el área de destino a cualquier elemento Clickable a 48 dp x 48 dp, para cumplir con los requisitos de accesibilidad.
  • El padding de fuentes 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

  • Para obtener un conjunto más completo de los cambios que se implementaron en la versión 1.1.0, consulta las notas de la versión beta01.

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 diseños de derecha a izquierda. A partir de ahora, irá 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 que la API está bloqueada (excepto cuando se marca como experimental). Wear ProtoLayout 1.1 incluye las siguientes APIs y funcionalidades nuevas:

  • ArcLine ahora admite el gradiente agregando Brush con SweepGradient y teniendo una sombra en el extremo para representar mejor una longitud superior a 360 grados agregando Shadow en el objeto StrokeCap existente.
  • DynamicInstant es compatible con el formato de fecha y hora por zonas. DynamicInstant y DynamicDuration se pueden usar como tipos de datos de estado o plataforma.
  • La función de ajuste automático del tamaño del texto permite establecer varios tamaños en FontStyle.setSizes, donde el tamaño del texto se ajustará automáticamente en función del 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 dando de baja TEXT_OVERFLOW_ELLIPSIZE_END.
  • Spacer ahora admite tener dimensiones expandidas con peso opcional. Para la compilación ExpandedDimensionProp, agregamos un método de ayuda DimensionBuilders.weight.
  • Se agregó 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 la versión se puede verificar antes de llamar a una API más nueva.
  • Cada elemento que tiene Clickable ahora tiene su área de destino extendida a, al menos, 48 × 48 en el procesador para admitir mejor los requisitos de accesibilidad.
  • Siguiendo con otros componentes de Material y las iniciativas de Compose, ahora desactivamos el padding de la fuente de forma predeterminada en todos los elementos Text. Además, se quitaron AndroidTextStyle y los métodos set relacionados de la API pública. con las siguientes correcciones de errores:
  • Se agregó un método set para posicionar el contenido perimetral en EdgeContentLayout de modo que pueda posicionarse antes que otro contenido.
  • Se arroja una excepción de manera coherente cuando se encuentra un valor enum no reconocido.
  • Invalida el resultado de una expresión cuando produce un valor numérico no válido (NaN o infinito) o arroja un ArithmeticException.

Cambios en la API

  • Se actualizó la API de SweepGradient para permitir que se acepten colores o ColorStops en el constructor. (I6676f).

Correcciones de errores

  • Se agregó una API restringida y compatibilidad con el renderizador para configurar la dirección en la que se dibujan los elementos de arco. (Idef5a).
  • El valor predeterminado de RoundMode es Floor en FloatToInt32Node cuando no se especifica. El nodo arrojará 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 procesador ahora admite la opción TEXT_OVERFLOW_ELLIPSIZE. (I7f085).

Cambios en la API

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

Correcciones de errores

  • Se muestra 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 produce 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/mostrar elementos de diseño de forma dinámica. (I64a78)
  • Se agregó compatibilidad con valores dinámicos a BoolProp (I2fe96).
  • Se agregó la anotación de requisitos de versión del esquema a las APIs de ProtoLayout (I0f03c).
  • Se extiende la API con la nueva opción en TextOverflow para reducir 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 plataforma. (I6819f).

Cambios en la API

  • Se actualizó la API para ocultar DynamicZonedDateTime y mover todas sus operaciones a DyanamicInstant (I34b94).
  • El separador ahora admite la dimensión expandida para ancho y alto. (Ie7c94).
  • Se agregó compatibilidad con la extensión del área de destino de clics en el procesador. (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).
  • Extensión de la API para poder especificar el ancho o la altura del espaciador a fin de expandirlo (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 agregó compatibilidad con el tamaño mínimo en el que se puede hacer clic. (I178e3)
  • Se agregó compatibilidad con el procesador para StrokeCap Shadow. (I48b17).
  • Se agregó compatibilidad con el procesador 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, que es compatible con SweepGradient. (Ie7ce3).
  • Se agregó compatibilidad con el formato de fecha y hora por zonas. (Ibfae0).
  • Se agregaron protos y java Wrappers necesarios para el formato por zonas de fecha y hora. (I97126).
  • Se agregaron métodos get para volver a leer el valor almacenado en un DynamicDataValue. (Ie6cea).
  • Se agregó un método set para posicionar el contenido perimetral en EdgeContentLayout de modo que pueda posicionarse antes que otro contenido. (Ie8e8a).

Correcciones de errores

  • Se solucionó un problema que se producía cuando 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).
  • Ya no se ignorarán los valores de restricción de diseño no establecidos (o vacíos). (Ibc785).
  • Se reduce el retraso entre el momento en que un diseño se hace visible y la inicialización de 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 superficies de Wear OS. Por ejemplo, la biblioteca de tarjetas usa estas APIs para admitir la vinculación de datos de la plataforma (para actualizaciones más rápidas de los datos de tarjetas) 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 Tiles a ProtoLayout, sigue las instrucciones que se indican aquí.

Cambios en la API

  • Se quitaron 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 una ProtoLayout a 30 elementos LayoutElements anidados. (I8a74b).

Correcciones de errores

  • Agregamos una verificación a fin de arrojar si se configuró DynamicColor para una SpanText. (I0e5bc).
  • Se aclara que la unidad de fuente de datos de 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

  • Se 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 de tipo seguro de DynamicDataKey a DynamicDataValue en lugar de genéricos no seguros. Eso significa que DynamicDataValue ahora se escribe con su DynamicType. Se movieron las constantes HEART_RATE_ACCURACY_X 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).
  • Se pudo crear una instancia de la clase PlatformHealthSources.Constants por error. Este problema 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 permiten agregarle un ícono. (I5a01e).

Correcciones de errores

  • Se actualizaron los mensajes de Prop con campos dinámicos para usar uno de ellos en su lugar. (I81739)
  • Se volvió a usar la implementación de métodos set para las sobrecargas que tienen métodos set. (Ied70c)
  • Se registraron correctamente las huellas digitales en los métodos set 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 de precisión de la frecuencia cardíaca. (I7f9b8).

Cambios en la API

  • Cambia 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 la clase final. (I408ca)
  • Se reemplazó la interfaz TimeGateway por PlatformTimeUpdateNotifier en la biblioteca protolayout-expression-pipeline, que proporciona la frecuencia deseada para actualizar los datos de hora. (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 método set para la alineación perfecta de la etiqueta a todos los componentes del chip. Todos los chips ahora tienen aplicado un objetivo mínimo que se puede presionar. (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 propuestas para aclarar por qué se aplica el valor estático. Especifica el valor predeterminado que se usó si no se proporcionó un valor estático. (I155aa).
  • Los espacios de nombres PlatformDataKey deben seguir el nombre 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

  • Agrega AppDataKey para acceder al estado enviado de la app. Agrega PlatformDataKey para acceder a los datos de la plataforma. Agrega 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).
  • Oculta la interfaz anidada Action#Builder de la interfaz Action. Las clases LoadAction y LaunchAction ya proporcionan implementaciones de Builder. (I1d70c).
  • Permite el uso de DynamicFloat con FloatProp. Ten en cuenta que FloatProp no requiere restricciones de diseño, ya que no se usa como prop que cambia el diseño. (I286ac).
  • Se quitaron las acciones LoalAction y SetStateAction porque todavía no se admitían. (I5d6a6).
  • Se agregó compatibilidad con el formato ARGB_8888 para recursos de imagen intercalados. (I8a07c).
  • Se cambió el nombre de StateEntryValue a DynamicDataValue y se actualizaron las APIs de estado para usar DynamicDataKey (If1c01).
  • Limitamos la cantidad de entradas permitidas en la StateStore para garantizar que el uso de memoria y la hora 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, obtendrá un IllegalStateException cuando cree o actualice el StateStore. (Ibadb3).
  • Oculta las clases OnLoadTrigger y OnConditionMetTrigger, y cambia el nombre de setTrigger a setCondition para OnConditionMetTrigger. (Ibf629).
  • Por motivos de rendimiento y compatibilidad, los procesadores 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 admitido. (Ic6daf).
  • Se agregaron tipos dinámicos para distancia diaria, calorías diarias y pisos diarios. Las claves para las fuentes de estado de la plataforma ahora están en PlatformHealthSources.Keys (Ib7637).
  • El método Easing.cubicBezier reemplaza a CubicBezierEasing.Builder. Con eso, se quita la clase EasingFunction y se puede acceder directamente a las constantes de aceleración de esa clase desde la interfaz Easing. Además, se reemplazó setInfiniteRepeatable 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 compatible del proveedor. (Ib616a).
  • SensorGateway ya no es Closeable, ya que no mantiene ningún estado. (I6b4f7).
  • Permite el uso de FloatProp con DynamicFloat para el progreso en CircularProgressIndicator. Esto es compatible con los procesadores que admiten la versión 1.2. Los procesadores anteriores recurrirán a staticValue si se proporcionan; de lo contrario, a 0 (I0d91b).
  • Las constantes MultiButtonLayout se refactorizaron en la clase LayoutDefaults.MultiButtonLayoutDefaults, que ahora contiene las para los tamaños de los botones según varios botones del diseño. (I13973).
  • Se agregó compatibilidad con StringProp con DynamicString en Material Text. Esto es compatible con los procesadores que admiten la versión 1.2. Los procesadores anteriores 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 del renderizador que pueda 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 en segundos. (Ib5fa1).

Cambios en la API

  • Se quitaron métodos enable/disablePlatformSource de DynamicTypeEvaluator. El llamador debe ser responsable de las actualizaciones. (I78c6d).
  • Permite la limitación del 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 el retraso 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 la configuración de excluir el padding de la fuente en el texto de Material ProtoLayout. (I17f5d).
  • Ahora se admite ARGB_8888 para imágenes intercaladas. (I18c1e).
  • DynamicColor ahora admite la operación onCondition. (I10927).

Cambios en la API

  • Se agregó compatibilidad con 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 DynamicFloat NaN y la reducción de DynamicInt32 a DynamicFloat ahora emiten un resultado dinámico no válido. (I6ac1e).
  • Los formateadores 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 se limita la longitud de las cadenas en expresiones dinámicas. (I4c93).
  • Las dependencias de Gradle ahora están configuradas correctamente en api en lugar de implementation cuando sea 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 elementos de diseño vinculantes. (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 del constructor para permitir más argumentos opcionales, incluido ObservableStateStore, que ahora muestra un almacén vacío de forma predeterminada. (I6f832).
  • Se refactorizó el orden de los parámetros en DynamicTypeEvaluator. (Ic1ba4).

Correcciones de errores

  • Se propagan correctamente las señales de las fuentes de los sensores de la plataforma a los nodos descendentes. (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

  • Se agregó una API experimental para usar la frecuencia cardíaca y los pasos diarios en expresiones dinámicas (Ifd711).
  • Se agregó compatibilidad con el retraso hacia adelante y hacia atrás para las animaciones. (Ic25f7).
  • Agregamos compatibilidad con DynamicColor a borde y fondo
  • Agregamos compatibilidad con valores dinámicos a los tipos de 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 procesador 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 "actualización de contenido" experimental animación 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

  • Agregamos forwardRepeatDelayMillis y reverseRepeatDelayMillis a Repeatable. También se cambió el nombre de delayMillis en AnimationSpec a startDelayMillis. (Ifb266)
  • Los métodos DynamicTypeEvaluator.bind ahora aceptan un ejecutor. (I346ab).
  • Agregamos el método startEvaluation a BoundDynamicType para activar la evaluación después de vincular 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 la escala de fuentes a DeviceParameters (que se puede usar para crear diseños condicionalmente en respuesta a diferentes versiones y configuraciones de fuentes).
  • Se agregó compatibilidad con la animación de valores de DynamicInt32 (I05485).
  • Agregamos los activadores OnLoad y OnConditionalMet. Se pueden usar para iniciar animaciones que admitan un activador.
  • Agregamos un peso del diseño para las dimensiones expandidas y un tamaño mínimo para las dimensiones unidas.
  • Agregamos los tipos dinámicos instantáneos y la 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 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.