package Ġcom . example . my personal assistant . service Ċ Ċ import Ġandroid . annotation . Suppress Lint Ċ import Ġandroid . content . Content Values Ċ import Ġandroid . content . Context Ċ import Ġandroid . database . Cursor Ċ import Ġandroid . database . SQLException Ċ import Ġandroid . database . sqlite . SQLite Database Ċ import Ġcom . example . my personal assistant . helper . MySQL Helper Ċ import Ġcom . example . my personal assistant . model . ToDo Model Ċ Ċ class ĠTo Do List Service ( context : ĠContext ) Ġ{ ĊĊĠĠĠ Ġ// ĠDatabase Ġfields ĊĠĠĠ Ġprivate Ġvar Ġdatabase : ĠSQLite Database ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġdb Helper : ĠMySQL Helper Ġ= ĊĠĠĠĠĠĠĠ ĠMySQL Helper ( context ) ĊĊĠĠĠ Ġprivate Ġvar Ġall Columns Ġ= ĠarrayOf ( ĊĠĠĠĠĠĠĠ ĠMySQL Helper . COLUMN _ ID , ĊĠĠĠĠĠĠĠ ĠMySQL Helper . COLUMN _ TITLE , ĊĠĠĠĠĠĠĠ ĠMySQL Helper . COLUMN _ DESCRIPTION , ĊĠĠĠĠĠĠĠ ĠMySQL Helper . COLUMN _ DONE ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġ@ Throws ( SQLException :: class ) ĊĠĠĠ Ġfun Ġopen () Ġ{ ĊĠĠĠĠĠĠĠ Ġdatabase Ġ= Ġdb Helper . writable Database ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġclose () Ġ{ ĊĠĠĠĠĠĠĠ Ġdb Helper . close () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġadd Item ToDo List ( title : String , description : String ): ĠLong Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġvalues Ġ= ĠContent Values () ĊĠĠĠĠĠĠĠ Ġvalues . put ( MySQL Helper . COLUMN _ TITLE , title ) ĊĠĠĠĠĠĠĠ Ġvalues . put ( MySQL Helper . COLUMN _ DESCRIPTION , description ) ĊĠĠĠĠĠĠĠ Ġvalues . put ( MySQL Helper . COLUMN _ DONE , 0 ) ĊĊĠĠĠĠĠĠĠ Ġval Ġinsert Id : Long Ġ= Ġthis . database !!. insert ( MySQL Helper . TABLE _ TO _ DO , null , values ) ĊĠĠĠĠĠĠĠ Ġreturn Ġinsert Id ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġchange Items Status ( done : ĠInt , Ġid : Int ){ ĊĠĠĠĠĠĠĠ Ġval Ġvalues Ġ= ĠContent Values () ĊĠĠĠĠĠĠĠ Ġvalues . put ( MySQL Helper . COLUMN _ DONE , done ) ĊĊĠĠĠĠĠĠĠ Ġdatabase !!. update ( MySQL Helper . TABLE _ TO _ DO , Ġvalues , ĠMySQL Helper . COLUMN _ ID Ġ+ Ġ"=" Ġ+ Ġid , Ġnull ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Suppress Lint (" Re cycle ") ĊĠĠĠ Ġfun ĠgetAll ToDo List (): ArrayList < ToDo Model >{ ĊĠĠĠĠĠĠĠ Ġval Ġto Do List Ġ= ĠArrayList < ToDo Model >() ĊĊĠĠĠĠĠĠĠ Ġval Ġcursor : ĠCursor Ġ= Ġdatabase !!. query ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMySQL Helper . TABLE _ TO _ DO , all Columns , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMySQL Helper . COLUMN _ DONE Ġ+" = 0 ", null , null , null , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMySQL Helper . COLUMN _ ID ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġcursor . moveTo First () ĊĠĠĠĠĠĠĠ Ġwhile Ġ(! cursor . is After Last ){ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtodo : ToDo Model Ġ= Ġcursor To ToDo ( cursor ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġto Do List . add ( todo ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcursor . moveTo Next () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġcursor . close () ĊĠĠĠĠĠĠĠ Ġreturn Ġto Do List ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Suppress Lint (" Re cycle ") ĊĠĠĠ Ġfun Ġget Top 1 0 ToDo List (): ArrayList < ToDo Model >{ ĊĠĠĠĠĠĠĠ Ġval Ġto Do List Ġ= ĠArrayList < ToDo Model >() ĊĊĠĠĠĠĠĠĠ Ġval Ġcursor : ĠCursor Ġ= Ġdatabase !!. query ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMySQL Helper . TABLE _ TO _ DO , all Columns , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMySQL Helper . COLUMN _ DONE Ġ+" = 0 ", null , null , null , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMySQL Helper . COLUMN _ ID ," 1 0 ") ĊĊĠĠĠĠĠĠĠ Ġcursor . moveTo First () ĊĠĠĠĠĠĠĠ Ġwhile Ġ(! cursor . is After Last ){ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtodo : ToDo Model Ġ= Ġcursor To ToDo ( cursor ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġto Do List . add ( todo ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcursor . moveTo Next () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġcursor . close () ĊĠĠĠĠĠĠĠ Ġreturn Ġto Do List ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Suppress Lint (" Re cycle ") ĊĠĠĠ Ġfun ĠgetAll Done List (): ArrayList < ToDo Model >{ ĊĠĠĠĠĠĠĠ Ġval Ġto Do List Ġ= ĠArrayList < ToDo Model >() ĊĊĠĠĠĠĠĠĠ Ġval Ġcursor : ĠCursor Ġ= Ġdatabase !!. query ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMySQL Helper . TABLE _ TO _ DO , all Columns , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMySQL Helper . COLUMN _ DONE Ġ+" = 1 ", null , null , null , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMySQL Helper . COLUMN _ ID ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġcursor . moveTo First () ĊĠĠĠĠĠĠĠ Ġwhile Ġ(! cursor . is After Last ){ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtodo : ToDo Model Ġ= Ġcursor To ToDo ( cursor ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġto Do List . add ( todo ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcursor . moveTo Next () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġcursor . close () ĊĠĠĠĠĠĠĠ Ġreturn Ġto Do List ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġcursor To ToDo ( cursor : ĠCursor ): ToDo Model { ĊĠĠĠĠĠĠĠ Ġreturn ĠTo Do Model ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcursor . getInt ( 0 ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcursor . getString ( 1 ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcursor . getString ( 2 ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcursor . getInt ( 3 ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} Ċ }