package Ġcom . h erry . test . app . base . activity _ caller . module Ċ Ċ import Ġandroid . content . Intent Ċ import Ġcom . h erry . test . app . base . activity _ caller . AC Module Ċ Ċ class ĠAC Permission ( private Ġval Ġcaller : ĠCall er , Ġprivate Ġval Ġlistener : ĠAC Permission Listener ): ĠAC Module Ġ{ ĊĊĠĠĠ Ġclass ĠCall er ( ĊĠĠĠĠĠĠĠ Ġinternal Ġval Ġpermissions : ĠArray < String >, ĊĠĠĠĠĠĠĠ Ġinternal Ġval Ġblock Request : ĠBoolean Ġ= Ġfalse , ĊĠĠĠĠĠĠĠ Ġinternal Ġval Ġon Granted : Ġ(( permission : ĠArray < String >) Ġ-> ĠUnit )? Ġ= Ġnull , ĊĠĠĠĠĠĠĠ Ġinternal Ġval Ġon Denied : Ġ(( permission : ĠArray < String >) Ġ-> ĠUnit )? Ġ Ġ= Ġnull , ĊĠĠĠĠĠĠĠ Ġinternal Ġval Ġon Blocked : Ġ(( permission : ĠArray < String >) Ġ-> ĠUnit )? Ġ Ġ= Ġnull ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġinterface ĠAC Permission Listener : ĠAC Module . On Listener < AC Permission >, ĠAC Module . On Permission Listener ĊĊĠĠĠ Ġoverride Ġfun Ġon Activity Result ( request Code : ĠInt , ĠresultCode : ĠInt , Ġdata : ĠIntent ?): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġfalse ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġcall () Ġ{ ĊĠĠĠĠĠĠĠ Ġlistener . check Permission ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcaller . permissions , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcaller . block Request , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcaller . on Blocked Ġ== Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcaller . on Granted , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcaller . on Denied , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcaller . on Blocked ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} Ċ }