From 11e622ad23441826b11392d8150c8f1d61408b31 Mon Sep 17 00:00:00 2001 From: Pooja Pasawala Date: Thu, 21 May 2015 16:30:06 -0400 Subject: [PATCH] Add our final project - scientific calculator app. --- .gitignore | 6 + ScientificCalculator/.idea/.name | 1 + ScientificCalculator/.idea/compiler.xml | 23 + .../.idea/copyright/profiles_settings.xml | 3 + ScientificCalculator/.idea/encodings.xml | 5 + ScientificCalculator/.idea/gradle.xml | 18 + .../.idea/libraries/appcompat_v7_22_1_1.xml | 15 + .../.idea/libraries/arity_2_1_7.xml | 9 + .../.idea/libraries/javaluator_3_0_0.xml | 11 + .../libraries/support_annotations_22_1_1.xml | 11 + .../.idea/libraries/support_v4_22_1_1.xml | 13 + ScientificCalculator/.idea/misc.xml | 114 + ScientificCalculator/.idea/modules.xml | 10 + .../.idea/scopes/scope_settings.xml | 5 + ScientificCalculator/.idea/vcs.xml | 7 + ScientificCalculator/.idea/workspace.xml | 2138 +++++++++++++++++ ScientificCalculator/README.md | 1 + ScientificCalculator/ScientificCalculator.iml | 19 + .../ScientificCalculatorApp.iml | 19 + ScientificCalculator/app/.gitignore | 1 + ScientificCalculator/app/app.iml | 95 + ScientificCalculator/app/build.gradle | 26 + ScientificCalculator/app/libs/arity-2.1.7.jar | Bin 0 -> 63508 bytes ScientificCalculator/app/proguard-rules.pro | 17 + .../scientificcalculator/ApplicationTest.java | 13 + .../app/src/main/AndroidManifest.xml | 21 + .../app/src/main/ic_cal_launcher-web.png | Bin 0 -> 11980 bytes .../nyc/scientificcalculator/ArityParser.java | 22 + .../JavaluatorParser.java | 21 + .../scientificcalculator/MainActivity.java | 351 +++ .../c4q/nyc/scientificcalculator/Parser.java | 11 + .../res/drawable/my_border_extra_buttons.xml | 15 + .../main/res/drawable/my_border_operators.xml | 14 + .../drawable/my_border_special_buttons.xml | 14 + .../src/main/res/drawable/my_border_text.xml | 19 + .../app/src/main/res/drawable/my_shape.xml | 19 + .../main/res/layout-land/activity_main.xml | 428 ++++ .../app/src/main/res/layout/activity_main.xml | 303 +++ .../app/src/main/res/menu/menu_main.xml | 7 + .../main/res/mipmap-hdpi/ic_cal_launcher.png | Bin 0 -> 1219 bytes .../src/main/res/mipmap-hdpi/ic_launcher.png | Bin 0 -> 3418 bytes .../main/res/mipmap-mdpi/ic_cal_launcher.png | Bin 0 -> 756 bytes .../src/main/res/mipmap-mdpi/ic_launcher.png | Bin 0 -> 2206 bytes .../main/res/mipmap-xhdpi/ic_cal_launcher.png | Bin 0 -> 1544 bytes .../src/main/res/mipmap-xhdpi/ic_launcher.png | Bin 0 -> 4842 bytes .../res/mipmap-xxhdpi/ic_cal_launcher.png | Bin 0 -> 2860 bytes .../main/res/mipmap-xxhdpi/ic_launcher.png | Bin 0 -> 7718 bytes .../res/mipmap-xxxhdpi/ic_cal_launcher.png | Bin 0 -> 4235 bytes .../app/src/main/res/values-w820dp/dimens.xml | 6 + .../app/src/main/res/values/dimens.xml | 5 + .../app/src/main/res/values/strings.xml | 41 + .../app/src/main/res/values/styles.xml | 8 + ScientificCalculator/build.gradle | 19 + .../build/intermediates/dex-cache/cache.xml | 47 + .../build/intermediates/model_data.bin | Bin 0 -> 88150 bytes ScientificCalculator/gradle.properties | 18 + .../gradle/wrapper/gradle-wrapper.jar | Bin 0 -> 49896 bytes .../gradle/wrapper/gradle-wrapper.properties | 6 + ScientificCalculator/gradlew | 164 ++ ScientificCalculator/gradlew.bat | 90 + ScientificCalculator/local.properties | 10 + ScientificCalculator/settings.gradle | 1 + 62 files changed, 4240 insertions(+) create mode 100644 .gitignore create mode 100644 ScientificCalculator/.idea/.name create mode 100644 ScientificCalculator/.idea/compiler.xml create mode 100644 ScientificCalculator/.idea/copyright/profiles_settings.xml create mode 100644 ScientificCalculator/.idea/encodings.xml create mode 100644 ScientificCalculator/.idea/gradle.xml create mode 100644 ScientificCalculator/.idea/libraries/appcompat_v7_22_1_1.xml create mode 100644 ScientificCalculator/.idea/libraries/arity_2_1_7.xml create mode 100644 ScientificCalculator/.idea/libraries/javaluator_3_0_0.xml create mode 100644 ScientificCalculator/.idea/libraries/support_annotations_22_1_1.xml create mode 100644 ScientificCalculator/.idea/libraries/support_v4_22_1_1.xml create mode 100644 ScientificCalculator/.idea/misc.xml create mode 100644 ScientificCalculator/.idea/modules.xml create mode 100644 ScientificCalculator/.idea/scopes/scope_settings.xml create mode 100644 ScientificCalculator/.idea/vcs.xml create mode 100644 ScientificCalculator/.idea/workspace.xml create mode 100644 ScientificCalculator/README.md create mode 100644 ScientificCalculator/ScientificCalculator.iml create mode 100644 ScientificCalculator/ScientificCalculatorApp.iml create mode 100644 ScientificCalculator/app/.gitignore create mode 100644 ScientificCalculator/app/app.iml create mode 100644 ScientificCalculator/app/build.gradle create mode 100755 ScientificCalculator/app/libs/arity-2.1.7.jar create mode 100644 ScientificCalculator/app/proguard-rules.pro create mode 100644 ScientificCalculator/app/src/androidTest/java/app/poojawins/c4q/nyc/scientificcalculator/ApplicationTest.java create mode 100644 ScientificCalculator/app/src/main/AndroidManifest.xml create mode 100644 ScientificCalculator/app/src/main/ic_cal_launcher-web.png create mode 100644 ScientificCalculator/app/src/main/java/app/poojawins/c4q/nyc/scientificcalculator/ArityParser.java create mode 100644 ScientificCalculator/app/src/main/java/app/poojawins/c4q/nyc/scientificcalculator/JavaluatorParser.java create mode 100644 ScientificCalculator/app/src/main/java/app/poojawins/c4q/nyc/scientificcalculator/MainActivity.java create mode 100644 ScientificCalculator/app/src/main/java/app/poojawins/c4q/nyc/scientificcalculator/Parser.java create mode 100644 ScientificCalculator/app/src/main/res/drawable/my_border_extra_buttons.xml create mode 100644 ScientificCalculator/app/src/main/res/drawable/my_border_operators.xml create mode 100644 ScientificCalculator/app/src/main/res/drawable/my_border_special_buttons.xml create mode 100644 ScientificCalculator/app/src/main/res/drawable/my_border_text.xml create mode 100644 ScientificCalculator/app/src/main/res/drawable/my_shape.xml create mode 100644 ScientificCalculator/app/src/main/res/layout-land/activity_main.xml create mode 100644 ScientificCalculator/app/src/main/res/layout/activity_main.xml create mode 100644 ScientificCalculator/app/src/main/res/menu/menu_main.xml create mode 100644 ScientificCalculator/app/src/main/res/mipmap-hdpi/ic_cal_launcher.png create mode 100644 ScientificCalculator/app/src/main/res/mipmap-hdpi/ic_launcher.png create mode 100644 ScientificCalculator/app/src/main/res/mipmap-mdpi/ic_cal_launcher.png create mode 100644 ScientificCalculator/app/src/main/res/mipmap-mdpi/ic_launcher.png create mode 100644 ScientificCalculator/app/src/main/res/mipmap-xhdpi/ic_cal_launcher.png create mode 100644 ScientificCalculator/app/src/main/res/mipmap-xhdpi/ic_launcher.png create mode 100644 ScientificCalculator/app/src/main/res/mipmap-xxhdpi/ic_cal_launcher.png create mode 100644 ScientificCalculator/app/src/main/res/mipmap-xxhdpi/ic_launcher.png create mode 100644 ScientificCalculator/app/src/main/res/mipmap-xxxhdpi/ic_cal_launcher.png create mode 100644 ScientificCalculator/app/src/main/res/values-w820dp/dimens.xml create mode 100644 ScientificCalculator/app/src/main/res/values/dimens.xml create mode 100644 ScientificCalculator/app/src/main/res/values/strings.xml create mode 100644 ScientificCalculator/app/src/main/res/values/styles.xml create mode 100644 ScientificCalculator/build.gradle create mode 100644 ScientificCalculator/build/intermediates/dex-cache/cache.xml create mode 100644 ScientificCalculator/build/intermediates/model_data.bin create mode 100644 ScientificCalculator/gradle.properties create mode 100644 ScientificCalculator/gradle/wrapper/gradle-wrapper.jar create mode 100644 ScientificCalculator/gradle/wrapper/gradle-wrapper.properties create mode 100755 ScientificCalculator/gradlew create mode 100644 ScientificCalculator/gradlew.bat create mode 100644 ScientificCalculator/local.properties create mode 100644 ScientificCalculator/settings.gradle diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..a881469 --- /dev/null +++ b/.gitignore @@ -0,0 +1,6 @@ +.gradle +/local.properties +/.idea +.DS_Store +/build +/captures diff --git a/ScientificCalculator/.idea/.name b/ScientificCalculator/.idea/.name new file mode 100644 index 0000000..883c721 --- /dev/null +++ b/ScientificCalculator/.idea/.name @@ -0,0 +1 @@ +ScientificCalculator \ No newline at end of file diff --git a/ScientificCalculator/.idea/compiler.xml b/ScientificCalculator/.idea/compiler.xml new file mode 100644 index 0000000..217af47 --- /dev/null +++ b/ScientificCalculator/.idea/compiler.xml @@ -0,0 +1,23 @@ + + + + + + diff --git a/ScientificCalculator/.idea/copyright/profiles_settings.xml b/ScientificCalculator/.idea/copyright/profiles_settings.xml new file mode 100644 index 0000000..e7bedf3 --- /dev/null +++ b/ScientificCalculator/.idea/copyright/profiles_settings.xml @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/ScientificCalculator/.idea/encodings.xml b/ScientificCalculator/.idea/encodings.xml new file mode 100644 index 0000000..e206d70 --- /dev/null +++ b/ScientificCalculator/.idea/encodings.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/ScientificCalculator/.idea/gradle.xml b/ScientificCalculator/.idea/gradle.xml new file mode 100644 index 0000000..736c7b5 --- /dev/null +++ b/ScientificCalculator/.idea/gradle.xml @@ -0,0 +1,18 @@ + + + + + + + diff --git a/ScientificCalculator/.idea/libraries/appcompat_v7_22_1_1.xml b/ScientificCalculator/.idea/libraries/appcompat_v7_22_1_1.xml new file mode 100644 index 0000000..5c93ee4 --- /dev/null +++ b/ScientificCalculator/.idea/libraries/appcompat_v7_22_1_1.xml @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/ScientificCalculator/.idea/libraries/arity_2_1_7.xml b/ScientificCalculator/.idea/libraries/arity_2_1_7.xml new file mode 100644 index 0000000..df817a3 --- /dev/null +++ b/ScientificCalculator/.idea/libraries/arity_2_1_7.xml @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/ScientificCalculator/.idea/libraries/javaluator_3_0_0.xml b/ScientificCalculator/.idea/libraries/javaluator_3_0_0.xml new file mode 100644 index 0000000..ffa12cd --- /dev/null +++ b/ScientificCalculator/.idea/libraries/javaluator_3_0_0.xml @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/ScientificCalculator/.idea/libraries/support_annotations_22_1_1.xml b/ScientificCalculator/.idea/libraries/support_annotations_22_1_1.xml new file mode 100644 index 0000000..ef92029 --- /dev/null +++ b/ScientificCalculator/.idea/libraries/support_annotations_22_1_1.xml @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/ScientificCalculator/.idea/libraries/support_v4_22_1_1.xml b/ScientificCalculator/.idea/libraries/support_v4_22_1_1.xml new file mode 100644 index 0000000..8532152 --- /dev/null +++ b/ScientificCalculator/.idea/libraries/support_v4_22_1_1.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/ScientificCalculator/.idea/misc.xml b/ScientificCalculator/.idea/misc.xml new file mode 100644 index 0000000..2991b9f --- /dev/null +++ b/ScientificCalculator/.idea/misc.xml @@ -0,0 +1,114 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + localhost + 5050 + + + + diff --git a/ScientificCalculator/.idea/modules.xml b/ScientificCalculator/.idea/modules.xml new file mode 100644 index 0000000..e35acaf --- /dev/null +++ b/ScientificCalculator/.idea/modules.xml @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/ScientificCalculator/.idea/scopes/scope_settings.xml b/ScientificCalculator/.idea/scopes/scope_settings.xml new file mode 100644 index 0000000..922003b --- /dev/null +++ b/ScientificCalculator/.idea/scopes/scope_settings.xml @@ -0,0 +1,5 @@ + + + + \ No newline at end of file diff --git a/ScientificCalculator/.idea/vcs.xml b/ScientificCalculator/.idea/vcs.xml new file mode 100644 index 0000000..275077f --- /dev/null +++ b/ScientificCalculator/.idea/vcs.xml @@ -0,0 +1,7 @@ + + + + + + + diff --git a/ScientificCalculator/.idea/workspace.xml b/ScientificCalculator/.idea/workspace.xml new file mode 100644 index 0000000..aaa6c71 --- /dev/null +++ b/ScientificCalculator/.idea/workspace.xml @@ -0,0 +1,2138 @@ + + + + + + + + + + + + android-19 + + + + + + @style/AppTheme + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + localhost + 5050 + + + + + + + + + + 1430870077108 + 1430870077108 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/ScientificCalculator/README.md b/ScientificCalculator/README.md new file mode 100644 index 0000000..66a5cd2 --- /dev/null +++ b/ScientificCalculator/README.md @@ -0,0 +1 @@ +Scientific Calculator App diff --git a/ScientificCalculator/ScientificCalculator.iml b/ScientificCalculator/ScientificCalculator.iml new file mode 100644 index 0000000..0bb6048 --- /dev/null +++ b/ScientificCalculator/ScientificCalculator.iml @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + diff --git a/ScientificCalculator/ScientificCalculatorApp.iml b/ScientificCalculator/ScientificCalculatorApp.iml new file mode 100644 index 0000000..0bb6048 --- /dev/null +++ b/ScientificCalculator/ScientificCalculatorApp.iml @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + diff --git a/ScientificCalculator/app/.gitignore b/ScientificCalculator/app/.gitignore new file mode 100644 index 0000000..796b96d --- /dev/null +++ b/ScientificCalculator/app/.gitignore @@ -0,0 +1 @@ +/build diff --git a/ScientificCalculator/app/app.iml b/ScientificCalculator/app/app.iml new file mode 100644 index 0000000..bf6dbdc --- /dev/null +++ b/ScientificCalculator/app/app.iml @@ -0,0 +1,95 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/ScientificCalculator/app/build.gradle b/ScientificCalculator/app/build.gradle new file mode 100644 index 0000000..9fcb35e --- /dev/null +++ b/ScientificCalculator/app/build.gradle @@ -0,0 +1,26 @@ +apply plugin: 'com.android.application' + +android { + compileSdkVersion 22 + buildToolsVersion "22.0.1" + + defaultConfig { + applicationId "app.poojawins.c4q.nyc.scientificcalculator" + minSdkVersion 16 + targetSdkVersion 22 + versionCode 1 + versionName "1.0" + } + buildTypes { + release { + minifyEnabled false + proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' + } + } +} + +dependencies { + compile fileTree(dir: 'libs', include: ['*.jar']) + compile 'com.android.support:appcompat-v7:22.1.1' + compile 'com.fathzer:javaluator:3.0.0' +} diff --git a/ScientificCalculator/app/libs/arity-2.1.7.jar b/ScientificCalculator/app/libs/arity-2.1.7.jar new file mode 100755 index 0000000000000000000000000000000000000000..aecda2eb9b8978f04702bb2c3537163a31223b50 GIT binary patch literal 63508 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

8TU5O@Rg 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 M;On!k&p$u?AC|0UeETesting Fundamentals + */ +public class ApplicationTest extends ApplicationTestCase { + public ApplicationTest() { + super(Application.class); + } +} \ No newline at end of file diff --git a/ScientificCalculator/app/src/main/AndroidManifest.xml b/ScientificCalculator/app/src/main/AndroidManifest.xml new file mode 100644 index 0000000..fa21d97 --- /dev/null +++ b/ScientificCalculator/app/src/main/AndroidManifest.xml @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + diff --git a/ScientificCalculator/app/src/main/ic_cal_launcher-web.png b/ScientificCalculator/app/src/main/ic_cal_launcher-web.png new file mode 100644 index 0000000000000000000000000000000000000000..57544fdffa3b29434c66b024d3961bc68a0de502 GIT binary patch literal 11980 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 literal 0 HcmV?d00001 diff --git a/ScientificCalculator/app/src/main/java/app/poojawins/c4q/nyc/scientificcalculator/ArityParser.java b/ScientificCalculator/app/src/main/java/app/poojawins/c4q/nyc/scientificcalculator/ArityParser.java new file mode 100644 index 0000000..56938d0 --- /dev/null +++ b/ScientificCalculator/app/src/main/java/app/poojawins/c4q/nyc/scientificcalculator/ArityParser.java @@ -0,0 +1,22 @@ +package app.poojawins.c4q.nyc.scientificcalculator; + +/** + * Created by pooja on 5/21/15. + */ + +import org.javia.arity.Symbols; +import org.javia.arity.SyntaxException; + +public class ArityParser implements Parser{ + + public String parse(String expression) { + try { + Symbols symbols = new Symbols(); + double result = symbols.eval(expression); + return "" + result; + } catch (SyntaxException ex) { + return "ERROR: " + ex.getMessage(); + } + } + +} diff --git a/ScientificCalculator/app/src/main/java/app/poojawins/c4q/nyc/scientificcalculator/JavaluatorParser.java b/ScientificCalculator/app/src/main/java/app/poojawins/c4q/nyc/scientificcalculator/JavaluatorParser.java new file mode 100644 index 0000000..0e10497 --- /dev/null +++ b/ScientificCalculator/app/src/main/java/app/poojawins/c4q/nyc/scientificcalculator/JavaluatorParser.java @@ -0,0 +1,21 @@ +package app.poojawins.c4q.nyc.scientificcalculator; + +/** + * Created by pooja on 5/21/15. + */ + +import com.fathzer.soft.javaluator.DoubleEvaluator; + +public class JavaluatorParser implements Parser { + + public String parse(String expression){ + try { + DoubleEvaluator evaluator = new DoubleEvaluator(); + Double result = evaluator.evaluate(expression); + return "" + result; + } catch (Exception ex) { + return "ERROR"; + } + } + +} diff --git a/ScientificCalculator/app/src/main/java/app/poojawins/c4q/nyc/scientificcalculator/MainActivity.java b/ScientificCalculator/app/src/main/java/app/poojawins/c4q/nyc/scientificcalculator/MainActivity.java new file mode 100644 index 0000000..68c18d8 --- /dev/null +++ b/ScientificCalculator/app/src/main/java/app/poojawins/c4q/nyc/scientificcalculator/MainActivity.java @@ -0,0 +1,351 @@ +package app.poojawins.c4q.nyc.scientificcalculator; + +import android.support.v7.app.ActionBarActivity; +import android.os.Bundle; +import android.view.Menu; +import android.view.MenuItem; +import android.widget.TextView; +import android.widget.Button; +import java.util.ArrayList; +import android.view.View; + + +public class MainActivity extends ActionBarActivity { + public String lastAnswer = ""; + public boolean justEvaluated = false; + + TextView displayText; + + Button acButton; + Button equalButton; + + Button percentButton; + Button factorialButton; + Button decimalButton; + + Button plusButton; + Button subtractButton; + Button multiplyButton; + Button divideButton; + + Button number9Button; + Button number8Button; + Button number7Button; + Button number6Button; + Button number5Button; + Button number4Button; + Button number3Button; + Button number2Button; + Button number1Button; + Button number0Button; + + // scientific calculator specific buttons + Button backspaceButton; + Button radButton; + Button degButton; + Button squareRootButton; + Button xyButton; // (x^y) + Button expButton; + Button lnButton; + Button eButton; + Button logButton; + Button reciprocalButton; + Button piButton; + Button sineButton; + Button cosineButton; + Button tangentButton; + Button openParenthesisButton; + Button closeParenthesisButton; + Button answerButton; + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_main); + + displayText = (TextView) findViewById(R.id.displayText); + + acButton = (Button) findViewById(R.id.acButton); + equalButton = (Button) findViewById(R.id.equalButton); + + percentButton = (Button) findViewById(R.id.percentButton); + factorialButton = (Button) findViewById(R.id.factorialButton); + decimalButton = (Button) findViewById(R.id.decimalButton); + + plusButton = (Button) findViewById(R.id.plusButton); + subtractButton = (Button) findViewById(R.id.subtractButton); + multiplyButton = (Button) findViewById(R.id.multiplyButton); + divideButton = (Button) findViewById(R.id.divideButton); + + number9Button = (Button) findViewById(R.id.number9Button); + number8Button = (Button) findViewById(R.id.number8Button); + number7Button = (Button) findViewById(R.id.number7Button); + number6Button = (Button) findViewById(R.id.number6Button); + number5Button = (Button) findViewById(R.id.number5Button); + number4Button = (Button) findViewById(R.id.number4Button); + number3Button = (Button) findViewById(R.id.number3Button); + number2Button = (Button) findViewById(R.id.number2Button); + number1Button = (Button) findViewById(R.id.number1Button); + number0Button = (Button) findViewById(R.id.number0Button); + + // scientific calculator specific buttons + backspaceButton = (Button) findViewById(R.id.backspaceButton); + radButton = (Button) findViewById(R.id.radButton); + degButton = (Button) findViewById(R.id.degButton); + squareRootButton = (Button) findViewById(R.id.squareRootButton); + xyButton = (Button) findViewById(R.id.xyButton); // (x^y) + expButton = (Button) findViewById(R.id.expButton); + lnButton = (Button) findViewById(R.id.lnButton); + eButton = (Button) findViewById(R.id.eButton); + logButton = (Button) findViewById(R.id.logButton); + reciprocalButton = (Button) findViewById(R.id.reciprocalButton); + piButton = (Button) findViewById(R.id.piButton); + sineButton = (Button) findViewById(R.id.sineButton); + cosineButton = (Button) findViewById(R.id.cosineButton); + tangentButton = (Button) findViewById(R.id.tangentButton); + openParenthesisButton = (Button) findViewById(R.id.openParenthesisButton); + closeParenthesisButton = (Button) findViewById(R.id.closeParenthesisButton); + answerButton = (Button) findViewById(R.id.answerButton); + + ArrayList