package Ġedu . kit . out wait . recyclerview Scre ens . management View Screen Ċ Ċ import Ġandroidx . lifecycle . Mediator LiveData Ċ import Ġandroidx . lifecycle . ViewModel Ċ import Ġdagger . h ilt . android . lifecycle . H ilt ViewModel Ċ import Ġedu . kit . out wait . institute Repository . Inst itute Repository Ċ import Ġedu . kit . out wait . waiting Queue . time Slot Model . Time Slot Ċ import Ġjavax . inject . Inject Ċ Ċ /** Ċ Ġ* ĠKeep s Ġall Ġdata Ġfrom Ġmanagement View Fragment Ċ Ġ* Ċ Ġ* Ġ@ property Ġrepo ĠInstance Ġof Ġinst itute Ġrepository Ċ Ġ* Ġ@ property Ġcoord inator ĠExec utes Ġnavigation Ċ Ġ*/ Ċ @ H ilt ViewModel Ċ class ĠManagement View ViewModel Ġ@ Inject Ġconstructor ( ĊĠĠĠĠ Ġval Ġrepo : ĠInstitute Repository , ĊĠĠĠ Ġprivate Ġval Ġcoord inator : ĠManagement View Coordinator , Ċ ) Ġ: ĠViewModel () Ġ{ ĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠMonitor s Ġcurrent Ġslot Ġlist Ġ( queue ) Ġfrom Ġrepository ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġval Ġslot Queue = ĠMed iator LiveData < List < Time Slot >> (). apply Ġ{ ĊĠĠĠĠĠĠĠ Ġadd Source ( repo . get Observable Time Slot List ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvalue Ġ= Ġit ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġvar Ġis LoggedIn Ġ= Ġrepo . is LoggedIn () ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠMonitor s Ġcurrent Ġstate Ġof Ġtransaction ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġvar ĠisIn Transaction = Ġrepo . isIn Transaction () ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠNavig ates Ġto Ġadd Slot Dialog ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġnavigate ToAdd Slot Dialog () Ġ{ ĊĠĠĠĠĠĠĠ Ġcoord inator . navigate ToAdd Dialog Fragment () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠNavig ates Ġto Ġconfig Dialog ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġnavigate To Config Dialog () Ġ{ ĊĠĠĠĠĠĠĠ Ġcoord inator . navigate To Config Dialog () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠNot ifies Ġa Ġmovement Ġof Ġa Ġslot ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġmoved Slot ĠSlot Ġwhich Ġis Ġmoved ĊĠĠĠĠ Ġ* Ġ@ param Ġother Slot ĠSlot Ġwhich Ġis Ġbefore Ġthe Ġmoved Ġslot ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġmove Slot After Another ( moved Slot : ĠString , Ġother Slot : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġrepo . move Slot After Another ( moved Slot , other Slot ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠNot ifies Ġa Ġslot Ġis Ġdeleted ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġslot Code ĠSlot Ġcode Ġof Ġthe Ġdeleted Ġslot ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġdelete Slot ( slot Code : String ){ ĊĠĠĠĠĠĠĠ Ġrepo . delete Slot ( slot Code ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠNot ifies Ġthat Ġthe Ġfirst Ġslot Ġis Ġdeleted ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġdelete Current Slot (){ ĊĠĠĠĠĠĠĠ Ġrepo . end Current Slot () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠNot ifies Ġthat Ġchanges Ġare Ġsaved Ġfrom Ġthe Ġtransaction ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġsave Transaction () Ġ{ ĊĠĠĠĠĠĠĠ Ġrepo . save Transaction () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠNot ifies Ġthat Ġchanges Ġare Ġaborted Ġfrom Ġthe Ġtransaction ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġabort Transaction () Ġ{ ĊĠĠĠĠĠĠĠ Ġrepo . abort Transaction () ĊĠĠĠ Ġ} Ċ } Ċ