package Ġcom . ig we ze . eb i . todos ql ite Ċ Ċ import Ġandroid . content . Content Values Ċ import Ġandroid . content . Context Ċ import Ġandroid . database . sqlite . SQLite Database Ċ import Ġandroid . database . sqlite . SQLite Open Helper Ċ Ċ data Ġclass ĠTodo ( val Ġid : ĠInt , Ġval Ġtext : ĠString , Ġval Ġcreated : ĠString , Ġval Ġexpired : ĠString , Ġval Ġdone : ĠBoolean Ġ= Ġfalse , Ġval Ġcategory Id : ĠInt ) Ġ{ ĊĊĠĠĠ Ġval Ġcontent Values : ĠContent Values ĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġvalues Ġ= ĠContent Values () ĊĠĠĠĠĠĠĠ Ġval Ġdone Ġ= Ġif Ġ( this . done ) Ġ 1 Ġelse Ġ 0 ĊĠĠĠĠĠĠĠ Ġvalues . put ( Todo Contract . Todos Entry . COLUMN _ TEXT , Ġthis . text ) ĊĠĠĠĠĠĠĠ Ġvalues . put ( Todo Contract . Todos Entry . COLUMN _ CREATED , Ġthis . created ) ĊĠĠĠĠĠĠĠ Ġvalues . put ( Todo Contract . Todos Entry . COLUMN _ EXPI RED , Ġthis . expired ) ĊĠĠĠĠĠĠĠ Ġvalues . put ( Todo Contract . Todos Entry . COLUMN _ DONE , Ġdone ) ĊĠĠĠĠĠĠĠ Ġvalues . put ( Todo Contract . Todos Entry . COLUMN _ CATEGORY _ ID , Ġthis . categoryId ) ĊĊĠĠĠĠĠĠĠ Ġcontent Values Ġ= Ġvalues ĊĠĠĠ Ġ} Ċ Ċ } Ċ Ċ data Ġ Ġclass ĠCategory ( val Ġid : ĠInt , Ġval Ġdescription : ĠString ) Ġ{ ĊĊĠĠĠ Ġval Ġcontent Values : ĠContent Values ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġvalues Ġ= ĠContent Values () ĊĠĠĠĠĠĠĠ Ġvalues . put ( Todo Contract . Categories Entry . COLUMN _ DESCRIPTION , Ġthis . description ) ĊĠĠĠĠĠĠĠ Ġcontent Values Ġ= Ġvalues ĊĠĠĠ Ġ} Ċ Ċ } Ċ Ċ class ĠDB Helper ( context : ĠContext ): ĠSQLite Open Helper ( context , ĠDB _ NAME , Ġnull , ĠDB _ VERSION ) Ġ{ ĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠDB _ NAME Ġ= Ġ" todos . db " ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠDB _ VERSION Ġ= Ġ 1 ĊĊĠĠĠĠĠĠĠ Ġval ĠTABLE _ CATEG ORIES _ CREATE Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠCREATE ĠTABLE Ġ${ Todo Contract . Categories Entry . TABLE _ NAME } Ġ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ${ Todo Contract . Categories Entry ._ ID } ĠINTEGER ĠPRIMARY ĠKEY , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ${ Todo Contract . Categories Entry . COLUMN _ DESCRIPTION } ĠTEXT ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" . trim Indent () ĊĊĠĠĠĠĠĠĠ Ġval ĠTABLE _ TODO S _ CREATE Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠCREATE ĠTABLE Ġ${ Todo Contract . Todos Entry . TABLE _ NAME } Ġ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ${ Todo Contract . Todos Entry ._ ID } ĠINTEGER ĠPRIMARY ĠKEY , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ${ Todo Contract . Todos Entry . COLUMN _ TEXT } ĠTEXT , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ${ Todo Contract . Todos Entry . COLUMN _ CREATED } ĠTEXT Ġdefault ĠCURRENT _ TIMESTAMP , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ${ Todo Contract . Todos Entry . COLUMN _ EXPI RED } ĠTEXT , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ${ Todo Contract . Todos Entry . COLUMN _ DONE } ĠINTEGER , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ${ Todo Contract . Todos Entry . COLUMN _ CATEGORY _ ID } ĠINTEGER , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠFOREIGN ĠKEY Ġ(${ Todo Contract . Todos Entry . COLUMN _ CATEGORY _ ID }) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠREFERENCES Ġ${ Todo Contract . Categories Entry . TABLE _ NAME } Ġ(${ Todo Contract . Categories Entry ._ ID }) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" . trim Indent (); ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( db : ĠSQLite Database ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġdb ?. exec SQL ( TABLE _ CATEG ORIES _ CREATE ) ĊĠĠĠĠĠĠĠ Ġdb ?. exec SQL ( TABLE _ TODO S _ CREATE ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Upgrade ( db : ĠSQLite Database ?, Ġold Version : ĠInt , Ġnew Version : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġdb ?. exec SQL (" DROP ĠTABLE ĠIF ĠEXISTS Ġ${ Todo Contract . Todos Entry . TABLE _ NAME }") ĊĠĠĠĠĠĠĠ Ġdb ?. exec SQL (" DROP ĠTABLE ĠIF ĠEXISTS Ġ${ Todo Contract . Categories Entry . TABLE _ NAME }") ĊĠĠĠĠĠĠĠ ĠonCreate ( db ) ĊĠĠĠ Ġ} Ċ }