NTP-18357 | Sohan Reddy | SC Renderer Optimization (#659)

This commit is contained in:
Sohan Reddy Atukula
2024-12-20 13:33:59 +05:30
committed by GitHub
parent e39e8b1ed4
commit e5d4695c34

View File

@@ -131,7 +131,21 @@ class ScratchCardRenderer(
uiTronViewModel: UiTronViewModel,
) {
var overlayImage by remember { mutableStateOf<ImageBitmap?>(null) }
val uiTronProvider = remember { UiTronSdkManager.getDependencyProvider() }
val isImagePresentLocally by
remember(property.iconUrl) {
mutableStateOf(uiTronProvider.getIconResourceId(property.iconUrl))
}
val context = LocalContext.current
val localImageBitmap by remember {
mutableStateOf(
AppCompatResources.getDrawable(context, isImagePresentLocally ?: 0)
?.toBitmap()
?.copy(Bitmap.Config.ARGB_8888, true)
?.asImageBitmap()
)
}
var overlayImage by remember { mutableStateOf(localImageBitmap) }
fun updateOuterImageBitmap(state: AsyncImagePainter.State) {
when (state) {
@@ -145,28 +159,16 @@ class ScratchCardRenderer(
else -> Unit
}
}
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()
if (overlayImage == null) {
rememberAsyncImagePainter(
model =
ImageRequest.Builder(LocalContext.current)
.data(property.iconUrl)
.size(Size.ORIGINAL)
.build(),
onState = ::updateOuterImageBitmap
)
}
?: 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
@@ -237,9 +239,10 @@ class ScratchCardRenderer(
ImageBitmap(width = scratchCardSize.width, height = scratchCardSize.height, it)
}
val nativeCanvas = bitmap?.let { androidx.compose.ui.graphics.Canvas(it) }
val nativeCanvas =
remember(bitmap) { bitmap?.let { androidx.compose.ui.graphics.Canvas(it) } }
val totalArea = scratchCardSize.width * scratchCardSize.height
val totalArea = remember { scratchCardSize.width * scratchCardSize.height }
val pathState = remember { mutableStateOf(ScratchPath(path = Path())) }