package Ġcom . zh jl 3 7 . permission . samples Ċ Ċ import Ġandroid . Manifest Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . view . View Ċ import Ġandroid . widget . Toast Ċ import Ġandroidx . appcompat . app . AppCompatActivity Ċ import Ġcom . zh jl 3 7 . permission . Options Ċ import Ġcom . zh jl 3 7 . permission . Permissions R ationale Activity Ċ import Ġcom . zh jl 3 7 . permission . multiple Permissions Ċ import Ġcom . zh jl 3 7 . permission . samples . databinding . Sample Binding Ċ Ċ class ĠSample Ġ: ĠAppCompatActivity () Ġ{ ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġval ĠPER MISSION S _ REQUIRED Ġ= ĠarrayOf ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠManifest . permission . CAMERA , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠManifest . permission . WRITE _ EXTERNAL _ STORAGE ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġprivate Ġval ĠPER MISSION S _ OPTIONS Ġ= ĠOptions (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġr ationale Activity Class Ġ= ĠPermissions R ationale Activity :: class . java ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġbinding : ĠSample Binding ĊĊĠĠĠ Ġprivate Ġval Ġpermissions Ġ= Ġmultiple Permissions ( ĊĠĠĠĠĠĠĠ Ġpermissions Ġ= ĠPER MISSION S _ REQUIRED , ĊĠĠĠĠĠĠĠ Ġoptions Ġ= ĠPER MISSION S _ OPTIONS , ĊĠĠĠĠĠĠĠ Ġcallback Ġ= Ġ:: on Activity Result ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĊĠĠĠĠĠĠĠ Ġbinding Ġ= ĠSample Binding ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. inflate ( layout Inflater ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbutton 1 . setOnClickListener (:: onClick ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠsetContentView ( binding . root ) ĊĠĠĠĠĠĠĠ Ġupdate Views () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġupdate Views () Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( permissions . gr anted ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . text 1 . visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . button 1 . visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . image . setImage Resource ( R . drawable . und raw _ confirmed _ re _ se f 7 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġbinding . text 1 . visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠ Ġbinding . button 1 . visibility Ġ= ĠView . VISIBLE ĊĊĠĠĠĠĠĠĠ Ġif Ġ( permissions . should Show R ationale For Denied ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . image . setImage Resource ( R . drawable . und raw _ app _ data _ re _ vg 5 c ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . image . setImage Resource ( R . drawable . und raw _ accept _ request _ re _ d 8 1 h ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun ĠonClick ( view : ĠView ) Ġ{ ĊĠĠĠĠĠĠĠ Ġwhen Ġ( view . id ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġandroid . R . id . button 1 Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( permissions . request ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( this , ĠR . string . prompt _ permissions _ gr anted , ĠToast . LENGTH _ SHORT ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. show () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġon Activity Result ( result : ĠMap < String , ĠBoolean >) Ġ{ ĊĠĠĠĠĠĠĠ Ġupdate Views () ĊĠĠĠ Ġ} Ċ } Ċ