package Ġcz . pr ague . cv ut . fit . ste ue jan . am tel app . view _ models . fragments Ċ Ċ import Ġandroidx . lifecycle . LiveData Ċ import Ġandroidx . lifecycle . Mutable LiveData Ċ import Ġandroidx . lifecycle . ViewModel Ċ import Ġandroidx . lifecycle . viewModel Scope Ċ import Ġcz . pr ague . cv ut . fit . ste ue jan . am tel app . data . repository . Group Repository Ċ import Ġcz . pr ague . cv ut . fit . ste ue jan . am tel app . business . util . Date Util Ċ import Ġcz . pr ague . cv ut . fit . ste ue jan . am tel app . data . entities . Group Ċ import Ġcz . pr ague . cv ut . fit . ste ue jan . am tel app . states . Invalid Week Ċ import Ġcz . pr ague . cv ut . fit . ste ue jan . am tel app . states . Valid Week Ċ import Ġcz . pr ague . cv ut . fit . ste ue jan . am tel app . states . Week State Ċ import Ġkotlinx . coroutines . launch Ċ Ċ class ĠSchedule Round Fragment VM Ġ: ĠViewModel () Ċ { ĊĠĠĠ Ġprivate Ġval Ġ_ week Ġ= ĠMutable LiveData < Week State >() ĊĠĠĠ Ġval Ġweek : ĠLive Data < Week State > Ġ= Ġ_ week ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġvalid Week : ĠValid Week ĊĊĠĠĠ Ġ/* ------------------------------------------------ --- */ ĊĊĠĠĠ Ġfun Ġadd Week ( week : ĠString , Ġgroup : ĠGroup , Ġround : ĠInt ) ĊĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠ Ġif ( confirm Week ( week )) ĊĠĠĠĠĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠviewModel Scope . launch Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġround Dates Ġ= Ġgroup . round Dates ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġround Dates [ round . toString ()] Ġ= Ġweek . toInt () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif ( Group Repository . update Group ( group . id , Ġmap Of (" round Dates " Ġto Ġround Dates ))) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ_ week . value Ġ= Ġvalid Week ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget Week ( group : ĠGroup , Ġround : ĠInt ) ĊĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠ ĠviewModel Scope . launch Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġround Dates Ġ= Ġgroup . round Dates ĊĠĠĠĠĠĠĠĠĠĠĠ Ġround Dates [ round . toString ()] ?. let Ġ{ Ġweek Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ_ week . value Ġ= ĠValid Week ( week , ĠDate Util . get Week Date ( week )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġconfirm Week ( week String : ĠString ): ĠBoolean ĊĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġweek Ġ= ĠWeek State . validate ( week String ) ĊĠĠĠĠĠĠĠ Ġif ( week Ġis ĠInvalid Week ) ĊĠĠĠĠĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ_ week . value Ġ= Ġweek ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġvalid Week Ġ= Ġweek Ġas ĠValid Week ĊĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠ Ġ} Ċ Ċ } Ċ