This commit is contained in:
@@ -375,8 +375,13 @@ class TransferReceiptFragment : Fragment() {
|
||||
* applied to fit small viewports and doesn't pick up overlapping siblings.
|
||||
*/
|
||||
private fun captureReceiptBitmap(callback: (Bitmap?) -> Unit) {
|
||||
val view = _receiptCard ?: run { callback(null); return }
|
||||
if (view.width == 0 || view.height == 0) { callback(null); return }
|
||||
val shown = _receiptCard ?: run { callback(null); return }
|
||||
if (shown.width == 0 || shown.height == 0) { callback(null); return }
|
||||
|
||||
// BML: the preview follows the app theme, but shared/saved images are always light
|
||||
val view = if (arguments?.getString(ARG_BANK, "MIB") == "BML") {
|
||||
inflateLightBmlCard(shown.width)
|
||||
} else shown
|
||||
|
||||
val bitmap = Bitmap.createBitmap(view.width, view.height, Bitmap.Config.ARGB_8888)
|
||||
val canvas = Canvas(bitmap)
|
||||
@@ -385,6 +390,27 @@ class TransferReceiptFragment : Fragment() {
|
||||
callback(bitmap)
|
||||
}
|
||||
|
||||
/** Inflates and lays out an offscreen BML receipt card with light-mode resources. */
|
||||
private fun inflateLightBmlCard(widthPx: Int): View {
|
||||
val config = android.content.res.Configuration(resources.configuration).apply {
|
||||
uiMode = (uiMode and android.content.res.Configuration.UI_MODE_NIGHT_MASK.inv()) or
|
||||
android.content.res.Configuration.UI_MODE_NIGHT_NO
|
||||
}
|
||||
val lightCtx = android.view.ContextThemeWrapper(requireContext(), R.style.Theme_BasedBank).apply {
|
||||
applyOverrideConfiguration(config)
|
||||
}
|
||||
val binding = FragmentReceiptBmlBinding.inflate(LayoutInflater.from(lightCtx))
|
||||
bindBml(binding)
|
||||
val card = binding.receiptCard
|
||||
(card.parent as? ViewGroup)?.removeView(card)
|
||||
card.measure(
|
||||
View.MeasureSpec.makeMeasureSpec(widthPx, View.MeasureSpec.EXACTLY),
|
||||
View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED)
|
||||
)
|
||||
card.layout(0, 0, card.measuredWidth, card.measuredHeight)
|
||||
return card
|
||||
}
|
||||
|
||||
private fun formatBmlTimestamp(raw: String): String {
|
||||
if (raw.isBlank()) return ""
|
||||
return try {
|
||||
|
||||
Reference in New Issue
Block a user