package Ġl uy ao . util . k tx . ext . permission Ċ Ċ interface ĠPermissions Callback Ġ{ ĊĊĠĠĠ Ġfun Ġon Granted () ĊĊĠĠĠ Ġfun Ġon Denied ( permissions : ĠList < String >) ĊĊĠĠĠ Ġfun Ġon Show R ationale ( request : ĠPermission Request ) ĊĊĠĠĠ Ġfun Ġon Never Ask Again ( permissions : ĠList < String >) Ċ } Ċ Ċ /** Ċ Ġ* ĠDSL Ġimplementation Ġfor Ġ[ Permissions Callback ]. Ċ Ġ*/ Ċ class ĠPermissions Callback DSL Ġ: ĠPermissions Callback Ġ{ ĊĊĠĠĠ Ġprivate Ġvar Ġon Granted : Ġ() Ġ-> ĠUnit Ġ= Ġ{} ĊĠĠĠ Ġprivate Ġvar Ġon Denied : Ġ( permissions : ĠList < String >) Ġ-> ĠUnit Ġ= Ġ{} ĊĠĠĠ Ġprivate Ġvar Ġon Show R ationale : Ġ( request : ĠPermission Request ) Ġ-> ĠUnit Ġ= Ġ{} ĊĠĠĠ Ġprivate Ġvar Ġon Never Ask Again : Ġ( permissions : ĠList < String >) Ġ-> ĠUnit Ġ= Ġ{} ĊĊĠĠĠ Ġfun Ġon Granted ( func : Ġ() Ġ-> ĠUnit ) Ġ{ ĊĠĠĠĠĠĠĠ Ġon Granted Ġ= Ġfunc ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġon Denied ( func : Ġ( permissions : ĠList < String >) Ġ-> ĠUnit ) Ġ{ ĊĠĠĠĠĠĠĠ Ġon Denied Ġ= Ġfunc ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġon Show R ationale ( func : Ġ( request : ĠPermission Request ) Ġ-> ĠUnit ) Ġ{ ĊĠĠĠĠĠĠĠ Ġon Show R ationale Ġ= Ġfunc ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġon Never Ask Again ( func : Ġ( permissions : ĠList < String >) Ġ-> ĠUnit ) Ġ{ ĊĠĠĠĠĠĠĠ Ġon Never Ask Again Ġ= Ġfunc ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Granted () Ġ{ ĊĠĠĠĠĠĠĠ Ġon Granted . invoke () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Denied ( permissions : ĠList < String >) Ġ{ ĊĠĠĠĠĠĠĠ Ġon Denied . invoke ( permissions ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Show R ationale ( request : ĠPermission Request ) Ġ{ ĊĠĠĠĠĠĠĠ Ġon Show R ationale . invoke ( request ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Never Ask Again ( permissions : ĠList < String >) Ġ{ ĊĠĠĠĠĠĠĠ Ġon Never Ask Again . invoke ( permissions ) ĊĠĠĠ Ġ} Ċ Ċ }