123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293 |
- package project.schafkopfzaehler_2;
-
- import android.content.Intent;
- import android.support.v7.app.AppCompatActivity;
- import android.os.Bundle;
- import android.util.Log;
- import android.view.View;
- import android.widget.Button;
- import android.widget.RadioButton;
- import android.widget.RadioGroup;
- import android.widget.TextView;
-
- public class ChooseGame extends AppCompatActivity {
-
- RadioGroup style, call, soloPlay; // Radio groups init
- RadioButton heart; // Heart button init for first invisibility
- Button confirmChoice; // Confirm button init
- TextView choice; // Choice view init for first choice
- String playStyle, playCall, playerName; // Init for choice manipulation
- private String names[] = {"", "", "", ""}; // Player names init
-
- private RadioGroup.OnCheckedChangeListener startChangeListener = new RadioGroup.OnCheckedChangeListener() {
- @Override
- public void onCheckedChanged(RadioGroup radioGroup, int checkedId) {
- if (radioGroup == style) {
- playStyle = getPlayStyle(checkedId);
- playCall = getPlayCall(call.getCheckedRadioButtonId());
- playerName = getSoloPlayer(soloPlay.getCheckedRadioButtonId());
- } else if (radioGroup == call) {
- playStyle = getPlayStyle(style.getCheckedRadioButtonId());
- playCall = getPlayCall(checkedId);
- playerName = getSoloPlayer(soloPlay.getCheckedRadioButtonId());
- } else if (radioGroup == soloPlay) {
- playStyle = getPlayStyle(style.getCheckedRadioButtonId());
- playCall = getPlayCall(call.getCheckedRadioButtonId());
- playerName = getSoloPlayer(checkedId);
- }
-
- configureChoice(playStyle, playCall, playerName);
-
- }
- };
-
- private View.OnClickListener startClickListener = new View.OnClickListener() {
-
- @Override
- public void onClick (View v) {
-
- if ( v == confirmChoice ) {
- // Send choice to the previous activity
- // and then finishes the current activity
- Intent data = new Intent();
- data.putExtra("choice", choice.getText().toString());
- setResult(RESULT_OK, data);
- finish();
- }
-
- }
- };
-
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.choosegame);
-
- // Get player names from the activity that started this one
- Intent intent = getIntent();
- names = intent.getStringArrayExtra("playerNames");
-
- // Fill in the player names in the solo choice
- soloPlay = findViewById(R.id.soloplay);
- for (int i = 0; i < soloPlay.getChildCount(); i++) {
- ((RadioButton) soloPlay.getChildAt(i)).setText(names[i]);
- }
-
- // Start click listener on confirm button
- confirmChoice = findViewById(R.id.gameChoosed);
- confirmChoice.setOnClickListener(startClickListener);
-
- // Assign variables radio group and start the change listener
- style = findViewById(R.id.playstyle);
- style.setOnCheckedChangeListener(startChangeListener);
- call = findViewById(R.id.calls);
- call.setOnCheckedChangeListener(startChangeListener);
- soloPlay.setOnCheckedChangeListener(startChangeListener);
-
- // At first Sauspiel & Eichel is checked, that means that the
- // heart can not be called and no solo is played. Therefore
- // both options has to be invisible at first
- heart = findViewById(R.id.herz);
- heart.setVisibility(View.GONE);
- TextView titleSolo = findViewById(R.id.title_soloplayer);
- titleSolo.setVisibility(View.GONE);
- soloPlay.setVisibility(View.GONE);
- choice = findViewById(R.id.choice);
- choice.setText(getString(R.string.sauspiel1));
-
- }
-
- private String getPlayStyle (int checked) {
-
- // Certain play styles do not allow a call
- // In these cases the call view should be invisible
- TextView titleCall = findViewById(R.id.title_playcall);
- TextView titleSolo = findViewById(R.id.title_soloplayer);
-
- // Return value
- String returnStyle = "";
-
- // Find which radio button is selected
- switch (checked) {
- case R.id.sauspiel:
- // Sauspiel
-
- // Toggle visibility
- titleCall.setVisibility(View.VISIBLE);
- titleCall.setText(getString(R.string.call));
- call.setVisibility(View.VISIBLE);
- heart.setVisibility(View.GONE);
- titleSolo.setVisibility(View.GONE);
- soloPlay.setVisibility(View.GONE);
- // -----------------
-
- Log.d("ChooseGame", "Sauspiel selected");
-
- returnStyle = "Sauspiel";
-
- break;
-
- case R.id.wenz:
- // Wenz
-
- // Toggle visibility
- titleCall.setVisibility(View.GONE);
- call.setVisibility(View.GONE);
- titleSolo.setVisibility(View.GONE);
- soloPlay.setVisibility(View.GONE);
- // -----------------
-
- Log.d("ChooseGame", "Wenz selected");
-
- returnStyle = "Wenz";
-
- break;
-
- case R.id.solo:
- // Solo
-
- // Toggle visibility
- titleCall.setVisibility(View.VISIBLE);
- titleCall.setText(getString(R.string.soloCall));
- call.setVisibility(View.VISIBLE);
- titleSolo.setVisibility(View.VISIBLE);
- soloPlay.setVisibility(View.VISIBLE);
- heart.setVisibility(View.VISIBLE);
- // -----------------
-
- Log.d("ChooseGame", "Solo selected");
-
- returnStyle = "Solo";
-
- break;
-
- default:
- Log.d("ChooseGame", "!! ERROR - Nothing is selected");
- break;
-
- }
-
- return returnStyle;
-
- }
-
- private String getPlayCall (int checked) {
-
- Log.d("ChooseGame", "Call changed");
-
- // Return value
- String returnCall = "";
-
- switch (checked) {
-
- case R.id.eichel:
-
- Log.d("ChooseGame", "Eichel selected");
- returnCall = "Eichel";
-
- break;
-
- case R.id.blatt:
-
- Log.d("ChooseGame", "Blatt selected");
- returnCall = "Blatt";
-
- break;
-
- case R.id.schelle:
-
- Log.d("ChooseGame", "Schelle selected");
- returnCall = "Schelle";
-
- break;
-
- case R.id.herz:
-
- Log.d("ChooseGame", "Herz selected");
- returnCall = "Herz";
-
- break;
-
- }
-
- return returnCall;
- }
-
- private String getSoloPlayer (int checked) {
-
- Log.d("ChooseGame", "Name changed");
-
- // Return value
- String name = "";
-
- switch (checked) {
-
- case R.id.player1:
- name = ((RadioButton) soloPlay.getChildAt(0)).getText().toString();
- break;
-
- case R.id.player2:
- name = ((RadioButton) soloPlay.getChildAt(1)).getText().toString();
- break;
-
- case R.id.player3:
- name = ((RadioButton) soloPlay.getChildAt(2)).getText().toString();
- break;
-
- case R.id.player4:
- name = ((RadioButton) soloPlay.getChildAt(3)).getText().toString();
- break;
-
- default:
- // Do nothing
- break;
- }
-
- return name;
- }
-
- private void configureChoice (String style, String call, String name) {
-
- if ( style.equals("Wenz") ) {
-
- choice.setText(style);
-
- } else if ( style.equals("Sauspiel") ) {
-
- switch (call) {
- case "Eichel":
- choice.setText(getString(R.string.sauspiel1));
- break;
- case "Blatt":
- choice.setText(getString(R.string.sauspiel2));
- break;
- case "Schelle":
- choice.setText(getString(R.string.sauspiel3));
- break;
- }
-
- } else if ( style.equals("Solo") ) {
-
- switch (call) {
- case "Eichel":
- choice.setText(getString(R.string.solo1));
- choice.append(" " + name);
- break;
- case "Blatt":
- choice.setText(getString(R.string.solo2));
- choice.append(" " + name);
- break;
- case "Schelle":
- choice.setText(getString(R.string.solo3));
- choice.append(" " + name);
- break;
- case "Herz":
- choice.setText(getString(R.string.solo4));
- choice.append(" " + name);
- break;
- }
- }
-
-
- }
- }
|