WindowManager
androidx.window
androidx.window.core
androidx.window.embedding
androidx.window.layout
androidx.window.testing.layout
| Dernière mise à jour | Version stable | Version finale | Version bêta | Version alpha |
|---|---|---|---|---|
| 24 septembre 2025 | 1.5.0 | - | - | - |
Déclarer des dépendances
Pour ajouter une dépendance à WindowManager, 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 des artefacts dont vous avez besoin dans le fichier build.gradle de votre application ou module :
Groovy
dependencies { implementation "androidx.window:window:1.5.0" // For Java-friendly APIs to register and unregister callbacks implementation "androidx.window:window-java:1.5.0" // For RxJava2 integration implementation "androidx.window:window-rxjava2:1.5.0" // For RxJava3 integration implementation "androidx.window:window-rxjava3:1.5.0" // For testing implementation "androidx.window:window-testing:1.5.0" }
Kotlin
dependencies { implementation("androidx.window:window:1.5.0") // For Java-friendly APIs to register and unregister callbacks implementation("androidx.window:window-java:1.5.0") // For RxJava2 integration implementation("androidx.window:window-rxjava2:1.5.0") // For RxJava3 integration implementation("androidx.window:window-rxjava3:1.5.0") // For testing implementation("androidx.window:window-testing:1.5.0") }
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 la documentation sur l'outil Issue Tracker.
Version 1.5
Version 1.5.0
24 septembre 2025
Publication d'androidx.window:window-*:1.5.0. La version 1.5.0 contient ces commits.
Changements importants depuis la version 1.4.0 :
- Ajoutez des points d'arrêt
WindowSizeClasspour les tailles "Large" et "XLarge". (I40d85) - Développez le calcul
WindowMetricssur le contexte de l'application. (I8eeeb, b/360934048) - Fournir un getter pour permettre un accès direct à
WindowLayoutInfo(Ie9513) - Ajoutez une API pour enregistrer automatiquement l'état de l'embedding et le restaurer automatiquement lorsque le processus de l'application est redémarré. (Ie0295)
- Suppression de l'API
WindowInsetsexpérimentale. (I68a71)
Correction de bugs
- Correction du problème qui entraînait le renvoi de différents
hashCodeparEmbeddingRuledans certains cas. (I748cc) - Correction d'un problème pouvant entraîner un
NullPointerExceptionen raison d'erreurs dans l'implémentation de l'appareil. - Correction du problème lié à l'échec des vérifications de sécurité
ActivityEmbeddingen raison de la suppression des classes inutilisées par ProGuard.
Contribution externe
- Ajout de toutes les plates-formes KMP à
window-core(If3d7c)
Version 1.5.0-rc01
27 août 2025
Publication d'androidx.window:window-*:1.5.0-rc01. La version 1.5.0-rc01 contient ces commits.
Correction de bugs
- Correction d'un problème pouvant entraîner un
NullPointerExceptionen raison d'erreurs dans l'implémentation de l'appareil. - Correction du problème lié à l'échec des vérifications de sécurité
ActivityEmbeddingen raison de la suppression des classes inutilisées par ProGuard.
Version 1.5.0-beta02
13 août 2025
Publication d'androidx.window:window-*:1.5.0-beta02. La version 1.5.0-beta02 contient ces commits.
Nouvelles fonctionnalités
- Correction de bugs mineurs.
Contribution externe
- Ajout de toutes les plates-formes KMP à
window-core(If3d7c)
Version 1.5.0-beta01
2 juillet 2025
Publication d'androidx.window:window-*:1.5.0-beta01. La version 1.5.0-beta01 contient ces commits.
Version 1.5.0-alpha02
7 mai 2025
Publication d'androidx.window:window-*:1.5.0-alpha02. La version 1.5.0-alpha02 contient ces commits.
Modifications apportées à l'API
- Ajoutez des points d'arrêt
WindowSizeClasspour les tailles "Large" et "XLarge". (I40d85) - Développez le calcul
WindowMetricssur le contexte de l'application. (I8eeeb, b/360934048) - Fournir un getter pour permettre un accès direct à
WindowLayoutInfo(Ie9513) - Ajoutez une API pour enregistrer automatiquement l'état de l'embedding et le restaurer automatiquement lorsque le processus de l'application est redémarré. (Ie0295)
- Suppression de l'API
WindowInsetsexpérimentale. (I68a71) - Masquer quelques constructeurs (I87b8d)
Correction de bugs
- Correction du problème qui entraînait le renvoi de différents
hashCodeparEmbeddingRuledans certains cas. (I748cc)
Version 1.5.0-alpha01
12 mars 2025
Publication d'androidx.window:window-*:1.5.0-alpha01. La version 1.5.0-alpha01 contient ces commits.
Nouvelles fonctionnalités
- Version initiale de Next 1.5.0.
Version 1.4
Version 1.4.0
20 mai 2025
Publication d'androidx.window:window-*:1.4.0. La version 1.4.0 contient ces commits.
Changements importants depuis la version 1.3.0
- Intégration d'activités
- API permettant de personnaliser les animations de lancement
- Séparateur interactif
ActivityStackÉpinglage- Diminution de la luminosité des boîtes de dialogue en plein écran
- Callback d'informations sur la fenêtre d'activité intégrée
- Gestion améliorée de
ActivityStack - Lancer une activité dans un
ActivityStackspécifié
WindowMetricsCalculator- Améliorer la compatibilité avec la testabilité
WindowMetrics- Méthodes pratiques pour calculer
withDpetheightDp - Mettre à jour la vérification des limites sur
isAtLeastet utiliser les limites inférieures pour permettre l'ajout de nouvelles valeurs
- Méthodes pratiques pour calculer
WindowSizeClass- Ajouter un mode de calcul à partir de
WindowMetrics
- Ajouter un mode de calcul à partir de
WindowInfoTracker- Ajout d'une API pour détecter les postures prises en charge sur l'appareil
Version 1.4.0-rc02
23 avril 2025
Publication d'androidx.window:window-*:1.4.0-rc02. La version 1.4.0-rc02 contient ces commits.
Correction de bugs
- Correction d'un plantage ProGuard pour
ActivityEmbedding.
Version 1.4.0-rc01
12 mars 2025
Publication d'androidx.window:window-*:1.4.0-rc01. La version 1.4.0-rc01 contient ces commits.
Nouvelles fonctionnalités
- Mises à jour de l'API
WindowSizeClass. - Mises à jour des API d'intégration d'activités.
Version 1.4.0-beta02
12 février 2025
Publication d'androidx.window:window-*:1.4.0-beta02. La version 1.4.0-beta02 contient ces commits.
Nouvelles fonctionnalités
- Corriger une annotation qui ne figurait que sur la propriété, mais pas sur le getter.
Version 1.4.0-beta01
15 janvier 2025
Publication d'androidx.window:window-*:1.4.0-beta01. La version 1.4.0-beta01 contient ces commits.
Nouvelles fonctionnalités
- Ajout d'une API permettant de personnaliser les animations
ActivityEmbedding. - Développez les API de test
WindowMetricsCalculatorpour permettre la simulation des métriques de fenêtre.
Modifications apportées à l'API
- Masquer quelques constructeurs (I87b8d)
- Autoriser les applications à personnaliser les animations
ActivityEmbedding(If31a8) - Ajout de la prise en charge de la cible KMP
watchosDeviceArm64et de la cible kotlin 1.9 (Icf15d, b/364652024) - Exposez les API
WindowMetricsCalculator. (I1cebf)
Correction de bugs
- Cette bibliothèque utilise désormais les annotations de nullité JSpecify, qui sont de type "type-use". Les développeurs Kotlin doivent utiliser l'argument de compilateur suivant pour garantir une utilisation correcte :
-Xjspecify-annotations=strict(il s'agit de la valeur par défaut à partir de la version 2.1.0 du compilateur Kotlin). (Ie69ac, b/326456246)
Version 1.4.0-alpha05
16 octobre 2024
Publication d'androidx.window:window-*:1.4.0-alpha05. La version 1.4.0-alpha05 contient ces commits.
Nouvelles fonctionnalités
- Ajoutez des fonctions pratiques pour obtenir
widthDpetheightDpà partir deWindowMetrics.
Modifications apportées à l'API
- Ajoutez
widthDpetheightDpàWindowMetrics. (Ide026) - Suppression de l'API
WindowInsetsexpérimentale. (I68a71) - Mise à jour des noms de méthodes de vérification des limites sur
isAtLeast(Ib0ab7)
Version 1.4.0-alpha04
2 octobre 2024
Publication d'androidx.window:window-*:1.4.0-alpha04. La version 1.4.0-alpha04 contient ces commits.
Modifications apportées à l'API
- Ajout d'une méthode pour calculer le
WindowSizeClassà partir deWindowMetrics. (874dba) - Pour plus de clarté, remplacez les méthodes
WindowSizeClassparcontainsWidthDp,containsHeightDpetcontainsWindowSizeDp. (fa760d) - Convertissez
WindowAreaControlleren classe de base abstraite. (I90893)
Correction de bugs
- Ajout de la prise en charge des limites relatives lors de la création d'un
FoldingFeaturede test. (2e6b3e) - Correction de bugs généraux lors de la sélection d'un
WindowSizeClass.
Version 1.4.0-alpha03
18 septembre 2024
Publication d'androidx.window:window-*:1.4.0-alpha03. La version 1.4.0-alpha03 contient ces commits.
Nouvelles fonctionnalités
- Ajoutez une méthode utilitaire pour obtenir un
WindowSizeClassà partir deWindowMetrics. (I83f1f) isAtLeasta été renommécontainsBreakpoint. (I85b47)- Ajoutez une surcharge à
computeWindowSizeClassà l'aide de floats. (I3dcb2, b/364677934, b/364677802, b/364680886)
Correction de bugs
- Ajoutez les points d'arrêt manquants à l'ensemble de points d'arrêt
WindowSizeClasspar défaut. - Correction d'un bug qui empêchait la sélection correcte des dimensions compactes dans certains cas.
Version 1.4.0-alpha02
4 septembre 2024
Publication d'androidx.window:window-*:1.4.0-alpha02. La version 1.4.0-alpha02 contient ces commits.
Nouvelles fonctionnalités
Ajout de la prise en charge des WindowSizeClass personnalisés.
- Ouvrez le constructeur pour
WindowSizeClassafin que les développeurs puissent utiliser le leur. - Ajoutez des méthodes utilitaires
isAtLeastpour que les développeurs puissent traiter une plage de valeursWindowSizeClass. - Ajoutez une fonction d'extension sur
Set<WindowSizeClass>pour calculer la meilleure correspondance à partir de l'ensemble. - Ajoutez des constantes pour les points d'arrêt recommandés pour Android.
- Ajoutez l'ensemble de points d'arrêt correspondant à ceux recommandés pour Android.
Modifications apportées à l'API
- Mise à jour des noms de méthodes de limites pour
WindowSizeClass. (If89a6) - Mettez à jour l'API
WindowSizeClasspour permettre l'ajout de nouvelles valeurs de points d'arrêt à l'avenir. Au lieu d'avoir des limites absolues, nous utilisons des limites inférieures et recommandons aux développeurs d'utiliser des vérifications de limites inférieures lors du traitement d'unWindowSizeClass. LesWindowWidthSizeClassetWindowHeightSizeClassexistants seront abandonnés, car ils ne seront plus développés. (I014ce)
Version 1.4.0-alpha01
7 août 2024
Publication d'androidx.window:window-*:1.4.0-alpha01. La version 1.4.0-alpha01 contient ces commits.
Nouvelles fonctionnalités
- L'épinglage ActivityStack permet aux applications d'épingler le contenu dans un conteneur et d'isoler sa navigation de l'autre conteneur.
- InteractiveDivider permet aux applications d'afficher un séparateur fixe ou déplaçable entre les deux activités dans une présentation fractionnée.
- La diminution de la luminosité des boîtes de dialogue en plein écran permet aux applications de spécifier la zone de diminution de la luminosité de la boîte de dialogue, afin de diminuer la luminosité de l'intégralité de la fenêtre de la tâche ou uniquement du conteneur qui affiche la boîte de dialogue.
- Callback d'informations sur la fenêtre d'activité intégrée permet aux applications de recevoir en continu des informations sur la fenêtre d'activité intégrée.
- Intégrer l'arrière-plan de l'animation permet aux applications de spécifier l'arrière-plan de l'animation, ce qui améliore la qualité de l'animation de transition lorsque
ActivityEmbeddingest utilisé. - La gestion améliorée d'ActivityStack permet aux applications de mieux contrôler
ActivityStackslorsqueActivityEmbeddingest utilisé, y compris : - Lancer une activité dans un
ActivityStackspécifié - Terminer une
ActivityStack
Modifications apportées à l'API
Nouvelle API
WindowInfoTracker#supportedPostures:- API permettant de déterminer si l'appareil est compatible avec le mode sur table pour les appareils pliables. Ajout de WindowAreaSessionPresenter#getWindow
Ajoutez des API pour prendre en charge l'épinglage
ActivityStack:- Classe
SplitPinRule SplitController#pinTopActivityStackSplitController#unpinTopActivityStack
- Classe
Ajouter des API pour activer et configurer le séparateur interactif
- Classe
DividerAttributes SplitAttributes.Builder#setDividerAttributes
- Classe
Ajout d'API pour définir
EmbeddingConfigurationetDimAreaBehaviorpour les boîtes de dialogue- Classe
EmbeddingConfiguration - Classe
DimAreaBehavior ActivityEmbeddingController#setEmbeddingConfiguration
- Classe
Ajout d'API pour recevoir des informations sur les mises à jour de la fenêtre d'activité intégrée
- Classe
EmbeddedActivityWindowInfo ActivityEmbeddingController#embeddedActivityWindowInfo
- Classe
Ajouter des API pour définir l'arrière-plan de l'animation d'intégration
EmbeddingAnimationBackgroundSplitAttributes.Builder#setAnimationBackground
Ajouter des API pour terminer
ActivityStacksActivityEmbeddingController#finishActivityStacks
Ajout d'API pour définir le lancement de
ActivityStackActivityEmbeddingOptions#setLaunchingActivityStack
Les API suivantes sont stables et ne sont plus expérimentales :
ActivityEmbeddingController#invalidateVisibleActivityStacks(déplacé depuis SplitController#invalidateTopVisibleSplitAttributes)ActivityEmbeddingController#getActivityStackSplitController#updateSplitAttributes
Ajout d'API pour la version 1.4. (I56774)
Correction de bugs
- Correction d'un bug sur certains appareils qui renvoyaient UNAVAILABLE au lieu de ACTIVE lorsqu'une session était active.
- Suppression de la compatibilité avec
transferActivityToWindowAreasur les appareils dont la valeurvendorApiLevelest définie sur 2 en raison de l'instabilité de l'API. - Introduction d'une API permettant de faire glisser le séparateur déplaçable d'intégration d'activités pour passer en plein écran. (I645c9)
- Autoriser les applications à désactiver les animations
ActivityEmbeddingvia les paramètres d'animation pourSplitAttributes. (Idc01a) - Suppression de la présentation manuelle de l'accès aux nouvelles API de plate-forme, car cela se fait automatiquement via la modélisation d'API lorsque vous utilisez R8 avec AGP 7.3 ou version ultérieure (par exemple, R8 version 3.3) et pour toutes les versions lorsque vous utilisez AGP 8.1 ou version ultérieure (par exemple, D8 version 8.1). Les clients qui n'utilisent pas AGP sont invités à passer à la version 8.1 ou ultérieure de D8. Consultez cet article pour en savoir plus. (Ia60e0, b/345472586)
- Autorisez les extensions à accepter les paramètres d'animation pour
SplitAttributesafin que l'appareil puisse les utiliser pour les transitions d'animation. (Iede00) - Masquer les API de superposition (Ic4251)
- Ajout d'API pour configurer le séparateur fixe ou déplaçable pour la fraction (Ia7a78)
- Ajout de la densité à
WindowMetrics(Id6723) - Ajout de l'API pour obtenir
SupportedPostures. (If557a) - Suppression de
setLaunchingActivityStackde l'API expérimentale (I191cf) - Présentation de
ActivityEmbeddingController#embeddedActivityWindowInfo(I24312) - Abandon de
#getTokenet ajout de#getActivityStackToken(Ie0471) - Ajout d'un adaptateur de rappel pour l'API de flux
embeddedActivityWindowInfo(Ida77f) - Ajout d'un adaptateur de rappel pour l'API de flux overlayInfo (I7264f)
- Ajoutez
WindowSdkExtensionsRulepour remplacerextensionsVersionà des fins de test. (Ifb928) - - Migrez
#setLaunchingActivityStackvers Bundle pour assurer la compatibilité avec les utilisations deActivityOptionsCompat.- Les utilisateurs doivent transmettre
activityOptions.toBundleau lieu deActvityOptionslui-même. - Supprimez
#setLaunchingActivityStack(Activity). Les utilisateurs doivent migrer versActivityEmbeddingController#getActivityStac(Activity)pour obtenir unActivityStacket le transmettre à#setLaunchingActivityStack.ActivityStack(Ie0ccc)
- Les utilisateurs doivent transmettre
- - Ajout de
ActivityStack.TokenetSpltInfo.Tokencomme identifiants pour communiquer entre WM Jetpack et les extensions.- Remplacer/Abandonner les API pour accepter/renvoyer un jeton au lieu d'IBinder. (I12b24)
- - Introduction de
ActivityEmbeddingController#invalidateVisibleActivityStacks- Suppression de
SplitController#invalidateTopVisibleSplitAttributes, car la fonctionnalité est consolidée dans#invalidateVisibleActivityStacks. (I02ef5)
- Suppression de
- - Ajout d'une API pour définir la configuration d'intégration. (I59a4a)
- - Ajout des API
androidx.Windowandroidx.Windowpour épingler/désépingler en haut- Mise à jour de l'application de démonstration pour autoriser l'épinglage/le désépinglage en haut
ActivityStack(I24dd3)
ActivityStack - Mise à jour de l'application de démonstration pour autoriser l'épinglage/le désépinglage en haut
- Réajout de
#finishActivityStacksetActivityEmbeddingOptions(Ic1ab3) - Suppression des API instables. (Ibc534, b/302380585)
Version 1.3
Version 1.3.0
29 mai 2024
Publication d'androidx.window:window-*:1.3.0. La version 1.3.0 contient ces commits.
Changements importants depuis la version 1.2.0
- Prise en charge de Kotlin Multiplatform pour les classes de taille de fenêtre.
Version 1.3.0-rc01
14 mai 2024
WindowManager Jetpack 1.3 apporte la compatibilité multiplate-forme Kotlin pour les fonctionnalités WindowSizeClass, ainsi que plusieurs corrections de bugs.
Publication d'androidx.window:window-*:1.3.0-rc01. La version 1.3.0-rc01 contient ces commits.
Version 1.3.0-beta02
1er mai 2024
Publication d'androidx.window:window-*:1.3.0-beta02. La version 1.3.0-beta02 contient ces commits.
Modifications apportées à l'API
- Suppression de la possibilité de créer et d'utiliser des
WindowSizeClasspersonnalisés. (Id1143)
Correction de bugs
- Correction des
KotlinReflectionInternalErrorcausés par ProGuard qui supprime certains fichiers sur certaines implémentations d'appareils. (I01b02)
Version 1.3.0-beta01
3 avril 2024
Publication d'androidx.window:window-*:1.3.0-beta01. La version 1.3.0-beta01 contient ces commits.
Version 1.3.0-alpha03
6 mars 2024
Publication d'androidx.window:window-*:1.3.0-alpha03. La version 1.3.0-alpha03 contient ces commits.
Modifications apportées à l'API
- Séparation de
WindowSizeClassUtilen méthodes plus ciblées. (Ie9292) - Restaurer
WindowSizeClass#compute(I21355, b/324293374)
Correction de bugs
- Correction d'un plantage qui se produisait lorsque le contexte fourni n'était pas décompressé correctement. (94d10ce , b/318787482)
Version 1.3.0-alpha02
7 février 2024
Publication d'androidx.window:window-*:1.3.0-alpha02. Liste des commits de la version 1.3.0-alpha02
Nouvelles fonctionnalités
- Mises à jour apportées à la surface de l'API Window Size Class pour améliorer la flexibilité des développeurs qui souhaitent utiliser leurs propres classes de taille.
Modifications apportées à l'API
- Ajoutez des contraintes de hauteur au sélecteur de largeur. (I23393)
- Ajoutez des fonctions utilitaires pour sélectionner un
WindowSizeClassà partir d'un ensemble. Ajout de fonctions de score expérimentales pour permettre aux développeurs d'écrire leurs propres sélecteurs. Ajoutez une fonction d'extension de sélecteur pour choisir leWindowSizeClassle plus large dans une limite donnée. (I0c944) - Ouvrez le constructeur
WindowSizeClasspour pouvoir ajouter des points d'arrêt personnalisés. (Ic1ff3) - Ajoutez une fonction pratique pour créer une classe de taille à partir de la largeur, de la hauteur et de la densité. (If67f4)
Correction de bugs
- Correction d'une exception lorsque la valeur float est tronquée à 0. (272ffac)
Version 1.3.0-alpha01
15 novembre 2023
Publication d'androidx.window:window-*:1.3.0-alpha01. Liste des commits de la version 1.3.0-alpha01
Nouvelles fonctionnalités
- API de fenêtres expérimentales pour accéder à l'écran arrière.
- Les API de test pour créer une
FoldingFeaturesont dorénavant stables. - Les API de test pour configurer des valeurs
ActivityEmbeddingsont dorénavant stables. WindowLayoutInfoPublisherRulesignale désormais le forçage lors de l'obtention d'une valeur venant d'unUiContext.WindowInfoTrackerrapporte les données des caractéristiques de pliage aux paramètresUiContext.- Exposer la version des extensions sur l'appareil.
- Constantes
WindowPropertiespour les remplacements par application de l'utilisateur :PROPERTY_COMPAT_ALLOW_USER_ASPECT_RATIO_OVERRIDE: informe le système que l'application a désactivé le remplacement de la compatibilité du format d'affichage pour l'utilisateur.PROPERTY_COMPAT_ALLOW_USER_ASPECT_RATIO_FULLSCREEN_OVERRIDE: informe le système que l'application a désactivé l'option plein écran des paramètres de remplacement de la compatibilité du format de l'utilisateur.
Version 1.2
Version 1.2.0
15 novembre 2023
Publication d'androidx.window:window-*:1.2.0. Liste des commits de la version 1.2.0
Changements importants depuis la version 1.1.0
- API de fenêtres expérimentales pour accéder à l'écran arrière.
- Les API de test pour créer une
FoldingFeaturesont dorénavant stables. - Les API de test pour configurer des valeurs
ActivityEmbeddingsont dorénavant stables. WindowLayoutInfoPublisherRulesignale désormais le forçage lors de l'obtention d'une valeur venant d'unUiContext.WindowInfoTrackerrapporte les données des caractéristiques de pliage aux paramètresUiContext.- Exposer la version des extensions sur l'appareil.
Version 1.2.0-rc01
1er novembre 2023
Publication d'androidx.window:window-*:1.2.0-rc01. Liste des commits de la version 1.2.0-rc01
Nouvelles fonctionnalités
- API de fenêtres expérimentales pour accéder à l'écran arrière.
- Les API de test pour créer une
FoldingFeaturesont dorénavant stables. - Les API de test pour configurer des valeurs
ActivityEmbeddingsont dorénavant stables. WindowLayoutInfoPublisherRulesignale désormais le forçage lors de l'obtention d'une valeur venant d'unUiContext.WindowInfoTrackerrapporte les données des caractéristiques de pliage aux paramètresUiContext.- Exposer la version des extensions sur l'appareil.
Version 1.2.0-beta04
18 octobre 2023
Publication d'androidx.window:window-*:1.2.0-beta04. Liste des commits de la version 1.2.0-beta04
Modifications apportées à l'API
- Suppression des API instables. (Ibc534, b/302380585)
Version 1.2.0-beta03
20 septembre 2023
Publication d'androidx.window:window-*:1.2.0-beta03. Liste des commits de la version 1.2.0-beta03
Nouvelles fonctionnalités
- Ajout de vérifications
RequiresApipour les API qui nécessitent une version spécifique des extensions pour fonctionner correctement. - Ajoutez une API pour exposer la version des extensions sur l'appareil.
Modifications apportées à l'API
- Annoter la version requise de l'extension SDK Window sur les API publiques.
- Supprimez
isXXXSupporteddans le composant d'intégration d'activité. (Ie3dae)
- Supprimez
- Présentez
WindowSdkExtensionspour signaler la version de l'extension sur l'appareil.- Ajoutez
RequiresWindowSdkExtensionpour annoter la version minimale requise de l'extension. (I05fd4)
- Ajoutez
- Rend
WindowAreaInfo#getCapabilitynon nul. (I17048)
Version 1.2.0-beta01
26 juillet 2023
Publication d'androidx.window:window-*:1.2.0-beta01. Liste des commits de la version 1.2.0-beta01
Nouvelles fonctionnalités
- API de fenêtres expérimentales pour accéder à l'écran arrière.
- Les API de test pour créer une
FoldingFeaturesont dorénavant stables. - Les API de test pour configurer des valeurs
ActivityEmbeddingsont dorénavant stables. WindowLayoutInfoPublisherRulesignale désormais le forçage lors de l'obtention d'une valeur venant d'unUiContext.WindowInfoTrackerrapporte les données des caractéristiques de pliage aux paramètresUiContext.
Modifications apportées à l'API
- Marque la
WindowAreade l'API comme expérimentale pour permettre la poursuite des modifications de l'API en vue d'une version 1.3 stable. (I857f5) - Mise à jour des fichiers API pour annoter la suppression de la compatibilité. (I8e87a, b/287516207)
Version 1.2.0-alpha03
21 juin 2023
Publication d'androidx.window:window-*:1.2.0-alpha03. Liste des commits de la version 1.2.0-alpha03
Nouvelles fonctionnalités
- Suppression des API obsolètes de la surface de l'API.
- Ajout d'API pour prendre en charge des affichages simultanés.
- Ajout d'une propriété permettant de refuser le redimensionnement forcé.
- Ajout d'une propriété permettant de refuser le forçage du format minimal.
- Stabilisation d'
ActivityEmbeddingRuleafin d'effectuer des tests unitaires sur l'intégration d'activités.
Modifications apportées à l'API
Corrections de bugs
- Ajout d'une propriété de refus de compatibilité afin de forcer le redimensionnement. (Ie7ab1)
- Suppression de
SESSION_STATE_CONTENT_INVISIBLEde l'interface des extensions. (I6ed19) - Stabilisation d'
ActivityEmbeddingRuleafin d'effectuer des tests unitaires sur l'intégration d'activités. (I8d6b6) - Ajout d'une propriété de refus de compatibilité pour le forçage du format minimal. (I66390)
- Suppression des API WindowArea obsolètes (Ieb67c)
- Nom de la propriété des boucles de requêtes d'orientation remplacé par
PROPERTY_COMPAT_ALLOW_IGNORING_ORIENTATION_REQUEST_WHEN_LOOP_DETECTED. (Ie2fbd) - Mise à jour des noms des constantes des sessions des tailles de fenêtres. (I83675)
- Ajout d'une propriété de refus de compatibilité afin d'ignorer les boucles de requêtes d'orientation détectées. (I0a7a2)
- Ajout de
WindowAreaComponent#STATUS_ACTIVEafin de signifier que la fonctionnalité est déjà active. (I62bc3) - Ajout des API
RearDisplayPresentationMode(I0401c) - Suppression de l'API de couleur de fond pour une API stable. (I34c3e)
- Masquage des API Window Area. (I39de0)
- Ajout de méthodes pour forcer le
SplitInfodansSplitController. Ajout de méthodes de test pour créer un double deSplitInfoetActivityStack. (Icd69f) - Rend les balises optionnelles pour
ActivityRule.Builder. (Ib0b44) - Suppression de
RatioSplitType,ExpandContainersSplitetHingeSplitType, devenusSplitType.- Remplacement de
#splitEqually(),#expandContainers()et#splitByHingepar les constantesSplitType SPLIT_TYPE_EQUAL,SPLIT_TYPE_EXPANDetSPLIT_TYPE_HINGE. - Suppression de la fonctionnalité permettant de définir le type de repli du type de fractionnement à charnière. Si le type de fractionnement à charnière ne peut pas être appliqué en raison de l'état actuel de l'appareil ou de la fenêtre, il se rabat sur un fractionnement égal du conteneur de tâches parent. Utilisation de
SplitController#setSplitAttributesCalculatorpour personnaliser le type de fractionnement de remplacement. (Ifcc59)
- Remplacement de
- Abandon de
add/removeSplitCallback- Déplacement de
add/removeSplitCallbackversSplitControllerCallbackAdapter. - Ajout de la prise en charge de
Flowpour obtenir la listeSplitInfo. (I7f1b6)
- Déplacement de
- Ajout d'une règle de test pour
ActivityEmbeddingController. (I42e9b) - Remplacement du nom de
ActivityOptionsCompatparActivityEmbeddingOptions. (I89301) - Ajout de
splitSupportStatuspour indiquer si l'intégration d'activités est disponible. (I10024) - Introduction de
SplitAttributes.BackgroundColorpour une meilleure représentation de la valeurDEFAULT. Notez que la couleur d'arrière-plan de l'animation non opaque n'est pas prise en charge, de sorte que toute couleur non opaque sera traitée comme la couleur par défaut, ce qui signifie qu'il faut utiliser la couleur d'arrière-plan de la fenêtre du thème actuel. (Ic6b95) - Remplacement de
alwaysAllow()etalwaysDisallow()parALWAYS_ALLOWetALWAYS_DISALLOW. (I3057b) - Ajout d'API pour
SplitRule,SplitAttributesetSplitAttributesCalculator. (I92d23) - Ajout de
TestActivityStackafin de créerActivityStackpour des tests.- Ajout de
TestSplitInfoafin de créerSplitInfopour des tests. (I8e779)
- Ajout de
- Ajout d'un moyen de créer de faux
SplitAttributesCalculatorParamsafin que les développeurs puissent vérifier leurSplitAttributesCalculatorpersonnalisé. (Id4a6e) - Ajout de
WindowMetricsCalculator#computeCurrentWindowMetrics(@UiContext context: Context)etWindowMetricsCalculator#computeMaximumWindowMetrics(@UiContext context: Context). (I66c7f)
Version 1.2.0-alpha02
7 juin 2023
Publication d'androidx.window:window-*:1.2.0-alpha02. Liste des commits de la version 1.2.0-alpha02
Nouvelles fonctionnalités
- Mise à jour de l'API de test afin de disposer d'une constante pour les caractéristiques de pliage non spécifiées.
- Un forçage avec
WindowLayoutInfoPublishRuleforcera toutes les valeurs dewindowLayoutInfo, y compris l'API basée sur le contexte.
Modifications apportées à l'API
- Ajout d'une constante pour un appareil pliable en deux non spécifié. (I7530c)
Corrections de bugs
- Mise à jour de
WindowLayoutInfoPublishRulepour prendre en charge les forçages deContextsurWindowLayoutInfo. (I2037a)
Version 1.2.0-alpha01
24 mai 2023
Publication d'androidx.window:window-*:1.2.0-alpha01. Liste des commits de la version 1.2.0-alpha01
Nouvelles fonctionnalités
Stabilisation des API de test autour de l'intégration d'activités et du WindowLayoutInfoTracker. ActivityEmbeddingRule est défini comme stable.
WindowMetricsCalculatorRule est défini comme stable.
Les fonctions utilitaires permettant de créer un FoldingFeature à des fins de test ont été définies comme stables.
Modifications apportées à l'API
- Stabilisation d'
ActivityEmbeddingRuleafin d'effectuer des tests unitaires sur l'intégration d'activités. (I8d6b6) WindowMetrisCalculatorTestRuleest stable et permet d'utiliser les métriques des bouchons pour les tests JVM. Nous recommandons d'utiliser un émulateur pour obtenir des résultats précis.- Stabilisation des API de test pour
WindowLayoutInfoafin de prendre en charge les tests JVM. (Ie036e) - Ajout d'
IntRangepour les valeurs des caractéristiques de pliage de test. (I69f7d)
Version 1.1
Version 1.1.0
7 juin 2023
Publication d'androidx.window:window-*:1.1.0. Liste des commits de la version 1.1.0
Modifications importantes depuis la version 1.0.0
Intégration d'activités
- Ajout de
PROPERTY_ACTIVITY_EMBEDDING_SPLITS_ENABLEDen tant que propriété booléenne de la balise<application>dans le fichier manifeste d'application. isSplitSupportedest obsolète et remplacé parsplitSupportStatuspour fournir des informations plus détaillées sur la raison pour laquelle la fonctionnalité de fractionnement est indisponible.- Ajout de la classe imbriquée
SplitController.SplitSupportStatusafin de fournir des constantes d'état pour la propriétésplitSupportStatus. - Refactorisation de
SplitControllerpour plusieurs modules :- Module
ActivityEmbeddingControllerpour les API associéesActivityouActivityStack. - Déplacement de
isActivityEmbeddeddeSplitControllerversActivityEmbeddingController. - Module
RuleControllerpour les opérations associéesEmbeddingRule. - Suppression des API
SplitController: clearRegisteredRules()getSplitRules()initialize()registerRule()unregisterRule()- Ajout des API
RuleController: addRule(): ajoute une règle ou met à jour la règle qui possède la même balise.removeRule(): supprime une règle de la collection des règles enregistrées.setRules(): établit un ensemble de règles.clearRules(): supprime toutes les règles enregistrées.parseRules(): analyse les règles à partir des définitions de règles XML.
- Module
- Tous les modules requièrent un contexte à initialiser avec la méthode
#getInstance(), y compris :ActivityEmbeddingController#getInstance(Context)SplitController#getInstance(Context)RuleController#getInstance(Context)
- Ajout de la classe
EmbeddingAspectRatiopour définir des constantes de comportement de type énumération liées au format d'affichage. - Ajout de la classe
SplitAttributespour définir la mise en page du fractionnement. - Ajout des fonctions de calcul
SplitAttributesàSplitControllerafin de personnaliser les dispositions divisées :setSplitAttributesCalculator(Function)clearSplitAttributesCalculator()isSplitAttributesCalculatorSupported()pour vérifier si les APISplitAttributesCalculatorsont prises en charge sur l'appareil
- Ajout du champ
EmbeddingRule#tag. - Mise à jour de l'API dans
SplitRule:- Ajout de
defaultSplitAttributes: définit la mise en page du fractionnement par défaut, remplacesplitRatioetlayoutDirection. - Ajout du transfert des propriétés XML
splitRatioetsplitLayoutDirectionversdefaultSplitAttributes. - Modification des définitions des dimensions minimales pour utiliser les pixels indépendants de la densité (dp) au lieu des pixels.
- Ajout de
minHeightDpdont la valeur par défaut est 600dp. - Remplacement de
minWidthparminWidthDp, dont la valeur par défaut est 600dp. - Remplacement de
minSmallestWidthparminSmallestWidthDp, dont la valeur par défaut est 600dp. - Ajout de
maxAspectRatioInHorizontaldont la valeur par défaut estALWAYS_ALLOW. - Ajout de
maxAspectRatioInPortraitdont la valeur par défaut est 1.4. - Définition de la classe imbriquée
FinishBehaviorafin de remplacer les constantes du comportement final. - Application des changements de propriétés à la classe imbriquée "Builder" de
SplitPairRuleetSplitPlaceholderRule.
- Ajout de
- Remplacement de
SplitInfo#getSplitRatio()parSplitInfo#getSplitAttributes()pour fournir des informations supplémentaires sur le fractionnement.
WindowLayout
- Ajout d'une prise en charge des contextes expérimentaux d'interface utilisateur sans activité à
WindowInfoTracker. - Ajout des contextes expérimentaux d'interface utilisateur sans activité à
WindowMetricsCalculator.
Procédure de migration
- Pour permettre à l'intégration d'activités d'afficher des activités fractionnées, les applications doivent ajouter la propriété
PROPERTY_ACTIVITY_EMBEDDING_SPLITS_ENABLEDà la balise<application>du fichier manifeste :xml <property android:name="android.window.PROPERTY_ACTIVITY_EMBEDDING_SPLITS_ENABLED" android:value="true" />Cela permet au système d'optimiser les comportements de fractionnement en amont pour une application. SplitInforatio- Vérifier si le fractionnement actuel est empilé :
kotlin SplitInfo.splitAttributes.splitType is SplitAttributes.SplitType.ExpandContainersSplitType - Vérifier le ratio actuel :
kotlin if (SplitInfo.splitAttributes.splitType is SplitAttributes.SplitType.RatioSplitType) { val ratio = splitInfo.splitAttributes.splitType.ratio } else { // Ratio is meaningless for other types. }
- Vérifier si le fractionnement actuel est empilé :
- Migrations SplitController :
SplitController.getInstance()est devenuSplitController.getInstance(Context).SplitController.initialize(Context, @ResId int)est devenuRuleController.getInstance(Context).setRules(RuleController.parse(Context, @ResId int)).SplitController.getInstance().isActivityEmbedded(Activity)est devenuActivityEmbeddingController.getInstance(Context).isActivityEmbedded(Activity).SplitController.getInstance().registerRule(rule)est devenuRuleController.getInstance(Context).addRule(rule).SplitController.getInstance().unregisterRule(rule)est devenuRuleController.getInstance(Context).removeRule(rule).SplitController.getInstance().clearRegisteredRules()est devenuRuleController.getInstance(Context).clearRules().SplitController.getInstance().getSplitRules()est devenuRuleController.getInstance(Context).getRules().
- Migrations des propriétés
SplitRule:minWidthetminSmallestWidthutilisent désormais des unités dp au lieu des pixels. Les applications peuvent utiliser l'appel suivant :kotlin TypedValue.applyDimension( COMPLEX_UNIT_DIP, minWidthInPixels, resources.displayMetrics )ou simplement diviserminWithen pixels pardisplayMetrics#density.
- Les constantes de comportement final doivent être migrées vers les constantes de classe de type énumération
FinishBehavior:FINISH_NEVERest devenuFinishBehavior.NEVER.FINISH_ALWAYSest devenuFinishBehavior.ALWAYS.FINISH_ADJACENTest devenuFinishBehavior.ADJACENT.
- L'orientation de la mise en page doit être migrée vers
SplitAttributes.LayoutDirection:ltrest devenuSplitAttributes.LayoutDirection.LEFT_TO_RIGHT.rtlest devenuSplitAttributes.LayoutDirection.RIGHT_TO_LEFT.localeest devenuSplitAttributes.LayoutDirection.LOCALE.splitRatiodoit être migré versSplitAttributes.SplitType.ratio(splitRatio).
- Migrations
SplitPairRule.Builder:SplitPairRule.Builder(filters, minWidth, minSmallestWidth)est devenukotlin SplitPairRule.Builder(filters) .setMinWidthDp(minWidthInDp) // Optional if minWidthInDp is 600. .setMinSmallestWidthDp(minSmallestWidthDp) // Optional if minSmallestWidthInDp is 600..setLayoutDirection(layoutDirection)etsetSplitRatio(ratio)remplacés parkotlin setDefaultSplitAttributes( SplitAttributes.Builder() .setLayoutDirection(layoutDirection) .setSplitType(SplitAttributes.SplitType.ratio(ratio)) .build() ).setFinishPrimaryWithSecondaryetsetFinishSecondaryWithPrimaryprennent les constantes de type énumération deFinishBehavior. Pour plus d'informations, reportez-vous aux "Migrations SplitRule".- Utiliser
setMaxAspectRatioInPortrait(EmbeddingAspectRatio.ALWAYS_ALLOW)pour afficher le fractionnement sur les appareils au format Portrait.
- Migrations
SplitPlaceholder.Builder:- Ne possèdent que des paramètres
filtersetplaceholderIntent. Les autres propriétés sont transférées aux setters. Pour plus d'informations, reportez-vous aux "Migrations SplitPairRule.Builder". setFinishPrimaryWithPlaceholderprend les constantes de type énumération deFinishBehavior. Pour plus d'informations, reportez-vous aux "Migrations SplitRule".setLayoutDirection(layoutDirection)etsetSplitRatio(ratio)remplacés parkotlin setDefaultSplitAttributes( SplitAttributes.Builder() .setLayoutDirection(layoutDirection) .setSplitType(SplitAttributes.SplitType.ratio(ratio)) .build() ).- Utiliser
setMaxAspectRatioInPortrait(EmbeddingAspectRatio.ALWAYS_ALLOW)pour afficher le fractionnement sur les appareils au format Portrait.
- Ne possèdent que des paramètres
Version 1.1.0-rc01
10 mai 2023
Publication d'androidx.window:window-*:1.1.0-rc01. Liste des commits de la version 1.1.0-rc01
Nouvelles fonctionnalités
ActivityEmbeddingest considéré comme une API stable.- Résolution de plusieurs bugs.
Version 1.1.0-beta02
5 avril 2023
Publication d'androidx.window:window-*:1.1.0-beta02. Liste des commits de la version 1.1.0-beta02
Nouvelles fonctionnalités
- Corrections internes et nettoyage.
Version 1.1.0-beta01
22 mars 2023
Publication d'androidx.window:window-*:1.1.0-beta01. Liste des commits de la version 1.1.0-beta01
Intégration d'activités
- Ajout de
PROPERTY_ACTIVITY_EMBEDDING_SPLITS_ENABLEDen tant que propriété booléenne de la balise<application>dans le fichier manifeste d'application. isSplitSupportedest obsolète et remplacé parsplitSupportStatuspour fournir des informations plus détaillées sur la raison pour laquelle la fonctionnalité de fractionnement est indisponible.- Ajout de la classe imbriquée
SplitController.SplitSupportStatusafin de fournir des constantes d'état pour la propriétésplitSupportStatus. - Refactorisation de
SplitControllerpour plusieurs modules :- Module
ActivityEmbeddingControllerpour les API associéesActivityouActivityStack. - Déplacement de
isActivityEmbeddeddeSplitControllerversActivityEmbeddingController. - Module
RuleControllerpour les opérations associéesEmbeddingRule. - Suppression des API
SplitController:clearRegisteredRules()getSplitRules()initialize()registerRule()unregisterRule()
- Ajout des API
RuleController:addRule(): ajoute une règle ou met à jour la règle qui possède la même balise.removeRule(): supprime une règle de la collection des règles enregistrées.setRules(): établit un ensemble de règles.clearRules(): supprime toutes les règles enregistrées.- `parseRules() : analyse les règles à partir des définitions de règles XML.
- Module
- Tous les modules requièrent un contexte à initialiser avec la méthode
#getInstance(), y compris :ActivityEmbeddingController#getInstance(Context)SplitController#getInstance(Context)RuleController#getInstance(Context)
- Ajout de la classe
EmbeddingAspectRatiopour définir des constantes de comportement de type énumération liées au format d'affichage. - Ajout de la classe
SplitAttributespour définir la mise en page du fractionnement. - Ajout des fonctions de calcul
SplitAttributesàSplitControllerafin de personnaliser les dispositions divisées :setSplitAttributesCalculator(Function)clearSplitAttributesCalculator()isSplitAttributesCalculatorSupported()pour vérifier si les API SplitAttributesCalculator sont prises en charge sur l'appareil
- Ajout du champ
EmbeddingRule#tag. - Mise à jour de l'API dans
SplitRule:- Ajout de
defaultSplitAttributes: définit la mise en page du fractionnement par défaut, remplacesplitRatioetlayoutDirection. - Ajout du transfert des propriétés XML
splitRatioetsplitLayoutDirectionversdefaultSplitAttributes. - Modification des définitions des dimensions minimales pour utiliser les pixels indépendants de la densité (dp) au lieu des pixels.
- Ajout de
minHeightDpdont la valeur par défaut est 600dp. - Remplacement de
minWidthparminWidthDp, dont la valeur par défaut est 600dp. - Remplacement de
minSmallestWidthparminSmallestWidthDp, dont la valeur par défaut est 600dp. - Ajout de
maxAspectRatioInHorizontaldont la valeur par défaut estALWAYS_ALLOW. - Ajout de
maxAspectRatioInPortraitdont la valeur par défaut est1.4. - Définition de la classe imbriquée
FinishBehaviorafin de remplacer les constantes du comportement final. - Application des changements de propriétés à la classe imbriquée
BuilderdeSplitPairRuleetSplitPlaceholderRule.
- Ajout de
- Remplacement de
SplitInfo#getSplitRatio()parSplitInfo#getSplitAttributes()pour fournir des informations supplémentaires sur le fractionnement.
WindowLayout
- Ajout d'une prise en charge des contextes d'interface utilisateur sans activité à
WindowInfoTracker. - Ajout des contextes d'interface utilisateur sans activité à
WindowMetricsCalculator.
Procédure de migration
- Pour permettre à l'intégration d'activités d'afficher des activités fractionnées, les applications doivent ajouter la propriété
PROPERTY_ACTIVITY_EMBEDDING_SPLITS_ENABLEDà la balise<application>du fichier manifeste :xml <property android:name="android.window.PROPERTY_ACTIVITY_EMBEDDING_SPLITS_ENABLED" android:value="true" />Cela permet au système d'optimiser les comportements de fractionnement en amont pour une application. SplitInforatio- Vérifier si le fractionnement actuel est empilé :
kotlin SplitInfo.splitAttributes.splitType is SplitAttributes.SplitType.ExpandContainersSplitType - Vérifier le ratio actuel :
kotlin if (SplitInfo.splitAttributes.splitType is SplitAttributes.SplitType.RatioSplitType) { val ratio = splitInfo.splitAttributes.splitType.ratio } else { // Ratio is meaningless for other types. }
- Vérifier si le fractionnement actuel est empilé :
- Migrations
SplitController:SplitController.getInstance()est devenuSplitController.getInstance(Context).SplitController.initialize(Context, @ResId int)est devenuRuleController.getInstance(Context).setRules(RuleController.parse(Context, @ResId int)).SplitController.getInstance().isActivityEmbedded(Activity)est devenuActivityEmbeddingController.getInstance(Context).isActivityEmbedded(Activity).SplitController.getInstance().registerRule(rule)est devenuRuleController.getInstance(Context).addRule(rule).SplitController.getInstance().unregisterRule(rule)est devenuRuleController.getInstance(Context).removeRule(rule).SplitController.getInstance().clearRegisteredRules()est devenuRuleController.getInstance(Context).clearRules().SplitController.getInstance().getSplitRules()est devenuRuleController.getInstance(Context).getRules().
- Migrations des propriétés
SplitRule:minWidthetminSmallestWidthutilisent désormais des unités dp au lieu des pixels. Les applications peuvent utiliser l'appel suivant :kotlin TypedValue.applyDimension( COMPLEX_UNIT_DIP, minWidthInPixels, resources.displayMetrics )ou simplement diviserminWithen pixels pardisplayMetrics#density.
- Les constantes de comportement final doivent être migrées vers les constantes de classe de type énumération
FinishBehavior:FINISH_NEVERest devenuFinishBehavior.NEVER.FINISH_ALWAYSest devenuFinishBehavior.ALWAYS.FINISH_ADJACENTest devenuFinishBehavior.ADJACENT.
- L'orientation de la mise en page doit être migrée vers
SplitAttributes.LayoutDirection:ltrest devenuSplitAttributes.LayoutDirection.LEFT_TO_RIGHT.rtlest devenuSplitAttributes.LayoutDirection.RIGHT_TO_LEFT.localeest devenuSplitAttributes.LayoutDirection.LOCALE.splitRatiodoit être migré versSplitAttributes.SplitType.ratio(splitRatio).
- Migrations
SplitPairRule.Builder:SplitPairRule.Builder(filters, minWidth, minSmallestWidth)est devenukotlin SplitPairRule.Builder(filters) .setMinWidthDp(minWidthInDp) // Optional if minWidthInDp is 600. .setMinSmallestWidthDp(minSmallestWidthDp) // Optional if minSmallestWidthInDp is 600..setLayoutDirection(layoutDirection)etsetSplitRatio(ratio)remplacés parkotlin setDefaultSplitAttributes( SplitAttributes.Builder() .setLayoutDirection(layoutDirection) .setSplitType(SplitAttributes.SplitType.ratio(ratio)) .build() ).setFinishPrimaryWithSecondaryetsetFinishSecondaryWithPrimaryprennent les constantes de type énumération deFinishBehavior. Pour plus d'informations, reportez-vous aux "Migrations SplitRule".- Utiliser
setMaxAspectRatioInPortrait(EmbeddingAspectRatio.ALWAYS_ALLOW)pour afficher le fractionnement sur les appareils au format Portrait.
- Migrations
SplitPlaceholder.Builder:- Ne possèdent que des paramètres
filtersetplaceholderIntent. Les autres propriétés sont transférées aux setters. Pour plus d'informations, reportez-vous aux "Migrations SplitPairRule.Builder". setFinishPrimaryWithPlaceholderprend les constantes de type énumération deFinishBehavior. Pour plus d'informations, reportez-vous aux "Migrations SplitRule".setLayoutDirection(layoutDirection)etsetSplitRatio(ratio)remplacés parkotlin setDefaultSplitAttributes( SplitAttributes.Builder() .setLayoutDirection(layoutDirection) .setSplitType(SplitAttributes.SplitType.ratio(ratio)) .build() ).- Utiliser
setMaxAspectRatioInPortrait(EmbeddingAspectRatio.ALWAYS_ALLOW)pour afficher le fractionnement sur les appareils au format Portrait.
- Ne possèdent que des paramètres
Version 1.1.0-alpha06
22 février 2023
Publication d'androidx.window:window-*:1.1.0-alpha06. Liste des commits de la version 1.1.0-alpha06
Nouvelles fonctionnalités
- Exposition de la version expérimentale permettant l'obtention de
WindowLayoutInfoà partir d'un contexte d'interface utilisateur.
Modifications apportées à l'API
- Ajout de
splitSupportStatuspour indiquer si l'intégration d'activités est disponible. (I10024) - Désignation de l'API de contexte d'interface utilisateur
WindowLayoutInfocomme version expérimentale. (I58ee0) - Ajout de
WindowAreaControlleret d'API pour pouvoir activer le modeRearDisplayet déplacer la fenêtre actuelle vers l'écran aligné avec l'appareil photo arrière. (Iffcbf) - Mise à jour la couleur d'arrière-plan par défaut. (I1ac1b)
- Ajout des paramètres
SplitAttributes. (I18bdd) - Ajout d'API pour
SplitRule,SplitAttributesetSplitAttributesCalculator. (I92d23) - Amélioration des API liées à
maxAspectRatio:- Remplacement de
alwaysAllow()etalwaysDisallow()parALWAYS_ALLOWetALWAYS_DISALLOW. - Mise à jour de la documentation de l'API de @see avec la documentation autonome. (I3057b)
- Remplacement de
- Suppression des constructeurs suivants des API publiques, qui ne sont normalement pas appelés par les applications.
- Constructeur
SplitInfo - Constructeur
ActivityStack(Ide534)
- Constructeur
SplitRuleutilise désormaismaxAspectRatioInPortrait/Landscape. Ne permet de diviser les activités que lorsque le format des limites parent est inférieur ou égal aumaxAspectRatiodemandé. (Ia5990)- Modification de
RuleController#parseRulespour qu'il soit statique. (I785df) - Amélioration des API liées à ActivityEmbedding.
- Alignement du nom des API – Utilisation du terme "add" ou "remove" pour plusieurs instances :
registerRuleest devenuaddRule.unregisterRuleest devenuremoveRule.- Remplacement de
getSplitRulespargetRules, carActivityRulen'est pas une règle de fractionnement. - Ajout de
RuleController#setRulespour définir plusieurs règles. - Extraction des API liées aux règles de
SplitControllervers singletonRuleController. API concernées : addRuleremoveRulegetRulessetRulesclearRulesparseRules- Extraction de
#isActivityEmbeddeddeSplitControllervers singletonActivityEmbeddingController. API concernées : isActivityEmbedded- Suppression de
SplitController#initialize. Pour définir des règles à partir d'un fichier XML, veuillez utiliserRuleController#parseRuleset#setRules. Avant ce changement :SplitController.initialize(context, R.xml.static_rules)Après ce changement :val ruleController = RuleController.getInstance(context) val rules = ruleController.parseRules(R.xml.static_rules) ruleController.setRules(rules) - Nous ne faisons plus la distinction entre les règles statiques et les règles d'exécution. Cela dit, appeler
#clearRulesefface toutes les règles, qu'elles soient enregistrées avec des définitions de règles XML statiques ou au moment de l'exécution. Pour récupérer l'ancien comportement deSplitController#clearRegisteredRules, veuillez appelerRuleController#parseRulesavec l'ID de ressource XML, puisRuleController#setRulespour rétablir les règles. Avant ce changement :SplitController.getInstance(context).clearRegisteredRules()Après ce changement :val ruleController = RuleController.getInstance(context) val rules = ruleController.parseRules(R.xml.static_rules) ruleController.setRules(rules)(Ib3967)
- Amélioration des API SplitRule :
- Utilisation des dimensions minimales en DP plutôt qu'en pixels pour
SplitRule. - Refactorisation du compilateur
SplitRulepour qu'il puisse accepter les dimensions minimales comme alternative. (I95f17)
- Utilisation des dimensions minimales en DP plutôt qu'en pixels pour
- Transmission d'un contexte pour initialiser
SplitController. (I42549) - Remplacement du nom
SplitRule#layoutDirpar#layoutDirectionet du nomSplitRule Builder#setLayoutDirparBuilder#setLayoutDirection. (I3f6d1)
Version 1.1.0-alpha04
9 novembre 2022
Publication d'androidx.window:window-*:1.1.0-alpha04. Liste des commits de la version 1.1.0-alpha04
Nouvelles fonctionnalités
- Exposition d'une méthode pour déterminer si un élément
ActivityStackest vide pourActivityEmbedding. - Suppression des balises d'API expérimentales dans les API
ActivityEmbedding. - Masquage du constructeur
ActivityRule, car il est préférable d'utiliserBuilder. - Ajout d'une méthode expérimentale pour obtenir l'élément
WindowInsetssurWindowMetrics. - Mise à jour de
SplitPlaceholderFinishBehaviorpour empêcher l'arrêt de l'espace réservé. L'arrêt de l'espace réservé peut entraîner un comportement déroutant.
Modifications apportées à l'API
- La valeur
isEmptya été rendue publique pour remplacer "fun"isEmpty. - Nom des activités du paramètre
ActivityStackremplacé paractivitiesInProcess. (Ia5055) - Suppression d'
ActivityFilter#matchesClassNameet d'ActivityFilter#matchesClassNameOrWildCardpour éviter toute confusion. - Ajout d'
ActivityFilter#componentNameet d'ActivityFilter#intentActionpour permettre à l'appelant de distinguer les différents filtres. (I41f22) - Suppression des API
@Deprecatedde l'API expérimentale. (I216b3) - Suppression de
@ExperimentalWindowApipour les API d'intégration d'activités. (I69ebe) - Masquage du constructeur
ActivityRule. Utilisez plutôt Builder. (If4eb6) - Ajout d'API permettant de vérifier si une activité fait partie d'
ActivityFilter. (Ia43cf) - Mise à jour des fichiers d'API pour refléter les modifications apportées aux classes
WindowMetricsetWindowMetricsCalculatorCompat. (I667fe) - Mise à jour du Javadoc de la propriété
ActivityEmbeddinget du nom de la classe. (Ia1386) - Ajout des noms de balises de propriété
ActivityEmbeddingà utiliser dans le fichier AndroidManifest.xml. (Id1ad4) - Ajout des API
SplitPlaceholderFinishBehavioretSplitPlaceholderRule.finishPrimaryWithPlaceholderpour remplacer l'APISplitPlaceholderRule.finishPrimaryWithSecondaryexistante qui définit la date de fin des activités d'espace réservé et le comportement des activités associées dans les rapports d'intégration d'activités. (I64647)
Corrections de bugs
- Ajout de
WindowAreaControlleret d'API pour pouvoir activer le modeRearDisplayet déplacer la fenêtre actuelle vers l'écran aligné avec l'appareil photo arrière. (I388ab)
Version 1.1.0-alpha03
27 juillet 2022
Publication d'androidx.window:window-*:1.1.0-alpha03. Liste des commits de la version 1.1.0-alpha03
Nouvelles fonctionnalités
- Mise à jour des valeurs par défaut des règles d'intégration.
Modifications apportées à l'API
- Mise à jour des valeurs par défaut pour les propriétés des règles d'intégration (Ic4d35).
Version 1.1.0-alpha02
11 mai 2022
Publication d'androidx.window:window-*:1.1.0-alpha02. Liste des commits de la version 1.1.0-alpha02
Nouvelles fonctionnalités
- Publication de bibliothèques d'adaptation pour prendre en charge Java et RxJava.
Version 1.1.0-alpha01
11 mai 2022
Publication d'androidx.window:window-*:1.1.0-alpha01. Liste des commits de la version 1.1.0-alpha01
Nouvelles fonctionnalités
- Publication d'adaptateurs pour prendre en charge Java et RxJava.
Version 1.1.0-alpha01
20 avril 2022
Publication d'androidx.window:window:1.1.0-alpha01. Liste des commits de la version 1.1.0-alpha01
Nouvelles fonctionnalités
- Correction d'un bug qui provoquait l'abandon des fonctionnalités de pliage lors du passage en arrière-plan de l'application.
- Développement de l'API expérimentale ActivityEmbedding.
Modifications apportées à l'API
- API publique pour vérifier l'intégration d'une activité (I39eb7).
Corrections de bugs
- Ajout d'API qui personnalisent le comportement de fin des conteneurs dans les fractionnements d'activités (I1a1e4).
- Ajout d'une option de configuration pour les règles de fractionnement d'activités (Iec6af).
Version 1.0
Version 1.0.0
26 janvier 2022
Publication d'androidx.window:window-*:1.0.0. Liste des commits de la version 1.0.0
Principales fonctionnalités de la version 1.0.0
- Compatibilité avec les téléphones pliables grâce à
WindowInfoTrackeretFoldingFeature. Simplification du calcul de la valeur actuelle de WindowMetrics grâce àWindowMetricsCalculator.
Version 1.0.0-rc01
15 décembre 2021
Publication d'androidx.window:window-*:1.0.0-rc01. Liste des commits de la version 1.0.0-rc01
Nouvelles fonctionnalités
- Compatibilité avec les téléphones pliables grâce à
WindowInfoTracker. - Ajout de méthodes pour calculer la valeur actuelle et maximale de
WindowMetrics. - Ajout d'API de test compatibles.
Version 1.0.0-beta04
17 novembre 2021
Publication d'androidx.window:window-*:1.0.0-beta04. Liste des commits de la version 1.0.0-beta04
Nouvelles fonctionnalités
- Remplacement du nom WindowInfoRepository par WindowInfoTracker.
- Possibilité de transformer une activité en dépendance de méthode explicite pour WindowInfoTracker.
- Ajout d'une règle TestRule simple pour WindowMetricsCalculator pour aider les développeurs utilisant Robolectric.
Modifications apportées à l'API
- Extraction des extensions (I25a5f).
- Ajout d'isEmpty dans ActivityStack (I5a4e6).
- Remplacement du nom WindowInfoRepository par WindowInfoTracker.
- Mise à jour des dépendances java/rxjava/testing pour assurer la correspondance (I0da63).
- Ajout d'une règle de test pour un WindowMetricsCalculator simple (Ibacdb).
Version 1.0.0-beta03
27 octobre 2021
Publication d'androidx.window:window-*:1.0.0-beta03. Liste des commits de la version 1.0.0-beta03
Nouvelles fonctionnalités
- Ajout d'API expérimentales d'intégration d'activités. Cette version de mise en page initiale permet d'afficher deux activités côte à côte.
Modifications apportées à l'API
- Suppression de l'API currentWindowMetrics pour son manque de précision. Veuillez utiliser WindowMetricsCalculator à la place (Icda5f).
- Mise à jour de l'API Extensions (Ica92b).
- Ajout d'une interface pour une nouvelle fonctionnalité permettant d'intégrer des activités et de les afficher côte à côte dans la fenêtre des tâches parentes (I5711d).
- Masquage des constructeurs de WindowMetrics et de WindowLayoutInfo. Veuillez utiliser les API de test à la place (I5a1b5).
- Ajout d'une API pour créer des objets WindowLayoutInfo fictifs (I4a2fd).
Corrections de bugs
- Correction d'une fuite de mémoire (I3fc79, b/202989046).
Version 1.0.0-beta02
1er septembre 2021
Publication d'androidx.window:window-*:1.0.0-beta02. Liste des commits de la version 1.0.0-beta02.
Nouvelles fonctionnalités
- Ajout d'une annotation expérimentale permettant d'annoter les API expérimentales (I9f1b6).
- Ajout d'une méthode de test pour créer un élément FoldingFeature de test compatible avec Rect. Elle permet d'effectuer plus facilement des tests lorsque vous utilisez Robolectric, contrairement à un objet Activity réel (Id1cca).
Version 1.0.0-beta01
18 août 2021
Publication d'androidx.window:window-*:1.0.0-beta01. Liste des commits de la version 1.0.0-beta01
Nouvelles fonctionnalités
- Suppression des anciennes constantes et transformation de
FoldingFeatureen interface.
Modifications apportées à l'API
- Suppression des anciennes constantes et transformation de FoldFeature en interface (I9a2d5).
Corrections de bugs
- Les bibliothèques qui dépendent de la bibliothèque
Test Coreont été mises à niveau vers la version1.4.0et fonctionnent désormais avec la version S de la plate-forme Android (I88b72, b/189353863).
Version 1.0.0-alpha10
4 août 2021
Publication d'androidx.window:window-*:1.0.0-alpha10. Liste des commits de la version 1.0.0-alpha10
Nouvelles fonctionnalités
- Remplacement du nom WindowInfoRepo par WindowInfoRepository et ajustement des classes et des fichiers correspondants.
- Conversion des métriques de fenêtre actuelles en flux dans WindowInfoRepository, car la valeur change au fil du temps.
- Remplacement du nom WindowInfoRepoJavaAdapter par WindowInfoRepoCallbackAdapter.
- Ajout d'une méthode d'assistance pour créer des objets FoldingFeature de test.
- Modification des packages pour regrouper les classes en fonction de la fonctionnalité qu'elles prennent en charge.
Modifications apportées à l'API
- Remplacement du nom ActivityExt par ActivityExtensions, et de Repo par Repository (I61a16).
- Mise à jour les packages pour les classes (I23ae2).
- Suppression de WindowMetrics de WindowInfoRepo (I24663).
- Suppression de WindowManager et utilisation de WindowInfoRepo
- .
- WindowBackend est désormais interne (I06d9a).
- Conversion des métriques de fenêtre en flux.
- Remplacement du nom de l'adaptateur Java par WindowInfoRepoCallbackAdapter.
- Suppression de callbackFlow pour ne plus utiliser d'API expérimentales (Ia4d15).
- Ajout d'une méthode d'assistance pour créer des fonctionnalités d'affichage de test.
- Remplacement d'occlusionMode par occlusionType (If4cff).
Corrections de bugs
- Correction de l'erreur liée à ProGuard lors de la suppression de la bibliothèque principale.
- Correction d'une erreur où WindowLayoutInfo n'était pas distribué aux abonnés supplémentaires.
- Correction d'une erreur qui empêchait les modifications de configuration de déclencher les mises à jour de la fonctionnalité de pliage.
Version 1.0.0-alpha09
30 juin 2021
Publication d'androidx.window:window-*:1.0.0-alpha09. Liste des commits de la version 1.0.0-alpha09
Nouvelles fonctionnalités
- Remplacement des constantes entières par des énumérations illimitées.
- Ajout d'un utilitaire de test pour créer des caractéristiques de pliage de test.
Modifications apportées à l'API
- Ajout d'une méthode d'assistance pour créer des fonctionnalités d'affichage de test. (I3cf54)
- Remplacement d'
occlusionModeparocclusionType.
- Remplacement d'
Corrections de bugs
- Émission d'une valeur initiale lors de l'ajout de plusieurs utilisateurs de flux de données.
Version 1.0.0-alpha08
16 juin 2021
Publication d'androidx.window:window-*:1.0.0-alpha08. Liste des commits de la version 1.0.0-alpha08
Nouvelles fonctionnalités
- Publication d'un artefact de test pour faciliter les tests lors de l'utilisation de WindowInfoRepository. Utilisez WindowInfoRepository pour obtenir des informations sur DisplayFeatures et WindowMetrics (I57f66, Ida620).
Version 1.0.0-alpha07
2 juin 2021
Publication d'androidx.window:window-*:1.0.0-alpha07. Liste des commits de la version 1.0.0-alpha07
Nouvelles fonctionnalités
- Migration de la bibliothèque de fenêtres principale vers Kotlin. À l'avenir, elle utilisera des coroutines et des fonctions de suspension pour exposer les données asynchrones.
- Ajout de WindowInfoRepo comme principal point d'interaction pour obtenir WindowMetrics et le flux de WindowLayoutInfo.
- Ajout de l'artefact
window-javapour exposer des API compatibles avec Java afin d'enregistrer et d'annuler l'enregistrement des rappels. - Ajout des artefacts
window-rxjava2etwindow-rxjava3pour exposer des API adaptées à RxJava.
Modifications apportées à l'API
- Ajout de
WindowServicespour fournir des dépendances de manière uniforme.- Ajout d'une API basée sur une coroutine pour utiliser les informations de mise en page des fenêtres (Iab70f).
- Migration de la bibliothèque principale du gestionnaire de fenêtres vers Kotlin (Icca34).
Corrections de bugs
- Ajout d'une classe de données pour représenter les limites des fonctionnalités (I6dcd1).
Version 1.0.0-alpha06
5 mai 2021
Publication d'androidx.window:window:1.0.0-alpha06. Liste des commits de la version 1.0.0-alpha06
Nouvelles fonctionnalités
- Début de la migration vers Kotlin, qui sera terminée dans la prochaine version.
- Suppression de DeviceState de l'API publique. Veuillez utiliser FoldingFeature à la place.
- Suppression de
STATE_FLIPPEDdes états FoldingFeature, car il n'est compatible avec aucun cas d'utilisation pour le moment. - Suppression d'autres API obsolètes.
Modifications apportées à l'API
- Ajout de Kotlin en tant que dépendance.
- Migration de la bibliothèque principale vers Kotlin (Idd995).
- Suppression du compilateur
DisplayFeature(I61fa4). - Suppression de
DeviceStatede l'API publique. UtilisezFoldingFeatureà la place (Id6079). - Suppression du rappel d'état de l'appareil des extensions (I5ea83).
- Suppression de
STATE_FLIPPEDde FoldingFeature (I9c4e1). - Abandon des méthodes d'enregistrement obsolètes (Ib381b).
Version 1.0.0-alpha05
24 mars 2021
Publication d'androidx.window:window:1.0.0-alpha05. Liste des commits de la version 1.0.0-alpha05.
Nouvelles fonctionnalités
Ajout de méthodes pratiques à FoldingFeature afin que les applications puissent déterminer si la fonctionnalité s'ouvre ou se ferme, ainsi que l'orientation de la charnière. Le type de charnière a également été masqué.
Suppression des méthodes de lecture synchrones de WindowManager. Les méthodes de lecture synchrones sont sujettes aux erreurs, car il existe une condition de concurrence implicite. Enregistrez des écouteurs et des rappels pour recevoir des mises à jour sur WindowLayoutInfo.
Modifications apportées à l'API
- Ajout de méthodes pratiques pour utiliser FoldingFeatures (Ie733f).
- Suppression des méthodes de lecture synchrones de WindowManager (I96fd4).
Version 1.0.0-alpha04
10 mars 2021
Publication d'androidx.window:window:1.0.0-alpha04. Liste des commits de la version 1.0.0-alpha04
Nouvelles fonctionnalités
- Correction d'un bug qui empêche l'émission de WindowLayoutInfo en l'absence d'une intégration de l'OEM. Désormais, une classe WindowLayoutInfo vide est émise.
- Correction d'un bug où l'état de la charnière n'était pas correctement mis à jour s'il changeait lorsque l'application était en arrière-plan. L'état doit désormais être cohérent.
- Mise à jour de nos fichiers ProGuard pour ignorer les avertissements des dépendances d'exécution.
Corrections de bugs
- Émission d'une valeur vide lorsque la bibliothèque de l'OEM est manquante (Ide935).
Version 1.0.0-alpha03
18 février 2021
Publication d'androidx.window:window:1.0.0-alpha03. Liste des commits de la version 1.0.0-alpha03
Nouvelles fonctionnalités
- Émission d'une valeur vide pour WindowLayoutInfo lorsque l'intégration de l'OEM est vide. Cela devrait faciliter l'utilisation de la bibliothèque sur d'autres appareils. Étant donné que les API sont asynchrones, il est toujours recommandé d'utiliser du code défensif et une valeur par défaut après un certain délai d'inactivité dans les applications. Nous n'offrons aucune garantie concernant les intégrations de l'OEM. La valeur initiale peut également être retardée.
Corrections de bugs
- Émission d'une valeur vide lorsque la bibliothèque de l'OEM est manquante (Ide935).
Version 1.0.0-alpha02
27 janvier 2021
Publication d'androidx.window:window:1.0.0-alpha02. Liste des commits de la version 1.0.0-alpha02
Nouvelles fonctionnalités
Abandon de certaines API pour simplifier l'API et provoquer moins d'erreurs. La suppression des opérations de lecture synchrones de WindowManager et de DeviceState en sont deux exemples notables. Les opérations de lecture synchrones peuvent entraîner des conditions de concurrence et présenter une UI incorrecte.
Remplacement de DisplayFeature par une interface que d'autres fonctionnalités implémenteront par la suite. La première fonctionnalité est FoldingFeature, qui représente désormais le pliage d'un écran ou d'une charnière. Elle contient également l'état de la charnière remplaçant DeviceState.
Ajout de WindowMetrics à Android 11 afin de permettre aux développeurs d'interroger facilement des métriques sur une fenêtre, par exemple sa position et sa taille à l'écran et les encarts système. Rétroportage de l'API pour permettre aux développeurs d'exploiter WindowMetrics et de continuer la prise en charge des anciennes versions d'Android. Vous pouvez obtenir des WindowMetrics via les API
WindowManager#getCurrentWindowMetrics()et WindowManager#getMaximumWindowMetrics().
Modifications apportées à l'API
- Abandon des API qui seront supprimées dans la prochaine version alpha (Ib7cc4).
- Mise à jour d'
ExtensionInterfacepour accepter les références d'activité explicites (I07ded). - Introduction de l'API WindowMetrics (I3ccee).
- Suppression des méthodes de lecture synchrones de WindowManager (I69983).
- Protection du package ExtensionWindowBackend (Ied208).
Corrections de bugs
- Mise à jour des API
ExtensionInterfacepour la prise en charge des contextes visuels (I8e827).
Contribution externe
- Fusion de DeviceState et de WindowLayoutInfo pour faciliter l'accès aux données (Id34f4).
Version 1.0.0-alpha01
27 février 2020
Publication d'androidx.window:window:1.0.0-alpha01 et d'androidx.window:window-extensions:1.0.0-alpha01. Liste des commits de la version 1.0.0-alpha01
Il s'agit de la première version de la bibliothèque Window Manager.
Nouvelles fonctionnalités
DisplayFeature: cette nouvelle API identifie les perturbations sur les surfaces planes continues telles que les charnières ou les plis.DeviceState: cette nouvelle API indique la position actuelle du téléphone à partir d'une liste de positions définies (par exemple,CLOSED,OPENED,HALF_OPENED, etc.).