package com.margelo.nitro.rive import androidx.annotation.Keep import app.rive.runtime.kotlin.core.ViewModelImageProperty import com.facebook.proguard.annotations.DoNotStrip import kotlinx.coroutines.flow.map @Keep @DoNotStrip class HybridViewModelImageProperty(private val viewModelImage: ViewModelImageProperty) : HybridViewModelImagePropertySpec(), BaseHybridViewModelProperty by BaseHybridViewModelPropertyImpl() { override fun dispose() { removeListeners() super.dispose() } override val memorySize: Long get() = VIEW_MODEL_HYBRID_MEMORY_SIZE override fun set(image: HybridRiveImageSpec?) { viewModelImage.set((image as? HybridRiveImage)?.renderImage) } override fun addListener(onChanged: () -> Unit): () -> Unit { val remover = addListenerInternal { _ -> onChanged() } ensureValueListenerJob(viewModelImage.valueFlow.map { }) return remover } }