diff --git a/android/src/com/buildasnowman/game/AndroidInterfaceClass.java b/android/src/com/buildasnowman/game/AndroidInterfaceClass.java index b598c651dda198f52b7c5313e609d19b18634739..b9e697c0307b26f63a5384698c9e9f908b65acd6 100644 --- a/android/src/com/buildasnowman/game/AndroidInterfaceClass.java +++ b/android/src/com/buildasnowman/game/AndroidInterfaceClass.java @@ -222,8 +222,14 @@ public class AndroidInterfaceClass implements FirebaseInterface { String host = (String) snapshot.child(roomID).child("hostPlayer").child("uid").getValue(); room.setRoomID(roomID); room.setHostPlayer(new Player(host)); + + //add listener to update score in room + updatePlayerScore(player, false); + usersInRoom(); + } else { + room = null; //remove local room if ID does not exist + // throw new IllegalArgumentException("No room with this ID exists."); } - usersInRoom(); } @Override @@ -231,8 +237,7 @@ public class AndroidInterfaceClass implements FirebaseInterface { } }); - //add listener to update score in room - updatePlayerScore(player,false); + } public void updatePlayerScore(Player p, boolean ignoreRoom) { @@ -413,9 +418,16 @@ public class AndroidInterfaceClass implements FirebaseInterface { } public boolean isRoomReady() { - usersInRoom(); + boolean ready; + + if (room == null ) { + ready = false; + } else { + usersInRoom(); + ready = room.isRoomReady(); + } - return room.isRoomReady(); + return ready; } } diff --git a/core/src/com/buildasnowman/views/JoinMultiPlayer.java b/core/src/com/buildasnowman/views/JoinMultiPlayer.java index 839ecfb73b3051cb39c719455d3e593c045ca1ba..4921413ed599f7bb2aa0b529e9ffca0fa8ae914e 100644 --- a/core/src/com/buildasnowman/views/JoinMultiPlayer.java +++ b/core/src/com/buildasnowman/views/JoinMultiPlayer.java @@ -30,7 +30,7 @@ public class JoinMultiPlayer extends View { String gameCode; - private TextField gameCodeField, gameCodeLabelField; + private TextField gameCodeField, gameCodeLabelField, errorField; CreateButtonController createImgBtn; NavBarController navBar; @@ -79,15 +79,24 @@ public class JoinMultiPlayer extends View { gameCodeLabelField.setMessageText("Enter game pin:"); gameCodeLabelField.setDisabled(true); + //error text field, initially invisible + errorField = createImgBtn.createTextField("", 5f, null); + errorField.setMessageText("Invalid code"); + errorField.setDisabled(true); + errorField.setVisible(false); + //Table for join game button Table joinGameTable = new Table(); joinGameTable.setFillParent(true); - joinGameTable.columnDefaults(0).width(Gdx.graphics.getWidth()/2f).height(Gdx.graphics.getHeight()/3f); + joinGameTable.columnDefaults(0).width(Gdx.graphics.getWidth()/2f).height(Gdx.graphics.getHeight()/4f); joinGameTable.add(gameCodeLabelField); joinGameTable.row(); joinGameTable.add(gameCodeField); + joinGameTable.row(); + joinGameTable.add(errorField); + joinGameTable.row(); joinGameTable.add(joinGameImageButton); @@ -140,6 +149,8 @@ public class JoinMultiPlayer extends View { boolean roomReady = MPController.checkRoomStatus(); //checks if the room has registered two users if (roomReady) { vm.set(new SnowmanGameView(vm, musicManager, MPController)); + } else { + errorField.setVisible(true); } }