package Ġcom . br ins . light music Ċ Ċ import Ġandroid . app . Activity Ċ import Ġandroid . app . Application Ċ import Ġandroid . content . Context Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . util . Log Ċ import Ġcom . br ins . lib _ common . utils . Sp Utils Ċ import Ġcom . br ins . light music . common . AppConfig Ċ import Ġcom . br ins . light music . manager . App Manager Ċ import Ġcom . br ins . light music . model . database . Database Factory Ċ import Ġcom . br ins . light music . utils .* Ċ import Ġdagger . h ilt . android . H ilt Android App Ċ import Ġio . reactivex . plugins . Rx Java Plugins Ċ Ċ @ H ilt Android App Ċ class ĠBase Application Ġ: ĠApplication () Ġ{ ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġ@ Jvm Static ĊĠĠĠĠĠĠĠ Ġvar Ġs Instance : ĠBase Application ? Ġ= Ġnull ĊĊĠĠĠĠĠĠĠ Ġfun ĠgetInstance (): ĠBase Application Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( s Instance Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠNullPointerException (" please Ġinherit Ġcom . br ins . light music . Base Application Ġor Ġcall Ġset Application .") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġs Instance !! ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate () ĊĠĠĠĠĠĠĠ ĠRx Java Plugins . set ErrorHandler Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// å¼Ĥå¸¸ å¤ĦçĲĨ ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġset Application ( this ) ĊĠĠĠĠĠĠĠ Ġif Ġ( is Main Process ( this )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinit Rx Java () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinit UserData () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Synchron ized ĊĠĠĠ Ġprivate Ġfun Ġset Application ( base Application : ĠBase Application ) Ġ{ ĊĠĠĠĠĠĠĠ Ġs Instance Ġ= Ġbase Application ĊĠĠĠĠĠĠĠ Ġbase Application . register Activity Lifecycle Callbacks ( object Ġ: ĠActivity Lifecycle Callbacks Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Activity Paused ( activity : ĠActivity ?) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Activity Res umed ( activity : ĠActivity ?) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Activity Started ( activity : ĠActivity ?) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Activity Destroyed ( activity : ĠActivity ?) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠApp Manager . getApp Manager (). remove Activity ( activity ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Activity Save InstanceState ( activity : ĠActivity ?, Ġout State : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Activity Stopped ( activity : ĠActivity ?) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Activity Created ( activity : ĠActivity ?, ĠsavedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠApp Manager . getApp Manager (). add Activity ( activity ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġfun Ġis Main Process ( context : ĠContext ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠApp Config . Package . MAIN _ PROCESS _ NAME Ġ== Ġget Curr Process Name ( context ) ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġprivate Ġfun Ġinit Rx Java () Ġ{ ĊĠĠĠĠĠĠĠ ĠRx Java Plugins . set ErrorHandler Ġ{ ĠLog . e (" Rx Java ", Ġ" RX Ġerror Ġhandler ") Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġinit UserData () Ġ{ ĊĠĠĠĠĠĠĠ ĠApp Config . is Login Ġ= ĠSp Utils . obtain ( SP _ USER _ INFO , Ġthis ). getBoolean ( KEY _ IS _ LOGIN , Ġfalse ) ĊĠĠĠĠĠĠĠ ĠApp Config . User Cookie Ġ= ĠSp Utils . obtain ( SP _ USER _ INFO , Ġthis ). getString ( KEY _ COOKIE , Ġ"") ĊĠĠĠĠĠĠĠ Ġif Ġ( AppConfig . is Login ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠDatabase Factory . getUser Info (). subscribe Db Result ({ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠApp Config . user Account Ġ= Ġit ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}, Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . printStackTrace () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠDatabase Factory . getUser Profile (). subscribe Db Result ({ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠApp Config . user Profile Ġ= Ġit ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}, Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . printStackTrace () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }