package Ġcom . github . t us arr 1 0 . track me . utils Ċ Ċ import Ġandroid . animation . Animator Ċ import Ġandroid . animation . Animator Listener Adapter Ċ import Ġandroid . animation . Animator Set Ċ import Ġandroid . animation . Object Animator Ċ import Ġandroid . annotation . Suppress Lint Ċ import Ġandroid . app . Activity Ċ import Ġandroid . content . Component Name Ċ import Ġandroid . content . Context Ċ import Ġandroid . content . Intent Ċ import Ġandroid . content . pm . PackageManager Ċ import Ġandroid . net . Uri Ċ import Ġandroid . os . Build Ċ import Ġandroid . os . V ibration Effect Ċ import Ġandroid . provider . Media Store Ċ import Ġandroid . provider . Settings Ċ import Ġandroid . util . Typed Value Ċ import Ġandroidx . annotation . Id Res Ċ import Ġandroidx . constraint layout . widget . Constraint Layout Ċ import Ġcom . google . android . material . app bar . AppBar Layout Ċ import Ġandroidx . core . content . Context Compat Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroid . view . View Tree Observer Ċ import Ġandroid . view . WindowManager Ċ import Ġandroid . view . input method . Input Method Manager Ċ import Ġandroid . widget . ImageView Ċ import Ġandroid . widget . Relative Layout Ċ import Ġandroidx . appcompat . app . AlertDialog Ċ import Ġandroidx . core . net . to Uri Ċ import Ġcn . ped ant . S weet Alert . S weet AlertDialog Ċ import Ġcom . bump tech . glide . Generic Transition Options Ċ import Ġcom . bump tech . glide . G lide Ċ import Ġcom . bump tech . glide . load . engine . Disk Cache Strategy Ċ import Ġcom . bump tech . glide . request . RequestOptions Ċ import Ġcom . da im aj ia . android animations . library . Tech niques Ċ import Ġcom . da im aj ia . android animations . library . Yo Yo Ċ import Ġcom . github . cl ans . fab . Floating Action Menu Ċ import Ġcom . github . t us arr 1 0 . track me . Build Config Ċ import Ġcom . github . t us arr 1 0 . track me . R Ċ import Ġcom . github . t us arr 1 0 . track me . data . model . Child Ċ import Ġcom . github . t us arr 1 0 . track me . ui . activities . login . Login Activity Ċ import Ġcom . github . t us arr 1 0 . track me . ui . activities . main parent . Main Parent Activity Ċ import Ġcom . github . t us arr 1 0 . track me . ui . adapters . based apter . Firebase Options Ċ import Ġcom . github . t us arr 1 0 . track me . ui . fragments . maps . Maps Fragment Ċ import Ġcom . github . t us arr 1 0 . track me . ui . widget . toolbar . Custom Toolbar Ċ import Ġcom . github . t us arr 1 0 . track me . utils . Consts . APP _ DISABLED Ċ import Ġcom . github . t us arr 1 0 . track me . utils . Consts . APP _ ENABLED Ċ import Ġcom . github . t us arr 1 0 . track me . utils . Consts . COMMAND _ ENABLE _ GPS _ PROVIDER Ċ import Ġcom . github . t us arr 1 0 . track me . utils . Consts . COMMAND _ ENABLE _ NETWORK _ PROVIDER Ċ import Ġcom . github . t us arr 1 0 . track me . utils . async . AsyncTask Root Permission Ċ import Ġcom . github . t us arr 1 0 . track me . utils . async . AsyncTask Run Command Ċ import Ġcom . google . firebase . database . Query Ċ import Ġcom . google . gson . Gson Ċ import Ġcom . google . gson . reflect . Type Token Ċ import Ġcom . p aw eg io . k android .* Ċ import Ġjava . io . File Ċ import Ġjava . text . SimpleDateFormat Ċ import Ġjava . util .* Ċ Ċ /** Ċ Ġ* ĠCreated Ġby Ġl uis Ġr af ael Ġon Ġ 9 / 0 3 / 1 8 . Ċ Ġ*/ Ċ object ĠConst Fun Ġ{ ĊĊĠĠĠ Ġfun Ġget Package Check Social (): ĠString Ġ= ĠBuild Config . PACKAGE _ CHECK _ SO CIAL ĊĊĠĠĠ Ġfun ĠgetRandom Numeric () Ġ: ĠString Ġ= ĠSystem . currentTimeMillis (). toString () ĊĊĠĠĠ Ġinline Ġfun Ġ< re ified ĠV Ġ: ĠView > ĠView . find (@ Id Res Ġid : ĠInt ): ĠV Ġ= ĠfindViewById ( id ) ĊĊĠĠĠ Ġfun Ġis Android M (): ĠBoolean Ġ= ĠBuild . VERSION . SDK _ INT Ġ>= ĠBuild . VERSION _ CODES . M ĊĊĠĠĠ Ġprivate Ġfun Ġis Android O () Ġ: ĠBoolean Ġ= ĠBuild . VERSION . SDK _ INT Ġ>= ĠBuild . VERSION _ CODES . O ĊĊĠĠĠ Ġfun ĠContext . set V ibrate ( milliseconds : ĠLong ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( is Android O ()) Ġvi br ator !!. vi br ate ( V ibration Effect . create One Shot ( milliseconds , Ġ 1 0 )) ĊĠĠĠĠĠĠĠ Ġelse Ġvi br ator !!. vi br ate ( milliseconds ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun ĠView . view Animation ( anim : ĠTech niques , Ġduration : ĠLong ) Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠYo Yo . with ( anim ). duration ( duration ). pivot ( Yo Yo . CENTER _ PI V OT , ĠYo Yo . CENTER _ PI V OT ). play On ( this ) !! ĊĊĠĠĠ Ġinline Ġfun Ġ< re ified ĠT Ġ: ĠAny > ĠActivity . start Animate Activity ( enter Anim : Int , Ġexit Anim : Int ) Ġ{ ĊĠĠĠĠĠĠĠ ĠstartActivity < T >() ĊĠĠĠĠĠĠĠ Ġfinish () ĊĠĠĠĠĠĠĠ Ġanimate Activity ( enter Anim , exit Anim ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinline Ġfun Ġ< re ified ĠT Ġ: ĠAny > ĠActivity . start Animate Activity () Ġ{ ĠstartActivity < T >() Ġ; Ġanimate Activity ( R . anim . fade _ in , R . anim . fade _ out ) Ġ} ĊĊĠĠĠ Ġfun ĠActivity . start Main ( fragment Tag : String ){ ĊĠĠĠĠĠĠĠ ĠIntent ( this , Main Parent Activity :: class . java ). also Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . putExtra (" TAG ", fragment Tag ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . start ( this ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfinish () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġanimate Activity ( R . anim . fade _ in , R . anim . fade _ out ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinline Ġfun Ġ< re ified ĠS Ġ: ĠAny > ĠContext . start Service Sms ( sms Address : String , sms Body : String , type : Int ){ ĊĠĠĠĠĠĠĠ Ġval Ġmy Intent Ġ= ĠIntent For < S >( this ) ĊĠĠĠĠĠĠĠ Ġmy Intent . putExtra ( Consts . SMS _ ADDRESS , sms Address ) ĊĠĠĠĠĠĠĠ Ġmy Intent . putExtra ( Consts . SMS _ BODY , sms Body ) ĊĠĠĠĠĠĠĠ Ġmy Intent . putExtra ( Consts . TYPE _ SMS , type ) ĊĠĠĠĠĠĠĠ Ġstart Service ( my Intent ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun ĠActivity . animate Activity ( enter Anim : Int , Ġexit Anim : Int ) Ġ= Ġoverride Pending Transition ( enter Anim , Ġexit Anim ) ĊĊĠĠĠ Ġfun ĠActivity . open Gallery () Ġ= ĠIntent ( Intent . ACTION _ P ICK , Media Store . Images . Media . EXTERNAL _ CONTENT _ URI ). also Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . flags Ġ= ĠIntent . FLAG _ ACTIVITY _ SINGLE _ TOP ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . type Ġ= Ġ" image /* " ĊĠĠĠĠĠĠĠĠĠĠĠ ĠstartActivity For Result ( it , 1 0 0 ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġfun ĠView . is Show ( state : ĠBoolean ) Ġ= Ġif Ġ( state ) Ġshow () Ġelse Ġhide () ĊĊĠĠĠ Ġfun ĠContext . open App System Settings () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġintent Ġ= ĠIntent ( Settings . ACTION _ APPLICATION _ DETAILS _ SETTINGS ) ĊĠĠĠĠĠĠĠ Ġval Ġuri Ġ= ĠUri . from Parts (" package ", ĠpackageName , Ġnull ) ĊĠĠĠĠĠĠĠ Ġintent . data Ġ= Ġuri ĊĠĠĠĠĠĠĠ Ġintent . start ( this ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġrun Thread ( sleep : ĠLong , Ġaction : Ġ() Ġ-> ĠUnit ): ĠThread Ġ= ĠThread ( Runnable Ġ{ ĊĠĠĠĠĠĠĠ Ġwhile Ġ( true ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠThread . sleep ( sleep ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrun On Ui Thread Ġ{ Ġaction () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠInterruptedException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbreak ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ}) ĊĊĠĠĠ Ġ@ Suppress Lint (" SimpleDateFormat ") ĊĠĠĠ Ġfun Ġget DateTime (): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġval ĠdateFormat Ġ= ĠSimpleDateFormat (" dd ĠM MM Ġy yyy Ġhh : mm Ġa ") ĊĠĠĠĠĠĠĠ Ġreturn ĠdateFormat . format ( Calendar . getInstance (). time ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun ĠContext . alert Dialog ( alert Type : ĠInt , Ġtitle : ĠInt , Ġmsg : ĠString ?, Ġtxt Positive Button : ĠInt ?, Ġcancell able : ĠBoolean Ġ= Ġfalse , Ġaction : ĠS weet AlertDialog . () Ġ-> ĠUnit ): ĠS weet AlertDialog Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġdialog Ġ= ĠS weet AlertDialog ( this , Ġalert Type ). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtitle Text Ġ= ĠgetString ( title ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset Cancel able ( c ancellable ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( alert Type Ġ!= ĠS weet AlertDialog . PROGRESS _ TYPE ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontent Text Ġ= Ġmsg ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġconfirm Text Ġ= ĠgetString ( txt Positive Button !! ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( c ancellable ) Ġcancel Text Ġ= ĠgetString ( android . R . string . cancel ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġshow Cancel Button ( c ancellable ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġprogress Helper . bar Color Ġ= ĠContext Compat . getColor ( this @ alert Dialog , ĠR . color . color Primary ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġaction ( dialog ) ĊĠĠĠĠĠĠĠ Ġreturn Ġdialog ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun ĠContext . alert Dialog ( v : View , c ancellable : ĠBoolean Ġ= Ġfalse ) Ġ: ĠAlertDialog Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAlertDialog . Builder ( this ). setView ( v ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Cancel able ( c ancellable ). create () ĊĊĠĠĠ Ġfun ĠImageView . setImage Url ( url : ĠString , placeholder : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ ĠG lide . with ( this ). load ( url ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. transition ( Generic Transition Options . with ( android . R . anim . fade _ in )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. apply ( RequestOptions () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. disk Cache Strategy ( Disk Cache Strategy . ALL ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// . error ( context . get Drawable ( R . drawable . ic _ placeholder _ error )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. placeholder ( context . get Drawable ( placeholder )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. into ( this ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun ĠImageView . setImage Id ( drawable : Int ){ ĊĠĠĠĠĠĠĠ ĠG lide . with ( this ). load ( drawable ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. transition ( Generic Transition Options . with ( android . R . anim . fade _ in )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. apply ( RequestOptions (). disk Cache Strategy ( Disk Cache Strategy . ALL )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. into ( this ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġconvert Current Duration ( current Duration : ĠLong ): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġseconds Ġ= Ġ( current Duration Ġ% Ġ 6 0 0 0 0 Ġ/ Ġ 1 0 0 0 ). toString () ĊĠĠĠĠĠĠĠ Ġval Ġminutes Ġ= Ġ( current Duration Ġ/ Ġ 6 0 0 0 0 ). toString () ĊĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( seconds . length Ġ== Ġ 1 ) Ġ"$ minutes : 0 $ seconds " Ġelse Ġ"$ minutes :$ seconds " ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// Firebase Options ĊĠĠĠ Ġinline Ġfun Ġ< re ified ĠT > Ġfirebase Options ( query : ĠQuery , filter : String ?= null , var arg Ġchild : String ?): ĠFirebase Options < T > Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠFirebase Options . Builder < T >(). set Query ( query , ĠT :: class . java , filter ,* child ). build () ĊĊĠĠĠ Ġfun Ġcustom Animation Menu ( menu : ĠFloating Action Menu , Ġdrawable Open : ĠInt , Ġdrawable Close : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġset Ġ= ĠAn imator Set () ĊĠĠĠĠĠĠĠ Ġval Ġscale Out X Ġ= ĠObject Animator . of Float ( menu . menu Icon View , Ġ" scale X ", Ġ 1 . 0 f , Ġ 0 . 2 f ) ĊĠĠĠĠĠĠĠ Ġval Ġscale Out Y Ġ= ĠObject Animator . of Float ( menu . menu Icon View , Ġ" scale Y ", Ġ 1 . 0 f , Ġ 0 . 2 f ) ĊĠĠĠĠĠĠĠ Ġval Ġscale In X Ġ= ĠObject Animator . of Float ( menu . menu Icon View , Ġ" scale X ", Ġ 0 . 2 f , Ġ 1 . 0 f ) ĊĠĠĠĠĠĠĠ Ġval Ġscale In Y Ġ= ĠObject Animator . of Float ( menu . menu Icon View , Ġ" scale Y ", Ġ 0 . 2 f , Ġ 1 . 0 f ) ĊĠĠĠĠĠĠĠ Ġscale Out X . duration Ġ= Ġ 5 0 ĊĠĠĠĠĠĠĠ Ġscale Out Y . duration Ġ= Ġ 5 0 ĊĠĠĠĠĠĠĠ Ġscale In X . duration Ġ= Ġ 1 5 0 ĊĠĠĠĠĠĠĠ Ġscale In Y . duration Ġ= Ġ 1 5 0 ĊĠĠĠĠĠĠĠ Ġscale In X . addListener ( object Ġ: ĠAn imator Listener Adapter () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Animation Start ( animation : ĠAn imator ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmenu . menu Icon View . setImage Resource ( if Ġ( menu . is Opened ) Ġdrawable Open Ġelse Ġdrawable Close ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ Ġset . play ( scale Out X ). with ( scale Out Y ) ĊĠĠĠĠĠĠĠ Ġset . play ( scale In X ). with ( scale In Y ). after ( scale Out X ) ĊĠĠĠĠĠĠĠ Ġ// set . interpol ator Ġ= ĠOver shoot Interpolator ( 2 f ) ĊĠĠĠĠĠĠĠ Ġmenu . icon Toggle Animator Set Ġ= Ġset ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun ĠContext . open Accessibility Settings () Ġ= ĠIntent ( Settings . ACTION _ ACC ES SI B ILITY _ SETTINGS ). also Ġ{ Ġit . start ( this ) Ġ} ĊĊĠĠĠ Ġfun ĠContext . open Use Access Settings () Ġ= ĠIntent ( Settings . ACTION _ USAGE _ ACCESS _ SETTINGS ). also Ġ{ Ġit . start ( this ) Ġ} ĊĊĠĠĠ Ġfun ĠContext . open Notification Listener Settings (){ ĊĠĠĠĠĠĠĠ Ġval Ġintent Ġ= Ġif Ġ( Build . VERSION . SDK _ INT Ġ>= ĠBuild . VERSION _ CODES . LO L LI POP _ MR 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠIntent ( Settings . ACTION _ NOTIFICATION _ LIST ENER _ SETTINGS ) ĊĠĠĠĠĠĠĠ Ġelse ĠIntent (" android . settings . ACTION _ NOTIFICATION _ LIST ENER _ SETTINGS ") ĊĠĠĠĠĠĠĠ Ġintent . start ( this ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Suppress Lint (" Battery Life ") ĊĠĠĠ Ġfun ĠContext . open Whitelist Settings (){ ĊĠĠĠĠĠĠĠ Ġif Ġ( is Android M ()) ĠIntent ( Settings . ACTION _ REQUEST _ IGNORE _ B ATTER Y _ OPTIMI Z ATIONS ). also Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . data Ġ= Ġ" package :$ packageName ". to Uri () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . start ( this ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġis Root () Ġ: ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( Build . TAGS Ġ!= Ġnull Ġ&& ĠBuild . TAGS . contains (" test - keys ")) Ġreturn Ġtrue ĊĠĠĠĠĠĠĠ Ġval Ġpatch Ġ= ĠarrayOf ("/ su / bin "," / sbin ", Ġ"/ system / bin ", Ġ"/ system / sbin ", Ġ"/ system / x bin ", Ġ"/ data / local / x bin ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"/ data / local / bin ", Ġ"/ system / sd / x bin ", Ġ"/ system / bin / fails afe ", Ġ"/ vendor / bin ", Ġ"/ data / local ") ĊĠĠĠĠĠĠĠ Ġvar Ġresult Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġfor Ġ( element Ġin Ġpatch ) Ġif Ġ( File ("$ element / su "). exists ()){ Ġresult Ġ= Ġtrue Ġ; Ġbreak Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġresult ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun ĠContext . permission Root ( result :( result : Boolean )-> Unit ) Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAsync Task Root Permission ( this ){ Ġresult ( it ) Ġ}. execute () !! ĊĊĠĠĠ Ġfun Ġenable G ps Root () Ġ= ĠAsync Task Run Command ( on Post Func Ġ= Ġ{ Ġenable Network Provider Root () Ġ}). execute ( COMMAND _ ENABLE _ GPS _ PROVIDER ) !! ĊĠĠĠ Ġprivate Ġfun Ġenable Network Provider Root () Ġ= ĠAsync Task Run Command (). execute ( COMMAND _ ENABLE _ NETWORK _ PROVIDER ) !! ĊĊĠĠĠ Ġ@ Suppress Lint (" Wrong Constant ") ĊĠĠĠ Ġfun ĠContext . show App ( state : Boolean ){ ĊĠĠĠĠĠĠĠ Ġval Ġcomponent Name Ġ= ĠComponent Name ( this , ĠLogin Activity :: class . java ) ĊĠĠĠĠĠĠĠ Ġpackage Manager . set Component Enabled Setting ( component Name , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( state ) ĠAPP _ ENABLED Ġelse ĠAPP _ DISABLED , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPackage Manager . D ONT _ KILL _ APP ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun ĠContext . is Notification Service Running () Ġ: ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġenabled Notification Listeners Ġ= ĠSettings . Secure . getString ( content Resolver , Ġ" enabled _ notification _ listeners ") ĊĠĠĠĠĠĠĠ Ġreturn Ġenabled Notification Listeners Ġ!= Ġnull Ġ&& Ġenabled Notification Listeners . contains ( packageName ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun ĠContext . is Add Whitelist () Ġ: ĠBoolean Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( is Android M ()) Ġpower Manager !!. is Ign oring Battery Optim izations ( packageName ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġtrue ĊĊĊĠĠĠ Ġfun ĠView . show Keyboard ( show : Boolean ){ ĊĠĠĠĠĠĠĠ Ġval Ġimm Ġ= Ġcontext . getSystem Service ( Context . INPUT _ METHOD _ SERVICE ) Ġas ĠInput Method Manager ĊĠĠĠĠĠĠĠ Ġif Ġ( show ) Ġimm . show Soft Input ( this , ĠInput Method Manager . SHOW _ IMP LICIT ) ĊĠĠĠĠĠĠĠ Ġelse Ġimm . hide Soft Input From Window ( this . window Token , Ġ 0 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġcontent Global Layout ( content : ĠConstraint Layout , Ġapp Bar : ĠApp Bar Layout ){ ĊĠĠĠĠĠĠĠ Ġcontent . view Tree Observer . add On Global Layout Listener ( object Ġ: ĠView Tree Observer . On Global Layout Listener { ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Global Layout () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontent . view Tree Observer . remove On Global Layout Listener ( this ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġapp bar Ġ= Ġapp Bar . height ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontent . translation Y Ġ= Ġ- app bar . toFloat () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontent . layout Params . height Ġ= Ġcontent . height Ġ+ Ġapp bar ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun ĠContext . adjust Font Scale () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġconfiguration Ġ= Ġresources . configuration ĊĠĠĠĠĠĠĠ Ġif Ġ( configuration . font Scale Ġ> Ġ 1 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġconfiguration . font Scale Ġ= Ġ 0 . 8 5 f ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmetrics Ġ= Ġresources . display Metrics ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġwm Ġ= Ġget System Service ( Context . WINDOW _ SERVICE ) Ġas ĠWindow Manager ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwm . default Display . get Metrics ( metrics ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmetrics . scaled Density Ġ= Ġconfiguration . font Scale Ġ* Ġmetrics . density ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcreate Configuration Context ( configuration ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// resources . update Configuration ( configuration , Ġmetrics ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun ĠContext . send To Google Maps ( latitude : String , longitude : String ){ ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġuri Ġ= Ġ" geo : 0 , 0 ? q =$ latitude ,$ longitude ". to Uri () ĊĠĠĠĠĠĠĠĠĠĠĠ ĠIntent ( Intent . ACTION _ VIEW , uri ). also Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . set Package (" com . google . android . apps . maps ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( it . resolve Activity ( package Manager )!= null ) ĠstartActivity ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġlong Toast ( R . string . maps _ installed ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} catch Ġ( t : Throwable ){ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlong Toast ( R . string . maps _ installed ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġis Scroll Toolbar ( toolbar : Custom Toolbar , state : Boolean ){ ĊĠĠĠĠĠĠĠ Ġval Ġparams Ġ= Ġtoolbar . layout Params Ġas ĠApp Bar Layout . LayoutParams ĊĠĠĠĠĠĠĠ Ġif Ġ( state ) Ġparams . scroll Flags Ġ= ĠApp Bar Layout . LayoutParams . SCROLL _ FLAG _ SCROLL Ġor ĠApp Bar Layout . LayoutParams . SCROLL _ FLAG _ ENTER _ ALWAYS ĊĠĠĠĠĠĠĠ Ġelse Ġparams . scroll Flags Ġ= Ġ 0 ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġlist ToString Child ( list : ĠMutable List < Child >): ĠString Ġ= ĠGson (). toJson ( list , Ġobject Ġ: ĠType Token < Mutable List < Child >>() {}. type ) ĊĊĠĠĠ Ġfun Ġstring ToList Child ( string : ĠString ): ĠMutable List < Child > Ġ= ĠGson (). fromJson ( string , Ġobject Ġ: ĠType Token < Mutable List < Child >>() {}. type ) ĊĊĠĠĠ Ġfun ĠView ?. set Padding Comp ass ( top : AppBar Layout ){ ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( this != null ){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġparent Ġ= Ġfind View With Tag < View >(" Google Map My Location Button "). parent Ġas ĠViewGroup ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġparent . post Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmargin Pixels Ġ= ĠTyped Value . apply Dimension ( Typed Value . COMPLEX _ UNIT _ DIP , Ġ 2 0 f , Ġresources . display Metrics ). toInt () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmap Comp ass Ġ= Ġparent . getChild At ( 4 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġr lp Ġ= ĠRelative Layout . LayoutParams ( map Comp ass . height , Ġmap Comp ass . height ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġr lp . add Rule ( Relative Layout . ALIGN _ PARENT _ TOP ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġr lp . add Rule ( Relative Layout . ALIGN _ PARENT _ RIGHT ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġr lp . set Margins ( margin Pixels , top . height , margin Pixels , margin Pixels ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmap Comp ass . layout Params Ġ= Ġr lp ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( t : ĠThrowable ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġe ( Maps Fragment . TAG , t . message . toString ()) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }