package Ġco . touch lab . k amp kit Ċ Ċ import Ġco . touch lab . k amp kit . db . B reed Ċ import Ġco . touch lab . k amp kit . models . B reed Model Ċ import Ġco . touch lab . k amp kit . models . Item Data Summary Ċ import Ġco . touch lab . ker mit . Ker mit Ċ import Ġco . touch lab . state ly . ensure Never Frozen Ċ import Ġkotlinx . coroutines . Dispatch ers Ċ import Ġkotlinx . coroutines . flow . collect Ċ import Ġkotlinx . coroutines . launch Ċ import Ġorg . k oin . core . K oin Component Ċ import Ġorg . k oin . core . inject Ċ import Ġorg . k oin . core . parameter . parameters Of Ċ Ċ class ĠNative ViewModel ( ĊĠĠĠ Ġprivate Ġval Ġview Update : Ġ( Item Data Summary ) Ġ-> ĠUnit , ĊĠĠĠ Ġprivate Ġval Ġerror Update : Ġ( String ) Ġ-> ĠUnit Ċ ) Ġ: ĠK oin Component Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġlog : ĠKer mit Ġby Ġinject Ġ{ Ġparameters Of (" B reed Model ") Ġ} ĊĠĠĠ Ġprivate Ġval Ġscope Ġ= ĠMain Scope ( Dispatch ers . Main , Ġlog ) ĊĠĠĠ Ġprivate Ġval Ġb reed Model : ĠB reed Model ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġensure Never Frozen () ĊĠĠĠĠĠĠĠ Ġb reed Model Ġ= ĠB reed Model () ĊĠĠĠĠĠĠĠ Ġobserve B reed s () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġobserve B reed s () Ġ{ ĊĠĠĠĠĠĠĠ Ġscope . launch Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlog . v Ġ{ Ġ" Ob serve ĠB reed s " Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġb reed Model . selectAll B reed s () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. collect Ġ{ Ġsummary Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlog . v Ġ{ Ġ" Collect ing ĠThings " Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġview Update ( summary ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget B reed s From Network () Ġ{ ĊĠĠĠĠĠĠĠ Ġscope . launch Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġb reed Model . getB reed s From Network ()?. let Ġ{ Ġerror String Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġerror Update ( error String ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġupdate B reed Favorite ( bre ed : ĠB reed ) Ġ{ Ċ // Ġcreate Ġa Ġcrash : ĠIndex OutOfBoundsException ĊĊĠĠĠĠĠĠĠ Ġvar Ġdata List : ĠMutable List < String > Ġ= Ġmutable ListOf () ĊĠĠĠĠĠĠĠ Ġdata List [ 1 0 0 ] ĊĊĠĠĠĠĠĠĠ Ġscope . launch Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġb reed Model . update B reed Favorite ( bre ed ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġon Destroy () Ġ{ ĊĠĠĠĠĠĠĠ Ġscope . on Destroy () ĊĠĠĠ Ġ} Ċ } Ċ