package Ġpl . pol sl . student . m ich al dom ino . voice _ command _ controlled _ application . ui . note _ selection Ċ Ċ import Ġandroid . Manifest Ċ import Ġandroid . content . pm . PackageManager Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . widget . LinearLayout Ċ import Ġandroidx . appcompat . app . AppCompatActivity Ċ import Ġandroidx . core . app . Activity Compat Ċ import Ġandroidx . core . view . Gesture Detector Compat Ċ import Ġkotlinx . android . synt hetic . main . activity _ note _ selection .* Ċ import Ġkotlinx . android . synt hetic . main . content _ parent .* Ċ import Ġpl . pol sl . student . m ich al dom ino . voice _ command _ controlled _ application . R Ċ import Ġpl . pol sl . student . m ich al dom ino . voice _ command _ controlled _ application . layout _ managers . note _ selection . Note Selection Item Ċ import Ġpl . pol sl . student . m ich al dom ino . voice _ command _ controlled _ application . layout _ managers . note _ selection . Note Selection LayoutManager Ċ import Ġpl . pol sl . student . m ich al dom ino . voice _ command _ controlled _ application . logic . activity _ actions . Command Recognizer Ċ import Ġpl . pol sl . student . m ich al dom ino . voice _ command _ controlled _ application . logic . activity _ actions . Double Tap Listener Ċ import Ġpl . pol sl . student . m ich al dom ino . voice _ command _ controlled _ application . logic . activity _ actions . Speaker Ċ import Ġpl . pol sl . student . m ich al dom ino . voice _ command _ controlled _ application . persistence . model . Note Ċ Ċ class ĠNote Selection Activity Ġ: ĠAppCompatActivity (), ĠNote Selection Contract . View Ġ{ ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġpresenter : ĠNote Selection Contract . Presenter ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġm Detector : ĠGest ure Detector Compat ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġparent LinearLayout : ĠLinearLayout ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġnote Selection LayoutManager : ĠNote Selection LayoutManager ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġspeaker : ĠS peaker ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġcommand Recognizer : ĠCommand Recognizer ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠPER MISSION S _ REQUEST _ RECORD _ AUDIO Ġ= Ġ 0 ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ ĠsetContentView ( R . layout . activity _ note _ selection ) ĊĠĠĠĠĠĠĠ Ġset Support ActionBar ( toolbar ) ĊĊĠĠĠĠĠĠĠ Ġpresenter Ġ= ĠNote Selection Presenter ( this ) ĊĠĠĠĠĠĠĠ Ġm Detector Ġ= ĠGest ure Detector Compat ( this , ĠDouble Tap Listener ( this )) ĊĠĠĠĠĠĠĠ Ġparent LinearLayout Ġ= ĠfindViewById ( R . id . parent _ linear _ layout ) ĊĠĠĠĠĠĠĠ Ġnote Selection LayoutManager Ġ= ĠNote Selection LayoutManager ( layout Inflater , Ġparent LinearLayout ) ĊĠĠĠĠĠĠĠ Ġcommand Recognizer Ġ= ĠCommand Recognizer ( this ) ĊĠĠĠĠĠĠĠ Ġclick able Screen View . setOn Touch Listener Ġ{ Ġ_, Ġevent Ġ-> Ġm Detector . on Touch Event ( event ) Ġ} ĊĠĠĠĠĠĠĠ Ġspeaker Ġ= ĠS peaker ( this ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Speaker Ready () Ġ{ ĊĠĠĠĠĠĠĠ Ġpresenter . create () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Stop () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Stop () ĊĠĠĠĠĠĠĠ Ġpresenter . stop () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Pause () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Pause () ĊĠĠĠĠĠĠĠ Ġspeaker . stop Spe aking () ĊĠĠĠĠĠĠĠ Ġcommand Recognizer . cancel Listening () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġrequest Permission () Ġ{ ĊĠĠĠĠĠĠĠ ĠActivity Compat . request Permissions ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠarrayOf ( Manifest . permission . RECORD _ AUDIO ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠPER MISSION S _ REQUEST _ RECORD _ AUDIO ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Request Permissions Result ( ĊĠĠĠĠĠĠĠ Ġrequest Code : ĠInt , ĊĠĠĠĠĠĠĠ Ġpermissions : ĠArray < String >, ĊĠĠĠĠĠĠĠ Ġgrant Results : ĠInt Array ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġwhen Ġ( request Code ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠPER MISSION S _ REQUEST _ RECORD _ AUDIO Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(( grant Results . isNotEmpty () Ġ&& Ġgrant Results [ 0 ] Ġ== ĠPackage Manager . PERMISSION _ GRAN TED )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpresenter . on Permission Granted () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpresenter . on Permission Denied () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġstart Listening () Ġ{ ĊĠĠĠĠĠĠĠ Ġcommand Recognizer . start Listening () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Command Recognizer Results ( bundle : ĠBundle ) Ġ{ ĊĠĠĠĠĠĠĠ Ġpresenter . process Input ( bundle ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Double Tap () Ġ{ ĊĠĠĠĠĠĠĠ Ġpresenter . on Double Tap () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġspeak And Run Function ( message : ĠString , Ġfunction : Ġ() Ġ-> ĠUnit ) Ġ{ ĊĠĠĠĠĠĠĠ Ġspeaker . speak And Run Function ( message , Ġfunction ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġadd Note ( note : ĠNote ) Ġ{ ĊĠĠĠĠĠĠĠ Ġnote Selection LayoutManager . add Note ( note ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget Items (): ĠList < Note Selection Item > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġnote Selection LayoutManager . items ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġdelete Note ( note Selection Item : ĠNote Selection Item ) Ġ{ ĊĠĠĠĠĠĠĠ Ġnote Selection LayoutManager . delete Note ( note Selection Item ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Speech Recognizer ServerError () Ġ{ ĊĠĠĠĠĠĠĠ Ġpresenter . handle ServerError () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġstop Activity Actions () Ġ{ ĊĠĠĠĠĠĠĠ Ġspeaker . stop Spe aking () ĊĠĠĠĠĠĠĠ Ġcommand Recognizer . cancel Listening () ĊĠĠĠ Ġ} Ċ } Ċ