package Ġcom . notes android . co dex . notes android . database Ċ Ċ import Ġandroid . content . Content Values Ċ import Ġandroid . content . Context Ċ import Ġandroid . database . Cursor Ċ import Ġandroid . database . sqlite . SQLite Exception Ċ import Ġcom . notes android . co dex . notes android . database . tables . Folders Ċ import Ġcom . notes android . co dex . notes android . database . tables . Notes Ċ import Ġcom . notes android . co dex . notes android . database . tables . Pers ons Ċ import Ġcom . notes android . co dex . notes android . data . Folder Ċ import Ġcom . notes android . co dex . notes android . data . Note Ċ import Ġcom . notes android . co dex . notes android . data . Person Ċ import Ġorg . jetbrains . ank o . db . insert OrThrow Ċ Ċ /** Ċ Ġ* ĠCreated Ġby ĠA ks Cor p Ġon Ġ 0 1 . 0 2 . 2 0 1 8 . Ċ Ġ* Ċ Ġ* ĠLocal Ġdatabase ĠAPI Ċ Ġ* Ċ Ġ* Ġ@ param Ġcontext Ġparent Ġcontext Ċ Ġ*/ Ċ public Ġclass ĠLocal Database API ( ĊĠ Ġprivate Ġval Ġcontext : ĠContext Ċ ) Ġ{ ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠInsert Ġess ence Ġif Ġit 's Ġnot Ġexist Ġin Ġdatabase ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġinsert If NotExist ( ĊĠĠĠĠĠ Ġel : ĠAny ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġwhen Ġ( el ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠPerson Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! is Person Exist In Database ( el )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinsert Person In Database ( el ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠNote Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! is Note Exist In Database ( el )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinsert Note In Database ( el ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠFolder Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! is Folder Exist In Database ( el )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinsert Folder In Database ( el ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠGet Ġperson Ġess ence Ġfrom Ġdatabase Ġby Ġid ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġperson Id Ġperson Ġid ĊĠĠĠĠ Ġ* Ġ@ return Ġperson Ġess ence ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġget Person From Database ( ĊĠĠĠĠĠ Ġperson Id : ĠString ĊĠĠĠ Ġ): ĠPerson Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠCode x Notes Database . getInstance ( context ). use Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcursor : ĠCursor ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcursor Ġ= Ġquery ( Pers ons . NAME , Ġnull , Ġ"${ Pers ons . FIELDS . PERSON _ ID } Ġ= Ġ\"$ person Id \"", Ġnull , Ġnull , Ġnull , Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġe : ĠSQLite Exception ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠException (" Table Ġ${ Pers ons . NAME } Ġdoesn 't Ġexist ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcursor . moveTo First () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( cursor . count Ġ> Ġ 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠException (" Wrong Ġdatabase . Ġ${ cursor . count } Ġperson Ġwith ĠID Ġ= Ġ$ person Id ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( cursor . count Ġ== Ġ 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠException (" Person Ġwith ĠID Ġ= Ġ$ person Id Ġdoesn 't Ġexist ") ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġperson Ġ= ĠPerson ( null , Ġnull , Ġnull , Ġnull ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġpos Ġ= Ġ 0 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( columnName Ġin Ġcursor . column Names ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( columnName ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPers ons . FIELDS . PERSON _ ID Ġ-> Ġperson . id Ġ= Ġcursor . getString ( pos ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPers ons . FIELDS . NAME Ġ-> Ġperson . name Ġ= Ġcursor . getString ( pos ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPers ons . FIELDS . EMAIL Ġ-> Ġperson . email Ġ= Ġcursor . getString ( pos ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpos ++ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn @ use Ġperson ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠGet Ġall Ġnotes Ġess ence Ġfrom Ġdatabase Ġby Ġfolder Ġid ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġfolder Id Ġfolder Ġid ĊĠĠĠĠ Ġ* Ġ@ return Ġlist Ġnotes Ġess ence ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġget Notes From Database ( ĊĠĠĠĠĠ Ġfolder Id : ĠString ĊĠĠĠ Ġ): ĠMutable List < Note > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠCode x Notes Database . getInstance ( context ). use Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġcursor : ĠCursor ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcursor Ġ= Ġquery ( Notes . NAME , Ġnull , Ġ"${ Notes . FIELDS . FOLDER _ ID } Ġ= Ġ\"$ folder Id \"", Ġnull , Ġnull , Ġnull , Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġe : ĠSQLite Exception ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn @ use Ġmutable ListOf < Note >() ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcursor . moveTo First () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġnotes Ġ= Ġmutable ListOf < Note >() ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( cursor . count Ġ== Ġ 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn @ use Ġnotes ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġdo Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġnote Ġ= ĠNote () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ(( pos , ĠcolumnName ) Ġin Ġcursor . column Names . with Index ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( columnName ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠNotes . FIELDS . ID Ġ-> Ġnote . id Ġ= Ġcursor . getString ( pos ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠNotes . FIELDS . AUTHOR _ ID Ġ-> Ġnote . author Ġ= Ġget Person From Database ( cursor . getString ( pos )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠNotes . FIELDS . CONTENT Ġ-> Ġnote . content Ġ= Ġcursor . getString ( pos ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠNotes . FIELDS . DT _ CREATE Ġ-> Ġnote . dt Create Ġ= Ġcursor . getString ( pos ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠNotes . FIELDS . DT _ MO DIFY Ġ-> Ġnote . dt Modify Ġ= Ġcursor . getString ( pos ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠNotes . FIELDS . FOLDER _ ID Ġ-> Ġnote . folder Id Ġ= Ġcursor . getString ( pos ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠNotes . FIELDS . IS _ RE MOVED Ġ-> Ġnote . is Removed Ġ= Ġcursor . getString ( pos ). to Boolean () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠNotes . FIELDS . TITLE Ġ-> Ġnote . title Ġ= Ġcursor . getString ( pos ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnotes . add ( note ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġwhile Ġ( cursor . moveTo Next ()) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn @ use Ġnotes ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠGet Ġall Ġfolders Ġess ence Ġfrom Ġdatabase ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ return Ġlist Ġfolders Ġess ence ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġget Folders From Database (): ĠMutable List < Folder > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠCode x Notes Database . getInstance ( context ). use Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġcursor : ĠCursor ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcursor Ġ= Ġquery ( Folders . NAME , Ġnull , Ġnull , Ġnull , Ġnull , Ġnull , Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġe : ĠSQLite Exception ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn @ use Ġmutable ListOf < Folder >() ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcursor . moveTo First () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfolders Ġ= Ġmutable ListOf < Folder >() ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( cursor . count Ġ== Ġ 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn @ use Ġfolders ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġdo Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfolder Ġ= ĠFolder () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ(( pos , ĠcolumnName ) Ġin Ġcursor . column Names . with Index ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( columnName ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠFold ers . FIELDS . ID Ġ-> Ġfolder . id Ġ= Ġcursor . getString ( pos ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠFold ers . FIELDS . TITLE Ġ-> Ġfolder . title Ġ= Ġcursor . getString ( pos ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠFold ers . FIELDS . OWNER _ ID Ġ-> Ġfolder . owner Ġ= Ġget Person From Database ( cursor . getString ( pos )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠFold ers . FIELDS . IS _ ROOT Ġ-> Ġfolder . is Root Ġ= Ġcursor . getString ( pos ) Ġ== Ġ" 1 " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfolders . add ( folder ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġwhile Ġ( cursor . moveTo Next ()) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn @ use Ġfolders ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠInsert Ġnote _ list _ element Ġin Ġdatabase ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġnote Ġnote _ list _ element Ġto Ġadd Ġto Ġthe Ġdatabase ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġinsert Note In Database ( ĊĠĠĠĠĠ Ġnote : ĠNote ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ ĠCode x Notes Database . getInstance ( context ). use Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( note . author Ġ!= Ġnull Ġ&& Ġ! is Person Exist In Database ( note . author !! )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinsert Person In Database ( note . author !! ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinsert OrThrow ( Notes . NAME , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠNotes . FIELDS . ID Ġto Ġnote . id , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠNotes . FIELDS . FOLDER _ ID Ġto Ġnote . folder Id , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠNotes . FIELDS . TITLE Ġto Ġnote . title , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠNotes . FIELDS . CONTENT Ġto Ġnote . content , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠNotes . FIELDS . DT _ CREATE Ġto Ġnote . dt Create , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠNotes . FIELDS . DT _ MO DIFY Ġto Ġnote . dt Modify , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠNotes . FIELDS . AUTHOR _ ID Ġto Ġnote . author ?. id , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠNotes . FIELDS . IS _ RE MOVED Ġto Ġnote . is Removed ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠUpdate Ġnote _ list _ element Ġin Ġdatabase Ġby Ġnote _ list _ element Ġid ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġnote Ġnote _ list _ element Ġto Ġupdate Ġto Ġthe Ġdatabase ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġupdate Note In Database ( ĊĠĠĠĠĠ Ġnote : ĠNote ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ ĠCode x Notes Database . getInstance ( context ). use Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġnote Values Ġ= ĠContent Values () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnote Values . put ( Notes . FIELDS . FOLDER _ ID , Ġnote . folder Id ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnote Values . put ( Notes . FIELDS . TITLE , Ġnote . title ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnote Values . put ( Notes . FIELDS . CONTENT , Ġnote . content ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnote Values . put ( Notes . FIELDS . DT _ CREATE , Ġnote . dt Create ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnote Values . put ( Notes . FIELDS . DT _ MO DIFY , Ġnote . dt Modify ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnote Values . put ( Notes . FIELDS . AUTHOR _ ID , Ġnote . author ?. id ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnote Values . put ( Notes . FIELDS . IS _ RE MOVED , Ġnote . is Removed ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġupdate ( Notes . NAME , Ġnote Values , Ġ"${ Notes . FIELDS . ID } Ġ= Ġ\" ${ note . id } \"", Ġnull ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ@ param Ġnote Ġnote _ list _ element Ġto Ġcheck Ġthe Ġexistence Ġto Ġthe Ġdatabase ĊĠĠĠĠ Ġ* Ġ@ return Ġtrue Ġif Ġexist , Ġor Ġfalse ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġis Note Exist In Database ( ĊĠĠĠĠĠ Ġnote : ĠNote ĊĠĠĠ Ġ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠCode x Notes Database . getInstance ( context ). use Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcursor : ĠCursor ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcursor Ġ= Ġquery ( Notes . NAME , ĠarrayOf ( Notes . FIELDS . ID ), Ġ"${ Notes . FIELDS . ID } Ġ= Ġ\" ${ note . id } \"", Ġnull , Ġnull , Ġnull , Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġe : ĠSQLite Exception ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠException (" Table Ġ${ Notes . NAME } Ġdoesn 't Ġexist ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn @ use Ġcursor . count Ġ> Ġ 0 ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠInsert Ġperson Ġin Ġdatabase ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġperson Ġperson Ġto Ġadd Ġto Ġthe Ġdatabase ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġinsert Person In Database ( ĊĠĠĠĠĠ Ġperson : ĠPerson ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ ĠCode x Notes Database . getInstance ( context ). use Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinsert OrThrow ( Pers ons . NAME , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPers ons . FIELDS . PERSON _ ID Ġto Ġperson . id , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPers ons . FIELDS . NAME Ġto Ġperson . name , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPers ons . FIELDS . EMAIL Ġto Ġperson . email ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠUpdate Ġperson Ġin Ġdatabase Ġby Ġperson Ġid ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġperson Ġperson Ġto Ġupdate Ġto Ġthe Ġdatabase ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġupdate Person In Database ( ĊĠĠĠĠĠ Ġperson : ĠPerson ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ ĠCode x Notes Database . getInstance ( context ). use Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġperson Values Ġ= ĠContent Values () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġperson Values . put ( Pers ons . FIELDS . PERSON _ ID , Ġperson . id ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġperson Values . put ( Pers ons . FIELDS . NAME , Ġperson . name ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġperson Values . put ( Pers ons . FIELDS . EMAIL , Ġperson . email ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġupdate ( Pers ons . NAME , Ġperson Values , Ġ"${ Pers ons . FIELDS . PERSON _ ID } Ġ= Ġ\" ${ person . id } \"", Ġnull ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ@ param Ġperson Ġperson Ġto Ġcheck Ġthe Ġexistence Ġto Ġthe Ġdatabase ĊĠĠĠĠ Ġ* Ġ@ return Ġtrue Ġif Ġexist , Ġor Ġfalse ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġis Person Exist In Database ( ĊĠĠĠĠĠ Ġperson : ĠPerson ĊĠĠĠ Ġ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠCode x Notes Database . getInstance ( context ). use Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcursor : ĠCursor ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcursor Ġ= Ġquery ( Pers ons . NAME , ĠarrayOf ( Pers ons . FIELDS . PERSON _ ID ), Ġ"${ Pers ons . FIELDS . PERSON _ ID } Ġ= Ġ\" ${ person . id } \"", Ġnull , Ġnull , Ġnull , Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġe : ĠSQLite Exception ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠException (" Table Ġ${ Pers ons . NAME } Ġdoesn 't Ġexist ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn @ use Ġcursor . count Ġ> Ġ 0 ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠInsert Ġfolder Ġin Ġdatabase ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġfolder Ġfolder Ġto Ġadd Ġto Ġthe Ġdatabase ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġinsert Folder In Database ( ĊĠĠĠĠĠ Ġfolder : ĠFolder ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ ĠCode x Notes Database . getInstance ( context ). use Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinsert OrThrow ( Folders . NAME , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠFold ers . FIELDS . ID Ġto Ġfolder . id , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠFold ers . FIELDS . TITLE Ġto Ġfolder . title , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠFold ers . FIELDS . OWNER _ ID Ġto Ġfolder . owner ?. id , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠFold ers . FIELDS . IS _ ROOT Ġto Ġfolder . is Root ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠUpdate Ġfolder Ġin Ġdatabase Ġby Ġperson Ġid ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġfolder Ġfolder Ġto Ġupdate Ġto Ġthe Ġdatabase ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġupdate Folder In Database ( ĊĠĠĠĠĠ Ġfolder : ĠFolder ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ ĠCode x Notes Database . getInstance ( context ). use Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfolder Value Ġ= ĠContent Values () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfolder Value . put ( Folders . FIELDS . ID , Ġfolder . id ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfolder Value . put ( Folders . FIELDS . TITLE , Ġfolder . title ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfolder Value . put ( Folders . FIELDS . OWNER _ ID , Ġfolder . owner ?. id ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġupdate ( Folders . NAME , Ġfolder Value , Ġ"${ Folders . FIELDS . ID } Ġ= Ġ\" ${ folder . id } \"", Ġnull ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ@ param Ġfolder Ġfolder Ġto Ġcheck Ġthe Ġexistence Ġto Ġthe Ġdatabase ĊĠĠĠĠ Ġ* Ġ@ return Ġtrue Ġif Ġexist , Ġor Ġfalse ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġis Folder Exist In Database ( ĊĠĠĠĠĠ Ġfolder : ĠFolder ĊĠĠĠ Ġ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠCode x Notes Database . getInstance ( context ). use Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcursor : ĠCursor ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcursor Ġ= Ġquery ( Folders . NAME , ĠarrayOf ( Folders . FIELDS . ID ), Ġ"${ Folders . FIELDS . ID } Ġ= Ġ\" ${ folder . id } \"", Ġnull , Ġnull , Ġnull , Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġe : ĠSQLite Exception ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠException (" Table Ġ${ Folders . NAME } Ġdoesn 't Ġexist ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn @ use Ġcursor . count Ġ> Ġ 0 ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠRemove Ġall Ġdata Ġfrom Ġlocal Ġdatabase ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġdelete Database () Ġ{ ĊĠĠĠĠĠĠĠ Ġcontext . delete Database ( DATABASE _ NAME ) ĊĠĠĠ Ġ} Ċ }