/* Ċ Ġ* ĠCopyright ĠÂ© Ġ 2 0 2 0 ĠN HS X . ĠAll Ġrights Ġreserved . Ċ Ġ*/ Ċ Ċ package Ġuk . n hs . n hs x . sonar . android . app . reference code Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroidx . work . Coroutine Worker Ċ import Ġandroidx . work . List enable Worker . Result Ċ import Ġandroidx . work . Worker Parameters Ċ import Ġuk . n hs . n hs x . sonar . android . app . app Component Ċ import Ġjavax . inject . Inject Ċ Ċ class ĠReference Code Worker ( app Context : ĠContext , Ġworker Params : ĠWorker Parameters ) Ġ: ĊĠĠĠ ĠCor outine Worker ( app Context , Ġworker Params ) Ġ{ ĊĊĠĠĠ Ġ@ Inject ĊĠĠĠ Ġlateinit Ġvar Ġwork : ĠReference Code Work ĊĊĠĠĠ Ġoverride Ġsuspend Ġfun Ġdo Work (): ĠResult Ġ{ ĊĠĠĠĠĠĠĠ Ġapp Component . inject ( this ) ĊĠĠĠĠĠĠĠ Ġreturn Ġwork . do Work () ĊĠĠĠ Ġ} Ċ } Ċ Ċ class ĠReference Code Work Ġ@ Inject Ġconstructor ( ĊĠĠĠ Ġprivate Ġval Ġapi : ĠReference Code Api , ĊĠĠĠ Ġprivate Ġval Ġprovider : ĠReference Code Provider Ċ ) Ġ{ ĊĠĠĠ Ġsuspend Ġfun Ġdo Work (): ĠResult Ġ= ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( provider . get () Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdo Fetch () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠResult . success () ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠResult . failure () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġsuspend Ġfun Ġdo Fetch () Ġ= ĊĠĠĠĠĠĠĠ Ġapi ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. generate () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. to Coroutine () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. let Ġ{ Ġprovider . set ( it ) Ġ} Ċ } Ċ