From fd0a0f061dc386cab2c0d43a724499ef8651d919 Mon Sep 17 00:00:00 2001 From: Vibhor Chinda Date: Tue, 8 Oct 2019 06:50:14 +0530 Subject: [PATCH 1/4] Added functionalities to operations --- .../com/exuberant/calci/HomeActivity.java | 35 ++++++++++++++++--- 1 file changed, 30 insertions(+), 5 deletions(-) diff --git a/app/src/main/java/com/exuberant/calci/HomeActivity.java b/app/src/main/java/com/exuberant/calci/HomeActivity.java index 82471e3..b676f16 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,25 @@ 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); + } updateDisplay(); } } From 12a27d6d27a9afdaa50f70b7fa798403fd45eadd Mon Sep 17 00:00:00 2001 From: Vibhor Chinda Date: Tue, 8 Oct 2019 07:00:39 +0530 Subject: [PATCH 2/4] Equal button Working --- app/src/main/java/com/exuberant/calci/HomeActivity.java | 1 + 1 file changed, 1 insertion(+) diff --git a/app/src/main/java/com/exuberant/calci/HomeActivity.java b/app/src/main/java/com/exuberant/calci/HomeActivity.java index b676f16..742c689 100644 --- a/app/src/main/java/com/exuberant/calci/HomeActivity.java +++ b/app/src/main/java/com/exuberant/calci/HomeActivity.java @@ -132,6 +132,7 @@ else if (operator == '/') { answer = mul(firstOperand, secondOperand); } + currentNumber = String.valueOf(answer); updateDisplay(); } } From 9d9bf4eece34d4ebaafa328ed2c83744238b1cde Mon Sep 17 00:00:00 2001 From: Vibhor Chinda Date: Wed, 9 Oct 2019 13:55:48 +0530 Subject: [PATCH 3/4] Fixed Issue 18 --- .../java/com/exuberant/calci/HomeActivity.java | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/com/exuberant/calci/HomeActivity.java b/app/src/main/java/com/exuberant/calci/HomeActivity.java index 742c689..b79299d 100644 --- a/app/src/main/java/com/exuberant/calci/HomeActivity.java +++ b/app/src/main/java/com/exuberant/calci/HomeActivity.java @@ -4,7 +4,11 @@ import android.os.Bundle; import android.view.View; import android.widget.TextView; +import android.widget.Toast; + import com.google.android.material.button.MaterialButton; +import com.google.android.material.snackbar.BaseTransientBottomBar; +import com.google.android.material.snackbar.Snackbar; public class HomeActivity extends AppCompatActivity implements View.OnClickListener { @@ -92,8 +96,15 @@ private void handleOperatorClick(String operator){ totalCalculation += currentNumber + operator; currentNumber = ""; } else { - totalCalculation = totalCalculation.substring(0, totalCalculation.length() - 1); - totalCalculation += operator; + if(totalCalculation.equals("") || totalCalculation.length() == 0) + { + Toast.makeText(getApplicationContext(), "Please enter operands first", Toast.LENGTH_SHORT) + .show(); + } + else { + totalCalculation = totalCalculation.substring(0, totalCalculation.length() - 1); + totalCalculation += operator; + } } } From 414f27d711d8ffa7c389c7dcd6c5a5d381acb95d Mon Sep 17 00:00:00 2001 From: Vibhor Chinda Date: Wed, 9 Oct 2019 14:08:43 +0530 Subject: [PATCH 4/4] Handled Orientation changes --- app/src/main/AndroidManifest.xml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 43dd1e0..409fd86 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -9,7 +9,9 @@ android:roundIcon="@mipmap/ic_launcher_round" android:supportsRtl="true" android:theme="@style/AppTheme"> - +