package Ġcom . ar up ak aman . plugin basic utils . utils Ċ Ċ import Ġandroid . annotation . Suppress Lint Ċ import Ġandroid . bluetooth . Bluetooth Adapter Ċ import Ġandroid . bluetooth . Bluetooth Manager Ċ import Ġandroid . content . Context Ċ import Ġandroid . content . Intent Ċ import Ġandroid . content . Intent Filter Ċ import Ġandroid . content . pm . PackageManager Ċ import Ġandroid . location . Location Manager Ċ import Ġandroid . net . Connectivity Manager Ċ import Ġandroid . net . Network Capabilities Ċ import Ġandroid . net . wifi . Wifi Manager Ċ import Ġandroid . os . Battery Manager Ċ import Ġandroid . os . Build Ċ import Ġandroid . provider . Settings Ċ import Ġandroid . util . Log Ċ import Ġandroid . widget . Toast Ċ import Ġandroidx . core . content . Context Compat Ċ import Ġjava . lang . reflect . Method ĊĊ Ċ /** Ċ Ġ* ĠĠ ĠToast Ġpopup Ċ Ġ*/ Ċ Ċ fun ĠContext . toast ( m Msg : ĠString ) Ġ{ ĊĠĠĠ ĠToast . makeText ( this , Ġm Msg , ĠToast . LENGTH _ SHORT ). show () Ċ } Ċ Ċ fun ĠContext . toast Long ( m Msg : ĠString ) Ġ{ ĊĠĠĠ ĠToast . makeText ( this , Ġm Msg , ĠToast . LENGTH _ LONG ). show () Ċ } Ċ Ċ /** Ċ Ġ* ĠĠ ĠNetwork ĠConnect ivity ĠFunctions Ċ Ġ*/ Ċ Ċ @ Suppress (" DE PREC ATION ") Ċ private Ġfun ĠContext . get Network Capabilities (): ĠInt { ĊĠĠĠ Ġkotlin . run Catch ing Ġ{ ĊĠĠĠĠĠĠĠ Ġ( application Context . getSystem Service ( Context . CONNECT IVITY _ SERVICE ) Ġas ĠConnect ivity Manager ?) ?. let Ġ{ Ġcon Man Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( Build . VERSION . SDK _ INT Ġ>= ĠBuild . VERSION _ CODES . M ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcapabilities Ġ= Ġcon Man . get Network Capabilities ( con Man . active Network ) ?: return Ġ- 1 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġwhen { ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcapabilities . has Transport ( Network Capabilities . TRANSPORT _ WIFI ) Ġ-> Ġ 1 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcapabilities . has Transport ( Network Capabilities . TRANSPORT _ CELL ULAR ) Ġ-> Ġ 2 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġ 0 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcapabilities Ġ= Ġcon Man . active Network Info ?: return Ġ- 1 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġwhen ( capabilities . type ){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠConnect ivity Manager . TYPE _ WIFI Ġ-> Ġ 1 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠConnect ivity Manager . TYPE _ MOB ILE Ġ-> Ġ 2 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġ 0 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ}. on Failure Ġ{ ĊĠĠĠĠĠĠĠ ĠLog . e (" is Net Connected ", Ġ" Exc Ġ$ it ") ĊĠĠĠ Ġ} ĊĠĠĠ Ġreturn Ġ- 1 Ċ } Ċ Ċ fun ĠContext . is Net Connected () Ġ= Ġ( get Network Capabilities () Ġ>= Ġ 0 ) Ċ Ċ fun ĠContext . is Wifi Connected () Ġ= Ġ( get Network Capabilities () Ġ== Ġ 1 ) Ċ Ċ fun ĠContext . is Wifi Enabled (): ĠBoolean { ĊĠĠĠ Ġkotlin . run Catch ing Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġwifi Ġ= Ġ( application Context . getSystem Service ( Context . WIFI _ SERVICE ) Ġas ĠW ifi Manager ?) ?: return Ġfalse ĊĠĠĠĠĠĠĠ Ġreturn Ġwifi . is Wifi Enabled ĊĠĠĠ Ġ}. on Failure Ġ{ ĊĠĠĠĠĠĠĠ ĠLog . e (" is Wifi Enabled ", Ġ" Exc Ġ$ it ") ĊĠĠĠ Ġ} ĊĠĠĠ Ġreturn Ġfalse Ċ } Ċ Ċ fun ĠContext . is Hot spot Enabled (): ĠBoolean { ĊĠĠĠ Ġ/* ĊĠĠĠ Ġpublic Ġstatic Ġint ĠAP _ STATE _ DIS AB LING Ġ= Ġ 1 0 ; ĊĠĠĠ Ġpublic Ġstatic Ġint ĠAP _ STATE _ DISABLED Ġ= Ġ 1 1 ; ĊĠĠĠ Ġpublic Ġstatic Ġint ĠAP _ STATE _ EN AB LING Ġ= Ġ 1 2 ; ĊĠĠĠ Ġpublic Ġstatic Ġint ĠAP _ STATE _ ENABLED Ġ= Ġ 1 3 ; ĊĠĠĠ Ġpublic Ġstatic Ġint ĠAP _ STATE _ FAILED Ġ= Ġ 1 4 ; ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġkotlin . run Catch ing Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġwifi Manager Ġ= Ġ( application Context . getSystem Service ( Context . WIFI _ SERVICE ) Ġas ĠW ifi Manager ?) ?: return Ġfalse ĊĠĠĠĠĠĠĠ Ġval Ġmethod : ĠMethod Ġ= Ġwifi Manager . java Class . getMethod (" get Wifi Ap State ") ĊĠĠĠĠĠĠĠ Ġmethod . is Accessible Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġval Ġinvoke Ġ= Ġmethod . invoke ( wifi Manager ) ĊĠĠĠĠĠĠĠ Ġreturn Ġinvoke ?. toString () Ġ== Ġ" 1 3 " ĊĠĠĠ Ġ}. on Failure Ġ{ ĊĠĠĠĠĠĠĠ ĠLog . e (" is Hot spot Enabled ", Ġ" Exc Ġ$ it ") ĊĠĠĠ Ġ} ĊĠĠĠ Ġreturn Ġfalse Ċ } Ċ Ċ @ Suppress (" DE PREC ATION ") Ċ fun ĠContext . is Bluetooth Enabled (): ĠBoolean { ĊĠĠĠ Ġkotlin . run Catch ing Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġis Bluetooth Supported Ġ= Ġpackage Manager . has System Feature ( PackageManager . FEATURE _ BL U ETO OTH ) ĊĠĠĠĠĠĠĠ Ġif Ġ(! is Bluetooth Supported ) Ġreturn Ġfalse ĊĊĠĠĠĠĠĠĠ Ġval Ġbt Adapter Ġ= Ġ( if Ġ( Build . VERSION . SDK _ INT Ġ> ĠBuild . VERSION _ CODES . J EL LY _ BE AN _ MR 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ( getSystem Service ( Context . BL U ETO OTH _ SERVICE ) Ġas ĠBluetooth Manager ). adapter Ġelse ĠBluetooth Adapter . getDefault Adapter ()) ĊĊĠĠĠĠĠĠĠ Ġreturn Ġ( bt Adapter . state Ġ== ĠBluetooth Adapter . STATE _ ON ) ĊĠĠĠ Ġ}. on Failure Ġ{ ĊĠĠĠĠĠĠĠ ĠLog . e (" is Bluetooth Enabled ", Ġ" Exc Ġ$ it ") ĊĠĠĠ Ġ} ĊĠĠĠ Ġreturn Ġfalse Ċ } Ċ Ċ /** Ċ Ġ* ĠĠ ĠDevice ĠInfo ĠFunctions Ċ Ġ*/ Ċ Ċ @ Suppress Lint (" Hardware Ids ") Ċ fun ĠContext . get Android DeviceId (): ĠString Ġ{ ĊĠĠĠ Ġkotlin . run Catch ing Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠSettings . Secure . getString ( this . content Resolver , ĠSettings . Secure . ANDROID _ ID ) ĊĠĠĠ Ġ}. on Failure Ġ{ ĊĠĠĠĠĠĠĠ ĠLog . e (" get Android DeviceId ", Ġ" Exc Ġ$ it ") ĊĠĠĠ Ġ} ĊĠĠĠ Ġreturn Ġ"" Ċ } Ċ Ċ fun ĠContext . is Developer Mode Enabled (): ĠBoolean Ġ{ ĊĠĠĠ Ġapplication Context . content Resolver . run Catch ing Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġ( Settings . Global . getInt ( this , ĠSettings . Global . DE VELO P MENT _ SETTINGS _ ENABLED Ġ, Ġ 0 ) Ġ!= Ġ 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ|| Ġ( Settings . Secure . getInt ( this , ĠSettings . Global . DE VELO P MENT _ SETTINGS _ ENABLED Ġ, Ġ 0 ) Ġ!= Ġ 0 ) ĊĠĠĠ Ġ}. on Failure Ġ{ ĊĠĠĠĠĠĠĠ ĠLog . e (" is Developer Mode Enabled ", Ġ" Exc Ġ$ it ") ĊĠĠĠ Ġ} ĊĠĠĠ Ġreturn Ġfalse Ċ } Ċ Ċ fun ĠContext . get Battery Percentage (): ĠInt Ġ{ ĊĠĠĠ Ġkotlin . run Catch ing Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġi Filter Ġ= ĠIntent Filter ( Intent . ACTION _ B ATTER Y _ CHANGED ) ĊĠĠĠĠĠĠĠ Ġval Ġbattery Status Ġ= Ġregister Receiver ( null , Ġi Filter ) ĊĠĠĠĠĠĠĠ Ġval Ġlevel Ġ= Ġbattery Status ?. getInt Extra ( Battery Manager . EXTRA _ LEVEL , Ġ- 1 ) Ġ?: Ġ- 1 ĊĠĠĠĠĠĠĠ Ġval Ġscale Ġ= Ġbattery Status ?. getInt Extra ( Battery Manager . EXTRA _ SCALE , Ġ- 1 ) Ġ?: Ġ- 1 ĊĠĠĠĠĠĠĠ Ġval Ġbattery Pct Ġ= Ġlevel Ġ/ Ġscale . toFloat () ĊĠĠĠĠĠĠĠ ĠLog . v (" get Battery Percentage ", Ġ" Battery ĠPercent Ġ${ battery Pct Ġ* Ġ 1 0 0 }"); ĊĠĠĠĠĠĠĠ Ġreturn Ġ( battery Pct Ġ* Ġ 1 0 0 ). toInt () ĊĠĠĠ Ġ}. on Failure Ġ{ ĊĠĠĠĠĠĠĠ ĠLog . e (" get Battery Percentage ", Ġ" Exc Ġ$ it ") ĊĠĠĠ Ġ} ĊĠĠĠ Ġreturn Ġ- 1 Ċ } Ċ Ċ fun ĠContext . is Location Service Enabled ( net Provide Too : ĠBoolean Ġ= Ġfalse ): ĠBoolean { ĊĠĠĠ Ġkotlin . run Catch ing Ġ{ ĊĠĠĠĠĠĠĠ Ġ( getSystem Service ( Context . LOCATION _ SERVICE ) Ġas ĠLocation Manager ?) ?. let Ġ{ manager -> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġresult Ġ= Ġmanager . is Provider Enabled ( Location Manager . GPS _ PROVIDER ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( net Provide Too ){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresult Ġ= Ġresult Ġ|| Ġmanager . is Provider Enabled ( Location Manager . NETWORK _ PROVIDER ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġresult ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ}. on Failure Ġ{ ĊĠĠĠĠĠĠĠ ĠLog . e (" is Loc Service Enabled ", Ġ" Exc Ġ$ it ") ĊĠĠĠ Ġ} ĊĠĠĠ Ġreturn Ġfalse Ċ }