From 5cba468781b487f713044491057884d6bb675621 Mon Sep 17 00:00:00 2001 From: Shihaam Abdul Rahman Date: Thu, 28 May 2026 17:09:45 +0500 Subject: [PATCH 1/5] debug builds has debug suffix and different launcher icon color --- .../res/drawable/ic_launcher_background.xml | 10 ++++ app/src/debug/res/values/strings.xml | 4 ++ .../basedbank/ui/home/DashboardFragment.kt | 6 +++ .../ui/home/SettingsAppearanceFragment.kt | 49 ++++++++++++++----- .../layout/fragment_settings_appearance.xml | 36 ++++++++------ 5 files changed, 80 insertions(+), 25 deletions(-) create mode 100644 app/src/debug/res/drawable/ic_launcher_background.xml create mode 100644 app/src/debug/res/values/strings.xml 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/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/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/res/layout/fragment_settings_appearance.xml b/app/src/main/res/layout/fragment_settings_appearance.xml index 6cddf24..12d6416 100644 --- a/app/src/main/res/layout/fragment_settings_appearance.xml +++ b/app/src/main/res/layout/fragment_settings_appearance.xml @@ -45,22 +45,30 @@ - - - - + + android:orientation="vertical" + android:layout_marginBottom="16dp"> + + + + + + Date: Thu, 28 May 2026 17:20:16 +0500 Subject: [PATCH 2/5] ui: tokenize card surfaces in dimens.xml and sweep layouts MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Introduces a small set of design tokens for card surfaces so the same look is enforced everywhere instead of being hand-tuned per layout: card_radius_lg / card_radius_md — 16dp / 12dp two-tier radius card_elevation_flat / *_raised — 0dp outlined / 1dp subtle raise Sweeps the existing layouts onto these tokens. Two-tier policy: lg → hero/standalone cards (account history header, bml loan, finance deal, otp card, bank selection tiles, security setup options) md → repeating row/summary cards (dashboard summary cards, credentials inset, foreign limit, add-contact sheet) Card-visual representations (item_card_dashboard / _stack / _wallet / _settings_entry) deliberately keep their bespoke radius/elevation so they continue to read as credit cards — the tokens are for content cards only. Tight inset frames inside fragment_bml_qr_pay and fragment_transfer also remain on 4dp/0dp as form details. Co-Authored-By: Claude Opus 4.7 (1M context) --- .../res/layout/fragment_bank_selection.xml | 6 ++-- .../main/res/layout/fragment_credentials.xml | 4 +-- .../main/res/layout/fragment_dashboard.xml | 28 +++++++-------- .../res/layout/fragment_security_setup.xml | 4 +-- .../layout/item_account_history_header.xml | 4 +-- app/src/main/res/layout/item_bml_loan.xml | 4 +-- app/src/main/res/layout/item_finance_deal.xml | 4 +-- .../main/res/layout/item_foreign_limit.xml | 4 +-- app/src/main/res/layout/item_otp_card.xml | 4 +-- app/src/main/res/layout/sheet_add_contact.xml | 4 +-- app/src/main/res/values/dimens.xml | 34 ++++++++++++++++++- 11 files changed, 66 insertions(+), 34 deletions(-) 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"> + app:cardElevation="@dimen/card_elevation_raised" + app:cardCornerRadius="@dimen/card_radius_md"> + app:cardElevation="@dimen/card_elevation_raised" + app:cardCornerRadius="@dimen/card_radius_md"> + app:cardElevation="@dimen/card_elevation_raised" + app:cardCornerRadius="@dimen/card_radius_md"> + app:cardElevation="@dimen/card_elevation_raised" + app:cardCornerRadius="@dimen/card_radius_md"> @@ -238,8 +238,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" @@ -279,8 +279,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"> 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"> diff --git a/app/src/main/res/layout/item_bml_loan.xml b/app/src/main/res/layout/item_bml_loan.xml index 5f40222..2a2b5a3 100644 --- a/app/src/main/res/layout/item_bml_loan.xml +++ b/app/src/main/res/layout/item_bml_loan.xml @@ -5,8 +5,8 @@ android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginBottom="12dp" - 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"> diff --git a/app/src/main/res/layout/item_finance_deal.xml b/app/src/main/res/layout/item_finance_deal.xml index 4e33e4d..c5d8b88 100644 --- a/app/src/main/res/layout/item_finance_deal.xml +++ b/app/src/main/res/layout/item_finance_deal.xml @@ -5,8 +5,8 @@ android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginBottom="12dp" - 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"> diff --git a/app/src/main/res/layout/item_foreign_limit.xml b/app/src/main/res/layout/item_foreign_limit.xml index 7e76177..fdfd8da 100644 --- a/app/src/main/res/layout/item_foreign_limit.xml +++ b/app/src/main/res/layout/item_foreign_limit.xml @@ -5,8 +5,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"> + app:cardCornerRadius="@dimen/card_radius_lg" + app:cardElevation="@dimen/card_elevation_raised"> + 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 + -- 2.52.0 From 29ac4352ffe4251d1f8921adea572cc8ee1e6667 Mon Sep 17 00:00:00 2001 From: ahusan Date: Thu, 28 May 2026 17:32:18 +0500 Subject: [PATCH 3/5] ui: swap list-item and screen-margin paddings onto tokens MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Replaces hardcoded paddings in the three layouts that share the standard 16dp/14dp list-row pattern (item_account, item_card, item_more_nav) with @dimen/list_item_padding_h / list_item_padding_v. Dashboard root content padding becomes @dimen/screen_margin. Card content paddings inside the dashboard are left as raw 16dp — they're a separate semantic (card-interior padding, not screen edge) and will be addressed once we either need a distinct token or have a reason to change them. Co-Authored-By: Claude Opus 4.7 (1M context) --- app/src/main/res/layout/fragment_dashboard.xml | 2 +- app/src/main/res/layout/item_account.xml | 4 ++-- app/src/main/res/layout/item_card.xml | 4 ++-- app/src/main/res/layout/item_more_nav.xml | 4 ++-- 4 files changed, 7 insertions(+), 7 deletions(-) diff --git a/app/src/main/res/layout/fragment_dashboard.xml b/app/src/main/res/layout/fragment_dashboard.xml index 17ec6e6..667ca7a 100644 --- a/app/src/main/res/layout/fragment_dashboard.xml +++ b/app/src/main/res/layout/fragment_dashboard.xml @@ -21,7 +21,7 @@ android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical" - android:padding="16dp"> + android:padding="@dimen/screen_margin"> diff --git a/app/src/main/res/layout/item_card.xml b/app/src/main/res/layout/item_card.xml index 53285eb..a08d3ee 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"> diff --git a/app/src/main/res/layout/item_more_nav.xml b/app/src/main/res/layout/item_more_nav.xml index 27e9999..3d9db65 100644 --- a/app/src/main/res/layout/item_more_nav.xml +++ b/app/src/main/res/layout/item_more_nav.xml @@ -5,8 +5,8 @@ android:layout_height="wrap_content" android:orientation="horizontal" android:gravity="center_vertical" - android:paddingHorizontal="16dp" - android:paddingVertical="14dp" + android:paddingHorizontal="@dimen/list_item_padding_h" + android:paddingVertical="@dimen/list_item_padding_v" android:background="?attr/selectableItemBackground"> Date: Thu, 28 May 2026 17:48:23 +0500 Subject: [PATCH 4/5] =?UTF-8?q?ui:=20pass=202=20=E2=80=94=20pill=20style,?= =?UTF-8?q?=20tabular=20figures,=20ripple=20feedback,=20empty=20strings?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Status pills: * New Widget.App.StatusChip style bundling the 10dp/4dp padding + chip_background + label-small text used in 3 places (item_bml_loan, item_finance_deal, item_profile_header). The 3 layouts now apply the style instead of repeating 4 attributes each. * Extract the bindCardStatus card-overlay pill background from inline GradientDrawable code into a real drawable resource (card_overlay_pill_bg.xml). PayWithCardFragment.bindCardStatus just sets a background resource now. Tabular figures (android:fontFeatureSettings="tnum"): * Applied to amount TextViews on the highest-traffic surfaces — transactions list, accounts list, card list, dashboard balance / credit / blocked / overdue / pending finances totals, and the account history header (available / balance / blocked). * Digits become same-width, so right-aligned amounts in a column line up. Ripple feedback: * item_finance_deal, item_bml_loan, item_foreign_limit get android:clickable="true" android:focusable="true" so their MaterialCardView roots show the M3 ripple when the adapter attaches a click listener. All three are clickable from code but were missing the ripple cue. Empty-state strings: * Hardcoded "No recent transfers" / "No transactions found" in fragment_activities, fragment_transfer_history, and fragment_account_history moved to strings.xml as activities_empty / transactions_empty, matching the existing accounts_empty / contacts_empty / financing_empty pattern. Co-Authored-By: Claude Opus 4.7 (1M context) --- .../basedbank/ui/home/PayWithCardFragment.kt | 7 +----- .../res/drawable/card_overlay_pill_bg.xml | 9 ++++++++ .../res/layout/fragment_account_history.xml | 2 +- .../main/res/layout/fragment_activities.xml | 2 +- .../main/res/layout/fragment_dashboard.xml | 22 +++++++++++++------ .../res/layout/fragment_transfer_history.xml | 2 +- app/src/main/res/layout/item_account.xml | 4 +++- .../layout/item_account_history_header.xml | 9 +++++--- app/src/main/res/layout/item_bml_loan.xml | 8 +++---- app/src/main/res/layout/item_card.xml | 3 ++- app/src/main/res/layout/item_finance_deal.xml | 8 +++---- .../main/res/layout/item_foreign_limit.xml | 2 ++ .../main/res/layout/item_profile_header.xml | 6 +---- app/src/main/res/layout/item_transaction.xml | 1 + app/src/main/res/values/strings.xml | 2 ++ app/src/main/res/values/themes.xml | 9 ++++++++ 16 files changed, 60 insertions(+), 36 deletions(-) create mode 100644 app/src/main/res/drawable/card_overlay_pill_bg.xml 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/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/fragment_account_history.xml b/app/src/main/res/layout/fragment_account_history.xml index 83fb1fc..6e823cf 100644 --- a/app/src/main/res/layout/fragment_account_history.xml +++ b/app/src/main/res/layout/fragment_account_history.xml @@ -53,7 +53,7 @@ android:layout_width="match_parent" android:layout_height="match_parent" android:gravity="center" - android:text="No transactions found" + android:text="@string/transactions_empty" android:textAppearance="?attr/textAppearanceBodyMedium" android:textColor="?attr/colorOnSurfaceVariant" android:visibility="gone" /> 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_dashboard.xml b/app/src/main/res/layout/fragment_dashboard.xml index 667ca7a..f4e6a21 100644 --- a/app/src/main/res/layout/fragment_dashboard.xml +++ b/app/src/main/res/layout/fragment_dashboard.xml @@ -56,7 +56,8 @@ android:layout_height="wrap_content" android:layout_marginTop="4dp" android:text="MVR —" - android:textAppearance="?attr/textAppearanceTitleMedium" /> + android:textAppearance="?attr/textAppearanceTitleMedium" + android:fontFeatureSettings="tnum" /> @@ -89,7 +90,8 @@ android:layout_height="wrap_content" android:layout_marginTop="4dp" android:text="USD —" - android:textAppearance="?attr/textAppearanceTitleMedium" /> + android:textAppearance="?attr/textAppearanceTitleMedium" + android:fontFeatureSettings="tnum" /> @@ -134,7 +136,8 @@ android:layout_height="wrap_content" android:layout_marginTop="4dp" android:text="MVR —" - android:textAppearance="?attr/textAppearanceTitleMedium" /> + android:textAppearance="?attr/textAppearanceTitleMedium" + android:fontFeatureSettings="tnum" /> @@ -168,7 +171,8 @@ android:layout_height="wrap_content" android:layout_marginTop="4dp" android:text="USD —" - android:textAppearance="?attr/textAppearanceTitleMedium" /> + android:textAppearance="?attr/textAppearanceTitleMedium" + android:fontFeatureSettings="tnum" /> @@ -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" /> @@ -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" /> @@ -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_transfer_history.xml b/app/src/main/res/layout/fragment_transfer_history.xml index 17acd5d..ce33d3d 100644 --- a/app/src/main/res/layout/fragment_transfer_history.xml +++ b/app/src/main/res/layout/fragment_transfer_history.xml @@ -54,7 +54,7 @@ android:layout_width="match_parent" android:layout_height="match_parent" android:gravity="center" - android:text="No transactions found" + android:text="@string/transactions_empty" android:textAppearance="?attr/textAppearanceBodyMedium" android:textColor="?attr/colorOnSurfaceVariant" android:visibility="gone" /> diff --git a/app/src/main/res/layout/item_account.xml b/app/src/main/res/layout/item_account.xml index 974dd24..1abb384 100644 --- a/app/src/main/res/layout/item_account.xml +++ b/app/src/main/res/layout/item_account.xml @@ -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" /> + 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 2a2b5a3..daa36b1 100644 --- a/app/src/main/res/layout/item_bml_loan.xml +++ b/app/src/main/res/layout/item_bml_loan.xml @@ -5,6 +5,8 @@ android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginBottom="12dp" + android:clickable="true" + android:focusable="true" app:cardCornerRadius="@dimen/card_radius_lg" app:cardElevation="@dimen/card_elevation_flat" app:strokeWidth="1dp" @@ -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 a08d3ee..828457b 100644 --- a/app/src/main/res/layout/item_card.xml +++ b/app/src/main/res/layout/item_card.xml @@ -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" /> + 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 fdfd8da..0c05bd6 100644 --- a/app/src/main/res/layout/item_foreign_limit.xml +++ b/app/src/main/res/layout/item_foreign_limit.xml @@ -5,6 +5,8 @@ android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="16dp" + android:clickable="true" + android:focusable="true" app:cardElevation="@dimen/card_elevation_raised" app:cardCornerRadius="@dimen/card_radius_md"> 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/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 @@ +