diff --git a/app/src/debug/res/drawable/ic_launcher_background.xml b/app/src/debug/res/drawable/ic_launcher_background.xml
new file mode 100644
index 0000000..4cb08a7
--- /dev/null
+++ b/app/src/debug/res/drawable/ic_launcher_background.xml
@@ -0,0 +1,10 @@
+
+
+
+
diff --git a/app/src/debug/res/values/strings.xml b/app/src/debug/res/values/strings.xml
new file mode 100644
index 0000000..e1ab9be
--- /dev/null
+++ b/app/src/debug/res/values/strings.xml
@@ -0,0 +1,4 @@
+
+
+ Thijooree Debug
+
diff --git a/app/src/main/java/sh/sar/basedbank/ui/home/AccountHistoryFragment.kt b/app/src/main/java/sh/sar/basedbank/ui/home/AccountHistoryFragment.kt
index 2d4232d..64ed377 100644
--- a/app/src/main/java/sh/sar/basedbank/ui/home/AccountHistoryFragment.kt
+++ b/app/src/main/java/sh/sar/basedbank/ui/home/AccountHistoryFragment.kt
@@ -142,6 +142,8 @@ class AccountHistoryFragment : Fragment() {
}
adapter.setTransactions(filtered)
binding.emptyView.visibility = if (filtered.isEmpty() && !isLoading) View.VISIBLE else View.GONE
+ binding.skeletonContainer.visibility =
+ if (allTransactions.isEmpty() && isLoading) View.VISIBLE else View.GONE
}
private fun resetAndReload() {
@@ -168,6 +170,9 @@ class AccountHistoryFragment : Fragment() {
if (firstPageDone && allTransactions.isNotEmpty()) {
adapter.showLoadingFooter = true
+ } else if (allTransactions.isEmpty()) {
+ binding.skeletonContainer.visibility = View.VISIBLE
+ binding.emptyView.visibility = View.GONE
}
val app = requireActivity().application as BasedBankApp
@@ -187,6 +192,7 @@ class AccountHistoryFragment : Fragment() {
isLoading = false
if (_binding == null) return@launch
+ binding.skeletonContainer.visibility = View.GONE
if (!firstPageDone) {
firstPageDone = true
diff --git a/app/src/main/java/sh/sar/basedbank/ui/home/ContactsFragment.kt b/app/src/main/java/sh/sar/basedbank/ui/home/ContactsFragment.kt
index fb0897a..e013690 100644
--- a/app/src/main/java/sh/sar/basedbank/ui/home/ContactsFragment.kt
+++ b/app/src/main/java/sh/sar/basedbank/ui/home/ContactsFragment.kt
@@ -9,6 +9,7 @@ import android.view.View
import android.view.ViewGroup
import android.widget.Toast
import com.google.android.material.dialog.MaterialAlertDialogBuilder
+import com.google.android.material.snackbar.Snackbar
import androidx.core.view.ViewCompat
import androidx.core.view.WindowInsetsCompat
import androidx.core.widget.addTextChangedListener
@@ -194,10 +195,10 @@ class ContactsFragment : Fragment() {
viewLifecycleOwner.lifecycleScope.launch {
val success = withContext(Dispatchers.IO) { ContactManager.delete(contact, app) }
if (success) {
- Toast.makeText(requireContext(), R.string.contact_deleted, Toast.LENGTH_SHORT).show()
removeFromViewModel(contact)
+ Snackbar.make(binding.root, R.string.contact_deleted, Snackbar.LENGTH_SHORT).show()
} else {
- Toast.makeText(requireContext(), R.string.contact_delete_failed, Toast.LENGTH_SHORT).show()
+ Snackbar.make(binding.root, R.string.contact_delete_failed, Snackbar.LENGTH_LONG).show()
}
}
}
diff --git a/app/src/main/java/sh/sar/basedbank/ui/home/DashboardFragment.kt b/app/src/main/java/sh/sar/basedbank/ui/home/DashboardFragment.kt
index c33bf9f..ba2d96d 100644
--- a/app/src/main/java/sh/sar/basedbank/ui/home/DashboardFragment.kt
+++ b/app/src/main/java/sh/sar/basedbank/ui/home/DashboardFragment.kt
@@ -126,6 +126,12 @@ class DashboardFragment : Fragment() {
private fun refreshQuickActions() {
val prefs = requireContext().getSharedPreferences("prefs", Context.MODE_PRIVATE)
+ val isBottom = prefs.getBoolean("bottom_nav", false)
+ if (isBottom) {
+ binding.buttonBar.visibility = View.GONE
+ return
+ }
+ binding.buttonBar.visibility = View.VISIBLE
val ids = NavCustomization.getQuickActions(prefs)
listOf(binding.btnQuickAction1, binding.btnQuickAction2).forEachIndexed { i, btn ->
val def = NavCustomization.ALL_SWAPPABLE.find { it.id == ids[i] }
diff --git a/app/src/main/java/sh/sar/basedbank/ui/home/PayWithCardFragment.kt b/app/src/main/java/sh/sar/basedbank/ui/home/PayWithCardFragment.kt
index ae1b2be..35a834c 100644
--- a/app/src/main/java/sh/sar/basedbank/ui/home/PayWithCardFragment.kt
+++ b/app/src/main/java/sh/sar/basedbank/ui/home/PayWithCardFragment.kt
@@ -305,12 +305,7 @@ ViewCompat.setOnApplyWindowInsetsListener(binding.contentLayout) { v, insets ->
if (statusLabel == null) { tv.visibility = View.GONE; return }
tv.visibility = View.VISIBLE
tv.text = statusLabel
- val dp = tv.context.resources.displayMetrics.density
- tv.background = GradientDrawable().apply {
- shape = GradientDrawable.RECTANGLE
- cornerRadius = 12 * dp
- setColor(0xCC212121.toInt())
- }
+ tv.setBackgroundResource(R.drawable.card_overlay_pill_bg)
}
fun formatMasked(masked: String): String {
diff --git a/app/src/main/java/sh/sar/basedbank/ui/home/SettingsAppearanceFragment.kt b/app/src/main/java/sh/sar/basedbank/ui/home/SettingsAppearanceFragment.kt
index 778f3d9..0579c26 100644
--- a/app/src/main/java/sh/sar/basedbank/ui/home/SettingsAppearanceFragment.kt
+++ b/app/src/main/java/sh/sar/basedbank/ui/home/SettingsAppearanceFragment.kt
@@ -54,19 +54,29 @@ class SettingsAppearanceFragment : Fragment() {
// Quick actions
quickActions.clear()
quickActions.addAll(NavCustomization.getQuickActions(prefs))
- quickActionAdapter = NavItemAdapter(quickActions) {
- NavCustomization.saveQuickActions(prefs, quickActions)
+ quickActionAdapter = NavItemAdapter(
+ items = quickActions,
+ onSave = { NavCustomization.saveQuickActions(prefs, quickActions) },
+ isEnabled = { !prefs.getBoolean("bottom_nav", false) }
+ )
+ setupNavItemRecyclerView(binding.rvQuickActions, quickActionAdapter, quickActions) {
+ !prefs.getBoolean("bottom_nav", false)
}
- setupNavItemRecyclerView(binding.rvQuickActions, quickActionAdapter, quickActions)
// Bottom bar shortcuts
slots.clear()
slots.addAll(NavCustomization.getSlots(prefs))
- slotAdapter = NavItemAdapter(slots) {
- NavCustomization.saveSlots(prefs, slots)
- (activity as? HomeActivity)?.rebuildBottomNav(prefs)
+ slotAdapter = NavItemAdapter(
+ items = slots,
+ onSave = {
+ NavCustomization.saveSlots(prefs, slots)
+ (activity as? HomeActivity)?.rebuildBottomNav(prefs)
+ },
+ isEnabled = { prefs.getBoolean("bottom_nav", false) }
+ )
+ setupNavItemRecyclerView(binding.rvNavSlots, slotAdapter, slots) {
+ prefs.getBoolean("bottom_nav", false)
}
- setupNavItemRecyclerView(binding.rvNavSlots, slotAdapter, slots)
// Show labels toggle
val showLabels = prefs.getBoolean("bottom_nav_show_labels", true)
binding.switchShowLabels.isChecked = showLabels
@@ -109,13 +119,18 @@ class SettingsAppearanceFragment : Fragment() {
private fun setupNavItemRecyclerView(
rv: RecyclerView,
adapter: NavItemAdapter,
- items: MutableList
+ items: MutableList,
+ isEnabled: () -> Boolean
) {
rv.layoutManager = LinearLayoutManager(requireContext(), LinearLayoutManager.HORIZONTAL, false)
rv.adapter = adapter
ItemTouchHelper(object : ItemTouchHelper.SimpleCallback(
ItemTouchHelper.START or ItemTouchHelper.END, 0
) {
+ override fun getMovementFlags(recyclerView: RecyclerView, viewHolder: RecyclerView.ViewHolder): Int {
+ if (!isEnabled()) return 0
+ return super.getMovementFlags(recyclerView, viewHolder)
+ }
override fun onMove(
rv: RecyclerView,
from: RecyclerView.ViewHolder,
@@ -134,11 +149,17 @@ class SettingsAppearanceFragment : Fragment() {
private fun updateShortcutsVisibility() {
val isBottom = prefs.getBoolean("bottom_nav", false)
+ binding.sectionQuickActions.alpha = if (isBottom) 0.38f else 1f
binding.sectionBottomBarShortcuts.alpha = if (isBottom) 1f else 0.38f
+ binding.switchShowLabels.isClickable = isBottom
+ quickActionAdapter.notifyDataSetChanged()
+ slotAdapter.notifyDataSetChanged()
}
private fun showItemPicker(items: MutableList, slotIndex: Int, adapter: NavItemAdapter) {
- if (items === slots && !prefs.getBoolean("bottom_nav", false)) return
+ val isBottom = prefs.getBoolean("bottom_nav", false)
+ if (items === slots && !isBottom) return
+ if (items === quickActions && isBottom) return
val ctx = requireContext()
val otherIds = items.filterIndexed { i, _ -> i != slotIndex }.toSet()
val available = NavCustomization.ALL_SWAPPABLE.filter { it.id !in otherIds }
@@ -169,7 +190,8 @@ class SettingsAppearanceFragment : Fragment() {
private inner class NavItemAdapter(
val items: MutableList,
- val onSave: () -> Unit
+ val onSave: () -> Unit,
+ val isEnabled: () -> Boolean = { true }
) : RecyclerView.Adapter() {
inner class VH(view: View) : RecyclerView.ViewHolder(view) {
@@ -191,7 +213,12 @@ class SettingsAppearanceFragment : Fragment() {
val def = NavCustomization.ALL_SWAPPABLE.find { it.id == items[position] } ?: return
holder.ivNavIcon.setImageResource(def.iconRes)
holder.tvNavLabel.setText(def.titleRes)
- holder.itemView.setOnClickListener { showItemPicker(items, holder.adapterPosition, this) }
+ val enabled = isEnabled()
+ holder.itemView.setOnClickListener(
+ if (enabled) View.OnClickListener { showItemPicker(items, holder.adapterPosition, this) }
+ else null
+ )
+ holder.itemView.isClickable = enabled
}
}
diff --git a/app/src/main/java/sh/sar/basedbank/ui/home/TransferHistoryFragment.kt b/app/src/main/java/sh/sar/basedbank/ui/home/TransferHistoryFragment.kt
index 82bac28..0a8d9f1 100644
--- a/app/src/main/java/sh/sar/basedbank/ui/home/TransferHistoryFragment.kt
+++ b/app/src/main/java/sh/sar/basedbank/ui/home/TransferHistoryFragment.kt
@@ -181,6 +181,9 @@ class TransferHistoryFragment : Fragment() {
if (firstBatchDone && allTransactions.isNotEmpty()) {
adapter.showLoadingFooter = true
+ } else if (allTransactions.isEmpty()) {
+ binding.skeletonContainer.visibility = View.VISIBLE
+ binding.emptyView.visibility = View.GONE
}
val app = requireActivity().application as BasedBankApp
@@ -286,6 +289,7 @@ class TransferHistoryFragment : Fragment() {
isLoading = false
if (_binding == null) return@launch
+ binding.skeletonContainer.visibility = View.GONE
val raw = bannerMsg.get()
when {
@@ -329,6 +333,8 @@ class TransferHistoryFragment : Fragment() {
}
adapter.setTransactions(filtered)
binding.emptyView.visibility = if (filtered.isEmpty() && !isLoading) View.VISIBLE else View.GONE
+ binding.skeletonContainer.visibility =
+ if (allTransactions.isEmpty() && isLoading) View.VISIBLE else View.GONE
}
private fun loadContactImage(name: String) {
diff --git a/app/src/main/res/drawable/card_overlay_pill_bg.xml b/app/src/main/res/drawable/card_overlay_pill_bg.xml
new file mode 100644
index 0000000..cf0a838
--- /dev/null
+++ b/app/src/main/res/drawable/card_overlay_pill_bg.xml
@@ -0,0 +1,9 @@
+
+
+
+
+
+
diff --git a/app/src/main/res/layout/activity_home.xml b/app/src/main/res/layout/activity_home.xml
index 3b76046..dbbb6b3 100644
--- a/app/src/main/res/layout/activity_home.xml
+++ b/app/src/main/res/layout/activity_home.xml
@@ -44,8 +44,8 @@
android:id="@+id/connectivityBanner"
android:layout_width="match_parent"
android:layout_height="wrap_content"
- android:background="#C62828"
- android:textColor="#FFFFFF"
+ android:background="?attr/colorErrorContainer"
+ android:textColor="?attr/colorOnErrorContainer"
android:gravity="center"
android:paddingTop="6dp"
android:paddingBottom="6dp"
diff --git a/app/src/main/res/layout/fragment_account_history.xml b/app/src/main/res/layout/fragment_account_history.xml
index 83fb1fc..c368fa3 100644
--- a/app/src/main/res/layout/fragment_account_history.xml
+++ b/app/src/main/res/layout/fragment_account_history.xml
@@ -48,12 +48,28 @@
android:paddingBottom="16dp"
android:clipToPadding="false" />
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/main/res/layout/fragment_activities.xml b/app/src/main/res/layout/fragment_activities.xml
index 0cf9ce9..ab02cc4 100644
--- a/app/src/main/res/layout/fragment_activities.xml
+++ b/app/src/main/res/layout/fragment_activities.xml
@@ -49,7 +49,7 @@
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center"
- android:text="No recent transfers"
+ android:text="@string/activities_empty"
android:textAppearance="?attr/textAppearanceBodyMedium"
android:textColor="?attr/colorOnSurfaceVariant"
android:visibility="gone" />
diff --git a/app/src/main/res/layout/fragment_bank_selection.xml b/app/src/main/res/layout/fragment_bank_selection.xml
index b842035..9780c82 100644
--- a/app/src/main/res/layout/fragment_bank_selection.xml
+++ b/app/src/main/res/layout/fragment_bank_selection.xml
@@ -38,7 +38,7 @@
android:layout_marginBottom="16dp"
android:clickable="true"
android:focusable="true"
- app:cardCornerRadius="16dp"
+ app:cardCornerRadius="@dimen/card_radius_lg"
app:strokeWidth="1dp"
app:strokeColor="?attr/colorOutline">
@@ -81,7 +81,7 @@
android:layout_marginBottom="16dp"
android:clickable="true"
android:focusable="true"
- app:cardCornerRadius="16dp"
+ app:cardCornerRadius="@dimen/card_radius_lg"
app:strokeWidth="1dp"
app:strokeColor="?attr/colorOutline">
@@ -125,7 +125,7 @@
android:layout_marginBottom="16dp"
android:clickable="true"
android:focusable="true"
- app:cardCornerRadius="16dp"
+ app:cardCornerRadius="@dimen/card_radius_lg"
app:strokeWidth="1dp"
app:strokeColor="?attr/colorOutline">
diff --git a/app/src/main/res/layout/fragment_credentials.xml b/app/src/main/res/layout/fragment_credentials.xml
index 55ef8fe..f5a0a85 100644
--- a/app/src/main/res/layout/fragment_credentials.xml
+++ b/app/src/main/res/layout/fragment_credentials.xml
@@ -117,8 +117,8 @@
android:layout_marginBottom="8dp"
android:visibility="invisible"
app:cardBackgroundColor="?attr/colorSecondaryContainer"
- app:cardCornerRadius="12dp"
- app:cardElevation="0dp">
+ app:cardCornerRadius="@dimen/card_radius_md"
+ app:cardElevation="@dimen/card_elevation_flat">
+ android:padding="@dimen/screen_margin">
+ app:cardElevation="@dimen/card_elevation_raised"
+ app:cardCornerRadius="@dimen/card_radius_md">
+ android:textAppearance="?attr/textAppearanceTitleMedium"
+ android:fontFeatureSettings="tnum" />
@@ -67,8 +68,8 @@
android:layout_height="wrap_content"
android:layout_weight="1"
android:layout_marginStart="8dp"
- app:cardElevation="1dp"
- app:cardCornerRadius="12dp">
+ app:cardElevation="@dimen/card_elevation_raised"
+ app:cardCornerRadius="@dimen/card_radius_md">
+ android:textAppearance="?attr/textAppearanceTitleMedium"
+ android:fontFeatureSettings="tnum" />
@@ -112,8 +114,8 @@
android:layout_height="wrap_content"
android:layout_weight="1"
android:layout_marginEnd="8dp"
- app:cardElevation="1dp"
- app:cardCornerRadius="12dp">
+ app:cardElevation="@dimen/card_elevation_raised"
+ app:cardCornerRadius="@dimen/card_radius_md">
+ android:textAppearance="?attr/textAppearanceTitleMedium"
+ android:fontFeatureSettings="tnum" />
@@ -146,8 +149,8 @@
android:layout_height="wrap_content"
android:layout_weight="1"
android:layout_marginStart="8dp"
- app:cardElevation="1dp"
- app:cardCornerRadius="12dp">
+ app:cardElevation="@dimen/card_elevation_raised"
+ app:cardCornerRadius="@dimen/card_radius_md">
+ android:textAppearance="?attr/textAppearanceTitleMedium"
+ android:fontFeatureSettings="tnum" />
@@ -191,8 +195,8 @@
android:layout_height="wrap_content"
android:layout_weight="1"
android:layout_marginEnd="8dp"
- app:cardElevation="1dp"
- app:cardCornerRadius="12dp"
+ app:cardElevation="@dimen/card_elevation_raised"
+ app:cardCornerRadius="@dimen/card_radius_md"
app:cardBackgroundColor="?attr/colorErrorContainer"
android:visibility="gone">
@@ -216,7 +220,8 @@
android:layout_marginTop="4dp"
android:text="MVR —"
android:textAppearance="?attr/textAppearanceTitleMedium"
- android:textColor="?attr/colorOnErrorContainer" />
+ android:textColor="?attr/colorOnErrorContainer"
+ android:fontFeatureSettings="tnum" />
@@ -238,8 +244,8 @@
android:layout_height="wrap_content"
android:layout_weight="1"
android:layout_marginStart="8dp"
- app:cardElevation="1dp"
- app:cardCornerRadius="12dp"
+ app:cardElevation="@dimen/card_elevation_raised"
+ app:cardCornerRadius="@dimen/card_radius_md"
app:cardBackgroundColor="?attr/colorErrorContainer"
android:clickable="true"
android:focusable="true"
@@ -265,7 +271,8 @@
android:layout_marginTop="4dp"
android:text="MVR —"
android:textAppearance="?attr/textAppearanceTitleMedium"
- android:textColor="?attr/colorOnErrorContainer" />
+ android:textColor="?attr/colorOnErrorContainer"
+ android:fontFeatureSettings="tnum" />
@@ -279,8 +286,8 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
- app:cardElevation="1dp"
- app:cardCornerRadius="12dp"
+ app:cardElevation="@dimen/card_elevation_raised"
+ app:cardCornerRadius="@dimen/card_radius_md"
android:clickable="true"
android:focusable="true">
@@ -303,7 +310,8 @@
android:layout_height="wrap_content"
android:layout_marginTop="4dp"
android:text="MVR —"
- android:textAppearance="?attr/textAppearanceTitleMedium" />
+ android:textAppearance="?attr/textAppearanceTitleMedium"
+ android:fontFeatureSettings="tnum" />
diff --git a/app/src/main/res/layout/fragment_security_setup.xml b/app/src/main/res/layout/fragment_security_setup.xml
index 7146e00..2204712 100644
--- a/app/src/main/res/layout/fragment_security_setup.xml
+++ b/app/src/main/res/layout/fragment_security_setup.xml
@@ -52,7 +52,7 @@
android:layout_marginBottom="12dp"
android:clickable="true"
android:focusable="true"
- app:cardCornerRadius="16dp"
+ app:cardCornerRadius="@dimen/card_radius_lg"
app:strokeWidth="1dp"
app:strokeColor="?attr/colorOutline">
-
-
-
-
+
+ android:orientation="vertical"
+ android:layout_marginBottom="16dp">
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/main/res/layout/item_account.xml b/app/src/main/res/layout/item_account.xml
index 56329ff..1abb384 100644
--- a/app/src/main/res/layout/item_account.xml
+++ b/app/src/main/res/layout/item_account.xml
@@ -9,8 +9,8 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
- android:paddingHorizontal="16dp"
- android:paddingVertical="14dp"
+ android:paddingHorizontal="@dimen/list_item_padding_h"
+ android:paddingVertical="@dimen/list_item_padding_v"
android:gravity="center_vertical"
android:foreground="?attr/selectableItemBackground">
@@ -70,7 +70,8 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?attr/textAppearanceTitleSmall"
- android:textColor="?attr/colorOnSurface" />
+ android:textColor="?attr/colorOnSurface"
+ android:fontFeatureSettings="tnum" />
@@ -49,7 +50,8 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?attr/textAppearanceBodySmall"
- android:textColor="?attr/colorOnSurface" />
+ android:textColor="?attr/colorOnSurface"
+ android:fontFeatureSettings="tnum" />
diff --git a/app/src/main/res/layout/item_account_history_header.xml b/app/src/main/res/layout/item_account_history_header.xml
index 2866877..019a0f3 100644
--- a/app/src/main/res/layout/item_account_history_header.xml
+++ b/app/src/main/res/layout/item_account_history_header.xml
@@ -7,8 +7,8 @@
android:layout_marginHorizontal="16dp"
android:layout_marginTop="12dp"
android:layout_marginBottom="8dp"
- app:cardCornerRadius="16dp"
- app:cardElevation="0dp"
+ app:cardCornerRadius="@dimen/card_radius_lg"
+ app:cardElevation="@dimen/card_elevation_flat"
app:strokeWidth="1dp"
app:strokeColor="?attr/colorOutlineVariant">
@@ -114,7 +114,8 @@
android:layout_height="wrap_content"
android:textAppearance="?attr/textAppearanceTitleMedium"
android:textColor="?attr/colorOnSurface"
- android:layout_marginTop="2dp" />
+ android:layout_marginTop="2dp"
+ android:fontFeatureSettings="tnum" />
@@ -137,7 +138,8 @@
android:layout_height="wrap_content"
android:textAppearance="?attr/textAppearanceTitleMedium"
android:textColor="?attr/colorOnSurface"
- android:layout_marginTop="2dp" />
+ android:layout_marginTop="2dp"
+ android:fontFeatureSettings="tnum" />
@@ -162,7 +164,8 @@
android:layout_height="wrap_content"
android:textAppearance="?attr/textAppearanceTitleMedium"
android:textColor="?attr/colorError"
- android:layout_marginTop="2dp" />
+ android:layout_marginTop="2dp"
+ android:fontFeatureSettings="tnum" />
diff --git a/app/src/main/res/layout/item_bml_loan.xml b/app/src/main/res/layout/item_bml_loan.xml
index 5f40222..daa36b1 100644
--- a/app/src/main/res/layout/item_bml_loan.xml
+++ b/app/src/main/res/layout/item_bml_loan.xml
@@ -5,8 +5,10 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="12dp"
- app:cardCornerRadius="16dp"
- app:cardElevation="0dp"
+ android:clickable="true"
+ android:focusable="true"
+ app:cardCornerRadius="@dimen/card_radius_lg"
+ app:cardElevation="@dimen/card_elevation_flat"
app:strokeWidth="1dp"
app:strokeColor="?attr/colorOutlineVariant">
@@ -51,11 +53,7 @@
android:id="@+id/tvLoanStatus"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:paddingHorizontal="10dp"
- android:paddingVertical="4dp"
- android:background="@drawable/chip_background"
- android:textAppearance="?attr/textAppearanceLabelSmall"
- android:textColor="?attr/colorOnSecondaryContainer" />
+ style="@style/Widget.App.StatusChip" />
diff --git a/app/src/main/res/layout/item_card.xml b/app/src/main/res/layout/item_card.xml
index 53285eb..828457b 100644
--- a/app/src/main/res/layout/item_card.xml
+++ b/app/src/main/res/layout/item_card.xml
@@ -9,8 +9,8 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
- android:paddingHorizontal="16dp"
- android:paddingVertical="14dp"
+ android:paddingHorizontal="@dimen/list_item_padding_h"
+ android:paddingVertical="@dimen/list_item_padding_v"
android:gravity="center_vertical"
android:foreground="?attr/selectableItemBackground">
@@ -83,7 +83,8 @@
android:layout_height="wrap_content"
android:textAppearance="?attr/textAppearanceTitleSmall"
android:textColor="?attr/colorOnSurface"
- android:layout_marginTop="6dp" />
+ android:layout_marginTop="6dp"
+ android:fontFeatureSettings="tnum" />
@@ -51,11 +53,7 @@
android:id="@+id/tvStatus"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:paddingHorizontal="10dp"
- android:paddingVertical="4dp"
- android:background="@drawable/chip_background"
- android:textAppearance="?attr/textAppearanceLabelSmall"
- android:textColor="?attr/colorOnSecondaryContainer" />
+ style="@style/Widget.App.StatusChip" />
diff --git a/app/src/main/res/layout/item_foreign_limit.xml b/app/src/main/res/layout/item_foreign_limit.xml
index 7e76177..0c05bd6 100644
--- a/app/src/main/res/layout/item_foreign_limit.xml
+++ b/app/src/main/res/layout/item_foreign_limit.xml
@@ -5,8 +5,10 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
- app:cardElevation="1dp"
- app:cardCornerRadius="12dp">
+ android:clickable="true"
+ android:focusable="true"
+ app:cardElevation="@dimen/card_elevation_raised"
+ app:cardCornerRadius="@dimen/card_radius_md">
+ android:layout_marginEnd="16dp"
+ android:importantForAccessibility="no" />
+ android:layout_marginBottom="6dp"
+ android:importantForAccessibility="no" />
+ app:cardCornerRadius="@dimen/card_radius_lg"
+ app:cardElevation="@dimen/card_elevation_raised">
diff --git a/app/src/main/res/layout/item_profile_header.xml b/app/src/main/res/layout/item_profile_header.xml
index c7b8285..2df4673 100644
--- a/app/src/main/res/layout/item_profile_header.xml
+++ b/app/src/main/res/layout/item_profile_header.xml
@@ -20,10 +20,6 @@
android:id="@+id/tvProfileType"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:paddingHorizontal="10dp"
- android:paddingVertical="4dp"
- android:background="@drawable/chip_background"
- android:textAppearance="?attr/textAppearanceLabelSmall"
- android:textColor="?attr/colorOnSecondaryContainer" />
+ style="@style/Widget.App.StatusChip" />
diff --git a/app/src/main/res/layout/item_transaction.xml b/app/src/main/res/layout/item_transaction.xml
index 83c64e7..3141f8d 100644
--- a/app/src/main/res/layout/item_transaction.xml
+++ b/app/src/main/res/layout/item_transaction.xml
@@ -86,6 +86,7 @@
android:layout_height="wrap_content"
android:textAppearance="?attr/textAppearanceTitleSmall"
android:textStyle="bold"
+ android:fontFeatureSettings="tnum"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="@id/fvAvatar"
app:layout_constraintBottom_toBottomOf="@id/fvAvatar" />
diff --git a/app/src/main/res/layout/sheet_add_contact.xml b/app/src/main/res/layout/sheet_add_contact.xml
index 47364ce..5e8021e 100644
--- a/app/src/main/res/layout/sheet_add_contact.xml
+++ b/app/src/main/res/layout/sheet_add_contact.xml
@@ -65,8 +65,8 @@
android:layout_height="wrap_content"
android:layout_marginBottom="12dp"
android:visibility="gone"
- app:cardCornerRadius="12dp"
- app:cardElevation="2dp">
+ app:cardCornerRadius="@dimen/card_radius_md"
+ app:cardElevation="@dimen/card_elevation_raised">
8dp
176dp
16dp
-
\ No newline at end of file
+
+
+
+
+ 16dp
+ 12dp
+
+
+ 0dp
+ 1dp
+
+
+ 16dp
+ 16dp
+
+
+ 16dp
+ 14dp
+
+
+ 2dp
+ 4dp
+ 8dp
+ 12dp
+
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 8c0fc41..4e84a2f 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -255,6 +255,8 @@
No accounts found
+ No recent transfers
+ No transactions found
No contacts found
diff --git a/app/src/main/res/values/themes.xml b/app/src/main/res/values/themes.xml
index c47bc14..abd5ed0 100644
--- a/app/src/main/res/values/themes.xml
+++ b/app/src/main/res/values/themes.xml
@@ -1,6 +1,15 @@
+
+
+