package Ġcom . sh z labs . permissions app Ċ Ċ import Ġandroid . Manifest Ċ import Ġandroidx . appcompat . app . AppCompatActivity Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . widget . Toast Ċ import Ġcom . sh z labs . permissions manager . Permission Manager Ċ import Ġkotlinx . android . synt hetic . main . activity _ main .* Ċ Ċ class ĠMainActivity Ġ: ĠAppCompatActivity () Ġ{ ĊĊĠĠĠ Ġprivate Ġvar Ġpermission Manager : ĠPermission Manager ? Ġ= Ġnull ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ ĠsetContentView ( R . layout . activity _ main ) ĊĊĠĠĠĠĠĠĠ Ġask Permissions () ĊĠĠĠĠĠĠĠ Ġtrigger . setOnClickListener Ġ{ Ġask Permissions () Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġask Permissions () Ġ{ ĊĊĠĠĠĠĠĠĠ Ġpermission Manager Ġ= ĠPermission Manager ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. with ( this ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. request ( array Of ( Manifest . permission . WRITE _ EXTERNAL _ STORAGE , ĠManifest . permission . READ _ CONTACT S )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. setDescription ( R . string . permission _ description ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Callbacks ( object Ġ: ĠPermission Manager . Permission Callback Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Permission Accepted ( permission : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( this @ MainActivity , Ġ" Accepted ! Ġ\ n " Ġ+ Ġpermission , ĠToast . LENGTH _ LONG ). show () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Permission Rejected ( permission : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( this @ MainActivity , Ġ" Rejected ! Ġ\ n " Ġ+ Ġpermission , ĠToast . LENGTH _ LONG ). show () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠĠĠĠĠ Ġpermission Manager ?. ask () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Request Permissions Result ( request Code : ĠInt , Ġpermissions : ĠArray < out ĠString >, Ġgrant Results : ĠInt Array ) Ġ{ ĊĠĠĠĠĠĠĠ Ġpermission Manager ?. on Request Permission Result ( request Code , Ġpermissions , Ġgrant Results . to Typed Array ()) ĊĠĠĠ Ġ} Ċ } Ċ