package Ġcom . cel er itas . blacklist Ċ Ċ import Ġandroid . content . Content Values Ċ import Ġandroid . content . Context Ċ import Ġandroid . database . sqlite . SQLite Database Ċ import Ġandroid . database . sqlite . SQLite Open Helper Ċ import Ġandroid . provider . Base Columns Ċ import Ġjava . util .* Ċ Ċ class ĠDb Wrapper ( context : ĠContext ) Ġ: ĠSQLite Open Helper ( context , ĠDATABASE _ NAME , Ġnull , ĠDATABASE _ VERSION ) Ġ{ ĊĠĠĠ Ġval Ġnumbers : ĠTable Ġ= ĠTable ( TableName . NUMBER S , Ġthis ) ĊĠĠĠ Ġval Ġhistory : ĠTable Ġ= ĠTable ( TableName . HISTORY , Ġthis ) ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( db : ĠSQLite Database ) Ġ{ ĊĠĠĠĠĠĠĠ Ġdb . exec SQL ( numbers . sql Create Entries ) ĊĠĠĠĠĠĠĠ Ġdb . exec SQL ( history . sql Create Entries ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Upgrade ( db : ĠSQLite Database ?, Ġold Version : ĠInt , Ġnew Version : ĠInt ) Ġ{} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠDATABASE _ VERSION Ġ= Ġ 1 ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠDATABASE _ NAME Ġ= Ġ" Black List . db " ĊĠĠĠ Ġ} Ċ } Ċ Ċ data Ġclass ĠTable ( val Ġname : ĠTable Name , Ġval Ġdb : ĠDb Wrapper ) Ġ{ ĊĠĠĠ Ġval Ġsql Create Entries Ġ= ĊĠĠĠĠĠĠĠ Ġ" CREATE ĠTABLE Ġ${ name . name } Ġ(" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"${ Base Columns ._ ID } ĠINTEGER ĠPRIMARY ĠKEY , Ġ" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"${ Entry . NUMBER } ĠTEXT , Ġ" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"${ Entry . DATE } ĠINTEGER , Ġ" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"${ Entry . HINT } ĠTEXT )" ĊĊĠĠĠ Ġfun Ġadd ( entry : ĠData Item ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġwritable Ġ= Ġdb . writable Database ĊĊĠĠĠĠĠĠĠ Ġwritable . insert ( name . name , Ġnull , Ġentry . values ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġremove ( number : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġwritable Ġ= Ġdb . writable Database ĊĊĠĠĠĠĠĠĠ Ġwritable . delete ( name . name , Ġ"${ Entry . NUMBER } ĠLIKE Ġ?", ĠarrayOf ( number )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġupdate ( entry : ĠData Item ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġwritable Ġ= Ġdb . writable Database ĊĊĠĠĠĠĠĠĠ Ġwritable . update ( name . name , Ġentry . values (), Ġ"${ Entry . NUMBER } ĠLIKE Ġ?", ĠarrayOf ( entry . number )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġval Ġitems : ĠList < Data Item > ĊĠĠĠĠĠĠĠ Ġget () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġreadable Ġ= Ġdb . readable Database ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcursor Ġ= Ġreadable . query ( name . name , Ġnull , Ġnull , Ġnull , Ġnull , Ġnull , Ġnull ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġmutable ListOf < Data Item >() ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġwith ( cursor ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhile Ġ( moveTo Next ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġnumber Ġ= ĠgetString ( getColumnIndex OrThrow ( Entry . NUMBER )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdate Ġ= Ġget Long ( getColumnIndex OrThrow ( Entry . DATE )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġhint Ġ= ĠgetString ( getColumnIndex OrThrow ( Entry . HINT )) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresult . add ( Data Item ( number , ĠDate ( date ), Ġhint )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġcursor . close () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġresult ĊĠĠĠĠĠĠĠ Ġ} Ċ } Ċ Ċ object ĠEntry Ġ: ĠBase Columns Ġ{ ĊĠĠĠ Ġconst Ġval ĠNUMBER Ġ= Ġ" number " ĊĠĠĠ Ġconst Ġval ĠDATE Ġ= Ġ" date " ĊĠĠĠ Ġconst Ġval ĠH INT Ġ= Ġ" hint " Ċ } Ċ Ċ enum Ġclass ĠTable Name Ġ{ ĊĠĠĠ ĠNUMBER S , ĊĠĠĠ ĠHIST ORY Ċ } Ċ Ċ fun ĠData Item . values (): ĠContent Values Ġ{ ĊĠĠĠ Ġreturn ĠContent Values (). apply Ġ{ ĊĠĠĠĠĠĠĠ Ġput ( Entry . NUMBER , Ġnumber ) ĊĠĠĠĠĠĠĠ Ġput ( Entry . DATE , Ġdate . time ) ĊĠĠĠĠĠĠĠ Ġput ( Entry . HINT , Ġhint ) ĊĠĠĠ Ġ} Ċ }