package Ġcom . spin planet . mv v mb ase Ċ Ċ import Ġandroid . app . Application Ċ import Ġandroid . content . Context Ċ import Ġandroidx . lifecycle . Lifecycle Observer Ċ import Ġandroidx . lifecycle . Process Lifecycle Owner Ċ import Ġcom . spin planet . mv v mb ase . di . App Component Ċ import Ġcom . spin planet . mv v mb ase . di . Application Module Ċ import Ġcom . spin planet . mv v mb ase . di . D agger App Component Ċ import Ġdagger . android . D agger Application Ċ import Ġjava . lang . ref . Weak Reference Ċ Ċ class ĠMy App Ġ: ĠApplication (), ĠLifecycle Observer Ġ{ ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġvar Ġforeground Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġprivate Ġlateinit Ġvar Ġmy ApplicationContext : ĠWeak Reference < Context > ĊĠĠĠĠĠĠĠ Ġlateinit Ġvar Ġcomponent : ĠApp Component ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprivate Ġset ĊĊĠĠĠĠĠĠĠ Ġfun Ġis Foreground (): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġforeground ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfun Ġget My ApplicationContext (): ĠWeak Reference < Context > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġmy ApplicationContext ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġoverride Ġfun ĠonCreate () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate () ĊĊĠĠĠĠĠĠĠ Ġmy ApplicationContext Ġ= ĠWeak Reference ( this ) ĊĠĠĠĠĠĠĠ ĠProcess Lifecycle Owner . get (). lifecycle . add Observer ( this ) ĊĊĠĠĠĠĠĠĠ Ġsetup Component () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġsetup Component () Ġ{ ĊĠĠĠĠĠĠĠ Ġcomponent Ġ= ĠD agger App Component . builder () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. application Module ( Application Module ( this )). build () ĊĠĠĠĠĠĠĠ Ġcomponent . inject ( this ) ĊĊĠĠĠ Ġ} Ċ Ċ }