package Ġcom . hu anch eng fly . ti eba . post . activities Ċ Ċ import Ġandroid . animation . Object Animator Ċ import Ġandroid . animation . Value Animator Ċ import Ġandroid . app . Activity Ċ import Ġandroid . app . Dialog Ċ import Ġandroid . content . Context Ċ import Ġandroid . content . res . Color State List Ċ import Ġandroid . content . res . Resources Ċ import Ġandroid . graphics . Color Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . text . TextUtils Ċ import Ġandroid . util . Display Metrics Ċ import Ġandroid . view . Menu Ċ import Ġandroid . view . MenuItem Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroid . view . animation . Accel erate De cel erate Interpolator Ċ import Ġandroid . widget . ImageView Ċ import Ġandroid . widget . TextView Ċ import Ġandroidx . annotation . Call Super Ċ import Ġandroidx . annotation . Color Int Ċ import Ġandroidx . annotation . Keep Ċ import Ġandroidx . appcompat . app . AlertDialog Ċ import Ġandroidx . appcompat . widget . Toolbar Ċ import Ġbutter knife . B utter Kn ife Ċ import Ġcn . jz vd . Jz vd Ċ import Ġcom . gy f . imm ersion bar . Imm ersion Bar Ċ import Ġcom . hu anch eng fly . ti eba . post . Base Application Ċ import Ġcom . hu anch eng fly . ti eba . post . Base Application . Companion . instance Ċ import Ġcom . hu anch eng fly . ti eba . post . R Ċ import Ġcom . hu anch eng fly . ti eba . post . ui . theme . interfaces . Extra Refresh able Ċ import Ġcom . hu anch eng fly . ti eba . post . ui . theme . utils . Theme Utils Ċ import Ġcom . hu anch eng fly . ti eba . post . utils .* Ċ import Ġcom . hu anch eng fly . ti eba . post . widgets . Voice Player View Ċ import Ġcom . hu anch eng fly . ti eba . post . widgets . theme . Tint Toolbar Ċ import Ġkotlinx . coroutines .* Ċ import Ġme . im id . swipe back layout . lib . app . Swipe Back Activity Ċ import Ġkotlin . coroutines . Coroutine Context Ċ Ċ abstract Ġclass ĠBase Activity Ġ: ĠSw ipe Back Activity (), ĠExtra Refresh able , ĠCor outine Scope Ġ{ ĊĠĠĠ Ġval Ġjob Ġ= ĠJob () ĊĠĠĠ Ġoverride Ġval Ġcoroutine Context : ĠCor outine Context ĊĠĠĠĠĠĠĠ Ġget () Ġ= ĠDispatch ers . Main Ġ+ Ġjob ĊĊĠĠĠ Ġprivate Ġvar Ġm Tint Toolbar : ĠT int Toolbar ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġold Theme : ĠString ? Ġ= Ġnull ĊĊĠĠĠ Ġvar Ġis Activity Running Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġprivate Ġset ĊĠĠĠ Ġprivate Ġvar Ġcustom Status Color Ġ= Ġ- 1 ĊĠĠĠ Ġprivate Ġvar Ġstatus Bar Tint ed Ġ= Ġfalse ĊĊĠĠĠ Ġval Ġapp Preferences : ĠApp Preferences Utils Ġby Ġlazy Ġ{ ĠApp Preferences Utils ( this ) Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Pause () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Pause () ĊĠĠĠĠĠĠĠ Ġis Activity Running Ġ= Ġfalse ĊĠĠĠĠĠĠĠ ĠJ z vd . release All Videos () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// ç¦ģ æŃ¢ app åŃĹ ä½ĵ å¤§å°ı è·Ł éļı ç³»ç»Ł åŃĹ ä½ĵ å¤§å°ı è°ĥ èĬĤ ĊĠĠĠ Ġoverride Ġfun Ġget Resources (): ĠResources Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġfont Scale Ġ= Ġapp Preferences . font Scale ĊĠĠĠĠĠĠĠ Ġval Ġresources Ġ= Ġsuper . getResources () ĊĠĠĠĠĠĠĠ Ġif Ġ( resources . configuration . font Scale Ġ!= Ġfont Scale ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġconfiguration Ġ= Ġresources . configuration ĊĠĠĠĠĠĠĠĠĠĠĠ Ġconfiguration . font Scale Ġ= Ġfont Scale ĊĠĠĠĠĠĠĠĠĠĠĠ Ġresources . update Configuration ( configuration , Ġresources . display Metrics ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġresources ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprotected Ġfun Ġshow Dialog ( dialog : ĠDialog ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( is Activity Running ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdialog . show () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġfalse ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġshow Dialog ( builder : ĠAlertDialog . Builder . () Ġ-> ĠUnit ): ĠAlertDialog Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġdialog Ġ= ĠAlertDialog . Builder ( this ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. apply ( builder ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. create () ĊĠĠĠĠĠĠĠ Ġif Ġ( is Activity Running ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdialog . show () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġdialog ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Stop () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Stop () ĊĠĠĠĠĠĠĠ ĠVoice Player View . Manager . release () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġopen Ġval Ġis Need Imm ersion Bar : ĠBoolean Ġ= Ġtrue ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ Ġfix Background () ĊĠĠĠĠĠĠĠ Ġget Device Density () ĊĠĠĠĠĠĠĠ Ġinstance . add Activity ( this ) ĊĠĠĠĠĠĠĠ ĠTheme Util . set Theme ( this ) ĊĠĠĠĠĠĠĠ Ġold Theme Ġ= ĠTheme Util . get Theme ( this ) ĊĠĠĠĠĠĠĠ Ġif Ġ( is Need Imm ersion Bar ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrefresh StatusBar Color () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ( get Layout Id () Ġ!= Ġ- 1 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠsetContentView ( get Layout Id ()) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠB utter Kn ife . bind ( this ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġfix Background () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġdecor Ġ= Ġwindow . decor View Ġas ĠViewGroup ĊĠĠĠĠĠĠĠ Ġval Ġdecor Child Ġ= Ġdecor . getChild At ( 0 ) Ġas ĠViewGroup ĊĠĠĠĠĠĠĠ Ġdecor Child . set BackgroundColor ( Color . BLACK ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġrefresh UI If Need () Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( TextUtils . equals ( old Theme , ĠTheme Util . get Theme ( this )) Ġ&& ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTheme Util . THEME _ CUSTOM Ġ!= ĠTheme Util . get Theme ( this ) Ġ&& ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ! Theme Util . is Trans luc ent Theme ( this )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ( re create If Need ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ ĠTheme Utils . refresh UI ( this , Ġthis ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Resume () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Resume () ĊĠĠĠĠĠĠĠ Ġis Activity Running Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġif Ġ( app Preferences . follow System Night ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( Base Application . is System Night Ġ&& Ġ! Theme Util . is Night Mode ( this )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSharedPreferences Util . put ( Theme Util . get SharedPreferences ( this ), ĠMainActivity . SP _ SHO ULD _ SHOW _ SN ACK BAR , Ġtrue ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTheme Util . switch To Night Mode ( this , Ġfalse ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ(! Base Application . is System Night Ġ&& ĠTheme Util . is Night Mode ( this )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSharedPreferences Util . put ( Theme Util . get SharedPreferences ( this ), ĠMainActivity . SP _ SHO ULD _ SHOW _ SN ACK BAR , Ġtrue ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTheme Util . switch From Night Mode ( this , Ġfalse ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġrefresh UI If Need () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Destroy () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Destroy () ĊĠĠĠĠĠĠĠ Ġinstance . remove Activity ( this ) ĊĠĠĠĠĠĠĠ Ġjob . cancel () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġexit Application () Ġ{ ĊĠĠĠĠĠĠĠ Ġinstance . removeAll Activity () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Options ItemSelected ( item : ĠMenuItem ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġwhen Ġ( item . itemId ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġandroid . R . id . home Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! Handle Back Util . handle Back Press ( this )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfinish () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . menu _ exit Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfinish () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġsuper . on Options ItemSelected ( item ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate Options Menu ( menu : ĠMenu ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( m Tint Toolbar Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Tint Toolbar !!. tint () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Prepare Options Menu ( menu : ĠMenu ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( m Tint Toolbar Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Tint Toolbar !!. tint () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġset Support ActionBar ( toolbar : ĠToolbar ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . set Support ActionBar ( toolbar ) ĊĠĠĠĠĠĠĠ Ġif Ġ( toolbar Ġis ĠT int Toolbar ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Tint Toolbar Ġ= Ġtoolbar ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Back Pressed () Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ(! Handle Back Util . handle Back Press ( this )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsuper . on Back Pressed () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġopen Ġfun ĠsetTitle ( new Title : ĠString ?) Ġ{} ĊĠĠĠ Ġopen Ġfun Ġset Sub Title ( new Title : ĠString ?) Ġ{} ĊĊĠĠĠ Ġprotected Ġfun Ġget Device Density () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġmetrics Ġ= ĠDisplay Metrics () ĊĠĠĠĠĠĠĠ Ġwindow Manager . default Display . get Metrics ( metrics ) ĊĠĠĠĠĠĠĠ Ġval Ġwidth Ġ= Ġmetrics . width Pixels ĊĠĠĠĠĠĠĠ Ġval Ġheight Ġ= Ġmetrics . height Pixels ĊĠĠĠĠĠĠĠ ĠBase Application . Screen Info . EX ACT _ SCREEN _ HEIGHT Ġ= Ġheight ĊĠĠĠĠĠĠĠ ĠBase Application . Screen Info . EX ACT _ SCREEN _ WIDTH Ġ= Ġwidth ĊĠĠĠĠĠĠĠ Ġval Ġdensity Ġ= Ġmetrics . density ĊĠĠĠĠĠĠĠ ĠBase Application . Screen Info . D ENS ITY Ġ= Ġmetrics . density ĊĠĠĠĠĠĠĠ ĠBase Application . Screen Info . SCREEN _ HEIGHT Ġ= Ġ( height Ġ/ Ġdensity ). toInt () ĊĠĠĠĠĠĠĠ ĠBase Application . Screen Info . SCREEN _ WIDTH Ġ= Ġ( width Ġ/ Ġdensity ). toInt () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprotected Ġfun Ġcolor Anim ( view : ĠImageView , Ġvar arg Ġvalue : ĠInt ): ĠValue Animator Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġanim ator : ĠValue Animator Ġ= ĠObject Animator . of Argb ( ImageView Anim Wrapper ( view ), Ġ" tint ", Ġ* value ) ĊĠĠĠĠĠĠĠ Ġanim ator . duration Ġ= Ġ 1 5 0 ĊĠĠĠĠĠĠĠ Ġanim ator . interpol ator Ġ= ĠAccel erate De cel erate Interpolator () ĊĠĠĠĠĠĠĠ Ġreturn Ġanim ator ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprotected Ġfun Ġcolor Anim ( view : ĠTextView , Ġvar arg Ġvalue : ĠInt ): ĠValue Animator Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġanim ator : ĠValue Animator Ġ= ĠObject Animator . of Argb ( TextView Anim Wrapper ( view ), Ġ" textColor ", Ġ* value ) ĊĠĠĠĠĠĠĠ Ġanim ator . duration Ġ= Ġ 1 5 0 ĊĠĠĠĠĠĠĠ Ġanim ator . interpol ator Ġ= ĠAccel erate De cel erate Interpolator () ĊĠĠĠĠĠĠĠ Ġreturn Ġanim ator ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġset Custom Status Color ( custom Status Color : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( Theme Util . is Trans luc ent Theme ( this )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġthis . custom Status Color Ġ= Ġcustom Status Color ĊĠĠĠĠĠĠĠ Ġrefresh StatusBar Color () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġopen Ġfun Ġrefresh StatusBar Color () Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( Theme Util . is Trans luc ent Theme ( this )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠImm ersion Bar . with ( this ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. transparent Bar () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. init () ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠImm ersion Bar . with ( this ). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( custom Status Color Ġ!= Ġ- 1 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstatus Bar Color Int ( custom Status Color ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġauto StatusBar Dark Mode Enable ( true ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstatus Bar Color Int ( calc StatusBar Color ( this @ Base Activity , ĠTheme Utils . getColor By Attr ( this @ Base Activity , ĠR . attr . color Toolbar ))) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstatus Bar Dark Font ( Theme Util . is StatusBar Font Dark ( this @ Base Activity )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfits System Windows Int ( true , ĠTheme Utils . getColor By Attr ( this @ Base Activity , ĠR . attr . color Bg )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnavigation Bar Color Int ( Theme Utils . getColor By Attr ( this @ Base Activity , ĠR . attr . color NavBar )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnavigation Bar Dark Icon ( Theme Util . is NavigationBar Font Dark ( this @ Base Activity )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}. init () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ(! status Bar Tint ed ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstatus Bar Tint ed Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Call Super ĊĠĠĠ Ġoverride Ġfun Ġrefresh Global ( activity : ĠActivity ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( is Need Imm ersion Bar ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrefresh StatusBar Color () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġold Theme Ġ= ĠTheme Util . get Theme ( this ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġrecreate If Need (): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( Theme Util . is Night Mode ( this ) Ġ&& Ġ! Theme Util . is Night Mode ( old Theme ) Ġ|| ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ! Theme Util . is Night Mode ( this ) Ġ&& ĠTheme Util . is Night Mode ( old Theme )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrecreate () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ( old Theme ?. contains ( Theme Util . THEME _ TRANSL UC ENT ) Ġ== Ġtrue Ġ&& Ġ! Theme Util . is Trans luc ent Theme ( this ) Ġ|| ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTheme Util . is Trans luc ent Theme ( this ) Ġ&& Ġold Theme ?. contains ( Theme Util . THEME _ TRANSL UC ENT ) Ġ== Ġfalse ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrecreate () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġfalse ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġrefresh Specific View ( view : ĠView ) Ġ{} ĊĊĠĠĠ Ġ@ Keep ĊĠĠĠ Ġprotected Ġclass ĠTextView Anim Wrapper ( private Ġval Ġm Target : ĠTextView ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ@ get : Color Int ĊĠĠĠĠĠĠĠ Ġvar ĠtextColor : ĠInt ĊĠĠĠĠĠĠĠĠĠĠĠ Ġget () Ġ= Ġm Target . current TextColor ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset ( color ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Target . setTextColor ( color ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Keep ĊĠĠĠ Ġprotected Ġclass ĠImageView Anim Wrapper ( private Ġval Ġm Target : ĠImageView ) Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġt int : ĠInt ĊĠĠĠĠĠĠĠĠĠĠĠ Ġget () Ġ= Ġif Ġ( m Target . image Tint List Ġ!= Ġnull ) Ġm Target . image Tint List !!. default Color Ġelse Ġ 0 x 0 0 0 0 0 0 0 0 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset ( color ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Target . image Tint List Ġ= ĠColor State List . valueOf ( color ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġopen Ġfun Ġget Layout Id (): ĠInt Ġ= Ġ- 1 ĊĊĠĠĠ Ġfun Ġlaunch IO ( ĊĠĠĠĠĠĠĠ Ġstart : ĠCor outine Start Ġ= ĠCor outine Start . DEFAULT , ĊĠĠĠĠĠĠĠ Ġblock : Ġsuspend ĠCor outine Scope . () Ġ-> ĠUnit ĊĠĠĠ Ġ): ĠJob Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġlaunch ( Dispatch ers . IO Ġ+ Ġjob , Ġstart , Ġblock ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġfun Ġcalc StatusBar Color ( context : ĠContext , Ġ@ Color Int Ġorigin Color : ĠInt ): ĠInt Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġdark er StatusBar Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( Theme Util . THEME _ CUSTOM Ġ== ĠTheme Util . get Theme ( context ) Ġ&& Ġ! SharedPreferences Util . get ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontext , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSharedPreferences Util . SP _ SETTINGS ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. getBoolean ( Theme Util . SP _ CUSTOM _ TOOL BAR _ PRIMARY _ COLOR , Ġtrue ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdark er StatusBar Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( Theme Util . get Theme ( context ) Ġ== ĠTheme Util . THEME _ WHITE ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdark er StatusBar Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ(! SharedPreferences Util . get ( context , ĠSharedPreferences Util . SP _ SETTINGS ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. getBoolean (" status _ bar _ dark er ", Ġtrue ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdark er StatusBar Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( dark er StatusBar ) ĠColor Utils . get Dark er Color ( origin Color ) Ġelse Ġorigin Color ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }