Wear

Crea aplicaciones para relojes inteligentes de Wear OS by Google.

En esta tabla, se enumeran todos los artefactos del grupo androidx.wear.

Artefacto Versión estable Versión potencial Versión beta Versión Alfa
wear 1.3.0 - - 1.4.0-alpha01
wear-input 1.1.0 - - 1.2.0-alpha02
wear-input-testing 1.1.0 - - 1.2.0-alpha02
wear-ongoing 1.0.0 - - 1.1.0-alpha01
wear-phone-interactions 1.0.1 - - 1.1.0-alpha04
wear-remote-interactions 1.0.0 - - 1.1.0-alpha02
Esta biblioteca se actualizó por última vez el 10 de enero de 2024

Cómo declarar dependencias

Para agregar una dependencia en Wear, debes agregar el repositorio de Maven de Google a tu proyecto. Consulta 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 {
    implementation "androidx.wear:wear:1.3.0"

    // Add support for wearable specific inputs
    implementation "androidx.wear:wear-input:1.1.0"
    implementation "androidx.wear:wear-input-testing:1.1.0"

    // Use to implement wear ongoing activities
    implementation "androidx.wear:wear-ongoing:1.0.0"

    // Use to implement support for interactions from the Wearables to Phones
    implementation "androidx.wear:wear-phone-interactions:1.0.1"
    // Use to implement support for interactions between the Wearables and Phones
    implementation "androidx.wear:wear-remote-interactions:1.0.0"
}

Kotlin

dependencies {
    implementation("androidx.wear:wear:1.3.0")

    // Add support for wearable specific inputs
    implementation("androidx.wear:wear-input:1.1.0")
    implementation("androidx.wear:wear-input-testing:1.1.0")

    // Use to implement wear ongoing activities
    implementation("androidx.wear:wear-ongoing:1.0.0")

    // Use to implement support for interactions from the Wearables to Phones
    implementation("androidx.wear:wear-phone-interactions:1.0.1")
    // Use to implement support for interactions between the Wearables and Phones
    implementation("androidx.wear:wear-remote-interactions:1.0.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.

Wear Tooling Preview versión 1.0

Versión 1.0.0

29 de noviembre de 2023

Lanzamiento de androidx.wear:wear-tooling-preview:1.0.0. La versión 1.0.0 contiene estas confirmaciones.

Funciones de la versión 1.0.0

  • Se agregó WearDevices para enumerar dispositivos para Wear válidos que se pueden usar en las vistas previas de la IU

Versión 1.0.0-rc01

15 de noviembre de 2023

Se lanzó androidx.wear:wear-tooling-preview:1.0.0-rc01 sin cambios. La versión 1.0.0-rc01 contiene estas confirmaciones.

Versión 1.0.0-beta01

18 de octubre de 2023

Se lanzó androidx.wear:wear-tooling-preview:1.0.0-beta01 sin cambios. La Versión 1.0.0-beta01 contiene estas confirmaciones.

Versión 1.0.0-alpha01

23 de agosto de 2023

Lanzamiento de androidx.wear:wear-tooling-preview:1.0.0-alpha01. La versión 1.0.0-alpha01 contiene estas confirmaciones.

Cambios en la API

  • Se agregó WearDevices a fin de enumerar dispositivos para Wear válidos que se pueden usar en las vistas previas de la IU (IB036e).

Wear versión 1.4

Versión 1.4.0-alpha01

15 de noviembre de 2023

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

Correcciones de errores

  • Centra el ícono de ConfirmationOverlay en posición vertical cuando no haya mensaje. (I496d8).

Wear versión 1.3

Versión 1.3.0

9 de agosto de 2023

Lanzamiento de androidx.wear:wear:1.3.0 sin cambios desde 1.3.0-rc01. La versión 1.3.0 contiene estas confirmaciones.

Cambios importantes desde 1.2.0

  • Migra AmbientModeSupport para usar LifecycleObserver. AmbientModeSupport dejó de estar disponible y se reemplazó por las nuevas clases optimizadas para ciclos de vida.
  • Cómo actualizar ConfirmationOverlay con nuevos íconos o diseños, fuentes y métricas de fuentes
  • Se actualizó SwipeDismissTransitionHelper para usar un elemento de diseño en segundo plano, en lugar de un segundo View, a fin de corregir errores cuando se usa FragmentContainerView.
  • Se actualizó la animación de SwipeDismissFrameLayout para que sea coherente con las implementaciones de Wear Compose y de la plataforma de Wear.
  • Se corrigió un error de SwipeDismissFrameLayout para evitar el descarte accidental de fragmentos con un deslizamiento vertical.
  • ArcLayout ahora admite pesos de expansión que funcionan de manera similar a los pesos de diseño normales.
  • Apoya a layoutDirection en ArcLayout

Versión 1.3.0-rc01

21 de junio de 2023

Lanzamiento de androidx.wear:wear:1.3.0-rc01 sin cambios desde 1.3.0-beta01. La versión 1.3.0-rc01 contiene estas confirmaciones.

Versión 1.3.0-beta01

7 de junio de 2023

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

Cambios en la API

  • Se actualizó AmbientLifecycleObserver después de los comentarios. Se cambió el nombre de AmbientLifecycleObserverInterface por AmbientLifecycleObserver, y se puede obtener una instancia llamando a AmbientLifecycleObserver(...). isAmbient se movió para que sea un campo en lugar de un método. (I84b4f).

Correcciones de errores

  • Se agregaron verificaciones nulas para manejar casos en los que la vista superior es nula mientras se restablecen las versiones alfa y traducción en SwipeToDismiss. (Ib0ec7).

Versión 1.3.0-alpha05

19 de abril de 2023

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

Cambios en la API

  • Migra AmbientModeSupport para usar LifecycleObserver. AmbientModeSupport dejó de estar disponible y se reemplazó por las nuevas clases optimizadas para ciclos de vida. (I1593b).

Correcciones de errores

  • Se actualizó el enfoque de lámina de fondo SwipeDismissTransitionHelper para usar elementos de diseño en lugar de agregar vistas para corregir errores mientras se usa FragmentContainerView (I851cd).

Versión 1.3.0-alpha04

25 de enero de 2023

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

Correcciones de errores

  • Actualizamos la animación en SwipeDismissFrameLayout para que sea coherente con las implementaciones de Wear Compose y de la plataforma de Wear (I7261b).

Versión 1.3.0-alpha03

24 de agosto de 2022

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

Nuevas funciones

  • ArcLayout ahora admite pesos de expansión que funcionan de manera similar a los pesos de diseño normales. Esto significa que puedes especificar el tamaño relativo de los elementos secundarios sin tener que calcular sus ángulos directamente. También agregamos un MaxAngleDegrees mejorado, que se respeta cuando se expanden los elementos secundarios con peso. Por ejemplo, puedes restringir el arco con varios elementos secundarios con pesos a 90 grados. Esto también respetará el espacio que ocupan los elementos no expandidos.

Cambios en la API

  • Se agregó peso a ArcLayout.LayoutParams, lo que permite que un widget se expanda para llenar el espacio disponible. Si hay más de un widget, su proporción del espacio disponible será proporcional al peso. Además, se agregó ArcLayout.setMaxAngleDegrees para que puedas, por ejemplo, limitar la expansión a 90 grados (esto no afecta el diseño de widgets secundarios de tamaño fijo). Por último, ArcLayout.Widget ahora tiene setSweepAngleDegrees, que permite que ArcLayout informe a un widget con un peso distinto de cero su tamaño (I75f24).
  • Se actualizó la nulabilidad de setColorFilter (I99ddf, b/236498063).

Versión 1.3.0-alpha02

23 de febrero de 2022

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

Nuevas funciones

  • Compatibilidad con layoutDirection en ArcLayout (I14d49).
  • Se mejoró el mensaje de descripción de contenido para ConfirmationOverlay (I0fdf8).
  • Se actualizó ConfirmationOverlay con nuevos íconos o diseños (If5b54).

Correcciones de errores

  • Se agregaron reglas de ProGuard para garantizar que se conserve el código relacionado con el ambiente (Idaa10).
  • Se evitó que se descarten fragmentos accidentalmente en SwipeDismissFrameLayout mediante un desplazamiento vertical (Idb6d8).
  • Se corrigió ConfirmationOverlay cuando no tenía ningún mensaje (I63e6f).

Contribución externa

  • Dae Gyu LEE (Samsung): Se evitó que se descarten fragmentos de forma accidental en SwipeDismissFrameLayout mediante un desplazamiento vertical (Idb6d8).

Versión 1.3.0-alpha01

29 de septiembre de 2021

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

Correcciones de errores

  • ConfirmationOverlay ahora desplaza el ícono hacia arriba para alojar mensajes más largos, sin que el mensaje ingrese en el bisel del dispositivo (o fuera de la pantalla). (I54bff)

Wear Ongoing e Interactions versión 1.1.0

VerWear-Phone-Interactions versión 1.1.0-alpha04

10 de enero de 2024

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

Cambios en la API

  • Se agregó RemoteAuthClient.isRemoteAuthAvailable, que verifica si la autenticación remota está disponible (Ibc10c).

Versión 1.1.0-alpha02

10 de enero de 2024

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

Cambios en la API

  • Se agregó RemoteActivityHelper.isRemoteActivityHelperAvailable, que ayuda a verificar si está disponible la funcionalidad de iniciar una actividad remota. (I107a9).
  • Se actualizó el constructor de RemoteActivityHelper para que tenga parámetros opcionales compatibles en Java (I75554).

Versión 1.1.0-alpha01

21 de junio de 2023

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

Correcciones de errores

  • Se mejoró la realización de la finalización y el manejo de errores en RemoteActivityHelper. (I60d60).

Contribución externa

  • Se quitó la dependencia de Guava de wear-remote-interactions y se usan alternativas más pequeñas

Wear-Phone-Interactions versión 1.1.0-alpha03

9 de marzo de 2022

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

Correcciones de errores

  • redirectUrl de OAuthRequest ahora muestra una string vacía si no se establece la URL de redireccionamiento en la URL de solicitud dada (I44242).

Wear-Phone-Interactions versión 1.1.0-alpha02

15 de diciembre de 2021

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

Correcciones de errores

  • Se corrigieron errores en la documentación de RemoteAuthClient, incluidos el error del fragmento de muestra de código y el vínculo que no funcionaba a ErrorCode (I260e8).

Wear-Phone-Interactions versión 1.1.0-alpha01

15 de septiembre de 2021

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

Cambios en la API

  • Se agregó la propiedad redirectUrl a OAuthRequest. (I98840, Ie684d)

Wear Ongoing e Interactions versión 1.0.0

Wear-Phone-Interactions versión 1.0.1

15 de diciembre de 2021

Lanzamiento de androidx.wear:wear-phone-interactions:1.0.1. La versión 1.0.1 contiene estas confirmaciones.

Correcciones de errores

  • Se corrigió una excepción de BridgingManager que se arrojaba cuando se intentaba inhabilitar las notificaciones de puente sin excludedTags.

Wear-Phone-Interactions Wear-Remote-Interactions versión 1.0.0

15 de septiembre de 2021

Lanzamiento de androidx.wear:wear-phone-interactions:1.0.0 y androidx.wear:wear-remote-interactions:1.0.0. La versión 1.0.0 contiene estas confirmaciones.

Funciones principales de la versión 1.0.0

La biblioteca de interacción con teléfonos incluye API para interacciones entre dispositivos wearable y teléfonos. Contiene lo siguiente:

  • PhoneDeviceType, que proporciona métodos de ayuda para determinar el tipo de teléfono con el que está vinculado el reloj actual; solo para uso en dispositivos wearable
  • API de BridgingManager, BridgingManagerService y BridgingConfig para habilitar e inhabilitar las notificaciones durante el tiempo de ejecución y, de manera opcional, configurar etiquetas para notificaciones exentas del modo puente
  • RemoteAuthClient, que admite la autenticación remota en dispositivos wearable, además de compatibilidad para agregar la extensión PKCE de OAuth (se proporcionan clases auxiliares y controladores adicionales para la comunicación)

La biblioteca de interacción remota incluye API para interacciones entre dispositivos wearable y teléfonos. Contiene lo siguiente:

  • WatchFaceConfigIntentHelper, que proporciona funciones de ayuda para especificar el ID y el nombre del componente en las actividades de configuración de cara del reloj para la aplicación complementaria del teléfono
  • La clase RemoteActivityHelper, que se puede usar para abrir intents en otros dispositivos (es decir, de reloj a teléfono)

Wear-Phone-Interactions Wear-Remote-Interactions versión 1.0.0-rc01

1 de septiembre de 2021

Lanzamiento de androidx.wear:wear-phone-interactions:1.0.0-rc01 y androidx.wear:wear-remote-interactions:1.0.0-rc01. La versión 1.0.0-rc01 contiene estas confirmaciones.

Correcciones de errores

  • Se corrigió un error que evita que los errores producidos dentro de los Servicios de Google Play se propaguen al emisor de la llamada al usar RemoteActivityHelper. (I60d60)
  • Se corrigió el error por el que RemoteActivityHelper nunca cumplía su interfaz Future si no había nodos conectados o si no se encontraba el nodeId solicitado. (I60d60)

Wear-Ongoing versión 1.1

Versión 1.1.0-alpha01

23 de agosto de 2023

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

Cambios en la API

  • Agrega un campo de descripción de contenido a la actividad en curso. Los servicios de accesibilidad lo usarán para describir la actividad en curso. (I79fc6).

Correcciones de errores

  • Se agregó @RequiresPermission a las APIs que requieren que se otorgue el permiso POST_NOTIFICATIONS en SDK 33 y versiones posteriores (Ie542e, b/238790278).

Wear-Ongoing versión 1.0.0

1 de septiembre de 2021

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

Funciones principales de la versión 1.0.0

  • La API de actividades en curso de Wear es una API para desarrolladores, incluidos los desarrolladores de terceros, que se usa para marcar su actividad como "actividad en curso" y brindar la información necesaria.
  • Las actividades en curso son aquellas que pueden ejecutarse en segundo plano en el reloj (p. ej., entrenamientos, llamadas y contenido multimedia). En Wear 3, una actividad declarada como en curso se hará más prominente con un ícono de superposición dedicado en la cara de reloj y una renderización diferente en el selector de aplicaciones.
  • Para obtener más información, consulta la Guía de actividades en curso de Wear.

Wear-Phone-Interactions Wear-Remote-Interactions versión 1.0.0-beta01

18 de agosto de 2021

Lanzamiento de androidx.wear:wear-phone-interactions:1.0.0-beta01 y androidx.wear:wear-remote-interactions:1.0.0-beta01. La versión 1.0.0-beta01 contiene estas confirmaciones.

Cambios en la API

  • Se cambió el nombre de la clase RemoteIntentHelper a RemoteActivityHelper. Cambiaron los nombres de las funciones RemoteIntentHelper#getRemoteIntentExtraIntent y RemoteIntentHelper#getRemoteIntentNodeId a RemoteActivityHelper#getTargetIntent y RemoteActivityHelper#getTargetNodeId, respectivamente. (Id2042)

Wear-Ongoing versión 1.0.0-rc01

18 de agosto de 2021

Lanzamiento de androidx.wear:wear-ongoing:1.0.0-rc01 sin cambios desde 1.0.0-beta01. La versión 1.0.0-rc01 contiene estas confirmaciones.

Wear-Ongoing versión 1.0.0-beta01

4 de agosto de 2021

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

Cambios en la API

  • Ahora, algunos métodos set de OngoingActivity.Builder aceptan argumentos nulos para dar simetría y coherencia a los métodos set y get. (I17ee5)

Wear-Phone-Interactions versión 1.0.0-alpha07

4 de agosto de 2021

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

Cambios en la API

  • Se cambió el nombre de WearTypeHelper.isChinaDevice a WearTypeHelper.isChinaBuild. (I47302)
  • Se actualizó la biblioteca de RemoteAuthClient para que seleccione automáticamente redirect_uri, según el tipo de dispositivo (RoW/China). (I38866)
  • Se corrigió el error que hacía que la conversión de BridgingConfig desde o hacia Bundle fallara con ClassCastException. Se agregaron pruebas de unidades para la clase BridgingManagerService. (I68ecb)

Wear-Remote-Interactions versión 1.0.0-alpha06

4 de agosto de 2021

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

Wear-Phone-Interactions versión 1.0.0-alpha06

21 de julio de 2021

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

Cambios en la API

  • La clase BridgingManagerSeviceBinder ahora es una subclase de Service y se le cambió el nombre a BridgingManagerSevice. (I9fca2)
  • Se cambió el método RemoteAuthClient.Callback.onAuthorizationError para que incluya el parámetro OAuthRequest. Los métodos que requieren devolución de llamada ahora también requieren un ejecutor para hacerla. (I35e11)

Correcciones de errores

  • La API de autenticación es más clara con parámetros más documentados y con el uso de propiedades siempre que sea posible (I12287)

Wear-Phone-Interactions versión 1.0.0-alpha05

30 de junio de 2021

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

Correcciones de errores

  • Se documentaron los parámetros que se deben pasar en el constructor para BridgingConfig.Builder.

Wear-Ongoing versión 1.0.0-alpha06

2 de junio de 2021

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

Cambios en la API

  • Agrega el campo Título a la actividad en curso. (I7a405)

Correcciones de errores

  • Ahora, SerializationHelper.copy() realiza una copia defensiva de la información. (I8b276)
  • Se mejoró la documentación de setCategory. (Iff01f)

Wear-Ongoing versión 1.0.0-alpha05

18 de mayo de 2021

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

Cambios en la API

  • Ahora, OngoingActivity tiene métodos get para recuperar todos los valores configurados directamente a través del compilador (o los predeterminados que se toman de la notificación asociada). (Id8ac8)

    • La nueva clase Status ahora se usa para crear el estado de la OngoingActivity.
    • OngoingActivityData y OngoingActivityStatus dejaron de formar parte de la API pública.
  • Las clases TextStatusPart y TimerStatusPart dejaron de formar parte de la API pública. (I57fb6)

    • Para crear un elemento Part con texto estático, usa Status.TextPart.
    • Para crear un elemento Part con un cronómetro (cuenta en aumento), usa Status.Stopwatch.
    • Para crear un elemento Part con un temporizador (cuenta regresiva), usa Status.Timer.

Wear-Ongoing versión 1.0.0-alpha04

5 de mayo de 2021

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

Cambios en la API

  • En OngoingActivity, los métodos fromExistingOngoingActivity ahora se llaman recoveryOngoingActivity.
  • OngoingActivity ahora tiene un conjunto completo de métodos get, el mismo que antes solo estaba disponible en OngoingActivityData. (I0ee4d)

Wear-Remote-Interactions versión 1.0.0-alpha05

21 de julio de 2021

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

Cambios en la API

  • Se agregó la clase RemoteIntentHelper (anteriormente llamada RemoteIntent en la biblioteca de compatibilidad para wearables), que se puede usar para abrir intents en otros dispositivos (es decir, de reloj a teléfono) (I1d7e0)

  • Se quitó la clase PlayStoreAvailability de la biblioteca de AndroidX. Para detectar si la Play Store está disponible en un teléfono conectado, utiliza el método androidx.phone.interactions.PhoneTypeHelper.getPhoneDeviceType para determinar si se trata de un teléfono Android. Luego, usa el método androidx.wear.utils.WearTypeHelper.isChinaDevice a fin de determinar si el teléfono conectado es un dispositivo chino. Si el teléfono es un dispositivo Android y no es un dispositivo chino, Play Store estará disponible. (Ie7dec)

Wear-Phone-Interactions versión 1.0.0-alpha04

7 de abril de 2021

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

Cambios en la API

  • Se actualizaron las constantes ErrorCode para hacer que la biblioteca nueva sea retrocompatible con la implementación en la biblioteca de compatibilidad para wearables.

Correcciones de errores

  • Se corrigió la excepción causada por la nueva API de OAuth cuando se inicia una sesión de OAuth.

Wear-Remote-Interactions versión 1.0.0-alpha03

7 de abril de 2021

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

Cambios en la API

  • Se cambió PlayStoreAvailability para que sea una clase que contenga un objeto complementario con métodos estáticos. El uso no cambia.

Correcciones de errores

  • Se corrigió el documento de resumen de WatchFaceConfigIntentHelper para mostrar correctamente el código de muestra con caracteres HTML reales.

Wear-Ongoing Wear-Phone-Interactions versión 1.0.0-alpha03

10 de marzo de 2021

Lanzamiento de androidx.wear:wear-ongoing:1.0.0-alpha03 y androidx.wear:wear-phone-interactions:1.0.0-alpha03. La versión 1.0.0-alpha03 contiene estas confirmaciones.

Nuevas funciones

  • Se migró OAuthClient de una biblioteca de compatibilidad para wearables a AndroidX. Se cambió el nombre de esta clase migrada a RemoteAuthClient y permite la autenticación remota en dispositivos wearables junto con la posibilidad de agregar la extensión OAuth PKCE. Se proporcionan clases auxiliares y controladores adicionales para la comunicación.
  • Ahora se pueden asociar las actividades que estén en curso con una notificación que tenga una etiqueta mediante el nuevo constructor OngoingActivity.Builder.

Cambios en la API

  • Se agregó compatibilidad con las etiquetas de notificación en la biblioteca de actividades en curso. (I653b4)
  • Se migró OAuthClient de la biblioteca de compatibilidad de Wear y se agregó compatibilidad con la extensión OAuth PKCE. (I3eao)

Wear-Remote-Interactions versión 1.0.0-alpha02

10 de marzo de 2021

Lanzamiento de androidx.wear:wear-remote-interactions:1.0.0-alpha02. La versión 1.0.0-alpha02 contiene estas confirmaciones.

Nuevas funciones

  • Se migró la clase PlayStoreAvailability desde la biblioteca de compatibilidad para wearables a AndroidX, que proporciona una API para verificar si Play Store está disponible en el teléfono.

Correcciones de errores

  • Se migró la clase PlayStoreAvailability desde la biblioteca de compatibilidad para wearables a AndroidX (I69bfe)

Versión 1.0.0-alpha02

10 de febrero de 2021

Lanzamiento de androidx.wear:wear-ongoing:1.0.0-alpha02 y androidx.wear:wear-phone-interactions:1.0.0-alpha02. La versión 1.0.0-alpha02 contiene estas confirmaciones.

Cambios en la API

  • Se agregó compatibilidad con estados más complejos. Estos incluyen una plantilla (o varias) y una serie de partes que se usarán para completar los marcadores de posición de la plantilla. OngoingActivityStatus ahora tiene un método estático para crear estados simples con una sola parte (un Text o un Timer) y un Builder para crear estados más complejos. (I1fe81)
  • Se trasladaron las clases BridgingManager y BridgingConfig de la biblioteca de compatibilidad de Wear a AndroidX, lo que proporciona API para habilitar e inhabilitar notificaciones en el tiempo de ejecución y, de manera opcional, configurar etiquetas para las notificaciones exentas del Modo puente. (I3a17e)

Versión 1.0.0-alpha01

27 de enero de 2021

Lanzamiento de androidx.wear:wear-ongoing:1.0.0-alpha01, androidx.wear:wear-phone-interactions:1.0.0-alpha01 y androidx.wear:wear-remote-interactions:1.0.0-alpha01. La versión 1.0.0-alpha01 contiene estas confirmaciones.

Cambios en la API

  • Se migró la biblioteca de actividades en curso a una subbiblioteca nueva: wear-ongoing. Las clases ahora están disponibles en el paquete androidx.wear.ongoing (anteriormente, androidx.wear.ongoingactivities). (I7c029)

  • Se creó una nueva biblioteca de compatibilidad con clases que admiten interacciones de wearables con teléfonos. Inicialmente, se propagaron las clases migradas de la biblioteca de compatibilidad para wearables (Id5180)

  • Se migró la clase PhoneDeviceType de la biblioteca de compatibilidad para wearables a AndroidX. También se cambió el nombre de la clase migrada a PhoneTypeHelper, que ofrece métodos auxiliares para determinar el tipo de teléfono al que se vinculó el reloj actual. Solo funciona en dispositivos wearables. (Ibd947)

  • Se creó una biblioteca de compatibilidad nueva con clases que admiten interacciones entre wearables y teléfonos. Inicialmente, se propagaron clases migradas de la biblioteca de compatibilidad para wearables (I9deb4)

  • Se migró la clase WatchFaceCompanion de la biblioteca de compatibilidad para wearables a AndroidX. Se cambió el nombre de la clase migrada a WatchFaceConfigIntentHelper, que ofrece funciones auxiliares para especificar el ID y el nombre del componente en las actividades complementarias de configuración de la cara de reloj en el teléfono. También se puede usar a nivel local para configurar la cara de reloj en el dispositivo wearable. (Ia455f)

Wear Complications y Watchface 1.0.0

Versión 1.0.0-alpha22

15 de septiembre de 2021

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

Nuevas funciones

  • Ahora, EditorSession se suscribe a observadores de ciclo de vida para que ya no tengas que cerrarlo explícitamente cuando finalice tu actividad.

Cambios en la API

  • Ahora, EditorSession y ListenableEditorSession usan StateFlows de Kotlin para complicationSlotsState, ComplicationsPreviewData y ComplicationsDataSourceInfo. (I761d9)
  • EditorSession#userStyle ahora es un objeto MutableStateFlow<UserStyle>. (I32ca9)
  • EditorSession.createOnWatchEditorSession ahora usa un observador de ciclo de vida y se cierra automáticamente cuando observa onDestroy. Además, createOnWatchEditorSession ahora solo requiere que se pase la actividad. También se aplicaron cambios idénticos a ListenableEditorSession. (Ic6b7f)
  • El constructor de CustomValueUserStyleSetting se restableció como parte de la API pública. (I2e69a)
  • UserStyle ahora hereda de Map<UserStyleSetting, UserStyleSetting.Option>, y MutableUserStyleSetting#put arroja IllegalArgumentException si la configuración no está en el esquema o si la opción no coincide. (Iba40f)

Versión 1.0.0-alpha21

1 de septiembre de 2021

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

Cambios en la API

  • Todas las API públicas de caras de reloj, cliente, editor y complicaciones ahora usan java.time.Instant para horas en lugar de Long, por lo que el nivel de API mínimo aumentó a 26. (I3cd48)
  • Las API de caras de reloj y de complicación ahora usan ZonedDateTime inmutable en lugar de Calendar. (I25cf8)
  • ComplicationSlots ahora se inicializan con NoDataComplicationData, ComplicationSlot.complicationData siempre tiene un valor, y CanvasComplicationDrawable.complicationData ya no es anulable. (I4dfd6) Esto reduce (pero no elimina) el parpadeo cuando se cambia de una cara de reloj a otra.

Versión 1.0.0-alpha20

18 de agosto de 2021

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

Cambios en la API

  • Se agregó createFallbackPreviewData a ComplicationDataSourceInfo, que se puede usar cuando ComplicationDataSourceInfoFetchr.fetchPreviewComplicationData muestra un valor nulo. (I38c4d)
  • ComplicationDataSourceUpdateRequester se convirtió en una interfaz para permitir la simulación en las pruebas de unidades. Puedes crear una ComplicationDataSourceUpdateRequester concreta con ComplicationDataSourceUpdateRequester.create(). (I7da22).
  • Se reemplazó RenderParameters.pressedComplicationSlotIds por RenderParameters.lastComplicationTapDownEvents, que expone la nueva clase TapEvent que contiene tres coordenadas x, y del toque en píxeles y una marca de tiempo. WatchFace.TapListener.onTap se reemplazó por onTapEvent(@TapType tapType: Int, tapEvent: TapEvent). Además, se quitó InteractiveWatchFaceClient.displayPressedAnimation. (Id87d2)
  • Se agregó la anotación del subproceso explícito para setImportantForAccessibility. (I990fa)
  • Se movió ComplicationSlotBoundsType a androidx-wear-watchface.ComplicationComplicationBoundsType en wear/wear-watchface. (I09420)
  • Se agregó compatibilidad para pasar ID de recursos de strings a UserStyleSetting y Options. Esta es la forma recomendada de construir esos objetos. (I03d5f)
  • Se impusieron límites al tamaño máximo de transferencia de un esquema UserStyle. Además, los íconos del esquema no deben superar los 400 x 400 píxeles. (I3b65b)
  • Se agregó una clase MutableUserStyle para admitir cambios en instancias de UserStyle. (I95a40)
  • Se cambió el nombre de ListenableWatchFaceMetadataClient.Companion#listenableCreateWatchFaceMetadataClient por ListenableWatchFaceMetadataClient.Companion#createListenableWatchFaceMetadataClient. (I64ce2)
  • Se modificó EditorState.previewComplicationsData para que solo contenga datos de complicaciones habilitadas, y se agregó EditorSession.DEFAULT_PREVIEW_TIME_MILLIS, que si se pasa a renderWatchFaceToBitmap o PreviewScreenshotParams, solicita procesamientos con el tiempo de vista previa predeterminado de la cara de reloj. (If7b3c)
  • Se quitaron los constructores de UserStyleSetting que tomaban CharSequence de la API pública. En cambio, se recomienda usar los constructores que requieren ID de StringResource. (I8537b)
  • CurrentUserStyleRepository.UserStyleChangeListener ahora admite la conversión de SAM. (I85989)

Versión 1.0.0-alpha19

4 de agosto de 2021

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

Cambios en la API

  • Se agregó ListenableWatchFaceMetadataClient.listenableCreateWatchFaceMetadataClient, que proporciona un wrapper ListenableFuture para WatchFaceMetadataClient.createWatchFaceMetadataClient. (I5fa37)
  • UserStyleOption.getOptionForId ahora acepta UserStyleOption.Id en lugar del array de bytes. (I469be)
  • Se proporcionaron constantes BooleanOption.TRUE y BooleanOption.FALSE, además de no permitir la creación de instancias. (I46e09)
  • Los métodos de wear-watchface-client que pueden arrojar RemoteException ahora tienen anotaciones según corresponda. (Ib8438)
  • Para mantener la coherencia, se cambió el nombre de EditorSession.createOnWatchEditingSession a createOnWatchEditorSession, del mismo modo que createHeadlessEditingSession ahora es createHeadlessEditorSession. También se cambió el nombre de sus wrappers de Guava. (I1526b)
  • Ahora EditorSession es una interfaz y ListenableEditorSession.commitChangesOnClose se delega correctamente. (I7dc3e)
  • Ahora se rechaza a cualquier estilo de esquema de usuario que tenga una configuración u opciones con ID conflictivos. (Ic2715)
  • Se agregó un UserStyle.get sobrecargado que acepta UserStyleSetting.Id. (I2aa0f)

Versión 1.0.0-alpha18

21 de julio de 2021

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

Cambios en la API

  • Se movió ComplicationHelperActivity a la biblioteca androidx.wear:wear-watchface. (I39e76)
  • Por motivos de coherencia y claridad, se cambió el nombre de ComplicationProvider a ComplicationDataSource y, de forma similar, se cambió el nombre de todas las clases que incluían "Provider" en el nombre. (Iaef0b)
  • Se movió CanvasComplication.isHighlighted a RenderParameters.pressedComplicationSlotIds. Este es un paso para que CanvasComplication no tenga estado. Para admitir este cambio, CanvasComplication.render ahora también toma slotId como parámetro, y pasamos ComplicationSlot a GlesTextureComplication. (I50e6e)
  • Se agregó headlessDeviceConfig a EditorRequest, si no es nulo, este parámetro se usa para construir una instancia sin interfaz gráfica a fin de respaldar EditorSession en lugar de actuar en la instancia interactiva. Permite que se invoque al editor para una cara de reloj que no sea la actual. (I0a820)
  • Agregamos un objeto WatchFaceMetadataClient experimental que permite la recuperación eficiente de metadatos de caras de reloj estáticas, como UserStyleSchema y datos fijos de ComplicationSlots. (I6bfdf)
  • Cambiamos el nombre de CanvasRenderer.uiThreadInit a init. (I6fff9)
  • Se agregó PreviewScreenshotParams, un nuevo parámetro opcional para EditorRequest que indica a EditorSession que realice una captura de pantalla de vista previa cuando se confirme con este parámetro. La imagen de vista previa se expone en EditorState.previewImage. (Ic2c16)

Correcciones de errores

  • Los desarrolladores ya no necesitan agregar ComplicationHelperActivity a su propio manifiesto. (I6f0c2)

Versión 1.0.0-alpha17

30 de junio de 2021

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

Nuevas funciones

  • En GlesRenderer, se reemplazaron makeUiThreadContextCurrent y makeBackgroundThreadContextCurrent por runUiThreadGlCommands y runBackgroundThreadGlCommands, que aceptan un objeto Runnable. La biblioteca garantiza que se ejecute solo un comando de GL en cualquier momento.

  • A fin de que la inicialización de UiThread resulte más fácil, agregamos CanvasRenderer.uiThreadInit, que se llama una vez en el UiThread antes de que se realice cualquier llamada para procesar. También agregamos onRendererCreated a CanvasComplication, que permite que Renderer y CanvasComplication compartan el estado con más facilidad.

  • Para mayor claridad, cambiamos el nombre de Complication a ComplicationSlot, y el de complicationId a complicationSlotId o complicationInstanceId, según el uso.

Cambios en la API

  • Para mayor claridad, cambiamos el nombre de Complication a ComplicationSlot, y el de complicationId a complicationSlotId o complicationInstanceId, según el uso. De la misma manera, se les cambió el nombre a las clases que usan Complication. Por ejemplo, ComplicationsManager ahora se llama ComplicationSlotsManager. (I4da44)
  • En GlesRenderer, se reemplazaron makeUiThreadContextCurrent y makeBackgroundThreadContextCurrent por runUiThreadGlCommands y runBackgroundThreadGlCommands, que aceptan un Runnable. Solo se necesitarán estas funciones cuando requieras realizar llamadas de GL fuera del procesamiento, runBackgroundThreadGlCommands y onUiThreadGlSurfaceCreated. Esto es necesario porque puede haber varios GlesRenderers, cada uno con sus propios contextos en el mismo proceso, posiblemente desde diferentes caras de reloj. Además, ahora se sincroniza el acceso al contexto actual de GL compartido. (I04d59)
  • Agregamos CanvasRenderer.uiThreadInit, que se llama una vez en el UiThread antes de que se realice cualquier llamada para procesar. También para mayor claridad en GlesRenderer, cambiamos el nombre de onGlContextCreated por onBackgroundThreadGlContextCreated, y el de onGlSurfaceCreated por onUiThreadGlSurfaceCreated. (If86d0)
  • Se cambió el nombre de HeadlessWatchFaceClient y InteractiveWatchFaceClient getComplicationsSlotState por getComplicationSlotsState. En ComplicationSlot, se cambió el nombre de createRoundRectComplicationBuilder, createBackgroundComplicationBuilder y createEdgeComplicationBuilder por createRoundRectComplicationSlotBuilder, createBackgroundComplicationSlotBuilder y createEdgeComplicationSlotBuilder, respectivamente. (Ib9adc)
  • Agregamos onRendererCreated a CanvasComplication, que permite que Renderer y CanvasComplication compartan el estado con mayor facilidad. (I5e1ac)

Versión 1.0.0-alpha16

16 de junio de 2021

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

Nuevas funciones

  • Corregimos varios errores relacionados con los cambios recientes del modelo de subprocesos, así como otros problemas con el editor de caras de reloj.

Correcciones de errores

  • Se evita la NPE en onComplicationProviderChooserResult. (b/189594557)
  • Se solucionaron problemas con plataformas inactivas y drawBlack. (b/189452267)
  • Se corrigió la carrera para acceder a complicationsManager.watchState. (b/189457893)
  • Se corrigió un error con el ciclo de vida de subprocesos en segundo plano. (b/189445428)
  • Se solucionaron problemas con el editor de caras de reloj anterior a R. (b/189126313)
  • No se actualizaron los parámetros de reinicio directo para los cambios de estilo del editor. (b/187177307)

Versión 1.0.0-alpha15

2 de junio de 2021

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

Nuevas funciones

Ahora, la mayor parte de la inicialización de la cara del reloj se lleva a cabo en un subproceso, en segundo plano. Sin embargo, después de cargar, todo el procesamiento de las caras de reloj se realiza en la anotación UiThread. Existe una barrera de memoria entre la carga y el procesamiento, de modo que la mayoría de las caras de reloj del usuario no requieren una acción especial. Las caras de reloj con GLES pueden ser una excepción, ya que el contexto es específico del subproceso y creamos dos contextos vinculados. Por lo tanto, es posible subir recursos GL (p. ej. texturas y sombreadores) al subproceso en segundo plano y usarlos en la anotación UiThread.

Dividimos la construcción de las caras del reloj en tres funciones: createUserStyleSchema, createComplicationsManager y createWatchFace. Suponemos que createUserStyleSchema y createComplicationsManager son rápidos, y createWatchFace puede tardar un poco en cargar los elementos. A fin de aprovechar esta característica, introdujimos WatchFaceControlClient.getDefaultProviderPoliciesAndType, que muestra un mapa de ID de complicación para DefaultComplicationProviderPolicies y el elemento predeterminado ComplicationType. El proceso es más rápido que crear una instancia sin interfaz gráfica, ya que no necesita inicializar, por completo, la cara del reloj para realizar la consulta.

Por último, ahora, las complicaciones se construyen con CanvasComplicationFactory que permite la construcción diferida de los procesadores de CanvasComplication.

Cambios en la API

  • Se reemplazó @TargetApi con @RequiresApi. (I0184a, b/187447093, b/187447094)
  • Introdujimos WatchFaceControlClient.getDefaultProviderPoliciesAndType que muestra un mapa de ID de complicación para DefaultComplicationProviderPolicies y el elemento predeterminado ComplicationType. Cuando sea posible, se usa una ruta rápida que evite la construcción completa de una cara del reloj. Para facilitar este proceso, se tuvo que cambiar la API de WatchFaceService con dos métodos nuevos: createUserStyleSchema y createComplicationsManager, cuyos resultados se pasan a createWatchFace. Además, las complicaciones ahora se construyen con CanvasComplicationFactory que permite la construcción diferida de los procesadores de CanvasComplication. (Iad6c1)
  • Se quitó MOST_RECENT_APP de SystemProviders. (I3df00)
  • Ahora, ObservableWatchData es una clase sellada. (Ic940d)
  • Ahora, se llama a CanvasComplicationFactory.create (que suele vincularse a E/S) en un subproceso, en segundo plano para cada complicación antes de que comience el procesamiento del subproceso de IU. Existe una barrera de memoria entre la construcción y el procesamiento, de modo que no se requieren primitivas especiales de subprocesos. (Ia18f2)
  • Ahora, la construcción de las caras del reloj se lleva a cabo en un subproceso, en segundo plano, aunque todo el procesamiento se realiza en el subproceso de IU, por lo que GlesRenderer admite dos contextos vinculados. Es posible que WatchFaceControlClient.createHeadlessWatchFaceClient y WatchFaceControlClient.getOrCreateInteractiveWatchFaceClient se resuelvan antes de que se complete WatchFaceService.createWatchFace. Las llamadas posteriores a la API se bloquearán hasta que se complete la inicialización de la cara del reloj. (Id9f41)
  • EXPANSION_DP y STROKE_WIDTH_DP ya no son visibles en api.txt. (I54801)
  • Configuramos EditorSession.createOnWatchEditingSession para que arroje TimeoutCancellationException si se produce un error en lugar de enviar una sesión nula. Además, ahora, el valor que se muestra de EditorRequest.createFromIntent y EditorSession.createOnWatchEditingSession es NonNull. (I41eb4)

Versión 1.0.0-alpha14

18 de mayo de 2021

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

Nuevas funciones

  • Ahora, EditorSession.openComplicationProviderChooser muestra ChosenComplicationProvider, que contiene el ID de complicación, ComplicationProviderInfo y un paquete que incluye cualquier extra adicional que muestre el selector de proveedor.
  • Además, hemos migrado código a Kotlin de manera constante, por lo que la mayoría de la API de Watchface ahora se define en Kotlin.

Cambios en la API

  • Las propiedades eglContext y eglDisplay de GlesRenderer ahora son no nulas. Ahora, cualquier error de GL se informa mediante GlesRenderer.GlesException, en lugar de RuntimeExceptions. (Ib1005)
  • Migramos androidx.wear.watchface.complications.rendering.ComplicationDrawable de Java a Kotlin. (Ibc3eb)
  • Migramos androidx.wear.watchface.complications.rendering.ComplicationStyle de Java a Kotlin. (I3375e)
  • Agregamos información sobre el proveedor de complicaciones para cada complicación en EditorSession. (I37f14)
  • Extendimos el resultado de EditorSession.openComplicationProviderChooser para incluir la información que muestra la selección. (Iead6d)

Wear Complications y Watchface versión 1.0.0-alpha13

5 de mayo de 2021

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

Nuevas funciones

  • Las caras de reloj pueden tener elementos visuales importantes, además de mostrar el tiempo y las complicaciones. A fin de brindar compatibilidad con el lector de pantalla, la cara de reloj ahora especifica las ContentDescriptionLabels de accesibilidad a través de la propiedad additionalContentDescriptionLabels de Renderer. Además, se agregó accessibilityTraversalIndex a las complicaciones para controlar el orden de ContentDescriptionLabels. Esto puede modificarse mediante ComplicationsUserStyleSetting.

  • A fin de alentar a los desarrolladores a que analicen con detenimiento los lectores de pantalla, hemos establecido como obligatorio el campo contentDescription de ShortTextComplicationData.Builder, LongTextComplicationData.Builder y RangedValueComplicationData.Builder que se pasará a sus constructores. Si se pasa ComplicationText.EMPTY a la contentDescription, se generará automáticamente una contentDescription a partir del texto y del título.

  • Ahora WatchFaceControlClient.getOrCreateInteractiveWatchFaceClient arroja ServiceStartFailureException si la cara de reloj genera una excepción durante la inicialización. Esto facilita el diagnóstico de los problemas durante el inicio de la cara de reloj.

Cambios en la API

  • Agregamos compatibilidad con un nombre de componente nulo en ComplicationProviderInfo, necesario para admitir versiones anteriores de Wear OS. (I744d2)
  • Migramos androidx.wear.complications.SystemProviders de Java a Kotlin. (Ia1f8b)
  • Ocultamos todas las clases de la API pública que se encuentran en android.support.wearable.complications y creamos las wrappers correspondientes en AndroidX en los casos necesarios. (I7bd50)
  • Cambiamos el nombre del método en TimeDifferenceComplicationText.Builder de setMinimumUnit a setMinimalTimeUnit. (I20c64)
  • Hicimos obligatorio el campo contentDescription de ShortTextComplicationData.Builder, LongTextComplicationData.Builder y RangedValueComplicationData.Builder que se pasará al constructor. (I8cb69)
  • Cambiamos el nombre de ComplicationProviderService.onComplicationUpdate a onComplicationRequest y encapsulamos el ID y el parámetro de tipo de este método en el ComplicationRequest de datos. Se cambió el nombre del objeto de escucha correspondiente por ComplicationRequestListener y su método ComplicationRequestListener.onComplicationData. (Iaf146)
  • Quitamos el método isActiveAt de ComplicationData y, en su lugar, expusimos el campo validTimeRange. Esta llamada de método puede reemplazarse por validTimeRange.contains. (I65936)
  • Cambiamos la descripción del método ComplicationProviderService.onComplicationActivated de modo que reciba un ComplicationType en lugar de un entero (Idb5ff).
  • Migramos ProviderUpdateRequester de Java a Koltin. (Ibce13)
  • GlesRender.makeContextCurrent ahora es público. Es posible que el código de la cara de reloj requiera realizar llamadas de GL fuera del procesamiento y de onGlContextCreated, y debido a que podría haber un contexto interactivo y sin interfaz gráfica, resulta necesario realizar esta llamada. (I8a43c)
  • WatchFaceControlClient.getOrCreateInteractiveWatchFaceClient ahora genera una ServiceStartFailureException si la cara de reloj arroja una excepción durante la inicialización. Además, WatchFaceService ahora arroja una excepción si createWatchFace tarda más de 6 segundos. (I59b2f)
  • Quitamos la propiedad de ID no usada de GlesTextureComplication. (I28958)
  • La cara de reloj ahora puede especificar ContentDescriptionLabels de accesibilidad mediante la propiedad additionalContentDescriptionLabels de Renderer. Además de controlar el orden de ContentDescriptionLabels, se agregó accessibilityTraversalIndex a las complicaciones. Esto puede modificarse mediante ComplicationsUserStyleSetting. (Ib7362)
  • Se expandió la documentación sobre el manejo de eventos táctiles en la cara de reloj. (Iaf31e)

Correcciones de errores

  • EditorSession.getComplicationsPreviewData() ahora muestra un mapa para todas las complicaciones no vacías. Se usa una instancia de EmptyComplicationData para las complicaciones vacías. (I1ef7e)

Wear Complications & Watchface versión 1.0.0-alpha12

21 de abril de 2021

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

Nuevas funciones

Los editores de caras de reloj deben destacar partes de la cara para ayudar a indicar qué aspecto de un reloj se configura. Hemos extendido RenderParameters para permitir que se destaquen los estilos y las complicaciones. Existe un nuevo elemento HighlightLayer opcional que se diseñó para colocarse sobre la cara del reloj con transparencia alfa (las API de captura de pantalla pueden hacer esto por ti o proporcionar HighlightLayer por sí solas a fin de ofrecer máxima flexibilidad). Por ejemplo, si tienes un estilo que te permite configurar la apariencia de las manecillas del reloj, tu procesador en renderHighlightLayer puede dibujar un contorno alrededor de ellas.

A fin de promover la compatibilidad del proveedor de complicaciones para brindar accesibilidad, convertimos el campo contentDescription de PhotoImageComplicationData.Builder, de MonochromaticImageComplicationData.Builder y de SmallImageComplicationData.Builder en un argumento de constructor obligatorio. Se agregaron ComplicationTapFilter y Complication.createEdgeComplicationBuilder para admitir complicaciones perimetrales (que se dibujan alrededor del borde de la pantalla). Renderizar las complicaciones perimetrales y realizar pruebas de posicionamiento de estas complicaciones depende de la cara del reloj. La prueba de posicionamiento perimetral no es compatible con el editor complementario.

Cambios en la API

  • Se agregó el prefijo PROVIDER_ a las constantes en SystemProviders. (I1e773)
  • Convertimos el campo contentDescription de PhotoImageComplicationData.Builder, de MonochromaticImageComplicationData.Builder y de SmallImageComplicationData.Builder en obligatorio para que se pase en el constructor. (I9643a)
  • El nombre de ProviderInfoRetriever.requestPreviewComplicationData cambió por retrievePreviewComplicationData. (I911ee)
  • Se migró ComplicationProviderService de Java a Kotlin. (I849f2)
  • Ahora, el método ComplicationProviderService.onBind es definitivo. (I39af5)
  • Restablecimos la interfaz CanvasComplication y trasladamos CanvasComplicaitonDrawable, GlesTextureComplication y ComplicationHighlightRenderer a wear-watchface-complications-rendering. (I84670)
  • Se reestructuró RenderParameters para admitir la renderización extendida de contenido destacado. Ahora, es posible solicitar la renderización de contenido destacado para estilos y todas las complicaciones o una sola. Además, ahora, CanvasRenderer y GlesRenderer tienen un nuevo método renderHighlightLayer abstracto a fin de renderizar cualquier solicitud para destacar contenido que realice el editor. El nombre Layer se cambió por WatchFaceLayer. (Ic2444)
  • Se agregaron ComplicationTapFilter y Complication.createEdgeComplicationBuilder para admitir complicaciones perimetrales. Renderizar las complicaciones perimetrales y realizar pruebas de posicionamiento de estas complicaciones depende de la cara del reloj. Las pruebas de posicionamiento no se admiten en los editores. (Ia6604)
  • Para DoubleRangeUserStyleSetting y LongRangeUserStyleSetting: ahora, defaultValue, maximumValue y minimumValue son propiedades de Kotlin. Además, se quitaron las funciones UserStyleSetting.Option, como toBooleanOption, toCoplicationOptions, toListOption y similares. (I52899)
  • Se agregó tamaño del mentón a las propiedades del dispositivo disponibles para la cara del reloj. (I76e1e)
  • Ahora, el constructor de ComplicationHighlightRenderer acepta los parámetros outlineExpansion y outlineStrokeWidth. (I87009)
  • Ahora, ComplicationDrawable.getNoDataText forma parte de la API pública. (I00598)

Versión 1.0.0-alpha11

7 de abril de 2021

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

Nuevas funciones

  • Se mejoraron las API de caras de reloj. La mayoría de los cambios incluyen cambios de nombre simples, pero se combinaron InteractiveWatchFaceWcsClient y InteractiveWatchFaceSysUiClient en InteractiveWatchFaceClient.

Cambios en la API

  • Ahora ContentDescriptionLabel.text es un ComplicationText en lugar de la antigua biblioteca de compatibilidad para wearables TimeDependeText. (I80c03)
  • No se garantiza que SystemProviders.GOOGLE_PAY esté presente en todos los dispositivos Android R, por lo que se quitó de la lista. Aún se puede utilizar este proveedor mediante DefaultComplicationProviderPolicy. (If01b5)
  • Se cambió el nombre de ComplicationUpdateCallback a ComplicationUpdateListener para mayor coherencia. (I61ec7)
  • Se cambió el mapa de formato de cable UserStyle por Map<String, byte[]>. Por conveniencia, se agregó una clase UserStyleData a la API pública y, ahora, se usa en wear-watchface-client y wear-watchface-editor. Además, CustomValueUserStyleSetting.CustomValueOption.value ahora es byte[] en lugar de String. (Iaa103)
  • UserStyleSetting y UserStyleSetting.Option ahora usan UserStyleSetting.Id y UserStyleSetting.Option.Id respectivamente para almacenar sus ID en lugar de una string. (I63f72)
  • El nombre de InteractiveWatchFaceClient.SystemState cambió por WatchUiState. (I6a4e0)
  • Se combinaron InteractiveWatchFaceWcsClient y InteractiveWatchFaceSysUiClient porque era difícil explicar la división de responsabilidad. (Iff3fa)
  • Se cambió el nombre de los valores de enumeración de capa para mayor claridad. Layer#TOP_LAYER ahora es Layer#COMPLICATIONS_OVERLAY y Layer#BASE_LAYER ahora es Layer#BASE. (Ia144e)
  • Se modificó el nombre de UserStyleListener por UserStyleChangeListener. (I18524)
  • Se modificó el nombre de UserStyleRepository por CurrentUserStyleRepository. (I6ea53)
  • El nombre de InteractiveWatchFaceWcsClient.updateInstance cambió por updateWatchfaceInstance. (I321dc)
  • Se cambió el nombre de los eventos WatchFace TapType para alinearse con MotionEvents / Compose. (I0dfd0).
  • Se cambió el nombre de takeWatchScreenScreenshot a renderWatchFaceToBitmap, y el de takeComplicationScreenshot a renderComplicationToBitmap. (Ie0697 )
  • Se quitó la interfaz CanvasComplication para dar lugar a la clase abierta CanvasComplicationDrawable. (I1f81f)
  • Se quitó WatcfaceControlServiceFactory de la API pública. (I1f8d3)
  • Se cambió el nombre de CanvasComplication.setData a CanvasComplication.loadData. (If1239)
  • El nombre de ComplicationsManager.bringAttentionToComplication cambió por displayPressedAnimation. (Ic4297)
  • Ahora, WatchFaceService.createWatchFace tiene una anotación @UiThread. (Ib54c2)
  • Se cambió el nombre de un parámetro CanvasComplicationDrawable para corregir un error. (I50dac)
  • Agregamos HeadlessWatchFaceClient.toBundle() y HeadlessWatchFaceClient.createFromBundle para admitir el envío de HeadlessWatchFaceClient a través de AIDL. (I07c35)
  • HeadlessWatchFaceClient y InteractiveWatchFaceClient ahora tienen ClientDisconnectListener y isConnectionAlive() para permitirte observar si la conexión está interrumpida por algún motivo (por ejemplo, la cara de reloj que se cierra). (Ie446d)
  • WatchFaceControlClient#getOrCreateWallpaperServiceBackedInteractiveWatchFaceWcsClientAsync ahora es una función de suspensión y su nombre se cambió por getOrCreateInteractiveWatchFaceClient. (Ib745d)
  • Se cambió el nombre de EditorState.commitChanges y hasCommitChanges() por shouldCommitChanges(). (I06e04)
  • Se cambió el nombre de previewComplicationData por previewComplicationsData para indicar que, por lo general, hay más de una complicación en el mapa. (I56c06)
  • Se cambió el nombre de InteractiveWatchFaceWcsClient.bringAttentionToComplication por displayPressedAnimation para mantener la coherencia con ComplicationsManager.displayPressedAnimation. (Ic9999)
  • Todos los ID de instancia de cara de reloj se encapsulan en una nueva clase WatchFaceId. (I45fdf)
  • Se cambió el nombre de la propiedad complicationState por complicationsState para indicar pluralidad. (Ided07)
  • Se quitaron las diversas conversiones de wear-watchface-client Binder, ya que no eran necesarias. (Icc4c0)
  • Por motivos de coherencia, se refactorizó EditorServiceClient para usar objetos de escucha en lugar de observadores. (Iec3a4)
  • Agregamos algunas anotaciones de @Px faltantes a InteractiveWatchFaceSysUiClient y WatchFaceControlClient. (I3277a)
  • Se cambió el nombre de EditorObserverCallback a EditorObserverListener para mayor coherencia. (Ie572d)
  • EditorState.watchFaceInstanceId se restringe al nivel de API de Android R y versiones posteriores, y ya no es anulable. (Id52bb)
  • El nombre de EditorSession.launchComplicationProviderChooser cambió por openComplicationProviderChooser. (I9d441)
  • Se cambió el nombre de EditorSession.createOnWatchEditingSessionAsync por createOnWatchEditingSession y, ahora, es una función de suspensión. (Id257b)
  • Se agregaron varias anotaciones @UiThread faltantes en EditorSession. (I6935c)
  • El nombre de UserStyleSetting.affectsLayers cambió por affectedLayers. (I6e22b)

Versión 1.0.0-alpha10

24 de marzo de 2021

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

Nuevas funciones

  • Ahora, es posible crear objetos de gl abiertos, por ejemplo texturas, durante WatchFaceService.createWatchFace porque GlesRenderer requiere una llamada explícita a initOpenGLContext, que se puede realizar dentro de createWatchFace.

Cambios en la API

  • IdAndComplicationData era un poco incómodo y se quitó de la API pública. Se refactorizaron las clases y las interfaces que la usaron. (I4c928)
  • Se reemplazó ReferenceTime por CountUpTimeReference y CountDownTimeReference, que son más evidentes. (Ib66c6)
  • Se agregaron algunas anotaciones @Px y @ColorInt faltantes. (I9bbc3)
  • Ahora, Complication.complicationConfigExtras no puede anularse y su valor predeterminado es Bundle.EMPTY. (Iad04f)
  • Ahora, GlesRenderer requiere que llames a initOpenGLContext después de la construcción. Esta función era un detalle interno, pero ahora se encuentra en la API pública para permitir llamadas de GL antes en createWatchFace. (I726c2)
  • Se quitó Complication.setRenderer, ya que no es necesario. (Ie992f)
  • Complicaiton.setComplicationBounds ya no forma parte de la API pública. Si necesitas ajustar la posición de una complicación, puedes hacerlo mediante ComplicationsUserStyleSetting. (Ibd9e5)
  • El nombre de ComplicationsManager.TapCallback.onComplicationSingleTapped cambió por onComplicationTapped. (I3a55c)
  • El nombre de ComplicationOutlineRenderer.drawComplicationSelectOutline cambió por drawComplicationOutline. (I14b88)

Versión 1.0.0-alpha09

10 de marzo de 2021

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

Nuevas funciones

  • Evolucionó la interfaz entre el host WCS/SysUI y la cara de reloj. Ahora un editor puede determinar si un cambio de estilo habilitará o inhabilitará una complicación (habilitada = initiallyEnabled, además de cualquier anulación desde ComplicationsUserStyleSetting). EditorService.closeEditor también permite que SysUI cierre de forma remota un editor de caras de reloj, si es necesario.
  • Además de InteractiveWatchFaceWcsClient.setUserStyle con un comando más eficaz updateInstance: cambia el ID de la instancia, establece el estilo y elimina las complicaciones, todo en una sola operación.

Cambios en la API

  • Se agregaron TraceEvents a las bibliotecas de caras de reloj. (I1a141)
  • Ahora ComplicationState tiene una nueva propiedad, initiallyEnabled, que sirve para predecir las consecuencias del cambio de estilos. (I8c905)
  • Reemplazamos InteractiveWatchFaceWcsClient.setUserStyle por un comando más eficaz, updateInstance, que cambia el ID de la instancia, establece el estilo y elimina las complicaciones. (Ife6f6)
  • Las API de captura de pantalla de WatchFaceClient ya no comprimen las capturas de pantalla debido a que era un proceso lento. En su lugar, dejamos cualquier procesamiento posterior al emisor. (Id35af)
  • Ahora es posible cerrar de forma remota un editor de caras de reloj a través de EditorService.closeEditor. (Ic5aa4)
  • Se agregaron anotaciones de nulabilidad. (Ic16ed).

Versión 1.0.0-alpha08

24 de febrero de 2021

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

Nuevas funciones

  • Algunas caras de reloj están diseñadas en función de una o más complicaciones específicas. En respuesta, agregamos Complication.Builder#setFixedComplicationProvider, que, si tiene un valor True, evita que el usuario cambie la complicación en esa ranura.
  • Las bibliotecas de caras de reloj priorizan Kotlin y usan corrutinas (p. ej., funciones de suspensión). Para los usuarios de Java, brindamos wrappers ListenableFuture, a fin de mejorar la interoperabilidad en las siguientes bibliotecas: wear/wear-watchface-guava, wear/wear-watchface-client-guava y wear/wear-watchface-editor-guava.

Cambios en la API

  • Quitamos la compatibilidad con la función Presionar dos veces en las complicaciones que lanzan ProviderChooser. Esta función no era habitual en las caras de reloj y complicaba la implementación de SysUI. (I3ef24)
  • Los métodos ProviderInfoRetriever pueden arrojar ServiceDisconnectedException si el Binder se cierra inesperadamente. (Ib2cc4)
  • A partir de Android 11, existen restricciones sobre cuándo se puede ejecutar ProviderChooser. Además, queremos que los editores se compilen con el nuevo elemento wear-watchface-editor, para que se elimine ComplicationHelperActivity de la API pública. (Ib19c1)
  • Se quitaron los métodos estáticos ComplicationText y fueron reemplazados por los compiladores. (Ibe399)
  • Incorporamos wrappers ListenableFuture de Guava para los distintos métodos suspendidos de la biblioteca de caras de reloj. (I16b2c)
  • Para mayor claridad de la API, agregamos un constructor secundario a RenderParameters que no requiere tono, a fin de usar con LayerModes en lugar de LayerMode.DRAW_OUTLINED. (I497ea)
  • Anteriormente, ListUserStyleSetting era diferente al otro, ya que contaba con un argumento predeterminado. Ahora, todos los constructores de subclase StyleSetting toman el último valor predeterminado. (I9dbfd)
  • Se reestructuró CanvasComplication para usar un método oculto, lo que facilita la implementación de una subclase. (I5b321)
  • Reestructuramos EditorResult y se reemplazó por nuevos elementos EditorService y EditorSession.broadcastState() para transmitir actualizaciones a un observador (en general, SysUI). (Ic4370)
  • Algunas caras de reloj se compilan en base a una complicación específica como parte integral de la cara de reloj en la que el proveedor no pueda ser configurado por el usuario. En respuesta, agregamos Complication.Builder#setFixedComplicationProvider. (I4509e)
  • Ahora, EditorRequest especifica el nombre del paquete en lugar de ComponentName, ya que no era conveniente que SysUI buscara el nombre de la clase del editor, y, en realidad, solo necesitamos el nombre del paquete. (Ib6814)

Versión 1.0.0-alpha07

10 de febrero de 2021

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

Nuevas funciones

  • WatchFaceService.createWatchFace ahora es una función de suspensión, lo que significa que la cara de reloj ya no debe bloquear el subproceso de IU mientras espera la IO. Lo mismo sucede con wear-watchface-editor y wear-complications-data.

Cambios en la API

  • Quita la clase de PhotoImage y usa Icon directamente. (I8a70b)
  • Se expuso el validTimeRange de ComplicationData. (I91366)
  • Los atributos image-like se volvieron más explícitos. (I81700)
  • Se refactorizaron wear-watchface-editor y complications-data para que usen funciones de suspensión en lugar de corrutinas. Los wrappers RxJava y Future compat serán los próximos. (If3c5f)
  • ProviderInfoFetcher ahora muestra PreviewNotAvailableException si requestPreviewComplicationData no puede mostrar datos de vista previa debido a problemas de conexión o a falta de compatibilidad con la API. (I4964d)
  • WatchFaceControlService::createWatchFaceControlClient es ahora una función de suspensión y and getOrCreateWallpaperServiceBackedInteractiveWatchFaceWcsClient ahora se llama getOrCreateWallpaperServiceBackedInteractiveWatchFaceWcsClientAsync y muestra Deferred<InteractiveWatchFaceWcsClient>. Los wrappers RxJava y Future compat serán los próximos (I5d461)
  • Se cambió el nombre de CATEGORY_PROVIDER_CONFIG_ACTION a CATEGORY_PROVIDER_CONFIG. (I7c068)
  • Ten en cuenta que createOnWatchEditionSession ahora es una función suspendida, ya que, a veces, la cara de reloj no está disponible hasta poco después de que haya comenzado la actividad del editor. (Ida9aa)
  • WatchFaceService.createWatchFace ahora es una función de suspensión que permite la inicialización asíncrona; antes debías bloquear el subproceso principal. (If076a)
  • Ahora UserStyle tiene un operador de arreglos, y agregamos asistentes de transmisión a UserStyle.Option. (I35036)
  • Se corrigió un error de ordenamiento con formatos de cable de UserStyle por el que se modificaban algunas de las API ocultas inestables. (I8be09)
  • Agregamos CustomValueUserStyleSetting, que te permite almacenar una sola string específica de la aplicación en un UserStyle. Los editores de caras de reloj predeterminados ignorarán este valor. (Ic04d2)
  • No se pasa InstanceID en los extras de intent de R ni versiones anteriores de Android Wear OS, que no podemos actualizar. Para admitir esta función, ahora permitimos que InstanceID sea un valor nulo. (Id8b78)
  • EditorRequest ahora incluye el editor ComponentName, que se configura como el componente de WatchFaceEditorContract.createIntent. (I3cd06)
  • El elemento EditorResult de la cara de reloj ahora incluye un ComplicationData de vista previa para permitir que el llamador tome una captura de pantalla de la cara de reloj después de la edición. (I2c561)

Correcciones de errores

  • Se agregaron anulaciones de toString() a UserStyle, UserStyleSetting y UserStyleSchema, lo que permite que trabajar con estas clases sea un poco más agradable. (I9f5ec)

Versión 1.0.0-alpha06

27 de enero de 2021

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

Nuevas funciones

  • Presentamos la nueva biblioteca wear/wear-watchface-editor, que permite desarrollar un editor de estilo y complicación a los desarrolladores de caras de reloj y, posiblemente, a los OEM. SysUI enviará un intent a la cara de reloj que usará la nueva clase EditorSession para acceder a los datos de WatchFace y registrar el resultado a través de Activity.setWatchRequestResult. Para ello, agregamos ProviderInfoRetriever.requestPreviewComplicationData, que permite a los editores de caras de reloj solicitar una vista previa de ComplicationData. La ventaja de obtener una vista previa de ComplicationData es que, a diferencia de los datos en tiempo real, no tienes que preocuparte por los diálogos de permisos cuando procesas el editor (ten en cuenta que, si un usuario selecciona un proveedor que tiene un permiso, se le solicitará que otorgue el permiso de todos modos).

Cambios en la API

  • ComplicationProviderInfo ahora tiene un campo para el ComponentName del proveedor. Se agregará la compatibilidad con este campo a Wear OS más adelante y, mientras tanto, será nula. (Id8fc4)
  • Agregamos ProviderInfoRetriever.requestPreviewComplicationData, que permite a los editores de caras de reloj solicitar una vista previa de ComplicationData. Esto resulta útil, ya que es posible que las complicaciones activas requieran permisos, y ahora podrás mostrar datos de vista previa de las complicaciones que no estén activas. (I2e1df)
  • ComplicationManager ahora es un parámetro opcional del constructor de WatchFace y, para ello, se reordenaron los argumentos. (I66c76)
  • Agregamos un paquete opcional a Complications que, si se configura, se fusiona con el intent enviado para iniciar la actividad del selector de proveedores. (Ifd4ad)
  • Agregamos wear-watchface-editor, una biblioteca nueva que brinda compatibilidad con la cara de reloj y los editores alojados en SysUi. SysUI iniciará esos editores enviando un intent. El servicio de actividad de la cara de reloj puede usar la nueva clase EditorSession a fin de acceder a los datos de WatchFace y registrar el resultado a través de Activity.setWatchRequestResult. (I2110d)
  • Ahora LayerMode.DRAW_HIGHLIGHTED se llama LayerMode.DRAW_OUTLINED, y RenderParameters.highlightComplicationId se llama RenderParameters.selectedComplicationId, que resalta la complicación especificada además de marcar su contorno. (I90a40)
  • Ahora, el futuro de WatchFaceControlClient.getOrCreateWallpaperServiceBackedInteractiveWatchFaceWcsClient puede resolverse con un ServiceStartFailureException si el servicio finaliza durante la creación de la cara de reloj. (I0f509)
  • EditorSession.complicationPreviewData ahora es un ListenableFuture, ya que la recuperación de estos datos es un proceso asíncrono. (Iead9d)

Correcciones de errores

  • Se quitarán los campos que no se usan de ComplicationOverlay, pero mantendremos los valores enabled y ComplicationBounds. (I17b71)

Versión 1.0.0-alpha05

13 de enero de 2021

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

Nuevas funciones

En general, las caras de reloj admiten varias configuraciones de complicaciones, en las que se muestran diferentes cantidades de complicaciones. Para facilitar esta configuración, ahora admitimos las complicaciones inhabilitadas inicialmente llamando a setEnabled(false) en el compilador. Estas pueden habilitarse más tarde mediante ComplicationsUserStyleSetting.

Cambios en la API

  • ComplicationHelperActivity ahora acepta Collection<ComplicationType> en lugar de un arreglo int, lo que facilita su uso. (I1f13d)
  • ProviderInfoRetriever.retrieveProviderInfo ahora muestra ListenableFuture<ProviderInfo[]> correctamente. (If2710)
  • Ahora puedes crear una complicación inhabilitada inicialmente llamando a setEnabled(falso) en el compilador. (Idaa53)
  • WatchFaceState ahora tiene una propiedad isHeadless, que solo es verdadera en instancias sin interfaz gráfica. (Ifa900)
  • ComplicationDrawable ahora admite de manera opcional la carga síncrona de elementos de diseño. Las API de captura de pantalla usan esta función. (I34d4a)

Versión 1.0.0-alpha04

16 de diciembre de 2020

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

Nuevas funciones

  • La biblioteca de caras de reloj de Wear ahora admite la configuración de límites por tipo. P. ej., puedes cambiar a un cuadro de límite amplio para ComplicationType.LONG_TEXT, pero usar un cuadro de límite más pequeño para otros tipos.

Cambios en la API

  • Las complicaciones ahora usan ComplicationBounds, que rodea un Map<ComplicationType, RectF> para admitir tamaños por tipo de complicaciones. (I1ebe7)
  • RenderParameters ahora te permite especificar el tono de destacado que se usará en capturas de pantalla. (Iff42b)
  • Excepto para los límites, ahora debes usar ComplicationsUserStyleSetting para modificar complicaciones a fin de garantizar que el SO permanezca sincronizado. (I8dc5d)
  • Renderer ahora es una clase sellada. Eso significa que CanvasRenderer y GlesRenderer ahora son clases internas de Renderer. (Iab5d4, b/173803230)
  • Se cambió el nombre de CanvasComplicationDrawable.drawHighlight a drawOutline. ObservableWatchData ahora tiene algunas anotaciones de UiThread que faltaban. Se quitó por completo ScreenState de WatchState. (If1393)
  • Ahora el nivel mínimo de API para caras de reloj de Wear es 25. Ten en cuenta que la compatibilidad con lienzos de hardware requiere el nivel de API 26 o superior. (Ic9bbd)
  • InteractiveWatchFaceWcsClient ahora tiene un elemento auxiliar getComplicationIdAt. (I05811)
  • Se redujo el nivel de API para watch-watchface-client a 25; sin embargo, las API de captura de pantalla requieren el nivel de API 27. (Id31c2)

Correcciones de errores

  • Ahora exponemos el ComplicationType de ComplicationData de la complicación en ComplicationState. (I9b390)
  • InteractiveWatchFaceWcs ahora tiene un método `bringHanceToComplication para destacar brevemente la complicación especificada. (I6d31c)
  • InteractiveWatchFaceWcsClient#setUserStyle ahora tiene una sobrecarga que acepta Map<string, string="">, lo que podría evitar un procesamiento de ida y vuelta de IPC adicional necesario para construir UserStyle. (I24eec)</string,>

Versión 1.0.0-alpha03

2 de diciembre de 2020

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

Nuevas funciones

Ahora la clase Complication tiene una propiedad complicationData que permite que las caras de reloj observen los cambios en ComplicationData. Esto permite cambiar las dimensiones de la complicación según su tipo.

Las velocidades de fotogramas variables ahora son compatibles mediante la asignación a Renderer.interactiveDrawModeUpdateDelayMillis. En el caso de las caras de reloj que ejecutan animaciones cortas cada segundo, esto puede generar un buen ahorro de energía si se suspende cuando no se reproduce ninguna.

Cambios en la API

  • Se cambió el nombre de BACKGROUND_IMAGE a PHOTO_IMAGE junto con las clases relacionadas. El cambio se debe a que este tipo de complicación no se usa exclusivamente para fondos. (I995c6)
  • Se anotó correctamente DefaultComplicationProviderPolicy con IntDefs. (I3b431)
  • La clase oculta TimeDependentText ya no se expone a través de ContentDescriptionLabel. En su lugar, agregamos un descriptor de acceso para obtener el texto en un momento específico. (Ica692)
  • Ahora, el constructor de ObservableWatchData es interno. (I30121, b/173802666)
  • Ahora, Complication tiene complicationData, lo que permite que las caras de reloj observen los cambios en ComplicationData. Complication también tiene una nueva llamada isActiveAt, que puede usarse para saber si algo se debe procesar en una fecha y hora proporcionadas. (Ic0e2a)
  • El SharedMemoryImage vacío ya no se encuentra en la API pública. (I7ee17)
  • Ahora, WatchFace.overridePreviewReferenceTimeMillis tiene una anotación IntRange, y el captador y los métodos get y set tienen nombres coherentes. (Ia5f78)
  • Ahora, Complication.Builder se crea a través de Complication.createRoundRectComplicationBuilder o Complication.createBackgroundComplicationBuilder para brindar mayor claridad. (I54063)
  • Se agregó WatchFace.TapListener, que permite que WatchFace observe las presiones que no consumieron las complicaciones. (Ic2fe1, b/172721168)
  • WatchFace ahora admite velocidades de fotogramas variables mediante la asignación a Renderer.interactiveDrawModeUpdateDelayMillis. Esto puede ayudar a conservar la duración de batería entrando en suspensión cuando no se anima. (I707c9)
  • Ya no se necesita WatchFace.Builder, y se trasladaron invalidate() e InteractiveUpdateRateMillis a Renderer. (I329ea)
  • Para mejorar la interoperabilidad de Java, se cambió el nombre de los métodos get de propiedades booleanas de WatchState. (I6d2f1)
  • Se cambió el nombre de TapListener a TapCallback, y el de InvalidateCallback a InvalidateListener para mayor coherencia. (I9414e)
  • Las opciones de estilo de cara de reloj de Wear 2.0 se movieron a su propia clase para mayor claridad. Los métodos set de WatchFace.Builder ahora tienen métodos get de clase WatchFace simétricos. (Iefdfc)
  • Se agregaron InteractiveWatchFaceWcsClient y WatchFaceControlClient.getOrCreateWallpaperServiceBackedInteractiveWatchFaceWcsClient, que obtienen una instancia existente o la crean una vez que el servicio de fondo de pantalla se conecte y encienda el motor. (Id666e)
  • WatchFaceControlClient ahora es una interfaz que las pruebas pueden probar. (I875d9)
  • HeadlessWatchFaceClient, InteractiveWatchFaceSysUiClientImpl y InteractiveWatchFaceWcsClient ahora son interfaces a fin de facilitar las pruebas. (I7cdc3)
  • Se agregaron anotaciones a los métodos en wear-watchface-complications-rendering. (I0d65c)

Correcciones de errores

  • Se quitó la forma de pantalla de DeviceConfig, que estaba duplicando android.content.res.Configuration#isScreenRound(). (Ifadf4)
  • Se cambió WatchFaceControlClient.getOrCreateWallpaperServiceBackedInteractiveWatchFaceWcsClient para aceptar una Map<String, String> en lugar de UserStyle, ya que es difícil crear un UserStyle sin conocer el esquema que solo puedes obtener después de crear el cliente. (Iea02a)
  • Se corrigió InteractiveWatchFaceWcsClient para usar ComplicationState en lugar del formato de cable. (Icb8a4)
  • Ahora UserStyleSettings es una clase sellada, ya que los editores de caras de reloj solo entienden las clases integradas. (I2d797)

Versión 1.0.0-alpha02

11 de noviembre de 2020

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

Cambios en la API

  • ComplicationDetails ahora se llama ComplicationState y está correctamente encapsulado, y se migró el uso de compatibilidad con wearables @ComplicationData.ComplicationType a ComplicationType de androidx. (I4dd36)
  • Se agregó un parámetro highlightedComplicationId opcional a RenderParameters que permite solicitar el resaltado de una sola complicación en capturas de pantalla. (I66ce9)
  • Ahora ComplicationProviderService usará la nueva API de estilo de complicación para mantener la coherencia. (Id5aea)
  • Ahora getPreviewReferenceTimeMillis obtiene los tiempos de referencia de DeviceConfig. (I779fe)
  • A los efectos de simplificar la plataforma de la API de Renderer, ahora se puede usar SurfaceHolder.Callback para observar cambios. (I210db)
  • CanvasComplicationRenderer no deriva de Renderer. Se cambió el nombre para proporcionar mayor claridad. (Ibe880)

Correcciones de errores

  • Primera versión de androidx.wear:wear-watchface-client (I1e35e)
  • Se cambió el nombre de GlesTextureComplication#renderer para proporcionar mayor claridad (Ib78f7)
  • Se cambió el nombre de StyleCategory a StyleSetting para proporcionar mayor claridad (I488c7)
  • Se agregó UserStyleSchema para lograr una API más limpia (If36f8)

Versión 1.0.0-alpha01

28 de octubre de 2020

Lanzamiento de androidx.wear:wear-complications-*:1.0.0-alpha01 y androidx.wear:wear-watchface-*:1.0.0-alpha01. La versión 1.0.0-alpha01 contiene estas confirmaciones.

Cambios en la API

  • Se quitaron algunos elementos que no se pretendían dar a conocer en la API pública. (I41669)
  • Se creó la biblioteca androidx.wear:wear-complications-provider. (I77f1f)
  • ComplicationsUserStyleCategory ahora es la nueva categoría recomendada para configurar complicaciones. (I96909)
  • Se agregó la API wear-complication-data. (I7c268)
  • Las funciones con valores booleanos que se muestran deberán llevar el prefijo "is" en lugar de "get". (If36ff)
  • Los consejos de API deberán evitar el uso de Protected, por lo que se refactorizó esta clase para que tome parámetros a través del constructor. (I61644)
  • Se cambió el nombre de setBackgroundComplication para brindar mayor claridad. (I96fe3)
  • Se usaron las propiedades de Kotlin para ComplicationDrawable isHighlighted y datos. (I4dcc8)
  • En lugar de ComplicationRenderer.InvalidateCallback, se agregó Complication#invalidate(). (I4f4c6)
  • Estas API dejarán de estar disponibles en WearableSupport y se quitarán de aquí. (Ib425c)
  • Se cambiaron los nombres de algunos métodos del compilador WatchFace para enfatizar su naturaleza heredada de Wear 2.0. (Idb775)
  • Se incluye el primer candidato de API en versión beta para wear/wear-watchface. (Id3981)
  • Se incluye la primera versión rastreada de la API. (Ie9fe6)
  • Se ocultó correctamente ComplicationDrawable.BorderStyle IntDef y se movió a ComplicationStyle para lograr coherencia. (I27f7a)
  • Se agregaron las anotaciones faltantes de los métodos ComplicationStyle. (I838fd)
  • Esta biblioteca no tiene una plataforma de API pública. (I88e2b)
  • Todas las clases Style Category de Option ahora son definitivas. (Ib8323)
  • Se incluye la primera versión rastreada de la API. (I27c85)

Correcciones de errores

  • Se cambió ComplicationProviderService para tener un método getComplicationPreviewData explícito. (I4905f)
  • Se habilitó la comprobación de lint de API para MissingGetterMatchingBuilder en androidx. (I4bbea, b/138602561)
  • Se cambió el nombre de wear-complications-rendering. (Ifea02)
  • Los nombres visibles de Style Category ahora son CharSequences. (I28990)
  • Se reemplazó Override con Overlay para que coincida con las convenciones de nombres actuales de temas y estilos. (I4fde9)
  • Se cambió el nombre de UserStyle#getOptions para brindar mayor claridad. (I695b6)

Versión 1.2.0

Versión 1.2.0

15 de septiembre de 2021

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

Cambios importantes desde la versión 1.1.0

  • Se agregó el componente CurvedText para escribir texto curvo con facilidad siguiendo la curvatura del círculo más grande que se pueda grabar en la vista. Un ejemplo de uso:

    <androidx.wear.widget.CurvedText
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="example curved text"
            app:anchorAngleDegrees="180"
            app:anchorPosition="center"
            app:clockwise="false"
            style="@android:style/TextAppearance.Large"
    />
    

    Un ejemplo de texto curvo en Android Wear

  • Se agregó el contenedor de ArcLayout para distribuir sus elementos secundarios uno por uno en un arco en sentido horario o antihorario. Sus elementos secundarios pueden ser widgets estándar de Android o widgets "curvos" que implementen la interfaz ArcLayout.Widget. (I536da) Un ejemplo de uso:

    <androidx.wear.widget.ArcLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            app:anchorPosition="center">
          <ImageView
                  android:layout_width="20dp"
                  android:layout_height="20dp"
                  android:src="@drawable/ic_launcher"
          />
          <androidx.wear.widget.CurvedText
                  android:layout_width="match_parent"
                  android:layout_height="match_parent"
                  android:text="Curved Text"
                  style="@android:style/TextAppearance.Small"
                  android:padding="2dp"
           />
      </androidx.wear.widget.WearArcLayout>
    

    Ejemplo de texto arqueado en Android Wear

  • Se agregó un contenedor de diseño DismissableFrameLayout, que administra la acción de botón Atrás/descarte y/o el deslizamiento para descartar que debe usarse dentro de una actividad. Se debe agregar al menos un objeto de escucha para actuar sobre una acción de descarte. Un objeto de escucha generalmente quitará una vista o un fragmento contenedores de la actividad actual. Para que el control sobre las funciones sea directo, se proporcionaron setSwipeDismissable(booleano) y setBackButtonDismissable(booleano). Este nuevo diseño tendrá como objetivo reemplazar el SwipeDismissFrameLayout existente.

  • Se agregó compatibilidad para indicar que una Activity se puede "reanudar automáticamente" cuando el dispositivo sale del modo ambiente en la clase AmbientModeSupport. Esta función estaba disponible anteriormente en la clase WearableActivity de WearableSupportLibrary que dejó de estar disponible. (I336ab)

  • Se migró la clase WearableCalendarContract de la biblioteca de compatibilidad con dispositivos wearable. Esta API proporciona un subconjunto de los datos disponibles a través de CalendarContract, pero se sincronizan automáticamente con los dispositivos wearables. (I6f2d7)

  • Se agregó una nueva API WearTypeHelper en androidx.wear.utils para determinar si un determinado dispositivo para Wear es para China. (Ib01a9)

  • Se agregaron funciones de accesibilidad a androidx.wear.widget.ConfirmationOverlay, que leerán los mensajes si se configuran seguidos de la descripción de la animación. (I524dd)

  • Se corrigió el error que causaba que ConfirmationActivity fallara si no se proporcionaba un mensaje. (Ie6055)

  • Se corrigió el error por el que desplazar horizontalmente las RecyclerViews provocaba que se revelara WearableDrawerLayout en todas las interacciones. (I24c7f)

Versión 1.2.0-rc01

1 de septiembre de 2021

Lanzamiento de androidx.wear:wear:1.2.0-rc01 sin modificaciones desde la última versión beta. La versión 1.2.0-rc01 contiene estas confirmaciones.

Versión 1.2.0-beta01

18 de agosto de 2021

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

Correcciones de errores

  • Se corrigió el error que causaba que ConfirmationActivity fallara si no se proporcionaba un mensaje. (Ie6055)

Versión 1.2.0-alpha13

4 de agosto de 2021

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

Cambios en la API

  • Se cambió el nombre de WearTypeHelper.isChinaDevice a WearTypeHelper.isChinaBuild. (I47302)

Correcciones de errores

  • Se agregaron funciones de accesibilidad a androidx.wear.widget.ConfirmationOverlay, que leerán los mensajes si se configuran seguidos de la descripción de la animación. (I524dd)

Versión 1.2.0-alpha12

21 de julio de 2021

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

Cambios en la API

  • Se agregó una API WearTypeHelper nueva en androidx.wear.utils para determinar si el dispositivo para Wear en cuestión está dirigido a China. (Ib01a9)

Versión 1.2.0-alpha11

30 de junio de 2021

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

Correcciones de errores

  • Se corrigió el error por el que desplazar horizontalmente las RecyclerViews provocaba que se revelara WearableDrawerLayout en todas las interacciones. (I24c7f)

Versión 1.2.0-alpha10

2 de junio de 2021

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

Nuevas funciones

  • Alpha10 mejora la compatibilidad de accesibilidad en Curved Text y ArcLayout. También se agrega un cambio menor en el nombre de DismissibleFrameLayout para ayudar a aclarar la API.

Cambios en la API

  • Cambiamos el nombre de los siguientes métodos en DismissibleFrameLayout (Ib195e):
    • Callback#onDismissed -> Callback#onDismissedFinished
    • isSwipeDismissible -> isDismissableBySwipe
    • isBackButtonDismissible -> isDismissableByBackButton
  • Los siguientes métodos serán definitivos (Ib195e):
    • setBackButtonDismissible
    • setSwipeDismissible
    • registerCallback
    • unregisterCallback

Correcciones de errores

  • Usa el contenido de CurvedTextView en Talkback. (I05798)
  • Mejor accesibilidad para vistas normales en ArcLayout. (I4418d)

Versión 1.2.0-alpha09

18 de mayo de 2021

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

Cambios en la API

  • Se agregó una nueva función CurvedTextView.setTypeface() (similar a la de TextView), para establecer el tipo de texto y el estilo de negrita y cursiva. (I4653c)
  • Se cambió el nombre de WearArcLayout a ArcLayout, el de WearCurvedText a CurvedText y el de WearArcLayout.ArcLayoutWidget a ArcLayout.Widget. (I6e5ce)
    • En ArcLayout.Widget, se cambió el nombre de getThicknessPx a getThickness.
    • Las constantes de alineación vertical en ArcLayout.LayoutParams ahora tienen un nombre que comienza con VERTICAL_ALIGN_ (en lugar de VALIGN_).
  • En CurvedTextView, se reemplazaron los métodos setMinSweepDegrees y setMaxSweepDegrees por setSweepRangeDegrees. (I7a9d9)

Versión 1.2.0-alpha08

5 de mayo de 2021

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

Cambios en la API

  • A fin de mejorar la claridad del código, agregamos anotaciones @FloatRange a algunos parámetros de ángulo y tipos de datos que se muestran. (I430dd)
  • En WearArcLayout.ArcLayoutWidget de la interfaz, el insideClickArea del método ahora se llama isPointInsideClickArea. (Ia7307)

Versión 1.2.0-alpha07

24 de marzo de 2021

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

Correcciones de errores

  • Se corrigieron errores con elementos secundarios sin curvas dentro de WearArcLayout causados por el uso del tamaño de pantalla con una altura mayor que el ancho. Ahora, estos elementos se encuentran correctamente dentro de un arco en todos los tipos de pantalla.

Versión 1.2.0-alpha06

27 de enero de 2021

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

Cambios en la API

  • Se migró la biblioteca de actividades en curso a una subbiblioteca nueva: wear-ongoing. Las clases ahora están disponibles en el paquete androidx.wear.ongoing (anteriormente, androidx.wear.ongoingactivities). (I7c029)
  • Se migró la clase WearableCalendarContract de la biblioteca de compatibilidad para wearables a AndroidX. Esta API proporciona un subconjunto de los datos disponibles a través de CalendarContract, pero se sincronizan automáticamente con los dispositivos wearables. (I6f2d7)

Correcciones de errores

  • Se inhabilitó la función descartar del botón Atrás de forma predeterminada de DismissibleFrameLayout, ya que la acción deslizar para descartar sigue siendo en dispositivos wearables la principal manera de navegar hacia atrás en pantalla completa. (Ic24e3)
  • Se corrigieron algunos problemas para controlar la visibilidad de los elementos secundarios de WearArcLayout. (Icf912)

Versión 1.2.0-alpha05

13 de enero de 2021

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

Correcciones de errores

  • Se actualizó el javadoc de la clase AmbientModeSupport para brindar ejemplos de fragmentos a fin de demostrar mejor el uso general de esta clase.

Versión 1.2.0-alpha04

16 de diciembre de 2020

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

Cambios en la API

  • Se agregó compatibilidad para indicar que una Activity se puede "reanudar automáticamente" cuando el dispositivo sale del modo ambiente en la clase AmbientModeSupport. Esta función estaba disponible anteriormente en la clase WearableActivity de WearableSupportLibrary que dejó de estar disponible. (I336ab)
  • OngoingActivity
    • Ahora se puede configurar la categoría cuando se crea una actividad en curso (p. ej., OngoingActivitiy.Builder.getCategory(String)).
    • OngoingActivityData ahora tiene una marca de tiempo de cuándo se creó la OngoingActivity: OngoingActivityData.getTimestamp().
    • (I91cb4)
  • Se agregó compatibilidad para configurar márgenes en elementos secundarios de WearArcLayout cambiando los parámetros de diseño a fin de extender MarginLayoutParams; es decir, WearArcLayout.LayoutParams extiende android.view.ViewGroup.MarginLayoutParams. (I2cd88)
  • Cambió el tipo de ancla de WearCurdTextView predeterminado a WearArcLayout.ANCHOR_CENTER (era WearArcLayout.ANCHOR_START). Esto simplifica el contrato entre el diseño de arco y el texto curvo del texto curvado, ya que, de forma predeterminada, el texto curvo se dibuja en el centro del eje X, en la parte superior, y el diseño de arco superior puede rotarlo para ubicarlo donde corresponda. (I105ff)

Versión 1.2.0-alpha03

2 de diciembre de 2020

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

Nuevas funciones

Se agregó un contenedor de diseño DismissableFrameLayout, que administra la acción de botón Atrás/descarte y/o el deslizamiento para descartar que debe usarse dentro de una actividad. Se debe agregar al menos un objeto de escucha para actuar sobre una acción de descarte. Un objeto de escucha generalmente quitará una vista o un fragmento contenedores de la actividad actual. Para que el control sobre las funciones sea directo, se proporcionaron setSwipeDismissable(booleano) y setBackButtonDismissable(booleano). Este nuevo diseño tendrá como objetivo reemplazar el SwipeDismissFrameLayout existente.

Los widgets curvados ahora controlan eventos táctiles. Los widgets normales dentro de un WearArcLayout recibirán todos los eventos táctiles, mapeados en su espacio de coordenadas. WearCurvedTextView (dentro de un WearArcLayout o fuera de él) puede establecer controladores onClick y onLongClick.

Ahora las clases de actividades en curso son VersionedParcelables, en lugar de usar serialización/deserialización personalizadas. El ícono estático y el intent táctil ahora son obligatorios.

Cambios en la API

  • El atributo "sweepDegrees" de WearCurvedTextView se dividió en minSweepDegrees y maxSweepDegrees para proporcionar un diseño más flexible de este widget.

Versión 1.2.0-alpha02

11 de noviembre de 2020

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

Esta versión agrega una nueva "API de actividades en curso" por primera vez. Los desarrolladores pueden usar esta API para indicar que una actividad de larga duración, como un entrenamiento físico o una sesión de reproducción de contenido multimedia, está en curso. Permite a los desarrolladores proporcionar actualizaciones de estado periódicas, como "distancia recorrida y tiempo transcurrido" o "pista que se está reproduciendo actualmente", para verlas en la cara del reloj o en el selector de aplicaciones. Esta funcionalidad está orientada a dispositivos futuros con la funcionalidad de actividad en curso habilitada.

Cambios en la API

  • Se incluye una nueva API para actividades en curso; es un entorno no-op en "dispositivos no compatibles". (I69a31)

Versión 1.2.0-alpha01

28 de octubre de 2020

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

Nuevas funciones

  • Se agregó el componente WearCurvedTextView para escribir texto curvo con facilidad siguiendo la curvatura del círculo más grande que se pueda grabar en la vista. Un ejemplo de uso:
<androidx.wear.widget.WearCurvedTextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="example curved text"
        app:anchorAngleDegrees="180"
        app:anchorPosition="center"
        app:clockwise="false"
        style="@android:style/TextAppearance.Large"
/>

Un ejemplo de texto curvo en Android Wear

  • Se agregó el contenedor WearArcLayout para distribuir los elementos secundarios uno por uno en un arco, ya sea en sentido horario o antihorario. Sus elementos secundarios pueden ser widgets estándar de Android o widgets "curvos" que implementan su interfaz de ArcLayoutWidget. Un ejemplo de uso:
<androidx.wear.widget.WearArcLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        app:anchorPosition="center">
      <ImageView
              android:layout_width="20dp"
              android:layout_height="20dp"
              android:src="@drawable/ic_launcher"
      />
      <androidx.wear.widget.WearCurvedTextView
              android:layout_width="match_parent"
              android:layout_height="match_parent"
              android:text="Curved Text"
              style="@android:style/TextAppearance.Small"
              android:padding="2dp"
       />
  </androidx.wear.widget.WearArcLayout>

Ejemplo de texto arqueado en Android Wear

(I536da)

Wear-Input 1.2

Versión 1.2.0-alpha02

29 de septiembre de 2021

Lanzamiento de androidx.wear:wear-input:1.2.0-alpha02 y androidx.wear:wear-input-testing:1.2.0-alpha02. La versión 1.2.0-alpha02 contiene estas confirmaciones.

Cambios en la API

  • Se cambió el nombre de disallowEmoji por setEmojisAllowed en WearableRemoteInputExtender para determinar si se mostrará la opción de dibujar emojis. (I28393)

Versión 1.2.0-alpha01

15 de septiembre de 2021

Lanzamiento de androidx.wear:wear-input:1.2.0-alpha01 y androidx.wear:wear-input-testing:1.2.0-alpha01. La versión 1.2.0-alpha01 contiene estas confirmaciones.

Cambios en la API

  • Se expusieron todas las constantes de ubicación de botones de WearableButtons. (Ibb12c)
  • Se agregó la clase WearableRemoteInputExtender. que se puede usar para agregar elementos adicionales específicos de Wear a android.app.RemoteInput. (I01903)

Wear-Input 1.1.0

Versión 1.1.0

18 de agosto de 2021

Lanzamiento de androidx.wear:wear-input:1.1.0 y androidx.wear:wear-input-testing:1.1.0. La versión 1.1.0 contiene estas confirmaciones.

Cambios importantes desde la versión 1.0.0

  • Se agregó RemoteInputIntentHelper.
    • Esta clase se puede usar para compilar un intent de RemoteInput. Esto se puede usar para solicitar la entrada de tus usuarios en una actividad personalizable.

Versión 1.1.0-rc01

4 de agosto de 2021

Lanzamiento de androidx.wear:wear-input:1.1.0-rc01 y androidx.wear:wear-input-testing:1.1.0-rc01. La versión 1.1.0-rc01 contiene estas confirmaciones.

Sin cambios en la API desde androidx.wear:wear-input:1.1.0-beta01 y androidx.wear:wear-input-testing:1.1.0-beta01

Versión 1.1.0-beta01

21 de julio de 2021

Lanzamiento de androidx.wear:wear-input:1.1.0-beta01 y androidx.wear:wear-input-testing:1.1.0-beta01 sin cambios desde 1.1.0-alpha03. La versión 1.1.0-beta01 contiene estas confirmaciones.

Versión 1.1.0-alpha03

30 de junio de 2021

Lanzamiento de androidx.wear:wear-input:1.1.0-alpha03 y androidx.wear:wear-input-testing:1.1.0-alpha03. La versión 1.1.0-alpha03 contiene estas confirmaciones.

Correcciones de errores

  • Se corrigió el error que causaba que se rechazaran los intents de RemoteInput (que recibían RemoteInput por medio de RemoteInputHelper.putRemoteInputsExtra).

Versión 1.1.0-alpha02

18 de mayo de 2021

Lanzamiento de androidx.wear:wear-input:1.1.0-alpha02 y androidx.wear:wear-input-testing:1.1.0-alpha02. La versión 1.1.0-alpha02 contiene estas confirmaciones.

Cambios en la API

  • Los métodos de RemoteInputIntentHelper que se usan para obtener o colocar extras que representan las etiquetas de "título", "cancelar", "confirmar" y "en curso" ahora usan CharSequence, en lugar de String, para esas etiquetas. (I0e71f)

Versión 1.1.0-alpha01

27 de enero de 2021

Lanzamiento de androidx.wear:wear-input:1.1.0-alpha01 y androidx.wear:wear-input-testing:1.1.0-alpha01. La versión 1.1.0-alpha01 contiene estas confirmaciones.

Cambios en la API

  • Se migró la clase RemoteInputIntent de la biblioteca de compatibilidad para wearables a AndroidX. También se cambió el nombre de la clase migrada a RemoteInputIntentHelper, la cual ofrece funciones auxiliares para admitir entradas remotas con el inicio de un intent. (I47cee)

Wear-Input 1.0.0

Versión 1.0.0

2 de diciembre de 2020

Lanzamiento de androidx.wear:wear-input:1.0.0 y androidx.wear:wear-input-testing:1.0.0. La versión 1.0.0 contiene estas confirmaciones.

Esta versión es idéntica a 1.0.0-rc01.

Funciones principales de la versión 1.0.0

  • Se migró la funcionalidad de WearableButtons de una biblioteca de Wearable Support a Jetpack.

  • Se agregó androidx.wear.input.test.TestWearableButtonsProvider, que implementa androidx.wear.input.WearableButtonsProvider para ayudar a probar las aplicaciones desarrolladas con la biblioteca de androidx.wear:wear-input.

Versión 1.0.0-rc01

11 de noviembre de 2020

Lanzamiento de androidx.wear:wear-input:1.0.0-rc01 y androidx.wear:wear-input-testing:1.0.0-rc01. La versión 1.0.0-rc01 contiene estas confirmaciones.

Esta versión es idéntica a la versión 1.0.0-beta01.

Versión 1.0.0-beta01

28 de octubre de 2020

Lanzamiento de androidx.wear:wear-input:1.0.0-beta01 y androidx.wear:wear-input-testing:1.0.0-beta01 sin cambios desde 1.1.0-alpha01. La versión 1.0.0-beta01 contiene estas confirmaciones.

Wear-Input-Testing versión 1.0.0-alpha01

14 de octubre de 2020

Lanzamiento de androidx.wear:wear-input-testing:1.0.0-alpha01. La versión 1.0.0-alpha01 contiene estas confirmaciones.

Cambios en la API

  • Se agregó androidx.wear.input.test.TestWearableButtonsProvider, que implementa androidx.wear.input.WearableButtonsProvider para ayudar a probar las aplicaciones desarrolladas con la biblioteca de androidx.wear:wear-input. (I0ed0c)

Wear-Input versión 1.0.0-alpha01

2 de septiembre de 2020

Lanzamiento de androidx.wear:wear-input:1.0.0-alpha01. La versión 1.0.0-alpha01 contiene estas confirmaciones.

Nuevas funciones

Se migró la funcionalidad de WearableButtons de una biblioteca de Wearable Support a Jetpack. Se ampliará la compatibilidad con pruebas en la biblioteca de androidx.wear:wear-input-testing en la próxima versión de Jetpack.

Versión 1.1.0

Versión 1.1.0

14 de octubre de 2020

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

Cambios importantes desde la versión 1.0.0

  • Se agregó un prefijo layout_ al atributo boxedEdges (ahora layout_BoxedEdges) para BoxInsetLayout a fin de cumplir con la convención de nombres de Android. Esto quitará el error de linter en estos atributos de Android Studio. (I4272f)
  • Se agregó el objeto EXTRA_ANIMATION_DURATION_MILLIS opcional a ConfirmationActivity para permitir la duración en la que se muestra el cuadro de diálogo de confirmación. (adb83ce, b/143356547)
  • Se actualizó WearableActionDrawView para retrasar el aumento del panel lateral de acciones hasta que se abra por primera vez. (I01026, b/163870541)

Versión 1.1.0-rc03

2 de septiembre de 2020

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

Correcciones de errores

  • Se solucionó el problema por el cual el panel lateral de acciones no mostraba contenido cuando se abría. (I01026, b/163870541)

Versión 1.1.0-rc02

24 de junio de 2020

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

Correcciones de errores

  • Se agregó un prefijo layout_ al atributo boxedEdges (ahora layout_boxedEdges) para BoxInsetLayout a fin de cumplir con la convención de nombres de Android. Esto quitará el error de linter en estos atributos de Android Studio.

Versión 1.1.0-rc01

14 de mayo de 2020

Lanzamiento de androidx.wear:wear:1.1.0-rc01 sin cambios desde .1.0-beta01. La versión 1.1.0-rc01 contiene estas confirmaciones.

Versión 1.1.0-beta01

29 de abril de 2020

Lanzamiento de androidx.wear:wear:1.1.0-beta01 sin cambios desde androidx.wear:wear:1.1.0-alpha01. La versión 1.3.0-beta01 contiene estas confirmaciones.

Versión 1.1.0-alpha01

15 de abril de 2020

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

Cambios en la API

  • Se agregó el objeto EXTRA_ANIMATION_DURATION_MILLIS opcional a ConfirmationActivity para permitir la duración en la que se muestra el cuadro de diálogo de confirmación. (adb83ce, 134523c, b/143356547)

Correcciones de errores

  • Se actualizó WearableActionDrawView para retrasar el aumento del panel lateral de acciones hasta que se abra por primera vez. (5cd32f7)