package Ġy as min . lu z ia . ex recyclerview card view . dao Ċ Ċ import Ġandroid . content . Content Values Ċ import Ġandroid . content . Context Ċ import Ġandroid . database . Cursor Ċ import Ġandroid . database . sqlite . SQLite Database Ċ import Ġy as min . lu z ia . ex recyclerview card view . model . Character Ċ Ċ class ĠCharacter DAO Ġ{ ĊĊĠĠĠ Ġvar Ġdatabase Ġ: ĠSQLite Database ? Ġ= Ġnull ĊĠĠĠ Ġvar Ġdatabase Helper Ġ: ĠDatabase Helper ? Ġ= Ġnull ĊĊĠĠĠ Ġconstructor ( context : ĠContext ) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . database Helper Ġ= ĠDatabase Helper ( context ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġpublic Ġfun Ġopen Database Writable () Ġ{ ĊĠĠĠĠĠĠĠ Ġdatabase Ġ= Ġthis . database Helper ?. writable Database ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġpublic Ġfun Ġopen Database Readable () Ġ{ ĊĠĠĠĠĠĠĠ Ġdatabase Ġ= Ġthis . database Helper ?. readable Database ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġpublic Ġfun Ġclose Database () Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . database Helper ?. close () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġpublic Ġfun Ġstore ( character : ĠCharacter ): ĠLong Ġ{ ĊĊĠĠĠĠĠĠĠ Ġval Ġvalues Ġ= ĠContent Values () ĊĠĠĠĠĠĠĠ Ġvalues . put ( Database Helper . TABLE _ CHARACTER _ NAME , Ġcharacter . name ) ĊĠĠĠĠĠĠĠ Ġvalues . put ( Database Helper . TABLE _ CHARACTER _ CHAR CLASS , Ġcharacter . char Class ) ĊĠĠĠĠĠĠĠ Ġvalues . put ( Database Helper . TABLE _ CHARACTER _ LEVEL , Ġcharacter . level ) ĊĊĠĠĠĠĠĠĠ Ġreturn Ġthis . database !!. insert ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠDatabase Helper . TABLE _ CHARACTER , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvalues ) ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġpublic Ġfun Ġdelete ( character : ĠCharacter ): ĠBoolean Ġ{ ĊĊĠĠĠĠĠĠĠ Ġreturn Ġthis . database !!. delete ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠDatabase Helper . TABLE _ CHARACTER , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠDatabase Helper . TABLE _ CHARACTER _ ID +" = ?", ĊĠĠĠĠĠĠĠĠĠĠĠ ĠarrayOf ( character . id . toString ())) Ġ!= Ġ- 1 ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġpublic Ġfun Ġupdate ( character : ĠCharacter ): ĠInt Ġ{ ĊĊĠĠĠĠĠĠĠ Ġval Ġvalues Ġ= ĠContent Values () ĊĠĠĠĠĠĠĠ Ġvalues . put ( Database Helper . TABLE _ CHARACTER _ NAME , Ġcharacter . name ) ĊĠĠĠĠĠĠĠ Ġvalues . put ( Database Helper . TABLE _ CHARACTER _ CHAR CLASS , Ġcharacter . char Class ) ĊĠĠĠĠĠĠĠ Ġvalues . put ( Database Helper . TABLE _ CHARACTER _ LEVEL , Ġcharacter . level ) ĊĊĠĠĠĠĠĠĠ Ġreturn Ġthis . database !!. update ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠDatabase Helper . TABLE _ CHARACTER , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvalues , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠDatabase Helper . TABLE _ CHARACTER _ ID +" = ?", ĊĠĠĠĠĠĠĠĠĠĠĠ ĠarrayOf ( character . id . toString ())) ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġpublic Ġfun Ġfetch Characters (): ĠMutable List < Character > Ġ{ ĊĊĠĠĠĠĠĠĠ Ġval Ġlist Characters : ĠMutable List < Character > Ġ= Ġmutable ListOf < Character >() ĊĊĠĠĠĠĠĠĠ Ġval Ġcursor : ĠCursor Ġ= Ġthis . database !!. query ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠDatabase Helper . TABLE _ CHARACTER , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠDatabase Helper . TABLE _ CHARACTER _ COLUMNS , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnull , Ġnull , Ġnull , Ġnull , Ġnull ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhile Ġ( cursor . moveTo Next ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcharacter Ġ= ĠCharacter ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcursor . getInt ( cursor . getColumnIndex ( Database Helper . TABLE _ CHARACTER _ ID )), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcursor . getString ( cursor . getColumnIndex ( Database Helper . TABLE _ CHARACTER _ NAME )), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcursor . getString ( cursor . getColumnIndex ( Database Helper . TABLE _ CHARACTER _ CHAR CLASS )), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcursor . getInt ( cursor . getColumnIndex ( Database Helper . TABLE _ CHARACTER _ LEVEL )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlist Characters . add ( character ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ġfinally Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcursor . close () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġlist Characters ĊĠĠĠ Ġ} Ċ Ċ }