diff --git a/app/src/main/java/com/example/abe/ui/form_transaction/FormTransaction.kt b/app/src/main/java/com/example/abe/ui/form_transaction/FormTransaction.kt index d22f32ee28399cf6cd8acb10692ff4cc8c50db2c..d29c659c64b508b2c3badddea6bf84b787757016 100644 --- a/app/src/main/java/com/example/abe/ui/form_transaction/FormTransaction.kt +++ b/app/src/main/java/com/example/abe/ui/form_transaction/FormTransaction.kt @@ -9,6 +9,7 @@ import android.location.Address import android.location.Geocoder import android.location.Location import android.location.LocationManager +import android.net.Uri import android.os.Bundle import android.provider.Settings import android.util.Log @@ -19,6 +20,7 @@ import android.widget.AdapterView import android.widget.ArrayAdapter import android.widget.Toast import androidx.activity.addCallback +import androidx.constraintlayout.widget.ConstraintSet import androidx.core.app.ActivityCompat import androidx.fragment.app.Fragment import androidx.fragment.app.viewModels @@ -81,6 +83,7 @@ class FormTransaction : Fragment() { titleFocusListener() amountFocusListener() categoryFocusListener() + openInMapListener() locationFocusListener() saveButtonListener() @@ -101,15 +104,25 @@ class FormTransaction : Fragment() { displayTrx(trxId) } else if (args.containsKey("random_amount")) { viewModel.setRandomAmount(args.getInt("random_amount")) - binding.btnDelete.visibility = View.GONE + useNewTrxLayout() } } else { - binding.btnDelete.visibility = View.GONE + useNewTrxLayout() } return binding.root } + private fun useNewTrxLayout() { + binding.btnDelete.visibility = View.GONE + binding.btnOpenMap.visibility = View.GONE + + ConstraintSet().apply { + clone(binding.formTransaction) + connect(R.id.formLocationContainer, ConstraintSet.TOP, R.id.formCategoryContainer, ConstraintSet.BOTTOM, 5) + applyTo(binding.formTransaction) + } + } private fun displayTrx(idTrx: Int) { id = idTrx @@ -150,6 +163,17 @@ class FormTransaction : Fragment() { } } + private fun openInMapListener() { + binding.btnOpenMap.setOnClickListener { + val destinationLatitude = viewModel.latitude.value.toString() + val destinationLongitude = viewModel.longitude.value.toString() + + val mapUri = Uri.parse("https://maps.google.com/maps?daddr=$destinationLatitude,$destinationLongitude") + val intent = Intent(Intent.ACTION_VIEW, mapUri) + startActivity(intent) + } + } + private fun locationFocusListener() { binding.formLocationEditText.setOnFocusChangeListener { _, focused -> if (!focused) { diff --git a/app/src/main/java/com/example/abe/ui/transactions/TransactionFragment.kt b/app/src/main/java/com/example/abe/ui/transactions/TransactionFragment.kt index 9f9b8eb63407d44195b0fb75ca7353e4511dfe80..f36b9313b81a91aa5b801f07c32b7ec1f722410e 100644 --- a/app/src/main/java/com/example/abe/ui/transactions/TransactionFragment.kt +++ b/app/src/main/java/com/example/abe/ui/transactions/TransactionFragment.kt @@ -42,7 +42,7 @@ class TransactionFragment : Fragment() { ): View { _binding = FragmentTransactionsBinding.inflate(inflater, container, false) - val transactionsAdapter = TransactionsAdapter(listener) + val transactionsAdapter = TransactionsAdapter(listener, requireContext()) binding.rvTransactions.adapter = transactionsAdapter binding.rvTransactions.layoutManager = LinearLayoutManager(context) diff --git a/app/src/main/java/com/example/abe/ui/transactions/TransactionsAdapter.kt b/app/src/main/java/com/example/abe/ui/transactions/TransactionsAdapter.kt index da1ba890916ffe5f792b599e2df53560dfe18d83..884d911cbddfa53b502ca55613d47fd1ed5ddb2c 100644 --- a/app/src/main/java/com/example/abe/ui/transactions/TransactionsAdapter.kt +++ b/app/src/main/java/com/example/abe/ui/transactions/TransactionsAdapter.kt @@ -1,6 +1,6 @@ package com.example.abe.ui.transactions -import android.content.Intent +import android.content.Context import android.view.LayoutInflater import android.view.View import android.view.ViewGroup @@ -13,11 +13,10 @@ import androidx.recyclerview.widget.RecyclerView import com.example.abe.R import com.example.abe.data.Transaction import com.example.abe.domain.FormatCurrencyUseCase -import com.example.abe.ui.form_transaction.FormTransaction import java.text.SimpleDateFormat import java.util.Locale -class TransactionsAdapter(private val itemClickListener: TransactionFragment.ItemClickListener): ListAdapter<Transaction, TransactionsAdapter.TransactionViewHolder>(TransactionComparator()) { +class TransactionsAdapter(private val itemClickListener: TransactionFragment.ItemClickListener, private val context: Context): ListAdapter<Transaction, TransactionsAdapter.TransactionViewHolder>(TransactionComparator()) { class TransactionViewHolder(val view: View): RecyclerView.ViewHolder(view) { val clImageContainer: ConstraintLayout val ivTrxIcon: ImageView @@ -55,15 +54,15 @@ class TransactionsAdapter(private val itemClickListener: TransactionFragment.Ite override fun onBindViewHolder(holder: TransactionViewHolder, position: Int) { with(holder) { -// TODO Set color from theme -// clImageContainer.background = val trx = getItem(position) - if (!trx.isExpense) - ivTrxIcon.setImageResource(R.drawable.ic_circle_arrow_up) + if (!trx.isExpense) { + clImageContainer.setBackgroundColor(context.getColor(R.color.secondary)) + ivTrxIcon.setImageResource(R.drawable.ic_circle_arrow_down) + tvAmount.setTextColor(context.getColor(R.color.success)) + } tvTrxTitle.text = trx.title -// TODO location tvLocation.text = trx.location tvDate.text = SimpleDateFormat("d MMM yyyy" , Locale.ENGLISH).format(trx.timestamp) @@ -73,9 +72,6 @@ class TransactionsAdapter(private val itemClickListener: TransactionFragment.Ite tvAmount.text = amountText view.setOnClickListener { -// val intent = Intent(it.context, FormTransaction::class.java) -// intent.putExtra("id", trx.id.toString()) -// it.context.startActivity(intent) itemClickListener.onItemClicked(trx.id) } } diff --git a/app/src/main/res/drawable-anydpi/ic_location.xml b/app/src/main/res/drawable-anydpi/ic_location.xml deleted file mode 100644 index b9d9d8ed33a1ace67d33c0617f89297bb6cafa9d..0000000000000000000000000000000000000000 --- a/app/src/main/res/drawable-anydpi/ic_location.xml +++ /dev/null @@ -1,14 +0,0 @@ -<vector xmlns:android="http://schemas.android.com/apk/res/android" - android:width="24dp" - android:height="24dp" - android:viewportWidth="24" - android:viewportHeight="24" - android:tint="#333333" - android:alpha="0.6"> - <path - android:fillColor="@android:color/white" - android:pathData="M12,2C8.13,2 5,5.13 5,9c0,5.25 7,13 7,13s7,-7.75 7,-13c0,-3.87 -3.13,-7 -7,-7zM7,9c0,-2.76 2.24,-5 5,-5s5,2.24 5,5c0,2.88 -2.88,7.19 -5,9.88C9.92,16.21 7,11.85 7,9z"/> - <path - android:fillColor="@android:color/white" - android:pathData="M12,9m-2.5,0a2.5,2.5 0,1 1,5 0a2.5,2.5 0,1 1,-5 0"/> -</vector> diff --git a/app/src/main/res/drawable-hdpi/ic_circle_arrow_down.png b/app/src/main/res/drawable-hdpi/ic_circle_arrow_down.png deleted file mode 100644 index 980f177e72d69141cd8ae84efb8fff90b2a0988c..0000000000000000000000000000000000000000 Binary files a/app/src/main/res/drawable-hdpi/ic_circle_arrow_down.png and /dev/null differ diff --git a/app/src/main/res/drawable-hdpi/ic_circle_arrow_up.png b/app/src/main/res/drawable-hdpi/ic_circle_arrow_up.png deleted file mode 100644 index 2df26c358a169facb16be6433616d72a96901080..0000000000000000000000000000000000000000 Binary files a/app/src/main/res/drawable-hdpi/ic_circle_arrow_up.png and /dev/null differ diff --git a/app/src/main/res/drawable-hdpi/ic_location.png b/app/src/main/res/drawable-hdpi/ic_location.png deleted file mode 100644 index bca6e8e9a5f2b25f59b4027ab85258384717852d..0000000000000000000000000000000000000000 Binary files a/app/src/main/res/drawable-hdpi/ic_location.png and /dev/null differ diff --git a/app/src/main/res/drawable-mdpi/ic_circle_arrow_down.png b/app/src/main/res/drawable-mdpi/ic_circle_arrow_down.png deleted file mode 100644 index ed12d153b6901c4fa2b5f4369f2015fcf88c85d9..0000000000000000000000000000000000000000 Binary files a/app/src/main/res/drawable-mdpi/ic_circle_arrow_down.png and /dev/null differ diff --git a/app/src/main/res/drawable-mdpi/ic_circle_arrow_up.png b/app/src/main/res/drawable-mdpi/ic_circle_arrow_up.png deleted file mode 100644 index 1f66acd65c8875497d8d3ca2219671c4ccbffeac..0000000000000000000000000000000000000000 Binary files a/app/src/main/res/drawable-mdpi/ic_circle_arrow_up.png and /dev/null differ diff --git a/app/src/main/res/drawable-mdpi/ic_location.png b/app/src/main/res/drawable-mdpi/ic_location.png deleted file mode 100644 index 8c8b1ae762f8faf4803ea8f4d3c0c39745f467a2..0000000000000000000000000000000000000000 Binary files a/app/src/main/res/drawable-mdpi/ic_location.png and /dev/null differ diff --git a/app/src/main/res/drawable-xhdpi/ic_circle_arrow_down.png b/app/src/main/res/drawable-xhdpi/ic_circle_arrow_down.png deleted file mode 100644 index 697175ebd1fee62e95deb3c7eb111f47148257b8..0000000000000000000000000000000000000000 Binary files a/app/src/main/res/drawable-xhdpi/ic_circle_arrow_down.png and /dev/null differ diff --git a/app/src/main/res/drawable-xhdpi/ic_circle_arrow_up.png b/app/src/main/res/drawable-xhdpi/ic_circle_arrow_up.png deleted file mode 100644 index 967c678704cce4b2ada24dd2f98b4d7402d7e8c1..0000000000000000000000000000000000000000 Binary files a/app/src/main/res/drawable-xhdpi/ic_circle_arrow_up.png and /dev/null differ diff --git a/app/src/main/res/drawable-xhdpi/ic_location.png b/app/src/main/res/drawable-xhdpi/ic_location.png deleted file mode 100644 index a2d7b570471f1ac5db73861a32ee5c9d4f20be9b..0000000000000000000000000000000000000000 Binary files a/app/src/main/res/drawable-xhdpi/ic_location.png and /dev/null differ diff --git a/app/src/main/res/drawable-xxhdpi/ic_circle_arrow_down.png b/app/src/main/res/drawable-xxhdpi/ic_circle_arrow_down.png deleted file mode 100644 index c074b4059221244165a67f93c5cf119e7f575f72..0000000000000000000000000000000000000000 Binary files a/app/src/main/res/drawable-xxhdpi/ic_circle_arrow_down.png and /dev/null differ diff --git a/app/src/main/res/drawable-xxhdpi/ic_circle_arrow_up.png b/app/src/main/res/drawable-xxhdpi/ic_circle_arrow_up.png deleted file mode 100644 index 8c9aa70c7003451884b8a360b50b18c91c31c789..0000000000000000000000000000000000000000 Binary files a/app/src/main/res/drawable-xxhdpi/ic_circle_arrow_up.png and /dev/null differ diff --git a/app/src/main/res/drawable-xxhdpi/ic_location.png b/app/src/main/res/drawable-xxhdpi/ic_location.png deleted file mode 100644 index c7de6afd707c828c21747c1b2a6a158485fe6ace..0000000000000000000000000000000000000000 Binary files a/app/src/main/res/drawable-xxhdpi/ic_location.png and /dev/null differ diff --git a/app/src/main/res/drawable-xxxhdpi/ic_circle_arrow_down.png b/app/src/main/res/drawable-xxxhdpi/ic_circle_arrow_down.png deleted file mode 100644 index 0c7f7de74066376d5fcf5967a5f084c34e413aa0..0000000000000000000000000000000000000000 Binary files a/app/src/main/res/drawable-xxxhdpi/ic_circle_arrow_down.png and /dev/null differ diff --git a/app/src/main/res/drawable-xxxhdpi/ic_circle_arrow_up.png b/app/src/main/res/drawable-xxxhdpi/ic_circle_arrow_up.png deleted file mode 100644 index fd1bd6ebaecee1a2dfe9cb60b588f54679b3fd2a..0000000000000000000000000000000000000000 Binary files a/app/src/main/res/drawable-xxxhdpi/ic_circle_arrow_up.png and /dev/null differ diff --git a/app/src/main/res/drawable/bg_transaction_row_item.xml b/app/src/main/res/drawable/bg_transaction_row_item.xml new file mode 100644 index 0000000000000000000000000000000000000000..27f44b0a5f89293b2adb188be77cea1f338c3c1b --- /dev/null +++ b/app/src/main/res/drawable/bg_transaction_row_item.xml @@ -0,0 +1,5 @@ +<?xml version="1.0" encoding="UTF-8"?> +<shape xmlns:android="http://schemas.android.com/apk/res/android"> + <solid android:color="@color/grayLight"/> + <corners android:radius="12dp"/> +</shape> \ No newline at end of file diff --git a/app/src/main/res/drawable/ic_circle_arrow_down.xml b/app/src/main/res/drawable/ic_circle_arrow_down.xml new file mode 100644 index 0000000000000000000000000000000000000000..2289e2d2d12db78041730283cd9928617b443039 --- /dev/null +++ b/app/src/main/res/drawable/ic_circle_arrow_down.xml @@ -0,0 +1,27 @@ +<vector xmlns:android="http://schemas.android.com/apk/res/android" + android:width="32dp" + android:height="32dp" + android:viewportWidth="32" + android:viewportHeight="32"> + <path + android:pathData="M16,29.333C23.364,29.333 29.333,23.364 29.333,16C29.333,8.636 23.364,2.667 16,2.667C8.636,2.667 2.667,8.636 2.667,16C2.667,23.364 8.636,29.333 16,29.333Z" + android:strokeLineJoin="round" + android:strokeWidth="2" + android:fillColor="#00000000" + android:strokeColor="#ffffff" + android:strokeLineCap="round"/> + <path + android:pathData="M16,10.667V21.333" + android:strokeLineJoin="round" + android:strokeWidth="2" + android:fillColor="#00000000" + android:strokeColor="#ffffff" + android:strokeLineCap="round"/> + <path + android:pathData="M10.667,16L16,21.333L21.333,16" + android:strokeLineJoin="round" + android:strokeWidth="2" + android:fillColor="#00000000" + android:strokeColor="#ffffff" + android:strokeLineCap="round"/> +</vector> diff --git a/app/src/main/res/drawable/ic_circle_arrow_up.xml b/app/src/main/res/drawable/ic_circle_arrow_up.xml new file mode 100644 index 0000000000000000000000000000000000000000..0e1bc5f0552e24f2a132f09facfe2bbe78f9df26 --- /dev/null +++ b/app/src/main/res/drawable/ic_circle_arrow_up.xml @@ -0,0 +1,27 @@ +<vector xmlns:android="http://schemas.android.com/apk/res/android" + android:width="32dp" + android:height="32dp" + android:viewportWidth="32" + android:viewportHeight="32"> + <path + android:pathData="M16,29.333C23.364,29.333 29.333,23.364 29.333,16C29.333,8.636 23.364,2.667 16,2.667C8.636,2.667 2.667,8.636 2.667,16C2.667,23.364 8.636,29.333 16,29.333Z" + android:strokeLineJoin="round" + android:strokeWidth="2.66667" + android:fillColor="#00000000" + android:strokeColor="#ffffff" + android:strokeLineCap="round"/> + <path + android:pathData="M21.333,16L16,10.667L10.667,16" + android:strokeLineJoin="round" + android:strokeWidth="2.66667" + android:fillColor="#00000000" + android:strokeColor="#ffffff" + android:strokeLineCap="round"/> + <path + android:pathData="M16,21.333V10.667" + android:strokeLineJoin="round" + android:strokeWidth="2.66667" + android:fillColor="#00000000" + android:strokeColor="#ffffff" + android:strokeLineCap="round"/> +</vector> diff --git a/app/src/main/res/drawable/ic_map_pin.xml b/app/src/main/res/drawable/ic_map_pin.xml new file mode 100644 index 0000000000000000000000000000000000000000..1d355d2e9e6e65e084f670a86cd0536d65f138ed --- /dev/null +++ b/app/src/main/res/drawable/ic_map_pin.xml @@ -0,0 +1,20 @@ +<vector xmlns:android="http://schemas.android.com/apk/res/android" + android:width="12dp" + android:height="12dp" + android:viewportWidth="12" + android:viewportHeight="12"> + <path + android:strokeWidth="1" + android:pathData="M10,5C10,8 6,11 6,11C6,11 2,8 2,5C2,3.939 2.421,2.921 3.172,2.171C3.922,1.421 4.939,1 6,1C7.061,1 8.078,1.421 8.828,2.171C9.579,2.921 10,3.939 10,5Z" + android:strokeLineJoin="round" + android:fillColor="#00000000" + android:strokeColor="#8346AA" + android:strokeLineCap="round"/> + <path + android:strokeWidth="1" + android:pathData="M6,6.5C6.828,6.5 7.5,5.829 7.5,5C7.5,4.172 6.828,3.5 6,3.5C5.172,3.5 4.5,4.172 4.5,5C4.5,5.829 5.172,6.5 6,6.5Z" + android:strokeLineJoin="round" + android:fillColor="#00000000" + android:strokeColor="#8346AA" + android:strokeLineCap="round"/> +</vector> diff --git a/app/src/main/res/layout/activity_main.xml b/app/src/main/res/layout/activity_main.xml index 06ea6cae22113f243efe317f984f7742418737e8..78cfef8004e741d5a24edec4cdf0db058a249561 100644 --- a/app/src/main/res/layout/activity_main.xml +++ b/app/src/main/res/layout/activity_main.xml @@ -3,8 +3,7 @@ xmlns:app="http://schemas.android.com/apk/res-auto" android:id="@+id/container" android:layout_width="match_parent" - android:layout_height="match_parent" - android:paddingTop="?attr/actionBarSize"> + android:layout_height="match_parent"> <com.google.android.material.bottomnavigation.BottomNavigationView android:id="@+id/nav_view" @@ -22,9 +21,9 @@ android:id="@+id/nav_host_fragment_activity_main" android:name="androidx.navigation.fragment.NavHostFragment" android:layout_width="match_parent" - android:layout_height="match_parent" + android:layout_height="0dp" app:defaultNavHost="true" - app:layout_constraintBottom_toTopOf="@id/nav_view" + app:layout_constraintBottom_toTopOf="@+id/nav_view" app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintRight_toRightOf="parent" app:layout_constraintTop_toTopOf="parent" diff --git a/app/src/main/res/layout/fragment_form_transaction.xml b/app/src/main/res/layout/fragment_form_transaction.xml index b3c08de536f52f69764affdbd37965f40e197c93..6bec0c5bd2b7036ce7e296316aa728af398e5ba6 100644 --- a/app/src/main/res/layout/fragment_form_transaction.xml +++ b/app/src/main/res/layout/fragment_form_transaction.xml @@ -75,33 +75,49 @@ android:id="@+id/categoryAutocomplete" android:layout_width="match_parent" android:layout_height="wrap_content" - android:text="@={viewModel.category}" android:inputType="none" - android:labelFor="@+id/formCategoryContainer" /> + android:labelFor="@+id/formCategoryContainer" + android:text="@={viewModel.category}" /> </com.google.android.material.textfield.TextInputLayout> + <Button + android:id="@+id/btnOpenMap" + android:minWidth="0dp" + android:minHeight="0dp" + android:layout_width="wrap_content" + android:layout_height="0dp" + android:paddingTop="1dp" + android:paddingBottom="1dp" + android:layout_marginTop="8dp" + android:text="Open in Map" + android:textColor="@color/primary" + android:background="@android:color/transparent" + android:textSize="14sp" + android:textStyle="bold" + app:layout_constraintEnd_toEndOf="@+id/formCategoryContainer" + app:layout_constraintTop_toBottomOf="@+id/formCategoryContainer" /> + <com.google.android.material.textfield.TextInputLayout android:id="@+id/formLocationContainer" style="@style/Widget.MaterialComponents.TextInputLayout.OutlinedBox.Dense" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginHorizontal="20dp" - android:layout_marginTop="5dp" app:helperTextTextColor="@color/destructive" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" - app:layout_constraintTop_toBottomOf="@id/formCategoryContainer"> + app:layout_constraintTop_toBottomOf="@id/btnOpenMap"> <com.google.android.material.textfield.TextInputEditText android:id="@+id/formLocationEditText" android:layout_width="match_parent" android:layout_height="match_parent" - android:text="@={viewModel.location}" android:hint="Location" android:inputType="text" - android:lines="1" /> + android:lines="1" + android:text="@={viewModel.location}" /> </com.google.android.material.textfield.TextInputLayout> diff --git a/app/src/main/res/layout/fragment_transactions.xml b/app/src/main/res/layout/fragment_transactions.xml index 1cfe6a3db8d58e63a4de6a25e5d047e743a64e1f..ed123034afaa7d6e5684acfaa00b959d5d42d63c 100644 --- a/app/src/main/res/layout/fragment_transactions.xml +++ b/app/src/main/res/layout/fragment_transactions.xml @@ -9,7 +9,9 @@ <androidx.recyclerview.widget.RecyclerView android:id="@+id/rvTransactions" android:layout_width="match_parent" - android:layout_height="0dp" + android:layout_height="match_parent" + android:padding="12dp" + android:clipToPadding="false" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" diff --git a/app/src/main/res/layout/item_transaction_row_item.xml b/app/src/main/res/layout/item_transaction_row_item.xml index 36c46a0322b5a372fb07273a036e8120021d6a7c..ce5ea19f43f6515fea918deb2430e75f5374bc41 100644 --- a/app/src/main/res/layout/item_transaction_row_item.xml +++ b/app/src/main/res/layout/item_transaction_row_item.xml @@ -1,11 +1,12 @@ <?xml version="1.0" encoding="utf-8"?> <androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" - xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="100dp" android:paddingLeft="16dp" android:paddingRight="16dp" + android:background="@drawable/bg_transaction_row_item" + android:layout_marginBottom="12dp" > <!-- TODO background colors & try clipping for rounded corner--> @@ -21,7 +22,7 @@ android:id="@+id/ivTrxIcon" android:layout_width="32dp" android:layout_height="32dp" - android:src="@drawable/ic_circle_arrow_down" + android:src="@drawable/ic_circle_arrow_up" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" @@ -29,10 +30,11 @@ </androidx.constraintlayout.widget.ConstraintLayout> <androidx.constraintlayout.widget.ConstraintLayout - android:layout_width="wrap_content" + android:layout_width="0dp" android:layout_height="wrap_content" android:layout_marginStart="12dp" app:layout_constraintBottom_toBottomOf="@+id/clImageContainer" + app:layout_constraintEnd_toStartOf="@+id/tvAmount" app:layout_constraintStart_toEndOf="@+id/clImageContainer" app:layout_constraintTop_toTopOf="@+id/clImageContainer"> @@ -41,6 +43,7 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Shopping Spree" + android:textColor="@color/black" android:textSize="16sp" android:textStyle="bold" app:layout_constraintStart_toStartOf="parent" @@ -48,19 +51,23 @@ <ImageView android:id="@+id/ivLocation" - android:layout_width="10sp" - android:layout_height="10sp" + android:layout_width="12sp" + android:layout_height="12sp" app:layout_constraintBottom_toBottomOf="@+id/tvLocation" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="@+id/tvLocation" - app:srcCompat="@drawable/ic_location" /> + app:srcCompat="@drawable/ic_map_pin" /> <TextView android:id="@+id/tvLocation" - android:layout_width="wrap_content" + android:layout_width="0dp" android:layout_height="wrap_content" android:layout_marginStart="4dp" + android:ellipsize="end" + android:maxLines="2" android:text="Shopee" + android:textColor="@color/primary" + app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toEndOf="@+id/ivLocation" app:layout_constraintTop_toBottomOf="@+id/tvTrxTitle" /> @@ -69,6 +76,7 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="3 Mar 2024" + android:textColor="@color/grayDark" android:textSize="12sp" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@+id/tvLocation" /> @@ -80,6 +88,8 @@ android:layout_height="wrap_content" android:text="-Rp350.000" android:textStyle="bold" + android:textSize="16sp" + android:textColor="@color/destructive" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintTop_toTopOf="parent"