package Ġcom . mg . ax ech en . wan android . base Ċ Ċ import Ġandroid . app . Activity Ċ import Ġandroid . app . Activity Manager Ċ import Ġandroid . content . Broadcast Receiver Ċ import Ġandroid . content . Context Ċ import Ġandroid . content . Intent Ċ import Ġandroid . os . Build Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . support . v 7 . app . AppCompatActivity Ċ import Ġandroid . view . View Ċ import Ġandroid . view . WindowManager Ċ import Ġcom . b ilib ili . magic as ak ura . utils . Theme Utils Ċ import Ġcom . gy f . bar library . Imm ersion Bar Ċ import Ġcom . mg . ax ech en . wan android . R Ċ import Ġcom . mg . ax ech en . wan android . theme . Theme Helper Ċ import Ġandroid . content . Intent Filter Ċ import Ġcom . mg . ax ech en . wan android . utils . Contacts Ċ import Ġjava . lang . ref . Weak Reference ĊĊ Ċ /** Ċ Ġ* ĠCreated Ġby ĠA xe Ch en Ġon Ġ 2 0 1 8 / 3 / 1 9 . Ċ Ġ* Ċ Ġ* ĠBase Activity Ġ åŁº ç±» activity Ċ Ġ*/ Ċ abstract Ġclass ĠBase Activity Ġ: ĠAppCompatActivity () Ġ{ ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġimm ersion Bar : ĠImm ersion Bar ĊĊĠĠĠ Ġprivate Ġvar ĠmCurrent Theme : ĠInt Ġ= Ġ 0 ĊĊĠĠĠ Ġprivate Ġvar Ġreceiver : ĠMy Login Status Receiver ? Ġ= Ġnull ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ ĠmCurrent Theme Ġ= ĠTheme Helper . get Theme ( this ) ĊĠĠĠĠĠĠĠ ĠsetContentView ( setLayout Id ()) ĊĠĠĠĠĠĠĠ Ġinit Imm ersion Bar () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprotected Ġfun Ġregister Login Status Receiver () Ġ{ ĊĠĠĠĠĠĠĠ Ġreceiver Ġ= ĠMy Login Status Receiver ( this )// å¹¿ æĴŃ æİ¥åıĹ èĢħ å®ŀä¾ĭ ĊĠĠĠĠĠĠĠ Ġval Ġintent Filter Ġ= ĠIntent Filter () ĊĠĠĠĠĠĠĠ Ġintent Filter . addAction ( Contacts . LOGIN _ SUCCESS ) ĊĠĠĠĠĠĠĠ Ġregister Receiver ( receiver , Ġintent Filter ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprotected Ġabstract Ġfun Ġset Layout Id (): ĠInt ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġä¿®æĶ¹ ä¸»é¢ĺ ä¹ĭåĲİ ï¼Į on Resume åĪ·æĸ° çī¹ å®ļçļĦ æİ§ä»¶ ( æľī äºĽ æİ§ä»¶ æĺ¯ éĢļè¿ĩ ä»£çłģ è®¾ç½® çļĦ é¢ľèī² åĽłæŃ¤ éľĢè¦ģ ä¸» åĬ¨ åİ» åĪ·æĸ° æİ§ä»¶ ) ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġopen Ġfun Ġchange Theme Refresh () Ġ{ ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġopen Ġfun Ġlogin Success () Ġ{ ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġopen Ġfun Ġinit Imm ersion Bar () Ġ{ ĊĠĠĠĠĠĠĠ Ġimm ersion Bar Ġ= ĠImm ersion Bar . with ( this ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Destroy () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Destroy () ĊĠĠĠĠĠĠĠ Ġimm ersion Bar . destroy () ĊĠĠĠĠĠĠĠ Ġif Ġ( receiver Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġunregister Receiver ( receiver ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġfinish () Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ(! is Finish ing ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsuper . finish () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Post Create ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Post Create ( savedInstanceState ) ĊĠĠĠĠĠĠĠ Ġif Ġ( Build . VERSION . SDK _ INT Ġ>= Ġ 2 1 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġwindow Ġ= Ġwindow ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwindow . add Flags ( WindowManager . LayoutParams . FLAG _ DR AWS _ SYSTEM _ BAR _ BACK GRO UN DS ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwindow . clear Flags ( WindowManager . LayoutParams . FLAG _ TRANSL UC ENT _ STATUS ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwindow . status Bar Color Ġ= ĠTheme Utils . getColor ById ( this , ĠR . color . theme _ color _ primary _ dark ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdescription Ġ= ĠActivity Manager . Task Description ( null , Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTheme Utils . get Theme Attr Color ( this , Ġandroid . R . attr . color Primary )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset Task Description ( description ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġopen Ġfun Ġchange Theme ( current Theme : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( Theme Helper . get Theme ( this ) Ġ!== Ġcurrent Theme ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTheme Utils . refresh UI ( this , Ġobject Ġ: ĠTheme Utils . Extra Refresh able Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġrefresh Global ( activity : ĠActivity ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// for Ġglobal Ġsetting , Ġjust Ġdo Ġonce ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( Build . VERSION . SDK _ INT Ġ>= Ġ 2 1 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcontext Ġ= Ġthis ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtask Description Ġ= ĠActivity Manager . Task Description ( null , Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTheme Utils . get Theme Attr Color ( this @ Base Activity , Ġandroid . R . attr . color Primary )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Task Description ( task Description ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwindow . status Bar Color Ġ= ĠTheme Utils . getColor ById ( this @ Base Activity , ĠR . color . theme _ color _ primary _ dark ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠmCurrent Theme Ġ= ĠTheme Helper . get Theme ( this @ Base Activity ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġrefresh Specific View ( view : ĠView ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// TODO : Ġwill Ġdo Ġthis Ġfor Ġeach Ġtraversal ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ çĻ»å½ķ çĬ¶æĢģ å¹¿ æĴŃ æİ¥æĶ¶ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġclass ĠMy Login Status Receiver ( activity : ĠBase Activity ) Ġ: ĠBroadcast Receiver () Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġvar Ġweak Activity : ĠWeak Reference < Base Activity >? Ġ= Ġnull ĊĊĠĠĠĠĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . weak Activity Ġ= ĠWeak Reference ( activity ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Receive ( context : ĠContext ?, Ġintent : ĠIntent ?) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġweak Activity ?. get ()?. login Success () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Resume () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Resume () ĊĠĠĠĠĠĠĠ Ġchange Theme Refresh () ĊĠĠĠĠĠĠĠ Ġchange Theme ( m Current Theme ) ĊĠĠĠ Ġ} Ċ }