package Ġcom . example . my camera . view _ model Ċ Ċ import Ġandroidx . lifecycle . LiveData Ċ import Ġandroidx . lifecycle . Mutable LiveData Ċ import Ġcom . example . my camera . network . response . Camera ListResponse Ċ import Ġcom . example . my camera . repository . Camera Repository Ċ import Ġcom . example . my camera . util . to Time String Ċ import Ġio . reactivex . rx java 3 . core . Single Ċ import Ġjava . util . concurrent . TimeUnit Ċ Ċ open Ġclass ĠCamera Activity ViewModel ( private Ġval Ġcamera Repository : ĠCamera Repository ) Ġ: ĊĠĠĠ ĠBase ViewModel (), ĊĠĠĠ ĠI Camera Activity ViewModel Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġcamera ListResponse LiveData : ĠMutable LiveData < Camera ListResponse > Ġ= ĊĠĠĠĠĠĠĠ ĠMutable LiveData < Camera ListResponse >() ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠStart Ġpulling Ġthe Ġcamera Ġlist Ġfrom Ġserver Ġevery Ġ 1 Ġminutes ĊĠĠĠĠ Ġ* Ġ@ time Ġshould Ġbe Ġin Ġdefine Ġformat ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġoverride Ġfun Ġget Camera List () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcall Ġ= ĠSingle . just ( 1 ). repeat When Ġ{ Ġcompleted Ġ-> Ġcompleted . delay ( 1 , ĠTimeUnit . MIN UTES ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe ({ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtime Ġ= ĠSystem . currentTimeMillis (). to Time String () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcamera Repository . get Camera List ( time ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. observe On ( get Main Scheduler ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe On ( get Scheduler IO ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe ({ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcamera ListResponse LiveData . value Ġ= Ġit ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}, Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthrowable LiveData . value Ġ= Ġit ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}, Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . printStackTrace () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ Ġcomposite Disposable . add ( call ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠReturn Ġthe Ġlive Ġdata Ġof Ġcamera Ġlist Ġresponse ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġget Camera ListResponse LiveData (): ĠLive Data < Camera ListResponse > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġcamera ListResponse LiveData ĊĠĠĠ Ġ} Ċ } ĊĊ Ċ interface ĠI Camera Activity ViewModel Ġ{ ĊĠĠĠ Ġfun Ġget Camera List () Ċ } ĊĊ