package Ġfr . sm ar quis . app store Ċ Ċ import Ġandroid . content . Broadcast Receiver Ċ import Ġandroid . content . Context Ċ import Ġandroid . content . Intent Ċ import Ġandroid . content . Intent .* Ċ import Ġandroid . content . Intent Filter Ċ import Ġandroidx . annotation . Keep Ċ import Ġandroidx . appcompat . app . AppCompatActivity Ċ import Ġandroidx . lifecycle . Lifecycle Ċ import Ġandroidx . lifecycle . Lifecycle Observer Ċ import Ġandroidx . lifecycle . On Lifecycle Event Ċ Ċ @ Keep Ċ class ĠPackage Intent Filter ( private Ġval Ġactivity : ĠAppCompatActivity , Ġprivate Ġval Ġblock : Ġ( action : ĠString , ĠpackageName : ĠString ) Ġ-> ĠUnit ) Ġ: ĠBroadcast Receiver (), ĠLifecycle Observer Ġ{ ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĊĠĠĠĠĠĠĠ Ġfun Ġinit ( activity : ĠAppCompatActivity , Ġblock : Ġ( action : ĠString , ĠpackageName : ĠString ) Ġ-> ĠUnit ) Ġ= ĠPackage Intent Filter ( activity , Ġblock ) ĊĊĠĠĠĠĠĠĠ Ġprivate Ġval ĠINTENT _ FILTER Ġ= Ġobject Ġ: ĠIntent Filter () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd Action ( ACTION _ PACKAGE _ AD DED ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd Action ( ACTION _ PACKAGE _ REPL AC ED ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd Action ( ACTION _ PACKAGE _ RE MOVED ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd Data Scheme (" package ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġactivity . lifecycle . add Observer ( this ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Receive ( context : ĠContext , Ġintent : ĠIntent ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġaction Ġ= Ġintent . action Ġ?: Ġreturn ĊĠĠĠĠĠĠĠ Ġintent . data ?. scheme Specific Part ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( INT ENT _ FILTER . has Action ( action )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġblock ( action , Ġit ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Suppress (" unused ") ĊĠĠĠ Ġ@ On Lifecycle Event ( Lifecycle . Event . ON _ CREATE ) ĊĠĠĠ Ġprivate Ġfun Ġregister () Ġ{ ĊĠĠĠĠĠĠĠ Ġactivity . register Receiver ( this , ĠINTENT _ FILTER ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Suppress (" unused ") ĊĠĠĠ Ġ@ On Lifecycle Event ( Lifecycle . Event . ON _ DESTROY ) ĊĠĠĠ Ġprivate Ġfun Ġunregister () Ġ{ ĊĠĠĠĠĠĠĠ Ġactivity . unregister Receiver ( this ) ĊĠĠĠ Ġ} Ċ Ċ }