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 |
---|---|---|---|---|
4 septembre 2024 | 1.3.0 | - | - | 1.4.0-alpha02 |
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.3.0" // For Java-friendly APIs to register and unregister callbacks implementation "androidx.window:window-java:1.3.0" // For RxJava2 integration implementation "androidx.window:window-rxjava2:1.3.0" // For RxJava3 integration implementation "androidx.window:window-rxjava3:1.3.0" // For testing implementation "androidx.window:window-testing:1.3.0" }
Kotlin
dependencies { implementation("androidx.window:window:1.3.0") // For Java-friendly APIs to register and unregister callbacks implementation("androidx.window:window-java:1.3.0") // For RxJava2 integration implementation("androidx.window:window-rxjava2:1.3.0") // For RxJava3 integration implementation("androidx.window:window-rxjava3:1.3.0") // For testing implementation("androidx.window:window-testing:1.3.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.4
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 de
WindowSizeClass
afin que les développeurs puissent utiliser leur propre constructeur. - Ajoutez des méthodes utilitaires
isAtLeast
afin que les développeurs puissent traiter une plage de valeursWindowSizeClass
. - Ajoutez une fonction d'extension à
Set<WindowSizeClass>
pour calculer la meilleure correspondance à partir de l'ensemble. - Ajoutez des constantes pour les points d'arrêt recommandés par Android.
- Ajoutez l'ensemble de points d'arrêt correspondant aux points d'arrêt recommandés par Android.
Modifications apportées à l'API
- Mettez à jour les noms des méthodes de délimitation pour
WindowSizeClass
. (If89a6). - Mettez à jour l'API
WindowSizeClass
pour pouvoir ajouter de nouvelles valeurs de point d'arrêt à l'avenir. Au lieu d'avoir des limites absolues, nous utilisons les limites inférieures. Nous recommandons aux développeurs d'utiliser des vérifications de limite inférieure lors du traitement d'uneWindowSizeClass
. LesWindowWidthSizeClass
etWindowHeightSizeClass
existants seront abandonnés, car ils ne seront pas développés davantage. (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 d'activité de pile permet aux applications d'épingler le contenu dans un conteneur et d'isoler sa navigation de l'autre conteneur.
- Le séparateur interactif 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 fonctionnalité de assombrissement de la boîte de dialogue en plein écran permet aux applications de définir la zone de luminosité des boîtes de dialogue, soit pour assombrir toute la fenêtre de tâches, soit pour réduire la luminosité du conteneur qui affiche la boîte de dialogue.
- Le rappel d'informations sur la fenêtre d'activité intégrée permet aux applications de recevoir des mises à jour en continu de la fenêtre d'activité intégrée.
- L'intégration d'un arrière-plan d'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
ActivityEmbedding
est utilisé. - La gestion améliorée de la pile Activity permet aux applications de mieux contrôler le
ActivityStacks
lorsqueActivityEmbedding
est utilisé, y compris: - Lancer une activité dans un
ActivityStack
spécifié - Finaliser une
ActivityStack
Modifications apportées à l'API
Une nouvelle API
WindowInfoTracker#supportedPostures
:- API permettant de déterminer si l'appareil est compatible avec le mode TableTop pour les appareils pliables. Ajoute WindowAreaSessionPresenter#getWindow.
Ajoutez des API pour permettre l'épinglage de
ActivityStack
:- Classe
SplitPinRule
SplitController#pinTopActivityStack
SplitController#unpinTopActivityStack
- Classe
Ajouter des API pour activer et configurer le séparateur interactif
- Classe
DividerAttributes
SplitAttributes.Builder#setDividerAttributes
- Classe
Ajout d'API afin de définir
EmbeddingConfiguration
etDimAreaBehavior
pour les boîtes de dialogue- Classe
EmbeddingConfiguration
- Classe
DimAreaBehavior
ActivityEmbeddingController#setEmbeddingConfiguration
- Classe
Ajoutez des API pour recevoir des informations sur les fenêtres d'activité intégrées
- Classe
EmbeddedActivityWindowInfo
ActivityEmbeddingController#embeddedActivityWindowInfo
- Classe
Ajout d'API pour définir l'arrière-plan de l'animation d'intégration
EmbeddingAnimationBackground
SplitAttributes.Builder#setAnimationBackground
Ajoutez des API pour terminer
ActivityStacks
ActivityEmbeddingController#finishActivityStacks
Ajouter des API pour définir le lancement
ActivityStack
ActivityEmbeddingOptions#setLaunchingActivityStack
Les API suivantes sont stables et ne sont plus expérimentales:
ActivityEmbeddingController#invalidateVisibleActivityStacks
(déplacé depuis SplitController#invalidateTopVisibleSplitAttributes)ActivityEmbeddingController#getActivityStack
SplitController#updateSplitAttributes
Ajout d'API pour la version 1.4. (I56774).
Correction de bugs
- Correction d'un bug sur certains appareils où UNAVAILABLE renvoyait au lieu de ACTIVE lorsqu'une session était active.
- Suppression de la prise en charge de
transferActivityToWindowArea
sur les appareils avec unvendorApiLevel
de 2 en raison de l'instabilité de la compatibilité de l'API. - Introduction d'une API permettant d'activer le glisser-déposer en plein écran pour le séparateur déplaçable de l'intégration d'activités. (I645c9).
- Autoriser les applications à désactiver les animations
ActivityEmbedding
via les paramètres d'animation pourSplitAttributes
. (Idc01a). - Suppression de la description manuelle de l'accès aux nouvelles API de la plate-forme, car cela se fait automatiquement via la modélisation des API lors de l'utilisation de R8 avec AGP 7.3 ou version ultérieure (par exemple, R8 version 3.3) et pour tous les builds utilisant 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).
- Autoriser les extensions à accepter des paramètres d'animation pour
SplitAttributes
afin que l'appareil puisse les utiliser pour les transitions d'animation. (Iede00). - Masquage des API de superposition. (Ic4251)
- Introduction d'API permettant de configurer le séparateur fixe ou déplaçable pour le fractionnement. (Ia7a78)
- Ajout de la densité à
WindowMetrics
. (Id6723) - Ajoutez une API pour obtenir
SupportedPostures
. (If557a). - Suppression de
setLaunchingActivityStack
de l'API expérimentale. (I191cf) - Introduction de
ActivityEmbeddingController#embeddedActivityWindowInfo
. (I24312) - Abandon de
#getToken
et ajout de#getActivityStackToken
. (Ie0471) - Introduction de l'adaptateur de rappel pour l'API Flow
embeddedActivityWindowInfo
. (Ida77f) - Ajout d'un adaptateur de rappel pour l'API Overflow Info. (I7264f)
- Introduction de
WindowSdkExtensionsRule
afin de remplacerextensionsVersion
pour les tests. (Ifb928). - - Migration de
#setLaunchingActivityStack
vers Bundle pour assurer la compatibilité avec les utilisations deActivityOptionsCompat
.- Les utilisateurs doivent transmettre
activityOptions.toBundle
au lieu deActvityOptions
lui-même. - Supprimez
#setLaunchingActivityStack(Activity)
. Les utilisateurs doivent migrer versActivityEmbeddingController#getActivityStac(Activity)
pour obtenir unActivityStack
, puis transmettreActivityStack
à#setLaunchingActivityStack
. (Ie0ccc).
- Les utilisateurs doivent transmettre
- - Introduction de
ActivityStack.Token
etSpltInfo.Token
en tant qu'identifiants pour la communication entre WM Jetpack et les extensions.- Abandon/Remplacement des API pour recevoir/renvoyer un jeton au lieu d'IBinder. (I12b24).
- - Présenter
ActivityEmbeddingController#invalidateVisibleActivityStacks
- Suppression de
SplitController#invalidateTopVisibleSplitAttributes
, car la fonctionnalité est consolidée vers#invalidateVisibleActivityStacks
. (I02ef5)
- Suppression de
- - Ajout d'une API pour définir la configuration d'intégration (I59a4a).
- - Ajout d'une épinglage/désépinglage des
ActivityStack
APIandroidx.Window
les plus importantes <ph type="x-smartling-placeholder">- </ph>
- Mise à jour de l'application de démonstration pour épingler/retirer la partie supérieure de
ActivityStack
. (I24dd3)
- Mise à jour de l'application de démonstration pour épingler/retirer la partie supérieure de
- Ajout à nouveau de
#finishActivityStacks
etActivityEmbeddingOptions
. (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 la multiplateforme Kotlin pour les classes de taille de fenêtre.
Version 1.3.0-rc01
14 mai 2024
WindowManager
Jetpack 1.3 est compatible avec la multiplateforme 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 prise en charge de la création et de l'utilisation de
WindowSizeClass
personnalisés. (Id1143).
Correction de bugs
- Correction de l'erreur
KotlinReflectionInternalError
causée par la suppression par ProGuard de 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
WindowSizeClassUtil
a été divisé en plusieurs méthodes plus ciblées. (Ie9292).- Restauration de
WindowSizeClass#compute
. (I21355, b/324293374)
Correction de bugs
- Correction du plantage à cause duquel le contexte fourni n'était pas désencapsulé 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 de la surface d'API des API de classe de taille de fenêtre afin d'améliorer la flexibilité pour les 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 choisir un élément
WindowSizeClass
dans un ensemble. Ajout de fonctions d'évaluation expérimentales pour que les développeurs puissent écrire leurs propres sélecteurs. Ajoutez une fonction d'extension de sélecteur pour choisir laWindowSizeClass
la plus large dans une limite donnée. (I0c944). - Ouvrez le constructeur
WindowSizeClass
pour 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 de l'exception lorsque la valeur flottante 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
FoldingFeature
sont dorénavant stables. - Les API de test pour configurer des valeurs
ActivityEmbedding
sont dorénavant stables. WindowLayoutInfoPublisherRule
signale désormais le forçage lors de l'obtention d'une valeur venant d'unUiContext
.WindowInfoTracker
rapporte les données des caractéristiques de pliage aux paramètresUiContext
.- Exposez la version des extensions sur l'appareil.
- Constantes
WindowProperties
pour les forçages par application par l'utilisateur:PROPERTY_COMPAT_ALLOW_USER_ASPECT_RATIO_OVERRIDE
: indique au l'application a désactivé la compatibilité avec les formats visibles par l'utilisateur. ou un forçage.PROPERTY_COMPAT_ALLOW_USER_ASPECT_RATIO_FULLSCREEN_OVERRIDE
– Informe Le système. L'application a désactivé l'option plein écran de l'utilisateur. Paramètres de remplacement de la compatibilité du format
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
FoldingFeature
sont dorénavant stables. - Les API de test pour configurer des valeurs
ActivityEmbedding
sont dorénavant stables. WindowLayoutInfoPublisherRule
signale désormais le forçage lors de l'obtention d'une valeur venant d'unUiContext
.WindowInfoTracker
rapporte les données des caractéristiques de pliage aux paramètresUiContext
.- Exposez 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
FoldingFeature
sont dorénavant stables. - Les API de test pour configurer des valeurs
ActivityEmbedding
sont dorénavant stables. WindowLayoutInfoPublisherRule
signale désormais le forçage lors de l'obtention d'une valeur venant d'unUiContext
.WindowInfoTracker
rapporte les données des caractéristiques de pliage aux paramètresUiContext
.- Exposez 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
RequiresApi
pour 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
- Annotez la version requise de l'extension du SDK de fenêtre sur les API publiques.
- Suppression de
isXXXSupported
du composant d'intégration d'activités. (Ie3dae).
- Suppression de
- Introduction de
WindowSdkExtensions
pour signaler la version de l'extension sur l'appareil.- Introduction de
RequiresWindowSdkExtension
pour annoter la version d'extension minimale requise. (I05fd4).
- Introduction de
- Rend
WindowAreaInfo#getCapability
non nullable. (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
FoldingFeature
sont dorénavant stables. - Les API de test pour configurer des valeurs
ActivityEmbedding
sont dorénavant stables. WindowLayoutInfoPublisherRule
signale désormais le forçage lors de l'obtention d'une valeur venant d'unUiContext
.WindowInfoTracker
rapporte les données des caractéristiques de pliage aux paramètresUiContext
.
Modifications apportées à l'API
- Marque la
WindowArea
de 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'
ActivityEmbeddingRule
afin 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_INVISIBLE
de l'interface des extensions. (I6ed19) - Stabilisation d'
ActivityEmbeddingRule
afin 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_ACTIVE
afin 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
SplitInfo
dansSplitController
. Ajout de méthodes de test pour créer un double deSplitInfo
etActivityStack
. (Icd69f) - Rend les balises optionnelles pour
ActivityRule.Builder
. (Ib0b44) - Suppression de
RatioSplitType
,ExpandContainersSplit
etHingeSplitType
, devenusSplitType
.- Remplacement de
#splitEqually()
,#expandContainers()
et#splitByHinge
par les constantesSplitType SPLIT_TYPE_EQUAL
,SPLIT_TYPE_EXPAND
etSPLIT_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#setSplitAttributesCalculator
pour personnaliser le type de fractionnement de remplacement. (Ifcc59)
- Remplacement de
- Abandon de
add
/removeSplitCallback
- Déplacement de
add
/removeSplitCallback
versSplitControllerCallbackAdapter
. - Ajout de la prise en charge de
Flow
pour obtenir la listeSplitInfo
. (I7f1b6)
- Déplacement de
- Ajout d'une règle de test pour
ActivityEmbeddingController
. (I42e9b) - Remplacement du nom de
ActivityOptionsCompat
parActivityEmbeddingOptions
. (I89301) - Ajout de
splitSupportStatus
pour indiquer si l'intégration d'activités est disponible. (I10024) - Introduction de
SplitAttributes.BackgroundColor
pour 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_ALLOW
etALWAYS_DISALLOW
. (I3057b) - Ajout d'API pour
SplitRule
,SplitAttributes
etSplitAttributesCalculator
. (I92d23) - Ajout de
TestActivityStack
afin de créerActivityStack
pour des tests.- Ajout de
TestSplitInfo
afin de créerSplitInfo
pour des tests. (I8e779)
- Ajout de
- Ajout d'un moyen de créer de faux
SplitAttributesCalculatorParams
afin que les développeurs puissent vérifier leurSplitAttributesCalculator
personnalisé. (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
WindowLayoutInfoPublishRule
forcera 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
WindowLayoutInfoPublishRule
pour prendre en charge les forçages deContext
surWindowLayoutInfo
. (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'
ActivityEmbeddingRule
afin d'effectuer des tests unitaires sur l'intégration d'activités. (I8d6b6) WindowMetrisCalculatorTestRule
est 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
WindowLayoutInfo
afin de prendre en charge les tests JVM. (Ie036e) - Ajout d'
IntRange
pour 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_ENABLED
en tant que propriété booléenne de la balise<application>
dans le fichier manifeste d'application. isSplitSupported
est obsolète et remplacé parsplitSupportStatus
pour 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.SplitSupportStatus
afin de fournir des constantes d'état pour la propriétésplitSupportStatus
. - Refactorisation de
SplitController
pour plusieurs modules :- Module
ActivityEmbeddingController
pour les API associéesActivity
ouActivityStack
. - Déplacement de
isActivityEmbedded
deSplitController
versActivityEmbeddingController
. - Module
RuleController
pour 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
EmbeddingAspectRatio
pour définir des constantes de comportement de type énumération liées au format d'affichage. - Ajout de la classe
SplitAttributes
pour définir la mise en page du fractionnement. - Ajout des fonctions de calcul
SplitAttributes
àSplitController
afin de personnaliser les dispositions divisées :setSplitAttributesCalculator(Function)
clearSplitAttributesCalculator()
isSplitAttributesCalculatorSupported()
pour vérifier si les APISplitAttributesCalculator
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, remplacesplitRatio
etlayoutDirection
. - Ajout du transfert des propriétés XML
splitRatio
etsplitLayoutDirection
versdefaultSplitAttributes
. - Modification des définitions des dimensions minimales pour utiliser les pixels indépendants de la densité (dp) au lieu des pixels.
- Ajout de
minHeightDp
dont la valeur par défaut est 600dp. - Remplacement de
minWidth
parminWidthDp
, dont la valeur par défaut est 600dp. - Remplacement de
minSmallestWidth
parminSmallestWidthDp
, dont la valeur par défaut est 600dp. - Ajout de
maxAspectRatioInHorizontal
dont la valeur par défaut estALWAYS_ALLOW
. - Ajout de
maxAspectRatioInPortrait
dont la valeur par défaut est 1.4. - Définition de la classe imbriquée
FinishBehavior
afin de remplacer les constantes du comportement final. - Application des changements de propriétés à la classe imbriquée "Builder" de
SplitPairRule
etSplitPlaceholderRule
.
- 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. SplitInfo
ratio- 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
:minWidth
etminSmallestWidth
utilisent 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 diviserminWith
en pixels pardisplayMetrics#density
.
- Les constantes de comportement final doivent être migrées vers les constantes de classe de type énumération
FinishBehavior
:FINISH_NEVER
est devenuFinishBehavior.NEVER
.FINISH_ALWAYS
est devenuFinishBehavior.ALWAYS
.FINISH_ADJACENT
est devenuFinishBehavior.ADJACENT
.
- L'orientation de la mise en page doit être migrée vers
SplitAttributes.LayoutDirection
:ltr
est devenuSplitAttributes.LayoutDirection.LEFT_TO_RIGHT
.rtl
est devenuSplitAttributes.LayoutDirection.RIGHT_TO_LEFT
.locale
est devenuSplitAttributes.LayoutDirection.LOCALE
.splitRatio
doit ê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)
sont remplacés parkotlin setDefaultSplitAttributes( SplitAttributes.Builder() .setLayoutDirection(layoutDirection) .setSplitType(SplitAttributes.SplitType.ratio(ratio)) .build() )
setFinishPrimaryWithSecondary
etsetFinishSecondaryWithPrimary
prennent 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
filters
etplaceholderIntent
. Les autres propriétés sont transférées aux setters. Pour plus d'informations, reportez-vous aux "Migrations SplitPairRule.Builder". setFinishPrimaryWithPlaceholder
prend 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
ActivityEmbedding
est 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_ENABLED
en tant que propriété booléenne de la balise<application>
dans le fichier manifeste d'application. isSplitSupported
est obsolète et remplacé parsplitSupportStatus
pour 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.SplitSupportStatus
afin de fournir des constantes d'état pour la propriétésplitSupportStatus
. - Refactorisation de
SplitController
pour plusieurs modules :- Module
ActivityEmbeddingController
pour les API associéesActivity
ouActivityStack
. - Déplacement de
isActivityEmbedded
deSplitController
versActivityEmbeddingController
. - Module
RuleController
pour 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
EmbeddingAspectRatio
pour définir des constantes de comportement de type énumération liées au format d'affichage. - Ajout de la classe
SplitAttributes
pour définir la mise en page du fractionnement. - Ajout des fonctions de calcul
SplitAttributes
àSplitController
afin 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, remplacesplitRatio
etlayoutDirection
. - Ajout du transfert des propriétés XML
splitRatio
etsplitLayoutDirection
versdefaultSplitAttributes
. - Modification des définitions des dimensions minimales pour utiliser les pixels indépendants de la densité (dp) au lieu des pixels.
- Ajout de
minHeightDp
dont la valeur par défaut est 600dp. - Remplacement de
minWidth
parminWidthDp
, dont la valeur par défaut est 600dp. - Remplacement de
minSmallestWidth
parminSmallestWidthDp
, dont la valeur par défaut est 600dp. - Ajout de
maxAspectRatioInHorizontal
dont la valeur par défaut estALWAYS_ALLOW
. - Ajout de
maxAspectRatioInPortrait
dont la valeur par défaut est1.4
. - Définition de la classe imbriquée
FinishBehavior
afin de remplacer les constantes du comportement final. - Application des changements de propriétés à la classe imbriquée
Builder
deSplitPairRule
etSplitPlaceholderRule
.
- 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. SplitInfo
ratio- 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
:minWidth
etminSmallestWidth
utilisent 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 diviserminWith
en pixels pardisplayMetrics#density
.
- Les constantes de comportement final doivent être migrées vers les constantes de classe de type énumération
FinishBehavior
:FINISH_NEVER
est devenuFinishBehavior.NEVER
.FINISH_ALWAYS
est devenuFinishBehavior.ALWAYS
.FINISH_ADJACENT
est devenuFinishBehavior.ADJACENT
.
- L'orientation de la mise en page doit être migrée vers
SplitAttributes.LayoutDirection
:ltr
est devenuSplitAttributes.LayoutDirection.LEFT_TO_RIGHT
.rtl
est devenuSplitAttributes.LayoutDirection.RIGHT_TO_LEFT
.locale
est devenuSplitAttributes.LayoutDirection.LOCALE
.splitRatio
doit ê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() )
.setFinishPrimaryWithSecondary
etsetFinishSecondaryWithPrimary
prennent 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
filters
etplaceholderIntent
. Les autres propriétés sont transférées aux setters. Pour plus d'informations, reportez-vous aux "Migrations SplitPairRule.Builder". setFinishPrimaryWithPlaceholder
prend 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
splitSupportStatus
pour indiquer si l'intégration d'activités est disponible. (I10024) - Désignation de l'API de contexte d'interface utilisateur
WindowLayoutInfo
comme version expérimentale. (I58ee0) - Ajout de
WindowAreaController
et d'API pour pouvoir activer le modeRearDisplay
et 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
,SplitAttributes
etSplitAttributesCalculator
. (I92d23) - Amélioration des API liées à
maxAspectRatio
:- Remplacement de
alwaysAllow()
etalwaysDisallow()
parALWAYS_ALLOW
etALWAYS_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
SplitRule
utilise désormaismaxAspectRatioInPortrait/Landscape
. Ne permet de diviser les activités que lorsque le format des limites parent est inférieur ou égal aumaxAspectRatio
demandé. (Ia5990)- Modification de
RuleController#parseRules
pour 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 :
registerRule
est devenuaddRule
.unregisterRule
est devenuremoveRule
.- Remplacement de
getSplitRules
pargetRules
, carActivityRule
n'est pas une règle de fractionnement. - Ajout de
RuleController#setRules
pour définir plusieurs règles. - Extraction des API liées aux règles de
SplitController
vers singletonRuleController
. API concernées : addRule
removeRule
getRules
setRules
clearRules
parseRules
- Extraction de
#isActivityEmbedded
deSplitController
vers singletonActivityEmbeddingController
. API concernées : isActivityEmbedded
- Suppression de
SplitController#initialize
. Pour définir des règles à partir d'un fichier XML, veuillez utiliserRuleController#parseRules
et#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
#clearRules
efface 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#parseRules
avec l'ID de ressource XML, puisRuleController#setRules
pour 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
SplitRule
pour 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#layoutDir
par#layoutDirection
et du nomSplitRule Builder#setLayoutDir
parBuilder#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
ActivityStack
est 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
WindowInsets
surWindowMetrics
. - Mise à jour de
SplitPlaceholderFinishBehavior
pour 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
isEmpty
a été rendue publique pour remplacer "fun"isEmpty
. - Nom des activités du paramètre
ActivityStack
remplacé paractivitiesInProcess
. (Ia5055) - Suppression d'
ActivityFilter#matchesClassName
et d'ActivityFilter#matchesClassNameOrWildCard
pour éviter toute confusion. - Ajout d'
ActivityFilter#componentName
et d'ActivityFilter#intentAction
pour permettre à l'appelant de distinguer les différents filtres. (I41f22) - Suppression des API
@Deprecated
de l'API expérimentale. (I216b3) - Suppression de
@ExperimentalWindowApi
pour 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
WindowMetrics
etWindowMetricsCalculatorCompat
. (I667fe) - Mise à jour du Javadoc de la propriété
ActivityEmbedding
et 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
SplitPlaceholderFinishBehavior
etSplitPlaceholderRule.finishPrimaryWithPlaceholder
pour remplacer l'APISplitPlaceholderRule.finishPrimaryWithSecondary
existante 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
WindowAreaController
et d'API pour pouvoir activer le modeRearDisplay
et 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 à
WindowInfoTracker
etFoldingFeature
. 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
FoldingFeature
en 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 Core
ont été mises à niveau vers la version1.4.0
et 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'
occlusionMode
parocclusionType
.
- 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-java
pour exposer des API compatibles avec Java afin d'enregistrer et d'annuler l'enregistrement des rappels. - Ajout des artefacts
window-rxjava2
etwindow-rxjava3
pour exposer des API adaptées à RxJava.
Modifications apportées à l'API
- Ajout de
WindowServices
pour 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_FLIPPED
des é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
DeviceState
de l'API publique. UtilisezFoldingFeature
à la place (Id6079). - Suppression du rappel d'état de l'appareil des extensions (I5ea83).
- Suppression de
STATE_FLIPPED
de 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'
ExtensionInterface
pour 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
ExtensionInterface
pour 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.).