package net.jacekk.brydz.android;
|
|
import android.app.Activity;
|
import android.os.Bundle;
|
import android.text.Editable;
|
import android.text.TextWatcher;
|
import android.view.View;
|
import android.widget.EditText;
|
import android.widget.SeekBar;
|
import android.widget.TextView;
|
import android.widget.ToggleButton;
|
import net.jacekk.brydz.BridgeCompute;
|
import net.jacekk.brydz.BridgeResult;
|
|
public class MainActivity extends Activity {
|
private SeekBar BidSlider;
|
private TextView BidText;
|
|
private ToggleButton CDToggle;
|
private ToggleButton HSToggle;
|
private ToggleButton NTToggle;
|
|
private ToggleButton NormToggle;
|
private ToggleButton DblToggle;
|
private ToggleButton ReDblToggle;
|
|
private ToggleButton BBToggle;
|
private ToggleButton BAToggle;
|
private ToggleButton ABToggle;
|
private ToggleButton AAToggle;
|
|
private EditText PCInput;
|
private EditText TricksInput;
|
|
private TextView resultText;
|
|
public BridgeCompute bridgeCompute;
|
|
/**
|
* Called when the activity is first created.
|
*/
|
@Override
|
public void onCreate(Bundle savedInstanceState) {
|
super.onCreate(savedInstanceState);
|
setContentView(R.layout.main);
|
|
InitializeApp();
|
}
|
|
private void InitializeApp() {
|
bridgeCompute = new BridgeCompute();
|
|
BidSlider = (SeekBar) findViewById(R.id.BidSlider);
|
BidText = (TextView) findViewById(R.id.BidText);
|
|
CDToggle = (ToggleButton) findViewById(R.id.CDToggle);
|
HSToggle = (ToggleButton) findViewById(R.id.HSToggle);
|
NTToggle = (ToggleButton) findViewById(R.id.NTToggle);
|
|
NormToggle = (ToggleButton) findViewById(R.id.NormToggle);
|
DblToggle = (ToggleButton) findViewById(R.id.DblToggle);
|
ReDblToggle = (ToggleButton) findViewById(R.id.ReDblToggle);
|
|
BBToggle = (ToggleButton) findViewById(R.id.BBToggle);
|
BAToggle = (ToggleButton) findViewById(R.id.BAToggle);
|
ABToggle = (ToggleButton) findViewById(R.id.ABToggle);
|
AAToggle = (ToggleButton) findViewById(R.id.AAToggle);
|
|
PCInput = (EditText) findViewById(R.id.PCInput);
|
TricksInput = (EditText) findViewById(R.id.TricksInput);
|
|
resultText = (TextView) findViewById(R.id.resultText);
|
|
BidSlider.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
|
@Override
|
public void onProgressChanged(SeekBar seekBar, int i, boolean b) {
|
BidText.setText(Integer.toString(seekBar.getProgress()));
|
updateResults();
|
}
|
|
@Override
|
public void onStartTrackingTouch(SeekBar seekBar) {
|
}
|
|
@Override
|
public void onStopTrackingTouch(SeekBar seekBar) {
|
}
|
});
|
|
ToggleButton.OnClickListener colorClickListener = new ToggleButton.OnClickListener() {
|
@Override
|
public void onClick(View view) {
|
ToggleButton toggle = (ToggleButton) view;
|
|
if (!toggle.equals(CDToggle))
|
CDToggle.setChecked(false);
|
if (!toggle.equals(HSToggle))
|
HSToggle.setChecked(false);
|
if (!toggle.equals(NTToggle))
|
NTToggle.setChecked(false);
|
|
updateResults();
|
}
|
};
|
|
CDToggle.setOnClickListener(colorClickListener);
|
HSToggle.setOnClickListener(colorClickListener);
|
NTToggle.setOnClickListener(colorClickListener);
|
|
ToggleButton.OnClickListener bidClickListener = new ToggleButton.OnClickListener() {
|
@Override
|
public void onClick(View view) {
|
ToggleButton toggle = (ToggleButton) view;
|
|
if (!toggle.equals(NormToggle))
|
NormToggle.setChecked(false);
|
if (!toggle.equals(DblToggle))
|
DblToggle.setChecked(false);
|
if (!toggle.equals(ReDblToggle))
|
ReDblToggle.setChecked(false);
|
|
updateResults();
|
}
|
};
|
|
NormToggle.setOnClickListener(bidClickListener);
|
DblToggle.setOnClickListener(bidClickListener);
|
ReDblToggle.setOnClickListener(bidClickListener);
|
|
ToggleButton.OnClickListener baClickListener = new ToggleButton.OnClickListener() {
|
public void onClick(View view) {
|
ToggleButton toggle = (ToggleButton) view;
|
|
if (!toggle.equals(AAToggle))
|
AAToggle.setChecked(false);
|
if (!toggle.equals(ABToggle))
|
ABToggle.setChecked(false);
|
if (!toggle.equals(BAToggle))
|
BAToggle.setChecked(false);
|
if (!toggle.equals(BBToggle))
|
BBToggle.setChecked(false);
|
|
updateResults();
|
}
|
};
|
|
AAToggle.setOnClickListener(baClickListener);
|
ABToggle.setOnClickListener(baClickListener);
|
BAToggle.setOnClickListener(baClickListener);
|
BBToggle.setOnClickListener(baClickListener);
|
|
PCInput.addTextChangedListener(
|
new TextWatcher() {
|
@Override
|
public void beforeTextChanged(CharSequence charSequence, int i, int i2, int i3) {
|
}
|
|
@Override
|
public void onTextChanged(CharSequence charSequence, int i, int i2, int i3) {
|
}
|
|
@Override
|
public void afterTextChanged(Editable editable) {
|
updateResults();
|
}
|
}
|
);
|
|
TricksInput.addTextChangedListener(
|
new TextWatcher() {
|
@Override
|
public void beforeTextChanged(CharSequence charSequence, int i, int i2, int i3) {
|
}
|
|
@Override
|
public void onTextChanged(CharSequence charSequence, int i, int i2, int i3) {
|
}
|
|
@Override
|
public void afterTextChanged(Editable editable) {
|
updateResults();
|
}
|
}
|
);
|
}
|
|
public void updateResults() {
|
int bid = BidSlider.getProgress();
|
|
int color = 0;
|
if (HSToggle.isChecked())
|
color = 1;
|
if (NTToggle.isChecked())
|
color = 2;
|
|
int dbl = 0;
|
if (DblToggle.isChecked())
|
dbl = 1;
|
if (ReDblToggle.isChecked())
|
dbl = 2;
|
|
int baba = 0;
|
if (BAToggle.isChecked())
|
baba = 1;
|
if (ABToggle.isChecked())
|
baba = 2;
|
if (AAToggle.isChecked())
|
baba = 3;
|
|
int PC = -1;
|
try {
|
PC = Integer.parseInt(PCInput.getText().toString());
|
} catch (NumberFormatException e) {
|
}
|
|
int tricks = -1;
|
try {
|
tricks = Integer.parseInt(TricksInput.getText().toString());
|
} catch (NumberFormatException e) {
|
}
|
|
if (bid < 0 || bid > 7) {
|
resultText.setText(getString(R.string.invalid_bid));
|
return;
|
}
|
|
if (color != 0 && color != 1 && color != 2) {
|
resultText.setText(getString(R.string.invalid_color));
|
return;
|
}
|
|
if (dbl < 0 || dbl > 2) {
|
resultText.setText(getString(R.string.invalid_dbl));
|
return;
|
}
|
|
if (baba < 0 || baba > 3) {
|
resultText.setText(getString(R.string.invalid_baba));
|
return;
|
}
|
|
if (PC < 0 || PC > 40) {
|
resultText.setText(getString(R.string.invalid_pc));
|
return;
|
}
|
|
if (tricks < 0 || tricks > 13) {
|
resultText.setText(getString(R.string.invalid_tricks));
|
return;
|
}
|
|
if (bid == 0 && PC < 20) {
|
resultText.setText(getString(R.string.invalid_pass));
|
return;
|
}
|
|
BridgeResult result = bridgeCompute.compute(bid, color, dbl, baba, PC, tricks);
|
resultText.setText(
|
(result.pointsFor == BridgeResult.PointsFor.Us ? getString(R.string.result_for_us) : getString(R.string.result_for_them)) +
|
"\n" + getString(R.string.result_pts_wo_pc) + " " + result.pointsBefore +
|
"\n" + getString(R.string.result_pts) + " " + result.points +
|
"\n" + getString(R.string.result_imps) + " " + result.IMPs +
|
"\n" + getString(R.string.result_percent) + " " + result.percent);
|
}
|
}
|