package Ġcom . re vol gen x . an ilib . app . theme ĊĊ Ċ import Ġandroidx . annotation . Color Int Ċ import Ġandroidx . annotation . Style Res Ċ import Ġcom . pr an av pan de y . android . dynamic . preferences . Dynamic Preferences Ċ import Ġcom . pr an av pan de y . android . dynamic . support . model . Dynamic App Theme Ċ import Ġcom . pr an av pan de y . android . dynamic . support . theme . Dynamic Theme Ċ import Ġcom . pr an av pan de y . android . dynamic . theme . Theme Ċ import Ġcom . pr an av pan de y . android . dynamic . utils . Dynamic Color Utils Ċ import Ġcom . re vol gen x . an ilib . R Ċ Ċ /** Ċ Ġ* ĠHelper Ġclass Ġto Ġperform Ġtheme Ġrelated Ġoperations . Ċ Ġ*/ ĊĊ Ċ object ĠTheme Controller Ġ{ ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ` true ` Ġif Ġ` auto ` Ġtheme Ġis Ġselected . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġval Ġis Auto Theme : ĠBoolean Ġget () Ġ= Ġapp Theme Color Ġ== ĠTheme . AUTO ĊĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠGetter Ġand ĠSetter Ġfor Ġthe Ġapp Ġtheme Ġcolor . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġvar Ġapp Theme Color : ĠInt ĊĠĠĠĠĠĠĠ Ġget () Ġ= ĠDynamic Preferences . getInstance (). load ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠConstants . PRE F _ SETTINGS _ APP _ THEME _ COLOR , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠConstants . PRE F _ SETTINGS _ APP _ THEME _ COLOR _ DEFAULT ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġset (@ Color Int Ġcolor ) Ġ= ĠDynamic Preferences . getInstance (). save ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠConstants . PRE F _ SETTINGS _ APP _ THEME _ COLOR , Ġcolor ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠGetter Ġand ĠSetter Ġfor Ġthe Ġapp Ġtheme Ġday Ġcolor . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġvar Ġapp Theme Day Color : ĠInt ĊĠĠĠĠĠĠĠ Ġ@ Color Int Ġget () Ġ= ĠDynamic Preferences . getInstance (). load ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠConstants . PRE F _ SETTINGS _ APP _ THEME _ DAY _ COLOR , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠConstants . PRE F _ SETTINGS _ APP _ THEME _ DAY _ COLOR _ DEFAULT ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġset (@ Color Int Ġcolor ) Ġ= ĠDynamic Preferences . getInstance (). save ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠConstants . PRE F _ SETTINGS _ APP _ THEME _ DAY _ COLOR , Ġcolor ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠGetter Ġand ĠSetter Ġfor Ġthe Ġapp Ġtheme Ġnight Ġcolor . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġvar Ġapp Theme Night Color : ĠInt ĊĠĠĠĠĠĠĠ Ġ@ Color Int Ġget () Ġ= ĠDynamic Preferences . getInstance (). load ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠConstants . PRE F _ SETTINGS _ APP _ THEME _ N IGHT _ COLOR , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠConstants . PRE F _ SETTINGS _ APP _ THEME _ N IGHT _ COLOR _ DEFAULT ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġset (@ Color Int Ġcolor ) Ġ= ĠDynamic Preferences . getInstance (). save ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠConstants . PRE F _ SETTINGS _ APP _ THEME _ N IGHT _ COLOR , Ġcolor ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠThe Ġapp Ġtheme Ġsplash Ġstyle Ġaccording Ġto Ġthe Ġcurrent Ġsettings . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġval Ġapp Style : ĠInt ĊĠĠĠĠĠĠĠ Ġ@ Style Res Ġget () Ġ= Ġget App Style ( backgroundColor ) ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠThe Ġbackground Ġcolor Ġaccording Ġto Ġthe Ġcurrent Ġsettings . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġval ĠbackgroundColor : ĠInt ĊĠĠĠĠĠĠĠ Ġ@ Color Int Ġget () Ġ= Ġif Ġ( app Theme Color Ġ== ĠTheme . AUTO ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( Dynamic Theme . getInstance (). is Night ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġapp Theme Night Color ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġapp Theme Day Color ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġapp Theme Color ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠThe Ġapp Ġtheme Ġprimary Ġcolor . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġval Ġcolor Primary App : ĠInt ĊĠĠĠĠĠĠĠ Ġ@ Color Int Ġget () Ġ= ĠDynamic Preferences . getInstance (). load ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠConstants . PRE F _ SETTINGS _ APP _ THEME _ COLOR _ PRIMARY , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠConstants . PRE F _ SETTINGS _ APP _ THEME _ COLOR _ PRIMARY _ DEFAULT ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠThe Ġapp Ġtheme Ġaccent Ġcolor . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġval Ġcolor Accent App : ĠInt ĊĠĠĠĠĠĠĠ Ġ@ Color Int Ġget () Ġ= ĠDynamic Preferences . getInstance (). load ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠConstants . PRE F _ SETTINGS _ APP _ THEME _ COLOR _ ACC ENT , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠConstants . PRE F _ SETTINGS _ APP _ THEME _ COLOR _ ACC ENT _ DEFAULT ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠThe Ġbackground Ġcolor Ġaccording Ġto Ġthe Ġcurrent Ġsettings . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġval Ġdynamic App Theme : ĠDynamic App Theme ĊĠĠĠĠĠĠĠ Ġget () Ġ= ĠDynamic App Theme () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Primary Color ( App Controller . instance . color Primary App ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Accent Color ( App Controller . instance . color Accent App ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. set BackgroundColor ( backgroundColor ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Corner Radius Dp ( 8 f ); ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠReturns Ġthe Ġapp Ġtheme Ġstyle Ġaccording Ġto Ġthe Ġsupplied Ġcolor . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġcolor ĠThe Ġcolor Ġused Ġfor Ġthe Ġbackground . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ return ĠThe Ġapp Ġtheme Ġstyle Ġaccording Ġto Ġthe Ġsupplied Ġcolor . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Style Res ĊĠĠĠ Ġfun Ġget App Style (@ Color Int Ġcolor : ĠInt ): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( Dynamic Color Utils . is Color Dark ( color )) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . style . App Theme ĊĠĠĠĠĠĠĠ Ġelse ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . style . App Theme _ Dark ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġlight Surface Color (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġsurface Color Ġ= ĠDynamic Theme . getInstance (). get (). surface Color ĊĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( Dynamic Color Utils . is Color Dark ( surface Color )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsurface Color ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠDynamic Color Utils . get Light er Color ( surface Color , Ġ 0 . 4 f ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ