/* Ċ Ġ* ĠCopyright Ġ( c ) Ġ 2 0 1 7 ĠD uck Duck Go Ċ Ġ* Ċ Ġ* ĠLicensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "); Ċ Ġ* Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . Ċ Ġ* ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat Ċ Ġ* Ċ Ġ* ĠĠĠĠ Ġhttp :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ġ* Ċ Ġ* ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware Ċ Ġ* Ġdistributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , Ċ Ġ* ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . Ċ Ġ* ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ċ Ġ* Ġlimitations Ġunder Ġthe ĠLicense . Ċ Ġ*/ Ċ Ċ package Ġcom . duck duck go . app . job Ċ Ċ import Ġandroid . app . job . Job Scheduler Ċ import Ġandroid . content . Context Ċ import Ġandroid . support . annotation . Check Result Ċ import Ġcom . duck duck go . app . global . job . APP _ CONFIGURATION _ JOB _ ID Ċ import Ġcom . duck duck go . app . global . job . Job Builder Ċ import Ġio . reactivex . Comp letable Ċ import Ġtim ber . log . Tim ber Ċ import Ġjavax . inject . Inject Ċ Ċ class ĠApp Configuration Sync er Ġ@ Inject Ġconstructor ( ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġjob Builder : ĠJob Builder , ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġjob Scheduler : ĠJob Scheduler , ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġapp Configuration Downloader : ĠApp Configuration Downloader ) Ġ{ ĊĊĠĠĠ Ġ@ Check Result ĊĠĠĠ Ġfun Ġschedule Immediate Sync (): ĠComp letable Ġ{ ĊĠĠĠĠĠĠĠ ĠTim ber . i (" Running Ġimmediate Ġattempt Ġto Ġdownload Ġapp Ġconfiguration ") ĊĠĠĠĠĠĠĠ Ġreturn Ġapp Configuration Downloader . download Task () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠS cheduling Ġthe Ġsame Ġjob Ġagain Ġwould Ġkill Ġthe Ġexisting Ġjob Ġif Ġit Ġwas Ġrunning . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* ĠSo Ġthis Ġmethod Ġcan Ġbe Ġused Ġto Ġfirst Ġquery Ġif Ġthe Ġjob Ġis Ġalready Ġscheduled . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġjob Scheduled (): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġjob Scheduler . all Pending Jobs ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. filter Ġ{ ĠAPP _ CONFIGURATION _ JOB _ ID Ġ== Ġit . id Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. count () Ġ> Ġ 0 ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġschedule Regular Sync ( context : ĠContext ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġjob Info Ġ= Ġjob Builder . app Configuration Job ( context ) ĊĊĠĠĠĠĠĠĠ Ġif Ġ( job Scheduler . schedule ( job Info ) Ġ== ĠJob Scheduler . RESULT _ SUCCESS ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTim ber . i (" Job Ġscheduled Ġsuccessfully ") ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTim ber . e (" Failed Ġto Ġschedule Ġjob ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }