/* Ċ Ġ* ĠCopyright Ġ( C ) Ġ 2 0 2 2 ĠGoogle ĠDeveloper ĠStudent ĠClub s ĠB BS BE C Ċ Ġ* Ċ Ġ* ĠLicensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "); Ċ Ġ* Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . Ċ Ġ* ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat Ċ Ġ* Ċ Ġ* ĠĠĠĠĠ Ġhttp :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ġ* Ċ Ġ* ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware Ċ Ġ* Ġdistributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , Ċ Ġ* ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . Ċ Ġ* ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ċ Ġ* Ġlimitations Ġunder Ġthe ĠLicense . Ċ Ġ*/ Ċ Ċ package Ġcom . gd sc . bb sb ec . g books . view model Ċ Ċ import Ġandroid . app . Application Ċ import Ġandroidx . lifecycle . Android ViewModel Ċ import Ġandroidx . lifecycle . LiveData Ċ import Ġandroidx . lifecycle . viewModel Scope Ċ import Ġcom . gd sc . bb sb ec . g books . model . Book Database Ċ import Ġcom . gd sc . bb sb ec . g books . model . Book SearchResult Data Ċ import Ġcom . gd sc . bb sb ec . g books . repository . Book Repository Ċ import Ġkotlinx . coroutines . Dispatch ers Ċ import Ġkotlinx . coroutines . launch Ċ Ċ class ĠBook Data ViewModel ( application : ĠApplication ) Ġ: ĊĠĠĠ ĠAndroid ViewModel ( application ) Ġ{ ĊĊĠĠĠ Ġval Ġread All Data : ĠLive Data < List < Book SearchResult Data >> ĊĠĠĠ Ġprivate Ġval Ġrepository : ĠBook Repository ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġbook Dao Ġ= ĠBook Database . get Database ( application ). book Dao () ĊĠĠĠĠĠĠĠ Ġrepository Ġ= ĠBook Repository ( book Dao ) ĊĠĠĠĠĠĠĠ Ġread All Data Ġ= Ġrepository . read All Data ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġadd Book ( book : ĠBook SearchResult Data ) Ġ{ ĊĠĠĠĠĠĠĠ ĠviewModel Scope . launch ( Dispatch ers . IO ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrepository . add Book ( book ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġdelete Book ( book : ĠBook SearchResult Data ) Ġ{ ĊĠĠĠĠĠĠĠ ĠviewModel Scope . launch ( Dispatch ers . IO ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrepository . delete Book ( book ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }