Vous souhaitez intégrer la fonctionnalité de thème dynamique de Material You dans votre application? Cette bibliothèque vous permet de l'ajouter même sur des appareils antérieurs à Android 12.
Matériel Vous est la dernière révision du langage de conception de Google. Avec Material You, Google met l'accent sur la personnalisation, c'est pourquoi dans Android 12, il existe un nouveau système de thèmes dynamiques qui recolore votre UX en utilisant des couleurs extrait de votre fond d'écran. Ce système de thématisation dynamique, nommé "monet", a été mis en ligne dans Android 12 bêta 2, mais Google n'a pas encore documenté les API/la mise en œuvre, fourni des bibliothèques de support ou ouvert Google Play à la publication d'applications ciblant l'API. niveau 31 (Android 12), donc la grande majorité des développeurs n'ont même pas pris la peine d'adapter leurs applications pour prendre en charge la thématisation dynamique système.
Cela ne veut pas dire que Non Le développeur joue cependant avec le système de thème d’Android 12. Le développeur du
application d'automatisation populaire Tasker a démontré la prise en charge des thèmes dynamiques dans son application à l'aide des API officielles d'Android 12. D'un autre côté, un autre développeur, kdrag0n, recréé le système dans son intégralité en utilisant son propre algorithme d'extraction de couleurs et de génération de palette. Kdrag0n a partagé le code source de son moteur de thème et travaille sur une bibliothèque Jetpack Compose et Flutter afin que les applications tierces conçues pour les anciennes versions du système d'exploitation puissent implémenter sa version de « monet ».Désormais, développeur reconnu par XDA Quinny899 a créé sa propre bibliothèque basée sur l'implémentation "monet" personnalisée de kdrag0n (c.-à-d. c'est pas basé sur le moteur de thème de Google). Les développeurs peuvent intégrer cette bibliothèque MonetCompat dans leurs applications pour ajouter la prise en charge de la thématisation dynamique de l'interface utilisateur de leur application en fonction du fond d'écran de l'utilisateur. Cette bibliothèque fonctionne sur les appareils exécutant Android 5.0 et supérieur (en utilisant l'API Palette en mode de compatibilité) et Android 8.1 Oreo et supérieur en mode normal. La bibliothèque ne peut pas extraire les couleurs des fonds d'écran animés sur les versions antérieures à Android 8.1 en raison des limitations des API de la plate-forme.
Quant à savoir pourquoi un développeur pourrait vouloir utiliser cette bibliothèque, Quinny899 lui-même l'explique sur la page GitHub du projet. "On ne sait pas non plus si Google fournira sa propre bibliothèque de rétrocompatibilité pour Monet avec la version Android 12, donc cette bibliothèque pourrait éventuellement être remplacée par une bibliothèque officielle. Aucun code propriétaire de Google n'est utilisé dans ce projet, et il est donc sous licence MIT pour une utilisation dans des applications tierces.
La première application à utiliser MonetCompat est, bien sûr, l'application DarQ de Quinny899. DarQ est une application qui vous permet de basculer le paramètre de mode sombre forcé d'Android pour chaque application. Il accès root utilisé à l'origine pour définir une propriété système mais était mis à jour pour utiliser un script shell ADB exécuté sur le PC de l'utilisateur, en supprimant l'exigence racine. Dans DarQ 2.0, les utilisateurs n'ont plus besoin d'exécuter le script ADB depuis leur PC, car l'application intègre désormais Shizuku. Shizuku est une application et un service qui permettent à d'autres applications d'exécuter des commandes shell ou d'accéder aux API avec les privilèges utilisateur du shell ADB. Considérez-le comme une application de gestion de superutilisateur mais pour l'accès au shell ADB. Sur Android 11+, le service Shizuku peut être démarré via la fonction de débogage sans fil intégrée, vous n'avez donc plus besoin d'un PC pour configurer DarQ. Avec le passage à Shizuku, DarQ utilise également désormais un ProcessObserver plutôt qu'un AccessibilityService, que le le développeur dit qu'il permet à DarQ de détecter l'ouverture d'une application (et donc d'appliquer le paramètre Force Dark) bien plus rapidement.
Si, pour une raison quelconque, vous n'aimez pas la couleur générée par MonetCompat pour l'application DarQ, vous pouvez appuyer trois fois sur « DarQ 2.0 » pour activer les options de développement dans l'application. Ici, vous pouvez sélectionner « Monet Color Picker » pour modifier la couleur que vous souhaitez que l'application utilise.
Journal des modifications de DarQ 2.0
- DarQ 2.0 a un tout nouveau design, avec des éléments Material You et des couleurs Monet (basées sur du papier peint).
- Le script ADB a maintenant disparu et Shizuku gère le service sur les appareils non root. Si vous ne savez pas ce qu'est Shizuku, pensez-y comme à une application superutilisateur pour les appareils non root. Démarrez Shizuku via ADB sur un ordinateur (ou même sur votre téléphone sous Android 11 et supérieur) une fois par démarrage, et toute application qui utilise Shizuku peut utiliser les services ADB.
- Le service d'accessibilité a été remplacé par un ProcessObserver, utilisant le service Shizuku/Root. C'est beaucoup plus rapide que l'accessibilité, de sorte que les applications qui s'ouvraient auparavant trop rapidement pour être prises en charge peuvent désormais fonctionner.
- Améliorations du thème d'obscurité automatique au lever/coucher du soleil pour mieux fonctionner sur différents appareils.
- Améliorations du module Xposed pour les applications qui tentent de bloquer l'utilisation de la force sombre, les empêchant ainsi de le faire.
En savoir plus
Sujet du forum DarQ XDA ||| Bibliothèque MonetCompat sur GitHub