diff --git a/app/src/main/java/edu/kvcc/cis298/cis298assignment2/Conversion.java b/app/src/main/java/edu/kvcc/cis298/cis298assignment2/Conversion.java index de239fb855a279879db38aed68d0f8ddfa9eaf4d..2fb0a96f759b8be70246b4fbfdcf52215c269ac3 100644 --- a/app/src/main/java/edu/kvcc/cis298/cis298assignment2/Conversion.java +++ b/app/src/main/java/edu/kvcc/cis298/cis298assignment2/Conversion.java @@ -7,18 +7,135 @@ public class Conversion { //region Variables - + private int initialValueInt; // Temperature user wants to convert. + private int convertedValueInt; // Temperature after conversion. + private int baseInt; // Temperature at default value, arbitrarily specified as + // Celsius in this program. Used to help modularize program. + private int initialGroupInt; // Holds temperature type of initial value. + private int convertGroupInt; // Holds temperature type of converted value. + //endregion //region Constructor + public Conversion(int initialValue, int initialGroup, int convertGroup) + { + setInitialValueInt(initialValueInt); + setInitialGroupInt(initialGroupInt); + setConvertGroupInt(convertGroupInt); + + CalculateTemperature(); + } + //endregion //region Properties + public int getInitialValueInt() { + return initialValueInt; + } + + public void setInitialValueInt(int initialValueInt) { + this.initialValueInt = initialValueInt; + } + + public int getConvertedValueInt() { + return convertedValueInt; + } + + public int getInitialGroupInt() { + return initialGroupInt; + } + + public void setInitialGroupInt(int initialGroupInt) { + this.initialGroupInt = initialGroupInt; + } + + public int getConvertGroupInt() { + return convertGroupInt; + } + + public void setConvertGroupInt(int convertGroupInt) { + this.convertGroupInt = convertGroupInt; + } + + //endregion + + + + //region Private Methods + + /** + * Converts user's int to base int. + */ + private void CalculateBase() { + // If initial is Celsius, set base equal to user input. + if (initialGroupInt == 1) { + baseInt = initialValueInt; + } + else { + // If initial is Fahrenheit, convert to Celsius then set as base. + if (initialGroupInt == 2) { + baseInt = ((initialValueInt - 32) * 5 / 9); + } + else { + // If initial is Kelvin, convert to Celsius then set as base. + if (initialGroupInt == 3) { + baseInt = (initialValueInt - 273); // Should be 273.15 + } + // If initial is Rankin, convert to Celsius then set as base. + else { + baseInt = ((initialValueInt - 491) * 5 / 9); // Should be 491.67 + } + } + } + + } + + /** + * Converts base int to desired convert to int. + */ + private void CalculateConvertTo() + { + // If desired is Celsius, set convert equal to base. + if (convertGroupInt == 1) { + convertedValueInt = baseInt; + } + else { + // If desired is Fahrenheit, convert from base. + if (convertGroupInt == 2) { + convertedValueInt = (baseInt * 9 / 5 + 32); + } + else { + // If desired is Kelvin, convert from base. + if (convertGroupInt == 3) { + convertedValueInt = (baseInt + 273); // Should be 273.15 + } + // If desired is Rankin, convert from base. + else { + convertedValueInt = ((baseInt + 273) * 9 / 5); // Should be 273.15 + } + } + } + + } + //endregion + + + + //region Public Methods + + public void CalculateTemperature() + { + CalculateBase(); + CalculateConvertTo(); + } + + //endregion + } diff --git a/app/src/main/java/edu/kvcc/cis298/cis298assignment2/TemperatureConverter.java b/app/src/main/java/edu/kvcc/cis298/cis298assignment2/TemperatureConverter.java index f04902fd1b52bfc09f7e1fff3ddde790041bfd29..29c71b25a162fe4eb76d5c94e42b5115a5f59391 100644 --- a/app/src/main/java/edu/kvcc/cis298/cis298assignment2/TemperatureConverter.java +++ b/app/src/main/java/edu/kvcc/cis298/cis298assignment2/TemperatureConverter.java @@ -32,6 +32,11 @@ public class TemperatureConverter extends AppCompatActivity { private TextView mConversionTextView; private TextView mEquationTextView; + // Values to check if user input is present. + private boolean mInitialGroupChecked; + private boolean mConvertGroupChecked; + private boolean mInputTextPresent; + private static final String TAG = "TemperatureConverter"; private static final String KEY_INDEX = "index"; @@ -41,6 +46,35 @@ public class TemperatureConverter extends AppCompatActivity { //region Standard Methods + /** + * Gets the values of user's input and converts. + * <p> + * Only use if both groups have been checked and user has input a number to convert. + */ + private void Convert() + { + // Query to determine which radio buttons have been selected. Stores value as int. + int selectedInitialId = mInitialGroup.getCheckedRadioButtonId(); + int selectedConvertId = mConvertGroup.getCheckedRadioButtonId(); + + Conversion conversion = new Conversion(0, selectedInitialId, selectedConvertId); + + DisplayConversion(); + } + + private void DisplayConversion() + { + String conversion1String; + String conversion2String; + String fullConversionString = conversion1String + " = " + conversion2String; + mConversionTextView.setText(fullConversionString); + + String equation1String; + String equation2String; + String fullEquationString = equation1String + " = " + equation2String; + mEquationTextView.setText(fullEquationString); + } + //endregion @@ -74,14 +108,47 @@ public class TemperatureConverter extends AppCompatActivity { mConversionTextView = (TextView) findViewById(R.id.converstion_text_view); mEquationTextView = (TextView) findViewById(R.id.equation_text_view); + mInitialGroupChecked = false; + mConvertGroupChecked = false; - //Section which sets onClickListeners (watches for user action). + // Section which sets onClickListeners (watches for user action). + // OnClickListener for Initial Radio Button Group. + mInitialGroup.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view){ + // Checks to see if both groups have been checked. + if (mInitialGroupChecked && mConvertGroupChecked) { + Convert(); + } + else { + mInitialGroupChecked = true; + } + } + }); + + // OnClickListener for Convert To Radio Button Group. + mConvertGroup.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View view) { + if (mInitialGroupChecked && mConvertGroupChecked) { + Convert(); + } + else { + mConvertGroupChecked = true; + } + } + }); + + // OnClickListener for Convert Button. mConvertButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { - // Query to determine which radio buttons have been selected. Stores value as int. - int selectedInitialId = mInitialGroup.getCheckedRadioButtonId(); - int selectedConvertId = mConvertGroup.getCheckedRadioButtonId(); + if (mInitialGroupChecked && mConvertGroupChecked) { + Convert(); + } + else { + + } } }); diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index cdcc2144d7d4f63a9de5c4b8a78446eab4587146..44ad3620ae80ac686a4bc4c45e54cc4920533790 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -11,7 +11,7 @@ <string name="celsius_string">Celsius</string> <string name="fahrenheit_string">Fahrenheit</string> <string name="kelvin_string">Kelvin</string> - <string name="rankin_string">Rankin</string> + <string name="rankin_string">Rankine</string> <string name="convert_button_string">CONVERT</string> </resources>