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
6 de marzo de 2024 1.1.0 - - 1.2.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.2.0-alpha01"

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

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

Kotlin

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

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

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

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-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 los diseños RTL. (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 se tiene la etiqueta principal en el lugar fijo en la parte superior y la inserción responsiva para las etiquetas (I60175).
  • Agregamos PrimaryLayout.setResponsiveContentInsetEnabled, que agrega la inserción responsiva 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 externos de CircularProgressIndicator, de modo que se pueda usar como un componente más pequeño. (I55c06).

Cambios en la API

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

Correcciones de errores

  • Se solucionó el problema de alineación de texto que ocurría cuando se usaban la elipse, el espacio entre las letras y la alineación central en el texto. (I716c7).
  • Se agregó una solución alternativa para un problema de dibujo con un arco skia. (I08f09).
  • Se corrigió la dirección del dibujo de ArcLine para diseños de derecha a izquierda. (I6c141).

Versión 1.1

Versión 1.1.0

7 de febrero de 2024

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

Cambios importantes desde 1.0.0

  • Compatibilidad con gradientes y mejor representación de longitudes superiores a 360 grados en ArcLine
  • El formato de fecha y hora admite diferentes zonas horarias para los tipos de datos dinámicos.
  • Mejores opciones de ajuste automático de tamaño y elipsización de texto para controlar texto truncado.
  • El separador admite dimensiones expandidas con un peso opcional.
  • Anotación de 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 la fuente está desactivado de forma predeterminada y es el único comportamiento en todos los elementos Text y los componentes de Material que contienen texto.

Cambios adicionales

Versión 1.1.0-rc01

24 de enero de 2024

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

Correcciones de errores

  • PlatformTimeUpdateNotifierImpl marca una marca inmediatamente después de habilitar la actualización. (I77145).
  • Se corrigió CircularProgressIndicator para diseños RTL. A partir de ahora, será en el sentido de las manecillas del reloj en todos los casos. (I95ee3).
  • Se agregó una solución alternativa para un problema de dibujo con un arco 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 incluye todas las funciones y que la API está bloqueada (excepto cuando se marca como experimental). Wear ProtoLayout 1.1 incluye las siguientes APIs y funciones nuevas:

  • ArcLine ahora admite el gradiente agregando Brush con SweepGradient y teniendo una sombra en la tapa para representar mejor una longitud superior a 360 grados agregando Shadow en el StrokeCap existente.
  • DynamicInstant admite 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 de tamaño para el tamaño del texto permite establecer varios tamaños en FontStyle.setSizes, donde el tamaño del texto se ajustará automáticamente según el espacio que tenga dentro del elemento superior. Además, agregamos TEXT_OVERFLOW_ELLIPSIZE y dimos de baja TEXT_OVERFLOW_ELLIPSIZE_END para mejorar las opciones de elipsis para el texto que se desborda.
  • Spacer ahora admite dimensiones expandidas con peso opcional. Para compilar ExpandedDimensionProp, agregamos un método de ayuda DimensionBuilders.weight.
  • Compatibilidad para ocultar y mostrar elementos de diseño de forma dinámica con Modifier.visible. Esto incluye tener valores dinámicos en BoolProp.
  • Todas las APIs de ProtoLayout ahora tienen una anotación de requisitos de versión de esquema y se puede verificar la versión 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.
  • Luego de otras iniciativas de Compose y de otros componentes de Material, ahora desactivamos el padding de fuentes de forma predeterminada en todos los elementos Text. Además, AndroidTextStyle y los métodos set relacionados se quitaron de la API pública con las siguientes correcciones de errores:
  • Se agregó un método set para posicionar el contenido del borde en EdgeContentLayout de modo que se pueda posicionar antes que otro contenido.
  • Se arroja una excepción de forma constante cuando se encuentra un valor de enumeración no reconocido
  • Invalida el resultado de una expresión cuando produce un valor numérico no válido (NaN o infinito) o arroja una ArithmeticException.

Cambios en la API

  • Se actualizaron la API 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 renderizadores para establecer una dirección en la que se dibujan los elementos de arco (Idef5a).
  • RoundMode se establece de forma predeterminada como Floor en FloatToInt32Node cuando no se especifica. El nodo seguirá arrojando una excepción si no se reconoce el RoundMode proporcionado. (I1b2d8).

Versión 1.1.0-alpha04

13 de diciembre de 2023

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

Nuevas funciones

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

Cambios en la API

  • La opción de menú ampliado de texto TEXT_OVERFLOW_ELLIPSIZE_END dejó de estar disponible. Usa la nueva API de TEXT_OVERFLOW_ELLIPSIZE con un comportamiento muy similar. (I822d8).
  • Después de otras iniciativas de Compose y de otros componentes de Material, ahora desactivamos el padding de fuentes 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 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 produce un valor numérico no válido (NaN o infinito) o arroja una 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 de forma dinámica elementos de diseño (I64a78).
  • Se agregó compatibilidad con valores dinámicos a BoolProp (I2fe96).
  • Se agregó la anotación de requisitos de la versión del esquema a las APIs de ProtoLayout (I0f03c).
  • Extensión de la API con la opción nueva en TextOverflow para elipsar Texto en un contenedor superior fijo, incluso cuando no se alcanza la cantidad máxima de líneas (pero no hay suficiente espacio para 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 espaciador ahora admite la dimensión expandida para el ancho/alto. (Ie7c94).
  • Se agregó compatibilidad con la extensión del área de orientación de clics 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ó a la API un campo ArcLine StrokeCap Shadow. (I830ec).
  • Se extendió la API para poder especificar el ancho o la altura del espaciador para 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 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, compatible con SweepGradient (Ie7ce3).
  • Se agregó compatibilidad con el formato por zonas de fecha y hora. (Ibfae0).
  • Se agregaron protos y Wrappers de Java obligatorios para el formato de fecha y hora por zonas (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 del borde en EdgeContentLayout de modo que se pueda posicionar antes que otro contenido. (Ie8e8a).

Correcciones de errores

  • Se corrigió un problema que se producía cuando una expresión con varios registros de fuente de datos no se actualizaba de inmediato. (I8e1a8).
  • Se corrigió un error en el centro del elemento raíz durante las actualizaciones de diferencias. (Ie48f7).
  • Ya no se ignorarán los valores de restricciones de diseño que no se establezcan (o estén vacíos). (Ibc785).
  • Se redujo el retraso entre el momento en que se hace visible un diseño y la inicialización de los nodos de su canalización. (I38d4e).

Versión 1.0

Versión 1.0.0

9 de agosto de 2023

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

Funciones principales de la versión 1.0.0

La biblioteca de ProtoLayout presenta APIs para crear diseños y expresiones que se pueden usar en diferentes plataformas de Wear OS. Por ejemplo, la biblioteca de tarjetas usa estas APIs para admitir la vinculación de datos de plataforma (para actualizaciones más rápidas de datos de tarjetas) y 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 un diseño de ProtoLayout a 30 LayoutElements anidados. (I8a74b).

Correcciones de errores

  • Se agregó una verificación para arrojar si se configuró DynamicColor para un SpanText (I0e5bc).
  • Se aclaró que la unidad de 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 la configuración del 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. 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 permiten agregar un ícono. (I5a01e).

Correcciones de errores

  • Se actualizaron los mensajes de Prop con campos dinámicos para usar uno de ellos (I81739).
  • Se reutilizó la implementación de métodos set para sobrecargas que tengan métodos set (Ied70c).
  • Se registraron correctamente las huellas digitales en los métodos set que tengan sobrecargas (I86ed2).

Versión 1.0.0-alpha11

7 de junio de 2023

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

Nuevas funciones

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

Cambios en la API

  • Cambia el nombre de StateBuilders#getIdToValueMapping a getKeyToValueMapping y el tipo de datos que se muestra a Map<<AppDataKey<?>,DynamicDataValue>. (Iaa7ae).
  • Se convirtió a StateStore en una 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 por hasExcludeFontPadding (Iea01d).
  • Se agregó un método set para alinear perfectamente la etiqueta a todos los componentes del chip. Ahora todos los chips tienen aplicado un objetivo mínimo táctil. (I8ae92).
  • Se cambió el nombre de LayoutDefaults#BUTTON_MAX_NUMBER por MAX_BUTTONS (I84788).
  • El nombre de DAILY_DISTANCE cambió por DAILY_DISTANCE_M. (I4f758).

Correcciones de errores

  • Se actualizaron los documentos de tipos de propuestas 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 los nombres de estilo Java. (I47bda).

Versión 1.0.0-alpha10

24 de mayo de 2023

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

Nuevas funciones

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

Cambios en la API

  • La clase FontStyles ahora es definitiva (Iaa2ea).
  • LayoutElementBuilders#FontStyles quedó obsoleto. Usa androidx.wear.protolayout.Typography o crea tu propia 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 el uso de DynamicFloat con FloatProp. Ten en cuenta que FloatProp no requiere restricciones de diseño, ya que no se usa como prop de cambio de diseño (I286ac).
  • Se quitaron las acciones LoalAction y SetStateAction, ya que aún no eran compatibles. (I5d6a6).
  • Se agregó compatibilidad con el formato ARGB_8888 para recursos de imagen intercaladas. (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 StateStore a fin de 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 ProtoLayout no admitirán el conjunto completo de funciones en los recursos AnimatedVectorDrawable. Marcaremos esas APIs como experimentales hasta que podamos definir el conjunto compatible. (Ic6daf).
  • Se agregaron tipos dinámicos de distancia diaria, calorías diarias y precios mínimos diarios. Las claves de las fuentes de estado de la plataforma ahora están en PlatformHealthSources.Keys (Ib7637).
  • El método Easing.cubicBezier reemplaza a CubicBezierEasing.Builder. De esta manera, se quita la clase EasingFunction, y ahora se puede acceder directamente a las constantes de aceleración de esa clase 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 registrarte en PlatformDataProvider cuando el nodo de la canalización de expresión requiera la clave compatible del proveedor. (Ib616a).
  • SensorGateway ya no es Closeable porque ya no mantiene ningún estado. (I6b4f7).
  • Permite el uso de FloatProp con DynamicFloat para el progreso en CircularProgressIndicator. Esto es compatible con procesadores que admiten la versión 1.2. Los procesadores anteriores recurrirán a staticValue si se proporciona, de lo contrario, a 0 (I0d91b).
  • Se refactorizaron las constantes MultiButtonLayout en una clase LayoutDefaults.MultiButtonLayoutDefaults, que ahora contiene esas constantes para los tamaños de botones según una cantidad de botones en el diseño. (I13973).
  • Se agregó compatibilidad con StringProp con DynamicString en el texto de Material. Esto es compatible con 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 de procesador 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 condicional. (I489a7).
  • Se agregó compatibilidad para la operación de duración condicional. (Iab469).
  • Se agregó compatibilidad para crear duración a partir de segundos. (Ib5fa1).

Cambios en la API

  • Se quitaron 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 los elementos largo 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 configurar la exclusión del relleno de la fuente en el texto de Material ProtoLayout (I17f5d).
  • Ahora, ARGB_8888 es compatible con 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 es vinculante. (I3f1d).
  • Se reemplazó el método DynamicBool.isFalse() por DynamicBool.negate() y se quitó el DynamicBool.isTrue(). Además, los valores DynamicFloat de NaN y limitar un DynamicInt32 a un 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 pueden animarse. (Ifcb01).
  • Se quitó DynamicTypeValueReceiver#onPreUpdate. (I2dc35).
  • Ahora se limita la longitud de las strings 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).
  • Se marcaron 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).
  • Se cambió el nombre de ObservableStateStore por StateStore (Ieb0e2).
  • Se agregó DynamicTypeEvaluator.Builder en lugar de argumentos de constructor para permitir más argumentos opcionales, incluido ObservableStateStore, que ahora se encuentra 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 downstream (I5a922).

Versión 1.0.0-alpha06

22 de marzo de 2023

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

Nuevas funciones

  • 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 inverso y hacia adelante en las animaciones. (Ic25f7).
  • Se agregó compatibilidad con DynamicColor a los bordes y el fondo.
  • 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 procesador 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 cambien 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 por 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 volverá a usar 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 informa a los objetos de escucha cuando también se quita una clave.
  • Agregamos la versión de esquema del procesador y la escala de fuentes a DeviceParameters (que se pueden usar para crear diseños de manera condicional en respuesta a diferentes versiones y parámetros de configuración de fuente).
  • Se agregó compatibilidad para animar valores DynamicInt32 (I05485).
  • Se agregaron los activadores OnLoad y OnConditionalMet. Se pueden usar para iniciar animaciones que admitan un activador.
  • Agregamos el peso de diseño para las dimensiones expandidas y el tamaño mínimo para las dimensiones unidas.
  • Agregamos los tipos dinámicos instantáneos y de duración. Estos 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 del sensor requieren el nivel de API 29 o superior (I8099e).
  • Agregamos dos métodos auxiliares launchAction (para iniciar objetos Activity).

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

Lanzamiento de 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.