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 @@