UIS-3 | Kamalesh | Added icon code functionality in Scratch Card (#502)
This commit is contained in:
committed by
GitHub
parent
efbe420ca2
commit
a2f219f896
@@ -9,6 +9,7 @@ package com.navi.uitron.render
|
||||
|
||||
import android.graphics.Bitmap
|
||||
import android.view.MotionEvent
|
||||
import androidx.appcompat.content.res.AppCompatResources
|
||||
import androidx.compose.animation.core.animateFloatAsState
|
||||
import androidx.compose.animation.core.spring
|
||||
import androidx.compose.foundation.Canvas
|
||||
@@ -39,6 +40,7 @@ import androidx.compose.ui.graphics.asAndroidBitmap
|
||||
import androidx.compose.ui.graphics.asImageBitmap
|
||||
import androidx.compose.ui.graphics.drawscope.clipPath
|
||||
import androidx.compose.ui.input.pointer.pointerInteropFilter
|
||||
import androidx.compose.ui.layout.layoutId
|
||||
import androidx.compose.ui.layout.onGloballyPositioned
|
||||
import androidx.compose.ui.platform.LocalContext
|
||||
import androidx.compose.ui.unit.IntSize
|
||||
@@ -47,6 +49,7 @@ import coil.compose.AsyncImagePainter
|
||||
import coil.compose.rememberAsyncImagePainter
|
||||
import coil.request.ImageRequest
|
||||
import coil.size.Size
|
||||
import com.navi.uitron.UiTronSdkManager
|
||||
import com.navi.uitron.model.action.MvelAction
|
||||
import com.navi.uitron.model.data.ScratchCardData
|
||||
import com.navi.uitron.model.data.ScratchPath
|
||||
@@ -54,6 +57,7 @@ import com.navi.uitron.model.data.UiTronData
|
||||
import com.navi.uitron.model.ui.ScratchCardProperty
|
||||
import com.navi.uitron.model.ui.UiTronView
|
||||
import com.navi.uitron.utils.BitmapFacade
|
||||
import com.navi.uitron.utils.EMPTY
|
||||
import com.navi.uitron.utils.KEY_MVEL_ACTION
|
||||
import com.navi.uitron.utils.KEY_PROPERTY
|
||||
import com.navi.uitron.utils.KEY_UI_TRON_DATA
|
||||
@@ -62,6 +66,7 @@ import com.navi.uitron.utils.orFalse
|
||||
import com.navi.uitron.utils.orTrue
|
||||
import com.navi.uitron.utils.orValue
|
||||
import com.navi.uitron.utils.setHeight
|
||||
import com.navi.uitron.utils.setTag
|
||||
import com.navi.uitron.utils.setWidth
|
||||
import com.navi.uitron.viewmodel.UiTronViewModel
|
||||
|
||||
@@ -140,19 +145,32 @@ class ScratchCardRenderer(
|
||||
else -> Unit
|
||||
}
|
||||
}
|
||||
|
||||
rememberAsyncImagePainter(
|
||||
model =
|
||||
ImageRequest.Builder(LocalContext.current)
|
||||
.data(property.iconUrl)
|
||||
.size(Size.ORIGINAL)
|
||||
.build(),
|
||||
onState = ::updateOuterImageBitmap
|
||||
)
|
||||
val uiTronProvider = remember { UiTronSdkManager.getDependencyProvider() }
|
||||
val isImagePresentLocally by
|
||||
remember(property.iconUrl) {
|
||||
mutableStateOf(uiTronProvider.getIconResourceId(property.iconUrl))
|
||||
}
|
||||
isImagePresentLocally?.let {
|
||||
overlayImage =
|
||||
AppCompatResources.getDrawable(LocalContext.current, it)
|
||||
?.toBitmap()
|
||||
?.copy(Bitmap.Config.ARGB_8888, true)
|
||||
?.asImageBitmap()
|
||||
}
|
||||
?: run {
|
||||
rememberAsyncImagePainter(
|
||||
model =
|
||||
ImageRequest.Builder(LocalContext.current)
|
||||
.data(property.iconUrl)
|
||||
.size(Size.ORIGINAL)
|
||||
.build(),
|
||||
onState = ::updateOuterImageBitmap
|
||||
)
|
||||
}
|
||||
|
||||
var imageScale by remember { mutableFloatStateOf(1f) }
|
||||
val imageScaleAnimation by
|
||||
animateFloatAsState(targetValue = imageScale, animationSpec = spring(), label = "")
|
||||
animateFloatAsState(targetValue = imageScale, animationSpec = spring(), label = EMPTY)
|
||||
|
||||
if (property.visible.orTrue()) {
|
||||
overlayImage?.let {
|
||||
@@ -169,11 +187,13 @@ class ScratchCardRenderer(
|
||||
modifier =
|
||||
Modifier.setWidth(property.width)
|
||||
.setHeight(property.height)
|
||||
.scale(imageScaleAnimation),
|
||||
.scale(imageScaleAnimation)
|
||||
.setTag(property)
|
||||
.layoutId(property.layoutId.orEmpty()),
|
||||
currentPathThickness = property.pathThickness ?: 150f,
|
||||
property = property
|
||||
) {
|
||||
childrenComposeViews.forEachIndexed() { _, it ->
|
||||
childrenComposeViews.forEachIndexed { _, it ->
|
||||
if (it.data.isNullOrEmpty()) {
|
||||
uiTronRenderer.Render(composeViews = listOf(it))
|
||||
} else {
|
||||
|
||||
Reference in New Issue
Block a user