package Ġio . flat circle . connectivity helper example Ċ Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . util . Log Ċ import Ġcom . google . android . material . sn ackbar . Snackbar Ċ import Ġandroidx . appcompat . app . AppCompatActivity Ċ import Ġandroid . view . Menu Ċ import Ġandroid . view . MenuItem Ċ import Ġio . flat circle . connectivity helper . Connection Type Ċ import Ġio . flat circle . connectivity helper . Connection Monitor Ċ import Ġio . flat circle . connectivity helper . Connection State Ċ import Ġio . flat circle . connectivity helper . State ChangeListener Ċ Ċ import Ġkotlinx . android . synt hetic . main . activity _ main .* Ċ import Ġkotlinx . android . synt hetic . main . content _ main .* Ċ Ċ class ĠMainActivity Ġ: ĠAppCompatActivity (), ĠState ChangeListener Ġ{ ĊĊĠĠĠ Ġlateinit Ġvar Ġnet Monitor : ĠConnection Monitor ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ ĠsetContentView ( R . layout . activity _ main ) ĊĠĠĠĠĠĠĠ Ġset Support ActionBar ( toolbar ) ĊĊĠĠĠĠĠĠĠ Ġfab . setOnClickListener Ġ{ Ġview Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSn ackbar . make ( view , Ġ" Replace Ġwith Ġyour Ġown Ġaction ", ĠSn ackbar . LENGTH _ LONG ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. setAction (" Action ", Ġnull ). show () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġnet Monitor Ġ= ĠConnection Monitor . Builder ( application Context ) Ġ// Ġany Ġcontext Ġwill Ġdo ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. w atched Connections ( Connection Type . Cell ular , ĠConnection Type . WiFi ) Ġ// Ġlist Ġof Ġconnections Ġthat Ġwill Ġbe Ġw atched Ġby Ġthe Ġmonitor ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. state ChangeListener ( this ) Ġ// Ġoptional Ġinterface Ġfor Ġhandling Ġconnectivity Ġstate Ġchanges ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. time Between P ings ( 1 0 0 0 0 ) Ġ// Ġmilliseconds Ġbetween Ġeach Ġping Ġto Ġcheck Ġonline Ġstatus . ĠDefault Ġ 3 0 0 0 0 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. endpoint (" 8 . 8 . 8 . 8 ") Ġ// Ġendpoint Ġfor Ġping ing Ġagainst . ĠDefault Ġis ĠGoogle , Ġbut Ġthat 's Ġun reli able Ġin Ġsome Ġcountries . ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĊĠĠĠĠĠĠĠ Ġval Ġis Connected To Wifi Ġ= Ġnet Monitor . isConnected To ( Connection Type . WiFi ) Ġ// ĠDetermines Ġif Ġthe Ġapp Ġis Ġcurrently Ġconnected Ġto Ġthe Ġgiven Ġnetwork Ġtype ĊĠĠĠĠĠĠĠ Ġval Ġis Connected To Cell ular Ġ= Ġnet Monitor . isConnected To ( Connection Type . Cell ular ) Ġ// ĠDetermines Ġif Ġthe Ġapp Ġis Ġcurrently Ġconnected Ġto Ġthe Ġgiven Ġnetwork Ġtype ĊĠĠĠĠĠĠĠ ĠLog . i (" MainActivity ", Ġ" Connected Ġto ĠW ifi ") ĊĊĠĠĠĠĠĠĠ Ġval Ġconnection State Ġ= Ġnet Monitor . connection State Ġ// ĠCan Ġbe ĠOff line , ĠProbably Online , Ġor ĠOnline ĊĊĠĠĠĠĠĠĠ Ġwhen Ġ( connection State ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠConnection State . Offline Ġ-> Ġ{} Ġ// ĠThe Ġapp Ġis Ġnot Ġconnected Ġto Ġany Ġnetwork Ġwith Ġinternet Ġcapability ĊĠĠĠĠĠĠĠĠĠĠĠ ĠConnection State . Prob ably Online Ġ-> Ġ{} Ġ// ĠThe Ġapp Ġis Ġconnected Ġto Ġa Ġnetwork Ġwhich Ġclaims Ġto Ġhave Ġinternet ĊĠĠĠĠĠĠĠĠĠĠĠ ĠConnection State . Online Ġ-> Ġ{} Ġ// ĠThe Ġapp Ġis Ġable Ġto Ġsuccessfully Ġresolve Ġa Ġcall Ġto Ġthe Ġendpoint , Ġat Ġleast Ġwithin Ġthe Ġlast Ġ[ time Between P ings ] Ġmilliseconds ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġnet StateChange ( state : ĠConnection State ) Ġ{ ĊĠĠĠĠĠĠĠ ĠLog . w (" MainActivity ", Ġ" newState Ġ= Ġ$ state ") ĊĠĠĠĠĠĠĠ Ġrun On Ui Thread Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtext Main . setText (" Connection Ġstate Ġis Ġ$ state ") ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Destroy () Ġ{ ĊĠĠĠĠĠĠĠ Ġnet Monitor . clear () ĊĠĠĠĠĠĠĠ Ġsuper . on Destroy () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate Options Menu ( menu : ĠMenu ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠInf late Ġthe Ġmenu ; Ġthis Ġadds Ġitems Ġto Ġthe Ġaction Ġbar Ġif Ġit Ġis Ġpresent . ĊĠĠĠĠĠĠĠ Ġmenu Inflater . inflate ( R . menu . menu _ main , Ġmenu ) ĊĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Options ItemSelected ( item : ĠMenuItem ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠHandle Ġaction Ġbar Ġitem Ġclicks Ġhere . ĠThe Ġaction Ġbar Ġwill ĊĠĠĠĠĠĠĠ Ġ// Ġautomatically Ġhandle Ġclicks Ġon Ġthe ĠHome / Up Ġbutton , Ġso Ġlong ĊĠĠĠĠĠĠĠ Ġ// Ġas Ġyou Ġspecify Ġa Ġparent Ġactivity Ġin ĠAndroid Manifest . xml . ĊĠĠĠĠĠĠĠ Ġreturn Ġwhen Ġ( item . itemId ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . id . action _ settings Ġ-> Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġsuper . on Options ItemSelected ( item ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ