Skip to content

Commit b9624bd

Browse files
LobbyActivity: calculate player number
1 parent 4cfa441 commit b9624bd

File tree

1 file changed

+16
-5
lines changed

1 file changed

+16
-5
lines changed

eq-app/app/src/main/java/topgrost/mocoquizer/lobby/LobbyActivity.java

Lines changed: 16 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,7 @@ protected void onCreate(Bundle savedInstanceState) {
6464
TextView title = findViewById(R.id.lobbyTitle);
6565
title.setText(game.getName());
6666

67-
final SortableTableView<Game> tableView = findViewById(R.id.lobbyTable);
67+
final SortableTableView<String> tableView = findViewById(R.id.lobbyTable);
6868
tableView.setHeaderAdapter(new SimpleTableHeaderAdapter(this, TABLE_HEADERS));
6969

7070
TableColumnWeightModel columnModel = new TableColumnWeightModel(TABLE_HEADERS.length);
@@ -85,7 +85,7 @@ protected void onCreate(Bundle savedInstanceState) {
8585
btnStartGame.setOnClickListener(new View.OnClickListener() {
8686
@Override
8787
public void onClick(View view) {
88-
startGame();
88+
startGame(1);
8989
}
9090
});
9191
}
@@ -213,7 +213,8 @@ public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
213213
final Game game = dataSnapshot.getValue(Game.class);
214214
if(game.getPlayer1()!= null) {
215215
if (game.isRunning() && !game.getPlayer1().equals(user)) {
216-
startGame();
216+
int playerNumber = getPlayerNumber();
217+
startGame(playerNumber);
217218
}
218219
}
219220
}catch(Exception e){
@@ -229,7 +230,17 @@ public void onCancelled(@NonNull DatabaseError databaseError) {
229230
});
230231
}
231232

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){
233244
final Game game = (Game) getIntent().getSerializableExtra(Game.class.getSimpleName().toLowerCase());
234245
DatabaseReference quizRef = database.getReference(Quiz.class.getSimpleName().toLowerCase() + "s");
235246
quizRef.orderByChild("name").equalTo(game.getQuizId()).addListenerForSingleValueEvent(new ValueEventListener() {
@@ -241,7 +252,7 @@ public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
241252
intent.putExtra(Quiz.class.getSimpleName().toLowerCase(), quiz);
242253
intent.putExtra(GAME_ID_KEY, game.getFirebaseKey());
243254
intent.putExtra(QUESTION_COUNT_KEY, game.getQuestionTime());
244-
intent.putExtra(PLAYER_NUMBER_KEY, 1);
255+
intent.putExtra(PLAYER_NUMBER_KEY, playerNumber);
245256
startActivity(intent);
246257
}catch(Exception e){
247258
Toast.makeText(LobbyActivity.this, "Das Spiel konnte nicht gestartet werden.", Toast.LENGTH_LONG).show();

0 commit comments

Comments
 (0)