package Ġorg . od k . collect . android . form management Ċ Ċ import Ġandroid . content . Context Ċ import Ġorg . jav ar osa . core . reference . Reference Manager Ċ import Ġorg . od k . collect . analytics . Analytics Ċ import Ġorg . od k . collect . android . R Ċ import Ġorg . od k . collect . android . background work . Change Lock Ċ import Ġorg . od k . collect . android . notifications . Notifier Ċ import Ġorg . od k . collect . android . preferences . keys . General Keys Ċ import Ġorg . od k . collect . android . preferences . source . Settings Provider Ċ import Ġorg . od k . collect . android . provider . Forms Provider API Ċ import Ġorg . od k . collect . android . storage . Storage Path Provider Ċ import Ġorg . od k . collect . android . storage . Storage Sub directory Ċ import Ġorg . od k . collect . android . utilities . Forms Dir Disk Forms Synchron izer Ċ import Ġorg . od k . collect . android . utilities . Forms Repository Provider Ċ import Ġorg . od k . collect . android . utilities . Translation Handler Ċ import Ġorg . od k . collect . forms . Form Source Exception Ċ import Ġjava . io . File Ċ import Ġjava . util . stream . Collectors Ċ Ċ class ĠForm Update Checker ( ĊĠĠĠ Ġprivate Ġval Ġcontext : ĠContext , ĊĠĠĠ Ġprivate Ġval Ġnot ifier : ĠNot ifier , ĊĠĠĠ Ġprivate Ġval Ġanalytics : ĠAnalytics , ĊĠĠĠ Ġprivate Ġval Ġchange Lock : ĠChange Lock , ĊĠĠĠ Ġprivate Ġval Ġstorage Path Provider : ĠStorage Path Provider , ĊĠĠĠ Ġprivate Ġval Ġsettings Provider : ĠSettings Provider , ĊĠĠĠ Ġprivate Ġval Ġforms Repository Provider : ĠForms Repository Provider , ĊĠĠĠ Ġprivate Ġval Ġform Source Provider : ĠForm Source Provider Ċ ) Ġ{ ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠDown loads Ġupdates Ġfor Ġthe Ġproject 's Ġalready Ġdownloaded Ġforms . ĠIf ĠAutomatic Ġdownload Ġis ĊĠĠĠĠ Ġ* Ġdisabled Ġthe Ġuser Ġwill Ġjust Ġbe Ġnotified Ġthat Ġthere Ġare Ġupdates Ġavailable . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġdownload Updates ( projectId : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġforms DirPath Ġ= Ġforms Dir ( projectId ) ĊĠĠĠĠĠĠĠ Ġval Ġforms Repository Ġ= Ġforms Repository ( projectId ) ĊĠĠĠĠĠĠĠ Ġval Ġform Source Ġ= Ġform Source ( projectId ) ĊĠĠĠĠĠĠĠ Ġval Ġdisk Forms Synchron izer : ĠDisk Forms Synchron izer Ġ= ĠForms Dir Disk Forms Synchron izer ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġforms Repository , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġforms DirPath ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġval Ġserver Forms Details Fetcher Ġ= ĠServer Forms Details Fetcher ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġforms Repository , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġform Source , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdisk Forms Synchron izer ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġval Ġcache DirPath : ĠString Ġ= Ġforms Cache Dir ( projectId ) ĊĠĠĠĠĠĠĠ Ġval Ġform Downloader Ġ= ĠServer Form Downloader ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġform Source , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġforms Repository , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠFile ( cache DirPath ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġforms DirPath , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠForm Metadata Parser ( Reference Manager . instance ()), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġanalytics ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġval Ġgeneral Settings Ġ= Ġgeneral Settings ( projectId ) ĊĊĠĠĠĠĠĠĠ Ġreturn Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġserver Forms : ĠList < Server Form Details > Ġ= Ġserver Forms Details Fetcher . fetch Form Details () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġupdated Forms Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġserver Forms . stream (). filter Ġ{ Ġobj : ĠServer Form Details Ġ-> Ġobj . is Updated Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. collect ( Collectors . toList ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( updated Forms . isNotEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( general Settings . getBoolean ( General Keys . KEY _ AUT OM AT IC _ UPDATE )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġform Update Downloader Ġ= ĠForm Update Downloader () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresults Ġ= Ġform Update Downloader . download Updates ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġupdated Forms , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġchange Lock , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġform Downloader , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTranslation Handler . getString ( context , ĠR . string . success ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTranslation Handler . getString ( context , ĠR . string . failure ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnot ifier . on Updates Downloaded ( results ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnot ifier . on Updates Available ( updated Forms ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontext . content Resolver . notify Change ( Forms Provider API . CONTENT _ URI , Ġnull ) ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ(_ : ĠForm Source Exception ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠIgnore d ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġgeneral Settings ( projectId : ĠString ) Ġ= ĊĠĠĠĠĠĠĠ Ġsettings Provider . get General Settings ( projectId ) ĊĊĠĠĠ Ġprivate Ġfun Ġforms Dir ( projectId : ĠString ) Ġ= ĊĠĠĠĠĠĠĠ Ġstorage Path Provider . get O dk DirPath ( Storage Sub directory . FOR MS , ĠprojectId ) ĊĊĠĠĠ Ġprivate Ġfun Ġforms Cache Dir ( projectId : ĠString ) Ġ= ĊĠĠĠĠĠĠĠ Ġstorage Path Provider . get O dk DirPath ( Storage Sub directory . CACHE , ĠprojectId ) ĊĊĠĠĠ Ġprivate Ġfun Ġform Source ( projectId : ĠString ) Ġ= Ġform Source Provider . get ( projectId ) ĊĊĠĠĠ Ġprivate Ġfun Ġforms Repository ( projectId : ĠString ) Ġ= Ġforms Repository Provider . get ( projectId ) Ċ } Ċ