package Ġcom . we alth front . mage ll an . lifecycle Ċ Ċ import Ġandroid . annotation . Suppress Lint Ċ import Ġandroid . content . Context Ċ import Ġcom . we alth front . mage ll an . lifecycle . Lifecycle State Direction . BACK WAR DS Ċ import Ġcom . we alth front . mage ll an . lifecycle . Lifecycle State Direction . FORWARD Ċ import Ġcom . we alth front . mage ll an . lifecycle . Lifecycle State Direction . NO _ MOVE MENT Ċ Ċ public Ġsealed Ġclass ĠLifecycle State ( public Ġopen Ġval Ġcontext : ĠContext ? Ġ= Ġnull , Ġinternal Ġval Ġorder : ĠInt ) Ġ{ ĊĊĠ Ġ@ Suppress Lint (" Static Field Leak ") ĊĠ Ġpublic Ġobject ĠDestroy ed Ġ: ĠLifecycle State ( null , Ġ 0 ) ĊĠ Ġpublic Ġdata Ġclass ĠCreated ( override Ġval Ġcontext : ĠContext ) Ġ: ĠLifecycle State ( context , Ġ 1 ) ĊĠ Ġpublic Ġdata Ġclass ĠSh own ( override Ġval Ġcontext : ĠContext ) Ġ: ĠLifecycle State ( context , Ġ 2 ) ĊĠ Ġpublic Ġdata Ġclass ĠRes umed ( override Ġval Ġcontext : ĠContext ) Ġ: ĠLifecycle State ( context , Ġ 3 ) ĊĊĠ Ġinternal Ġfun Ġget Direction For Movement ( other : ĠLifecycle State ) Ġ= Ġwhen Ġ{ ĊĠĠĠ Ġorder Ġ> Ġother . order Ġ-> ĠBACK WAR DS ĊĠĠĠ Ġorder Ġ== Ġother . order Ġ-> ĠNO _ MOVE MENT ĊĠĠĠ Ġorder Ġ< Ġother . order Ġ-> ĠFOR WARD ĊĠĠĠ Ġelse Ġ-> Ġthrow ĠIllegalStateException (" Unhandled Ġorder Ġcomparison : Ġthis Ġis Ġ$ order Ġand Ġother Ġis Ġ${ other . order }") ĊĠ Ġ} ĊĊĠ Ġinternal Ġfun Ġget E ar lier Of Current State (): ĠLifecycle State Ġ= Ġwhen Ġ( this ) Ġ{ ĊĠĠĠ Ġis ĠDestroy ed Ġ-> ĠDestroy ed ĊĠĠĠ Ġis ĠCreated , Ġis ĠSh own , Ġis ĠRes umed Ġ-> ĠCreated ( context !! ) ĊĠ Ġ} Ċ } Ċ Ċ public Ġenum Ġclass ĠLifecycle State Direction Ġ{ ĊĠ ĠFOR WARD , ĠBACK WAR DS , ĠNO _ MOVE MENT ; Ċ } Ċ