diff --git a/app/src/main/java/sh/sar/basedbank/ui/home/TransferReceiptFragment.kt b/app/src/main/java/sh/sar/basedbank/ui/home/TransferReceiptFragment.kt index c2e2334..7841c2d 100644 --- a/app/src/main/java/sh/sar/basedbank/ui/home/TransferReceiptFragment.kt +++ b/app/src/main/java/sh/sar/basedbank/ui/home/TransferReceiptFragment.kt @@ -24,6 +24,7 @@ import android.widget.Toast import androidx.core.content.FileProvider import androidx.core.view.ViewCompat import androidx.core.view.WindowInsetsCompat +import androidx.core.view.updatePadding import androidx.fragment.app.Fragment import androidx.lifecycle.lifecycleScope import com.google.android.material.button.MaterialButton @@ -33,6 +34,7 @@ import kotlinx.coroutines.withContext import sh.sar.basedbank.BasedBankApp import sh.sar.basedbank.R import sh.sar.basedbank.api.mib.MibContactsClient +import sh.sar.basedbank.databinding.DialogReceiptFullscreenBmlBinding import sh.sar.basedbank.databinding.FragmentReceiptBmlBinding import sh.sar.basedbank.databinding.FragmentReceiptMfaisaBinding import sh.sar.basedbank.databinding.FragmentReceiptMibBinding @@ -440,6 +442,7 @@ class TransferReceiptFragment : Fragment() { private fun showFullScreenReceipt() { val ctx = requireContext() val bank = arguments?.getString(ARG_BANK, "MIB") ?: "MIB" + if (bank == "BML") { showBmlFullScreenReceipt(); return } val dialog = Dialog(ctx, android.R.style.Theme_Black_NoTitleBar_Fullscreen) val scrollView = android.widget.ScrollView(ctx).apply { @@ -492,6 +495,55 @@ class TransferReceiptFragment : Fragment() { } } + /** + * BML full-screen receipt: status bar stays visible, top bar with back button, + * edge-to-edge card right under it, BML-styled Save/Share buttons directly below the card. + * Follows the app theme (light/dark). + */ + private fun showBmlFullScreenReceipt() { + val ctx = requireContext() + val dialog = Dialog(ctx, R.style.Theme_BasedBank) + val page = DialogReceiptFullscreenBmlBinding.inflate(layoutInflater) + + val card = FragmentReceiptBmlBinding.inflate(layoutInflater).also { bindBml(it) }.receiptCard + (card.parent as? ViewGroup)?.removeView(card) + page.cardHolder.addView(card, 0, android.widget.LinearLayout.LayoutParams( + ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT + )) + + page.btnBack.setOnClickListener { dialog.dismiss() } + page.btnSaveFull.setOnClickListener { saveReceipt() } + page.btnShareFull.setOnClickListener { shareReceipt() } + + val topBasePadding = page.topBar.paddingTop + val bottomBasePadding = page.bottomBar.paddingBottom + ViewCompat.setOnApplyWindowInsetsListener(page.root) { _, insets -> + val bars = insets.getInsets(WindowInsetsCompat.Type.systemBars()) + page.topBar.updatePadding(top = topBasePadding + bars.top) + page.bottomBar.updatePadding(bottom = bottomBasePadding + bars.bottom) + page.root.updatePadding(left = bars.left, right = bars.right) + insets + } + + dialog.setContentView(page.root) + dialog.window?.let { win -> + win.setLayout(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT) + androidx.core.view.WindowCompat.setDecorFitsSystemWindows(win, false) + @Suppress("DEPRECATION") + win.statusBarColor = Color.TRANSPARENT + @Suppress("DEPRECATION") + win.navigationBarColor = Color.TRANSPARENT + val isLight = (resources.configuration.uiMode and + android.content.res.Configuration.UI_MODE_NIGHT_MASK) == + android.content.res.Configuration.UI_MODE_NIGHT_NO + androidx.core.view.WindowInsetsControllerCompat(win, win.decorView).apply { + isAppearanceLightStatusBars = isLight + isAppearanceLightNavigationBars = isLight + } + } + dialog.show() + } + private fun copyOnLongClick(vararg views: android.widget.TextView) { for (tv in views) { tv.setOnLongClickListener { diff --git a/app/src/main/res/drawable/ic_chevron_back.xml b/app/src/main/res/drawable/ic_chevron_back.xml new file mode 100644 index 0000000..0752c5a --- /dev/null +++ b/app/src/main/res/drawable/ic_chevron_back.xml @@ -0,0 +1,13 @@ + + + + diff --git a/app/src/main/res/layout/dialog_receipt_fullscreen_bml.xml b/app/src/main/res/layout/dialog_receipt_fullscreen_bml.xml new file mode 100644 index 0000000..ee593a2 --- /dev/null +++ b/app/src/main/res/layout/dialog_receipt_fullscreen_bml.xml @@ -0,0 +1,122 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/app/src/main/res/values-night/colors.xml b/app/src/main/res/values-night/colors.xml index 60bb8e2..ccea614 100644 --- a/app/src/main/res/values-night/colors.xml +++ b/app/src/main/res/values-night/colors.xml @@ -7,4 +7,5 @@ #DEDEE0 #000000 #3D3E40 + #1E1F21 diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml index bf9032e..167d557 100644 --- a/app/src/main/res/values/colors.xml +++ b/app/src/main/res/values/colors.xml @@ -13,4 +13,6 @@ #000000 #F5F5F5 #E9E9E9 + #EBEBEB + #E21B23