/* Ċ Ġ* ĠCopyright Ġ( c ) Ġ 2 0 1 8 Ġ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 . statistics . api Ċ Ċ import Ġandroid . annotation . Suppress Lint Ċ import Ġcom . duck duck go . app . global . App Url .* Ċ import Ġcom . duck duck go . app . statistics . store . Statistics DataStore Ċ import Ġio . reactivex . schedul ers . Schedulers Ċ import Ġtim ber . log . Tim ber ĊĊ Ċ interface ĠStatistics Updater Ġ{ ĊĠĠĠ Ġfun Ġinitialize At b () ĊĠĠĠ Ġfun Ġrefresh Retention At b () Ċ } Ċ Ċ class ĠStatistics Request er ( private Ġval Ġstore : ĠStatistics DataStore , Ġprivate Ġval Ġservice : ĠStatistics Service ) Ġ: ĊĠĠĠ ĠStatistics Updater Ġ{ ĊĊĠĠĠ Ġ@ Suppress Lint (" Check Result ") ĊĠĠĠ Ġoverride Ġfun Ġinitialize At b () Ġ{ ĊĊĠĠĠĠĠĠĠ Ġif Ġ( store . has Installation Statistics ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTim ber . v (" At b Ġalready Ġinitialized ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġservice . at b ( Param Value . app Version ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe On ( Schedulers . io ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. flatMap Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstore . at b Ġ= Ġit . version With Variant ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstore . retention At b Ġ= Ġit . version ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġservice . ext i ( it . version With Variant , ĠParam Value . app Version ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe ({ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTim ber . v (" At b Ġinit al ization Ġsucceeded ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}, Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstore . at b Ġ= Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstore . retention At b Ġ= Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTim ber . w (" At b Ġinit al ization Ġfailed Ġ${ it . localized Message }") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Suppress Lint (" Check Result ") ĊĠĠĠ Ġoverride Ġfun Ġrefresh Retention At b () Ġ{ ĊĊĠĠĠĠĠĠĠ Ġval Ġat b Ġ= Ġstore . at b ĊĠĠĠĠĠĠĠ Ġval Ġretention At b Ġ= Ġstore . retention At b ĊĊĠĠĠĠĠĠĠ Ġif Ġ( at b Ġ== Ġnull Ġ|| Ġretention At b Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinitialize At b () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġservice . update At b ( at b , Ġretention At b , ĠParam Value . app Version ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe On ( Schedulers . io ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe ({ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTim ber . v (" At b Ġrefresh Ġsucceeded ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstore . retention At b Ġ= Ġit . version ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}, Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTim ber . v (" At b Ġrefresh Ġfailed Ġwith Ġerror Ġ${ it . localized Message }") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠ Ġ} Ċ Ċ } Ċ