package Ġcom . ray . sql itet emplate Ċ Ċ import Ġandroid . annotation . Suppress Lint Ċ import Ġandroid . content . Context Ċ import Ġandroid . util . Log Ċ import Ġcom . ray . sql itet emplate . repository . model . UserData ĊĊ Ċ class ĠDatabase Controller ( var Ġcontext : Context ) Ġ{ ĊĠĠĠ Ġprivate Ġvar Ġdb : Database Helper Ġ= ĠDatabase Helper ( context , ĠDatabase Helper . Feed Entry . DATABASE _ NAME , Ġnull , 1 ) ĊĠĠĠ Ġval ĠTag Ġ=" Database Controller . kt " ĊĠĠĠ Ġcompanion Ġobject Ġ ĠSingleton Instances Ġ{ ĊĠĠĠĠĠĠĠ Ġ@ Suppress Lint (" Static Field Leak ") ĊĠĠĠĠĠĠĠ Ġprivate Ġvar Ġinstance : ĠDatabase Controller ? Ġ= Ġnull ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Synchron ized ĊĠĠĠ Ġfun ĠgetInstance (): Database Controller { ĊĠĠĠĠĠĠĠ Ġif ( instance Ġ== null ){ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinstance Ġ= ĠDatabase Controller ( context ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġinstance Ġas ĠDatabase Controller ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġupdate User PW ( unique ID : ĠString , Ġuser New PW : ĠString ){ ĊĠĠĠĠĠĠĠ Ġdb . update Data ( unique ID , Ġuser New PW ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġadd Data ( login Data : ĠUser Data ){ ĊĠĠĠĠĠĠĠ Ġdb . insert Data ( login Data ) ĊĠĠĠĠĠĠĠ Ġ// db . close () ĊĠĠĠ Ġ} ĊĠĠĠ Ġfun ĠgetData (): ĠArrayList < Pair < Long , ĠUser Data >> Ġ{ ĊĊĠĠĠĠĠĠĠ Ġvar Ġread Cursor Ġ= Ġdb . getData () ĊĠĠĠĠĠĠĠ Ġvar Ġunique Id Ġ= Ġmutable ListOf < Long >() ĊĠĠĠĠĠĠĠ Ġ// val Ġuser Datas Ġ= Ġmutable ListOf < UserData >() ĊĊĠĠĠĠĠĠĠ Ġval Ġout Put = ĠArrayList < Pair < Long , ĠUser Data >>() ĊĊĠĠĠĠĠĠĠ Ġwith ( read Cursor ){ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhile ( moveTo Next ()){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġuniq Id Ġ= Ġ( read Cursor . getString ( 0 )). to Long () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvar ĠuserID Ġ= Ġ( read Cursor . getString ( 1 )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġuser PW Ġ= Ġ( read Cursor . getString ( 2 )) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġout Put . add ( Pair ( uniq Id , ĠUser Data ( userID , Ġuser PW ))) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġread Cursor . close () ĊĠĠĠĠĠĠĠ Ġreturn Ġout Put ĊĠĠĠ Ġ} ĊĠĠĠ Ġfun Ġremove Data ( unique ID : String ){ ĊĠĠĠĠĠĠĠ ĠLog . i ( Tag , Ġ" Have Ġyou Ġdeleted Ġthe Ġselected Ġdata Ġ? Ġ${ db . delete Data ( unique ID )}" Ġ) ĊĠĠĠĠĠĠĠ Ġdb . close () ĊĠĠĠ Ġ} ĊĊ Ċ }