From 8ccd3d750a6cb63805456628e6a4975c358edb05 Mon Sep 17 00:00:00 2001
From: Brandon Rodriguez <brodriguez8774@mail.kvcc.edu>
Date: Mon, 5 Oct 2015 18:17:08 -0400
Subject: [PATCH] Changes UI to actually display anything.

Furthers conversion logic.
---
 .../cis298/cis298assignment2/Conversion.java  |  38 ++--
 .../TemperatureConverter.java                 | 137 ++++++++++++--
 .../layout/activity_temperature_converter.xml | 178 +++++++++++-------
 app/src/main/res/values/strings.xml           |   6 +-
 4 files changed, 252 insertions(+), 107 deletions(-)

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 2fb0a96..632d60b 100644
--- a/app/src/main/java/edu/kvcc/cis298/cis298assignment2/Conversion.java
+++ b/app/src/main/java/edu/kvcc/cis298/cis298assignment2/Conversion.java
@@ -7,9 +7,9 @@ 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
+    private double initialValueDouble;        // Temperature user wants to convert.
+    private double convertedValueDouble;      // Temperature after conversion.
+    private double baseDouble;                // 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.
@@ -20,9 +20,9 @@ public class Conversion {
 
     //region Constructor
 
-    public Conversion(int initialValue, int initialGroup, int convertGroup)
+    public Conversion(double initialValue, int initialGroup, int convertGroup)
     {
-        setInitialValueInt(initialValueInt);
+        setInitialValueDouble(initialValueDouble);
         setInitialGroupInt(initialGroupInt);
         setConvertGroupInt(convertGroupInt);
 
@@ -35,16 +35,16 @@ public class Conversion {
 
     //region Properties
 
-    public int getInitialValueInt() {
-        return initialValueInt;
+    public double getInitialValueDouble() {
+        return initialValueDouble;
     }
 
-    public void setInitialValueInt(int initialValueInt) {
-        this.initialValueInt = initialValueInt;
+    public void setInitialValueDouble(double initialValueDouble) {
+        this.initialValueDouble = initialValueDouble;
     }
 
-    public int getConvertedValueInt() {
-        return convertedValueInt;
+    public double getConvertedValueDouble() {
+        return convertedValueDouble;
     }
 
     public int getInitialGroupInt() {
@@ -75,21 +75,21 @@ public class Conversion {
     private void CalculateBase() {
         // If initial is Celsius, set base equal to user input.
         if (initialGroupInt == 1) {
-            baseInt = initialValueInt;
+            baseDouble = initialValueDouble;
         }
         else {
             // If initial is Fahrenheit, convert to Celsius then set as base.
             if (initialGroupInt == 2) {
-                baseInt = ((initialValueInt - 32) * 5 / 9);
+                baseDouble = ((initialValueDouble - 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
+                    baseDouble = (initialValueDouble - 273.15);
                 }
                 // If initial is Rankin, convert to Celsius then set as base.
                 else {
-                    baseInt = ((initialValueInt - 491) * 5 / 9);  // Should be 491.67
+                    baseDouble = ((initialValueDouble - 491.67) * 5 / 9);
                 }
             }
         }
@@ -103,21 +103,21 @@ public class Conversion {
     {
         // If desired is Celsius, set convert equal to base.
         if (convertGroupInt == 1) {
-            convertedValueInt = baseInt;
+            convertedValueDouble = baseDouble;
         }
         else {
             // If desired is Fahrenheit, convert from base.
             if (convertGroupInt == 2) {
-                convertedValueInt = (baseInt * 9 / 5 + 32);
+                convertedValueDouble = (baseDouble * 9 / 5 + 32);
             }
             else {
                 // If desired is Kelvin, convert from base.
                 if (convertGroupInt == 3) {
-                    convertedValueInt = (baseInt + 273);     // Should be 273.15
+                    convertedValueDouble = (baseDouble + 273.15);
                 }
                 // If desired is Rankin, convert from base.
                 else {
-                    convertedValueInt = ((baseInt + 273) * 9 / 5);   // Should be 273.15
+                    convertedValueDouble = ((baseDouble + 273.15) * 9 / 5);
                 }
             }
         }
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 29c71b2..01150d7 100644
--- a/app/src/main/java/edu/kvcc/cis298/cis298assignment2/TemperatureConverter.java
+++ b/app/src/main/java/edu/kvcc/cis298/cis298assignment2/TemperatureConverter.java
@@ -7,9 +7,11 @@ import android.view.Menu;
 import android.view.MenuItem;
 import android.view.View;
 import android.widget.Button;
+import android.widget.EditText;
 import android.widget.RadioButton;
 import android.widget.RadioGroup;
 import android.widget.TextView;
+import android.widget.Toast;
 
 public class TemperatureConverter extends AppCompatActivity {
 
@@ -32,11 +34,19 @@ public class TemperatureConverter extends AppCompatActivity {
     private TextView mConversionTextView;
     private TextView mEquationTextView;
 
+    private EditText mUserInputEditText;
+
+    // Pointer for strings.xml.
+    private int messageResId;
+    private int mSelectedInitialId;
+    private int mSelectedConvertId;
+
     // Values to check if user input is present.
     private boolean mInitialGroupChecked;
     private boolean mConvertGroupChecked;
-    private boolean mInputTextPresent;
+    private boolean mConvertButtonIsClicked;
 
+    // Java's version of static constants.
     private static final String TAG = "TemperatureConverter";
     private static final String KEY_INDEX = "index";
 
@@ -54,24 +64,72 @@ public class TemperatureConverter extends AppCompatActivity {
     private void Convert()
     {
         // Query to determine which radio buttons have been selected. Stores value as int.
-        int selectedInitialId = mInitialGroup.getCheckedRadioButtonId();
-        int selectedConvertId = mConvertGroup.getCheckedRadioButtonId();
+        mSelectedInitialId = mInitialGroup.getCheckedRadioButtonId();
+        mSelectedConvertId = mConvertGroup.getCheckedRadioButtonId();
 
-        Conversion conversion = new Conversion(0, selectedInitialId, selectedConvertId);
+        Conversion conversion = new Conversion(0, mSelectedInitialId, mSelectedConvertId);
 
         DisplayConversion();
     }
 
     private void DisplayConversion()
     {
+        String initialDegree;
+        String convertDegree;
+        String initialEquation;
         String conversion1String;
         String conversion2String;
-        String fullConversionString = conversion1String + " = " + conversion2String;
-        mConversionTextView.setText(fullConversionString);
-
         String equation1String;
         String equation2String;
+
+        // Determines what types of strings should display.
+        if (mSelectedInitialId == mInitial1Radio.getId()) {
+            initialDegree = "C";
+            initialEquation = "[C]";
+        }
+        else {
+            if (mSelectedInitialId == mInitial2Radio.getId()) {
+                initialDegree = "F";
+                initialEquation = "[F]";
+            }
+            else {
+                if (mSelectedInitialId == mInitial3Radio.getId()) {
+                    initialDegree = "K";
+                    initialEquation = "[K]";
+                }
+                else {
+                    initialDegree = "R";
+                    initialEquation = "[R]";
+                }
+            }
+        }
+
+        if (mSelectedConvertId == mConvert1Radio.getId()) {
+            convertDegree = "C";
+        }
+        else {
+            if (mSelectedConvertId == mConvert2Radio.getId()) {
+                convertDegree = "F";
+            }
+            else {
+                if (mSelectedConvertId == mConvert3Radio.getId()) {
+                    convertDegree = "K";
+                }
+                else {
+                    convertDegree = "R";
+                }
+            }
+        }
+
+        conversion1String = initialDegree;
+        conversion2String = convertDegree;
+        equation1String = initialEquation;
+        equation2String = "";
+
+        String fullConversionString = conversion1String + " = " + conversion2String;
         String fullEquationString = equation1String + " = " + equation2String;
+
+        mConversionTextView.setText(fullConversionString);
         mEquationTextView.setText(fullEquationString);
     }
 
@@ -92,32 +150,48 @@ public class TemperatureConverter extends AppCompatActivity {
 
         // Assigns (casts) variable mConvertButton to an actual button in the xml file.
         mConvertButton = (Button) findViewById(R.id.convert_button);
-        // Assigns (casts) 'initial' radio group to an equivalent entities in the xml file.
+
+        // Assigns (casts) 'initial' radio group to equivalent entities in the xml file.
         mInitialGroup = (RadioGroup) findViewById(R.id.initial_value_group);
         mInitial1Radio = (RadioButton) findViewById(R.id.initial_1_radio);
         mInitial2Radio = (RadioButton) findViewById(R.id.initial_2_radio);
         mInitial3Radio = (RadioButton) findViewById(R.id.initial_3_radio);
         mInitial4Radio = (RadioButton) findViewById(R.id.initial_4_radio);
-        // Assigns (casts) 'convert to' radio group to an equivalent entities in the xml file.
+        // Assigns (casts) 'convert to' radio group to equivalent entities in the xml file.
         mConvertGroup = (RadioGroup) findViewById(R.id.convert_to_group);
         mConvert1Radio = (RadioButton) findViewById(R.id.convert_1_radio);
         mConvert2Radio = (RadioButton) findViewById(R.id.convert_2_radio);
         mConvert3Radio = (RadioButton) findViewById(R.id.convert_3_radio);
         mConvert4Radio = (RadioButton) findViewById(R.id.convert_4_radio);
-        // Assigns (casts) text views to an equivalent entities in the xml file.
+
+        // Assigns (casts) text views to equivalent entities in the xml file.
         mConversionTextView = (TextView) findViewById(R.id.converstion_text_view);
         mEquationTextView = (TextView) findViewById(R.id.equation_text_view);
 
+        // Assigns (casts) edit text to equivalent entities in the xml file.
+        mUserInputEditText = (EditText) findViewById(R.id.user_input_edit_text);
+
+        // Initial variables to store user inputs.
         mInitialGroupChecked = false;
         mConvertGroupChecked = false;
+        mConvertButtonIsClicked = false;
 
         // 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) {
+
+                // Debugging to figure out what values are actually given for checked buttons.
+                int selectedInitialId = mInitialGroup.getCheckedRadioButtonId();
+                int selectedConvertId = mConvertGroup.getCheckedRadioButtonId();
+                Log.d(TAG, "Initial Checked ID: " + selectedInitialId);
+                Log.d(TAG, "Convert Checked ID: " + selectedConvertId);
+
+                // Checks to see if both groups have been checked, if convert button has been
+                // clicked at least once, and user has input a number.
+                if (mInitialGroupChecked && mConvertGroupChecked && mUserInputEditText.length() > 0) {
+                    double userInput = Double.parseDouble(mUserInputEditText.toString());
                     Convert();
                 }
                 else {
@@ -130,7 +204,19 @@ public class TemperatureConverter extends AppCompatActivity {
         mConvertGroup.setOnClickListener(new View.OnClickListener() {
             @Override
             public void onClick(View view) {
-                if (mInitialGroupChecked && mConvertGroupChecked) {
+
+                // Debugging to figure out what values are actually given for checked buttons.
+                int selectedInitialId = mInitialGroup.getCheckedRadioButtonId();
+                int selectedConvertId = mConvertGroup.getCheckedRadioButtonId();
+                Log.d(TAG, "Initial Checked ID: " + selectedInitialId);
+                Log.d(TAG, "Convert Checked ID: " + selectedConvertId);
+
+
+                // Checks to see if both groups have been checked, if convert button has been
+                // clicked at least once, and user has input a number.
+                if (mInitialGroupChecked && mConvertGroupChecked && mConvertButtonIsClicked
+                        && mUserInputEditText.length() > 0) {
+                    double userInput = Double.parseDouble(mUserInputEditText.toString());
                     Convert();
                 }
                 else {
@@ -143,11 +229,30 @@ public class TemperatureConverter extends AppCompatActivity {
         mConvertButton.setOnClickListener(new View.OnClickListener() {
             @Override
             public void onClick(View view) {
-                if (mInitialGroupChecked && mConvertGroupChecked) {
-                    Convert();
+
+                // Debugging to figure out what values are actually given for checked buttons.
+                int selectedInitialId = mInitialGroup.getCheckedRadioButtonId();
+                int selectedConvertId = mConvertGroup.getCheckedRadioButtonId();
+                Log.d(TAG, "Initial Checked ID: " + selectedInitialId);
+                Log.d(TAG, "Convert Checked ID: " + selectedConvertId);
+
+                // Checks to see if user has input a number.
+                if (mUserInputEditText.length() > 0) {
+
+                    // Checks to see if both groups have been checked.
+                    if (mInitialGroupChecked && mConvertGroupChecked) {
+                        double userInput = Double.parseDouble(mUserInputEditText.toString());
+                        mConvertButtonIsClicked = true;
+                        Convert();
+                    }
+                    else {
+                        messageResId = R.string.convert_error_2_toast;
+                        Toast.makeText(TemperatureConverter.this, messageResId, Toast.LENGTH_SHORT);
+                    }
                 }
                 else {
-
+                    messageResId = R.string.convert_error_1_toast;
+                    Toast.makeText(TemperatureConverter.this, messageResId, Toast.LENGTH_SHORT);
                 }
             }
         });
diff --git a/app/src/main/res/layout/activity_temperature_converter.xml b/app/src/main/res/layout/activity_temperature_converter.xml
index a82240b..a6c1bae 100644
--- a/app/src/main/res/layout/activity_temperature_converter.xml
+++ b/app/src/main/res/layout/activity_temperature_converter.xml
@@ -2,109 +2,145 @@
 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
     android:layout_width="match_parent"
     android:layout_height="match_parent"
-    android:gravity="center"
+    android:gravity="start"
+    android:padding="20dp"
     android:orientation="vertical" >
 
-    <LinearLayout
+    <TextView
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
-        android:orientation="horizontal" >
+        android:gravity="top"
+        android:text="@string/convert_string" />
+
+    <EditText
+        android:id="@+id/user_input_edit_text"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content" />
+
+    <LinearLayout
+        android:layout_width="match_parent"
+        android:layout_height="match_parent"
+        android:gravity="center"
+        android:orientation="vertical" >
 
         <LinearLayout
-            android:layout_width="wrap_content"
+            android:layout_width="match_parent"
             android:layout_height="wrap_content"
-            android:layout_gravity=""
-            android:orientation="vertical" >
+            android:gravity="center"
+            android:paddingTop="10dp"
+            android:paddingBottom="10dp"
+            android:orientation="horizontal" >
 
-            <TextView
-                android:layout_width="wrap_content"
-                android:layout_height="wrap_content"
-                android:text="@string/from_string"/>
 
-            <RadioGroup
-                android:id="@+id/initial_value_group"
+            <LinearLayout
                 android:layout_width="wrap_content"
-                android:layout_height="wrap_content" >
+                android:layout_height="wrap_content"
+                android:layout_gravity="start"
+                android:paddingRight="30dp"
+                android:orientation="vertical" >
 
-                <RadioButton
-                    android:id="@+id/initial_1_radio"
+                <TextView
                     android:layout_width="wrap_content"
-                    android:layout_height="wrap_content" />
+                    android:layout_height="wrap_content"
+                    android:text="@string/from_string"/>
 
-                <RadioButton
-                    android:id="@+id/initial_2_radio"
+                <RadioGroup
+                    android:id="@+id/initial_value_group"
                     android:layout_width="wrap_content"
-                    android:layout_height="wrap_content" />
+                    android:layout_height="wrap_content" >
 
-                <RadioButton
-                    android:id="@+id/initial_3_radio"
-                    android:layout_width="wrap_content"
-                    android:layout_height="wrap_content" />
+                    <RadioButton
+                        android:id="@+id/initial_1_radio"
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:text="@string/celsius_string" />
 
-                <RadioButton
-                    android:id="@+id/initial_4_radio"
-                    android:layout_width="wrap_content"
-                    android:layout_height="wrap_content" />
+                    <RadioButton
+                        android:id="@+id/initial_2_radio"
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:text="@string/fahrenheit_string" />
 
-            </RadioGroup>
+                    <RadioButton
+                        android:id="@+id/initial_3_radio"
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:text="@string/kelvin_string" />
 
-        </LinearLayout>
+                    <RadioButton
+                        android:id="@+id/initial_4_radio"
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:text="@string/rankine_string" />
 
-        <LinearLayout
-            android:layout_width="wrap_content"
-            android:layout_height="wrap_content"
-            android:layout_gravity=""
-            android:orientation="vertical">
+                </RadioGroup>
 
-            <TextView
-                android:layout_width="wrap_content"
-                android:layout_height="wrap_content"
-                android:text="@string/to_string"/>
+            </LinearLayout>
 
-            <RadioGroup
-                android:id="@+id/convert_to_group"
+            <LinearLayout
                 android:layout_width="wrap_content"
-                android:layout_height="wrap_content">
+                android:layout_height="wrap_content"
+                android:layout_gravity="end"
+                android:paddingLeft="30dp"
+                android:orientation="vertical">
 
-                <RadioButton
-                    android:id="@+id/convert_1_radio"
+                <TextView
                     android:layout_width="wrap_content"
-                    android:layout_height="wrap_content" />
+                    android:layout_height="wrap_content"
+                    android:text="@string/to_string"/>
 
-                <RadioButton
-                    android:id="@+id/convert_2_radio"
+                <RadioGroup
+                    android:id="@+id/convert_to_group"
                     android:layout_width="wrap_content"
-                    android:layout_height="wrap_content" />
+                    android:layout_height="wrap_content">
+
+                    <RadioButton
+                        android:id="@+id/convert_1_radio"
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:text="@string/celsius_string" />
+
+                    <RadioButton
+                        android:id="@+id/convert_2_radio"
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:text="@string/fahrenheit_string" />
+
+                    <RadioButton
+                        android:id="@+id/convert_3_radio"
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:text="@string/kelvin_string" />
+
+                    <RadioButton
+                        android:id="@+id/convert_4_radio"
+                        android:layout_width="wrap_content"
+                        android:layout_height="wrap_content"
+                        android:text="@string/rankine_string" />
+                </RadioGroup>
+
+            </LinearLayout>
 
-                <RadioButton
-                    android:id="@+id/convert_3_radio"
-                    android:layout_width="wrap_content"
-                    android:layout_height="wrap_content" />
+        </LinearLayout>
 
-                <RadioButton
-                    android:id="@+id/convert_4_radio"
-                    android:layout_width="wrap_content"
-                    android:layout_height="wrap_content" />
-            </RadioGroup>
+        <Button
+            android:id="@+id/convert_button"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:text="@string/convert_button_string"/>
 
-        </LinearLayout>
+        <TextView
+            android:id="@+id/converstion_text_view"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content" />
 
-    </LinearLayout>
+        <TextView
+            android:id="@+id/equation_text_view"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content" />
 
-    <Button
-        android:id="@+id/convert_button"
-        android:layout_width="wrap_content"
-        android:layout_height="wrap_content"
-        android:text="@string/convert_button_string"/>
+    </LinearLayout>
 
-    <TextView
-        android:id="@+id/converstion_text_view"
-        android:layout_width="wrap_content"
-        android:layout_height="wrap_content" />
 
-    <TextView
-        android:id="@+id/equation_text_view"
-        android:layout_width="wrap_content"
-        android:layout_height="wrap_content" />
 
 </LinearLayout>
\ No newline at end of file
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 44ad362..189aae4 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -11,7 +11,11 @@
     <string name="celsius_string">Celsius</string>
     <string name="fahrenheit_string">Fahrenheit</string>
     <string name="kelvin_string">Kelvin</string>
-    <string name="rankin_string">Rankine</string>
+    <string name="rankine_string">Rankine</string>
     <string name="convert_button_string">CONVERT</string>
 
+    <!--Toasts-->
+    <string name="convert_error_1_toast">Please input a number to convert!</string>
+    <string name="convert_error_2_toast">Please select a temperature type!</string>
+
 </resources>
-- 
GitLab