package Ġau . org . library forall . updater . app Ċ Ċ import Ġandroid . content . Context Ċ import Ġcom . google . common . util . concurrent . More Executors Ċ import Ġone . lf a . updater . inventory . api . Inventory Type Ċ import Ġone . lf a . updater . repository . api . Repository Ċ import Ġorg . slf 4 j . LoggerFactory Ċ Ċ /** Ċ Ġ* ĠA Ġtask Ġthat Ġadds Ġany Ġbundled Ġrepositories . Ċ Ġ*/ Ċ Ċ object ĠBund led Repositories Task Ġ{ ĊĊĠ Ġprivate Ġval Ġlogger Ġ= ĊĠĠĠ ĠLoggerFactory . getLogger ( Bund led Repositories Task :: class . java ) ĊĊĠ Ġ/** ĊĠĠ Ġ* ĠExecute Ġthe Ġtask . ĊĠĠ Ġ*/ ĊĊĠ Ġfun Ġexecute ( ĊĠĠĠ Ġcontext : ĠContext , ĊĠĠĠ Ġinventory : ĠInventory Type ĊĠ Ġ) Ġ{ ĊĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠ Ġthis . logger . debug (" loading Ġbundled Ġrepositories ") ĊĠĠĠĠĠ Ġval Ġrepositories Ġ= ĠBund led Repositories . from XML Resources ( context ) ĊĠĠĠĠĠ Ġthis . logger . debug (" loaded Ġ{} Ġbundled Ġrepositories ", Ġrepositories . size ) ĊĊĠĠĠĠĠ Ġfor Ġ( bund led Repository Ġin Ġrepositories ) Ġ{ ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠ Ġthis . logger . debug (" loading Ġbundled Ġrepository : Ġ{}", Ġbundled Repository . uri ) ĊĊĠĠĠĠĠĠĠĠĠ Ġval Ġrepository Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠRepository ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbundled Repository . required UUID , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbundled Repository . title , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbundled Repository . updated , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠlistOf (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbundled Repository . uri ) ĊĊĠĠĠĠĠĠĠĠĠ Ġval Ġexisting Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinventory . inventory Repository Select ( bund led Repository . required UUID ) ĊĊĠĠĠĠĠĠĠĠĠ Ġvar Ġshould Put Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠ Ġif Ġ( existing Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( existing . updated . is Before ( bund led Repository . updated )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis . logger . debug ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"[ {}] Ġbundled Ġrepos Ġis Ġnewer Ġthan Ġcurrent Ġrepos , Ġreplacing !", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbundled Repository . required UUID ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġshould Put Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis . logger . debug ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"[ {} ]: Ġrepository Ġexists Ġand Ġis Ġnewer Ġthan Ġbundled ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbundled Repository . required UUID ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . logger . debug ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"[ {}] Ġbundled Ġrepos Ġis Ġnon existent , Ġadding !", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbundled Repository . required UUID ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġshould Put Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠ Ġif Ġ( should Put ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinventory . inventory Repository Put ( repository ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. addListener ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠRunnable Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinventory . inventory Repository Select ( bund led Repository . required UUID ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ? . update () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMore Executors . direct Executor ()) ĊĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinventory . inventory Repository Select ( bund led Repository . required UUID ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ? . update () ĊĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠ Ġthis . logger . error (" error Ġloading Ġbundled Ġrepository Ġ{} : Ġ", Ġbundled Repository . uri , Ġe ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠ Ġthis . logger . error (" error Ġloading Ġbundled Ġrepositories : Ġ", Ġe ) ĊĠĠĠ Ġ} ĊĠ Ġ} Ċ }