package Ġcom . tri kot . view models . sample . view models . home Ċ Ċ import Ġcom . m ire go . tri kot . foundation . ref . weak Atomic Reference Ċ import Ġcom . m ire go . tri kot . streams . reactive . Publish Subject Ċ import Ġcom . m ire go . tri kot . streams . reactive . Publish ers Ċ import Ġcom . m ire go . tri kot . streams . reactive . distinct Until Changed Ċ import Ġcom . m ire go . tri kot . streams . reactive . filter Ċ import Ġcom . m ire go . tri kot . streams . reactive . just Ċ import Ġcom . m ire go . tri kot . streams . reactive . map Ċ import Ġcom . m ire go . tri kot . streams . reactive . shared Ċ import Ġcom . m ire go . tri kot . view models . ListItem ViewModel Ċ import Ġcom . m ire go . tri kot . view models . lifecycle . Application State Ċ import Ġcom . m ire go . tri kot . view models . lifecycle . Application State Publisher Ċ import Ġcom . m ire go . tri kot . view models . mutable . Mutable List ViewModel Ċ import Ġcom . m ire go . tri kot . view models . properties . ViewModel Action Ċ import Ġcom . tri kot . view models . sample . navigation . Destination Ċ import Ġcom . tri kot . view models . sample . navigation . Navigation Delegate Ċ import Ġcom . tri kot . view models . sample . view models . Mutable Header ListItem ViewModel Ċ import Ġcom . tri kot . view models . sample . view models . Mutable Label ListItem ViewModel Ċ import Ġcom . tri kot . view models . sample . view models . Mutable Navig able ListItem ViewModel Ċ import Ġorg . reactiv est ream s . Publisher Ċ Ċ class ĠHome ViewModel Impl Ġ: ĊĠĠĠ ĠMutable List ViewModel < ListItem ViewModel >() Ġ{ ĊĊĠĠĠ Ġvar Ġnavigation Delegate : ĠNavigation Delegate ? Ġby Ġweak Atomic Reference () ĊĊĠĠĠ Ġprivate Ġval Ġapplication State Publisher Ġ= ĠApplication State Publisher () ĊĊĠĠĠ Ġprivate Ġval Ġbackground Count Ġ= ĠPublish ers . publish Subject < Int >() ĊĠĠĠ Ġprivate Ġval Ġbackground State Counter Ġ= ĊĠĠĠĠĠĠĠ Ġapplication State Publisher . distinct Until Changed () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. filter Ġ{ Ġit Ġ== ĠApplication State . FO REG ROUND Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. increment Counter ( background Count ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. shared () ĊĊĠĠĠ Ġoverride Ġvar Ġelements : ĠPublisher < List < ListItem ViewModel >> Ġ= ĠlistOf < ListItem ViewModel >( ĊĠĠĠĠĠĠĠ ĠMutable Navig able ListItem ViewModel (). also Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . title . text Ġ= Ġ" Views Ġ-> ". just () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . action Ġ= ĠViewModel Action Ġ{ Ġnavigation Delegate ?. navigate To ( Destination . V IE WS ) Ġ}. just () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . title . action Ġ= Ġit . action ĊĠĠĠĠĠĠĠ Ġ}, ĊĊĠĠĠĠĠĠĠ ĠMutable Navig able ListItem ViewModel (). also Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . title . text Ġ= Ġ" Labels Ġ-> ". just () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . action Ġ= ĠViewModel Action Ġ{ Ġnavigation Delegate ?. navigate To ( Destination . LABEL S ) Ġ}. just () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . title . action Ġ= Ġit . action ĊĠĠĠĠĠĠĠ Ġ}, ĊĊĠĠĠĠĠĠĠ ĠMutable Navig able ListItem ViewModel (). also Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . title . text Ġ= Ġ" Buttons Ġ-> ". just () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . action Ġ= ĠViewModel Action Ġ{ Ġnavigation Delegate ?. navigate To ( Destination . BUTTON S ) Ġ}. just () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . title . action Ġ= Ġit . action ĊĠĠĠĠĠĠĠ Ġ}, ĊĊĠĠĠĠĠĠĠ ĠMutable Navig able ListItem ViewModel (). also Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . title . text Ġ= Ġ" Images Ġ-> ". just () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . action Ġ= ĠViewModel Action Ġ{ Ġnavigation Delegate ?. navigate To ( Destination . I MAGES ) Ġ}. just () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . title . action Ġ= Ġit . action ĊĠĠĠĠĠĠĠ Ġ}, ĊĊĠĠĠĠĠĠĠ ĠMutable Navig able ListItem ViewModel (). also Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . title . text Ġ= Ġ" Input Ġtext Ġ-> ". just () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . action Ġ= ĠViewModel Action Ġ{ Ġnavigation Delegate ?. navigate To ( Destination . INPUT _ TEXT ) Ġ}. just () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . title . action Ġ= Ġit . action ĊĠĠĠĠĠĠĠ Ġ}, ĊĊĠĠĠĠĠĠĠ ĠMutable Navig able ListItem ViewModel (). also Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . title . text Ġ= Ġ" Slider Ġ-> ". just () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . action Ġ= ĠViewModel Action Ġ{ Ġnavigation Delegate ?. navigate To ( Destination . SL ID ERS ) Ġ}. just () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . title . action Ġ= Ġit . action ĊĠĠĠĠĠĠĠ Ġ}, ĊĊĠĠĠĠĠĠĠ ĠMutable Navig able ListItem ViewModel (). also Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . title . text Ġ= Ġ" Switch Ġ-> ". just () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . action Ġ= ĠViewModel Action Ġ{ Ġnavigation Delegate ?. navigate To ( Destination . SWITCH ES ) Ġ}. just () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . title . action Ġ= Ġit . action ĊĠĠĠĠĠĠĠ Ġ}, ĊĊĠĠĠĠĠĠĠ ĠMutable Navig able ListItem ViewModel (). also Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . title . text Ġ= Ġ" Picker Ġ-> ". just () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . action Ġ= ĠViewModel Action Ġ{ Ġnavigation Delegate ?. navigate To ( Destination . P ICK ERS ) Ġ}. just () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . title . action Ġ= Ġit . action ĊĠĠĠĠĠĠĠ Ġ}, ĊĊĠĠĠĠĠĠĠ ĠMutable Header ListItem ViewModel (" Application Ġstate "), ĊĊĠĠĠĠĠĠĠ ĠMutable Label ListItem ViewModel (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlabel . text Ġ= Ġbackground State Counter . map Ġ{ Ġ" W ent Ġto Ġforeground Ġ$ it Ġtimes " Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ). just () Ċ } Ċ Ċ fun Ġ< T > ĠPublisher < T >. increment Counter ( ĊĠĠĠ Ġcounter : ĠPublish Subject < Int > Ċ ): ĠPublisher < Int > Ġ{ ĊĠĠĠ Ġreturn Ġmap Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcurrent Count Ġ= Ġcounter . value Ġ?: Ġ 0 ĊĠĠĠĠĠĠĠ Ġval Ġnext Count Ġ= Ġcurrent Count Ġ+ Ġ 1 ĊĠĠĠĠĠĠĠ Ġcounter . value Ġ= Ġnext Count ĊĠĠĠĠĠĠĠ Ġnext Count ĊĠĠĠ Ġ} Ċ } Ċ