wear protolayout

  
Cette bibliothèque permet de définir un ensemble de mises en page d'UI et d'expressions non-UI à afficher/évaluer sur des surfaces distantes.
Dernière mise à jour Version stable Version finale Version bêta Version alpha
7 août 2024 1.2.0 - - -

Déclarer des dépendances

Pour ajouter une dépendance sur wear-protolayout, vous devez ajouter le dépôt Maven de Google à votre projet. Pour en savoir plus, consultez la section Dépôt Maven de Google.

Ajoutez les dépendances correspondant aux artefacts dont vous avez besoin dans le fichier build.gradle de votre application ou de votre module :

Groovy

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

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

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

Kotlin

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

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

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

Pour en savoir plus sur les dépendances, consultez Ajouter des dépendances de compilation.

Commentaires

Vos commentaires nous aident à améliorer Jetpack. N'hésitez pas à nous contacter si vous découvrez de nouveaux problèmes ou si vous avez des idées pour améliorer cette bibliothèque. Veuillez consulter les problèmes existants de cette bibliothèque avant d'en signaler un nouveau. Vous pouvez ajouter votre vote à un problème existant en cliquant sur le bouton en forme d'étoile.

Signaler un nouveau problème

Pour en savoir plus, consultez la documentation sur l'outil Issue Tracker.

Version 1.2

Version 1.2.0

7 août 2024

Publication d'androidx.wear.protolayout:protolayout-*:1.2.0. La version 1.2.0 contient. ces commits.

Changements importants depuis la version 1.1.0

  • FontStyle a été mis à jour afin de prendre en charge les polices supplémentaires sur les axes variables et d'améliorer l'API de sélection des polices pour prendre en charge les polices Flex à venir.
  • Autres modificateurs compatibles: <ph type="x-smartling-placeholder">
      </ph>
    • Modificateur de transformation offrant une translation, une rotation et une mise à l'échelle avec ou sans animations.
    • spécifier des valeurs différentes (horizontale et verticale) pour chaque arrondi d'angle ;
  • Amélioration de l'accessibilité à toutes les cibles tactiles en étendant la zone tactile de tout élément utilisant le modificateur cliquable pour qu'elle soit d'au moins 48dp par 48dp.
  • Amélioration de PrimaryLayout et EdgeContentLayout en ajoutant setResponsiveContentInsetEnabled pour mieux prendre en charge le comportement responsif de ces mises en page sur différentes tailles d'écran et améliorer la cohérence des cartes.
  • Amélioration de la mise à l'échelle/non mise à l'échelle du texte Material pour la mise à l'échelle non linéaire de la police d'Android 14.
  • Amélioration de la prise en charge de la direction de la mise en page de droite à gauche pour tous les éléments d'arc.

Autres modifications

  • Pour en savoir plus sur les modifications introduites dans la version 1.1.0, consultez les notes de version beta01.

Version 1.2.0-rc01

24 juillet 2024

Publication d'androidx.wear.protolayout:protolayout-*:1.2.0-rc01. La version 1.2.0-rc01 contient ces commits.

Correction de bugs

  • Nous avons corrigé le chip Material standard pour qu'il ne puisse être utilisé comme icône que si aucun libellé principal ou secondaire n'est transmis. (Iceef9).
  • La documentation sur les mises en page Material a été mise à jour pour inclure les éléments visuels de la page concernée afin de faciliter la compréhension des mises en page. (I0256a).

Version 1.2.0-beta01

10 juillet 2024

Publication d'androidx.wear.protolayout:protolayout-*:1.2.0-beta01. La version 1.2.0-beta01 contient ces commits.

Nouvelles fonctionnalités

La version 1.2.0-beta01 de Wear ProtoLayout indique que cette version de la bibliothèque dispose de fonctionnalités complètes et que l'API est verrouillée (sauf lorsqu'elle est marquée comme expérimentale). Wear ProtoLayout 1.2 inclut les nouvelles fonctionnalités et API suivantes:

  • FontStyle a été mis à jour pour prendre en charge les polices supplémentaires suivantes: <ph type="x-smartling-placeholder">
      </ph>
    • Définir des paramètres de variation de police différents, tels que FontSetting.weight et FontSetting.width
    • Définir la même largeur pour tous les caractères numériques : chiffres tabulaires (fonctionnalité de police FontSetting.tnum)
    • Amélioration des API de sélection de police pour prendre en charge les futures polices Flex en spécifiant les noms de famille de polices à utiliser à utiliser.
  • Extension du modificateur Corner permettant de spécifier chaque CornerRadius avec des valeurs horizontale et verticale distinctes afin de permettre de construire des éléments avec des angles asymétriques.
  • Ajout d'un modificateur Transformation permettant la traduction, la rotation et la mise à l'échelle de LayoutElement. Ces transformations peuvent être animées à l'aide de valeurs dynamiques.
  • Ajout de setArcDirection avec les options Clockwise, CounterClockwise et Normal à tous les éléments d'arc (Arc, ArcLine et ArcText) pour une meilleure prise en charge dans différentes directions de mise en page (LTR et RTL, par exemple).
  • Amélioration de l'accessibilité à toutes les cibles tactiles en étendant la zone tactile de tout élément qui utilise le modificateur Clickable pour qu'elle soit d'au moins 48dp par 48dp.
  • Amélioration de PrimaryLayout et EdgeContentLayout en ajoutant setResponsiveContentInsetEnabled pour mieux prendre en charge le comportement responsif de ces mises en page sur différentes tailles d'écran et améliorer la cohérence des cartes. Ajout d'un avertissement linter pour suggérer rapidement l'utilisation de ces API.
  • Amélioration de la mise à l'échelle/non mise à l'échelle de Material Text pour la mise à l'échelle non linéaire de la police d'Android 14.

Modifications apportées à l'API

  • Le nom de la famille de polices par défaut (DEFAULT_SYSTEM_FONT) est supprimé, car il est implicite que vous n'utilisez pas l'API preferredFontFamilies. (I39dab).
  • Le paramètre transmis à FontSetting.width doit être positif. (I1266f).

Version 1.2.0-alpha05

26 juin 2024

Publication d'androidx.wear.protolayout:protolayout-*:1.2.0-alpha05. La version 1.2.0-alpha05 contient ces commits.

Nouvelles fonctionnalités

  • Ajout de la méthode hasText à Material.CompactChip pour vérifier si le contenu textuel a été défini. (I6e8fc).

Modifications apportées à l'API

  • Déplacement de FontFamily const pour se trouver dans FontStyle au lieu de sa classe Builder. (I06ced).
  • Mise à jour des API FontSetting.weight et FontSetting.width pour inclure les annotations de plage et modifier le paramètre de pondération sur "int". (Ia726c).

Correction de bugs

  • Les textes non évolutifs de la bibliothèque Material fonctionnent désormais correctement avec la mise à l'échelle non linéaire de la police d'Android 14. (I6601e).

Version 1.2.0-alpha04

29 mai 2024

Publication d'androidx.wear.protolayout:protolayout-*:1.2.0-alpha04. La version 1.2.0-alpha04 contient ces commits.

Modifications apportées à l'API

  • Ajout d'une API d'angles asymétriques permettant de spécifier séparément le rayon de chaque angle avec deux valeurs. (Icbd69).
  • Extension de l'API FontSetting pour inclure: <ph type="x-smartling-placeholder">
      </ph>
    • paramètre des fonctionnalités de police, par exemple en définissant la police comme tabulaire. (If12b7).
    • paramètre de variation de police, par exemple pour définir une largeur personnalisée pour les polices variables. (I2b36d).
  • Ajout de l'API de famille de polices à FontStyle pour permettre de spécifier une liste d'ordre des familles de polices à utiliser. (Iba9f5).
  • Changement de nom des constantes de hauteur d'espace entre le contenu et le libellé secondaire dans les LayoutDefaults de Material, qui portaient initialement le préfixe "Contenu périphérique" pour être plus génériques, car elles peuvent être appliquées à la fois à PrimaryLayout et EdgeContentLayout. (I4dc32).

Correction de bugs

  • Changement de nom : axisName devient axisTag pour les axes de police variable. (I02ba3).

Version 1.2.0-alpha03

14 mai 2024

Publication d'androidx.wear.protolayout:protolayout-*:1.2.0-alpha03. La version 1.2.0-alpha03 contient ces commits.

Nouvelles fonctionnalités

  • Ajout d'une API pour définir des valeurs de pondération personnalisées pour FontStyle. (I7390a).

Correction de bugs

  • Correction de l'échec dans getTouchDelegateInfo dû à une carte cible vide. (I2accf).

Version 1.2.0-alpha02

1er mai 2024

Publication d'androidx.wear.protolayout:protolayout-*:1.2.0-alpha02. La version 1.2.0-alpha02 contient ces commits.

Modifications apportées à l'API

  • Il est désormais possible de désactiver l'ondulation sur des éléments cliquables individuels. (If1ede).
  • L'API pour la transformation a été supprimée de ArcModifiers, car cette fonctionnalité n'est pas compatible. (Ic0827)
  • Le compilateur ArcDirectionProp attend désormais une valeur dans le constructeur. (I76ada).
  • La méthode PlatformDataValues.Builder.putAll permet de fusionner un PlatformDataValue dans un autre. (I50ba3).
  • Text#setIsScalable a été renommé Text#setScalable. (If920e).
  • Material Text peut définir s'il faut utiliser la taille évolutive (elle augmente lorsque la taille de la police de l'utilisateur est modifiée) ou non. (Ibc849).
  • Nous avons ajouté l'option permettant de définir la description du contenu sur TitleChip. (I5d21f).
  • Correction de CompactChip pour qu'il fonctionne correctement avec l'icône uniquement et mise à jour de l'API pour autoriser cette option. (I6589e).

Correction de bugs

  • Correction d'un problème de données de plate-forme en double lors de l'initialisation. (Iba0fd).
  • Introduction d'un nouveau getter à DynamicDataNode pour récupérer le coût du nœud. Le coût est utilisé lors de l'acquisition d'un quota de nœuds dynamiques. Actuellement, le coût des nœuds à valeurs fixes est de 0, contre 1 pour tous les autres nœuds. (Ia33e1).
  • Supprimez la logique de comptabilisation de NO_OP_QUOTA_MANAGER. (Ib50b8).
  • Nous avons ajouté une règle d'analyse lint pour signaler un avertissement lorsque PrimaryLayout est utilisé sans setResponsiveContentInsetEnabled et fournir une solution rapide. (I12025).
  • Le nombre de nœuds d'expressions dynamiques est limité. (Iffae8).

Version 1.2.0-alpha01

6 mars 2024

Publication d'androidx.wear.protolayout:protolayout-*:1.2.0-alpha01. La version 1.2.0-alpha01 contient ces commits.

Nouvelles fonctionnalités

  • Les éléments ProtoLayout Arc peuvent désormais y ajouter des ArcDirection (Clockwise, Counterclockwise ou Normal). L'ajout de ce comportement à Arc, ArcLine ou ArcText corrigera son comportement pour les mises en page de droite à gauche. (I90699).
  • EdgeContentLayout a été mis à jour avec un nouveau setter setResponsiveContentInsetEnabled pour mieux respecter les consignes relatives à l'expérience utilisateur, assurer la cohérence des cartes grâce au libellé principal situé à l'emplacement fixe en haut et à l'encart responsif pour les libellés. (I60175).
  • Nous avons ajouté PrimaryLayout.setResponsiveContentInsetEnabled qui ajoute un encart responsif au libellé principal, au libellé secondaire et au chip inférieur de cette mise en page, afin d'éviter que ce contenu ne quitte le bord de l'écran. (I0c457).
  • Ajout d'une méthode pour supprimer les marges extérieures de CircularProgressIndicator afin qu'il puisse être utilisé comme un composant plus petit. (I55c06).

Modifications apportées à l'API

  • Le moteur de rendu de tuiles exclut désormais par défaut la marge intérieure de la police de tous les éléments de texte, sans possibilité de l'inclure. (I3e300).

Correction de bugs

  • Résolution du problème d'alignement du texte lors de l'utilisation de l'ellipse, de l'espacement entre les lettres et de l'alignement au centre. (I716c7).
  • Ajout d'une solution de contournement à un problème de dessin d'arc de skia. (I08f09).
  • Correction de la direction de dessin ArcLine pour les mises en page de droite à gauche. (I6c141).

Version 1.1

Version 1.1.0

7 février 2024

Publication d'androidx.wear.protolayout:protolayout-*:1.1.0. Liste des commits de la version 1.1.0

Modifications importantes depuis la version 1.0.0

  • Prise en charge des dégradés et meilleure représentation des longueurs supérieures à 360 degrés dans ArcLine.
  • Le format de date et heure accepte différents fuseaux horaires pour les types de données dynamiques.
  • Amélioration des options de redimensionnement et de redimensionnement automatique du texte pour gérer le texte tronqué.
  • L'entretoise prend en charge les dimensions étendues avec un poids facultatif.
  • Annotation des exigences concernant la version du schéma pour toutes les API ProtoLayout.
  • Zone cible étendue à n'importe quel élément Clickable jusqu'à 48 dp x 48 dp, pour répondre aux exigences d'accessibilité.
  • La marge intérieure de la police est désactivée par défaut et est le seul comportement pour tous les éléments de texte et les composants Material qui contiennent du texte.

Autres modifications

  • Pour en savoir plus sur les modifications introduites dans la version 1.1.0, consultez les notes de version beta01.

Version 1.1.0-rc01

24 janvier 2024

Publication d'androidx.wear.protolayout:protolayout-*:1.1.0-rc01. Liste des commits de la version 1.1.0-rc01

Correction de bugs

  • PlatformTimeUpdateNotifierImpl clignote immédiatement après l'activation de la mise à jour. (I77145).
  • Correction de CircularProgressIndicator pour les mises en page de droite à gauche. À partir de maintenant, il tournera dans le sens des aiguilles d'une montre dans tous les cas. (I95ee3).
  • Ajout d'une solution de contournement à un problème de dessin d'arc de skia. (I08f09).

Version 1.1.0-beta01

10 janvier 2024

Publication d'androidx.wear.protolayout:protolayout-*:1.1.0-beta01. Liste des commits de la version 1.1.0-beta01

Nouvelles fonctionnalités

La version 1.1.0-beta01 de Wear ProtoLayout indique que cette version de la bibliothèque dispose de fonctionnalités complètes et que l'API est verrouillée (sauf lorsqu'elle est marquée comme expérimentale). Wear ProtoLayout 1.1 inclut les nouvelles fonctionnalités et API suivantes:

  • ArcLine prend désormais en charge le dégradé en ajoutant Brush avec SweepGradient et en ajoutant une ombre sur l'extrémité pour mieux représenter la longueur supérieure à 360 degrés en ajoutant Shadow au StrokeCap existant.
  • DynamicInstant est compatible avec le formatage de date/heure par zone. DynamicInstant et DynamicDuration peuvent être utilisés comme types de données d'état ou de plate-forme.
  • Fonctionnalité de redimensionnement automatique pour la taille du texte qui permet de définir plusieurs tailles sur FontStyle.setSizes. La taille du texte s'adapte alors automatiquement en fonction de l'espace dans le parent. Nous avons également amélioré les options de redimensionnement des points de suspension pour le texte qui déborde en ajoutant TEXT_OVERFLOW_ELLIPSIZE et en abandonnant TEXT_OVERFLOW_ELLIPSIZE_END.
  • Spacer permet désormais d'afficher des dimensions agrandies avec une épaisseur facultative. Pour compiler ExpandedDimensionProp, nous avons ajouté une méthode d'assistance DimensionBuilders.weight.
  • Prise en charge du masquage et de l'affichage dynamiques des éléments de mise en page avec Modifier.visible. Cela inclut l'utilisation de valeurs dynamiques dans BoolProp.
  • Toutes les API ProtoLayout disposent désormais d'une annotation d'exigence de version de schéma, et la version peut être vérifiée avant d'appeler une API plus récente.
  • Chaque élément comportant Clickable a désormais sa zone cible étendue à au moins 48 x 48 dans le moteur de rendu afin de mieux répondre aux exigences d'accessibilité.
  • Suite à d'autres composants Material et aux initiatives Compose, nous avons désormais désactivé la marge intérieure de la police par défaut sur tous les éléments Text. De plus, AndroidTextStyle et les setters associés ont été supprimés de l'API publique. avec les corrections de bugs suivantes:
  • Ajout d'un setter pour positionner le contenu des bords dans EdgeContentLayout afin qu'il puisse être positionné avant tout autre contenu.
  • Une exception est générée systématiquement lorsqu'une valeur d'énumération non reconnue est détectée.
  • Invalider le résultat d'une expression lorsqu'elle génère une valeur numérique non valide (NaN ou infinie) ou génère une ArithmeticException.

Modifications apportées à l'API

  • Mises à jour de l'API SweepGradient pour permettre d'accepter les couleurs ou ColorStops dans le constructeur. (I6676f).

Correction de bugs

  • Ajout d'une API restreinte et d'une compatibilité avec le moteur de rendu pour définir la direction dans laquelle les éléments de l'arc sont dessinés. (Idef5a).
  • Si aucune valeur n'est spécifiée, RoundMode est défini par défaut sur Floor dans FloatToInt32Node. Le nœud renverra quand même une exception si le RoundMode fourni n'est pas reconnu. (I1b2d8).

Version 1.1.0-alpha04

13 décembre 2023

Publication d'androidx.wear.protolayout:protolayout-*:1.1.0-alpha04. Liste des commits de la version 1.1.0-alpha04

Nouvelles fonctionnalités

  • La classe VersionInfo n'implémente pas l'interface Comparable. (I8d13c).
  • Le moteur de rendu prend désormais en charge l'option TEXT_OVERFLOW_ELLIPSIZE. (I7f085).

Modifications apportées à l'API

  • L'option de dépassement de texte TEXT_OVERFLOW_ELLIPSIZE_END est désormais obsolète. Veuillez utiliser la nouvelle API TEXT_OVERFLOW_ELLIPSIZE avec un comportement très similaire. (I822d8).
  • Suite à d'autres composants Material et aux initiatives Compose, nous avons désormais désactivé la marge intérieure de la police par défaut pour tous les éléments de texte. De plus, AndroidTextStyle et les setters associés ont été supprimés de l'API publique. (I79094, Ib0b03, I32959, Iaf7d5, Ifa298, I0a4ae, Ida9d3)
  • Remplacement de Modifier.hidden par Modifier.visible. (I56902)
  • FontStyle#setSizes accepte désormais des arguments int au lieu d'arguments SpProp. (I02b37).

Correction de bugs

  • Générez une exception lorsque vous rencontrez une valeur d'énumération non définie ou non reconnue. (I9d2cf).
  • Refactorisez DynamicTypeBindingRequest. (I27b57).
  • Invalider le résultat d'une expression lorsqu'elle génère une valeur numérique non valide (NaN ou infinie) ou génère une ArithmeticException. (I681ae).

Version 1.1.0-alpha03

29 novembre 2023

Publication d'androidx.wear.protolayout:protolayout-*:1.1.0-alpha03. Liste des commits de la version 1.1.0-alpha03

Nouvelles fonctionnalités

  • Ajout de la prise en charge expérimentale pour masquer/afficher dynamiquement des éléments de mise en page. (I64a78)
  • Ajout de la prise en charge des valeurs dynamiques dans BoolProp. (I2fe96)
  • Ajout d'une annotation d'exigence de version de schéma aux API ProtoLayout. (I0f03c)
  • Extension de l'API avec la nouvelle option dans TextOverflow permettant de redimensionner le texte dans un conteneur parent fixe, même lorsque le nombre maximal de lignes n'est pas atteint (mais que l'espace est insuffisant pour le texte) (I110a9).
  • Ajout de la méthode d'assistance DimensionBuilders.weight pour créer ExpandedDimensionProp avec une pondération. (I4f72b).
  • DynamicInstant et DynamicDuration peuvent être utilisés comme types de données d'état ou de plate-forme. (I6819f).

Modifications apportées à l'API

  • Mise à jour de l'API pour masquer DynamicZonedDateTime et déplacer toutes ses opérations vers DyanamicInstant. (I34b94)
  • Les espaces vides sont désormais compatibles avec les dimensions développées pour la largeur et la hauteur. (Ie7c94).
  • Prise en charge de l'extension de la zone de ciblage des clics dans le moteur de rendu. (I39c79)

Version 1.1.0-alpha02

15 novembre 2023

Publication d'androidx.wear.protolayout:protolayout-*:1.1.0-alpha02. Liste des commits de la version 1.1.0-alpha02

Nouvelles fonctionnalités

  • Ajout d'un champ ArcLine StrokeCap Shadow à l'API. (I830ec).
  • Étendre l'API pour pouvoir spécifier la largeur ou la hauteur de l'espace à développer (I757ca).
  • Nous avons ajouté une API expérimentale pour adapter automatiquement la taille du texte en fonction de l'espace qu'il contient à l'intérieur du parent. (Ibbe63).
  • Prise en charge de la taille minimale cliquable. (I178e3)
  • Ajout de la prise en charge du moteur de rendu pour StrokeCap Shadow. (I48b17).
  • Ajout de la prise en charge du moteur de rendu pour le balayage du dégradé dans ArcLine. (I4d5bb).

Version 1.1.0-alpha01

18 octobre 2023

Publication d'androidx.wear.protolayout:protolayout-*:1.1.0-alpha01. Liste des commits de la version 1.1.0-alpha01

Nouvelles fonctionnalités

  • Ajout d'une option de pinceau à Arcline, compatible avec SweepGradient. (Ie7ce3).
  • Ajout de la prise en charge du formatage de la date et de l'heure par zone. (Ibfae0).
  • Ajout des wrappers proto et Java requis pour le formatage de la date et de l'heure par zone. (I97126).
  • Ajout de getters pour lire la valeur stockée dans un DynamicDataValue. (Ie6cea).
  • Ajout d'un setter pour positionner le contenu des bords dans EdgeContentLayout afin qu'il puisse être positionné avant tout autre contenu. (Ie8e8a).

Correction de bugs

  • Correction d'un problème qui entraînait la mise à jour immédiate d'une expression comportant plusieurs enregistrements de sources de données. (I8e1a8).
  • Correction d'un bug pour centrer l'élément racine lors des mises à jour des différences. (Ie48f7).
  • Les valeurs de contrainte de mise en page non définies (ou vides) ne sont plus ignorées. (Ibc785).
  • Réduction du délai entre l'affichage d'une mise en page et l'initialisation des nœuds de pipeline. (I38d4e).

Version 1.0

Version 1.0.0

9 août 2023

Publication d'androidx.wear.protolayout:protolayout-*:1.0.0. Liste des commits de la version 1.0.0

Principales fonctionnalités de la version 1.0.0

La bibliothèque ProtoLayout intègre des API permettant de créer des mises en page et des expressions utilisables sur différentes surfaces Wear OS. Par exemple, la bibliothèque de cartes utilise ces API pour prendre en charge la liaison de données de la plate-forme (pour mettre à jour plus rapidement les données des cartes) et les animations.

Version 1.0.0-rc01

26 juillet 2023

Publication d'androidx.wear.protolayout:protolayout-*:1.0.0-rc01. Liste des commits de la version 1.0.0-rc01.

Modifications apportées à l'API

  • Nous avons supprimé les méthodes setLayoutConstraintForDynamicAnchorAngle et getLayoutConstraintForDynamicAnchorAngle de l'élément Arc. Ces méthodes ont été ajoutées par erreur et n'ont eu aucun effet sur la mise en page fournie. (If7d01).
  • Nous avons limité la profondeur maximale de la mise en page d'un ProtoLayout à 30 LayoutElements imbriquées. (I8a74b).

Correction de bugs

  • Nous avons ajouté une vérification à effectuer si DynamicColor a été défini pour SpanText. (I0e5bc).
  • Il est précisé que l'unité de source de données DAILY_CALORIES est le kcal. (Iaa785).

Version 1.0.0-beta01

21 juin 2023

Publication d'androidx.wear.protolayout:protolayout-*:1.0.0-beta01. Liste des commits de la version 1.0.0-beta01

Nouvelles fonctionnalités

  • Autoriser le réglage de l'horloge pour les tests de liaison temporelle. (I05622).

Modifications apportées à l'API

  • PlatformDataReceiver.onData() et StateBuilders.Builder.addKeyToValueMapping acceptent désormais un mappage avec sûreté du typage de DynamicDataKey avec DynamicDataValue plutôt que des génériques non sécurisés. Cela signifie que DynamicDataValue est maintenant saisi avec son DynamicType. Constantes HEART_RATE_ACCURACY_X déplacées à la racine de PlatformHealthSources pour correspondre au positionnement des autres constantes Android. Les constantes int HEART_RATE_ACCURACY_X sont désormais utilisées directement dans DynamicHeartRateAccuracy.constant() et DynamicHeartRateAccuracy.dynamicDataValueOf() au lieu de la constante de valeur. (I82ff5).
  • La classe PlatformHealthSources.Constants a pu être instanciée par erreur. Ce problème est maintenant résolu. (Icb849).
  • PlatformTimeUpdateNotifier#setReceiver reçoit désormais Runnable au lieu de la fonction Supplier et Executor pour recevoir des notifications. (I9d938).
  • Nous avons remplacé le type de paramètre Callable par Supplier dans PlatformTimeUpdateNotifier#setReceiver. (I664bf).
  • CompactChip et TitleChip permettent désormais d'y ajouter une icône. (I5a01e).

Correction de bugs

  • Mise à jour des messages Prop avec des champs dynamiques pour utiliser oneof à la place. (I81739)
  • Réutilisation de l'implémentation des setters pour les surcharges comportant des setters. (Ied70c)
  • Enregistrement correct d'empreintes digitales dans des setters ayant une surcharge. (I86ed2)

Version 1.0.0-alpha11

7 juin 2023

Publication d'androidx.wear.protolayout:protolayout-*:1.0.0-alpha11. Liste des commits de la version 1.0.0-alpha11

Nouvelles fonctionnalités

  • Nous avons ajouté un PlatformDataKey pour la précision de la fréquence cardiaque. (I7f9b8).

Modifications apportées à l'API

  • Renommez StateBuilders#getIdToValueMapping en getKeyToValueMapping et remplacez le type renvoyé par Map<<AppDataKey<?>,DynamicDataValue>. (Iaa7ae).
  • Conversion de StateStore en classe finale. (I408ca)
  • L'interface TimeGateway a été remplacée par PlatformTimeUpdateNotifier dans la bibliothèque protolayout-expression-pipeline, qui indique la fréquence souhaitée pour mettre à jour les données temporelles. (I60869).
  • Changement de nom : register/unregisterForData dans PlatformDataProvider devient set/clearReceiver. (I14b02)
  • Dans Material Text, getExcludeFontPadding a été renommé hasExcludeFontPadding. (Iea01d).
  • Un setter pour l'alignement parfait de l'étiquette a été ajouté à tous les composants de la puce. Tous les chips ont désormais une cible tactile minimale appliquée. (I8ae92).
  • Le compte de service (LayoutDefaults#BUTTON_MAX_NUMBER) a été renommé MAX_BUTTONS. (I84788).
  • DAILY_DISTANCE a été renommé DAILY_DISTANCE_M. (I4f758).

Correction de bugs

  • Mise à jour de la documentation sur les types de propositions pour clarifier la raison pour laquelle la valeur statique est appliquée. Spécifiez la valeur par défaut utilisée si aucune valeur statique n'a été fournie. (I155aa).
  • Les espaces de noms PlatformDataKey doivent respecter les conventions de dénomination Java. (I47bda).

Version 1.0.0-alpha10

24 mai 2023

Publication d'androidx.wear.protolayout:protolayout-*:1.0.0-alpha10. Liste des commits de la version 1.0.0-alpha10

Nouvelles fonctionnalités

  • Ajout de AppDataKey pour accéder à l'état "push" de l'application. Ajout de PlatformDataKey pour accéder aux données de la plate-forme. Ajout de la prise en charge des espaces de noms dans StateStore. (I7985e).
  • Prise en charge des opérations Equal et NotEqual pour DynamicBool. (I6a0c1).

Modifications apportées à l'API

  • La classe FontStyles est désormais finale. (Iaa2ea)
  • LayoutElementBuilders#FontStyles est maintenant obsolète. Veuillez utiliser androidx.wear.protolayout.Typography ou créer votre propre FontStyle. (Ic929b).
  • Masque l'interface imbriquée Action#Builder dans l'interface Action. Les implémentations de Builder sont déjà fournies par les classes LoadAction et LaunchAction. (I1d70c).
  • Autorisez l'utilisation de DynamicFloat avec FloatProp. Notez que FloatProp ne nécessite aucune contrainte de mise en page, car il n'est pas utilisé comme accessoire de modification de mise en page. (I286ac).
  • Les actions LoalAction et SetStateAction ont été supprimées, car elles n'étaient pas encore vraiment prises en charge. (I5d6a6).
  • Ajout de la prise en charge du format ARGB_8888 pour les ressources d'image intégrées. (I8a07c).
  • Remplacement du nom StateEntryValue par DynamicDataValue et mise à jour des API d'état pour qu'elles utilisent DynamicDataKey. (If1c01)
  • Nous limitons le nombre d'entrées autorisées dans le StateStore afin de garantir que l'utilisation de la mémoire et l'heure de mise à jour de l'état sont bien limitées et contrôlées pour chaque instance de StateStore. Par conséquent, le développeur doit s'assurer qu'il ne contient pas plus de MAX_STATE_ENTRY_COUNT entrées dans la carte, sinon il obtiendra une IllegalStateException lors de la création ou de la mise à jour de StateStore. (Ibadb3).
  • Masquez les classes OnLoadTrigger et OnConditionMetTrigger, et renommez setTrigger en setCondition pour OnConditionMetTrigger. (Ibf629).
  • Pour des raisons de performances et de compatibilité, les moteurs de rendu ProtoLayout ne sont pas compatibles avec l'ensemble des fonctionnalités des ressources AnimatedVectorDrawable. Nous marquons ces API comme expérimentales jusqu'à ce que nous puissions définir l'ensemble compatible. (Ic6daf).
  • Ajout de types dynamiques pour la distance quotidienne, les calories quotidiennes et les étages quotidiens. Les clés des sources d'état de la plate-forme se trouvent désormais sous PlatformHealthSources.Keys. (Ib7637)
  • La méthode Easing.cubicBezier remplace CubicBezierEasing.Builder. La classe EasingFunction est alors supprimée, et les constantes de lissage de vitesse de cette classe sont désormais directement accessibles à partir de l'interface Easing. De plus, setInfiniteRepeatable est remplacé par INFINITE_REPEATABLE_WITH_RESTART et INFINITE_REPEATABLE_WITH_REVERSE. (Ib41e7)
  • Implémentez PlatformDataProvider pour indiquer la fréquence cardiaque et le nombre de pas quotidiens. L'interface SensorGateway a été supprimée de l'API publique. (I55b84).
  • Ajoutez PlatformDataProvider et mettez à jour StateStore pour l'enregistrer dans PlatformDataProvider lorsque la clé compatible du fournisseur est requise par le nœud du pipeline d'expression. (Ib616a).
  • SensorGateway n'est plus Closeable, car il ne conserve plus aucun état. (I6b4f7).
  • Autoriser l'utilisation de FloatProp avec DynamicFloat pour la progression dans CircularProgressIndicator. Cette option est prise en charge pour les moteurs de rendu compatibles avec la version 1.2. Les anciens moteurs de rendu utilisent staticValue, s'il est fourni, ou 0. (I0d91b)
  • Les constantes MultiButtonLayout ont été refactorisées dans la classe LayoutDefaults.MultiButtonLayoutDefaults, qui contient désormais celles pour les tailles de bouton en fonction du nombre de boutons dans la mise en page. (I13973).
  • Prise en charge de l'utilisation de StringProp avec DynamicString dans Material Text. Cette option est prise en charge pour les moteurs de rendu compatibles avec la version 1.2. Les anciens moteurs de rendu utilisent la valeur statique fournie. Remplacez le type renvoyé Text#getText String par StringProp. (I7275b).

Version 1.0.0-alpha09

10 mai 2023

Publication d'androidx.wear.protolayout:protolayout-*:1.0.0-alpha09. Liste des commits de la version 1.0.0-alpha09

Nouvelles fonctionnalités

  • Nous avons ajouté un élément expérimental de mise en page d'extension. Notez que cette option ne peut pas être utilisée par défaut et nécessite une extension de moteur de rendu capable de comprendre l'élément de mise en page. (I6581d).
  • Ajout de la compatibilité de StrokeCap avec ArcLine. (I94951).
  • Ajout de la prise en charge de l'opération d'instantané conditionnelle. (I489a7).
  • Ajout de la prise en charge de l'opération de durée conditionnelle. (Iab469).
  • Il est désormais possible de créer une durée en secondes. (Ib5fa1).

Modifications apportées à l'API

  • Suppression des méthodes enable/disablePlatformSource de DynamicTypeEvaluator. L'appelant doit être responsable des mises à jour. (I78c6d).
  • Autoriser la limitation de la taille des types de données liés. (Ie2966).
  • Ajout de la prise en charge de la description du contenu dynamique dans protolayout-material. (I62c8e).
  • Utilisez long et @IntRange pour la durée et le délai dans AnimationParameters. (I388b6).

Version 1.0.0-alpha08

19 avril 2023

Publication d'androidx.wear.protolayout:protolayout-*:1.0.0-alpha08. Liste des commits de la version 1.0.0-alpha08

Nouvelles fonctionnalités

  • AndroidTextStyle a été ajouté(e) à LayoutElementBuilders. (I8d967).
  • Il est désormais possible de définir l'exclusion de la marge intérieure de la police dans Material Text ProtoLayout. (I17f5d).
  • ARGB_8888 est désormais compatible avec les images intégrées. (I18c1e).
  • DynamicColor est désormais compatible avec l'opération onCondition. (I10927).

Modifications apportées à l'API

  • Prise en charge de la durée personnalisée pour l'animation inversée. (I3251f)
  • Nous avons ajouté le modificateur SemanticDescription. De plus, ContentDescription ne peut pas être lié. (I3f1d).
  • La méthode DynamicBool.isFalse() est maintenant remplacée par DynamicBool.negate() et DynamicBool.isTrue() est supprimé. De plus, les valeurs DynamicFloat NaN et le fait de restreindre une DynamicInt32 à une DynamicFloat génèrent désormais un résultat dynamique non valide. (I6ac1e).
  • Les outils de mise en forme "int" et "float" utilisent désormais le modèle Builder. (Ieb213).

Correction de bugs

  • La valeur statique de remplacement a été supprimée des champs animables. (Ifcb01).
  • DynamicTypeValueReceiver#onPreUpdate a été supprimé. (I2dc35).
  • La longueur des chaînes dans les expressions dynamiques est désormais limitée. (I4c93).
  • Les dépendances Gradle sont désormais correctement définies sur api au lieu de implementation si nécessaire. (I40503).

Version 1.0.0-alpha07

5 avril 2023

Publication d'androidx.wear.protolayout:protolayout-*:1.0.0-alpha07. Liste des commits de la version 1.0.0-alpha07

Nouvelles fonctionnalités

  • Ajout de la prise en charge des valeurs dynamiques dans StringProp. (I04342)
  • Marquage des éléments de mise en page pouvant être liés. (Ia110b)

Modifications apportées à l'API

  • sensorGateway#registerSensorGatewayConsumer utilise le type de données comme paramètre plutôt que la méthode dans Consumer. (Icf314).
  • Le compte de service (ObservableStateStore) a été renommé StateStore. (Ieb0e2).
  • Ajout de DynamicTypeEvaluator.Builder à la place d'arguments de constructeur pour autoriser davantage d'arguments facultatifs, y compris ObservableStateStore, qui est désormais défini par défaut sur un magasin vide. (I6f832).
  • Refactorisation de l'ordre des paramètres dans DynamicTypeEvaluator. (Ic1ba4).

Correction de bugs

  • Propagation correcte des signaux depuis les sources des capteurs de la plate-forme vers les nœuds en aval. (I5a922)

Version 1.0.0-alpha06

22 mars 2023

Publication d'androidx.wear.protolayout:protolayout-*:1.0.0-alpha06. Liste des commits de la version 1.0.0-alpha06

Nouvelles fonctionnalités

  • Nous avons ajouté une API expérimentale pour utiliser la fréquence cardiaque et les pas quotidiens dans les expressions dynamiques. (Ifd711)
  • Nous avons ajouté la prise en charge des délais inverses et avant pour les animations. (Ic25f7).
  • Les options "Bordure et arrière-plan" sont désormais disponibles avec DynamicColor.
  • Les valeurs dynamiques sont désormais compatibles avec les types dans DimensionBuilder.
  • La mise en page et les composants de tiles-material sont déplacés vers protolayout-material

Modifications apportées à l'API

  • LoadActionListener a été ajouté(e) à ProtoLayoutViewInstance. (If7806).

Correction de bugs

  • Ajout de FloatNodesTest. (Id7281)
  • Résolution du plantage du moteur de rendu lors de l'impossibilité de charger le bitmap structuré.

Version 1.0.0-alpha05

8 mars 2023

Publication d'androidx.wear.protolayout:protolayout-*:1.0.0-alpha05. Liste des commits de la version 1.0.0-alpha05.

Nouvelles fonctionnalités

  • Nous avons ajouté une "mise à jour de contenu" expérimentale à l'objet Modifiers. Cette animation se déclenche chaque fois que l'élément (avec ce modificateur) ou l'un de ses enfants est modifié lors d'une mise à jour de la mise en page. (bd03e5d).

Modifications apportées à l'API

  • Nous avons ajouté forwardRepeatDelayMillis et reverseRepeatDelayMillis à Repeatable. Nous avons également renommé delayMillis dans AnimationSpec en startDelayMillis. (Ifb266)
  • Les méthodes DynamicTypeEvaluator.bind acceptent désormais un exécuteur. (I346ab).
  • Nous avons ajouté la méthode startEvaluation à BoundDynamicType pour déclencher l'évaluation une fois le type dynamique lié. (I19908).

Correction de bugs

  • L'objet Animator sera réutilisé pour les animations suivantes d'un seul élément. (Ia3be9).

Version 1.0.0-alpha04

22 février 2023

Publication d'androidx.wear.protolayout:protolayout-*:1.0.0-alpha04. Liste des commits de la version 1.0.0-alpha04

Nouvelles fonctionnalités

  • ObservableStateStore informe désormais également les écouteurs lorsqu'une clé est supprimée.
  • Nous avons ajouté la version du schéma et l'échelle de police du moteur de rendu à DeviceParameters (qui permet de créer des mises en page de manière conditionnelle en fonction de différentes versions et paramètres de police).
  • Nous avons ajouté la possibilité d'animer les valeurs DynamicInt32. (I05485)
  • Nous avons ajouté les déclencheurs OnLoad et OnConditionalMet. Ils permettent de lancer des animations compatibles avec un déclencheur.
  • Nous avons ajouté l'épaisseur de mise en page pour les dimensions post-expansion et la taille minimale pour les dimensions enveloppées.
  • Nous avons ajouté des types dynamiques de durée et de recherche instantanée. Ils peuvent être utilisés pour représenter un instant temporel ou une durée dans une expression dynamique.
  • Nous avons ajouté la prise en charge de AnimatedVectorDrawable et SeekableAnimatedVectorDrawable comme ressources de mise en page.

Modifications apportées à l'API

  • Les données des capteurs nécessitent l'API 29 ou version ultérieure. (I8099e).
  • Nous avons ajouté deux méthodes d'assistance launchAction (pour lancer des activités).

Correction de bugs

  • Changement de nom : set/getSpec devient set/getAnimationSpec dans l'animation des cartes. (I3d74b)

Version 1.0.0-alpha03

8 février 2023

Publication d'androidx.wear.protolayout:protolayout-*:1.0.0-alpha03. Liste des commits de la version 1.0.0-alpha03

Nouvelles fonctionnalités

  • Nous avons ajouté toByteArray() et fromByteArray() aux types dynamiques dans la bibliothèque protolayout-express.
  • Nous avons ajouté toString() aux types dynamiques dans la bibliothèque protolayout-expression.
  • Les types de créations dynamiques sont désormais compatibles avec l'évaluation. La classe DynamicTypeEvaluator de la bibliothèque protolayout-expression-pipeline peut être utilisée pour évaluer (et recevoir les valeurs mises à jour) pour un type dynamique précédemment créé (DynamicString, DynamicFloat, etc.).
  • Lorsqu'il est impossible de lire des animations (soit parce qu'elles sont désactivées par l'évaluateur, soit parce que le nombre d'animations en cours d'exécution a atteint la limite définie), les valeurs statiques définies sur le nœud animable sont utilisées pour remplacer l'animation.

Version 1.0.0-alpha02

25 janvier 2023

Publication d'androidx.wear.protolayout:protolayout:1.0.0-alpha02, androidx.wear.protolayout:protolayout-expression:1.0.0-alpha02 et androidx.wear.protolayout:protolayout-proto:1.0.0-alpha02. Liste des commits de la version 1.0.0-alpha02

Nouvelles fonctionnalités

  • Les outils de création de mise en page d'androidx.wear.tiles:tiles vont être déplacés vers androidx.wear.protolayout:protolayout. Ceux d'androidx.wear.tiles:tiles seront abandonnés dans l'une des prochaines versions alpha.

Version 1.0.0-alpha01

11 janvier 2023

Publication d'androidx.wear.protolayout:protolayout-expression:1.0.0-alpha01 et androidx.wear.protolayout:protolayout-proto:1.0.0-alpha01. Liste des commits de la version 1.0.0-alpha01

Nouvelles fonctionnalités

  • Cette version introduit une nouvelle bibliothèque "ProtoLayout Expression" qui permet de créer des expressions à partir de variables dynamiques.