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 a071425..c6f67bf 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
@@ -35,6 +35,7 @@ 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.DialogReceiptFullscreenMibBinding
import sh.sar.basedbank.databinding.FragmentReceiptBmlBinding
import sh.sar.basedbank.databinding.FragmentReceiptMfaisaBinding
import sh.sar.basedbank.databinding.FragmentReceiptMibBinding
@@ -486,6 +487,7 @@ class TransferReceiptFragment : Fragment() {
val ctx = requireContext()
val bank = arguments?.getString(ARG_BANK, "MIB") ?: "MIB"
if (bank == "BML") { showBmlFullScreenReceipt(); return }
+ if (bank == "MIB") { showMibFullScreenReceipt(); return }
val dialog = Dialog(ctx, android.R.style.Theme_Black_NoTitleBar_Fullscreen)
val scrollView = android.widget.ScrollView(ctx).apply {
@@ -587,6 +589,64 @@ class TransferReceiptFragment : Fragment() {
dialog.show()
}
+ /**
+ * MIB full-screen receipt: edge-to-edge card whose green header runs under the
+ * (visible) status bar, a floating close button top-right just below the status bar,
+ * and MIB-styled Share/Save buttons pinned to the bottom. Follows the app theme.
+ */
+ private fun showMibFullScreenReceipt() {
+ val ctx = requireContext()
+ val dialog = Dialog(ctx, R.style.Theme_BasedBank)
+ val page = DialogReceiptFullscreenMibBinding.inflate(layoutInflater)
+
+ val cardBinding = FragmentReceiptMibBinding.inflate(layoutInflater).also { bindMib(it) }
+ val card = cardBinding.receiptCard
+ (card.parent as? ViewGroup)?.removeView(card)
+ page.cardHolder.addView(card, ViewGroup.LayoutParams(
+ ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT
+ ))
+
+ page.btnClose.setOnClickListener { dialog.dismiss() }
+ page.btnShareFull.setOnClickListener { shareReceipt() }
+ page.btnSaveFull.setOnClickListener { saveReceipt() }
+
+ val header = cardBinding.receiptHeader
+ val headerBaseHeight = header.layoutParams.height
+ val headerBasePadding = header.paddingTop
+ val closeBaseMargin = (page.btnClose.layoutParams as ViewGroup.MarginLayoutParams).topMargin
+ val bottomBasePadding = page.bottomBar.paddingBottom
+ ViewCompat.setOnApplyWindowInsetsListener(page.root) { _, insets ->
+ val bars = insets.getInsets(WindowInsetsCompat.Type.systemBars())
+ // Grow the green header under the status bar, keeping its content below it
+ header.layoutParams = header.layoutParams.apply { height = headerBaseHeight + bars.top }
+ header.updatePadding(top = headerBasePadding + bars.top)
+ page.btnClose.layoutParams = (page.btnClose.layoutParams as ViewGroup.MarginLayoutParams)
+ .apply { topMargin = closeBaseMargin + 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 {
+ // Status bar sits over the green header, so always use light icons
+ isAppearanceLightStatusBars = false
+ 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_mib_receipt_close.xml b/app/src/main/res/drawable/ic_mib_receipt_close.xml
new file mode 100644
index 0000000..05c8dce
--- /dev/null
+++ b/app/src/main/res/drawable/ic_mib_receipt_close.xml
@@ -0,0 +1,18 @@
+
+
+
+
+
+
diff --git a/app/src/main/res/layout/dialog_receipt_fullscreen_mib.xml b/app/src/main/res/layout/dialog_receipt_fullscreen_mib.xml
new file mode 100644
index 0000000..dc0e6b3
--- /dev/null
+++ b/app/src/main/res/layout/dialog_receipt_fullscreen_mib.xml
@@ -0,0 +1,96 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/main/res/layout/fragment_receipt_mib.xml b/app/src/main/res/layout/fragment_receipt_mib.xml
index 6e6635b..95daa5f 100644
--- a/app/src/main/res/layout/fragment_receipt_mib.xml
+++ b/app/src/main/res/layout/fragment_receipt_mib.xml
@@ -25,6 +25,7 @@
diff --git a/app/src/main/res/values-night/colors.xml b/app/src/main/res/values-night/colors.xml
index 7eac7fa..2a92fbb 100644
--- a/app/src/main/res/values-night/colors.xml
+++ b/app/src/main/res/values-night/colors.xml
@@ -15,4 +15,5 @@
#FFFFFF
#33335C
#FFFFFF
+ #000000
diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml
index c5277b9..4939a69 100644
--- a/app/src/main/res/values/colors.xml
+++ b/app/src/main/res/values/colors.xml
@@ -23,4 +23,6 @@
#CAC4D0
#000000
#1EA833
+ #FFFFFF
+ #006FFC