package Ġorg . wikipedia . history . db Ċ Ċ import Ġandroidx . room .* Ċ import Ġio . reactivex . rx java 3 . core . Comp letable Ċ import Ġorg . wikipedia . history . History Entry Ċ Ċ @ Dao Ċ interface ĠHistory Entry Dao Ġ{ ĊĠĠĠ Ġ@ Insert ( on Conflict Ġ= ĠOn Conflict Strategy . REPLACE ) ĊĠĠĠ Ġfun Ġinsert Entry ( entry : ĠHistory Entry ) ĊĊĠĠĠ Ġ@ Query (" SELECT Ġ* ĠFROM ĠHistory Entry ĠWHERE ĠUPPER ( display Title ) ĠLIKE ĠUPPER (: term ) ĠESC APE Ġ'\\ '") ĊĠĠĠ Ġfun Ġfind Entry By Search Term ( term : ĠString ): ĠHistory Entry ? ĊĊĠĠĠ Ġ@ Query (" SELECT Ġ* ĠFROM ĠHistory Entry ĠWHERE Ġauthority Ġ= Ġ: authority ĠAND Ġlang Ġ= Ġ: lang ĠAND Ġapi Title Ġ= Ġ: api Title ĠLIMIT Ġ 1 ") ĊĠĠĠ Ġfun Ġfind Entry By ( authority : ĠString , Ġlang : ĠString , Ġapi Title : ĠString ): ĠHistory Entry ? ĊĊĠĠĠ Ġ@ Query (" DELETE ĠFROM ĠHistory Entry ") ĊĠĠĠ Ġfun Ġdelete All (): ĠComp letable ĊĊĠĠĠ Ġ@ Query (" DELETE ĠFROM ĠHistory Entry ĠWHERE Ġauthority Ġ= Ġ: authority ĠAND Ġlang Ġ= Ġ: lang ĠAND Ġnamespace Ġ= Ġ: namespace ĠAND Ġapi Title Ġ= Ġ: api Title ") ĊĠĠĠ Ġfun Ġdelete By ( authority : ĠString , Ġlang : ĠString , Ġnamespace : ĠString ?, Ġapi Title : ĠString ) ĊĊĠĠĠ Ġ@ Transaction ĊĠĠĠ Ġfun Ġinsert ( entries : ĠList < History Entry >) Ġ{ ĊĠĠĠĠĠĠĠ Ġentries . forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinsert Entry ( it ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġdelete ( entry : ĠHistory Entry ) Ġ{ ĊĠĠĠĠĠĠĠ Ġdelete By ( entry . authority , Ġentry . lang , Ġentry . namespace , Ġentry . api Title ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Transaction ĊĠĠĠ Ġfun Ġupsert With Time Sp ent ( entry : ĠHistory Entry , Ġtime Sp ent : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcur Entry Ġ= Ġfind Entry By ( entry . authority , Ġentry . lang , Ġentry . api Title ) ĊĠĠĠĠĠĠĠ Ġif Ġ( cur Entry Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcur Entry . time Sp ent Sec Ġ+= Ġtime Sp ent ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcur Entry . source Ġ= Ġentry . source ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcur Entry . timestamp Ġ= Ġentry . timestamp ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinsert Entry ( cur Entry ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġentry . time Sp ent Sec Ġ+= Ġtime Sp ent ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinsert Entry ( entry ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ