package Ġme . digital by . lr 5 Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . content . Intent Ċ import Ġandroid . content . SharedPreferences Ċ import Ġandroid . content . pm . Activity Info Ċ import Ġandroidx . appcompat . app . AppCompatActivity Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . text . InputType Ċ import Ġandroid . util . Log Ċ import Ġandroid . widget . EditText Ċ import Ġandroid . widget . Toast Ċ import Ġandroidx . appcompat . app . AlertDialog Ċ import Ġandroidx . fragment . app . Fragment Ċ import Ġcom . google . android . material . sn ackbar . Snackbar Ċ import Ġcom . google . firebase . auth . Firebase Auth Ċ import Ġcom . google . firebase . database . Data Snapshot Ċ import Ġcom . google . firebase . database . Database Error Ċ import Ġcom . google . firebase . database . Firebase Database Ċ import Ġcom . google . firebase . database . Value EventListener Ċ import Ġkotlinx . android . synt hetic . main . fragment _ lob by .* Ċ import Ġjava . io .* Ċ Ċ class ĠMainActivity Ġ: ĠAppCompatActivity (), ĊĠĠĠ ĠCon struction Fragment Listener , ĊĠĠĠ ĠField Fragment Listener , ĊĠĠĠ ĠL obby Fragment Listener { ĊĊĠĠĠ Ġprivate Ġval Ġauth Ġ= ĠFirebase Auth . getInstance () ĊĠĠĠ Ġoverride Ġvar ĠcurrentUser Ġ= Ġauth . currentUser ĊĠĠĠ Ġval Ġdatabase Ġ= ĠFirebase Database . getInstance () ĊĠĠĠ Ġval Ġreference Ġ= Ġdatabase . reference ĊĊĠĠĠ Ġoverride Ġlateinit Ġvar Ġblueprint : ĠBlueprint ĊĊĠĠĠ Ġval Ġfield Size Ġ= ĠVector 2 ( 1 0 , Ġ 1 0 ) ĊĊĠĠĠ Ġval Ġship Rules : ĠHashMap < Ship Type , ĠInt > Ġ= Ġhash Map Of ( ĊĠĠĠĠĠĠĠ ĠShip Type . Ship 1 Ġto Ġ 4 , ĊĠĠĠĠĠĠĠ ĠShip Type . Ship 2 Ġto Ġ 3 , ĊĠĠĠĠĠĠĠ ĠShip Type . Ship 3 Ġto Ġ 2 , ĊĠĠĠĠĠĠĠ ĠShip Type . Ship 4 Ġto Ġ 1 ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġoverride Ġlateinit Ġvar Ġfield : ĠField ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġuid : ĠString ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġshared Preferences : ĠSharedPreferences ĊĊĠĠĠ Ġprivate Ġvar Ġselected Ship Type : ĠShip Type ? Ġ= Ġnull ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġfield Fragment : ĠField Fragment ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġlob by Fragment : ĠL obby Fragment ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ ĠsetContentView ( R . layout . activity _ main ) ĊĠĠĠĠĠĠĠ Ġrequested Orientation Ġ= ĠActivity Info . SCREEN _ OR IENTATION _ LAND SC APE ĊĊĠĠĠĠĠĠĠ Ġshared Preferences Ġ= Ġget SharedPreferences (" me . digital by . lr 5 ", ĠContext . MODE _ PRIVATE ) ĊĊĠĠĠĠĠĠĠ Ġfield Fragment Ġ= Ġsupport FragmentManager . find Fragment ById ( R . id . main Field Fragment ) Ġas ĠField Fragment ĊĠĠĠĠĠĠĠ Ġfield Fragment . listener Ġ= Ġthis ĊĠĠĠĠĠĠĠ Ġlob by Fragment Ġ= Ġsupport FragmentManager . find Fragment ById ( R . id . main Lobby Fragment ) Ġas ĠL obby Fragment ĊĠĠĠĠĠĠĠ Ġlob by Fragment . listener Ġ= Ġthis ĊĊĠĠĠĠĠĠĠ Ġblueprint Ġ= ĠBlueprint ( field Size , Ġship Rules , Ġload Sh ips () Ġ?: Ġarray ListOf ()) ĊĠĠĠĠĠĠĠ Ġupdate Field From Blueprint () ĊĊĠĠĠĠĠĠĠ ĠCon struction Fragment . instance . listener Ġ= Ġthis ĊĊĠĠĠĠĠĠĠ Ġval Ġbundle : ĠBundle ? Ġ= Ġintent . extras ĊĠĠĠĠĠĠĠ Ġif ( bundle Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġuid Ġ= Ġbundle . getString (" uid ") !! ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġif ( savedInstanceState Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġuid Ġ= ĠsavedInstanceState . getString (" uid ") !! ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġuid Ġ= Ġshared Preferences . getString (" uid ", Ġnull ) !! ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ( uid . isNotEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlob by Fragment . uid Ġ= Ġuid ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Save InstanceState ( out State : ĠBundle ) Ġ{ ĊĠĠĠĠĠĠĠ Ġout State . putString (" uid ", Ġuid ) ĊĠĠĠĠĠĠĠ Ġsuper . on Save InstanceState ( out State ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġtry Place Ship ( ship : ĠShip ) Ġ{ ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġblueprint . try Add Ship ( ship ) ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠBlueprint Exception ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSn ackbar . make ( findViewById ( android . R . id . content ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġe . message !! , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSn ackbar . LENGTH _ SHORT ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ). show () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} Ġfinally Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġselected Ship Type Ġ= Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠ Ġupdate Field From Blueprint () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġload Sh ips (): ĠArrayList < Ship >? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfile InputStream Ġ= Ġopen File Input (" ships . lr 5 ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġobject InputStream Ġ= ĠObject InputStream ( file InputStream ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġblueprint Sh ips Ġ= Ġobject InputStream . read Object () Ġas ĠArrayList < Ship > ĊĠĠĠĠĠĠĠĠĠĠĠ Ġobject InputStream . close () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfile InputStream . close () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġblueprint Sh ips ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠFileNotFoundException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnull ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġsave Sh ips () Ġ{ ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfile OutputStream Ġ= Ġopen File Output (" ships . lr 5 ", ĠContext . MODE _ PRIVATE ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġobject OutputStream Ġ= ĠObject OutputStream ( file OutputStream ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġobject OutputStream . write Object ( blueprint . get Sh ips ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġobject OutputStream . close () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfile OutputStream . close () ĊĠĠĠĠĠĠĠ Ġ} Ġcatch ( e : ĠInvalid Class Exception ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLog . e (" LR 5 ", Ġ" The Ġclass Ġis Ġnot Ġvalid . Ġ$ e ") ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠNot Serializable Exception ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLog . e (" LR 5 ", Ġ" The Ġclass Ġis Ġnot Ġserial izable . Ġ$ e ") ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠIOException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLog . e (" LR 5 ", Ġ"$ e ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġupdate Field From Blueprint () Ġ{ ĊĠĠĠĠĠĠĠ Ġfield Ġ= Ġblueprint . make Field () ĊĠĠĠĠĠĠĠ Ġfield Fragment . draw Field ( field ) ĊĠĠĠĠĠĠĠ ĠCon struction Fragment . instance . did Change Sh ips ( blueprint ) ĊĠĠĠĠĠĠĠ Ġif ( blueprint . valid ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠtextView Error . text Ġ= Ġ"" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbutton Create Game . isEnabled Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbutton Join Game . isEnabled Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠtextView Error . text Ġ= ĠgetString ( R . string . lob by _ place _ ships ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbutton Create Game . isEnabled Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbutton Join Game . isEnabled Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġdid Select Cell ( sender : ĠField Fragment , Ġposition : ĠVector 2 ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( selected Ship Type Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġblueprint . remove Ship ( position ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġupdate Field From Blueprint () ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġselected Construction Ship Type Ġ= Ġthis . selected Ship Type !! ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsize Ġ= ĠShip . ship Type To Size ( selected Construction Ship Type ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġship Ġ= ĠShip ( position , Ġsize !! ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġship . type Ġ= ĠShip . simplify Ship Type ( selected Construction Ship Type ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtry Place Ship ( ship ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġsave Sh ips () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġdid Select Ship ( sender : ĠCon struction Fragment , Ġship : ĠShip Type ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġif ( selected Ship Type Ġ== Ġship ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġselected Ship Type Ġ= Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsender . setSelected ( null ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġselected Ship Type Ġ= Ġship ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsender . setSelected ( ship ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġdid Request Logout ( sender : ĠFragment ) Ġ{ ĊĠĠĠĠĠĠĠ Ġblueprint . clear Sh ips () ĊĠĠĠĠĠĠĠ Ġsave Sh ips () ĊĠĠĠĠĠĠĠ Ġauth . sign Out () ĊĠĠĠĠĠĠĠ Ġval Ġintent Ġ= ĠIntent ( this , ĠLogin Activity :: class . java ) ĊĠĠĠĠĠĠĠ ĠstartActivity ( intent ) ĊĠĠĠĠĠĠĠ Ġfinish () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġdid Request Stats ( sender : ĠFragment ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġedit Ġ= Ġshared Preferences . edit () ĊĠĠĠĠĠĠĠ Ġedit . putString (" uid ", Ġuid ) ĊĠĠĠĠĠĠĠ Ġedit . apply () ĊĠĠĠĠĠĠĠ Ġval Ġintent Ġ= ĠIntent ( this , ĠStats Activity :: class . java ) ĊĠĠĠĠĠĠĠ Ġintent . putExtra (" uid ", Ġuid ) ĊĠĠĠĠĠĠĠ ĠstartActivity ( intent ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġdid Request Create Game ( sender : ĠFragment ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif (! blueprint . valid ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġval Ġintent Ġ= ĠIntent ( this , ĠCreate Game Activity :: class . java ) ĊĠĠĠĠĠĠĠ Ġintent . putExtra (" uid ", Ġuid ) ĊĠĠĠĠĠĠĠ Ġval Ġfield String Ġ= ĠField . to Field String ( field ) ĊĠĠĠĠĠĠĠ Ġintent . putExtra (" field String ", Ġfield String ) ĊĠĠĠĠĠĠĠ Ġval Ġparcel able Sh ips Ġ= ĠBlueprint . to Parcelable ( blueprint ) ĊĠĠĠĠĠĠĠ Ġintent . putExtra (" ships ", Ġparcel able Sh ips ) ĊĠĠĠĠĠĠĠ Ġval Ġedit Ġ= Ġshared Preferences . edit () ĊĠĠĠĠĠĠĠ Ġedit . putString (" uid ", Ġuid ) ĊĠĠĠĠĠĠĠ Ġedit . apply () ĊĠĠĠĠĠĠĠ ĠstartActivity ( intent ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġready To Play ( game Id : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ// TODO : Ġinitialize Ġthe Ġreceiver ĊĠĠĠĠĠĠĠ Ġval Ġintent Ġ= ĠIntent ( this , ĠGame Activity :: class . java ) ĊĠĠĠĠĠĠĠ Ġintent . putExtra (" uid ", Ġuid ) ĊĠĠĠĠĠĠĠ Ġval Ġfield String Ġ= ĠField . to Field String ( field ) ĊĠĠĠĠĠĠĠ Ġintent . putExtra (" field String ", Ġfield String ) ĊĠĠĠĠĠĠĠ Ġintent . putExtra (" game Id ", Ġgame Id ) ĊĠĠĠĠĠĠĠ Ġintent . putExtra (" my Turn ", Ġ 2 L ) ĊĠĠĠĠĠĠĠ Ġval Ġparcel able Sh ips Ġ= ĠBlueprint . to Parcelable ( blueprint ) ĊĠĠĠĠĠĠĠ Ġintent . putExtra (" ships ", Ġparcel able Sh ips ) ĊĠĠĠĠĠĠĠ ĠstartActivity ( intent ) ĊĠĠĠĠĠĠĠ Ġfinish () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġdid Request Join Game ( sender : ĠFragment ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif (! blueprint . valid ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġbutton Create Game . isEnabled Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġbutton Join Game . isEnabled Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġval Ġbuilder Ġ= ĠAlertDialog . Builder ( this ) ĊĠĠĠĠĠĠĠ Ġval Ġinput View Ġ= ĠEditText ( this ) ĊĠĠĠĠĠĠĠ Ġinput View . input Type Ġ= ĠInput Type . TYPE _ CLASS _ TEXT ĊĠĠĠĠĠĠĠ Ġbuilder . setMessage (" Enter Ġthe Ġgame 's Ġcode Ġto Ġjoin Ġit .") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. setTitle (" Join ĠGame ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. setView ( input View ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Positive Button ( getString ( android . R . string . ok )) Ġ{ Ġ_, Ġ_ Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġgame To Join Ġ= Ġinput View . text . toString (). trim () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif ( game To Join . isEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġapplication Context , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" The Ġgame Ġcode Ġis Ġempty .", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToast . LENGTH _ SHORT ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ). show () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbutton Create Game . isEnabled Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbutton Join Game . isEnabled Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn @ set Positive Button ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġgame Reference Ġ= Ġreference ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. child (" Pending Games ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. child ( game To Join ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgame Reference . addListener For Single Value Event ( object : Value EventListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Data Change ( p 0 : ĠData Snapshot ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif ( p 0 . exists ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgame Reference . setValue ( true ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreference . child (" Current Games "). child ( game To Join ). child (" Player 2 "). setValue ( uid ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreference . child (" Current Games "). child ( game To Join ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġready To Play ( game To Join ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġapplication Context , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" The Ġgame Ġwith Ġthis Ġcode Ġdoes Ġnot Ġexist .", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToast . LENGTH _ SHORT ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ). show () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbutton Create Game . isEnabled Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbutton Join Game . isEnabled Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Cancelled ( p 0 : ĠDatabase Error ) Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}. set Negative Button ( getString ( android . R . string . cancel )) Ġ{ _, Ġ_ Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbutton Create Game . isEnabled Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbutton Join Game . isEnabled Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}. set Cancel able ( false ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. show () ĊĠĠĠ Ġ} Ċ Ċ } Ċ