package Ġcom . example . mal food ware . Data Layer Ċ Ċ import Ġandroid . content . Content Values Ċ import Ġandroid . database . Cursor Ċ import Ġandroid . database . sqlite . SQLite Database Ċ import Ġandroid . database . sqlite . SQLite Exception Ċ import Ġcom . example . mal food ware . Logger Ċ Ċ class ĠApp DB Service Ġ{ ĊĠĠĠ Ġcompanion Ġobject : ĠApp State Handler , ĠDB Interface ĊĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠ Ġval ĠTABLE _ APP STATE Ġ= Ġ" AppState " ĊĠĠĠĠĠĠĠ Ġval ĠKEY _ USER Ġ= Ġ" uid LoggedIn " ĊĠĠĠĠĠĠĠ Ġval ĠKEY _ DATE Ġ= Ġ" date Selected " ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* Ġget LoggedIn User Ġretrieves Ġthe Ġlast Ġuser Ġlogged Ġin Ġduring Ġthe Ġapp 's Ġlifecycle ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġget LoggedIn User ( db Helper : ĠFood DB Helper ): ĠString ? Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġresult : ĠString ? Ġ= Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdb Ġ= Ġdb Helper . readable Database ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġquery Ġ= Ġ" SELECT Ġ* ĠFROM Ġ$ TABLE _ APP STATE " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcursor : ĠCursor ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcursor Ġ= Ġdb . raw Query ( query , Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( cursor . moveTo First ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresult Ġ= Ġcursor . getString ( cursor . getColumnIndex ( KEY _ USER )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcatch Ġ( e : ĠSQLite Exception ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġresult ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġget LoggedIn Selected Date ( db Helper : ĠFood DB Helper ): ĠString ? Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġresult : ĠString ? Ġ= Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdb Ġ= Ġdb Helper . readable Database ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġquery Ġ= Ġ" SELECT Ġ* ĠFROM Ġ$ TABLE _ APP STATE " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcursor : ĠCursor ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcursor Ġ= Ġdb . raw Query ( query , Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( cursor . moveTo First ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresult Ġ= Ġcursor . getString ( cursor . getColumnIndex ( KEY _ DATE )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcatch Ġ( e : ĠSQLite Exception ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġresult ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* Ġset LoggedIn User Ġupdates Ġthe Ġlast Ġuser Ġlogged Ġin ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġset LoggedIn User ( db Helper : ĠFood DB Helper , Ġname : ĠString ?, Ġdate : ĠString ?) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdb Ġ= Ġdb Helper . writable Database ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdelete Table ( db Helper . writable Database ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠonCreate ( db Helper . writable Database ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcontent Values Ġ= ĠContent Values () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontent Values . put ( KEY _ USER , Ġname ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontent Values . put ( KEY _ DATE , Ġdate ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdb . insert OrThrow ( TABLE _ APP STATE , Ġnull , Ġcontent Values ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcatch ( e : ĠSQLite Exception ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLogger . add ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" SQL Ġinsert Di ary Entry Ġinsertion Ġerror Ġwh il st Ġsetting Ġactive Ġuser " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun ĠonCreate ( db : ĠSQLite Database ?) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar ĠCREATE _ CONTENTS _ TABLE Ġ= Ġ(" CREATE ĠTABLE Ġ$ TABLE _ APP STATE (" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"$ KEY _ USER ĠTEXT ĠPRIMARY ĠKEY ," Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"$ KEY _ DATE ĠTEXT " Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ") ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdb ?. exec SQL ( CREATE _ CONTENTS _ TABLE ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġdelete Table ( db : ĠSQLite Database ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠDB Helper . delete Table ( db , ĠTABLE _ APP STATE ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ