package Ġcom . purple pot ato . k aji ank u . saved _ k aj ian Ċ Ċ import Ġandroidx . lifecycle . LiveData Ċ import Ġandroidx . lifecycle . Mutable LiveData Ċ import Ġandroidx . lifecycle . ViewModel Ċ import Ġandroidx . lifecycle . viewModel Scope Ċ import Ġcom . purple pot ato . k aji ank u . core . Resource Ċ import Ġcom . purple pot ato . k aji ank u . core . data . K aj ian Repository Ċ import Ġcom . purple pot ato . k aji ank u . core . domain . K aj ian Ċ import Ġcom . purple pot ato . k aji ank u . core . util . Data Mapper Ċ import Ġkotlinx . coroutines . Coroutine Scope Ċ import Ġkotlinx . coroutines . Dispatch ers . IO Ċ import Ġkotlinx . coroutines . Job Ċ import Ġkotlinx . coroutines . cancel Ċ import Ġkotlinx . coroutines . flow . collect Ċ import Ġkotlinx . coroutines . flow . take Ċ import Ġkotlinx . coroutines . launch Ċ Ċ class ĠSaved K aj ian ViewModel ( private Ġval Ġrepository : ĠK aj ian Repository ) Ġ: ĠViewModel () Ġ{ ĊĠĠĠ Ġprivate Ġval Ġ_ list Saved K aj ian Ġ= ĠMutable LiveData < Resource < List < K aj ian >> >() ĊĊĠĠĠ Ġval Ġlist Saved K aj ian : ĠLive Data < Resource < List < K aj ian >>> ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġ_ list Saved K aj ian ĊĊĠĠĠ Ġprivate Ġval ĠviewModel Job Ġ= ĠJob () ĊĠĠĠ Ġprivate Ġval Ġscope Ġ= ĠCor outine Scope ( viewModel Job Ġ+ ĠIO ) ĊĊĠĠĠ Ġfun Ġquery All Saved K aj ian From Remote () Ġ= ĠviewModel Scope . launch Ġ{ ĊĠĠĠĠĠĠĠ Ġ_ list Saved K aj ian . post Value ( Resource . Loading ()) ĊĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrepository . query All Saved K aj ian From Remote (). collect Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ_ list Saved K aj ian . post Value ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ_ list Saved K aj ian . post Value ( Resource . Error ( e . message . toString (), Ġempty List ())) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġquery All Saved K aj ian From Local () Ġ= ĠviewModel Scope . launch Ġ{ ĊĠĠĠĠĠĠĠ Ġ_ list Saved K aj ian . post Value ( Resource . Loading ()) ĊĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrepository . query All Saved K aj ian From Local (). take ( 1 ). collect Ġ{ Ġlist Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ_ list Saved K aj ian . post Value ( Resource . Success ( list . map Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠData Mapper . map Entity To Domain ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ})) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ_ list Saved K aj ian . post Value ( Resource . Error ( e . message . toString ())) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġinsert List Saved K aj ian ToLocal ( k aj ian : ĠK aj ian ) Ġ= Ġscope . launch Ġ{ ĊĠĠĠĠĠĠĠ Ġrepository . insert Saved K aj ian After Login ( k aj ian ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġdelete Saved K aj ian And MoveTo User History ( k aj ian : ĠK aj ian ) Ġ= Ġscope . launch Ġ{ ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrepository . delete Saved K aj ian And MoveTo User History ( k aj ian . id ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrepository . delete Saved K aj ian ( k aj ian ) ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Cle ared () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Cle ared () ĊĠĠĠĠĠĠĠ Ġscope . cancel () ĊĠĠĠ Ġ} Ċ } Ċ