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 3c965f2..3a1c65a 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 @@ -330,36 +330,48 @@ class TransferReceiptFragment : Fragment() { } private fun showFullScreenReceipt() { - captureReceiptBitmap { bitmap -> - if (bitmap == null) return@captureReceiptBitmap - val ctx = requireContext() - val dialog = Dialog(ctx, android.R.style.Theme_Black_NoTitleBar_Fullscreen) - val iv = android.widget.ImageView(ctx).apply { - setImageBitmap(bitmap) - scaleType = android.widget.ImageView.ScaleType.FIT_CENTER - setBackgroundColor(Color.BLACK) - } - iv.setOnClickListener { dialog.dismiss() } - dialog.setContentView(iv) - val actWin = requireActivity().window - val prevColor = actWin.statusBarColor - val insetsCtrl = androidx.core.view.WindowInsetsControllerCompat(actWin, actWin.decorView) - actWin.statusBarColor = Color.BLACK - insetsCtrl.isAppearanceLightStatusBars = false - dialog.setOnDismissListener { - actWin.statusBarColor = prevColor - val isLight = (resources.configuration.uiMode and - android.content.res.Configuration.UI_MODE_NIGHT_MASK) == - android.content.res.Configuration.UI_MODE_NIGHT_NO - insetsCtrl.isAppearanceLightStatusBars = isLight - } - dialog.show() - dialog.window?.let { win -> - androidx.core.view.WindowCompat.setDecorFitsSystemWindows(win, false) - androidx.core.view.WindowInsetsControllerCompat(win, iv).apply { - hide(androidx.core.view.WindowInsetsCompat.Type.systemBars()) - systemBarsBehavior = androidx.core.view.WindowInsetsControllerCompat.BEHAVIOR_SHOW_TRANSIENT_BARS_BY_SWIPE - } + val ctx = requireContext() + val bank = arguments?.getString(ARG_BANK, "MIB") ?: "MIB" + val dialog = Dialog(ctx, android.R.style.Theme_Black_NoTitleBar_Fullscreen) + + val scrollView = android.widget.ScrollView(ctx).apply { + setBackgroundColor(Color.BLACK) + } + + val cardView = if (bank == "MIB") { + val binding = FragmentReceiptMibBinding.inflate(layoutInflater) + bindMib(binding) + binding.receiptCard + } else { + val binding = FragmentReceiptBmlBinding.inflate(layoutInflater) + bindBml(binding) + binding.receiptCard + } + (cardView.parent as? ViewGroup)?.removeView(cardView) + cardView.setOnClickListener { dialog.dismiss() } + scrollView.addView(cardView) + scrollView.setOnTouchListener { _, _ -> dialog.dismiss(); true } + + dialog.setContentView(scrollView) + + val actWin = requireActivity().window + val prevColor = actWin.statusBarColor + val insetsCtrl = androidx.core.view.WindowInsetsControllerCompat(actWin, actWin.decorView) + actWin.statusBarColor = Color.BLACK + insetsCtrl.isAppearanceLightStatusBars = false + dialog.setOnDismissListener { + actWin.statusBarColor = prevColor + val isLight = (resources.configuration.uiMode and + android.content.res.Configuration.UI_MODE_NIGHT_MASK) == + android.content.res.Configuration.UI_MODE_NIGHT_NO + insetsCtrl.isAppearanceLightStatusBars = isLight + } + dialog.show() + dialog.window?.let { win -> + androidx.core.view.WindowCompat.setDecorFitsSystemWindows(win, false) + androidx.core.view.WindowInsetsControllerCompat(win, scrollView).apply { + hide(androidx.core.view.WindowInsetsCompat.Type.systemBars()) + systemBarsBehavior = androidx.core.view.WindowInsetsControllerCompat.BEHAVIOR_SHOW_TRANSIENT_BARS_BY_SWIPE } } }