diff --git a/app/src/main/java/sh/sar/basedbank/ui/home/HomeActivity.kt b/app/src/main/java/sh/sar/basedbank/ui/home/HomeActivity.kt index b9cf381..33edf89 100644 --- a/app/src/main/java/sh/sar/basedbank/ui/home/HomeActivity.kt +++ b/app/src/main/java/sh/sar/basedbank/ui/home/HomeActivity.kt @@ -94,8 +94,9 @@ class HomeActivity : AppCompatActivity() { when (item.itemId) { R.id.nav_dashboard -> { show(DashboardFragment()); true } R.id.nav_accounts -> { show(AccountsFragment()); true } + R.id.nav_contacts -> { show(ContactsFragment()); true } R.id.nav_transfer -> { show(TransferFragment()); true } - R.id.nav_more -> { showMoreSheet(); false } + R.id.nav_more -> { show(MoreFragment()); true } else -> false } } @@ -104,16 +105,7 @@ class HomeActivity : AppCompatActivity() { binding.navigationView.setNavigationItemSelectedListener { item -> binding.drawerLayout.closeDrawers() - when (item.itemId) { - R.id.nav_dashboard -> show(DashboardFragment()) - R.id.nav_accounts -> show(AccountsFragment()) - R.id.nav_contacts -> show(ContactsFragment()) - R.id.nav_transfer_history -> show(TransferHistoryFragment()) - R.id.nav_finances -> show(FinancingFragment()) - R.id.nav_otp -> show(OtpFragment()) - R.id.nav_settings -> show(SettingsFragment()) - else -> Toast.makeText(this, R.string.work_in_progress, Toast.LENGTH_SHORT).show() - } + navigateTo(item.itemId) true } @@ -205,19 +197,18 @@ class HomeActivity : AppCompatActivity() { } } - private fun showMoreSheet() { - val sheet = NavMoreSheetFragment() - sheet.onNavigate = { itemId -> - when (itemId) { - R.id.nav_contacts -> show(ContactsFragment()) - R.id.nav_transfer_history -> show(TransferHistoryFragment()) - R.id.nav_finances -> show(FinancingFragment()) - R.id.nav_otp -> show(OtpFragment()) - R.id.nav_settings -> show(SettingsFragment()) - else -> Toast.makeText(this, R.string.work_in_progress, Toast.LENGTH_SHORT).show() - } + fun navigateTo(itemId: Int) { + when (itemId) { + R.id.nav_dashboard -> show(DashboardFragment()) + R.id.nav_accounts -> show(AccountsFragment()) + R.id.nav_contacts -> show(ContactsFragment()) + R.id.nav_transfer -> show(TransferFragment()) + R.id.nav_transfer_history -> show(TransferHistoryFragment()) + R.id.nav_finances -> show(FinancingFragment()) + R.id.nav_otp -> show(OtpFragment()) + R.id.nav_settings -> show(SettingsFragment()) + else -> Toast.makeText(this, R.string.work_in_progress, Toast.LENGTH_SHORT).show() } - sheet.show(supportFragmentManager, "nav_more") } fun setRefreshing(visible: Boolean) { diff --git a/app/src/main/java/sh/sar/basedbank/ui/home/MoreFragment.kt b/app/src/main/java/sh/sar/basedbank/ui/home/MoreFragment.kt new file mode 100644 index 0000000..9d62aa9 --- /dev/null +++ b/app/src/main/java/sh/sar/basedbank/ui/home/MoreFragment.kt @@ -0,0 +1,47 @@ +package sh.sar.basedbank.ui.home + +import android.os.Bundle +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import android.widget.ImageView +import android.widget.LinearLayout +import android.widget.TextView +import androidx.annotation.DrawableRes +import androidx.annotation.StringRes +import androidx.fragment.app.Fragment +import sh.sar.basedbank.R + +class MoreFragment : Fragment() { + + private data class NavItem(val id: Int, @DrawableRes val icon: Int, @StringRes val title: Int) + + private val items = listOf( + NavItem(R.id.nav_activities, R.drawable.ic_nav_activities, R.string.nav_activities), + NavItem(R.id.nav_transfer_history, R.drawable.ic_nav_transfer_history, R.string.nav_transfer_history), + NavItem(R.id.nav_finances, R.drawable.ic_nav_finances, R.string.nav_finances), + NavItem(R.id.nav_card_settings, R.drawable.ic_nav_card, R.string.nav_card_settings), + NavItem(R.id.nav_otp, R.drawable.ic_nav_otp, R.string.nav_otp), + NavItem(R.id.nav_settings, R.drawable.ic_nav_settings, R.string.nav_settings), + ) + + override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View = + inflater.inflate(R.layout.fragment_more, container, false) + + override fun onViewCreated(view: View, savedInstanceState: Bundle?) { + val list = view.findViewById(R.id.moreList) + val inflater = LayoutInflater.from(requireContext()) + for (item in items) { + val row = inflater.inflate(R.layout.item_more_nav, list, false) + row.findViewById(R.id.ivIcon).setImageResource(item.icon) + row.findViewById(R.id.tvLabel).setText(item.title) + row.setOnClickListener { (requireActivity() as HomeActivity).navigateTo(item.id) } + list.addView(row) + } + } + + override fun onResume() { + super.onResume() + requireActivity().title = getString(R.string.nav_more) + } +} diff --git a/app/src/main/res/drawable/ic_nav_accounts.xml b/app/src/main/res/drawable/ic_nav_accounts.xml index d9d72e7..b3e2cc3 100644 --- a/app/src/main/res/drawable/ic_nav_accounts.xml +++ b/app/src/main/res/drawable/ic_nav_accounts.xml @@ -3,5 +3,5 @@ android:width="24dp" android:height="24dp" android:viewportWidth="24" android:viewportHeight="24"> + android:pathData="M21,18v1c0,1.1 -0.9,2 -2,2H5c-1.11,0 -2,-0.9 -2,-2V4c0,-1.1 0.89,-2 2,-2h14c1.1,0 2,0.9 2,2v1h-9c-1.11,0 -2,0.9 -2,2v10c0,1.1 0.89,2 2,2h9zM12,16h10V8H12v8zM16,13.5c-0.83,0 -1.5,-0.67 -1.5,-1.5s0.67,-1.5 1.5,-1.5 1.5,0.67 1.5,1.5 -0.67,1.5 -1.5,1.5z"/> diff --git a/app/src/main/res/layout/fragment_more.xml b/app/src/main/res/layout/fragment_more.xml new file mode 100644 index 0000000..19227f2 --- /dev/null +++ b/app/src/main/res/layout/fragment_more.xml @@ -0,0 +1,16 @@ + + + + + + diff --git a/app/src/main/res/layout/item_more_nav.xml b/app/src/main/res/layout/item_more_nav.xml new file mode 100644 index 0000000..d2e5dd4 --- /dev/null +++ b/app/src/main/res/layout/item_more_nav.xml @@ -0,0 +1,27 @@ + + + + + + + + + diff --git a/app/src/main/res/menu/bottom_nav_menu.xml b/app/src/main/res/menu/bottom_nav_menu.xml index 1dcfc24..f99f6fd 100644 --- a/app/src/main/res/menu/bottom_nav_menu.xml +++ b/app/src/main/res/menu/bottom_nav_menu.xml @@ -6,6 +6,9 @@ + diff --git a/app/src/main/res/menu/more_nav_menu.xml b/app/src/main/res/menu/more_nav_menu.xml index a257e6d..2755ffc 100644 --- a/app/src/main/res/menu/more_nav_menu.xml +++ b/app/src/main/res/menu/more_nav_menu.xml @@ -1,8 +1,5 @@ -