Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
35 changes: 35 additions & 0 deletions .github/workflows/android-ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
name: Android CI

on:
push:
branches: [main]
pull_request:
branches: [main]

concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true

jobs:
build:
runs-on: ubuntu-latest
timeout-minutes: 30

steps:
- uses: actions/checkout@v4

- name: Set up JDK 17
uses: actions/setup-java@v4
with:
java-version: '17'
distribution: 'temurin'
cache: gradle

- name: Build with Gradle
run: ./gradlew assembleDebug

- name: Run unit tests
run: ./gradlew testDebugUnitTest

- name: Run lint checks
run: ./gradlew lint
15 changes: 15 additions & 0 deletions app/src/main/java/com/example/calculator_v01/CalculatorEngine.kt
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
package com.example.calculator_v01

import android.util.Log
import com.udojava.evalex.Expression

private const val TAG = "CALC"

class CalculatorEngine {
fun eval(txt: String): String {
Log.i(TAG, "eval method -> String to evaluate: $txt")
val expression = Expression(txt)
expression.setPrecision(12)
return expression.eval().toString()
}
}
19 changes: 4 additions & 15 deletions app/src/main/java/com/example/calculator_v01/MainActivity.kt
Original file line number Diff line number Diff line change
Expand Up @@ -2,19 +2,16 @@ package com.example.calculator_v01

import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.util.Log
import android.view.View
import android.widget.Button
import android.widget.TextView
import com.udojava.evalex.Expression
import java.lang.ArithmeticException

private const val TAG = "CALC"

class MainActivity : AppCompatActivity() {

private lateinit var calcOutput : TextView
private lateinit var calcHist : TextView
private val engine = CalculatorEngine()
private var buildString = ArrayList<String>()
private var lastNumeric = false
private var lastEqual = false
Expand Down Expand Up @@ -102,7 +99,7 @@ class MainActivity : AppCompatActivity() {
}
}
private fun evalPercent(userInput:String):Double{
return eval(buildTextOutput() + "0").toDouble() * (userInput.toDouble() / 100)
return engine.eval(buildTextOutput() + "0").toDouble() * (userInput.toDouble() / 100)
}

fun onEqual(view:View){
Expand All @@ -111,7 +108,7 @@ class MainActivity : AppCompatActivity() {
txt = buildTextOutput()
txt += calcOutput.text.toString()
try{
calcOutput.text = eval(txt)
calcOutput.text = engine.eval(txt)
onlyDec = true
}catch (ex: ArithmeticException){
calcOutput.text = getString(R.string.error)
Expand All @@ -124,15 +121,7 @@ class MainActivity : AppCompatActivity() {
}


fun eval(txt:String):String{
Log.i(TAG, "eval method -> String to evaluate: $txt")
val expression = Expression(txt)
expression.setPrecision(12)
return expression.eval().toString()
}

fun doNothing(){

fun doNothing(view: View) {
}

private fun stringToDbl(input:TextView):Double{
Expand Down
2 changes: 1 addition & 1 deletion app/src/main/res/layout-land/activity_main.xml
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@
<Button
android:id="@+id/btnLBracket"
android:text="@string/btnLBracket"
android:onClick=""
android:onClick="doNothing"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="@dimen/land_weight"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ class TestCalcOutput(val input: String, val expected: String) {

@Test
fun evaluate_calculator_output() {
assertEquals(expected, MainActivity().eval(input))

val engine = CalculatorEngine()
assertEquals(expected, engine.eval(input))
}
}
Loading