diff --git a/app/src/main/java/com/exuberant/calci/HomeActivity.java b/app/src/main/java/com/exuberant/calci/HomeActivity.java index 82471e3..742c689 100644 --- a/app/src/main/java/com/exuberant/calci/HomeActivity.java +++ b/app/src/main/java/com/exuberant/calci/HomeActivity.java @@ -1,23 +1,29 @@ package com.exuberant.calci; import androidx.appcompat.app.AppCompatActivity; - import android.os.Bundle; import android.view.View; import android.widget.TextView; -import android.widget.Toast; - import com.google.android.material.button.MaterialButton; public class HomeActivity extends AppCompatActivity implements View.OnClickListener { private String currentNumber = "", totalCalculation = ""; + private char operator ; + private double firstOperand; + private double secondOperand; private TextView totalCalculationTextView, currentAnswerTextView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_home); + + initializeViews(); + + } + + private void initializeViews() { findViewById(R.id.btn_zero).setOnClickListener(this); findViewById(R.id.btn_one).setOnClickListener(this); findViewById(R.id.btn_two).setOnClickListener(this); @@ -62,8 +68,11 @@ public void onClick(View view) { //Handle calculation case R.id.btn_equals: + firstOperand = Double.valueOf(totalCalculation.substring(0,totalCalculation.length()-1)); + secondOperand = Double.valueOf(currentNumber); + operator = totalCalculation.charAt(totalCalculation.length()-1); totalCalculation += currentNumber; - calculateAnswer(); + calculateAnswer(firstOperand, secondOperand, operator); break; //Handle other numerical button clicks @@ -104,9 +113,26 @@ private double div(double a, double b){ return a / b; } - private void calculateAnswer(){ + private void calculateAnswer(Double firstOperand, Double secondOperand, char operator){ //Use totalCalculation string to get final answer and display it double answer = 0.0; + if(operator == '+') + { + answer = add(firstOperand, secondOperand); + } + else if(operator == '-') + { + answer = sub(firstOperand, secondOperand); + } + else if (operator == '/') + { + answer = div(firstOperand, secondOperand); + } + else + { + answer = mul(firstOperand, secondOperand); + } + currentNumber = String.valueOf(answer); updateDisplay(); } }