Skip to content
Original file line number Diff line number Diff line change
Expand Up @@ -12,19 +12,19 @@
import android.widget.Toast;

import java.math.BigDecimal;

import java.lang.Math;
import javax.script.ScriptEngine;
import javax.script.ScriptEngineManager;

//this is sample commit to check git connectivity
public class MainActivity extends AppCompatActivity implements View.OnClickListener, View.OnTouchListener
{
private int openParenthesis = 0;

private boolean dotUsed = false;

private boolean equalClicked = false;
private String lastExpression = "";


private final static int EXCEPTION = -1;
private final static int IS_NUMBER = 0;
private final static int IS_OPERAND = 1;
Expand All @@ -42,8 +42,14 @@ public class MainActivity extends AppCompatActivity implements View.OnClickListe
Button buttonNumber7;
Button buttonNumber8;
Button buttonNumber9;

Button buttonClear;
Button buttonRoot;
Button buttonSquare;
Button buttonLog;
Button buttonBackspace;
Button buttonCube;
Button buttonLog10;
// To add more
Button buttonParentheses;
Button buttonPercent;
Button buttonDivision;
Expand Down Expand Up @@ -81,8 +87,14 @@ private void initializeViewVariables()
buttonNumber7 = (Button) findViewById(R.id.button_seven);
buttonNumber8 = (Button) findViewById(R.id.button_eight);
buttonNumber9 = (Button) findViewById(R.id.button_nine);

buttonClear = (Button) findViewById(R.id.button_clear);
buttonRoot = (Button) findViewById(R.id.button_root);
buttonSquare = (Button) findViewById(R.id.button_square);
buttonLog = (Button) findViewById(R.id.button_log);
buttonBackspace = (Button) findViewById(R.id.button_backspace);
buttonCube = (Button) findViewById(R.id.button_cube);
buttonLog10 = (Button) findViewById(R.id.button_log10);
// To add more
buttonParentheses = (Button) findViewById(R.id.button_parentheses);
buttonPercent = (Button) findViewById(R.id.button_percent);
buttonDivision = (Button) findViewById(R.id.button_division);
Expand All @@ -106,8 +118,15 @@ private void setOnClickListeners()
buttonNumber7.setOnClickListener(this);
buttonNumber8.setOnClickListener(this);
buttonNumber9.setOnClickListener(this);

buttonClear.setOnClickListener(this);

buttonRoot.setOnClickListener(this);
buttonSquare.setOnClickListener(this);
buttonLog.setOnClickListener(this);
buttonBackspace.setOnClickListener(this);
buttonCube.setOnClickListener(this);
buttonLog10.setOnClickListener(this);
//To add more
buttonParentheses.setOnClickListener(this);
buttonPercent.setOnClickListener(this);
buttonDivision.setOnClickListener(this);
Expand All @@ -120,6 +139,7 @@ private void setOnClickListeners()

private void setOnTouchListener()
{

buttonNumber0.setOnTouchListener(this);
buttonNumber1.setOnTouchListener(this);
buttonNumber2.setOnTouchListener(this);
Expand All @@ -130,8 +150,14 @@ private void setOnTouchListener()
buttonNumber7.setOnTouchListener(this);
buttonNumber8.setOnTouchListener(this);
buttonNumber9.setOnTouchListener(this);

buttonClear.setOnTouchListener(this);
buttonRoot.setOnTouchListener(this);
buttonSquare.setOnTouchListener(this);
buttonLog.setOnTouchListener(this);
buttonBackspace.setOnTouchListener(this);
buttonCube.setOnTouchListener(this);
buttonLog10.setOnTouchListener(this);
//To add more
buttonParentheses.setOnTouchListener(this);
buttonPercent.setOnTouchListener(this);
buttonDivision.setOnTouchListener(this);
Expand Down Expand Up @@ -206,7 +232,63 @@ public void onClick(View view)
case R.id.button_equal:
if (textViewInputNumbers.getText().toString() != null && !textViewInputNumbers.getText().toString().equals(""))
calculate(textViewInputNumbers.getText().toString());

break;
case R.id.button_root:
if (textViewInputNumbers.getText().toString() != null && !textViewInputNumbers.getText().toString().equals(""))
calculate(textViewInputNumbers.getText().toString());
String tmp = textViewInputNumbers.getText().toString();
Double d = Double.parseDouble(tmp);
d = Math.sqrt(d);
String str = d+"";
textViewInputNumbers.setText(str);
break;
case R.id.button_square:
if (textViewInputNumbers.getText().toString() != null && !textViewInputNumbers.getText().toString().equals(""))
calculate(textViewInputNumbers.getText().toString());
String tmp1 = textViewInputNumbers.getText().toString();
Double d1 = Double.parseDouble(tmp1);
d1 = d1*d1;
String str1 = d1+"";
textViewInputNumbers.setText(str1);
break;
case R.id.button_log:
if (textViewInputNumbers.getText().toString() != null && !textViewInputNumbers.getText().toString().equals(""))
calculate(textViewInputNumbers.getText().toString());
String tmp2 = textViewInputNumbers.getText().toString();
Double d2 = Double.parseDouble(tmp2);
d2 = Math.log(d2);
String str2 = d2+"";
textViewInputNumbers.setText(str2);
break;
case R.id.button_backspace:
if(textViewInputNumbers.getText().toString() == null)
Toast.makeText(getApplicationContext(), "Nothing to delete!", Toast.LENGTH_LONG).show();
else{
String s = tmp1 = textViewInputNumbers.getText().toString();
s = (s == null || s.length() == 0) ? null : (s.substring(0, s.length() - 1));
textViewInputNumbers.setText(s);
}
break;
case R.id.button_cube:
if (textViewInputNumbers.getText().toString() != null && !textViewInputNumbers.getText().toString().equals(""))
calculate(textViewInputNumbers.getText().toString());
String tmp3 = textViewInputNumbers.getText().toString();
Double d3 = Double.parseDouble(tmp3);
d3 = d3*d3*d3;
String str3 = d3+"";
textViewInputNumbers.setText(str3);
break;
case R.id.button_log10:
if (textViewInputNumbers.getText().toString() != null && !textViewInputNumbers.getText().toString().equals(""))
calculate(textViewInputNumbers.getText().toString());
String tmp4 = textViewInputNumbers.getText().toString();
Double d4 = Double.parseDouble(tmp4);
d4 = Math.log(d4)/Math.log(10);
String str4 = d4+"";
textViewInputNumbers.setText(str4);
break;
//To add more
}

}
Expand Down
92 changes: 91 additions & 1 deletion app/src/main/res/layout/activity_main.xml
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
android:layout_height="match_parent"
android:orientation="vertical"
android:layout_marginTop="0.5dp"
tools:context="projects.eloy.zone.androidtestproject.MainActivity">
tools:context=".MainActivity">


<LinearLayout
Expand All @@ -31,6 +31,96 @@
</LinearLayout>


<LinearLayout
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:orientation="horizontal">

<Button
android:id="@+id/button_root"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_marginTop="0.1dp"
android:layout_marginLeft="0.9dp"
android:layout_marginRight="0.1dp"
android:layout_weight="1"
android:background="@android:color/black"
android:text="@string/sqr_root"
android:textColor="@android:color/holo_red_light"
android:textSize="30sp" />

<Button
android:id="@+id/button_square"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_marginTop="0.1dp"
android:layout_marginRight="0.1dp"
android:layout_weight="1"
android:background="@android:color/black"
android:text="@string/square"
android:textColor="@android:color/holo_red_light"
android:textSize="30sp" />

<Button
android:id="@+id/button_backspace"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_marginTop="0.1dp"
android:layout_marginRight="0.1dp"
android:layout_weight="1"
android:background="@android:color/black"
android:text="@string/backspace"
android:textColor="@android:color/holo_red_light"
android:textSize="40sp" />

</LinearLayout>

<LinearLayout
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:orientation="horizontal">

<Button
android:id="@+id/button_cube"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_marginTop="0.1dp"
android:layout_marginLeft="0.9dp"
android:layout_marginRight="0.1dp"
android:layout_weight="1"
android:background="@android:color/black"
android:text="@string/cube"
android:textColor="@android:color/holo_red_light"
android:textSize="30sp" />

<Button
android:id="@+id/button_log"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_marginRight="0.1dp"
android:layout_marginTop="0.1dp"
android:layout_weight="1"
android:background="@android:color/black"
android:text="ln"
android:textColor="@android:color/holo_red_light"
android:textSize="30sp" />

<Button
android:id="@+id/button_log10"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_marginTop="0.1dp"
android:layout_marginRight="0.1dp"
android:layout_weight="1"
android:background="@android:color/black"
android:text="@string/log10"
android:textColor="@android:color/holo_red_light"
android:textSize="30sp" />

</LinearLayout>

<LinearLayout
android:layout_width="match_parent"
android:layout_height="0dp"
Expand Down
6 changes: 6 additions & 0 deletions app/src/main/res/values/strings.xml
Original file line number Diff line number Diff line change
@@ -1,3 +1,9 @@
<resources>
<string name="app_name">Simple Calculator</string>
<string name="sqr_root">√¯¯</string>
<string name="square">x<sup>2</sup></string>
<string name="log">ln</string>
<string name="backspace">\u232b</string>
<string name="cube">x<sup>3</sup></string>
<string name="log10">log</string>
</resources>