forked from shihaam/thijooree
you can now hold to copy text from recipts even in full screen mode
This commit is contained in:
@@ -330,36 +330,48 @@ class TransferReceiptFragment : Fragment() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private fun showFullScreenReceipt() {
|
private fun showFullScreenReceipt() {
|
||||||
captureReceiptBitmap { bitmap ->
|
val ctx = requireContext()
|
||||||
if (bitmap == null) return@captureReceiptBitmap
|
val bank = arguments?.getString(ARG_BANK, "MIB") ?: "MIB"
|
||||||
val ctx = requireContext()
|
val dialog = Dialog(ctx, android.R.style.Theme_Black_NoTitleBar_Fullscreen)
|
||||||
val dialog = Dialog(ctx, android.R.style.Theme_Black_NoTitleBar_Fullscreen)
|
|
||||||
val iv = android.widget.ImageView(ctx).apply {
|
val scrollView = android.widget.ScrollView(ctx).apply {
|
||||||
setImageBitmap(bitmap)
|
setBackgroundColor(Color.BLACK)
|
||||||
scaleType = android.widget.ImageView.ScaleType.FIT_CENTER
|
}
|
||||||
setBackgroundColor(Color.BLACK)
|
|
||||||
}
|
val cardView = if (bank == "MIB") {
|
||||||
iv.setOnClickListener { dialog.dismiss() }
|
val binding = FragmentReceiptMibBinding.inflate(layoutInflater)
|
||||||
dialog.setContentView(iv)
|
bindMib(binding)
|
||||||
val actWin = requireActivity().window
|
binding.receiptCard
|
||||||
val prevColor = actWin.statusBarColor
|
} else {
|
||||||
val insetsCtrl = androidx.core.view.WindowInsetsControllerCompat(actWin, actWin.decorView)
|
val binding = FragmentReceiptBmlBinding.inflate(layoutInflater)
|
||||||
actWin.statusBarColor = Color.BLACK
|
bindBml(binding)
|
||||||
insetsCtrl.isAppearanceLightStatusBars = false
|
binding.receiptCard
|
||||||
dialog.setOnDismissListener {
|
}
|
||||||
actWin.statusBarColor = prevColor
|
(cardView.parent as? ViewGroup)?.removeView(cardView)
|
||||||
val isLight = (resources.configuration.uiMode and
|
cardView.setOnClickListener { dialog.dismiss() }
|
||||||
android.content.res.Configuration.UI_MODE_NIGHT_MASK) ==
|
scrollView.addView(cardView)
|
||||||
android.content.res.Configuration.UI_MODE_NIGHT_NO
|
scrollView.setOnTouchListener { _, _ -> dialog.dismiss(); true }
|
||||||
insetsCtrl.isAppearanceLightStatusBars = isLight
|
|
||||||
}
|
dialog.setContentView(scrollView)
|
||||||
dialog.show()
|
|
||||||
dialog.window?.let { win ->
|
val actWin = requireActivity().window
|
||||||
androidx.core.view.WindowCompat.setDecorFitsSystemWindows(win, false)
|
val prevColor = actWin.statusBarColor
|
||||||
androidx.core.view.WindowInsetsControllerCompat(win, iv).apply {
|
val insetsCtrl = androidx.core.view.WindowInsetsControllerCompat(actWin, actWin.decorView)
|
||||||
hide(androidx.core.view.WindowInsetsCompat.Type.systemBars())
|
actWin.statusBarColor = Color.BLACK
|
||||||
systemBarsBehavior = androidx.core.view.WindowInsetsControllerCompat.BEHAVIOR_SHOW_TRANSIENT_BARS_BY_SWIPE
|
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
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user