Vuoi integrare la funzionalità di tematica dinamica di Material You nella tua app? Questa libreria ti consente di aggiungerla anche su dispositivi precedenti ad Android 12.
Materiale Tu è l'ultima revisione del linguaggio di progettazione di Google. Con Material You, Google enfatizza la personalizzazione, ecco perché in Androide 12, c'è un nuovo sistema di temi dinamici che ricolora la tua UX utilizzando i colori estratto dal tuo sfondo. Questo sistema tematico dinamico, nome in codice "monet", è stato pubblicato su Android 12 Beta 2, ma Google deve ancora documentare le API/l'implementazione, fornire librerie di supporto o aprire Google Play alla pubblicazione di app destinate all'API livello 31 (Android 12), quindi la stragrande maggioranza degli sviluppatori non si è nemmeno preoccupata di adattare le proprie app per supportare la tematica dinamica sistema.
Ciò non significa questo NO lo sviluppatore sta però giocando con il sistema di temi di Android 12. Lo sviluppatore del la popolare app di automazione Tasker
ha dimostrato il supporto dei temi dinamici nella sua app utilizzando le API ufficiali di Android 12. D'altra parte, un altro sviluppatore, kdrag0n, ricreato il sistema nella sua interezza utilizzando il proprio algoritmo di estrazione del colore e di generazione della tavolozza. Kdrag0n ha condiviso il codice sorgente per il suo motore di temi e sta lavorando su una libreria Jetpack Compose e Flutter in modo che le app di terze parti create per versioni precedenti del sistema operativo possano implementare la sua interpretazione di "monet".Ora, sviluppatore riconosciuto XDA Quinny899 ha creato una propria libreria basata sull'implementazione "monet" personalizzata di kdrag0n (es. suo non basato sul motore dei temi di Google). Gli sviluppatori possono integrare questa libreria MonetCompat nelle loro app per aggiungere il supporto per personalizzare dinamicamente l'interfaccia utente della loro app in base allo sfondo dell'utente. Questa libreria funziona su dispositivi con Android 5.0 e versioni successive (utilizzando l'API Palette in modalità compatibilità) e Android 8.1 Oreo e versioni successive in modalità normale. La libreria non può estrarre i colori dagli sfondi live nelle versioni precedenti ad Android 8.1 a causa delle limitazioni nelle API della piattaforma.
Per quanto riguarda il motivo per cui uno sviluppatore potrebbe voler utilizzare questa libreria, lo stesso Quinny899 spiega sulla pagina GitHub del progetto. "Inoltre, al momento non è noto se Google fornirà la propria libreria di compatibilità retroattiva per Monet con il rilascio di Android 12, quindi questa libreria potrebbe essere eventualmente sostituita da una ufficiale. In questo progetto non viene utilizzato alcun codice proprietario di Google, pertanto è concesso in licenza con la licenza MIT per l'utilizzo in app di terze parti."
La prima app a utilizzare MonetCompat è, ovviamente, l'app DarQ di Quinny899. DarQ è un'app che ti consente di attivare/disattivare l'impostazione della modalità Force Dark di Android in base all'app. Esso originariamente utilizzava l'accesso root per impostare una proprietà di sistema ma was aggiornato per utilizzare uno script shell ADB eseguito sul PC dell'utente, eliminando i requisiti root. In DarQ 2.0, gli utenti non devono più eseguire lo script ADB dal proprio PC, poiché l'app ora si integra Shizuku. Shizuku è un'app e un servizio che consente ad altre app di eseguire comandi shell o accedere ad API con privilegi utente shell ADB: considerala come un'app di gestione superutente ma per l'accesso alla shell ADB. Su Android 11+, il servizio Shizuku può essere avviato tramite la funzionalità di debug wireless integrata, quindi non è più necessario un PC per configurare DarQ. Con il passaggio a Shizuku, DarQ ora utilizza anche un ProcessObserver anziché un AccessibilityService, che il lo sviluppatore afferma che consente a DarQ di rilevare quando un'app è stata aperta (e quindi di applicare l'impostazione forzata oscuramento) molto di più velocemente.
Se, per qualsiasi motivo, non ti piace il colore generato da MonetCompat per l'app DarQ, puoi toccare "DarQ 2.0" tre volte per abilitare le Opzioni sviluppatore nell'app. Qui puoi selezionare "Selettore colore Monet" per cambiare il colore che desideri venga utilizzato dall'app.
Registro delle modifiche di DarQ 2.0
- DarQ 2.0 ha un design completamente nuovo, con elementi Material You e colori Monet (basati sullo sfondo).
- Lo script ADB ora non c'è più e Shizuku gestisce invece il servizio su dispositivi non root. Se non sai cos'è Shizuku, pensalo come un'app Superuser per dispositivi non root. Avvia Shizuku tramite ADB su un computer (o anche sul tuo telefono su Android 11 e versioni successive) una volta all'avvio e qualsiasi app che utilizza Shizuku potrà utilizzare i servizi ADB.
- Il servizio di accessibilità è stato sostituito con un ProcessObserver, utilizzando il servizio Shizuku/Root. Questo è molto più veloce dell'Accessibilità, quindi le app che in precedenza si aprivano troppo velocemente per essere supportate ora potrebbero funzionare.
- Miglioramenti al tema Scuro automatico all'alba/tramonto per funzionare meglio su diversi dispositivi.
- Miglioramenti al modulo Xposed per le app che tentano di bloccare l'uso della forza oscura, impedendo loro di farlo.
Per saperne di più
Discussione del forum DarQ XDA ||| Libreria MonetCompat su GitHub