package Ġcom . j bc 7 ag . ap od . ui . home Ċ Ċ import Ġandroid . util . Log Ċ import Ġandroid . view . View Ċ import Ġandroid . widget . Toast Ċ import Ġandroidx . lifecycle . LiveData Ċ import Ġandroidx . lifecycle . Mutable LiveData Ċ import Ġandroidx . lifecycle . ViewModel Ċ import Ġcom . j bc 7 ag . ap od . Utils Ċ import Ġcom . j bc 7 ag . ap od . network .* Ċ import Ġkotlinx . coroutines .* Ċ import Ġjava . lang . Exception Ċ Ċ class ĠHome ViewModel Ġ: ĠViewModel () Ġ{ ĊĊĠĠĠ Ġ// private Ġval Ġ_ random Discovery Ġ= ĠlistOf (" ven us "," mars Ġplanet "," mer cury "," jupiter "," uran us "," ne pt une "," pl uto "," earth "," moon "," sun "," mil ky Ġway "," and rome da "," black Ġhole "," space "," Hub ble ĠSpace ĠTe lescope ", Ġ" Te lescope ", Ġ" ov ni ", Ġ" super nova ") ĊĊĠĠĠ Ġprivate Ġval Ġ_ ap od Property Ġ= ĠMutable LiveData < Ap od Property >() ĊĠĠĠ Ġval Ġap od Property Ġ: ĠLive Data < Ap od Property > ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġ_ ap od Property ĊĊĠĠĠ Ġprivate Ġval Ġ_ read More Ġ= ĠMutable LiveData < Boolean >() ĊĠĠĠ Ġval Ġread More Ġ: ĠLive Data < Boolean > ĊĠĠĠ Ġget () Ġ= Ġ_ read More ĊĊĠĠĠ Ġprivate Ġval Ġ_ has Copy Right Ġ= ĠMutable LiveData < Boolean >() ĊĠĠĠ Ġval Ġhas Copy Right Ġ: ĠLive Data < Boolean > ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġ_ has Copy Right ĊĊĠĠ Ġprivate Ġval Ġ_ discovery List Ġ= ĠMutable LiveData < List < Ap od Property >>() ĊĠĠ Ġval Ġdiscovery List : ĠLive Data < List < Ap od Property >> ĊĠĠĠ Ġget () Ġ= Ġ_ discovery List ĊĊĠĠ Ġprivate Ġval Ġ_ show Ap od Details Ġ= ĠMutable LiveData < Boolean >() ĊĠĠĠ Ġval Ġshow Ap od Details : ĠLive Data < Boolean > ĊĠĠĠ Ġget () = Ġ_ show Ap od Details ĊĊĊĊĠĠĠ Ġprivate Ġval ĠviewModel Job Ġ= ĠJob () ĊĠĠĠ Ġprivate Ġval Ġcoroutine Scope Ġ= ĠCor outine Scope ( ĠviewModel Job Ġ+ ĠDispatch ers . IO Ġ) ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġget Ap od () ĊĠĠĠĠĠĠĠ Ġ_ read More . value Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġ_ show Ap od Details . value Ġ= Ġfalse ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġget Ap od (){ ĊĊĠĠĠĠĠĠĠ Ġ// Picture Ġof Ġthe Ġday ĊĠĠĠĠĠĠĠ Ġcoroutine Scope . launch Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcurrent Date Ġ= ĠUtils . getCurrent Date (- 2 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠgetProperty Ġ= ĠAp od Api . ret rofit Service . get Ap od ( date Ġ= Ġcurrent Date ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwith Context ( Dispatch ers . Main ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġproperty Ġ= ĠgetProperty . await () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ_ ap od Property . value Ġ= Ġ Ġproperty ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ_ has Copy Right . value Ġ= Ġproperty . copyright Ġ!= Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} catch Ġ( e : ĠException ){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . e ("[ Home VM ] "," Error : Ġ${ e . localized Message }") ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// ĠDiscovery ĊĠĠĠĠĠĠ Ġcoroutine Scope . launch Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġget Ap od List Ġ= ĠAp od Api . ret rofit Service . get Ap od List ( count Ġ= Ġ 1 0 ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwith Context ( Dispatch ers . Main ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġlist Ap od Ġ= Ġget Ap od List . await () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ_ discovery List . value Ġ= Ġlist Ap od ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} catch Ġ( e : ĠException ){ ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . e ("[ Home VM ] "," Error : Ġ${ e . localized Message }") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Cle ared () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Cle ared () ĊĠĠĠĠĠĠĠ ĠviewModel Job . cancel () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġon Read More Click (){ ĊĠĠĠĠĠĠĠ Ġ_ read More . value Ġ= Ġ Ġ_ read More . value ?. not () Ġ?: Ġfalse ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġon Ap od click (){ ĊĠĠĠĠĠĠĠ Ġ_ show Ap od Details . value Ġ= Ġtrue ĊĠĠĠ Ġ} Ċ Ċ }