package Ġcom . ark iv an ov . mv ik otlin . extensions . android x . instance keeper Ċ Ċ import Ġandroidx . lifecycle . Lifecycle Owner Ċ import Ġandroidx . lifecycle . Lifecycle Registry Ċ import Ġandroidx . lifecycle . ViewModel Store Ċ import Ġandroidx . lifecycle . ViewModel Store Owner Ċ import Ġcom . ark iv an ov . mv ik otlin . extensions . android x . lifecycle . Test Lifecycle Callbacks Ċ import Ġcom . ark iv an ov . mv ik otlin . extensions . android x . lifecycle . Test Lifecycle Callbacks . Event Ċ import Ġorg . junit . Test Ċ import Ġkotlin . test . assertSame Ċ import Ġandroidx . lifecycle . Lifecycle Ġas ĠAndroid Lifecycle Ċ Ċ class ĠAndroid Instance Keeper Test Ġ{ ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġret ains _ instance _ WHEN _ re created () Ġ{ ĊĠĠĠĠĠĠĠ Ġval ĠviewModel Store Ġ= ĠViewModel Store () ĊĠĠĠĠĠĠĠ Ġval Ġinstance Ġ= ĠData () ĊĠĠĠĠĠĠĠ ĠOwner ( viewModel Store ). keeper . instance Ġ= Ġinstance ĊĊĠĠĠĠĠĠĠ Ġval Ġnew Instance Ġ= ĠOwner ( viewModel Store ). keeper . instance ĊĊĠĠĠĠĠĠĠ ĠassertSame ( instance , Ġnew Instance ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġcalls _ lifecycle () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcallbacks Ġ= ĠTest Lifecycle Callbacks () ĊĊĠĠĠĠĠĠĠ Ġval ĠviewModel Store Ġ= ĠViewModel Store () ĊĠĠĠĠĠĠĠ Ġval Ġowner 1 Ġ= ĠOwner ( viewModel Store ) ĊĠĠĠĠĠĠĠ Ġowner 1 . keeper . lifecycle . subscribe ( callbacks ) ĊĠĠĠĠĠĠĠ Ġowner 1 . resume () ĊĠĠĠĠĠĠĠ Ġowner 1 . destroy () ĊĠĠĠĠĠĠĠ Ġval Ġowner 2 Ġ= ĠOwner ( viewModel Store ) ĊĠĠĠĠĠĠĠ Ġowner 2 . resume () ĊĠĠĠĠĠĠĠ Ġowner 2 . destroy () ĊĠĠĠĠĠĠĠ ĠviewModel Store . clear () ĊĊĠĠĠĠĠĠĠ Ġcallbacks . assert Events ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠEvent . ON _ CREATE , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠEvent . ON _ START , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠEvent . ON _ RE SU ME , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠEvent . ON _ PAUSE , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠEvent . ON _ STOP , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠEvent . ON _ START , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠEvent . ON _ RE SU ME , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠEvent . ON _ PAUSE , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠEvent . ON _ STOP , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠEvent . ON _ DESTROY ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun ĠOwner . resume () Ġ{ ĊĠĠĠĠĠĠĠ Ġlifecycle . handle Lifecycle Event ( Android Lifecycle . Event . ON _ CREATE ) ĊĠĠĠĠĠĠĠ Ġlifecycle . handle Lifecycle Event ( Android Lifecycle . Event . ON _ START ) ĊĠĠĠĠĠĠĠ Ġlifecycle . handle Lifecycle Event ( Android Lifecycle . Event . ON _ RE SU ME ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun ĠOwner . destroy () Ġ{ ĊĠĠĠĠĠĠĠ Ġlifecycle . handle Lifecycle Event ( Android Lifecycle . Event . ON _ PAUSE ) ĊĠĠĠĠĠĠĠ Ġlifecycle . handle Lifecycle Event ( Android Lifecycle . Event . ON _ STOP ) ĊĠĠĠĠĠĠĠ Ġlifecycle . handle Lifecycle Event ( Android Lifecycle . Event . ON _ DESTROY ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġclass ĠData ĊĊĠĠĠ Ġprivate Ġclass ĠOwner ( ĊĠĠĠĠĠĠĠ Ġprivate Ġval ĠviewModel Store : ĠViewModel Store ĊĠĠĠ Ġ) Ġ: ĠViewModel Store Owner , ĠLifecycle Owner Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġlifecycle Ġ= ĠLifecycle Registry ( this ) ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġprovider Ġ= ĠgetInstance Keeper Provider () ĊĠĠĠĠĠĠĠ Ġvar Ġke eper Ġ= Ġprovider . get < Data >( key Ġ= Ġ" key ") ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġget ViewModel Store (): ĠViewModel Store Ġ= ĠviewModel Store ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġget Lifecycle (): ĠAndroid Lifecycle Ġ= Ġlifecycle ĊĠĠĠ Ġ} Ċ } Ċ