package Ġcom . example . aken as ia . handler Ċ Ċ import Ġandroid . content . Content Values Ċ import Ġandroid . content . Context Ċ import Ġandroid . database . Cursor Ċ import Ġandroid . database . sqlite . SQLite Exception Ċ import Ġcom . example . aken as ia . database . Place Ċ import Ġkotlin . system . exit Process Ċ Ċ class ĠPlace Handler ( var Ġcontext : ĠContext ): ĠHandler Ġ{ ĊĊĠĠĠ Ġvar Ġdb Handler : ĠDatabase Handler Ġ= ĠDatabase Handler ( context ) ĊĊĠĠĠ Ġ// Method Ġto Ġget Ġa ĠPosition ĊĠĠĠ Ġfun Ġget ( id : ĠInt ): ĠPlace Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġdb Ġ= Ġdb Handler . readable Database ĊĠĠĠĠĠĠĠ Ġval Ġselect Query Ġ= Ġ" SELECT Ġ Ġ* ĠFROM Ġ${ db Handler . TABLE _ PLACE } ĠWHERE Ġ$ KEY _ ID Ġ= Ġ$ id " ĊĠĠĠĠĠĠĠ Ġvar Ġcursor : ĠCursor ? Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcursor Ġ= Ġdb . raw Query ( select Query , Ġnull ) ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠSQLite Exception ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdb . exec SQL ( select Query ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġplace Id : ĠInt ĊĠĠĠĠĠĠĠ Ġval Ġplace Name : ĠString ĊĠĠĠĠĠĠĠ Ġval Ġplace Lat : ĠDouble ĊĠĠĠĠĠĠĠ Ġval Ġplace Long : ĠDouble ĊĊĠĠĠĠĠĠĠ Ġif Ġ( cursor Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcursor . moveTo First () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġplace Id Ġ= Ġcursor . getInt ( cursor . getColumnIndex (" id "). toInt ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġplace Name Ġ= Ġcursor . getString ( cursor . getColumnIndex (" name "). toInt ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġplace Lat Ġ= Ġcursor . getDouble ( cursor . getColumnIndex (" latitude "). toInt ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġplace Long Ġ= Ġcursor . getDouble ( cursor . getColumnIndex (" longitude "). toInt ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġemp Ġ= ĠPlace ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġplace Id Ġ= Ġplace Id , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġplace Name Ġ= Ġplace Name , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġplace Lat Ġ= Ġplace Lat , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġplace Long Ġ= Ġplace Long ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġemp ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġexit Process ( 0 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġadd ( emp : ĠPlace ): ĠLong Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcontent Values Ġ= ĠContent Values () ĊĠĠĠĠĠĠĠ Ġval Ġdb = Ġdb Handler . writable Database ĊĠĠĠĠĠĠĠ Ġcontent Values . put ( KEY _ ID , Ġemp . place Id ) ĊĠĠĠĠĠĠĠ Ġcontent Values . put ( KEY _ NAME , Ġemp . place Name ) Ġ// ĠEmp Model Class ĠName ĊĠĠĠĠĠĠĠ Ġcontent Values . put ( KEY _ LAT IT UDE , Ġemp . place Lat ) ĊĠĠĠĠĠĠĠ Ġcontent Values . put ( KEY _ LONG IT UDE , Ġemp . place Long ) ĊĊĠĠĠĠĠĠĠ Ġ// ĠInser ting ĠRow ĊĠĠĠĠĠĠĠ Ġval Ġsuccess Ġ= Ġdb . insert ( db Handler . TABLE _ PLACE , Ġnull , Ġ Ġcontent Values ) ĊĠĠĠĠĠĠĠ Ġ// 2 nd Ġargument Ġis ĠString Ġcontaining Ġnull Column Hack ĊĠĠĠĠĠĠĠ Ġ// db . close () Ġ// ĠClosing Ġdatabase Ġconnection ĊĠĠĠĠĠĠĠ Ġreturn Ġsuccess ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// method Ġto Ġread Ġa Ġlist Ġof ĠPosition ĊĠĠĠ Ġfun Ġview (): ĠList < Place > Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġemp List : ArrayList < Place > Ġ= ĠArrayList () ĊĠĠĠĠĠĠĠ Ġval Ġselect Query Ġ= Ġ" SELECT Ġ Ġ* ĠFROM Ġ${ db Handler . TABLE _ PLACE }" ĊĠĠĠĠĠĠĠ Ġval Ġdb Ġ= Ġdb Handler . readable Database ĊĠĠĠĠĠĠĠ Ġvar Ġcursor : ĠCursor ? Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġtry { ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcursor Ġ= Ġdb . raw Query ( select Query , Ġnull ) ĊĠĠĠĠĠĠĠ Ġ} catch Ġ( e : ĠSQLite Exception ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdb . exec SQL ( select Query ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠArrayList () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġvar Ġplace Id : ĠInt ĊĠĠĠĠĠĠĠ Ġvar Ġplace Name : ĠString ĊĠĠĠĠĠĠĠ Ġvar Ġplace Lat : ĠDouble ĊĠĠĠĠĠĠĠ Ġvar Ġplace Long : ĠDouble ĊĊĠĠĠĠĠĠĠ Ġif Ġ( cursor . moveTo First ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdo Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġplace Id Ġ= Ġcursor . getInt ( cursor . getColumnIndex (" id "). toInt ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġplace Name Ġ= Ġcursor . getString ( cursor . getColumnIndex (" name "). toInt ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġplace Lat Ġ= Ġcursor . getDouble ( cursor . getColumnIndex (" latitude "). toInt ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġplace Long Ġ= Ġcursor . getDouble ( cursor . getColumnIndex (" longitude "). toInt ()) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġemp = ĠPlace ( place Id Ġ= Ġplace Id , Ġplace Name Ġ= Ġplace Name , Ġplace Lat Ġ= Ġplace Lat , Ġplace Long Ġ= Ġplace Long ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġemp List . add ( emp ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġwhile Ġ( cursor . moveTo Next ()) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġemp List ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġdelete ( id : ĠInt ): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġdb Ġ= Ġdb Handler . writable Database ĊĠĠĠĠĠĠĠ Ġval Ġcontent Values Ġ= ĠContent Values () ĊĠĠĠĠĠĠĠ Ġcontent Values . put ( KEY _ ID , Ġid ) Ġ// ĠEmp Model Class ĠUserId ĊĠĠĠĠĠĠĠ Ġ// ĠDe leting ĠRow ĊĠĠĠĠĠĠĠ Ġval Ġsuccess Ġ= Ġdb . delete ( db Handler . TABLE _ PLACE ," id ="+ id , null ) ĊĠĠĠĠĠĠĠ Ġ// 2 nd Ġargument Ġis ĠString Ġcontaining Ġnull Column Hack ĊĠĠĠĠĠĠĠ Ġdb . close () Ġ// ĠClosing Ġdatabase Ġconnection ĊĠĠĠĠĠĠĠ Ġreturn Ġsuccess ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġupdate ( emp : ĠPlace ): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġdb Ġ= Ġdb Handler . writable Database ĊĠĠĠĠĠĠĠ Ġval Ġcontent Values Ġ= ĠContent Values () ĊĠĠĠĠĠĠĠ Ġcontent Values . put ( KEY _ ID , Ġemp . place Id - 1 ) ĊĠĠĠĠĠĠĠ Ġcontent Values . put ( KEY _ NAME , Ġemp . place Name ) ĊĠĠĠĠĠĠĠ Ġcontent Values . put ( KEY _ LAT IT UDE , Ġemp . place Lat ) ĊĠĠĠĠĠĠĠ Ġcontent Values . put ( KEY _ LONG IT UDE , Ġemp . place Long ) ĊĊĠĠĠĠĠĠĠ Ġ// ĠUpdating ĠRow ĊĠĠĠĠĠĠĠ Ġval Ġsuccess Ġ= Ġdb . update ( db Handler . TABLE _ PLACE , Ġcontent Values ," id ="+ emp . place Id , null ) ĊĠĠĠĠĠĠĠ Ġ// 2 nd Ġargument Ġis ĠString Ġcontaining Ġnull Column Hack ĊĠĠĠĠĠĠĠ Ġdb . close () Ġ// ĠClosing Ġdatabase Ġconnection ĊĠĠĠĠĠĠĠ Ġreturn Ġsuccess ĊĠĠĠ Ġ} Ċ }