diff --git a/app/src/main/java/devs/org/calculator/activities/MainActivity.kt b/app/src/main/java/devs/org/calculator/activities/MainActivity.kt
index 313fdda..81888f4 100644
--- a/app/src/main/java/devs/org/calculator/activities/MainActivity.kt
+++ b/app/src/main/java/devs/org/calculator/activities/MainActivity.kt
@@ -1,14 +1,11 @@
package devs.org.calculator.activities
-import android.app.Activity
-import android.content.Context
import android.content.Intent
import android.content.pm.PackageManager
import android.net.Uri
import android.os.Build
import android.os.Bundle
import android.os.Environment
-import android.provider.Settings
import android.util.Log
import android.widget.Toast
import androidx.activity.result.ActivityResultLauncher
@@ -40,7 +37,6 @@ class MainActivity : AppCompatActivity(), DialogActionsCallback {
binding = ActivityMainBinding.inflate(layoutInflater)
setContentView(binding.root)
- // Initialize ActivityResultLauncher
launcher = registerForActivityResult(ActivityResultContracts.StartActivityForResult()) { result ->
handleActivityResult(result)
}
@@ -57,7 +53,6 @@ class MainActivity : AppCompatActivity(), DialogActionsCallback {
this
)
}
- // Number buttons
setupNumberButton(binding.btn0, "0")
setupNumberButton(binding.btn1, "1")
setupNumberButton(binding.btn2, "2")
@@ -68,14 +63,11 @@ class MainActivity : AppCompatActivity(), DialogActionsCallback {
setupNumberButton(binding.btn7, "7")
setupNumberButton(binding.btn8, "8")
setupNumberButton(binding.btn9, "9")
-
- // Operator buttons
setupOperatorButton(binding.btnPlus, "+")
setupOperatorButton(binding.btnMinus, "-")
- setupOperatorButton(binding.btnMultiply, "*")
+ setupOperatorButton(binding.btnMultiply, "×")
setupOperatorButton(binding.btnDivide, "/")
- // Special buttons
binding.btnClear.setOnClickListener { clearDisplay() }
binding.btnDot.setOnClickListener { addDecimal() }
binding.btnEquals.setOnClickListener { calculateResult() }
@@ -88,8 +80,6 @@ class MainActivity : AppCompatActivity(), DialogActionsCallback {
result.data?.data?.let { uri ->
baseDocumentTreeUri = uri
val takeFlags = Intent.FLAG_GRANT_READ_URI_PERMISSION or Intent.FLAG_GRANT_WRITE_URI_PERMISSION
-
- // Take persistable Uri Permission for future use
contentResolver.takePersistableUriPermission(uri, takeFlags)
val preferences = getSharedPreferences("com.example.fileutility", MODE_PRIVATE)
@@ -115,7 +105,10 @@ class MainActivity : AppCompatActivity(), DialogActionsCallback {
private fun setupOperatorButton(button: MaterialButton, operator: String) {
button.setOnClickListener {
if (!lastWasOperator) {
- currentExpression += operator
+ currentExpression += when (operator) {
+ "×" -> "*"
+ else -> operator
+ }
lastWasOperator = true
hasDecimal = false
}
@@ -123,6 +116,7 @@ class MainActivity : AppCompatActivity(), DialogActionsCallback {
}
}
+
private fun clearDisplay() {
currentExpression = "0"
binding.total.text = ""
@@ -150,8 +144,7 @@ class MainActivity : AppCompatActivity(), DialogActionsCallback {
}
private fun calculateResult() {
- // Check for secret code
- if (currentExpression == "123456") { // Replace with your desired code
+ if (currentExpression == "123456") {
val intent = Intent(this, SetupPasswordActivity::class.java)
intent.putExtra("password", currentExpression)
startActivity(intent)
@@ -159,7 +152,6 @@ class MainActivity : AppCompatActivity(), DialogActionsCallback {
return
}
- // Validate password
if (PrefsUtil(this).validatePassword(currentExpression)) {
val intent = Intent(this, HiddenVaultActivity::class.java)
intent.putExtra("password", currentExpression)
@@ -169,6 +161,7 @@ class MainActivity : AppCompatActivity(), DialogActionsCallback {
}
try {
+ currentExpression = currentExpression.replace("×", "*")
val expression = ExpressionBuilder(currentExpression).build()
val result = expression.evaluate()
@@ -180,25 +173,26 @@ class MainActivity : AppCompatActivity(), DialogActionsCallback {
lastWasOperator = false
hasDecimal = currentExpression.contains(".")
+
updateDisplay()
+ binding.total.text = ""
} catch (e: Exception) {
binding.display.text = getString(R.string.invalid_message)
}
}
- private fun updateDisplay() {
- binding.display.text = currentExpression
- if (currentExpression == "0"){
+ private fun updateDisplay() {
+ binding.display.text = currentExpression.replace("*", "×")
+
+ if (currentExpression == "0") {
binding.total.text = ""
return
}
- // Evaluate the expression and update total
+
try {
val expression = ExpressionBuilder(currentExpression).build()
val result = expression.evaluate()
-
- // Format the result and update total.text
val formattedResult = if (result.toLong().toDouble() == result) {
result.toLong().toString()
} else {
@@ -207,11 +201,11 @@ class MainActivity : AppCompatActivity(), DialogActionsCallback {
binding.total.text = formattedResult
} catch (e: Exception) {
- // Show a blank or placeholder for invalid expressions
binding.total.text = ""
}
}
+
private fun cutNumbers() {
if (currentExpression.isNotEmpty()){
if (currentExpression.length == 1){
diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml
index 7440b76..6a554eb 100644
--- a/app/src/main/res/layout/activity_main.xml
+++ b/app/src/main/res/layout/activity_main.xml
@@ -15,7 +15,6 @@
android:layout_margin="16dp"
android:layout_weight="3"
android:layout_marginTop="0dp"
- android:elevation="4dp"
android:orientation="vertical"
android:gravity="right|bottom">
#FFFFFFFF
- @android:color/system_accent1_600
- @android:color/system_accent1_0
- @android:color/system_accent1_100
- @android:color/system_accent1_900
-
- @android:color/system_accent2_600
- @android:color/system_accent2_0
- @android:color/system_accent2_100
- @android:color/system_accent2_900
-
- @android:color/system_neutral1_50
- @android:color/system_neutral1_900
+ #00B43B
+ #00C15C
+ #39FF97
#ffffff
\ No newline at end of file
diff --git a/app/src/main/res/values-night/themes.xml b/app/src/main/res/values-night/themes.xml
index 66daa58..83ddb31 100644
--- a/app/src/main/res/values-night/themes.xml
+++ b/app/src/main/res/values-night/themes.xml
@@ -2,13 +2,13 @@
\ No newline at end of file
diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml
index b41dde7..8a8302c 100644
--- a/app/src/main/res/values/colors.xml
+++ b/app/src/main/res/values/colors.xml
@@ -4,17 +4,8 @@
#FFFFFFFF
- @android:color/system_accent1_600
- @android:color/system_accent1_0
- @android:color/system_accent1_100
- @android:color/system_accent1_900
-
- @android:color/system_accent2_600
- @android:color/system_accent2_0
- @android:color/system_accent2_100
- @android:color/system_accent2_900
-
- @android:color/system_neutral1_50
- @android:color/system_neutral1_900
+ #00B43B
+ #00C15C
+ #39FF97
#000000
\ No newline at end of file
diff --git a/app/src/main/res/values/themes.xml b/app/src/main/res/values/themes.xml
index 0962bc9..aead0f3 100644
--- a/app/src/main/res/values/themes.xml
+++ b/app/src/main/res/values/themes.xml
@@ -2,24 +2,21 @@