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 2dcc068..c4a640a 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 @@ -10,6 +10,8 @@ import android.util.Base64 import android.view.LayoutInflater import android.view.View import android.view.ViewGroup +import androidx.core.view.ViewCompat +import androidx.core.view.WindowInsetsCompat import androidx.fragment.app.Fragment import androidx.fragment.app.activityViewModels import androidx.lifecycle.lifecycleScope @@ -77,6 +79,16 @@ class AccountHistoryFragment : Fragment() { } binding.recyclerView.layoutManager = LinearLayoutManager(requireContext()) binding.recyclerView.adapter = adapter + + val bottomPaddingBase = (16 * resources.displayMetrics.density).toInt() + ViewCompat.setOnApplyWindowInsetsListener(binding.recyclerView) { v, insets -> + val isBottomNav = requireContext().getSharedPreferences("prefs", android.content.Context.MODE_PRIVATE).getBoolean("bottom_nav", false) + val navBar = insets.getInsets(WindowInsetsCompat.Type.systemBars()) + val extraBottom = if (isBottomNav) 0 else navBar.bottom + v.setPadding(v.paddingLeft, v.paddingTop, v.paddingRight, bottomPaddingBase + extraBottom) + insets + } + binding.recyclerView.addOnScrollListener(object : RecyclerView.OnScrollListener() { override fun onScrolled(rv: RecyclerView, dx: Int, dy: Int) { if (dy <= 0 || isLoading) return diff --git a/app/src/main/java/sh/sar/basedbank/ui/home/AccountsFragment.kt b/app/src/main/java/sh/sar/basedbank/ui/home/AccountsFragment.kt index 4b6f2a2..5d26f9b 100644 --- a/app/src/main/java/sh/sar/basedbank/ui/home/AccountsFragment.kt +++ b/app/src/main/java/sh/sar/basedbank/ui/home/AccountsFragment.kt @@ -4,6 +4,8 @@ import android.os.Bundle import android.view.LayoutInflater import android.view.View import android.view.ViewGroup +import androidx.core.view.ViewCompat +import androidx.core.view.WindowInsetsCompat import androidx.fragment.app.Fragment import androidx.fragment.app.activityViewModels import androidx.recyclerview.widget.LinearLayoutManager @@ -32,6 +34,15 @@ class AccountsFragment : Fragment() { binding.recyclerView.layoutManager = LinearLayoutManager(requireContext()) binding.recyclerView.adapter = adapter + val bottomPaddingBase = (16 * resources.displayMetrics.density).toInt() + ViewCompat.setOnApplyWindowInsetsListener(binding.recyclerView) { v, insets -> + val isBottomNav = requireContext().getSharedPreferences("prefs", android.content.Context.MODE_PRIVATE).getBoolean("bottom_nav", false) + val navBar = insets.getInsets(WindowInsetsCompat.Type.systemBars()) + val extraBottom = if (isBottomNav) 0 else navBar.bottom + v.setPadding(v.paddingLeft, v.paddingTop, v.paddingRight, bottomPaddingBase + extraBottom) + insets + } + viewModel.accounts.observe(viewLifecycleOwner) { adapter.updateAccounts(it) } } 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 ec95350..ded081f 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,8 @@ import android.view.View import android.view.ViewGroup import android.widget.Toast import androidx.appcompat.app.AlertDialog +import androidx.core.view.ViewCompat +import androidx.core.view.WindowInsetsCompat import androidx.core.widget.addTextChangedListener import androidx.fragment.app.Fragment import androidx.fragment.app.activityViewModels @@ -88,7 +90,7 @@ class ContactsFragment : Fragment() { ) clipToPadding = false val p4 = (4 * density).toInt() - val p80 = (80 * density).toInt() + val p80 = (65 * density).toInt() setPadding(0, p4, 0, p80) adapter = contactAdapters[viewType] } @@ -115,6 +117,17 @@ class ContactsFragment : Fragment() { pagerAdapter.updateSearch(currentSearch) } + val fabMarginBase = (16 * resources.displayMetrics.density).toInt() + ViewCompat.setOnApplyWindowInsetsListener(binding.fabAddContact) { v, insets -> + val isBottomNav = requireContext().getSharedPreferences("prefs", android.content.Context.MODE_PRIVATE).getBoolean("bottom_nav", false) + val navBar = insets.getInsets(WindowInsetsCompat.Type.systemBars()) + val extraBottom = if (isBottomNav) 0 else navBar.bottom + val lp = v.layoutParams as androidx.coordinatorlayout.widget.CoordinatorLayout.LayoutParams + lp.bottomMargin = fabMarginBase + extraBottom + v.layoutParams = lp + insets + } + binding.fabAddContact.setOnClickListener { AddContactSheetFragment().show(childFragmentManager, "add_contact") } 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 f260993..04744b5 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 @@ -5,6 +5,8 @@ import android.view.LayoutInflater import android.view.View import android.view.ViewGroup import android.widget.Toast +import androidx.core.view.ViewCompat +import androidx.core.view.WindowInsetsCompat import androidx.fragment.app.Fragment import androidx.fragment.app.activityViewModels import sh.sar.basedbank.R @@ -30,6 +32,15 @@ class DashboardFragment : Fragment() { viewModel.financing.observe(viewLifecycleOwner) { updatePendingFinances(it) } viewModel.bmlLimits.observe(viewLifecycleOwner) { updateForeignLimits(it) } + val bottomPaddingBase = (16 * resources.displayMetrics.density).toInt() + ViewCompat.setOnApplyWindowInsetsListener(binding.buttonBar) { v, insets -> + val isBottomNav = requireContext().getSharedPreferences("prefs", android.content.Context.MODE_PRIVATE).getBoolean("bottom_nav", false) + val navBar = insets.getInsets(WindowInsetsCompat.Type.systemBars()) + val extraBottom = if (isBottomNav) 0 else navBar.bottom + v.setPadding(v.paddingLeft, v.paddingTop, v.paddingRight, bottomPaddingBase + extraBottom) + insets + } + binding.btnTransfer.setOnClickListener { (requireActivity() as HomeActivity).navigateTo(R.id.nav_transfer) } diff --git a/app/src/main/java/sh/sar/basedbank/ui/home/FinancingFragment.kt b/app/src/main/java/sh/sar/basedbank/ui/home/FinancingFragment.kt index 8d0eb00..57e784b 100644 --- a/app/src/main/java/sh/sar/basedbank/ui/home/FinancingFragment.kt +++ b/app/src/main/java/sh/sar/basedbank/ui/home/FinancingFragment.kt @@ -4,6 +4,8 @@ import android.os.Bundle import android.view.LayoutInflater import android.view.View import android.view.ViewGroup +import androidx.core.view.ViewCompat +import androidx.core.view.WindowInsetsCompat import androidx.fragment.app.Fragment import androidx.fragment.app.activityViewModels import androidx.recyclerview.widget.LinearLayoutManager @@ -27,6 +29,15 @@ class FinancingFragment : Fragment() { binding.recyclerView.layoutManager = LinearLayoutManager(requireContext()) binding.recyclerView.adapter = adapter + val bottomPaddingBase = (16 * resources.displayMetrics.density).toInt() + ViewCompat.setOnApplyWindowInsetsListener(binding.recyclerView) { v, insets -> + val isBottomNav = requireContext().getSharedPreferences("prefs", android.content.Context.MODE_PRIVATE).getBoolean("bottom_nav", false) + val navBar = insets.getInsets(WindowInsetsCompat.Type.systemBars()) + val extraBottom = if (isBottomNav) 0 else navBar.bottom + v.setPadding(v.paddingLeft, v.paddingTop, v.paddingRight, bottomPaddingBase + extraBottom) + insets + } + viewModel.financing.observe(viewLifecycleOwner) { deals -> adapter.updateDeals(deals) binding.recyclerView.visibility = if (deals.isEmpty()) View.GONE else View.VISIBLE 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 0b8e13f..e9974a8 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 @@ -10,6 +10,8 @@ import android.util.Base64 import android.view.LayoutInflater import android.view.View import android.view.ViewGroup +import androidx.core.view.ViewCompat +import androidx.core.view.WindowInsetsCompat import androidx.fragment.app.Fragment import androidx.fragment.app.activityViewModels import androidx.lifecycle.lifecycleScope @@ -87,6 +89,15 @@ class TransferHistoryFragment : Fragment() { binding.recyclerView.layoutManager = LinearLayoutManager(requireContext()) binding.recyclerView.adapter = adapter + val bottomPaddingBase = (16 * resources.displayMetrics.density).toInt() + ViewCompat.setOnApplyWindowInsetsListener(binding.recyclerView) { v, insets -> + val isBottomNav = requireContext().getSharedPreferences("prefs", android.content.Context.MODE_PRIVATE).getBoolean("bottom_nav", false) + val navBar = insets.getInsets(WindowInsetsCompat.Type.systemBars()) + val extraBottom = if (isBottomNav) 0 else navBar.bottom + v.setPadding(v.paddingLeft, v.paddingTop, v.paddingRight, bottomPaddingBase + extraBottom) + insets + } + binding.recyclerView.addOnScrollListener(object : RecyclerView.OnScrollListener() { override fun onScrolled(rv: RecyclerView, dx: Int, dy: Int) { if (dy <= 0 || isLoading) return diff --git a/app/src/main/java/sh/sar/basedbank/ui/onboarding/OnboardingActivity.kt b/app/src/main/java/sh/sar/basedbank/ui/onboarding/OnboardingActivity.kt index f46ab90..b8e86e7 100644 --- a/app/src/main/java/sh/sar/basedbank/ui/onboarding/OnboardingActivity.kt +++ b/app/src/main/java/sh/sar/basedbank/ui/onboarding/OnboardingActivity.kt @@ -40,6 +40,11 @@ class OnboardingActivity : AppCompatActivity(), SecuritySetupFragment.Callback { view.setPadding(view.paddingLeft, view.paddingTop, view.paddingRight, originalBottomPadding + navBar.bottom) insets } + ViewCompat.setOnApplyWindowInsetsListener(binding.viewPager) { view, insets -> + val statusBar = insets.getInsets(WindowInsetsCompat.Type.systemBars()) + view.setPadding(view.paddingLeft, statusBar.top, view.paddingRight, view.paddingBottom) + insets + } val adapter = OnboardingPagerAdapter(this) binding.viewPager.adapter = adapter diff --git a/app/src/main/res/layout/fragment_dashboard.xml b/app/src/main/res/layout/fragment_dashboard.xml index bf13131..a56c5c1 100644 --- a/app/src/main/res/layout/fragment_dashboard.xml +++ b/app/src/main/res/layout/fragment_dashboard.xml @@ -1,11 +1,17 @@ - + + - - + + + + + + + + android:layout_weight="1" + android:layout_marginEnd="8dp" + android:text="@string/transfer" /> - - - - - + - + diff --git a/app/src/main/res/layout/fragment_security_setup.xml b/app/src/main/res/layout/fragment_security_setup.xml index 1bc524f..7146e00 100644 --- a/app/src/main/res/layout/fragment_security_setup.xml +++ b/app/src/main/res/layout/fragment_security_setup.xml @@ -15,7 +15,7 @@ android:layout_height="wrap_content" android:orientation="vertical" android:paddingHorizontal="24dp" - android:paddingTop="40dp" + android:paddingTop="64dp" android:paddingBottom="24dp" android:gravity="center_horizontal">