Ċ Ċ package Ġcom . now fal . kd roi dex t . kot x . ext . app Ċ Ċ import Ġandroid . annotation . Suppress Lint Ċ import Ġandroid . app . Activity Ċ import Ġandroid . app . Dialog Ċ import Ġandroid . app . Notification Manager Ċ import Ġandroid . app . Search Manager Ċ import Ġandroid . content . Context Ċ import Ġandroid . content . Intent Ċ import Ġandroid . content . SharedPreferences Ċ import Ġandroid . content . res . Resources Ċ import Ġandroid . content . res . Typed Array Ċ import Ġandroid . graphics . drawable . Drawable Ċ import Ġandroid . net . Connectivity Manager Ċ import Ġandroid . preference . Preference Manager Ċ import Ġandroidx . annotation . Attr Res Ċ import Ġandroidx . annotation . String Res Ċ import Ġandroidx . local broadcast manager . content . Local Broadcast Manager Ċ import Ġandroidx . appcompat . content . res . AppCompat Resources Ċ import Ġandroid . util . Attribute Set Ċ import Ġandroid . util . Typed Value Ċ import Ġandroid . view . input method . Input Method Manager Ċ import Ġandroid . widget . Toast ĊĊ Ċ /** Ċ Ġ* ĠDefault Ġtoast Ġduration . ĠSet Ġto Ġ[ Toast . LENGTH _ LONG ]. Ċ Ġ*/ Ċ const Ġval ĠTO AST _ DEFAULT _ DURATION Ġ= ĠToast . LENGTH _ LONG Ċ Ċ /** Ċ Ġ* ĠStarts Ġa Ġnew Ġactivity Ġby Ġcreating Ġa Ġnew Ġ[ Intent ], Ġcalling Ġ[ block ] Ġwith Ċ Ġ* Ġthe Ġnew Ġinstance , Ġthen Ġpassing Ġthe Ġintent Ġto Ġ[ Context . startActivity ]. Ċ Ġ*/ Ċ inline Ġfun Ġ< re ified ĠT : ĠActivity > ĠContext . startActivity ( block : ĠIntent . () Ġ-> ĠUnit Ġ= Ġ{}) Ġ{ ĊĠĠĠ ĠstartActivity ( Intent ( this , ĠT :: class . java ). apply Ġ{ ĊĠĠĠĠĠĠĠ Ġblock ( this ) ĊĠĠĠ Ġ}) Ċ } Ċ Ċ /** Ċ Ġ* ĠReturns Ġa Ġ[ Local Broadcast Manager ] Ġinstance Ġby Ġcalling Ċ Ġ* Ġ[ Local Broadcast Manager . getInstance ]. Ċ Ġ*/ Ċ val ĠContext . local Broadcast Manager : ĠLocal Broadcast Manager ĊĠĠĠ Ġget () Ġ= ĠLocal Broadcast Manager . getInstance ( this ) Ċ Ċ /** Ċ Ġ* ĠReturns Ġ[ Input Method Manager ] Ġinstance Ġby Ġcalling Ġ[ Context . getSystem Service ]. Ċ Ġ*/ Ċ val ĠContext . input Method Manager : ĠInput Method Manager ĊĠĠĠ Ġget () Ġ= Ġget System Service ( Context . INPUT _ METHOD _ SERVICE ) Ġas ĠInput Method Manager Ċ Ċ /** Ċ Ġ* ĠReturns Ġ[ Search Manager ] Ġinstance Ġby Ġcalling Ġ[ Context . getSystem Service ]. Ċ Ġ*/ Ċ val ĠContext . search Manager : ĠSearch Manager ĊĠĠĠ Ġget () Ġ= Ġget System Service ( Context . SEARCH _ SERVICE ) Ġas ĠSearch Manager Ċ Ċ /** Ċ Ġ* ĠReturns Ġ[ Connectivity Manager ] Ġinstance Ġby Ġcalling Ġ[ Context . getSystem Service ]. Ċ Ġ*/ Ċ val ĠContext . connectivity Manager : ĠConnect ivity Manager ĊĠĠĠ Ġget () Ġ= Ġget System Service ( Context . CONNECT IVITY _ SERVICE ) Ġas ĠConnect ivity Manager Ċ Ċ /** Ċ Ġ* ĠReturns Ġ[ Notification Manager ] Ġinstance Ġby Ġcalling Ġ[ Context . getSystem Service ]. Ċ Ġ*/ Ċ val ĠContext . notification Manager : ĠNotification Manager ĊĠĠĠ Ġget () Ġ= Ġget System Service ( Context . NOTIFICATION _ SERVICE ) Ġas ĠNotification Manager Ċ Ċ /** Ċ Ġ* ĠReturns Ġdefault Ġ[ SharedPreferences ] Ġinstance Ġby Ġcalling Ċ Ġ* Ġ[ Preference Manager . getDefault SharedPreferences ]. Ċ Ġ*/ Ċ val ĠContext . default SharedPreferences : ĠSharedPreferences ĊĠĠĠ Ġget () Ġ= ĠPreference Manager . getDefault SharedPreferences ( this ) Ċ Ċ /** Ċ Ġ* ĠSends Ġa Ġlocal Ġbroadcast Ġby Ġcreating Ġa Ġnew Ġ[ Intent ] Ġwith Ġspecified Ġ[ action ], Ċ Ġ* Ġcalling Ġoptional Ġ[ block ] Ġwith Ġthe Ġinstance Ġbefore Ġcalling Ċ Ġ* Ġ[ Local Broadcast Manager . send Broadcast ]. Ċ Ġ*/ Ċ fun ĠContext . broadcast Local ( action : ĠString , Ġblock : ĠIntent . () Ġ-> ĠUnit Ġ= Ġ{}) Ġ{ ĊĠĠĠ Ġbroadcast Local ( Intent ( action ). apply Ġ{ ĊĠĠĠĠĠĠĠ Ġblock ( this ) ĊĠĠĠ Ġ}) Ċ } Ċ Ċ /** Ċ Ġ* ĠSends Ġa Ġlocal Ġbroadcast Ġby Ġcalling Ġ[ Local Broadcast Manager . send Broadcast ] Ċ Ġ* Ġwith Ġspecified Ġ[ intent ]. Ċ Ġ*/ Ċ fun ĠContext . broadcast Local ( intent : ĠIntent ) Ġ{ ĊĠĠĠ Ġlocal Broadcast Manager . send Broadcast ( intent ) Ċ } Ċ Ċ /** Ċ Ġ* ĠReturns Ġtrue Ġif Ġthe Ġdevice Ġis Ġconnected Ġto Ġat Ġleast Ġone Ġnetwork . Ċ Ġ* ĠNote Ġthat Ġthis Ġdoesn 't Ġnecessarily Ġindicate Ġinternet Ġaccess . Ċ Ġ*/ Ċ val ĠContext . isConnected To Network : ĠBoolean ĊĠĠĠ Ġ@ Suppress Lint (" Missing Permission ") ĊĠĠĠ Ġget () Ġ= Ġconnectivity Manager . active Network Info ?. isConnected Ġ== Ġtrue Ċ Ċ /** Ċ Ġ* ĠReturns Ġthe Ġapp Ġversion Ġstring , Ġor Ġnull Ġif Ġit Ġcan 't Ġbe Ġdetermined . Ċ Ġ*/ Ċ fun ĠContext . app Version Name (): ĠString ? Ġ= ĊĠĠĠĠĠĠĠ Ġapplication Context . package Manager . get Package Info ( packageName , Ġ 0 )?. version Name Ċ Ċ /** Ċ Ġ* ĠReturns Ġthe Ġapp Ġversion Ġcode , Ġor Ġ- 1 Ġif Ġit Ġcan 't Ġbe Ġdetermined . Ċ Ġ*/ Ċ fun ĠContext . app Version Code (): ĠInt Ġ= ĊĠĠĠĠĠĠĠ Ġapplication Context . package Manager . get Package Info ( packageName , Ġ 0 )?. version Code Ġ?: Ġ- 1 Ċ Ċ /** Ċ Ġ* ĠOb t ains Ġ[ Typed Array ] Ġby Ġcalling Ġ[ Resources . Theme . obtain Styled Attributes ] Ċ Ġ* Ġwith Ġsupplied Ġparameters , Ġthen Ġpassing Ġthe Ġarray Ġto Ġthe Ġsupplied Ġ[ block ], Ċ Ġ* Ġbefore Ġre cycl ing Ġit . Ċ Ġ*/ Ċ fun ĠContext . with Styled Attributes ( attrs : ĠInt Array , Ġset : ĠAttributeSet ? Ġ= Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdef Style Attr : ĠInt Ġ= Ġ 0 , Ġdef Style Res : ĠInt Ġ= Ġ 0 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġblock : ĠTyped Array . () Ġ-> ĠUnit ) Ġ{ ĊĠĠĠ Ġset ?. let Ġ{ ĊĠĠĠĠĠĠĠ Ġtheme . obtain Styled Attributes ( set , Ġattrs , Ġdef Style Attr , Ġdef Style Res ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. apply ( block ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. recycle () ĊĠĠĠ Ġ} Ċ } Ċ Ċ /** Ċ Ġ* ĠCreates Ġand Ġdisplays Ġa Ġnew Ġ[ Toast ] Ġwith Ġspecified Ċ Ġ* Ġ[ message ][ message Res Id ]. Ċ Ġ* Ċ Ġ* ĠExample : Ċ Ġ* Ċ Ġ* Ġ``` Ċ Ġ* Ġshow Toast ( R . string . update _ complete ) Ċ Ġ* Ġ``` Ċ Ġ*/ Ċ fun ĠContext . show Toast (@ String Res Ġmessage Res Id : ĠInt , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġduration : ĠInt Ġ= ĠTO AST _ DEFAULT _ DURATION Ċ ) Ġ{ ĊĠĠĠ ĠToast . makeText ( this , Ġmessage Res Id , Ġduration ). show () Ċ } Ċ Ċ /** Ċ Ġ* ĠCreates Ġand Ġdisplays Ġa Ġnew Ġ[ Toast ] Ġwith Ġspecified Ġ[ message ]. Ċ Ġ* Ċ Ġ* ĠExample : Ċ Ġ* Ċ Ġ* Ġ``` Ċ Ġ* Ġshow Toast (" Update Ġcomplete ") Ċ Ġ* Ġ``` Ċ Ġ*/ Ċ fun ĠContext . show Toast ( message : ĠString ?, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġduration : ĠInt Ġ= ĠTO AST _ DEFAULT _ DURATION Ċ ) Ġ{ ĊĠĠĠ ĠToast . makeText ( this , Ġmessage , Ġduration ). show () Ċ } Ċ Ċ /** Ċ Ġ* ĠDisplays Ġan Ġalert Ġdialog Ġby Ġcreating Ġa Ġnew Ġ[ AlertDialog Builder ] Ġusing Ġthe Ċ Ġ* Ġ[ title ] Ġand Ġ[ message ] Ġprovided , Ġthen Ġpassing Ġit Ġto Ġ[ block ] Ġwith Ġthe Ġbuilder Ċ Ġ* Ġas Ġreceiver . Ċ Ġ* Ċ Ġ* ĠExample Ġusage : Ċ Ġ* Ċ Ġ* Ġ``` Ċ Ġ* Ġshow AlertDialog (" D anger Ġzone ?") Ġ{ Ċ Ġ* ĠĠĠĠ Ġpositive Button (" yes ") Ġ{ Ġ_, Ġ_ Ġ-> Ġdelete All () Ġ} Ċ Ġ* ĠĠĠĠ Ġnegative Button (" no ") Ċ Ġ* Ġ} Ċ Ġ* Ġ``` Ċ Ġ* Ċ Ġ* Ġ@ return ĠInstance Ġof Ġdisplayed Ġdialog . Ċ Ġ*/ Ċ fun ĠContext . show AlertDialog ( message : ĠString ? Ġ= Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtitle : ĠString ? Ġ= Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġblock : ĠAlertDialog Builder . () Ġ-> ĠUnit Ġ= Ġ{} ): ĠDialog Ġ{ ĊĠĠĠ Ġval Ġdialog Ġ= ĠAlertDialog Builder ( this , Ġmessage , Ġtitle ). apply Ġ{ ĊĠĠĠĠĠĠĠ Ġblock ( this ) ĊĠĠĠ Ġ}. to Dialog () ĊĊĠĠĠ Ġdialog . show () ĊĠĠĠ Ġreturn Ġdialog Ċ } Ċ Ċ /** Ċ Ġ* ĠDisplays Ġan Ġalert Ġdialog Ġby Ġcreating Ġa Ġnew Ġ[ AlertDialog Builder ] Ġusing Ġthe Ċ Ġ* Ġ[ title ][ title Res Id ] Ġand Ġ[ message ][ message Res Id ] Ġstring Ġresource Ġids Ġprovided , Ċ Ġ* Ġthen Ġpassing Ġit Ġto Ġ[ block ] Ġwith Ġthe Ġbuilder Ġas Ġreceiver . Ċ Ġ* Ċ Ġ* ĠExample Ġusage : Ċ Ġ* Ċ Ġ* Ġ``` Ċ Ġ* Ġshow AlertDialog ( R . string . delete _ everything ) Ġ{ Ċ Ġ* ĠĠĠĠ Ġpositive Button ( R . string . yes ) Ġ{ Ġ_, Ġ_ Ġ-> Ġdelete All () Ġ} Ċ Ġ* ĠĠĠĠ Ġnegative Button ( R . string . no ) Ċ Ġ* Ġ} Ċ Ġ* Ġ``` Ċ Ġ* Ċ Ġ* Ġ@ return ĠInstance Ġof Ġdisplayed Ġdialog . Ċ Ġ*/ Ċ fun ĠContext . show AlertDialog (@ String Res Ġmessage Res Id : ĠInt , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ@ String Res Ġtitle Res Id : ĠInt Ġ= Ġ 0 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġblock : ĠAlertDialog Builder . () Ġ-> ĠUnit Ġ= Ġ{} ): ĠDialog Ġ{ ĊĠĠĠ Ġval Ġdialog Ġ= ĠAlertDialog Builder ( this , Ġmessage Res Id , Ġtitle Res Id ). apply Ġ{ ĊĠĠĠĠĠĠĠ Ġblock ( this ) ĊĠĠĠ Ġ}. to Dialog () ĊĊĠĠĠ Ġdialog . show () ĊĠĠĠ Ġreturn Ġdialog Ċ } Ċ Ċ /** Ċ Ġ* ĠRes olves Ġan Ġattribute Ġwith Ġspecified Ġ[ resource Ġid ][ res Id ], Ġreturning Ġits Ċ Ġ* Ġinteger Ġvalue Ġif Ġsuccessful . ĠThrows Ġan Ġexception Ġif Ġattribute Ġis Ġinvalid . Ċ Ġ* Ċ Ġ* Ġ@ param Ġresolve Refs Ġtrue Ġto Ġresolve Ġreferences Ġ( default ) Ċ Ġ*/ Ċ fun ĠContext . resolve Int Attribute (@ Attr Res Ġres Id : ĠInt , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresolve Refs : ĠBoolean Ġ= Ġtrue ): ĠInt Ġ= ĊĠĠĠĠĠĠĠ Ġresolve Int Attribute Safe ( res Id , Ġresolve Refs ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ?: Ġthrow ĠIllegalArgumentException (" Attribute Ġnot Ġfound ") Ċ Ċ /** Ċ Ġ* ĠSafe Ġvariant Ġof Ġ[ Context . resolve Int Attribute ]. Ċ Ġ* ĠRes olves Ġan Ġattribute Ġwith Ġspecified Ġ[ resource Ġid ][ res Id ], Ġreturning Ġits Ċ Ġ* Ġinteger Ġvalue Ġif Ġsuccessful , Ġnull Ġotherwise . Ċ Ġ* Ċ Ġ* Ġ@ param Ġresolve Refs Ġtrue Ġto Ġresolve Ġreferences Ġ( default ) Ċ Ġ*/ Ċ fun ĠContext . resolve Int Attribute Safe (@ Attr Res Ġres Id : ĠInt , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġresolve Refs : ĠBoolean Ġ= Ġtrue ): ĠInt ? Ġ{ ĊĠĠĠ Ġval Ġv Ġ= ĠTyped Value () ĊĠĠĠ Ġreturn Ġif Ġ( theme . resolve Attribute ( res Id , Ġv , Ġresolve Refs )) Ġv . data Ġelse Ġnull Ċ } Ċ Ċ /** Ċ Ġ* ĠHelper Ġmethod Ġcall Ġto Ġ[ AppCompat Resources . get Drawable ] Ġ- Ġreturns Ġa Ġdrawable Ċ Ġ* Ġwith Ġspecific Ġresource Ġid . ĠDes p ite Ġthe Ġname , Ġthe Ġfunction Ġthis Ġmethod Ġcalls Ċ Ġ* Ġwill Ġalso Ġload Ġnon - vector Ġdraw ables . ĠWill Ġalso Ġwork Ġon Ġpre - vector Ġversions Ċ Ġ* Ġof Ġthe Ġplatform . Ċ Ġ* Ċ Ġ* Ġ@ return ĠDrawable Ġwith Ġspecific Ġresource Ġid . Ċ Ġ*/ Ċ fun ĠContext . get Vector Drawable ( res Id : ĠInt ): ĠDrawable ? Ġ= ĊĠĠĠĠĠĠĠ ĠAppCompat Resources . get Drawable ( this , Ġres Id ) Ċ