/* Ċ Ġ* ĠCopyright Ġ 2 0 2 0 ĠThe ĠAndroid ĠOpen ĠSource ĠProject Ċ Ġ* Ċ Ġ* ĠLicensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "); Ċ Ġ* Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . Ċ Ġ* ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat Ċ Ġ* Ċ Ġ* ĠĠĠĠĠ Ġhttp :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ġ* Ċ Ġ* ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware Ċ Ġ* Ġdistributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , Ċ Ġ* ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . Ċ Ġ* ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ċ Ġ* Ġlimitations Ġunder Ġthe ĠLicense . Ċ Ġ*/ Ċ Ċ package Ġandroidx . activity . result Ċ Ċ import Ġandroid . app . Activity . RESULT _ OK Ċ import Ġandroid . content . Intent Ċ import Ġandroid . os . Bundle Ċ import Ġandroidx . activity . result . contract . Activity Result Contract Ċ import Ġandroidx . activity . result . contract . Activity Result Contracts . Start Activity For Result Ċ import Ġandroidx . activity . result . contract . Activity Result Contracts . Take Picture Ċ import Ġandroidx . activity . result . contract . Activity Result Contracts . Take Picture Preview Ċ import Ġandroidx . core . app . Activity Options Compat Ċ import Ġandroidx . lifecycle . Lifecycle Ċ import Ġandroidx . lifecycle . testing . Test Lifecycle Owner Ċ import Ġandroidx . test . ext . junit . runners . Android JUnit 4 Ċ import Ġandroidx . test . filters . Medium Test Ċ import Ġcom . google . common . truth . Truth . assertThat Ċ import Ġorg . junit . Assert . fail Ċ import Ġorg . junit . Test Ċ import Ġorg . junit . runner . RunWith Ċ Ċ @ Medium Test Ċ @ RunWith ( Android JUnit 4 :: class ) Ċ class ĠActivity Result Registry Test Ġ{ ĊĠĠĠ Ġprivate Ġval Ġregistry Ġ= Ġobject Ġ: ĠActivity Result Registry () Ġ{ ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġ< I Ġ: ĠAny ?, ĠO Ġ: ĠAny ?> Ġon Launch ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrequest Code : ĠInt , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontract : ĠActivity Result Contract < I , ĠO >, ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinput : ĠI , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoptions : ĠActivity Options Compat ? ĊĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdispatch Result ( request Code , ĠRESULT _ OK , ĠIntent ()) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Register Lifecycle Owner Callback () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġlifecycle Owner Ġ= ĠTest Lifecycle Owner ( Lifecycle . State . INITIAL IZED ) ĊĠĠĠĠĠĠĠ Ġvar Ġresult Returned Ġ= Ġfalse ĊĊĠĠĠĠĠĠĠ Ġ// Ġregister Ġfor Ġthe Ġresult ĊĠĠĠĠĠĠĠ Ġval Ġactivity Result Ġ= Ġregistry . register ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" test ", Ġlifecycle Owner , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTake Picture Preview (), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠActivity Result Callback Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresult Returned Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġ// Ġmove Ġthe Ġstate Ġto Ġstarted ĊĠĠĠĠĠĠĠ Ġlifecycle Owner . currentState Ġ= ĠLifecycle . State . STARTED ĊĊĠĠĠĠĠĠĠ Ġ// Ġlaunch Ġthe Ġresult ĊĠĠĠĠĠĠĠ Ġactivity Result . launch ( null ) ĊĊĠĠĠĠĠĠĠ ĠassertThat ( result Returned ). isTrue () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Lifecycle Owner Callback Restore d Then Started () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġlifecycle Owner Ġ= ĠTest Lifecycle Owner ( Lifecycle . State . CREATED ) ĊĊĠĠĠĠĠĠĠ Ġ// Ġregister Ġfor Ġthe Ġresult ĊĠĠĠĠĠĠĠ Ġval Ġactivity Result Ġ= Ġregistry . register ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" test ", Ġlifecycle Owner , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTake Picture Preview (), ĠActivity Result Callback Ġ{} ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġ// Ġsaved Ġthe Ġstate Ġof Ġthe Ġregistry ĊĠĠĠĠĠĠĠ Ġval Ġstate Ġ= ĠBundle () ĊĠĠĠĠĠĠĠ Ġregistry . on Save InstanceState ( state ) ĊĊĠĠĠĠĠĠĠ Ġ// Ġunregister Ġthe Ġcallback Ġto Ġsimulate Ġprocess Ġdeath ĊĠĠĠĠĠĠĠ Ġactivity Result . unregister () ĊĊĠĠĠĠĠĠĠ Ġ// Ġrestore Ġthe Ġstate Ġof Ġthe Ġregistry ĊĠĠĠĠĠĠĠ Ġregistry . on Restore InstanceState ( state ) ĊĊĠĠĠĠĠĠĠ Ġ// Ġlaunch Ġthe Ġresult ĊĠĠĠĠĠĠĠ Ġactivity Result . launch ( null ) ĊĊĠĠĠĠĠĠĠ Ġvar Ġresult Returned Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġ// Ġre - register Ġfor Ġthe Ġresult Ġthat Ġshould Ġhave Ġbeen Ġsaved ĊĠĠĠĠĠĠĠ Ġregistry . register ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" test ", Ġlifecycle Owner , ĠTake Picture Preview (), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠActivity Result Callback Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresult Returned Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġlifecycle Owner . currentState Ġ= ĠLifecycle . State . STARTED ĊĊĠĠĠĠĠĠĠ ĠassertThat ( result Returned ). isTrue () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Lifecycle Owner Register When Started () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġlifecycle Owner Ġ= ĠTest Lifecycle Owner () ĊĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġregister Ġfor Ġthe Ġresult ĊĠĠĠĠĠĠĠĠĠĠĠ Ġregistry . register ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" test ", Ġlifecycle Owner , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTake Picture Preview (), ĠActivity Result Callback Ġ{} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfail (" Register ing Ġfor Ġactivity Ġresult Ġafter ĠLifecycle ĠON _ CREATE Ġshould Ġfail ") ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠIllegalStateException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠassertThat ( e ). has Message That (). contains ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Lifecycle Owner Ġ$ lifecycle Owner Ġis Ġattempting Ġto Ġregister Ġwhile Ġcurrent Ġstate Ġ" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" is Ġ" Ġ+ Ġlifecycle Owner . currentState Ġ+ Ġ". ĠLifecycle Owners Ġmust Ġcall Ġ" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" register Ġbefore Ġthey Ġare ĠSTART ED ." ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Lifecycle Owner Callback When Started () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġlifecycle Owner Ġ= ĠTest Lifecycle Owner ( Lifecycle . State . INITIAL IZED ) ĊĊĠĠĠĠĠĠĠ Ġ// Ġregister Ġfor Ġthe Ġresult ĊĠĠĠĠĠĠĠ Ġval Ġactivity Result Ġ= Ġregistry . register ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" test ", Ġlifecycle Owner , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTake Picture Preview (), ĠActivity Result Callback Ġ{} ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġ// Ġsaved Ġthe Ġstate Ġof Ġthe Ġregistry ĊĠĠĠĠĠĠĠ Ġval Ġstate Ġ= ĠBundle () ĊĠĠĠĠĠĠĠ Ġregistry . on Save InstanceState ( state ) ĊĊĠĠĠĠĠĠĠ Ġ// Ġunregister Ġthe Ġcallback Ġto Ġsimulate Ġprocess Ġdeath ĊĠĠĠĠĠĠĠ Ġactivity Result . unregister () ĊĊĠĠĠĠĠĠĠ Ġ// Ġrestore Ġthe Ġstate Ġof Ġthe Ġregistry ĊĠĠĠĠĠĠĠ Ġregistry . on Restore InstanceState ( state ) ĊĊĠĠĠĠĠĠĠ Ġvar Ġresult Returned Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġ// Ġre - register Ġfor Ġthe Ġresult Ġthat Ġshould Ġhave Ġbeen Ġsaved ĊĠĠĠĠĠĠĠ Ġregistry . register ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" test ", Ġlifecycle Owner , ĠTake Picture Preview (), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠActivity Result Callback Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresult Returned Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġ// Ġlaunch Ġthe Ġresult ĊĠĠĠĠĠĠĠ Ġactivity Result . launch ( null ) ĊĊĠĠĠĠĠĠĠ Ġ// Ġmove Ġto ĠCRE ATED Ġand Ġmake Ġsure Ġthe Ġcallback Ġis Ġnot Ġfired ĊĠĠĠĠĠĠĠ Ġlifecycle Owner . currentState Ġ= ĠLifecycle . State . CREATED ĊĠĠĠĠĠĠĠ ĠassertThat ( result Returned ). isFalse () ĊĊĠĠĠĠĠĠĠ Ġ// Ġmove Ġto ĠSTART ED Ġand Ġmake Ġsure Ġthe Ġcallback Ġfires ĊĠĠĠĠĠĠĠ Ġlifecycle Owner . currentState Ġ= ĠLifecycle . State . STARTED ĊĠĠĠĠĠĠĠ ĠassertThat ( result Returned ). isTrue () ĊĊĠĠĠĠĠĠĠ Ġ// ĠReset Ġback Ġto ĠCRE ATED ĊĠĠĠĠĠĠĠ Ġlifecycle Owner . currentState Ġ= ĠLifecycle . State . CREATED ĊĠĠĠĠĠĠĠ Ġresult Returned Ġ= Ġfalse ĊĊĠĠĠĠĠĠĠ Ġ// ĠMove Ġback Ġto ĠSTART ED Ġand Ġmake Ġsure Ġthe Ġpreviously Ġreturned Ġresult ĊĠĠĠĠĠĠĠ Ġ// Ġisn 't Ġsent Ġa Ġsecond Ġtime ĊĠĠĠĠĠĠĠ Ġlifecycle Owner . currentState Ġ= ĠLifecycle . State . STARTED ĊĠĠĠĠĠĠĠ ĠassertThat ( result Returned ). isFalse () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Lifecycle Owner Callback With Dispatch Result () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġlifecycle Owner Ġ= ĠTest Lifecycle Owner ( Lifecycle . State . INITIAL IZED ) ĊĊĠĠĠĠĠĠĠ Ġval Ġdispatch Result Registry Ġ= Ġobject Ġ: ĠActivity Result Registry () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġ< I Ġ: ĠAny ?, ĠO Ġ: ĠAny ?> Ġon Launch ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrequest Code : ĠInt , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontract : ĠActivity Result Contract < I , ĠO >, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinput : ĠI , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoptions : ĠActivity Options Compat ? ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdispatch Result ( request Code , Ġtrue ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġvar Ġresult Returned Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġval Ġactivity Result Ġ= Ġdispatch Result Registry . register ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" test ", Ġlifecycle Owner , ĠTake Picture (), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠActivity Result Callback Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresult Returned Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġ// Ġlaunch Ġthe Ġresult ĊĠĠĠĠĠĠĠ Ġactivity Result . launch ( null ) ĊĊĠĠĠĠĠĠĠ Ġ// Ġmove Ġto ĠCRE ATED Ġand Ġmake Ġsure Ġthe Ġcallback Ġis Ġnot Ġfired ĊĠĠĠĠĠĠĠ Ġlifecycle Owner . currentState Ġ= ĠLifecycle . State . CREATED ĊĠĠĠĠĠĠĠ ĠassertThat ( result Returned ). isFalse () ĊĊĠĠĠĠĠĠĠ Ġ// Ġmove Ġto ĠSTART ED Ġand Ġmake Ġsure Ġthe Ġcallback Ġfires ĊĠĠĠĠĠĠĠ Ġlifecycle Owner . currentState Ġ= ĠLifecycle . State . STARTED ĊĠĠĠĠĠĠĠ ĠassertThat ( result Returned ). isTrue () ĊĊĠĠĠĠĠĠĠ Ġ// ĠReset Ġback Ġto ĠCRE ATED ĊĠĠĠĠĠĠĠ Ġlifecycle Owner . currentState Ġ= ĠLifecycle . State . CREATED ĊĠĠĠĠĠĠĠ Ġresult Returned Ġ= Ġfalse ĊĊĠĠĠĠĠĠĠ Ġ// ĠMove Ġback Ġto ĠSTART ED Ġand Ġmake Ġsure Ġthe Ġpreviously Ġreturned Ġresult ĊĠĠĠĠĠĠĠ Ġ// Ġisn 't Ġsent Ġa Ġsecond Ġtime ĊĠĠĠĠĠĠĠ Ġlifecycle Owner . currentState Ġ= ĠLifecycle . State . STARTED ĊĠĠĠĠĠĠĠ ĠassertThat ( result Returned ). isFalse () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Lifecycle Owner Callback With Null Dispatch Result () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġlifecycle Owner Ġ= ĠTest Lifecycle Owner ( Lifecycle . State . INITIAL IZED ) ĊĊĠĠĠĠĠĠĠ Ġval Ġdispatch Result Registry Ġ= Ġobject Ġ: ĠActivity Result Registry () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġ< I Ġ: ĠAny ?, ĠO Ġ: ĠAny ?> Ġon Launch ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrequest Code : ĠInt , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontract : ĠActivity Result Contract < I , ĠO >, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinput : ĠI , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoptions : ĠActivity Options Compat ? ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdispatch Result ( request Code , Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġvar Ġresult Returned Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġval Ġactivity Result Ġ= Ġdispatch Result Registry . register ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" test ", Ġlifecycle Owner , ĠTake Picture Preview (), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠActivity Result Callback Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresult Returned Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġ// Ġlaunch Ġthe Ġresult ĊĠĠĠĠĠĠĠ Ġactivity Result . launch ( null ) ĊĊĠĠĠĠĠĠĠ Ġ// Ġmove Ġto ĠCRE ATED Ġand Ġmake Ġsure Ġthe Ġcallback Ġis Ġnot Ġfired ĊĠĠĠĠĠĠĠ Ġlifecycle Owner . currentState Ġ= ĠLifecycle . State . CREATED ĊĠĠĠĠĠĠĠ ĠassertThat ( result Returned ). isFalse () ĊĊĠĠĠĠĠĠĠ Ġ// Ġmove Ġto ĠSTART ED Ġand Ġmake Ġsure Ġthe Ġcallback Ġfires ĊĠĠĠĠĠĠĠ Ġlifecycle Owner . currentState Ġ= ĠLifecycle . State . STARTED ĊĠĠĠĠĠĠĠ ĠassertThat ( result Returned ). isTrue () ĊĊĠĠĠĠĠĠĠ Ġ// ĠReset Ġback Ġto ĠCRE ATED ĊĠĠĠĠĠĠĠ Ġlifecycle Owner . currentState Ġ= ĠLifecycle . State . CREATED ĊĠĠĠĠĠĠĠ Ġresult Returned Ġ= Ġfalse ĊĊĠĠĠĠĠĠĠ Ġ// ĠMove Ġback Ġto ĠSTART ED Ġand Ġmake Ġsure Ġthe Ġpreviously Ġreturned Ġresult ĊĠĠĠĠĠĠĠ Ġ// Ġisn 't Ġsent Ġa Ġsecond Ġtime ĊĠĠĠĠĠĠĠ Ġlifecycle Owner . currentState Ġ= ĠLifecycle . State . STARTED ĊĠĠĠĠĠĠĠ ĠassertThat ( result Returned ). isFalse () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest Lifecycle Owner Callback Un registered () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġlifecycle Owner Ġ= ĠTest Lifecycle Owner ( Lifecycle . State . INITIAL IZED ) ĊĊĠĠĠĠĠĠĠ Ġ// Ġregister Ġfor Ġthe Ġresult ĊĠĠĠĠĠĠĠ Ġval Ġactivity Result Ġ= Ġregistry . register ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" test ", Ġlifecycle Owner , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTake Picture Preview (), ĠActivity Result Callback Ġ{} ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġ// Ġsaved Ġthe Ġstate Ġof Ġthe Ġregistry ĊĠĠĠĠĠĠĠ Ġval Ġstate Ġ= ĠBundle () ĊĠĠĠĠĠĠĠ Ġregistry . on Save InstanceState ( state ) ĊĊĠĠĠĠĠĠĠ Ġ// Ġunregister Ġthe Ġcallback Ġto Ġsimulate Ġprocess Ġdeath ĊĠĠĠĠĠĠĠ Ġactivity Result . unregister () ĊĊĠĠĠĠĠĠĠ Ġ// Ġrestore Ġthe Ġstate Ġof Ġthe Ġregistry ĊĠĠĠĠĠĠĠ Ġregistry . on Restore InstanceState ( state ) ĊĊĠĠĠĠĠĠĠ Ġ// Ġlaunch Ġthe Ġresult ĊĠĠĠĠĠĠĠ Ġactivity Result . launch ( null ) ĊĊĠĠĠĠĠĠĠ Ġvar Ġresult Returned Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġ// Ġre - register Ġfor Ġthe Ġresult Ġthat Ġshould Ġhave Ġbeen Ġsaved ĊĠĠĠĠĠĠĠ Ġregistry . register ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" test ", Ġlifecycle Owner , ĠTake Picture Preview (), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠActivity Result Callback Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresult Returned Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġ// Ġmove Ġto ĠCRE ATED Ġand Ġmake Ġsure Ġthe Ġcallback Ġis Ġnot Ġfired ĊĠĠĠĠĠĠĠ Ġlifecycle Owner . currentState Ġ= ĠLifecycle . State . CREATED ĊĠĠĠĠĠĠĠ ĠassertThat ( result Returned ). isFalse () ĊĊĠĠĠĠĠĠĠ Ġ// Ġunregister Ġthe Ġcallback ĊĠĠĠĠĠĠĠ Ġregistry . unregister (" test ") ĊĊĠĠĠĠĠĠĠ Ġ// Ġmove Ġto ĠSTART ED Ġand Ġmake Ġsure Ġthe Ġcallback Ġis Ġnot Ġfired ĊĠĠĠĠĠĠĠ Ġlifecycle Owner . currentState Ġ= ĠLifecycle . State . STARTED ĊĠĠĠĠĠĠĠ ĠassertThat ( result Returned ). isFalse () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest On Restore InstanceState () Ġ{ ĊĠĠĠĠĠĠĠ Ġregistry . register (" key ", ĠStart Activity For Result ()) Ġ{} ĊĊĠĠĠĠĠĠĠ Ġval Ġsaved State Ġ= ĠBundle () ĊĠĠĠĠĠĠĠ Ġregistry . on Save InstanceState ( saved State ) ĊĊĠĠĠĠĠĠĠ Ġregistry . on Restore InstanceState ( saved State ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Test ĊĠĠĠ Ġfun Ġtest On Restore InstanceState No Keys () Ġ{ ĊĠĠĠĠĠĠĠ Ġregistry . on Restore InstanceState ( Bundle ()) ĊĠĠĠ Ġ} Ċ }