package Ġcom . app . h bc u . activity Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . net . Connectivity Manager Ċ import Ġandroid . net . Network Info Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroid . view . input method . Input Method Manager Ċ import Ġandroid . widget . Toast Ċ import Ġandroidx . appcompat . app . AlertDialog Ċ import Ġandroidx . appcompat . app . AppCompatActivity Ċ import Ġandroidx . appcompat . widget . Toolbar Ċ import Ġandroidx . fragment . app . FragmentManager Ċ import Ġcom . app . h bc u . R Ċ import Ġcom . app . h bc u . util . Config Ċ import Ġio . github . in fl ation x . view pump . View Pump Context Wrapper Ċ import Ġio . socket . client . IO Ċ import Ġio . socket . client . Socket Ċ Ċ open Ġclass ĠBase AppCompatActivity Ġ: ĠAppCompatActivity () Ġ{ ĊĠĠĠ Ġ// Ġpublic ĠProgress Dialog Ġm Progress Dialog ; ĊĠĠĠ Ġvar ĠmContext : ĠContext ? Ġ= Ġnull ĊĠĠĠ Ġvar Ġon Dialog ClickListener : ĠOn Dialog ClickListener ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġval ĠTAG Ġ= ĠBase AppCompatActivity :: class . java . name ĊĊĠĠĠ Ġ// late init Ġvar Ġmy Socket : ĠSocket ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ ĠmContext Ġ= Ġthis ĊĊĠĠĠĠĠĠ Ġ// Ġmy Socket Ġ= ĠIO . socket ( Config . SERVER _ URL _ SOCKET ) ĊĠĠĠĠĠĠ Ġ// Ġmy Socket . connect () ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġattach Base Context ( new Base : ĠContext ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . attach Base Context ( View Pump Context Wrapper . wrap ( new Base !! )) ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġfun Ġset Toolbar ( ĊĠĠĠĠĠĠĠ Ġtoolbar : ĠToolbar , ĊĠĠĠĠĠĠĠ Ġtitle : ĠString ?, ĊĠĠĠĠĠĠĠ Ġis back enable : ĠBoolean ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġtoolbar . title Ġ= Ġtitle ĊĠĠĠĠĠĠĠ Ġset Support ActionBar ( toolbar ) ĊĠĠĠĠĠĠĠ Ġif Ġ( is back enable ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtoolbar . set Navigation Icon ( R . drawable . ic _ back ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtoolbar . set Navigation OnClickListener Ġ{ Ġfinish () Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠPopup Ġmessage Ġand Ġafter Ġshort Ġtime Ġthis Ġpopup Ġwill Ġautomatically Ġdestroy . ĊĠĠĠĠ Ġ* ĊĠĠĠĠ Ġ* Ġ@ param Ġmessage ĠMessage Ġfor Ġdisplay Ġin Ġpopup . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġshow Toast ( message : ĠString ?) Ġ{ ĊĠĠĠĠĠĠĠ ĠToast . makeText ( this , Ġmessage , ĠToast . LENGTH _ LONG ). show () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠHide Ġkeyboard ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprotected Ġfun Ġhide Keyboard () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġview Group Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠfindViewById < View >( R . id . content ) Ġas ĠViewGroup ĊĠĠĠĠĠĠĠ Ġval Ġimm Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġget System Service ( Context . INPUT _ METHOD _ SERVICE ) Ġas ĠInput Method Manager ĊĠĠĠĠĠĠĠ Ġimm ?. hide Soft Input From Window ( view Group . window Token , Ġ 0 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠOpen ĠKeyboard . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġshow Keyboard () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġview Group Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠfindViewById < View >( R . id . content ) Ġas ĠViewGroup ĊĠĠĠĠĠĠĠ Ġval Ġimm Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġget System Service ( Context . INPUT _ METHOD _ SERVICE ) Ġas ĠInput Method Manager ĊĠĠĠĠĠĠĠ Ġimm ?. toggle Soft Input From Window ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview Group . application Window Token , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠInput Method Manager . SHOW _ FOR CED , ĊĠĠĠĠĠĠĠĠĠĠĠĠ 0 ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġclear Back Stack () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġmanager Ġ= Ġsupport FragmentManager ĊĠĠĠĠĠĠĠ Ġif Ġ( manager . back Stack Entry Count Ġ> Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfirst Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmanager . get Back Stack Entry At ( 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmanager . pop Back Stack Immediate ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfirst . id , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠFragment Manager . POP _ BACK _ STACK _ INCL USIVE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġshow OK Alert ( ĊĠĠĠĠĠĠĠ Ġmessage String : ĠString ?, ĊĠĠĠĠĠĠĠ Ġon Dialog ClickListener 1 : ĠOn Dialog ClickListener ? ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġon Dialog ClickListener Ġ= Ġon Dialog ClickListener 1 ĊĠĠĠĠĠĠĠ Ġval Ġbuilder Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAlertDialog . Builder ( this @ Base AppCompatActivity ) ĊĠĠĠĠĠĠĠ Ġbuilder . setMessage ( message String ) ĊĠĠĠĠĠĠĠ Ġbuilder . set Positive Button (" Ok ") Ġ{ Ġdialog , Ġwhich Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdialog . dismiss () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġon Dialog ClickListener !!. on Positive () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġalert Ġ= Ġbuilder . create () ĊĠĠĠĠĠĠĠ Ġalert . show () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġshow Positive Negative Alert ( ĊĠĠĠĠĠĠĠ Ġmessage String : ĠString ?, ĊĠĠĠĠĠĠĠ Ġyes : ĠInt , ĊĠĠĠĠĠĠĠ Ġno : ĠInt , ĊĠĠĠĠĠĠĠ Ġon Dialog ClickListener 1 : ĠOn Dialog ClickListener ? ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġon Dialog ClickListener Ġ= Ġon Dialog ClickListener 1 ĊĠĠĠĠĠĠĠ Ġval Ġbuilder Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠAlertDialog . Builder ( this @ Base AppCompatActivity ) ĊĠĠĠĠĠĠĠ Ġbuilder . setMessage ( message String ) ĊĠĠĠĠĠĠĠ Ġbuilder . set Positive Button ( yes ) Ġ{ Ġdialog , Ġwhich Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdialog . dismiss () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġon Dialog ClickListener !!. on Positive () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġbuilder . set Negative Button ( no ) Ġ{ Ġdialog , Ġwhich Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdialog . dismiss () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġon Dialog ClickListener !!. on Negative () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġalert Ġ= Ġbuilder . create () ĊĠĠĠĠĠĠĠ Ġalert . show () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġval Ġis Connected To Internet : ĠBoolean ĊĠĠĠĠĠĠĠ Ġget () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcm Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis @ Base AppCompatActivity . getSystem Service ( Context . CONNECT IVITY _ SERVICE ) Ġas ĠConnect ivity Manager ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġactive Network : ĠNetwork Info ? Ġ= Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( cm Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġactive Network Ġ= Ġcm . active Network Info ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( active Network Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( active Network . type Ġ== ĠConnect ivity Manager . TYPE _ WIFI ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( active Network . type Ġ== ĠConnect ivity Manager . TYPE _ MOB ILE ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġshow Toast ( resources . getString ( R . string . msg _ no _ internet )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġinterface ĠOn Dialog ClickListener Ġ{ ĊĠĠĠĠĠĠĠ Ġfun Ġon Positive () ĊĠĠĠĠĠĠĠ Ġfun Ġon Negative () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Destroy () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Destroy () ĊĠĠĠ Ġ} ĊĊ Ċ }