@@ -32,6 +32,7 @@ import androidx.compose.runtime.remember
3232import androidx.compose.runtime.setValue
3333import androidx.compose.ui.Alignment
3434import androidx.compose.ui.Modifier
35+ import androidx.compose.ui.draw.alpha
3536import androidx.compose.ui.draw.clipToBounds
3637import androidx.compose.ui.draw.rotate
3738import androidx.compose.ui.geometry.Offset
@@ -57,9 +58,6 @@ import com.getcode.model.KinAmount
5758import com.getcode.solana.keys.Key32.Companion.kinMint
5859import com.getcode.solana.keys.base58
5960import com.getcode.theme.CodeTheme
60- import com.getcode.theme.White
61- import com.getcode.theme.White50
62- import com.getcode.ui.utils.debugBounds
6361import com.getcode.util.formattedRaw
6462import com.getcode.ui.utils.nonScaledSp
6563import com.getcode.ui.utils.punchCircle
@@ -230,7 +228,7 @@ internal fun CashBill(
230228 }
231229
232230 // Hexagons
233- BillImage (
231+ BillDecorImage (
234232 modifier = Modifier
235233 .fillMaxSize(),
236234 image = ImageBitmap .imageResource(R .drawable.ic_bill_hexagons),
@@ -240,7 +238,7 @@ internal fun CashBill(
240238 )
241239
242240 // Waves
243- BillImage (
241+ BillDecorImage (
244242 modifier = Modifier
245243 .matchParentSize()
246244 .clipToBounds(),
@@ -252,7 +250,7 @@ internal fun CashBill(
252250 )
253251
254252 // Globe
255- BillImage (
253+ BillDecorImage (
256254 modifier = Modifier
257255 .matchParentSize()
258256 .clipToBounds(),
@@ -261,7 +259,7 @@ internal fun CashBill(
261259 )
262260
263261 // Grid pattern
264- BillImage (
262+ BillDecorImage (
265263 modifier = Modifier
266264 .matchParentSize()
267265 .clipToBounds(),
@@ -348,20 +346,11 @@ internal fun CashBill(
348346 }
349347
350348 // Scan code
351- Box (
352- modifier = Modifier
353- .align(Alignment .Center )
354- .punchCircle(CashBillDefaults .BillColor .copy(CashBillDefaults .CodeBackgroundOpacity )),
355- contentAlignment = Alignment .Center
356- ) {
357- if (payloadData.isNotEmpty()) {
358- ScannableCode (
359- modifier = Modifier
360- .size(geometry.codeSize),
361- data = payloadData
362- )
363- }
364- }
349+ BillCode (
350+ modifier = Modifier .align(Alignment .Center ),
351+ geometry = geometry,
352+ data = payloadData
353+ )
365354 }
366355 }
367356}
@@ -375,11 +364,11 @@ private fun SecurityStrip(
375364 modifier = modifier
376365 .size(geometry.securityStripSize)
377366 .offset(geometry.securityStripPosition.x, geometry.securityStripPosition.y)
378- .punchRectangle(Color . Black .copy(0.6f )),
367+ .punchRectangle(CashBillDefaults . BillColor .copy(CashBillDefaults . CodeBackgroundOpacity )),
379368 ) {
380369 for (i in 0 until CashBillDefaults .SecurityStripCount ) {
381370 Image (
382- modifier = Modifier .weight(1f ),
371+ modifier = Modifier .weight(1f ).alpha( 0.5f ) ,
383372 contentScale = ContentScale .FillBounds ,
384373 painter = painterResource(id = R .drawable.ic_bill_security_strip),
385374 contentDescription = null
@@ -408,7 +397,7 @@ private fun Lines(
408397}
409398
410399@Composable
411- private fun BillImage (
400+ private fun BillDecorImage (
412401 modifier : Modifier = Modifier ,
413402 image : ImageBitmap ? ,
414403 alpha : Float = 1f,
@@ -440,3 +429,20 @@ private fun BillImage(
440429 }
441430 }
442431}
432+
433+ @Composable
434+ private fun BillCode (modifier : Modifier = Modifier , geometry : CashBillGeometry , data : List <Byte >) {
435+ Box (
436+ modifier = modifier
437+ .punchCircle(CashBillDefaults .BillColor .copy(0.9f )),
438+ contentAlignment = Alignment .Center
439+ ) {
440+ if (data.isNotEmpty()) {
441+ ScannableCode (
442+ modifier = Modifier
443+ .size(geometry.codeSize),
444+ data = data
445+ )
446+ }
447+ }
448+ }
0 commit comments