wear protolayout
Dernière mise à jour | Version stable | Version finale | Version bêta | Version alpha |
---|---|---|---|---|
11 décembre 2024 | 1.2.1 | - | - | 1.3.0-alpha05 |
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-alpha04" // Use to implement support for Wear ProtoLayout implementation "androidx.wear.protolayout:protolayout:1.3.0-alpha04" // Use to utilize components and layouts with Material design in your ProtoLayout implementation "androidx.wear.protolayout:protolayout-material:1.3.0-alpha04" }
Kotlin
dependencies { // Use to implement support for Wear ProtoLayout Expressions implementation("androidx.wear.protolayout:protolayout-expression:1.3.0-alpha04") // Use to implement support for Wear ProtoLayout implementation("androidx.wear.protolayout:protolayout:1.3.0-alpha04") // Use to utilize components and layouts with Material design in your ProtoLayout implementation("androidx.wear.protolayout:protolayout-material:1.3.0-alpha04") }
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.
Pour en savoir plus, consultez les documents sur l'outil Issue Tracker.
Version 1.3
Version 1.3.0-alpha05
11 décembre 2024
Publication d'androidx.wear.protolayout:protolayout-*:1.3.0-alpha05
. La version 1.3.0-alpha05 contient ces commits.
Nouvelles fonctionnalités
- Ajout de
LayoutString
pour prendre en charge les champs de chaîne de mise en page pouvant être liés. (Ida650) - Ajout du composant de conteneur de carte
ProtoLayout Material3
. (Ic985a)
Correction de bugs
- Cette bibliothèque utilise désormais les annotations de nullité JSpecify, qui sont des annotations de type. Les développeurs Kotlin doivent utiliser les arguments de compilation suivants pour appliquer une utilisation correcte:
-Xjspecify-annotations=strict, -Xtype-enhancement-improvements-strict-mode
(Id1f9b, b/326456246).
Version 1.3.0-alpha04
13 novembre 2024
Publication d'androidx.wear.protolayout:protolayout-*:1.3.0-alpha04
. La version 1.3.0-alpha04 contient ces commits.
Nouvelles fonctionnalités
- Mise à jour de la forme Material3 pour qu'elle soit une classe avec des champs contenant la valeur de coin réelle, comme dans Wear Compose. (Ied8cd)
- Mise à jour des couleurs Material3 pour inclure le concept
ColorScheme
, comme dans Wear Compose. (If645e) - Ajout de plusieurs outils de correspondance couramment utilisés à la bibliothèque de test. (Ie5cec)
Version 1.3.0-alpha03
30 octobre 2024
Publication d'androidx.wear.protolayout:protolayout-*:1.3.0-alpha03
. La version 1.3.0-alpha03 contient ces commits.
Nouvelles fonctionnalités
- Ajout de
LayoutElementAssertionsProvider
,LayoutElementAssertion
etLayoutElementMatcher
à la bibliothèque de test (Id1110)
Version 1.3.0-alpha02
16 octobre 2024
Publication d'androidx.wear.protolayout:protolayout-*:1.3.0-alpha02
. La version 1.3.0-alpha02 contient ces commits.
Nouvelles fonctionnalités
- Version initiale de la bibliothèque Material 3. Inclut les composants
text
,edgeButton
,buttonGroup
etprimaryLayout
.
Correctifs de sécurité
- Depuis cette modification, androidx compile avec protobuf 4.28.2 afin de corriger CVE-2024-7254. Passez de la version 1.3.0-alpha01 de
androidx.wear.protolayout:protolayout-proto
etandroidx.wear.protolayout:protolayout-external-protobuf
à la version 1.3.0-alpha02 pour réduire le risque de faille.
Contribution externe
Version 1.3.0-alpha01
2 octobre 2024
Publication d'androidx.wear.protolayout:protolayout-*:1.3.0-alpha01
. La version 1.3.0-alpha01 contient ces commits.
Correction de bugs
- Clarification : La disponibilité des noms de familles de polices Roboto et Roboto Flex dépend de l'appareil. (I193be)
- Famille de polices Roboto Flex activée dans le moteur de rendu de cartes AndroidX. (I08e94)
Version 1.2
Version 1.2.1
16 octobre 2024
Publication d'androidx.wear.protolayout:protolayout-*:1.2.1
. La version 1.2.1 contient ces commits.
Correctifs de sécurité
- Depuis cette modification, androidx compile avec protobuf 4.28.2 afin de corriger CVE-2024-7254. Mettez à niveau votre dépendance vers la version 1.2.1 de
androidx.wear.protolayout:protolayout-proto
etandroidx.wear.protolayout:protolayout-external-protobuf
pour atténuer le risque de faille.
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 pour prendre en charge davantage de polices pour les axes variables et une meilleure API de sélection de polices pour prendre en charge les futures polices Flex.- Les modificateurs supplémentaires sont compatibles avec les éléments suivants :
- Modificateur de transformation proposant la translation, la rotation et la mise à l'échelle, avec ou sans animation.
- Spécifier des valeurs différentes (horizontale et verticale) pour chaque rayon d'angle
- Amélioration de l'accessibilité de toutes les cibles tactiles en étendant la zone cliquable de tout élément qui utilise le modificateur "Cliquable" à au moins
48dp
x48dp
. - Amélioration de
PrimaryLayout
etEdgeContentLayout
en ajoutantsetResponsiveContentInsetEnabled
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 compatibilité avec l'orientation de mise en page de droite à gauche sur tous les éléments d'arc.
Autres modifications
- Pour obtenir un ensemble plus complet des modifications apportées à 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 afin qu'il ne puisse être utilisé comme icône que si aucune étiquette primaire ou secondaire n'est transmise. (Iceef9)
- La documentation sur les mises en page Material a été mise à jour pour inclure des visuels de la page correspondante 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 est complète et que l'API est verrouillée (sauf si 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 des polices supplémentaires, comme suit :- Définir différents paramètres de variation de police, tels que
FontSetting.weight
etFontSetting.width
- Définir la même largeur pour tous les caractères numériques : chiffres tabulaires (paramètre de la police
FontSetting.tnum
) - Amélioration des API de sélection de polices pour prendre en charge les futures polices flex en spécifiant les noms de familles de polices à utiliser.
- Définir différents paramètres de variation de police, tels que
- Modifier
Corner
étendu pour permettre de spécifier chaqueCornerRadius
avec des valeurs horizontales et verticales distinctes afin de créer des éléments avec des coins asymétriques. - Ajout d'un nouveau modificateur
Transformation
offrant la translation, la rotation et la mise à l'échelle deLayoutElement
. Ces transformations peuvent être animées à l'aide de valeurs dynamiques. - Ajout de
setArcDirection
avec les optionsClockwise
,CounterClockwise
etNormal
à tous les éléments d'arc (Arc
,ArcLine
etArcText
) pour une meilleure prise en charge dans différentes directions de mise en page (par exemple, LTR et RTL). - Amélioration de l'accessibilité de toutes les cibles tactiles en étendant la zone cliquable de tout élément qui utilise le modificateur
Clickable
à au moins48dp
×48dp
. - Amélioration de
PrimaryLayout
etEdgeContentLayout
en ajoutantsetResponsiveContentInsetEnabled
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 lint pour suggérer l'utilisation de ces API avec une solution rapide. - Amélioration de la mise à l'échelle/non-mise à l'échelle de
Text
Material 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 si vous n'utilisez pas l'APIpreferredFontFamilies
. (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
- Ajoutez la méthode
hasText
àMaterial.CompactChip
pour vérifier si le contenu du texte a été défini. (I6e8fc)
Modifications apportées à l'API
- Les constantes
FontFamily
sont déplacées versFontStyle
au lieu de sa classe Builder. (I06ced) - Mise à jour de l'API
FontSetting.weight
etFontSetting.width
pour inclure les annotations de plage et définir le paramètre de poids 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 de l'API Corners asymétriques pour pouvoir spécifier séparément le rayon de chaque coin avec deux valeurs. (Icbd69)
- Extension de l'API
FontSetting
pour inclure les éléments suivants : - Ajout de l'API de famille de polices à
FontStyle
pour permettre de spécifier une liste d'ordre des familles de polices à utiliser. (Iba9f5) - Modification du nom des constantes pour la hauteur de l'espace entre le contenu et le libellé secondaire dans
LayoutDefaults
de Material, qui étaient initialement précédées du préfixe "Contenu de bord" pour être plus génériques, car elles peuvent être appliquées à la fois àPrimaryLayout
et àEdgeContentLayout
. (I4dc32)
Correction de bugs
- Modification du nom des axes de police variable de
axisName
àaxisTag
. (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 permettant de définir des valeurs de poids personnalisées pour
FontStyle
. (I7390a)
Correction de bugs
- Correction de l'échec dans
getTouchDelegateInfo
en raison 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
- Vous pouvez désormais désactiver le retour en onde sur des éléments cliquables individuels. (If1ede)
- L'API de transformation a été supprimée de
ArcModifiers
, car cette fonctionnalité n'est pas prise en charge (Ic0827). - Le générateur
ArcDirectionProp
attend désormais une valeur dans le constructeur. (I76ada) - La méthode
PlatformDataValues.Builder.putAll
permet de fusionner unPlatformDataValue
dans un autre. (I50ba3) Text#setIsScalable
a été renomméText#setScalable
. (If920e)- Material Text peut définir si la taille est ajustable (elle augmente lorsque la taille de police de l'utilisateur est modifiée) ou non. (Ibc849)
- Nous avons ajouté la possibilité 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 potentiel lors de l'initialisation. (Iba0fd)
- Ajout d'un nouveau getter dans
DynamicDataNode
pour récupérer le coût du nœud. Le coût est utilisé lors de l'acquisition du quota de nœuds dynamiques. Actuellement, les nœuds avec des valeurs fixes ont un coût de 0, et tous les autres nœuds ont un coût de 1. (Ia33e1) - Supprimez la logique de comptage de
NO_OP_QUOTA_MANAGER
. (Ib50b8) - Nous avons ajouté une règle lint pour générer un avertissement lorsque
PrimaryLayout
est utilisé sanssetResponsiveContentInsetEnabled
et fournir une solution rapide. (I12025) - Le nombre de nœuds d'expression dynamique 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 ajouterArcDirection
(Clockwise
,Counterclockwise
ouNormal
). Ajouter ce comportement àArc
,ArcLine
ouArcText
corrige leur comportement dans les mises en page RTL. (I90699) EdgeContentLayout
a été mis à jour avec un nouveau settersetResponsiveContentInsetEnabled
pour mieux s'aligner sur les consignes relatives à l'expérience utilisateur, assurer la cohérence des cartes en plaçant le libellé principal à un emplacement fixe en haut et en insérant des libellés responsifs. (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 le contenu ne dépasse le bord de l'écran. (I0c457) - Ajoute une méthode permettant de supprimer les marges extérieures de
CircularProgressIndicator
afin qu'il puisse être utilisé comme composant plus petit. (I55c06)
Modifications apportées à l'API
- Le moteur de rendu des cartes exclut désormais la marge intérieure de la police pour tous les éléments de texte par défaut, sans option permettant de l'inclure. (I3e300)
Correction de bugs
- Résolution du problème d'alignement du texte lorsque l'ellipse, l'espacement des lettres et l'alignement au centre sont tous utilisés sur le texte. (I716c7)
- Ajout d'une solution provisoire pour un problème de dessin d'arc 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
- Compatibilité avec les dégradés et meilleure représentation des longueurs supérieures à 360 degrés dans
ArcLine
. - La mise en forme de la date et de l'heure accepte différents fuseaux horaires pour les types de données dynamiques.
- Meilleures options de redimensionnement automatique et d'ellipse du texte pour gérer le texte tronqué.
- L'espaceur est compatible avec les dimensions agrandies avec un poids facultatif.
- Annotation concernant les exigences de version de schéma pour toutes les API
ProtoLayout
. - Extension de la zone cible à tous les éléments
Clickable
à 48 dp x 48 dp, afin de répondre aux exigences d'accessibilité. - La marge intérieure de la police est désactivée par défaut. Il s'agit du seul comportement pour tous les éléments de texte et les composants Material contenant du texte.
Autres modifications
- Pour obtenir un ensemble plus complet des modifications apportées à 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
émet un "tic" immédiatement après l'activation de la mise à jour. (I77145)CircularProgressIndicator
a été corrigé pour les mises en page de droite à gauche. Désormais, il s'affichera dans le sens des aiguilles d'une montre dans tous les cas. (I95ee3)- Ajout d'une solution provisoire pour un problème de dessin d'arc 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 est complète et que l'API est verrouillée (sauf si elle est marquée comme expérimentale). Wear ProtoLayout 1.1 inclut les nouvelles fonctionnalités et API suivantes:
ArcLine
est désormais compatible avec le dégradé en ajoutantBrush
avecSweepGradient
et en ajoutant une ombre sur le bouchon pour mieux représenter une longueur supérieure à 360 degrés en ajoutantShadow
à l'StrokeCap
existant.DynamicInstant
est compatible avec le formatage de date et d'heure en fonction du fuseau horaire.DynamicInstant
etDynamicDuration
peuvent être utilisés comme types de données d'état ou de plate-forme.- Fonctionnalité de redimensionnement automatique de la taille du texte qui permet de définir plusieurs tailles sur
FontStyle.setSizes
, où la taille du texte est automatiquement redimensionnée en fonction de l'espace dont elle dispose dans le parent. Nous avons également amélioré les options d'ellipse pour le texte qui déborde en ajoutantTEXT_OVERFLOW_ELLIPSIZE
et en abandonnantTEXT_OVERFLOW_ELLIPSIZE_END
. Spacer
permet désormais d'avoir des dimensions développées avec une pondération facultative. Pour créerExpandedDimensionProp
, nous avons ajouté une méthode d'assistanceDimensionBuilders.weight
.- Prise en charge de l'affichage et du masquage dynamique des éléments de mise en page avec
Modifier.visible
. Cela inclut les valeurs dynamiques dansBoolProp
. - 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. - La zone cible de chaque élément contenant
Clickable
est désormais étendue à au moins 48 x 48 dans le moteur de rendu afin de mieux répondre aux exigences d'accessibilité. - À la suite d'autres initiatives concernant les composants Material et Compose, nous avons maintenant désactivé la marge intérieure de la police par défaut pour tous les éléments
Text
. De plus,AndroidTextStyle
et les sétteurs associés ont été supprimés de l'API publique. avec les corrections de bug suivantes: - Ajout d'un setter pour positionner le contenu de bord dans
EdgeContentLayout
afin qu'il puisse être placé avant d'autres contenus. - Génère systématiquement une exception en cas de valeur d'énumération non reconnue.
- Invalide le résultat d'une expression lorsqu'elle renvoie une valeur numérique non valide (NaN ou infinie) ou génère une exception
ArithmeticException
.
Modifications apportées à l'API
- Mise à jour de l'API
SweepGradient
pour permettre d'accepter des couleurs ouColorStops
dans le constructeur. (I6676f)
Correction de bugs
- Ajout d'une API et d'une prise en charge du moteur de rendu limitées pour définir la direction dans laquelle les éléments d'arc sont dessinés. (Idef5a)
RoundMode
est défini par défaut surFloor
dansFloatToInt32Node
si cette valeur n'est pas spécifiée. Le nœud génère toujours une exception si leRoundMode
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'interfaceComparable
. (I8d13c) - Le moteur de rendu est désormais compatible avec l'option
TEXT_OVERFLOW_ELLIPSIZE
. (I7f085)
Modifications apportées à l'API
- L'option de débordement de texte
TEXT_OVERFLOW_ELLIPSIZE_END
est désormais obsolète. Veuillez utiliser la nouvelle APITEXT_OVERFLOW_ELLIPSIZE
, dont le comportement est très similaire. (I822d8) - Comme pour les autres composants Material et les initiatives Compose, nous avons maintenant 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) Modifier.hidden
est remplacé parModifier.visible
. (I56902)FontStyle#setSizes
accepte désormais des arguments int au lieu d'argumentsSpProp
. (I02b37)
Correction de bugs
- Génère une exception en cas de valeur d'énumération "undefined" ou "unrecognized". (I9d2cf)
- Refactorisez
DynamicTypeBindingRequest
. (I27b57) - Invalide le résultat d'une expression lorsqu'elle renvoie une valeur numérique non valide (NaN ou infinie) ou génère une exception
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 d'une prise en charge expérimentale de l'affichage/du masquage dynamique des éléments de mise en page (I64a78)
- Ajout de la prise en charge des valeurs dynamiques dans
BoolProp
(I2fe96) - Ajout d'une annotation de condition de version de schéma aux API
ProtoLayout
(I0f03c) - Extension de l'API avec la nouvelle option dans
TextOverflow
pour ellipser le texte dans un conteneur parent fixe même lorsque le nombre maximal de lignes n'est pas atteint (mais qu'il n'y a pas assez d'espace pour le texte). (I110a9) - Ajout de la méthode d'assistance
DimensionBuilders.weight
pour créerExpandedDimensionProp
avec un poids. (I4f72b) DynamicInstant
etDynamicDuration
peuvent être utilisés comme types de données d'état ou de plate-forme. (I6819f)
Modifications apportées à l'API
- Modification de l'API pour masquer
DynamicZonedDateTime
et déplacer toutes ses opérations versDyanamicInstant
. (I34b94) - L'espaceur est désormais compatible avec la dimension "Étendu" pour la largeur/hauteur. (Ie7c94)
- Prise en charge de l'extension de la zone cible de clic 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
Shadow
StrokeCap
ArcLine
à l'API. (I830ec) - Extension de l'API pour pouvoir spécifier la largeur ou la hauteur de l'espaceur à développer. (I757ca)
- Nous avons ajouté une API expérimentale pour redimensionner automatiquement la taille du texte en fonction de l'espace dont il dispose dans le 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 dégradé de balayage dans le moteur de rendu
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
, avec prise en charge deSweepGradient
. (Ie7ce3) - Ajout de la prise en charge de la mise en forme de la date et de l'heure en fonction de la zone géographique. (Ibfae0)
- Ajout des protos et des wrappers Java requis pour la mise en forme de la date et de l'heure avec fuseau horaire. (I97126)
- Ajout de getters pour lire la valeur stockée dans un
DynamicDataValue
. (Ie6cea) - Ajout d'un setter pour positionner le contenu de bord dans
EdgeContentLayout
afin qu'il puisse être placé avant d'autres contenus. (Ie8e8a)
Correction de bugs
- Résolution d'un problème qui se produisait lorsqu'une expression avec plusieurs enregistrements de sources de données temporelles n'était pas mise à jour immédiatement. (I8e1a8)
- Correction d'un bug qui entraînait le centrage de l'élément racine lors des mises à jour de la différence. (Ie48f7)
- Les valeurs de contrainte de mise en page non définies (ou vides) ne seront plus ignorées. (Ibc785)
- Réduction du délai entre la visibilité d'une mise en page et l'initialisation de ses 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 introduit des API permettant de créer des mises en page et des expressions pouvant être utilisées sur différentes surfaces Wear OS. Par exemple, la bibliothèque Tiles utilise ces API pour prendre en charge la liaison de données de plate-forme (pour des mises à jour de données de carte plus rapides) 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.
- Pour migrer de Tiles vers
ProtoLayout
, veuillez suivre ces instructions.
Modifications apportées à l'API
- Nous avons supprimé les méthodes
setLayoutConstraintForDynamicAnchorAngle
etgetLayoutConstraintForDynamicAnchorAngle
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
à 30LayoutElements
imbriqués. (I8a74b)
Correction de bugs
- Nous avons ajouté une vérification pour générer une exception si
DynamicColor
a été défini pour unSpanText
. (I0e5bc) - Il est précisé que l'unité de la source de données
DAILY_CALORIES
est 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
- Permet de définir l'horloge pour les tests de liaison temporelle. (I05622)
Modifications apportées à l'API
PlatformDataReceiver.onData()
etStateBuilders.Builder.addKeyToValueMapping
acceptent désormais la mise en correspondance sécurisée deDynamicDataKey
àDynamicDataValue
plutôt que les génériques non sécurisés. Cela signifie queDynamicDataValue
est maintenant saisi avec sonDynamicType
. Les constantesHEART_RATE_ACCURACY_X
ont été déplacées vers la racine dePlatformHealthSources
pour correspondre à la position des autres constantes Android. Les constantes intHEART_RATE_ACCURACY_X
sont désormais utilisées directement dansDynamicHeartRateAccuracy.constant()
etDynamicHeartRateAccuracy.dynamicDataValueOf()
au lieu de la constante de valeur. (I82ff5)- La classe
PlatformHealthSources.Constants
était instanciable par erreur. Ce problème a été résolu. (Icb849) PlatformTimeUpdateNotifier#setReceiver
reçoit désormaisRunnable
au lieu de la fonctionSupplier
etExecutor
pour envoyer des notifications. (I9d938)- Nous avons remplacé le type de paramètre
Callable
parSupplier
dansPlatformTimeUpdateNotifier#setReceiver
. (I664bf) CompactChip
etTitleChip
permettent désormais d'ajouter une icône. (I5a01e)
Correction de bugs
- Mise à jour des messages de propriété avec des champs dynamiques pour utiliser "oneof" à la place (I81739)
- Réutilisation de l'implémentation des sétteurs pour les surcharges qui en comportent (Ied70c)
- Enregistrement correct des empreintes digitales dans les setters qui comportent des surcharges. (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 améliorer la précision de la fréquence cardiaque. (I7f9b8)
Modifications apportées à l'API
- Renommez
StateBuilders#getIdToValueMapping
engetKeyToValueMapping
et remplacez le type renvoyé parMap<<AppDataKey<?>,DynamicDataValue>
. (Iaa7ae) StateStore
est maintenant une classe finale. (I408ca)- L'interface
TimeGateway
a été remplacée parPlatformTimeUpdateNotifier
dans la bibliothèqueprotolayout-expression-pipeline
, qui fournit la fréquence souhaitée pour mettre à jour les données temporelles. (I60869) - Modification du nom de
register
/unregisterForData
dansPlatformDataProvider
enset
/clearReceiver
(I14b02) - Dans Material Text,
getExcludeFontPadding
a été renomméhasExcludeFontPadding
. (Iea01d) - Un setter pour l'alignement parfait du libellé a été ajouté à tous les composants de chip. Une cible minimale de clics est désormais appliquée à tous les chips. (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 propriétés pour préciser pourquoi 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 suivre le style 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 de l'application transmise ; ajout dePlatformDataKey
pour accéder aux données de la plate-forme ; ajout de la prise en charge des espaces de noms dansStateStore
. (I7985e) - Prise en charge des opérations
Equal
etNotEqual
pourDynamicBool
. (I6a0c1)
Modifications apportées à l'API
- La classe
FontStyles
est désormais définitive (Iaa2ea) LayoutElementBuilders#FontStyles
est maintenant obsolète. Veuillez utiliserandroidx.wear.protolayout.Typography
ou créer votre propreFontStyle
. (Ic929b)- Masquage de l'interface imbriquée
Action#Builder
de l'interfaceAction
. Les implémentations de Builder sont déjà fournies par les classesLoadAction
etLaunchAction
. (I1d70c) - Autorisez l'utilisation de
DynamicFloat
avecFloatProp
. Notez queFloatProp
ne nécessite pas de contraintes de mise en page, car il n'est pas utilisé comme propriété de modification de mise en page. (I286ac) - Les actions
LoalAction
etSetStateAction
sont supprimées, car elles n'étaient pas encore vraiment compatibles. (I5d6a6) - Ajout de la prise en charge du format ARGB_8888 pour les ressources image intégrées. (I8a07c)
- Modification du nom de
StateEntryValue
enDynamicDataValue
et mise à jour des API d'état pour utiliserDynamicDataKey
(If1c01) - Nous limitons le nombre d'entrées autorisées dans
StateStore
afin de nous assurer que l'utilisation de la mémoire et le temps de mise à jour de l'état sont bien contenus et contrôlés pour chaque instance deStateStore
. Par conséquent, le développeur doit s'assurer qu'il n'y a pas plus deMAX_STATE_ENTRY_COUNT
entrées dans la carte, sinon il recevra une erreurIllegalStateException
lors de la création ou de la mise à jour de laStateStore
. (Ibadb3) - Masquez les classes
OnLoadTrigger
etOnConditionMetTrigger
, et renommezsetTrigger
ensetCondition
pourOnConditionMetTrigger
. (Ibf629) - Pour des raisons de performances et de compatibilité, les moteurs de rendu
ProtoLayout
ne prennent pas en charge l'ensemble des fonctionnalités des ressourcesAnimatedVectorDrawable
. Nous les marquons comme expérimentales jusqu'à ce que nous puissions définir l'ensemble pris en charge. (Ic6daf) - Ajout de types dynamiques pour la distance, les calories et les étages gravis 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
remplaceCubicBezierEasing.Builder
. La classeEasingFunction
est donc supprimée, et les constantes d'atténuation de cette classe sont désormais directement accessibles depuis l'interfaceEasing
. En outre,setInfiniteRepeatable
est remplacé parINFINITE_REPEATABLE_WITH_RESTART
etINFINITE_REPEATABLE_WITH_REVERSE
(Ib41e7). - Implémentez
PlatformDataProvider
pour fournir la fréquence cardiaque et le nombre de pas quotidiens. L'interfaceSensorGateway
est supprimée de l'API publique. (I55b84) - Ajoutez
PlatformDataProvider
et mettez à jourStateStore
pour l'enregistrer auprès dePlatformDataProvider
lorsque la clé compatible du fournisseur est requise par le nœud du pipeline d'expression. (Ib616a) SensorGateway
n'est plusCloseable
, car il ne conserve plus aucun état. (I6b4f7)- Autorisez l'utilisation de
FloatProp
avecDynamicFloat
pour la progression dansCircularProgressIndicator
. Cette fonctionnalité est compatible avec les moteurs de rendu compatibles avec la version 1.2. Les anciens moteurs de rendu utiliserontstaticValue
si cette valeur est fournie, sinon 0. (I0d91b) - Les constantes
MultiButtonLayout
ont été refactorisées dans la classeLayoutDefaults.MultiButtonLayoutDefaults
, qui contient désormais celles des tailles de boutons en fonction du nombre de boutons dans la mise en page. (I13973) - Prise en charge de l'utilisation de
StringProp
avecDynamicString
dans le texte Material. Cette fonctionnalité est compatible avec les moteurs de rendu compatibles avec la version 1.2. Les anciens moteurs de rendu utiliseront la valeur statique fournie. Remplacement du type renvoyé parText#getText
,String
, parStringProp
. (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 de mise en page d'extension expérimental. Notez que cette fonctionnalité 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é d'
ArcLine
avecStrokeCap
. (I94951) - Ajout de la prise en charge de l'opération Instant conditionnelle. (I489a7)
- Ajout de la prise en charge de l'opération "Durée conditionnelle". (Iab469)
- Possibilité de créer une durée à partir de secondes. (Ib5fa1)
Modifications apportées à l'API
- Les méthodes
enable/disablePlatformSource
ont été supprimées deDynamicTypeEvaluator
. L'appelant doit être responsable des mises à jour. (I78c6d) - Permet de limiter la taille des types de données liés. (Ie2966)
- Ajout de la prise en charge de la description de 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 une marge intérieure de police en excluant la marge intérieure de la police dans le texte Material de
ProtoLayout
. (I17f5d) - ARGB_8888 est désormais compatible avec les images intégrées. (I18c1e)
DynamicColor
est désormais compatible avec l'opérationonCondition
. (I10927)
Modifications apportées à l'API
- Prise en charge de la durée personnalisée pour l'animation inverse (I3251f)
- Nous avons ajouté le modificateur
SemanticDescription
. De plus,ContentDescription
n'est pas liable. (I3f1d) - La méthode
DynamicBool.isFalse()
est désormais remplacée parDynamicBool.negate()
, etDynamicBool.isTrue()
est supprimée. De plus, les valeursDynamicFloat
NaN et la réduction d'uneDynamicInt32
à uneDynamicFloat
génèrent désormais un résultat dynamique non valide. (I6ac1e) - Les formateurs d'entiers et de nombres à virgule flottante utilisent désormais le modèle de compilateur. (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 deimplementation
lorsque cela est 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) - Marquer les é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 au lieu de la méthode dans Consumer. (Icf314)- Le compte de service (
ObservableStateStore
) a été renomméStateStore
. (Ieb0e2) - Ajout de
DynamicTypeEvaluator.Builder
au lieu des arguments de constructeur pour autoriser davantage d'arguments facultatifs, y comprisObservableStateStore
, 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 des sources de 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 permettant d'utiliser la fréquence cardiaque et le nombre de pas quotidiens dans les expressions dynamiques (Ifd711).
- Nous avons ajouté la prise en charge du délai avant et après l'animation. (Ic25f7)
- Nous avons ajouté la compatibilité avec
DynamicColor
pour la bordure et l'arrière-plan. - Nous avons ajouté la compatibilité avec les valeurs dynamiques aux types dans
DimensionBuilder
. - La mise en page et les composants d'
tiles-material
vont être déplacés versprotolayout-material
Modifications apportées à l'API
LoadActionListener
a été ajouté(e) àProtoLayoutViewInstance
. (If7806)
Correction de bugs
- Ajout de
FloatNodesTest
(Id7281) - Correction du plantage du moteur de rendu lorsqu'il ne parvient pas à charger un 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 animation expérimentale de "mise à jour du contenu " à l'objet
Modifiers
. Cette animation se déclenche chaque fois que l'élément (avec ce modificateur) ou l'un de ses enfants change lors d'une mise à jour de la mise en page. (bd03e5d)
Modifications apportées à l'API
- Nous avons ajouté
forwardRepeatDelayMillis
etreverseRepeatDelayMillis
àRepeatable
. Nous avons également renommédelayMillis
dansAnimationSpec
enstartDelayMillis
. (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 ultérieures 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 les écouteurs lorsqu'une clé est supprimée.- Nous avons ajouté la version du schéma du moteur de rendu et l'échelle de la police à
DeviceParameters
(qui peuvent être utilisés pour créer des mises en page de manière conditionnelle en réponse à différentes versions et paramètres de police). - Nous avons ajouté la possibilité d'animer les valeurs
DynamicInt32
(I05485). - Nous avons ajouté des déclencheurs
OnLoad
etOnConditionalMet
. Ils peuvent être utilisés pour démarrer des animations compatibles avec un déclencheur. - Nous avons ajouté un poids de mise en page pour les dimensions agrandies et une taille minimale pour les dimensions encapsulées.
- Nous avons ajouté des types dynamiques de durée et d'instant. Vous pouvez les utiliser pour représenter un instant ou une durée dans une expression dynamique.
- Nous avons ajouté la prise en charge de
AnimatedVectorDrawable
etSeekableAnimatedVectorDrawable
en tant que ressources de mise en page.
Modifications apportées à l'API
- Les données des capteurs nécessitent l'API 29 ou une version ultérieure. (I8099e)
- Nous avons ajouté deux méthodes d'assistance
launchAction
(pour lancer des activités).
Correction de bugs
set/getSpec
a été renommé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()
etfromByteArray()
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 versandroidx.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.