package Ġcom . kick starter . services Ċ Ċ import Ġandroid . util . Log Ċ import Ġcom . crash ly t ics . android . Crash ly t ics Ċ import Ġcom . firebase . job dispatcher . Job Parameters Ċ import Ġcom . firebase . job dispatcher . JobService Ċ import Ġcom . kick starter . KS Application Ċ import Ġcom . kick starter . libs . Build Ċ import Ġcom . kick starter . ui . Intent Key Ċ import Ġokhttp 3 . MediaType Ċ import Ġokhttp 3 . RequestBody Ċ import Ġokhttp 3 . ResponseBody Ċ import Ġretrofit 2 . Response Ċ import Ġrx . schedul ers . Schedulers Ċ import Ġjavax . inject . Inject Ċ Ċ class ĠLake Background Service Ġ: ĠJob Service () Ġ{ ĊĠĠĠ Ġ@ Inject ĊĠĠĠ Ġlateinit Ġvar Ġl ake Service : ĠLake Service ĊĠĠĠ Ġ@ Inject ĊĠĠĠ Ġlateinit Ġvar Ġbuild : ĠBuild ĊĠĠĠ Ġ@ Inject ĊĠĠĠ Ġlateinit Ġvar ĠclientId : ĠString ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate () ĊĠĠĠĠĠĠĠ Ġ( application Context Ġas ĠK S Application ). component (). inject ( this ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonStart Job ( job : ĠJob Parameters ?): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġextras Ġ= Ġjob ?. extras ĊĠĠĠĠĠĠĠ Ġval ĠeventName Ġ= Ġextras ?. get ( Intent Key . LA KE _ EVENT _ NAME ) Ġas ĠString ĊĠĠĠĠĠĠĠ Ġval Ġbody Ġ= ĠRequest Body . create ( MediaType . parse (" application / json "), Ġextras . get ( Intent Key . LA KE _ EVENT ) Ġas ĠString ) ĊĠĠĠĠĠĠĠ Ġl ake Service . track ( body , Ġthis . clientId ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe On ( Schedulers . io ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe ({ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlog Response ( it , ĠeventName ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġjob Finished ( job , Ġ! it . is Successful ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}, Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlog Tracking Error ( eventName ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġjob Finished ( job , Ġfalse ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Stop Job ( job : ĠJob Parameters ?): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġlog Response ( it : ĠResponse < ResponseBody >, ĠeventName : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( it . is Successful ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( this . build . isDebug ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d ( TAG , Ġ" Successfully Ġtracked Ġevent : Ġ$ eventName ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠCrash ly t ics . log ( eventName ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlog Tracking Error ( eventName ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġlog Tracking Error ( eventName : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( this . build . isDebug ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLog . e ( TAG , Ġ" Failed Ġto Ġtrack Ġevent : Ġ$ eventName ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ ĠCrash ly t ics . log Exception ( Exception (" Failed Ġto Ġtrack Ġevent : Ġ$ eventName ")) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġval ĠTAG Ġ= ĠLake Background Service :: class . java . simple Name Ġ+" Ġ\ uD 8 3 D \ uD CA 7 " ĊĠĠĠ Ġ} Ċ } Ċ