Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- Inside build.gradle -> implementation
- implementation 'com.faendir.rhino:rhino-android:1.5.2'
- */
- package com.example.calculator;
- import androidx.appcompat.app.AppCompatActivity;
- import android.os.Bundle;
- import android.util.Log;
- import android.util.TypedValue;
- import android.view.View;
- import android.widget.Button;
- import android.widget.TextView;
- import org.mozilla.javascript.Context;
- import org.mozilla.javascript.Scriptable;
- public class MainActivity extends AppCompatActivity {
- Button btn0, btn1, btn2, btn3, btn4, btn5, btn6, btn7, btn8, btn9, btnAdd, btnSubtract, btnMultiply, btnDivision, btnMod, btnParenthesis, btnEqual, btnDot, btnClear, btnPecentage;
- TextView output, input;
- boolean startPar = false;
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_main);
- btn0 = findViewById(R.id.btn0);
- btn1 = findViewById(R.id.btn1);
- btn2 = findViewById(R.id.btn2);
- btn3 = findViewById(R.id.btn3);
- btn4 = findViewById(R.id.btn4);
- btn5 = findViewById(R.id.btn5);
- btn6 = findViewById(R.id.btn6);
- btn7 = findViewById(R.id.btn7);
- btn8 = findViewById(R.id.btn8);
- btn9 = findViewById(R.id.btn9);
- btnAdd = findViewById(R.id.btnAdd);
- btnSubtract = findViewById(R.id.btnSubtract);
- btnMultiply = findViewById(R.id.btnMultiply);
- btnDivision = findViewById(R.id.btnDivision);
- btnMod = findViewById(R.id.btnMod);
- btnDot = findViewById(R.id.btnDot);
- btnParenthesis = findViewById(R.id.btnParenthesis);
- btnPecentage = findViewById(R.id.btnPercentage);
- btnClear = findViewById(R.id.btnClear);
- btnEqual = findViewById(R.id.btnEqual);
- input = findViewById(R.id.input);
- output = findViewById(R.id.output);
- btnClear.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- input.setText("");
- output.setText("");
- startPar = false;
- input.setTextSize(TypedValue.COMPLEX_UNIT_SP, 60);
- }
- });
- btn0.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- String text = input.getText().toString();
- input.setText(text+"0");
- }
- });
- btn1.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- String text = input.getText().toString();
- input.setText(text+"1");
- }
- });
- btn2.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- String text = input.getText().toString();
- input.setText(text+"2");
- }
- });
- btn3.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- String text = input.getText().toString();
- input.setText(text+"3");
- }
- });
- btn4.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- String text = input.getText().toString();
- input.setText(text+"4");
- }
- });
- btn5.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- String text = input.getText().toString();
- input.setText(text+"5");
- }
- });
- btn6.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- String text = input.getText().toString();
- input.setText(text+"6");
- }
- });
- btn7.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- String text = input.getText().toString();
- input.setText(text+"7");
- }
- });
- btn8.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- String text = input.getText().toString();
- input.setText(text+"8");
- }
- });
- btn9.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- String text = input.getText().toString();
- input.setText(text+"9");
- }
- });
- btnAdd.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- String text = input.getText().toString();
- input.setText(text+"+");
- }
- });
- btnSubtract.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- String text = input.getText().toString();
- input.setText(text+"−");
- }
- });
- btnMultiply.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- String text = input.getText().toString();
- input.setText(text+"×");
- }
- });
- btnDivision.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- String text = input.getText().toString();
- input.setText(text+"÷");
- }
- });
- btnPecentage.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- String text = input.getText().toString();
- input.setText(text+"%");
- }
- });
- btnDot.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- String text = input.getText().toString();
- input.setText(text+".");
- }
- });
- btnMod.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- String text = input.getText().toString();
- input.setText(text+"Mod");
- }
- });
- btnParenthesis.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- String text = input.getText().toString();
- if (startPar)
- input.setText(text + ")");
- else
- input.setText(text+"(");
- startPar = !startPar;
- }
- });
- btnEqual.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- String text = input.getText().toString();
- if ("".equals(text)) {
- startPar = false;
- return;
- }
- output.setText(text);
- text = text.replaceAll("÷", "/");
- text = text.replaceAll("%", "/100");
- text = text.replaceAll("×", "*");
- text = text.replaceAll("−", "-");
- text = text.replaceAll("Mod", "%");
- org.mozilla.javascript.Context rhino = Context.enter();
- rhino.setOptimizationLevel(-1);
- String result = "";
- try {
- Scriptable scriptable = rhino.initStandardObjects();
- result = rhino.evaluateString(scriptable, text, "javascript", 1, null).toString();
- }
- catch (Exception e) {
- result = "0";
- }
- if (result.length() > 10) {
- input.setTextSize(TypedValue.COMPLEX_UNIT_SP, 37);
- }
- input.setText(result);
- startPar = false;
- }
- });
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement