package Ġcom . example . intent ions čĊč Ċ import Ġandroid . Manifest č Ċ import Ġandroid . content . Intent č Ċ import Ġandroid . content . pm . PackageManager č Ċ import Ġandroid . os . Build č Ċ import Ġandroidx . appcompat . app . AppCompatActivity č Ċ import Ġandroid . os . Bundle č Ċ import Ġandroid . util . Log č Ċ import Ġandroid . view . View č Ċ import Ġandroid . widget . Button č Ċ import Ġandroid . widget . EditText č Ċ import Ġandroidx . annotation . Requires Api č Ċ import Ġandroidx . core . app . Activity Compat čĊč Ċ class ĠMainActivity Ġ: ĠAppCompatActivity () Ġ{ čĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ čĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) čĊĠĠĠĠĠĠĠ ĠsetContentView ( R . layout . activity _ main ) čĊčĊĠĠĠĠĠĠĠ Ġval Ġbtn Submit : ĠButton Ġ= ĠfindViewById < Button >( R . id . btn Submit ) čĊĠĠĠĠĠĠĠ Ġval Ġet Um ur : ĠEditText Ġ= ĠfindViewById ( R . id . et Um ur ) čĊĠĠĠĠĠĠĠ Ġval Ġet Nama : ĠEditText Ġ= ĠfindViewById ( R . id . et Nama ) čĊĠĠĠĠĠĠĠ Ġval Ġet K ota : ĠEditText Ġ= ĠfindViewById ( R . id . et K ota ) čĊĠĠĠĠĠĠĠ Ġval Ġbtn Request Permission Ġ: ĠButton Ġ= ĠfindViewById < Button >( R . id . btn Request Permission ) čĊĠĠĠĠĠĠĠ ĠLog . d (" MainActivity ", Ġ" C ok ĠBar u Ġins ias i ") čĊĠĠĠĠĠĠĠ Ġbtn Submit . setOnClickListener Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġman us ia : ĠMan us ia Ġ= ĠMan us ia ( čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġet Nama . text . toString (), čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġet Um ur . text . toString (). toInt (), čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġet K ota . text . toString () čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) čĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġintent Obj Ġ= ĠIntent ( this , ĠSecond Activity :: class . java ) čĊĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d (" MainActivity "," $ intent Obj ") čĊĠĠĠĠĠĠĠĠĠĠĠ Ġintent Obj . putExtra (" EXTRA _ MAN US IA ", Ġman us ia ) čĊĠĠĠĠĠĠĠĠĠĠĠ ĠstartActivity ( intent Obj ) čĊĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠ Ġbtn Request Permission . setOnClickListener Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġreq Permissions () čĊĠĠĠĠĠĠĠ Ġ} čĊĠĠĠ Ġ} čĊčĊčĊĠĠĠ Ġprivate Ġfun Ġhas Location Foreground Permission (): Boolean { čĊĠĠĠĠĠĠĠ Ġreturn ĠActivity Compat . check Self Permission ( this , android . Manifest . permission . ACCESS _ CO AR SE _ LOCATION ) Ġ== ĠPackage Manager . PERMISSION _ GRAN TED čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġprivate Ġfun Ġhas Location Background Permission (): Boolean Ġ{ čĊĠĠĠĠĠĠĠ Ġreturn ĠActivity Compat . check Self Permission ( this , Ġandroid . Manifest . permission . ACCESS _ BACKGROUND _ LOCATION ) Ġ== ĠPackage Manager . PERMISSION _ GRAN TED čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġprivate Ġfun Ġreq Permissions (){ čĊĠĠĠĠĠĠĠ Ġvar Ġpermission To Request Ġ= Ġmutable ListOf < String >() čĊčĊĠĠĠĠĠĠĠ Ġif (! has Location Foreground Permission ()){ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġpermission To Request . add ( android . Manifest . permission . ACCESS _ CO AR SE _ LOCATION ) čĊĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠ Ġif (! has Location Background Permission ()){ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġpermission To Request . add ( android . Manifest . permission . ACCESS _ BACKGROUND _ LOCATION ) čĊĠĠĠĠĠĠĠ Ġ} čĊčĊĠĠĠĠĠĠĠ Ġif Ġ( permission To Request . isNotEmpty ()){ čĊĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d (" Permission Log "," U da h Ġreq ĠL h oo Ġ${ permission To Request [ 1 ]} ") čĊĠĠĠĠĠĠĠĠĠĠĠ ĠActivity Compat . request Permissions ( this , permission To Request . to Typed Array (), Ġ 0 ) čĊĠĠĠĠĠĠĠ Ġ} čĊčĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġoverride Ġfun Ġon Request Permissions Result ( request Code : ĠInt , Ġpermissions : ĠArray < out ĠString >, Ġgrant Results : ĠInt Array ) Ġ{ čĊĠĠĠĠĠĠĠ Ġsuper . on Request Permissions Result ( request Code , Ġpermissions , Ġgrant Results ) čĊĠĠĠĠĠĠĠ Ġif ( request Code Ġ== Ġ 0 Ġ&& Ġgrant Results . isNotEmpty ()){ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor ( i Ġin Ġgrant Results . indices ){ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif ( grant Results [ i ] Ġ== ĠPackage Manager . PERMISSION _ GRAN TED ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d (" Permission Log ", Ġ"$ i ĠPermission Ġ${ grant Results [ i ]} ĠGr anted ") čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse { čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d (" Permission Log ", Ġ"$ i ĠPermission Ġ${ grant Results [ i ]} ĠReject ed ") čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠ Ġ} čĊĠĠĠ Ġ} čĊč Ċ }