package Ġcom . ni ge lh en sh aw . sqlite k tx Ċ Ċ import Ġandroid . app . Activity Ċ import Ġandroid . database . Cursor Ċ import Ġandroid . database . sqlite . SQLite Database Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . provider . Base Columns Ċ import Ġandroid . widget . Toast Ċ import Ġandroidx . core . widget . toast Ċ Ċ /** Ċ Ġ* ĠThis Ġexercise Ġwill Ġbe Ġused Ġto Ġcompare Ġthe Ġstandard ĠAndroid Ċ Ġ* ĠSQLite Ġdatabase Ġtransactions Ġwith Ġthe ĠK TX ĠSQLite Ġmodule Ċ Ġ* Ġtransaction Ġcall Ċ Ġ*/ Ċ class ĠMainActivity Ġ: ĠActivity () Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġdb Helper Ġby Ġlazy Ġ{ ĊĠĠĠĠĠĠĠ ĠDb Helper ( this ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĊĠĠĠĠĠĠĠ Ġ// ĠCall Ġthe Ġnewly Ġcreated Ġinsert Transaction () Ġhere ĊĊĠĠĠĠĠĠĠ Ġval Ġtitles Ġ= Ġdisplay Titles Transaction () ĊĠĠĠĠĠĠĠ Ġtoast ( titles . toString (), ĠToast . LENGTH _ LONG ) ĊĊĠĠĠĠĠĠĠ Ġdelete Table Transaction () ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠCreate Ġa Ġfunction Ġcalled Ġinsert Transaction () ĊĠĠĠĠ Ġ* ĠIt Ġwill Ġbe Ġused Ġto Ġinsert Ġa Ġvalue Ġto Ġthe Ġdatabase Ġusing Ġthe ĊĠĠĠĠ Ġ* Ġstandard ĠAndroid ĠSQLite Ġtransaction . ĊĠĠĠĠ Ġ* ĠThen Ġthe Ġimplementation Ġwill Ġbe Ġchanged Ġto Ġthe ĠK TX ĠSQLite Ġmodule ĊĠĠĠĠ Ġ* Ġtransaction . ĊĠĠĠĠ Ġ*/ ĊĊĠĠĠ Ġprivate Ġfun Ġdelete Table Transaction () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġdb Ġ= Ġdb Helper . writable Database ĊĠĠĠĠĠĠĠ Ġdb . beginTransaction () ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdb . delete ( K tx Contract . K tx Entry . TABLE _ NAME , Ġnull , Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdb . set Transaction Successful () ĊĠĠĠĠĠĠĠ Ġ} Ġfinally Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdb . end Transaction () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġdisplay Titles Transaction (): ĠList < String > Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġdb Ġ= Ġdb Helper . readable Database ĊĠĠĠĠĠĠĠ Ġval Ġtitles : ĠList < String > ĊĠĠĠĠĠĠĠ Ġdb . beginTransaction () ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtitles Ġ= Ġget Title List () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdb . set Transaction Successful () ĊĠĠĠĠĠĠĠ Ġ} Ġfinally Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdb . end Transaction () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġtitles ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġget Title List (): ĠList < String > Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġdb Ġ= Ġdb Helper . readable Database ĊĠĠĠĠĠĠĠ Ġval Ġtitle List Ġ= Ġmutable ListOf < String >() ĊĠĠĠĠĠĠĠ Ġval Ġcursor Ġ= Ġget Title Cursor ( db ) ĊĠĠĠĠĠĠĠ Ġwith ( cursor ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhile Ġ( cursor . moveTo Next ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtitle Ġ= ĠgetString ( getColumnIndex OrThrow ( K tx Contract . K tx Entry . COLUMN _ NAME _ TITLE )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtitle List . add ( title ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġtitle List ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġget Title Cursor ( db : ĠSQLite Database ): ĠCursor Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġprojection Ġ= ĠarrayOf ( Base Columns ._ ID , ĠK tx Contract . K tx Entry . COLUMN _ NAME _ TITLE ) ĊĠĠĠĠĠĠĠ Ġreturn Ġdb . query ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠK tx Contract . K tx Entry . TABLE _ NAME , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprojection , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnull , Ġnull , Ġnull , Ġnull ) ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Destroy () Ġ{ ĊĠĠĠĠĠĠĠ Ġdb Helper . close () ĊĠĠĠĠĠĠĠ Ġsuper . on Destroy () ĊĠĠĠ Ġ} Ċ } Ċ