/* Ċ Ġ* ĠCopyright Ġ( C ) Ġ 2 0 1 7 ĠAnd r ze j ĠRes sel Ġ( j ere k sel @ gmail . com ) Ċ Ġ* Ċ Ġ* ĠThis Ġprogram Ġis Ġfree Ġsoftware : Ġyou Ġcan Ġredistribute Ġit Ġand / or Ġmodify Ċ Ġ* Ġit Ġunder Ġthe Ġterms Ġof Ġthe ĠGNU ĠGeneral ĠPublic ĠLicense Ġas Ġpublished Ġby Ċ Ġ* Ġthe ĠFree ĠSoftware ĠFoundation , Ġeither Ġversion Ġ 3 Ġof Ġthe ĠLicense , Ġor Ċ Ġ* Ġ( at Ġyour Ġoption ) Ġany Ġlater Ġversion . Ċ Ġ* Ċ Ġ* ĠThis Ġprogram Ġis Ġdistributed Ġin Ġthe Ġhope Ġthat Ġit Ġwill Ġbe Ġuseful , Ċ Ġ* Ġbut ĠWITHOUT ĠANY ĠWARRANTY ; Ġwithout Ġeven Ġthe Ġimplied Ġwarranty Ġof Ċ Ġ* ĠMERCHANTABILITY Ġor ĠFITNESS ĠFOR ĠA ĠPARTICULAR ĠPURPOSE . Ġ ĠSee Ġthe Ċ Ġ* ĠGNU ĠGeneral ĠPublic ĠLicense Ġfor Ġmore Ġdetails . Ċ Ġ* Ċ Ġ* ĠYou Ġshould Ġhave Ġreceived Ġa Ġcopy Ġof Ġthe ĠGNU ĠGeneral ĠPublic ĠLicense Ċ Ġ* Ġalong Ġwith Ġthis Ġprogram . Ġ ĠIf Ġnot , Ġsee Ġ< https :// www . gnu . org / licenses />. Ċ Ġ*/ Ċ Ċ package Ġcom . j ere k sel . lib res ub str atum . domain . overlay Service . n ou gat Ċ Ċ import Ġandroid . Manifest . permission . WRITE _ EXTERNAL _ STORAGE Ċ import Ġandroid . content . Context Ċ import Ġandroid . content . pm . PackageManager Ċ import Ġandroid . provider . Settings Ċ import Ġcom . google . common . util . concurrent . List enable Future Ċ import Ġcom . j ere k sel . lib res ub str atum . utils . Future Utils . to Future Ċ Ċ open Ġclass ĠW OD U Commits Overlay Service ( context : ĠContext ): ĠInter f acer Overlay Service ( context ) Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġall Permissions () Ġ= ĠlistOf ( WRITE _ EXTERNAL _ STORAGE ) ĊĊĠĠĠ Ġoverride Ġfun Ġadditional Steps (): ĠList enable Future < String ?> Ġ{ ĊĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontext . package Manager . get Package Info (" pro jekt . substr atum ", Ġ 0 ) ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠPackage Manager . Name NotFoundException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġ" Please Ġinstall ĠSub str atum Ġapp Ġ( it 's Ġrequired Ġfor ĠInter f acer Ġto Ġfunction Ġproperly ) ". to Future () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġare All Packages Allowed Ġ= ĠSettings . Secure . getInt ( context . content Resolver , Ġ" force _ authorize _ substr atum _ packages ", Ġ 0 ) Ġ== Ġ 1 ĊĊĠĠĠĠĠĠĠ Ġreturn Ġif Ġ(! are All Packages Allowed ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" Please Ġturn Ġon Ġ" Force Ġauthorize Ġevery Ġtheme Ġapp " Ġin Ġdeveloper Ġsettings """. to Future () ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnull . to Future () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ Ċ }