package Ġp nu . hak athon . any one . view model Ċ Ċ import Ġandroidx . annotation . MainThread Ċ import Ġandroidx . lifecycle .* Ċ import Ġkotlinx . coroutines . Dispatch ers Ċ import Ġp nu . hak athon . any one . entity . Store Model Ċ import Ġp nu . hak athon . any one . repository . Search Repository Ċ Ċ class ĠSearch ViewModel ( private Ġval Ġrepo : ĠSearch Repository ) Ġ: ĠViewModel () Ġ{ ĊĠĠĠ Ġvar Ġsearch Query : ĠMutable LiveData < String > Ġ= ĠMutable LiveData () ĊĠĠĠ Ġvar Ġsearch Results : ĠLive Data < List < Store Model >> ĊĠĠĠ Ġvar ĠisLoading Ġ= ĠMutable LiveData ( false ) ĊĠĠĠ Ġvar Ġcategory ID : ĠString Ġ= Ġ" 1 " ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġsearch Results Ġ= Ġsearch Query . switch Map Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlive Data < List < Store Model >>( viewModel Scope . coroutine Context Ġ+ ĠDispatch ers . IO ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠisLoading . post Value ( true ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġemit Source ( repo . get SearchResults ( category ID , Ġit , Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠisLoading . post Value ( true ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}, Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠisLoading . post Value ( false ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}). as LiveData ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ MainThread ĊĠĠĠ Ġfun Ġset Query ( query : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġsearch Query . value Ġ= Ġquery ĊĠĠĠ Ġ} Ċ }