package Ġcom . ah med t iki wa . fx app . work Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroidx . h ilt . work . H ilt Worker Ċ import Ġandroidx . work . Coroutine Worker Ċ import Ġandroidx . work . Worker Parameters Ċ import Ġcom . ah med t iki wa . fx app . repository . FX App Repository Ċ import Ġcom . ah med t iki wa . fx app . util . Date Util Ċ import Ġdagger . ass isted . Ass isted Ċ import Ġdagger . ass isted . Ass isted Inject Ċ import Ġkotlinx . coroutines . coroutine Scope Ċ Ċ @ H ilt Worker Ċ class ĠRefresh History Worker Ġ@ Ass isted Inject Ġconstructor ( ĊĠĠĠ Ġ@ Ass isted Ġcontext : ĠContext , ĊĠĠĠ Ġ@ Ass isted Ġworker Parameters : ĠWorker Parameters , ĊĠĠĠ Ġprivate Ġval Ġfx App Repository : ĠFX App Repository Ċ ) Ġ: ĠCor outine Worker ( context , Ġworker Parameters ) Ġ{ ĊĊĠĠĠ Ġoverride Ġsuspend Ġfun Ġdo Work (): ĠResult Ġ= Ġcoroutine Scope Ġ{ ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrefresh History ( fx App Repository ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠResult . success () ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠResult . failure () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠRef res hes Ġthe Ġcached Ġhistorical Ġdata . ĠNote Ġthat Ġsince Ġthe Ġendpoint ĊĠĠĠĠ Ġ* Ġonly Ġcat ers Ġfor Ġone Ġdate Ġat Ġa Ġtime , Ġthe Ġrequest Ġwill Ġrun Ġthrough ĊĠĠĠĠ Ġ* Ġall Ġthe Ġdifferent Ġdates Ġone Ġat Ġa Ġtime Ġas Ġthe Ġendpoint Ġdoes Ġnot Ġprovide ĊĠĠĠĠ Ġ* Ġdata Ġfor Ġa Ġspecified Ġrange Ġbut Ġrather Ġa Ġspecified Ġdate ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġsuspend Ġfun Ġrefresh History ( repository : ĠFX App Repository ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġprevious Th irty Days Ġ= ĠDate Util . get Past Th irty Date Ex cl Week ends () ĊĠĠĠĠĠĠĠ Ġif Ġ( previous Th irty Days . isNotEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrepository . clear History () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( date Ġin Ġprevious Th irty Days ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrepository . get H istorical ( date ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠWORK _ NAME Ġ= Ġ" Refresh History Worker " ĊĠĠĠ Ġ} Ċ Ċ }