package Ġic u . nullptr . app list detector Ċ Ċ import Ġandroid . annotation . Suppress Lint Ċ import Ġandroid . content . Context Ċ import Ġandroid . content . Intent Ċ import Ġandroid . content . pm . PackageManager Ċ Ċ class ĠPM Query Intent Activities ( context : ĠContext , Ġoverride Ġval Ġname : ĠString ) Ġ: ĠI Detector ( context ) Ġ{ ĊĊĠĠĠ Ġ// override Ġval Ġname Ġ= Ġ" PM ĠIntent ĠQueries " ĊĊĠĠĠ Ġ@ Suppress Lint (" Query Permissions Needed ") ĊĠĠĠ Ġoverride Ġfun Ġrun ( packages : ĠCollection < String > ?, Ġdetail : ĠDetail ?): ĠResult Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( packages Ġ== Ġnull ) Ġthrow ĠIllegalArgumentException (" packages Ġshould Ġnot Ġbe Ġnull ") ĊĊĠĠĠĠĠĠĠ Ġvar Ġresult Ġ= ĠResult . NOT _ FOUND ĊĠĠĠĠĠĠĠ Ġval Ġlist Ġ= Ġmutable Set Of < String >() ĊĊĠĠĠĠĠĠĠ Ġval Ġintent Ġ= ĠIntent ( Intent . ACTION _ MAIN ) ĊĠĠĠĠĠĠĠ Ġfor Ġ( pkg Ġin Ġcontext . package Manager . query Intent Activities ( intent , ĠPackage Manager . MATCH _ ALL )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlist . add ( pkg . activity Info . packageName ) ĊĠĠĠĠĠĠĠ Ġif Ġ( list . size Ġ== Ġ 0 ) Ġresult Ġ= ĠResult . METHOD _ UN AVAILABLE ĊĠĠĠĠĠĠĠ Ġif Ġ( list . size Ġ== Ġ 1 ) Ġresult Ġ= ĠResult . SUS PIC IOUS ĊĊĠĠĠĠĠĠĠ Ġfor Ġ( packageName Ġin Ġpackages ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġres Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( list . contains ( packageName )) ĠResult . FOUND ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse ĠResult . NOT _ FOUND ĊĠĠĠĠĠĠĠĠĠĠĠ Ġresult Ġ= Ġresult . coerce At Least ( res ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdetail ?. add ( packageName Ġto Ġres ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġresult ĊĠĠĠ Ġ} Ċ } Ċ