/** Ċ Ġ* ĠCopyright Ġ 2 0 2 0 Ġ- Ġ 2 0 2 1 Ċ Ġ* Ċ Ġ* ĠMat thew ĠR af use Ġ< mat thew . raf use @ u water lo o . ca > Ċ Ġ* Ċ Ġ* ĠCopyright Ġ 2 0 1 6 Ġ- Ġ 2 0 1 7 Ċ Ġ* Ċ Ġ* ĠDaniel ĠHint ze Ġ< daniel . hint ze ></ daniel . hint ze >@ f hd w . de > Ċ Ġ* ĠSeb astian ĠSch ol z Ġ< se b astian . sch ol z ></ se b astian . sch ol z >@ f hd w . de > Ċ Ġ* ĠR ain hard ĠD . ĠFind ling Ġ< rain hard . find ling ></ rain hard . find ling >@ fh - h agen berg . at > Ċ Ġ* ĠMu ham mad ĠM ua az Ġ< mu ham mad . m ua az ></ mu ham mad . m ua az >@ us m ile . at > Ċ Ġ* Ċ Ġ* ĠLicensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "); Ċ Ġ* Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . Ċ Ġ* ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat Ċ Ġ* Ċ Ġ* Ġhttp :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ġ* Ċ Ġ* ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware Ċ Ġ* Ġdistributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , Ċ Ġ* ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . Ċ Ġ* ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ċ Ġ* Ġlimitations Ġunder Ġthe ĠLicense . Ċ Ġ*/ Ċ package Ġca . u water lo o . mr af use . context . framework . common Ċ Ċ import Ġandroid . app . Activity Ċ import Ġandroid . content . Context Ċ import Ġandroid . content . pm . PackageManager Ċ import Ġandroidx . core . app . Activity Compat Ċ import Ġandroidx . core . content . Context Compat Ċ import Ġjava . util .* Ċ Ċ /** Ċ Ġ* ĠCreated Ġby Ġf hd ws se Ċ Ġ*/ Ċ object ĠPermission Helper Ġ{ ĊĠĠĠ Ġfun Ġcheck AndGet Permissions ( activity : ĠActivity ?, Ġvar arg Ġpermissions : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġpermissions To Ask : ĠMutable List < String > Ġ= ĠLinkedList () ĊĠĠĠĠĠĠĠ Ġfor Ġ( each Permission Ġin Ġpermissions ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( Context Compat . check Self Permission ( activity !! , Ġeach Permission ) Ġ!= ĠPackage Manager . PERMISSION _ GRAN TED ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpermissions To Ask . add ( each Permission ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ( permissions To Ask . isEmpty ()) Ġreturn ĊĠĠĠĠĠĠĠ Ġ// TODO ĠReact Ġto Ġuser Ġfeedback Ġand Ġdon 't Ġpret end Ġhe Ġwill Ġalways Ġclick Ġyes . ĊĠĠĠĠĠĠĠ ĠActivity Compat . request Permissions ( activity !! , Ġpermissions To Ask . to Typed Array (), Ġ 1 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġhas Permission ( context : ĠContext , Ġpermission : ĠString ?): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġpackage Manager Ġ= Ġcontext . package Manager ĊĠĠĠĠĠĠĠ Ġreturn Ġpackage Manager . check Permission ( permission , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontext . packageName ) Ġ== ĠPackage Manager . PERMISSION _ GRAN TED ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġhas Permission Any ( context : ĠContext , Ġpermissions : ĠArray < String >): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġpermissions . any () Ġ{ Ġhas Permission ( context , Ġit )} ĊĠĠĠ Ġ} Ċ }