From 5cba468781b487f713044491057884d6bb675621 Mon Sep 17 00:00:00 2001 From: Shihaam Abdul Rahman Date: Thu, 28 May 2026 17:09:45 +0500 Subject: [PATCH] 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"> + + + + + +