package Ġcom . com missions inc . android signal r sample Ċ Ċ import Ġandroid . content . DialogInterface Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . support . v 7 . app . AlertDialog Ċ import Ġandroid . support . v 7 . app . AppCompatActivity Ċ import Ġandroid . support . v 7 . widget . Toolbar Ċ import Ġandroid . util . Log Ċ import Ġandroid . view . Menu Ċ import Ġandroid . view . MenuItem Ċ import Ġandroid . view . View Ċ import Ġandroid . webkit . WebView Ċ import Ġandroid . widget . Button Ċ import Ġandroid . widget . EditText Ċ import Ġandroid . widget . TextView Ċ import Ġcom . com missions inc . android signal r . Hub Ċ import Ġcom . com missions inc . android signal r . Signal R Ċ import Ġcom . google . gson . Json Primitive Ċ Ċ class ĠMainActivity Ġ: ĠAppCompatActivity () Ġ{ ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġtoolbar : ĠToolbar ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġmessage EditText : ĠEditText ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġsend Button : ĠButton ĊĠĠĠ Ġprivate Ġlateinit Ġvar ĠtextView : ĠTextView ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġstatus TextView : ĠTextView ĊĠĠĠ Ġprivate Ġlateinit Ġvar ĠwebView : ĠWebView ĊĊĠĠĠ Ġlateinit Ġvar Ġchat Hub : ĠHub ĊĠĠĠ Ġlateinit Ġvar Ġconnection : ĠSignal R ĊĠĠĠ Ġvar Ġname : ĠString Ġ= Ġ" Anonymous " ĊĊĠĠĠ Ġvar Ġstarted Ġ= Ġfalse ĊĠĠĠ Ġprivate Ġvar Ġmenu : ĠMenu ? Ġ= Ġnull ĊĊĠĠĠ Ġval Ġlog Tag Ġ= Ġ" Android Signal R Sample " ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ ĠsetContentView ( R . layout . activity _ main ) ĊĊĠĠĠĠĠĠĠ Ġtoolbar Ġ= ĠfindViewById < Toolbar >( R . id . toolbar ) ĊĠĠĠĠĠĠĠ Ġmessage EditText Ġ= ĠfindViewById < EditText >( R . id . message EditText ) ĊĠĠĠĠĠĠĠ Ġsend Button Ġ= ĠfindViewById < Button >( R . id . send Button ) ĊĠĠĠĠĠĠĠ ĠtextView Ġ= ĠfindViewById < TextView >( R . id . messages TextView ) ĊĠĠĠĠĠĠĠ Ġstatus TextView Ġ= ĠfindViewById < TextView >( R . id . status TextView ) ĊĠĠĠĠĠĠĠ ĠwebView Ġ= ĠfindViewById < WebView >( R . id . web View ) ĊĊĠĠĠĠĠĠĠ Ġset Support ActionBar ( toolbar ) ĊĠĠĠĠĠĠĠ Ġsupport ActionBar ?. title Ġ= ĠgetString ( R . string . app _ name ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Resume () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Resume () ĊĊĠĠĠĠĠĠĠ Ġconnection Ġ= ĠSignal R ( this , Ġ" http :// sw if tr . azure websites . net ", ĠSignal R . Connection Type . HUB , ĠwebView ) ĊĠĠĠĠĠĠĠ Ġconnection . signal R Version Ġ= ĠSignal R . Signal R Version . v 2 _ 2 _ 2 ĊĊĠĠĠĠĠĠĠ Ġchat Hub Ġ= ĠHub (" chat Hub ") ĊĠĠĠĠĠĠĠ Ġchat Hub . on (" broadcast Message ") Ġ{ Ġargs Ġ-> ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġname Ġ= Ġ( args ?. get ( 0 ) Ġas ĠJson Primitive ). asString ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmessage Ġ= Ġ( args . get ( 1 ) Ġas ĠJson Primitive ). asString ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġadd Signal R Text ("${ name }: Ġ${ message }") ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġconnection . add Hub ( chat Hub ) ĊĊĠĠĠĠĠĠĠ Ġ// Signal R Ġevents ĊĠĠĠĠĠĠĠ Ġconnection . starting Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstatus TextView . text Ġ= ĠgetString ( R . string . starting ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsend Button . isEnabled Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġconnection . reconnect ing Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstatus TextView . text Ġ= ĠgetString ( R . string . reconnect ing ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsend Button . isEnabled Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġconnection . connected Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d ( log Tag , Ġ" Connection ĠID : Ġ${ connection . connection ID }") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstatus TextView . text Ġ= ĠgetString ( R . string . connected ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsend Button . isEnabled Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstarted Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġupdate Menu () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġconnection . re connected Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstatus TextView . text Ġ= ĠgetString ( R . string . re connected ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsend Button . isEnabled Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstarted Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġupdate Menu () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġconnection . disconnected Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstatus TextView . text Ġ= ĠgetString ( R . string . disconnected ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsend Button . isEnabled Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstarted Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġupdate Menu () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġconnection . connection Slow Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d ( log Tag , Ġ" Connection ĠS low ") ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġconnection . error Ġ= Ġ{ Ġerror Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d ( log Tag , Ġ" Error : Ġ${ error . toString () }") ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġconnection . start () ĊĊĠĠĠĠĠĠĠ Ġprompt For Name () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġprompt For Name (){ ĊĠĠĠĠĠĠĠ Ġval Ġbuilder Ġ= ĠAlertDialog . Builder ( this ) ĊĠĠĠĠĠĠĠ Ġbuilder . setTitle (" Name ") ĊĠĠĠĠĠĠĠ Ġbuilder . setMessage (" Please Ġenter Ġyour Ġname ") ĊĊĠĠĠĠĠĠĠ Ġval Ġinput Ġ= ĠEditText ( this ) ĊĠĠĠĠĠĠĠ Ġbuilder . setView ( input ) ĊĠĠĠĠĠĠĠ Ġbuilder . set Positive Button (" OK ", Ġobject Ġ: ĠDialog Interface . OnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun ĠonClick ( dialog : ĠDialog Interface , Ġwhich : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġname Ġ= Ġinput . text . toString () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠĠĠĠĠ Ġbuilder . show () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġstart Stop Pressed () Ġ{ ĊĠĠĠĠĠĠĠ ĠLog . d ( log Tag , Ġ" start Stop Pressed ") ĊĊĠĠĠĠĠĠĠ Ġif Ġ( started ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġconnection . stop () ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġconnection . start () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġsend Pressed ( view : ĠView ) Ġ{ ĊĠĠĠĠĠĠĠ ĠLog . d ( log Tag , Ġ" send Pressed ") ĊĊĠĠĠĠĠĠĠ Ġval Ġmessage Ġ= ĠlistOf ( name , Ġmessage EditText . text . toString ()) ĊĊĠĠĠĠĠĠĠ Ġchat Hub . invoke (" send ", Ġarguments Ġ= Ġmessage ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġadd Signal R Text ( text : ĠString ){ ĊĠĠĠĠĠĠĠ Ġval Ġcurrent Text Ġ= ĠtextView . text ĊĊĠĠĠĠĠĠĠ ĠtextView . text Ġ= Ġ"${ current Text }\ n ${ text }" ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate Options Menu ( menu : ĠMenu ?): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġmenu Inflater . inflate ( R . menu . menu , Ġmenu ) ĊĠĠĠĠĠĠĠ Ġthis . menu Ġ= Ġmenu ĊĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Options ItemSelected ( item : ĠMenuItem ?): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( item ?. itemId Ġ== ĠR . id . start _ menu _ item ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstart Stop Pressed () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġsuper . on Options ItemSelected ( item ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġupdate Menu () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġmenu Item Ġ= Ġmenu ?. find Item ( R . id . start _ menu _ item ) ĊĊĠĠĠĠĠĠĠ Ġmenu Item ?. setTitle ( R . string . start ) ĊĠĠĠĠĠĠĠ Ġif Ġ( started ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmenu Item ?. setTitle ( R . string . stop ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ