package Ġcom . free let ics . flow redux . compose Ċ Ċ import Ġandroidx . compose . runtime .* Ċ import Ġcom . free let ics . flow redux . dsl . Flow Redux StateMachine Ċ import Ġkotlinx . coroutines . Experimental Cor outines Api Ċ import Ġkotlinx . coroutines . Flow Preview Ċ import Ġkotlinx . coroutines . flow . collect Ċ import Ġkotlinx . coroutines . flow . drop Ċ import Ġkotlinx . coroutines . launch Ċ Ċ /** Ċ Ġ* ĠGet Ġa ĠCompose Ġ[ State ] Ġobject Ġfrom Ġa Ġ[ Flow Redux StateMachine ]. Ċ Ġ*/ Ċ @ Experimental Cor outines Api Ċ @ Flow Preview Ċ @ Composable Ċ public Ġfun Ġ< S Ġ: ĠAny , ĠA Ġ: ĠAny > ĠFlow Redux StateMachine < S , ĠA >. remember State (): ĠState < S > Ġ{ ĊĠĠĠ Ġreturn Ġproduce State ( initial Value Ġ= Ġthis . initialState , Ġthis ) Ġ{ ĊĠĠĠĠĠĠĠ Ġstate . drop ( 1 ) Ġ// Ġskip Ġthe Ġfirst Ġone Ġas Ġit Ġis Ġthe Ġinitial Ġstate Ġwhich Ġis Ġalready Ġsubmitted Ġwith Ġproduce State 's Ġinitial Ġstate ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. collect Ġ{ Ġvalue Ġ= Ġit Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ /** Ċ Ġ* ĠThis Ġclass Ġis Ġthe Ġreturn Ġtype Ġof Ġ[ Flow Redux StateMachine . state And Dispatch ()]. Ċ Ġ* ĠIt Ġis Ġmainly Ġmeant Ġto Ġbe Ġused Ġwith ĠKotlin 's Ġde con structions Ġfeature Ġas Ġfollows : Ċ Ġ* Ċ Ġ* Ġ``` kotlin Ċ Ġ* Ġval Ġmy StateMachine Ġ= ĠMy Flow Redux StateMachine () Ċ Ġ* Ċ Ġ* Ġ@ Composable Ċ Ġ* Ġfun ĠMy Ui (){ Ċ Ġ* ĠĠ Ġval Ġ( state , Ġdispatch ) Ġ= Ġmy StateMachine . remember State And Dispatch () Ċ Ġ* ĠĠ Ġ... Ċ Ġ* Ġ} Ċ Ġ* Ġ``` Ċ Ġ*/ Ċ public Ġdata Ġclass ĠState And Dispatch < S Ġ: ĠAny , ĠA Ġ: ĠAny >( ĊĠĠĠ Ġpublic Ġval Ġstate : ĠState < S >, ĊĠĠĠ Ġpublic Ġval Ġdispatch Action : Ġ( A ) Ġ-> ĠUnit Ċ ) Ċ Ċ /** Ċ Ġ* ĠCon ven ient Ġway Ġto Ġget Ġa ĠCompose Ġ[ State ] Ġto Ġget Ġstate Ġupdate Ġof Ġa Ġ[ Flow Redux StateMachine ] Ċ Ġ* Ġand Ġa Ġfunction Ġof Ġtype Ġ`( Action ) Ġ-> ĠUnit ` Ġto Ġdispatch ĠActions Ġto Ġa Ġ[ Flow Redux StateMachine ]. Ċ Ġ* ĠUnder Ġthe Ġh ood Ġ` State ` Ġwill Ġbe Ġupdated Ġonly Ġas Ġlong Ġas Ġthe Ġsurrounding ĠComp osable Ġis Ġin Ġuse . Ċ Ġ* ĠThe Ġdispatch Ġfunction Ġ`( Action ) Ġ-> ĠUnit ` Ġis Ġtight Ġto Ġthe Ġsame ĠComp osable Ġcomponent Ġand Ġla unches Ċ Ġ* Ġa Ġcoroutine Ġto Ġdispatch Ġactions Ġasync . Ġto Ġthe Ġ` Flow Redux StateMachine ` Ċ Ġ*/ Ċ @ Experimental Cor outines Api Ċ @ Flow Preview Ċ @ Composable Ċ public Ġfun Ġ< S Ġ: ĠAny , ĠA Ġ: ĠAny > ĠFlow Redux StateMachine < S , ĠA >. remember State And Dispatch (): ĠState And Dispatch < S , ĠA > Ġ{ ĊĠĠĠ Ġval Ġstate Machine Ġ= Ġthis ĊĠĠĠ Ġval Ġscope Ġ= Ġremember Coroutine Scope () ĊĠĠĠ Ġreturn ĠState And Dispatch ( ĊĠĠĠĠĠĠĠ Ġstate Ġ= Ġstate Machine . remember State (), ĊĠĠĠĠĠĠĠ Ġdispatch Action Ġ= Ġremember ( state Machine ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ{ Ġaction : ĠA Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġscope . launch Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstate Machine . dispatch ( action ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}) Ċ } Ċ