@@ -64,7 +64,7 @@ protected void onCreate(Bundle savedInstanceState) {
64
64
TextView title = findViewById (R .id .lobbyTitle );
65
65
title .setText (game .getName ());
66
66
67
- final SortableTableView <Game > tableView = findViewById (R .id .lobbyTable );
67
+ final SortableTableView <String > tableView = findViewById (R .id .lobbyTable );
68
68
tableView .setHeaderAdapter (new SimpleTableHeaderAdapter (this , TABLE_HEADERS ));
69
69
70
70
TableColumnWeightModel columnModel = new TableColumnWeightModel (TABLE_HEADERS .length );
@@ -85,7 +85,7 @@ protected void onCreate(Bundle savedInstanceState) {
85
85
btnStartGame .setOnClickListener (new View .OnClickListener () {
86
86
@ Override
87
87
public void onClick (View view ) {
88
- startGame ();
88
+ startGame (1 );
89
89
}
90
90
});
91
91
}
@@ -213,7 +213,8 @@ public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
213
213
final Game game = dataSnapshot .getValue (Game .class );
214
214
if (game .getPlayer1 ()!= null ) {
215
215
if (game .isRunning () && !game .getPlayer1 ().equals (user )) {
216
- startGame ();
216
+ int playerNumber = getPlayerNumber ();
217
+ startGame (playerNumber );
217
218
}
218
219
}
219
220
}catch (Exception e ){
@@ -229,7 +230,17 @@ public void onCancelled(@NonNull DatabaseError databaseError) {
229
230
});
230
231
}
231
232
232
- public void startGame (){
233
+ private int getPlayerNumber () {
234
+ SortableTableView <String > tableView = findViewById (R .id .lobbyTable );
235
+ for (int i = 1 ; i < 4 ; i ++) {
236
+ if (user .equals (tableView .getDataAdapter ().getRowData (i ))) {
237
+ return i + 1 ; // Row index + 1 is equal player id
238
+ }
239
+ }
240
+ throw new RuntimeException ("Failed to find player number" );
241
+ }
242
+
243
+ public void startGame (final int playerNumber ){
233
244
final Game game = (Game ) getIntent ().getSerializableExtra (Game .class .getSimpleName ().toLowerCase ());
234
245
DatabaseReference quizRef = database .getReference (Quiz .class .getSimpleName ().toLowerCase () + "s" );
235
246
quizRef .orderByChild ("name" ).equalTo (game .getQuizId ()).addListenerForSingleValueEvent (new ValueEventListener () {
@@ -241,7 +252,7 @@ public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
241
252
intent .putExtra (Quiz .class .getSimpleName ().toLowerCase (), quiz );
242
253
intent .putExtra (GAME_ID_KEY , game .getFirebaseKey ());
243
254
intent .putExtra (QUESTION_COUNT_KEY , game .getQuestionTime ());
244
- intent .putExtra (PLAYER_NUMBER_KEY , 1 );
255
+ intent .putExtra (PLAYER_NUMBER_KEY , playerNumber );
245
256
startActivity (intent );
246
257
}catch (Exception e ){
247
258
Toast .makeText (LobbyActivity .this , "Das Spiel konnte nicht gestartet werden." , Toast .LENGTH_LONG ).show ();
0 commit comments