package Ġcom . example . fit t . view model Ċ Ċ import Ġandroid . app . Application Ċ import Ġandroidx . lifecycle . Android ViewModel Ċ import Ġandroidx . lifecycle . LiveData Ċ import Ġandroidx . lifecycle . viewModel Scope Ċ import Ġcom . example . fit t . database . Work out Database Ċ import Ġcom . example . fit t . database . entity . Reminder Data Ċ import Ġcom . example . fit t . repository . Reminder Repository Ċ import Ġkotlinx . coroutines . Dispatch ers Ċ import Ġkotlinx . coroutines . launch Ċ Ċ class ĠRem inder ViewModel ( application : ĠApplication ): ĠAndroid ViewModel ( application ) Ġ{ ĊĊĠĠĠ Ġval Ġread All Data : ĠLive Data < List < Reminder Data >> ĊĠĠĠ Ġprivate Ġval Ġrepository : ĠRem inder Repository ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġuser Dao Ġ= ĠWork out Database . get Database ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġapplication ĊĠĠĠĠĠĠĠ Ġ). reminder Data Dao () ĊĠĠĠĠĠĠĠ Ġrepository Ġ= ĠRem inder Repository ( user Dao ) ĊĠĠĠĠĠĠĠ Ġread All Data Ġ= Ġrepository . read All Data ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġinsert Reminder ( reminder Data : ĠRem inder Data ){ ĊĠĠĠĠĠĠĠ ĠviewModel Scope . launch ( Dispatch ers . IO ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrepository . insert Reminder Repository ( reminder Data ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġupdate Reminder ( reminder Data : ĠRem inder Data ){ ĊĠĠĠĠĠĠĠ ĠviewModel Scope . launch ( Dispatch ers . IO ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrepository . update Reminder Repository ( reminder Data ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġdelete Reminder ( reminder Data : ĠRem inder Data ){ ĊĠĠĠĠĠĠĠ ĠviewModel Scope . launch ( Dispatch ers . IO ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrepository . delete ById Reminder Repository ( reminder Data ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġdelete All Rem inders (){ ĊĠĠĠĠĠĠĠ ĠviewModel Scope . launch ( Dispatch ers . IO ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrepository . delete All Reminder Repository () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }