From 2d8187935c8a6d1fca8d9dbd916b7143c3e41c9c Mon Sep 17 00:00:00 2001 From: Jacek Kowalski <Jacek@jacekk.info> Date: Sun, 18 Jan 2015 19:16:23 +0000 Subject: [PATCH] Allow to reset application state using "back" button & fix toggles state detection. --- app/src/main/java/net/jacekk/bridge/android/MainActivity.java | 98 ++++++++++++++++++++++++++++++++---------------- 1 files changed, 65 insertions(+), 33 deletions(-) diff --git a/app/src/main/java/net/jacekk/bridge/android/MainActivity.java b/app/src/main/java/net/jacekk/bridge/android/MainActivity.java index e7fe4cd..9c60f4e 100644 --- a/app/src/main/java/net/jacekk/bridge/android/MainActivity.java +++ b/app/src/main/java/net/jacekk/bridge/android/MainActivity.java @@ -4,7 +4,7 @@ import android.os.Bundle; import android.text.Editable; import android.text.TextWatcher; -import android.view.View; +import android.widget.CompoundButton; import android.widget.EditText; import android.widget.SeekBar; import android.widget.TextView; @@ -49,6 +49,17 @@ InitializeApp(); } + @Override + public void onBackPressed() { + // Reset + BidSlider.setProgress(0); + MinorSuitsToggle.setChecked(true); + ContractToggle.setChecked(true); + NNToggle.setChecked(true); + PCInput.setText(""); + TricksInput.setText(""); + } + private void InitializeApp() { bridgeCompute = new BridgeCompute(); @@ -73,6 +84,8 @@ resultText = (TextView) findViewById(R.id.ResultsText); + CompoundButton.OnCheckedChangeListener changeListener; + BidSlider.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() { @Override public void onProgressChanged(SeekBar seekBar, int i, boolean b) { @@ -89,67 +102,86 @@ } }); - ToggleButton.OnClickListener colorClickListener = new ToggleButton.OnClickListener() { + changeListener = new CompoundButton.OnCheckedChangeListener() { @Override - public void onClick(View view) { - ToggleButton toggle = (ToggleButton) view; + public void onCheckedChanged(CompoundButton button, boolean isChecked) { + if (!isChecked) { + if (!MinorSuitsToggle.isChecked() && !MajorSuitsToggle.isChecked() + && !NoTrumpToggle.isChecked()) { + MinorSuitsToggle.setChecked(true); + } + return; + } - if (!toggle.equals(MinorSuitsToggle)) + if (!button.equals(MinorSuitsToggle)) MinorSuitsToggle.setChecked(false); - if (!toggle.equals(MajorSuitsToggle)) + if (!button.equals(MajorSuitsToggle)) MajorSuitsToggle.setChecked(false); - if (!toggle.equals(NoTrumpToggle)) + if (!button.equals(NoTrumpToggle)) NoTrumpToggle.setChecked(false); updateResults(); } }; - MinorSuitsToggle.setOnClickListener(colorClickListener); - MajorSuitsToggle.setOnClickListener(colorClickListener); - NoTrumpToggle.setOnClickListener(colorClickListener); + MinorSuitsToggle.setOnCheckedChangeListener(changeListener); + MajorSuitsToggle.setOnCheckedChangeListener(changeListener); + NoTrumpToggle.setOnCheckedChangeListener(changeListener); - ToggleButton.OnClickListener bidClickListener = new ToggleButton.OnClickListener() { + changeListener = new CompoundButton.OnCheckedChangeListener() { @Override - public void onClick(View view) { - ToggleButton toggle = (ToggleButton) view; + public void onCheckedChanged(CompoundButton button, boolean isChecked) { + if (!isChecked) { + if (!ContractToggle.isChecked() && !DoubleToggle.isChecked() + && !RedoubleToggle.isChecked()) { + ContractToggle.setChecked(true); + } + return; + } - if (!toggle.equals(ContractToggle)) + if (!button.equals(ContractToggle)) ContractToggle.setChecked(false); - if (!toggle.equals(DoubleToggle)) + if (!button.equals(DoubleToggle)) DoubleToggle.setChecked(false); - if (!toggle.equals(RedoubleToggle)) + if (!button.equals(RedoubleToggle)) RedoubleToggle.setChecked(false); updateResults(); } }; - ContractToggle.setOnClickListener(bidClickListener); - DoubleToggle.setOnClickListener(bidClickListener); - RedoubleToggle.setOnClickListener(bidClickListener); + ContractToggle.setOnCheckedChangeListener(changeListener); + DoubleToggle.setOnCheckedChangeListener(changeListener); + RedoubleToggle.setOnCheckedChangeListener(changeListener); - ToggleButton.OnClickListener baClickListener = new ToggleButton.OnClickListener() { - public void onClick(View view) { - ToggleButton toggle = (ToggleButton) view; + changeListener = new CompoundButton.OnCheckedChangeListener() { + @Override + public void onCheckedChanged(CompoundButton button, boolean isChecked) { + if (!isChecked) { + if (!VVToggle.isChecked() && !VNToggle.isChecked() + && !NVToggle.isChecked() && !NNToggle.isChecked()) { + NNToggle.setChecked(true); + } + return; + } - if (!toggle.equals(VVToggle)) - VVToggle.setChecked(false); - if (!toggle.equals(VNToggle)) - VNToggle.setChecked(false); - if (!toggle.equals(NVToggle)) - NVToggle.setChecked(false); - if (!toggle.equals(NNToggle)) + if (!button.equals(NNToggle)) NNToggle.setChecked(false); + if (!button.equals(NVToggle)) + NVToggle.setChecked(false); + if (!button.equals(VNToggle)) + VNToggle.setChecked(false); + if (!button.equals(VVToggle)) + VVToggle.setChecked(false); updateResults(); } }; - VVToggle.setOnClickListener(baClickListener); - VNToggle.setOnClickListener(baClickListener); - NVToggle.setOnClickListener(baClickListener); - NNToggle.setOnClickListener(baClickListener); + VVToggle.setOnCheckedChangeListener(changeListener); + VNToggle.setOnCheckedChangeListener(changeListener); + NVToggle.setOnCheckedChangeListener(changeListener); + NNToggle.setOnCheckedChangeListener(changeListener); TextWatcher textWatcher = new TextWatcher() { @Override -- Gitblit v1.9.1