package Ġcom . raz ew are . emit ron . data . progress ions . dao Ċ Ċ import Ġandroidx . room .* Ċ import Ġandroidx . room . On Conflict Strategy . IGNORE Ċ import Ġcom . raz ew are . emit ron . data . content . dao . Content Dao Ċ import Ġcom . raz ew are . emit ron . model . entity . Progress ion Ċ Ċ /** Ċ Ġ* ĠDao Ġfor Ġprogress ions Ċ Ġ*/ Ċ @ Dao Ċ interface ĠPro gression Dao Ġ{ ĊĊĠ Ġ/** ĊĠĠ Ġ* ĠInsert Ġprogress ions ĊĠĠ Ġ*/ ĊĠ Ġ@ Insert ( on Conflict Ġ= ĠIG NORE ) ĊĠ Ġfun Ġinsert Progress ions ( contents : ĠList < Progress ion >): ĠList < Long > ĊĊĠ Ġ/** ĊĠĠ Ġ* ĠInsert Ġprogress ion ĊĠĠ Ġ*/ ĊĠ Ġ@ Insert ( on Conflict Ġ= ĠIG NORE ) ĊĠ Ġfun Ġinsert Progress ion ( progress ion : ĠPro gression ): ĠLong ĊĊĠ Ġ/** ĊĠĠ Ġ* ĠUpdate Ġprogress ions ĊĠĠ Ġ*/ ĊĠ Ġ@ Update ( on Conflict Ġ= ĠIG NORE ) ĊĠ Ġfun Ġupdate Progress ions ( contents : ĠList < Progress ion >) ĊĊĠ Ġ/** ĊĠĠ Ġ* ĠUpdate Ġprogress ions Ġ( async ) ĊĠĠ Ġ*/ ĊĠ Ġ@ Update ( on Conflict Ġ= ĠIG NORE ) ĊĠ Ġsuspend Ġfun Ġupdate Progress ions Async ( contents : ĠList < Progress ion >) ĊĊĠ Ġ/** ĊĠĠ Ġ* ĠUpdate Ġprogress ions ĊĠĠ Ġ*/ ĊĠ Ġ@ Query ( ĊĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠ ĠUPDATE ĠĊĠĠĠĠĠĠĠĠĠĠĠ Ġprogress ions ĠĊĠĠĠĠĠĠĠĠĠ ĠSET ĠĊĠĠĠĠĠĠĠĠĠĠĠ Ġprogress Ġ= Ġ: progress , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpercent _ complete Ġ= Ġ: percent Complete , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfinished Ġ= Ġ: finished , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsynced Ġ= Ġ: sync ed , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġupdated _ at Ġ= Ġ: updatedAt , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprogress ion _ id Ġ= Ġ: progress ion Id ĊĠĠĠĠĠĠĠĠĠ ĠWHERE ĠĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontent _ id Ġ= Ġ: content Id ĊĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠ Ġ) ĊĠ Ġsuspend Ġfun Ġupdate Progress ( ĊĠĠĠ Ġcontent Id : ĠString , ĊĠĠĠ Ġpercent Complete : ĠInt , ĊĠĠĠ Ġprogress : ĠLong , ĊĠĠĠ Ġfinished : ĠBoolean , ĊĠĠĠ Ġsynced : ĠBoolean , ĊĠĠĠ ĠupdatedAt : ĠString , ĊĠĠĠ Ġprogress ion Id : ĠString ? ĊĠ Ġ): ĠInt ĊĊĠ Ġ/** ĊĠĠ Ġ* ĠInsert Ġprogress ion Ġor Ġupdate Ġif Ġit Ġalready Ġexists . ĊĠĠ Ġ*/ ĊĠ Ġ@ Transaction ĊĠ Ġsuspend Ġfun Ġinsert OrUpdate Progress ( ĊĠĠĠ Ġcontent Id : ĠString , ĊĠĠĠ Ġpercent Complete : ĠInt , ĊĠĠĠ Ġprogress : ĠLong , ĊĠĠĠ Ġfinished : ĠBoolean , ĊĠĠĠ Ġsynced : ĠBoolean , ĊĠĠĠ ĠupdatedAt : ĠString , ĊĠĠĠ Ġprogress ion Id : ĠString ?, ĊĠĠĠ Ġcontent Dao : ĠContent Dao ĊĠ Ġ) Ġ{ ĊĠĠĠ Ġval Ġupdated Rows Ġ= ĊĠĠĠĠĠ Ġupdate Progress ( ĊĠĠĠĠĠĠĠ Ġcontent Id , ĊĠĠĠĠĠĠĠ Ġpercent Complete , ĊĠĠĠĠĠĠĠ Ġprogress , ĊĠĠĠĠĠĠĠ Ġfinished , ĊĠĠĠĠĠĠĠ Ġsynced , ĊĠĠĠĠĠĠĠ ĠupdatedAt , ĊĠĠĠĠĠĠĠ Ġprogress ion Id ĊĠĠĠĠĠ Ġ) ĊĠĠĠ Ġif Ġ( updated Rows Ġ== Ġ 0 ) Ġ{ ĊĠĠĠĠĠ Ġval Ġprogress ion Ġ= ĠPro gression ( ĊĠĠĠĠĠĠĠ Ġcontent Id Ġ= Ġcontent Id , ĊĠĠĠĠĠĠĠ Ġpercent Complete Ġ= Ġpercent Complete , ĊĠĠĠĠĠĠĠ Ġprogress Ġ= Ġprogress , ĊĠĠĠĠĠĠĠ Ġfinished Ġ= Ġfinished , ĊĠĠĠĠĠĠĠ ĠupdatedAt Ġ= ĠupdatedAt , ĊĠĠĠĠĠĠĠ Ġsynced Ġ= Ġsynced ĊĠĠĠĠĠ Ġ) ĊĠĠĠĠĠ Ġinsert Progress ion ( progress ion ) ĊĠĠĠ Ġ} ĊĠ Ġ} ĊĊĠ Ġ/** ĊĠĠ Ġ* ĠGet Ġprogress ion Ġby Ġcontent Ġid ĊĠĠ Ġ* ĊĠĠ Ġ* Ġ@ param Ġcontent Id Ġcontent Ġid ĊĠĠ Ġ*/ ĊĠ Ġ@ Query ( ĊĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠ ĠSELECT Ġ* ĠFROM Ġprogress ions ĠĊĠĠĠĠĠĠĠĠĠ ĠWHERE Ġcontent _ id Ġ= Ġ: content Id ĊĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠ Ġ) ĊĠ Ġsuspend Ġfun Ġget Progress ion ( content Id : ĠString ): ĠPro gression ĊĊĠ Ġ/** ĊĠĠ Ġ* ĠGet Ġprogress ion Ġby Ġcontent Ġid ĊĠĠ Ġ* ĊĠĠ Ġ*/ ĊĠ Ġ@ Query ( ĊĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠ ĠSELECT Ġ* ĠFROM Ġprogress ions ĠĊĠĠĠĠĠĠĠĠĠ ĠWHERE Ġsynced Ġ= Ġ 0 ĊĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠ Ġ) ĊĠ Ġsuspend Ġfun Ġget Local Progress ions (): ĠList < Progress ion > ĊĊĠ Ġ/** ĊĠĠ Ġ* ĠDelete Ġall Ġprogress ions ĊĠĠ Ġ*/ ĊĠ Ġ@ Query (" DELETE Ġfrom Ġprogress ions ") ĊĠ Ġfun Ġdelete All () Ċ } Ċ