Quer integrar o recurso de tema dinâmico do Material You em seu aplicativo? Esta biblioteca permite adicioná-lo mesmo em dispositivos anteriores ao Android 12.
Material você é a revisão mais recente da linguagem de design do Google. Com o Material You, o Google está enfatizando a personalização, e é por isso que em Andróide 12, há um novo sistema de temas dinâmicos que recolore sua experiência do usuário usando cores extraído do seu papel de parede. Este sistema de temas dinâmicos, codinome "monet", foi ao ar no Android 12 Beta 2, mas o Google ainda não documentou as APIs/implementação, forneceu bibliotecas de suporte ou abriu o Google Play para publicar aplicativos direcionados à API nível 31 (Android 12), então a grande maioria dos desenvolvedores nem se preocupou em adaptar seus aplicativos para suportar o tema dinâmico sistema.
Isso não significa que não o desenvolvedor está brincando com o sistema de temas do Android 12. O desenvolvedor do popular aplicativo de automação Tasker demonstrou suporte a temas dinâmicos em seu aplicativo usando APIs oficiais do Android 12. Por outro lado outro desenvolvedor kdrag0n
recriou o sistema em sua totalidade usando seu próprio algoritmo de extração de cores e geração de paleta. Kdrag0n compartilhou o código-fonte de seu mecanismo de tema e está trabalhando em uma biblioteca Jetpack Compose e Flutter para que aplicativos de terceiros desenvolvidos para versões mais antigas do sistema operacional possam implementar sua versão do “monet”.Agora, desenvolvedor reconhecido pelo XDA Quinny899 criou uma biblioteca própria baseada na implementação personalizada "monet" do kdrag0n (ou seja, isso é não baseado no mecanismo de tema do Google). Os desenvolvedores podem integrar esta biblioteca MonetCompat em seus aplicativos para adicionar suporte para temas dinâmicos da interface do usuário de seus aplicativos com base no papel de parede do usuário. Esta biblioteca funciona em dispositivos que executam Android 5.0 e superior (usando a API Palette em modo de compatibilidade) e Android 8.1 Oreo e superior em modo normal. A biblioteca não pode extrair cores de papéis de parede animados em versões anteriores ao Android 8.1 devido a limitações nas APIs da plataforma.
Quanto ao motivo pelo qual um desenvolvedor pode querer usar esta biblioteca, o próprio Quinny899 explica na página GitHub do projeto. “Também não se sabe se o Google fornecerá sua própria biblioteca de compatibilidade retroativa para Monet com o lançamento do Android 12, então esta biblioteca pode ser substituída por uma oficial eventualmente. Nenhum código proprietário do Google é usado neste projeto e, portanto, ele é licenciado com a licença MIT para uso em aplicativos de terceiros."
O primeiro aplicativo a usar MonetCompat é, obviamente, o aplicativo DarQ do próprio Quinny899. DarQ é um aplicativo que permite alternar a configuração do modo forçar escurecimento do Android por aplicativo. Isto acesso root usado originalmente para definir uma propriedade do sistema, mas foi Atualizada para usar um script de shell ADB executado no PC do usuário, eliminando o requisito de root. No DarQ 2.0, os usuários não precisam mais executar o script ADB em seus PCs, pois o aplicativo agora integra Shizuku. Shizuku é um aplicativo e serviço que permite que outros aplicativos executem comandos shell ou acessem APIs com privilégios de usuário shell ADB - pense nele como um aplicativo de gerenciamento de superusuário, mas para acesso shell ADB. No Android 11+, o serviço Shizuku pode ser iniciado por meio do recurso de depuração sem fio integrado, então você não precisa mais de um PC para configurar o DarQ. Com a mudança para Shizuku, o DarQ agora também usa um ProcessObserver em vez de um AccessibilityService, que o o desenvolvedor diz que permite que o DarQ detecte quando um aplicativo foi aberto (e, assim, aplique a configuração forçar escurecimento) muito mais rapidamente.
Se, por algum motivo, você não gostar da cor gerada pelo MonetCompat para o aplicativo DarQ, poderá tocar três vezes em "DarQ 2.0" para ativar as opções do desenvolvedor no aplicativo. Aqui, você pode selecionar “Monet Color Picker” para alterar a cor que deseja que o aplicativo use.
Registro de alterações do DarQ 2.0
- DarQ 2.0 tem um design totalmente novo, com elementos Material You e cores Monet (baseadas em papel de parede).
- O script ADB desapareceu e, em vez disso, Shizuku gerencia o serviço em dispositivos não root. Se você não sabe o que é Shizuku, pense nele como um aplicativo de superusuário para dispositivos não root. Inicie o Shizuku via ADB em um computador (ou mesmo em seu telefone com Android 11 e superior) uma vez por inicialização, e qualquer aplicativo que use Shizuku poderá usar os serviços ADB.
- O Serviço de Acessibilidade foi substituído por um ProcessObserver, usando o serviço Shizuku/Root. Isso é muito mais rápido do que Acessibilidade, portanto, aplicativos que antes abriam rápido demais para serem suportados agora podem funcionar.
- Melhorias no tema escuro automático ao nascer/pôr do sol para funcionar melhor em diferentes dispositivos.
- Melhorias no módulo Xposed para apps que tentam bloquear o uso do force dark, impedindo-os de fazê-lo.
consulte Mais informação
Tópico do fórum DarQ XDA ||| Biblioteca MonetCompat no GitHub