package Ġz io x . ram iro . sa es . features . sa es . features . agenda . view _ models Ċ Ċ import Ġandroidx . compose . runtime . mutable State Of Ċ import Ġandroidx . lifecycle . ViewModel Ċ import Ġandroidx . lifecycle . viewModel Scope Ċ import Ġkotlinx . coroutines . flow . Mutable State Flow Ċ import Ġkotlinx . coroutines . flow . collect Ċ import Ġkotlinx . coroutines . launch Ċ import Ġz io x . ram iro . sa es . features . sa es . features . agenda . data . models . Ag enda Calendar Ċ import Ġz io x . ram iro . sa es . features . sa es . features . agenda . data . repositories . Ag enda Repository Ċ import Ġz io x . ram iro . sa es . utils . dismiss After Timeout Ċ Ċ class ĠAg enda List ViewModel ( ĊĠĠĠ Ġprivate Ġval Ġag enda Repository : ĠAg enda Repository Ċ ) Ġ: ĠViewModel () Ġ{ ĊĠĠĠ Ġval Ġag enda List Ġ= Ġmutable State Of < List < Ag enda Calendar >? >( null ) ĊĠĠĠ Ġval Ġis Adding Ag enda Ġ= Ġmutable State Of ( false ) ĊĠĠĠ Ġval Ġis Removing Ag enda Ġ= Ġmutable State Of < ArrayList < String >>( array ListOf ()) ĊĠĠĠ Ġval Ġerror Ġ= ĠMutable State Flow < String ? >( null ) ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġfetch Ag end as () ĊĠĠĠĠĠĠĠ Ġerror . dismiss After Timeout () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġfetch Ag end as () Ġ= ĠviewModel Scope . launch Ġ{ ĊĠĠĠĠĠĠĠ Ġkotlin . run Catch ing Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġag enda Repository . get Cal endars (). collect Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġag enda List . value Ġ= Ġit ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}. on Failure Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . printStackTrace () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġerror . value Ġ= Ġ" Error Ġal Ġobtener Ġla Ġlista Ġde Ġag end as " ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġadd Ag enda ( agenda Name : ĠString ) Ġ= ĠviewModel Scope . launch Ġ{ ĊĠĠĠĠĠĠĠ Ġis Adding Ag enda . value Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġkotlin . run Catch ing Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġag enda Repository . add Calendar ( agenda Name ) ĊĠĠĠĠĠĠĠ Ġ}. on Failure Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġerror . value Ġ= Ġ" Error Ġal Ġag regar Ġla Ġag enda " ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġis Adding Ag enda . value Ġ= Ġfalse ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġremove Ag enda ( calendar Id : ĠString ) Ġ= ĠviewModel Scope . launch Ġ{ ĊĠĠĠĠĠĠĠ Ġis Removing Ag enda . value Ġ= Ġ( is Removing Ag enda . value . clone () Ġas ĠArrayList < String >). also Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . add ( calendar Id ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġkotlin . run Catch ing Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġag enda Repository . remove Calendar ( calendar Id ) ĊĠĠĠĠĠĠĠ Ġ}. on Failure Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġerror . value Ġ= Ġ" Error Ġal Ġelim inar Ġla Ġag enda " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis Removing Ag enda . value Ġ= Ġ( is Removing Ag enda . value . clone () Ġas ĠArrayList < String >). also Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . remove ( calendar Id ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }