package Ġcom . visual ity . consent . check Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . content . pm . PackageManager Ċ import Ġcom . visual ity . consent . types . Permission Ċ import Ġcom . visual ity . consent . types . permission ById entifier Ċ Ċ class ĠCheck Operation Ġinternal Ġconstructor ( ĊĠĠĠ Ġprivate Ġval Ġpermissions : ĠArray < out ĠString >, ĊĠĠĠ Ġprivate Ġval Ġcontext : ĠContext , ĊĠĠĠ Ġprivate Ġvar Ġon Finished Callback : ĠOn Check Operation Finished Callback ? Ġ= Ġnull Ċ ) Ġ{ ĊĊĠĠĠ Ġvar Ġresult Ġ= ĠCheck Result . empty () ĊĠĠĠĠĠĠĠ Ġprivate Ġset ĊĊĠĠĠ Ġfun Ġwhen Finished ( callback : ĠOn Check Operation Finished Callback ): ĠCheck Operation Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . on Finished Callback Ġ= Ġcallback ĊĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinternal Ġfun Ġstart () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġallowed Permissions Ġ= Ġarray ListOf < Permission >() ĊĠĠĠĠĠĠĠ Ġval Ġblocked Permissions Ġ= Ġarray ListOf < Permission >() ĊĊĠĠĠĠĠĠĠ Ġfor Ġ( permission Identifier Ġin Ġthis . permissions ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġpermission Ġ= Ġpermission ById entifier ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpermission Identifier ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġ?: Ġcontinue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcheck Result Ġ= Ġthis . context . check Self Permission ( permission Identifier ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġpermission Allowed Ġ= Ġcheck Result Ġ== ĠPackage Manager . PERMISSION _ GRAN TED ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( permission Allowed ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġallowed Permissions . add ( permission ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġblocked Permissions . add ( permission ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġthis . result Ġ= ĠCheck Result ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġallowed Permissions . to Typed Array (), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġblocked Permissions . to Typed Array () ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġthis . on Finished Callback ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit ( this . result ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ