@Override
        public void onClick(View v) {
          if (currentState == FIRST_ROUND_BETTING || currentState == SECOND_ROUND_BETTING) {
            if (currentState == SECOND_ROUND_BETTING && trumpSuit == cardLead.getSuit()) {
              trumpSuit = -1;
              updateTrumpSuit();
              // TODO tell player they can't choose the suit that was offered to bet on in the first
              // round
            }
            if (trumpSuit == -1) {
              ScaleAnimation scale =
                  new ScaleAnimation((float) 1.1, (float) 1.1, (float) 1.2, (float) 1.2);
              scale.scaleCurrentDuration(5);
              chooseSuit.startAnimation(scale);
              return;
            }
            EuchreBet bet = new EuchreBet(trumpSuit, true, true);

            connection.write(currentState, bet.toString());

            isBettingNow = false;

            playingView();
            setButtonsEnabled(false);
            isTurn = false;
            cardSuggestedId = -1;
          }
        }
        @Override
        public void onClick(View v) {
          if ((isTurn && cardSelected != null)
              && currentState != FIRST_ROUND_BETTING
              && currentState != SECOND_ROUND_BETTING
              && (currentState == PICK_IT_UP
                  || currentState == PLAY_LEAD_CARD
                  || gameRules.checkCard(cardSelected, trumpSuit, cardLead, cardHand))
              && cardHand.size() != 0) {
            // play card or discard if it is pick_it_up mode

            connection.write(currentState, cardSelected);

            playerContext.removeFromHand(cardSelected.getIdNum());

            cardSelected = null;
            if (currentState == PICK_IT_UP) {
              play.setText(R.string.Play);
              playingView();
            }

            setButtonsEnabled(false);
            isTurn = false;
            cardSuggestedId = -1;
            playerContext.setSelected(-1, cardSuggestedId);
          } else if (currentState == FIRST_ROUND_BETTING || currentState == SECOND_ROUND_BETTING) {
            EuchreBet bet = new EuchreBet(trumpSuit, false, false);

            connection.write(currentState, bet.toString());

            isBettingNow = false;

            playingView();
            setButtonsEnabled(false);
            isTurn = false;
            cardSuggestedId = -1;
            playerContext.setSelected(-1, cardSuggestedId);
          }
        }