From 33bbb7394650e6f306f93b1f1b7b9a3a56a7e89e Mon Sep 17 00:00:00 2001 From: dethaa <sharonmarbun12@gmail.com> Date: Tue, 8 Mar 2022 16:32:18 +0700 Subject: [PATCH] feat(TipTime): add tip calculation --- DiceRoller/.idea/deploymentTargetDropDown.xml | 17 ++++++++++ DiceRoller/.idea/misc.xml | 2 +- TipTime/.idea/deploymentTargetDropDown.xml | 17 ++++++++++ TipTime/.idea/misc.xml | 2 +- TipTime/app/build.gradle | 4 +++ .../java/com/example/tiptime/MainActivity.kt | 31 ++++++++++++++++++- .../app/src/main/res/layout/activity_main.xml | 2 +- TipTime/app/src/main/res/values/strings.xml | 2 +- 8 files changed, 72 insertions(+), 5 deletions(-) create mode 100644 DiceRoller/.idea/deploymentTargetDropDown.xml create mode 100644 TipTime/.idea/deploymentTargetDropDown.xml diff --git a/DiceRoller/.idea/deploymentTargetDropDown.xml b/DiceRoller/.idea/deploymentTargetDropDown.xml new file mode 100644 index 00000000..75666bd5 --- /dev/null +++ b/DiceRoller/.idea/deploymentTargetDropDown.xml @@ -0,0 +1,17 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project version="4"> + <component name="deploymentTargetDropDown"> + <targetSelectedWithDropDown> + <Target> + <type value="QUICK_BOOT_TARGET" /> + <deviceKey> + <Key> + <type value="VIRTUAL_DEVICE_PATH" /> + <value value="C:\Users\hp\.android\avd\Pixel_3_XL_API_29.avd" /> + </Key> + </deviceKey> + </Target> + </targetSelectedWithDropDown> + <timeTargetWasSelectedWithDropDown value="2022-03-03T10:59:10.496023800Z" /> + </component> +</project> \ No newline at end of file diff --git a/DiceRoller/.idea/misc.xml b/DiceRoller/.idea/misc.xml index 36d438b9..b3e4a971 100644 --- a/DiceRoller/.idea/misc.xml +++ b/DiceRoller/.idea/misc.xml @@ -4,7 +4,7 @@ <option name="filePathToZoomLevelMap"> <map> <entry key="..\:/PROJECT/AndroidStudioProjects/DiceRoller/app/src/main/res/layout/activity_main.xml" value="0.7333333333333334" /> - <entry key="..\:/PROJECT/pbd-exercise/DiceRoller/app/src/main/res/layout/activity_main.xml" value="0.3333333333333333" /> + <entry key="..\:/PROJECT/pbd-exercise/DiceRoller/app/src/main/res/layout/activity_main.xml" value="0.1" /> </map> </option> </component> diff --git a/TipTime/.idea/deploymentTargetDropDown.xml b/TipTime/.idea/deploymentTargetDropDown.xml new file mode 100644 index 00000000..8b041926 --- /dev/null +++ b/TipTime/.idea/deploymentTargetDropDown.xml @@ -0,0 +1,17 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project version="4"> + <component name="deploymentTargetDropDown"> + <runningDeviceTargetSelectedWithDropDown> + <Target> + <type value="RUNNING_DEVICE_TARGET" /> + <deviceKey> + <Key> + <type value="SERIAL_NUMBER" /> + <value value="RR8MC06LCHA" /> + </Key> + </deviceKey> + </Target> + </runningDeviceTargetSelectedWithDropDown> + <timeTargetWasSelectedWithDropDown value="2022-03-08T08:36:15.177742500Z" /> + </component> +</project> \ No newline at end of file diff --git a/TipTime/.idea/misc.xml b/TipTime/.idea/misc.xml index 5358d1ac..0dc5e5c2 100644 --- a/TipTime/.idea/misc.xml +++ b/TipTime/.idea/misc.xml @@ -3,7 +3,7 @@ <component name="DesignSurface"> <option name="filePathToZoomLevelMap"> <map> - <entry key="..\:/PROJECT/pbd-exercise/TipTime/app/src/main/res/layout/activity_main.xml" value="0.1" /> + <entry key="..\:/PROJECT/pbd-exercise/TipTime/app/src/main/res/layout/activity_main.xml" value="0.6" /> <entry key="..\:/Users/hp/AndroidStudioProjects/TipTime/app/src/main/res/layout/activity_main.xml" value="0.1" /> </map> </option> diff --git a/TipTime/app/build.gradle b/TipTime/app/build.gradle index 6cce0ada..1a44ecac 100644 --- a/TipTime/app/build.gradle +++ b/TipTime/app/build.gradle @@ -29,6 +29,10 @@ android { kotlinOptions { jvmTarget = '1.8' } + + buildFeatures { + viewBinding true + } } dependencies { diff --git a/TipTime/app/src/main/java/com/example/tiptime/MainActivity.kt b/TipTime/app/src/main/java/com/example/tiptime/MainActivity.kt index 6ab37fd1..69be9d61 100644 --- a/TipTime/app/src/main/java/com/example/tiptime/MainActivity.kt +++ b/TipTime/app/src/main/java/com/example/tiptime/MainActivity.kt @@ -2,10 +2,39 @@ package com.example.tiptime import androidx.appcompat.app.AppCompatActivity import android.os.Bundle +import com.example.tiptime.databinding.ActivityMainBinding +import java.text.NumberFormat class MainActivity : AppCompatActivity() { + + private lateinit var binding: ActivityMainBinding + override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) - setContentView(R.layout.activity_main) + binding = ActivityMainBinding.inflate(layoutInflater) + setContentView(binding.root) + binding.calculateButton.setOnClickListener{ calculateTip() } + } + + private fun calculateTip(){ + val stringInTextField = binding.costOfService.text.toString() + val cost = stringInTextField.toDoubleOrNull() + if (cost == null) { + binding.tipResult.text = "" + return + } + val tipPercentage = when (binding.tipOptions.checkedRadioButtonId) { + R.id.option_twenty_percent -> 0.20 + R.id.option_eighteen_percent -> 0.18 + else -> 0.15 + } + var tip = tipPercentage * cost + if (binding.roundUpSwitch.isChecked){ + tip = kotlin.math.ceil(tip) + } + val formattedTip = NumberFormat.getCurrencyInstance().format(tip) + binding.tipResult.text = getString(R.string.tip_amount, formattedTip) + } + } \ No newline at end of file diff --git a/TipTime/app/src/main/res/layout/activity_main.xml b/TipTime/app/src/main/res/layout/activity_main.xml index 9a7985b9..5a30c3a0 100644 --- a/TipTime/app/src/main/res/layout/activity_main.xml +++ b/TipTime/app/src/main/res/layout/activity_main.xml @@ -78,7 +78,7 @@ android:id="@+id/tip_result" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:text="@string/tip_amount" + tools:text="Tip Amount: $10" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintTop_toBottomOf="@id/calculate_button" /> diff --git a/TipTime/app/src/main/res/values/strings.xml b/TipTime/app/src/main/res/values/strings.xml index 7ae71439..d42b488f 100644 --- a/TipTime/app/src/main/res/values/strings.xml +++ b/TipTime/app/src/main/res/values/strings.xml @@ -7,5 +7,5 @@ <string name="okay_service">Okay(15%)</string> <string name="round_up_tip">Round up tip?</string> <string name="calculate">Calculate</string> - <string name="tip_amount">Tip Amount</string> + <string name="tip_amount">Tip Amount: %s</string> </resources> \ No newline at end of file -- GitLab