package Ġl uy en . n inh . wall paper x . domain . data . local . room . repository Ċ Ċ import Ġkotlinx . coroutines . Coroutine Dispatcher Ċ import Ġkotlinx . coroutines . Dispatch ers Ċ import Ġkotlinx . coroutines . with Context Ċ import Ġl uy en . n inh . wall paper x . domain . data . Result Ċ import Ġl uy en . n inh . wall paper x . domain . data . local . room . dao . Step Dao Ċ import Ġl uy en . n inh . wall paper x . domain . data . local . room . entities . Step Entity Ċ Ċ /** Ċ Ġ* ĠCreated Ġby Ġl uy en _ n inh Ġon Ġ 2 0 1 9 - 1 0 - 2 6 . Ċ Ġ*/ Ċ class ĠStep Local DataSource Ġinternal Ġconstructor ( ĊĠĠĠ Ġprivate Ġval Ġstep Dao : ĠStep Dao , ĊĠĠĠ Ġprivate Ġval Ġio Dispatcher : ĠCor outine Dispatcher Ġ= ĠDispatch ers . IO Ċ ) Ġ{ ĊĠĠĠ Ġsuspend Ġfun Ġsave Step ( step : ĠStep Entity ): ĠResult < Int > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġwith Context ( io Dispatcher ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn @ with Context Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstep Dao . insert ( step ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsize Ġ= Ġstep Dao . get Step Per Day (). size ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( size Ġ> Ġ 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠResult . Success ( size ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠResult . Error ( NullPointerException ()) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠResult . Error ( e ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġsuspend Ġfun Ġget Step Per Day ( startTime : ĠLong , ĠendTime : ĠLong ): Result < Int > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġwith Context ( io Dispatcher ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn @ with Context Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsize Ġ= Ġstep Dao . get Step Per Day (). size ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( size Ġ> Ġ 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠResult . Success ( size ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠResult . Error ( NullPointerException ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠResult . Error ( NullPointerException ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun ĠgetAll Step Live ( startTime : ĠLong , ĠendTime : ĠLong ) Ġ= Ġstep Dao . get Step Per Day Live ( startTime , endTime ) Ċ Ċ }