package Ġcn . th ens . kd roid . app Ċ Ċ import Ġandroid . app . Activity Ċ import Ġandroid . app . Application Ċ import Ġandroid . os . Bundle Ċ import Ġjava . lang . ref . Weak Reference Ċ Ċ object ĠTop Activity Ġ{ ĊĠĠĠ Ġvar Ġstate Ġ= ĠState . INITIAL IZED ĊĠĠĠĠĠĠĠ Ġprivate Ġset ( value ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfield Ġ= Ġvalue ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġvar Ġtop Activity Ref Ġ= ĠWeak Reference < Activity >( null ) ĊĊĠĠĠ Ġfun Ġoptional (): ĠActivity ? Ġ= Ġtop Activity Ref . get () ĊĊĠĠĠ Ġfun Ġget (): ĠActivity Ġ= Ġoptional () !! ĊĊĠĠĠ Ġprivate Ġfun Ġset ( activity : ĠActivity , Ġstate : ĠState ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( state Ġ<= ĠState . RE SU MED ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . state Ġ= Ġstate ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtop Activity Ref Ġ= ĠWeak Reference ( activity ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( activity Ġ== Ġget ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . state Ġ= Ġstate ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinternal Ġfun Ġinitialize ( application : ĠApplication ) Ġ{ ĊĠĠĠĠĠĠĠ Ġapplication . register Activity Lifecycle Callbacks ( object Ġ: ĠApplication . Activity Lifecycle Callbacks Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Activity Created ( activity : ĠActivity , ĠsavedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset ( activity , ĠState . CREATED ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Activity Started ( activity : ĠActivity ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset ( activity , ĠState . STARTED ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Activity Res umed ( activity : ĠActivity ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset ( activity , ĠState . RE SU MED ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Activity Paused ( activity : ĠActivity ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset ( activity , ĠState . PA USED ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Activity Stopped ( activity : ĠActivity ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset ( activity , ĠState . STOP PED ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Activity Destroyed ( activity : ĠActivity ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset ( activity , ĠState . DESTROY ED ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Activity Save InstanceState ( activity : ĠActivity , Ġout State : ĠBundle ?) Ġ= ĠUnit ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġenum Ġclass ĠState Ġ{ ĊĠĠĠĠĠĠĠ ĠINITIAL IZED , ĊĠĠĠĠĠĠĠ ĠCRE ATED , ĊĠĠĠĠĠĠĠ ĠSTART ED , ĊĠĠĠĠĠĠĠ ĠRES U MED , ĊĠĠĠĠĠĠĠ ĠPA USED , ĊĠĠĠĠĠĠĠ ĠSTOP PED , ĊĠĠĠĠĠĠĠ ĠDEST ROY ED ĊĠĠĠ Ġ} Ċ }