package Ġio . su y ong . linux _ k aka otal k _ client _ android Ċ Ċ import Ġandroid . Manifest Ċ import Ġandroid . content . Intent Ċ import Ġandroid . net . Network Ċ import Ġandroidx . appcompat . app . AppCompatActivity Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . text . Editable Ċ import Ġandroid . text . Text Watcher Ċ import Ġandroid . util . Log Ċ import Ġandroidx . preference . Preference Manager Ċ import Ġio . su y ong . linux _ k aka otal k _ client _ android . network . Network Manager Ċ import Ġkotlinx . android . synt hetic . main . activity _ main .* Ċ import Ġjava . net . Malformed URLException Ċ import Ġjava . net . URL Ċ import Ġjava . util .* Ċ Ċ class ĠMainActivity Ġ: ĠAppCompatActivity () Ġ{ ĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġuuid : ĠString Ġ= Ġ"" ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ ĠsetContentView ( R . layout . activity _ main ) ĊĊĠĠĠĠĠĠĠ ĠFile Manager . init ( this ) ĊĊĠĠĠĠĠĠĠ Ġval Ġpreference Ġ= ĠPreference Manager . getDefault SharedPreferences ( this ) ĊĠĠĠĠĠĠĠ Ġuuid Ġ= Ġpreference . getString (" uuid ", Ġ"") Ġ?: Ġ"" ĊĊĠĠĠĠĠĠĠ Ġif Ġ( uuid Ġ== Ġ"") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġeditor Ġ= Ġpreference . edit () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġeditor . putString (" uuid ", ĠUtil . Base 6 2 . encoding ( Date (). time )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġeditor . apply () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġuuid Ġ= Ġpreference . getString (" uuid ", Ġ"") Ġ?: Ġ"" ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġurl Ġ= Ġpreference . getString (" url ", Ġ"") Ġ?: Ġ"" ĊĠĠĠĠĠĠĠ Ġval Ġtarget Ġ= Ġpreference . getString (" target ", Ġ"") Ġ?: Ġ"" ĊĠĠĠĠĠĠĠ Ġval Ġnickname Ġ= Ġpreference . getString (" nickname ", Ġ"") Ġ?: Ġ"" ĊĊĠĠĠĠĠĠĠ Ġtext input _ server . setText ( url ) ĊĠĠĠĠĠĠĠ Ġtext input _ bridge . setText ( target ) ĊĠĠĠĠĠĠĠ Ġtext input _ nickname . setText ( nickname ) ĊĊĠĠĠĠĠĠĠ Ġtext input _ server . add TextChanged Listener ( object Ġ: ĠText Watcher Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġbefore TextChanged ( s : ĠCharSequence ?, Ġstart : ĠInt , Ġcount : ĠInt , Ġafter : ĠInt ) Ġ{} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon TextChanged ( s : ĠCharSequence ?, Ġstart : ĠInt , Ġbefore : ĠInt , Ġcount : ĠInt ) Ġ{} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġafter TextChanged ( s : ĠEdit able ?) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠURL ( text input _ server . text . toString ()) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtext input _ server . error Ġ= Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmain _ connect . isEnabled Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( err : ĠMal formed URLException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtext input _ server . error Ġ= ĠgetString ( R . string . invalid _ format _ url ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmain _ connect . isEnabled Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠĠĠĠĠ ĠNetwork Manager . disconnect () ĊĠĠĠĠĠĠĠ Ġmain _ connect . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠRoom Activity . target _ uuid Ġ= Ġtext input _ bridge . text . toString () ĊĠĠĠĠĠĠĠĠĠĠĠ ĠChat Activity . sender Ġ= Ġtext input _ nickname . text . toString () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġeditor Ġ= Ġpreference . edit () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġeditor . putString (" url ", Ġtext input _ server . text . toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġeditor . putString (" target ", Ġtext input _ bridge . text . toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġeditor . putString (" nickname ", Ġtext input _ nickname . text . toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġeditor . apply () ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠNetwork Manager . disconnect () ĊĠĠĠĠĠĠĠĠĠĠĠ ĠNetwork Manager . connect ( text input _ server . text . toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d (" connect ", Ġ" call ") ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠstartActivity ( Intent ( this , ĠRoom Activity :: class . java )) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }