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 a278114..c2e2334 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 @@ -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 { diff --git a/app/src/main/res/drawable-night/bottom_receipt_wave.xml b/app/src/main/res/drawable-night/bottom_receipt_wave.xml new file mode 100644 index 0000000..b4982e5 --- /dev/null +++ b/app/src/main/res/drawable-night/bottom_receipt_wave.xml @@ -0,0 +1,15 @@ + + + + + + diff --git a/app/src/main/res/drawable/bml_icon.jpg b/app/src/main/res/drawable/bml_icon.jpg deleted file mode 100644 index e35d50d..0000000 Binary files a/app/src/main/res/drawable/bml_icon.jpg and /dev/null differ diff --git a/app/src/main/res/layout/fragment_receipt_bml.xml b/app/src/main/res/layout/fragment_receipt_bml.xml index 0dd0d2f..c4a8ced 100644 --- a/app/src/main/res/layout/fragment_receipt_bml.xml +++ b/app/src/main/res/layout/fragment_receipt_bml.xml @@ -24,7 +24,7 @@ android:layout_height="wrap_content" android:layout_marginHorizontal="24dp" android:orientation="vertical" - android:background="#FFFFFF"> + android:background="@color/bml_receipt_bg"> @@ -47,7 +47,7 @@ android:layout_marginBottom="20dp" android:id="@+id/tvMessage" android:textSize="14sp" - android:textColor="#2D2D2D" + android:textColor="@color/bml_receipt_message" android:fontFamily="@font/nunito_sans" android:gravity="center" /> @@ -75,7 +75,7 @@ android:layout_gravity="center" android:layout_marginBottom="13dp" android:textSize="42sp" - android:textColor="#242424" + android:textColor="@color/bml_receipt_amount" android:fontFamily="@font/sofia_pro" android:gravity="center" /> @@ -109,66 +109,66 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -199,7 +199,7 @@ android:layout_height="wrap_content" android:orientation="vertical" android:gravity="center" - android:background="#F5F5F5" + android:background="@color/bml_receipt_footer" android:paddingVertical="22dp"> diff --git a/app/src/main/res/values-night/colors.xml b/app/src/main/res/values-night/colors.xml new file mode 100644 index 0000000..60bb8e2 --- /dev/null +++ b/app/src/main/res/values-night/colors.xml @@ -0,0 +1,10 @@ + + + + #191A1C + #DEDEE0 + #DEDEE0 + #DEDEE0 + #000000 + #3D3E40 + diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml index 184950d..bf9032e 100644 --- a/app/src/main/res/values/colors.xml +++ b/app/src/main/res/values/colors.xml @@ -5,4 +5,12 @@ #9AD141 #E85D04 #E8B547 + + + #FFFFFF + #2D2D2D + #242424 + #000000 + #F5F5F5 + #E9E9E9