package Ġcom . app sf ly er . oem . internal Ċ Ċ import Ġandroid . content . Content Provider Ċ import Ġandroid . content . Content Values Ċ import Ġandroid . database . Matrix Cursor Ċ import Ġandroid . net . Uri Ċ import Ġcom . app sf ly er . oem . Pre Install Id Ċ Ċ internal Ġclass ĠPre Install Content Provider Ġ: ĠContent Provider () Ġ{ ĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠFor Ġtesting Ġpurposes ĊĠĠĠĠĠĠĠ Ġvar Ġdelay Millis Ġ= Ġ 0 L ĊĠĠĠ Ġ} ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġdao : ĠPre Install Dao ĊĠĠĠ Ġoverride Ġfun ĠonCreate (): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġdao Ġ= ĠPre Install Database . get ( context !! ). pre Install Dao () ĊĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġquery ( ĊĠĠĠĠĠĠĠ Ġuri : ĠUri , ĊĠĠĠĠĠĠĠ Ġprojection : ĠArray < String > ?, ĊĠĠĠĠĠĠĠ Ġselection : ĠString ?, ĊĠĠĠĠĠĠĠ Ġselection Args : ĠArray < String > ?, ĊĠĠĠĠĠĠĠ Ġsort Order : ĠString ? ĊĠĠĠ Ġ) Ġ= Ġcalling Package !! ĊĠĠĠĠĠĠĠ Ġ. let ( dao :: select ) ĊĠĠĠĠĠĠĠ Ġ? . transaction Id ĊĠĠĠĠĠĠĠ Ġ? . let Ġ{ ĠarrayOf ( it ) Ġ} ĊĠĠĠĠĠĠĠ Ġ? . let Ġ{ Ġpreload Ids Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠFor Ġtesting Ġpurposes ĊĠĠĠĠĠĠĠĠĠĠĠ ĠThread . sleep ( delay Millis ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMatrix Cursor ( array Of ( Pre Install Id . KEY _ TRANSACTION _ ID )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd Row ( preload Ids ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠgetType ( uri : ĠUri ): ĠNothing ? Ġ= Ġnull ĊĠĠĠ Ġoverride Ġfun Ġinsert ( uri : ĠUri , Ġvalues : ĠContent Values ?): ĠNothing ? Ġ= Ġnull ĊĠĠĠ Ġoverride Ġfun Ġdelete ( uri : ĠUri , Ġselection : ĠString ?, Ġselection Args : ĠArray < String > ?) Ġ= Ġ 0 ĊĠĠĠ Ġoverride Ġfun Ġupdate ( ĊĠĠĠĠĠĠĠ Ġuri : ĠUri , ĊĠĠĠĠĠĠĠ Ġvalues : ĠContent Values ?, ĊĠĠĠĠĠĠĠ Ġselection : ĠString ?, ĊĠĠĠĠĠĠĠ Ġselection Args : ĠArray < String >? ĊĠĠĠ Ġ) Ġ= Ġ 0 Ċ }