package Ġar . com . play 2 play . presentation . imp ost or Ċ Ċ import Ġandroidx . lifecycle . LiveData Ċ import Ġandroidx . lifecycle . Mutable LiveData Ċ import Ġar . com . play 2 play . data . bluetooth . Bluetooth Connection Creator Ċ import Ġar . com . play 2 play . data . imp ost or . Imp ost or Data Ċ import Ġar . com . play 2 play . data . instructions . Instructions Repository Ċ import Ġar . com . play 2 play . data . loading Messages . Loading Text Repository Ċ import Ġar . com . play 2 play . data . userInfo . User Session Ċ import Ġar . com . play 2 play . model . imp ost or . message . Imp ost or Assign Word Ċ import Ġar . com . play 2 play . model . imp ost or . message . Imp ost or End Game Ċ import Ġar . com . play 2 play . presentation . base game . Connection Type Ċ import Ġar . com . play 2 play . presentation . base game . Game ViewModel Ċ import Ġar . com . play 2 play . presentation . base game . Kill Game Ċ import Ġar . com . play 2 play . presentation . home . games . Game Ċ import Ġar . com . play 2 play . presentation . t utt if rut ti . Single Player On Game Ċ Ċ abstract Ġclass ĠImp ost or ViewModel ( ĊĠĠĠ Ġconnection Type : ĠConnection Type , ĊĠĠĠ Ġuser Session : ĠUser Session , ĊĠĠĠ Ġbluetooth Connection Creator : ĠBluetooth Connection Creator , ĊĠĠĠ Ġinstructions Repository : ĠInstructions Repository , ĊĠĠĠ Ġloading Text Repository : ĠLoading Text Repository Ċ ) Ġ: ĠGame ViewModel ( ĊĠĠĠ Ġconnection Type , ĊĠĠĠ Ġuser Session , ĊĠĠĠ Ġbluetooth Connection Creator , ĊĠĠĠ Ġinstructions Repository , ĊĠĠĠ Ġloading Text Repository , ĊĠĠĠ ĠGame . IMP O STOR Ċ ) Ġ{ ĊĊĠĠĠ Ġprotected Ġval Ġ_ imp ost or Data Ġ= ĠMutable LiveData < Imp ost or Data >() ĊĠĠĠ Ġval Ġimpost or Data : ĠLive Data < Imp ost or Data > Ġ= Ġ_ imp ost or Data ĊĊĠĠĠ Ġfun Ġcreate Game ( word : ĠString , Ġword Theme : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġimpost or Ġ= Ġselect Imp ost or () ĊĠĠĠĠĠĠĠ Ġ// ĠCreator Ġis Ġnever Ġthe Ġimpost or . ĠTODO : ĠDO Ġcheck Ġthis Ġif Ġwe Ġset Ġdefault Ġwords / themes . ĊĠĠĠĠĠĠĠ Ġ_ imp ost or Data . value Ġ= ĠImp ost or Data ( imp ost or , Ġword , Ġword Theme , Ġis Imp ost or Ġ= Ġfalse ) ĊĠĠĠĠĠĠĠ Ġconnection . write ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠImp ost or Assign Word ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġword , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġword Theme , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimpost or ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġclose Discovery () ĊĠĠĠĠĠĠĠ Ġgo To Play () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġselect Imp ost or (): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġplayers Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrequire NotNull ( get Other Players ()) Ġ{ Ġ" At Ġthis Ġinstance Ġat Ġleast Ġone Ġplayer Ġmust Ġbe Ġconnected " Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġplayers . sh uffled (). first () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġend Game () Ġ{ ĊĠĠĠĠĠĠĠ Ġconnection . write ( Imp ost or End Game ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġstart Game () Ġ= Ġgo To Play () ĊĊĠĠĠ Ġoverride Ġfun Ġgo To Play () Ġ{ ĊĠĠĠĠĠĠĠ Ġgame Already Started Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġsuper . goTo Play () ĊĠĠĠ Ġ} Ċ }