package Ġme . digital by . lr 5 Ċ Ċ import Ġandroid . content . Intent Ċ import Ġandroid . content . pm . Activity Info Ċ import Ġandroidx . appcompat . app . AppCompatActivity Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . os . Parcelable Ċ import Ġandroid . widget . Toast Ċ 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 . activity _ create _ game .* Ċ import Ġjava . util . Random Ċ Ċ class ĠCreate Game Activity Ġ: ĠAppCompatActivity () Ġ{ ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġuid : ĠString ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġgame Id : ĠString ĊĊĠĠĠ Ġval Ġdatabase Ġ= ĠFirebase Database . getInstance () ĊĠĠĠ Ġval Ġreference Ġ= Ġdatabase . reference ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġfield String : ĠString ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġfield Fragment : ĠField Fragment ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġsh ips : ĠHashMap < String , ĠHashMap < String , ĠLong >> ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ ĠsetContentView ( R . layout . activity _ create _ game ) ĊĠĠĠĠĠĠĠ Ġrequested Orientation Ġ= ĠActivity Info . SCREEN _ OR IENTATION _ LAND SC APE ĊĊĠĠĠĠĠĠĠ Ġval Ġbundle : ĠBundle ? Ġ= Ġintent . extras ĊĠĠĠĠĠĠĠ Ġuid Ġ= Ġbundle ?. getString (" uid ") !! ĊĠĠĠĠĠĠĠ Ġfield String Ġ= Ġbundle . getString (" field String ") !! ĊĠĠĠĠĠĠĠ Ġsh ips Ġ= Ġbundle . get Serializable (" ships ") Ġas ĠHashMap < String , ĠHashMap < String , ĠLong >> ĊĠĠĠĠĠĠĠ Ġval Ġfield Ġ= ĠField . from Field String ( field String ) ĊĊĠĠĠĠĠĠĠ Ġfield Fragment Ġ= Ġsupport FragmentManager . find Fragment ById ( R . id . create Game Field ) Ġas ĠField Fragment ĊĠĠĠĠĠĠĠ Ġfield Fragment . draw Field ( field ) ĊĊĠĠĠĠĠĠĠ Ġval Ġnew Reference Ġ= Ġreference . child (" Pending Games "). push () ĊĠĠĠĠĠĠĠ Ġnew Reference . setValue ( uid ) ĊĠĠĠĠĠĠĠ Ġgame Id Ġ= Ġnew Reference . key !! ĊĠĠĠĠĠĠĠ Ġlink EditText . setText ( game Id ) ĊĠĠĠĠĠĠĠ Ġnew Reference . add Value EventListener ( object : Value EventListener { ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Cancelled ( p 0 : ĠDatabase Error ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Data Change ( p 0 : ĠData Snapshot ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( p 0 . value Ġas ? ĠBoolean Ġ== Ġtrue ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġready To Play () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġready To Play () Ġ{ ĊĠĠĠĠĠĠĠ Ġreference . child (" Pending Games "). child ( game Id ). remove Value () ĊĠĠĠĠĠĠĠ Ġreference . child (" Current Games "). child ( game Id ). child (" Player 1 "). setValue ( uid ) ĊĠĠĠĠĠĠĠ Ġval Ġrandom Ġ= ĠRandom () ĊĠĠĠĠĠĠĠ Ġval Ġplayer 1 Go es First Ġ= Ġrandom . next Boolean () ĊĠĠĠĠĠĠĠ Ġreference . child (" Current Games "). child ( game Id ). child (" Turn ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. setValue ( if Ġ( player 1 Go es First ) Ġ 1 Ġelse Ġ 2 ) ĊĊĠĠĠĠĠĠĠ Ġval Ġintent Ġ= ĠIntent ( this , ĠGame Activity :: class . java ) ĊĠĠĠĠĠĠĠ Ġintent . putExtra (" uid ", Ġuid ) ĊĠĠĠĠĠĠĠ Ġintent . putExtra (" field String ", Ġfield String ) ĊĠĠĠĠĠĠĠ Ġintent . putExtra (" game Id ", Ġgame Id ) ĊĠĠĠĠĠĠĠ Ġintent . putExtra (" my Turn ", Ġ 1 L ) ĊĠĠĠĠĠĠĠ Ġintent . putExtra (" ships ", Ġsh ips ) ĊĠĠĠĠĠĠĠ ĠstartActivity ( intent ) ĊĠĠĠĠĠĠĠ Ġfinish () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Destroy () Ġ{ ĊĠĠĠĠĠĠĠ Ġreference . child (" Pending Games "). child ( game Id ). remove Value () ĊĠĠĠĠĠĠĠ Ġsuper . on Destroy () ĊĠĠĠ Ġ} Ċ } Ċ