package Ġpy x is . uz uki . live . rich util sk t . module . reference Ċ Ċ import Ġandroid . app . Activity Ċ import Ġandroid . app . Application Ċ import Ġandroid . content . Context Ċ import Ġandroid . os . Bundle Ċ import Ġjava . lang . ref . Weak Reference Ċ import Ġjava . util .* Ċ Ċ /** Ċ Ġ* ĠRich Utils Kt Ċ Ġ* ĠClass : ĠActivity Reference Ċ Ġ* ĠCreated Ġby ĠPy x is Ġon Ġ 2 / 4 / 1 8 . Ċ Ġ* Ċ Ġ* ĠDescription : Ċ Ġ*/ Ċ Ċ object ĠActivity Reference Ġ{ ĊĠĠĠ Ġprivate Ġvar Ġm Top Activity Weak Ref : ĠWeak Reference < Activity >? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġval Ġm Activity List : ĠLinkedList < Activity > Ġ= ĠLinkedList () ĊĠĠĠ Ġprivate Ġvar Ġm Application Weak Ref : ĠWeak Reference < Application >? Ġ= Ġnull ĊĊĠĠĠ Ġprivate Ġval Ġm Callbacks Ġ= Ġobject Ġ: ĠApplication . Activity Lifecycle Callbacks Ġ{ ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Activity Created ( activity : ĠActivity , Ġbundle : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Activity List . add ( activity ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset Top Activity Weak Ref ( activity ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Activity Started ( activity : ĠActivity ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset Top Activity Weak Ref ( activity ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Activity Res umed ( activity : ĠActivity ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset Top Activity Weak Ref ( activity ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Activity Destroyed ( activity : ĠActivity ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Activity List . remove ( activity ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Activity Paused ( activity : ĠActivity ) Ġ{} ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Activity Stopped ( activity : ĠActivity ) Ġ{} ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Activity Save InstanceState ( activity : ĠActivity , Ġbundle : ĠBundle ?) Ġ{} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Jvm Static ĊĠĠĠ Ġfun Ġinitialize ( application : ĠApplication ) Ġ{ ĊĠĠĠĠĠĠĠ Ġm Application Weak Ref Ġ= ĠWeak Reference ( application ) ĊĠĠĠĠĠĠĠ Ġapplication . register Activity Lifecycle Callbacks ( m Callbacks ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Jvm Static ĊĠĠĠ Ġfun Ġget Activ ty Reference (): ĠActivity ? Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( m Top Activity Weak Ref Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġactivity Ġ= Ġ( m Top Activity Weak Ref Ġas ĠWeak Reference < Activity >). get () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( activity Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġactivity ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġsize Ġ= Ġm Activity List . size ĊĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( size Ġ> Ġ 0 ) Ġm Activity List [ size Ġ- Ġ 1 ] Ġelse Ġnull ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Jvm Static ĊĠĠĠ Ġfun ĠgetContext (): ĠContext Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġget Activ ty Reference () Ġ?: Ġm Application Weak Ref ?. get () Ġas ĠContext ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Jvm Static ĊĠĠĠ Ġfun ĠgetActivity List () Ġ= Ġm Activity List ĊĊĠĠĠ Ġprivate Ġfun Ġset Top Activity Weak Ref ( activity : ĠActivity ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( m Top Activity Weak Ref Ġ== Ġnull Ġ|| Ġactivity Ġ!= Ġ( m Top Activity Weak Ref Ġas ĠWeak Reference < Activity >). get ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Top Activity Weak Ref Ġ= ĠWeak Reference ( activity ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }