package Ġcom . example . re jest r ator . view . view model . Employee Ċ Ċ import Ġandroid . app . Application Ċ import Ġandroid . util . Log Ċ import Ġandroidx . lifecycle . Android ViewModel Ċ import Ġandroidx . lifecycle . LiveData Ċ import Ġandroidx . lifecycle . Mutable LiveData Ċ import Ġandroidx . lifecycle . viewModel Scope Ċ import Ġcom . example . re jest r ator . view . State Ċ import Ġcom . example . re jest r ator . view . model . entities . Task Ċ import Ġcom . example . re jest r ator . view . model . entities . Task Done Ċ import Ġcom . example . re jest r ator . view . model . entities . Task InProgress Ċ import Ġcom . google . firebase . database . Data Snapshot Ċ import Ġcom . google . firebase . database . Database Error Ċ import Ġcom . google . firebase . database . Firebase Database Ċ import Ġcom . google . firebase . database . Value EventListener Ċ import Ġkotlinx . coroutines . launch Ċ import Ġjava . util .* Ċ import Ġkotlin . collections . ArrayList Ċ Ċ class ĠEmployee Task InProgress List ViewModel ( application : ĠApplication ) Ġ: ĠAndroid ViewModel ( application ) Ġ Ġ{ ĊĠĠĠ Ġprivate Ġval Ġ_ all Tasks : ĠMutable LiveData < ArrayList < Task InProgress >> Ġ= ĠMutable LiveData () ĊĠĠĠ Ġval Ġall Tasks : ĠLive Data < ArrayList < Task InProgress >> ĊĠĠĠĠĠĠĠ Ġget () =_ all Tasks ĊĊĠĠĠ Ġfun Ġget Tasks InProgress For Employee ( id Ġ: ĠString ) ĊĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠ ĠFirebase Database . getInstance (). getReference (). child (" tasks _ in _ progress "). child ( id ). add Value EventListener ( object : ĊĠĠĠĠĠĠĠĠĠĠĠ ĠValue EventListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Cancelled ( error : ĠDatabase Error ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d (" Tasks InProgress "," Error Ġwhile Ġgetting Ġtasks InProgress ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Data Change ( snapshot : ĠData Snapshot ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvar ĠlistOf Tasks : ĠArrayList < Task InProgress > Ġ= ĠArrayList () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfor ( task Snapshot Ġin Ġsnapshot . children ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtask Ġ= Ġtask Snapshot . getValue ( Task InProgress :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠlistOf Tasks . add ( task !! ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ_ all Tasks . value Ġ= ĠlistOf Tasks ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġend Task ( id Ġ: ĠString ?) ĊĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠ ĠFirebase Database . getInstance (). getReference (). child (" tasks _ in _ progress "). child ( State . current Employee Id ). child ( id !! ). remove Value () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġadd Task Done ( task Ġ: ĠString , Ġstart date Ġ: ĠString , Ġend date Ġ: ĠString , Ġtime Ġ: ĠString ) ĊĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġid Ġ= ĠUUID . randomUUID (). toString () ĊĠĠĠĠĠĠĠ Ġval Ġtask Done Ġ= ĠTask Done ( id , ĠState . current Employee Id , Ġtask , Ġstart date , Ġend date , Ġtime ) ĊĠĠĠĠĠĠĠ ĠFirebase Database . getInstance (). getReference (). child (" tasks _ done "). child ( State . current Employee Id ). child ( id ). setValue ( task Done ) ĊĠĠĠ Ġ} Ċ }