diff --git a/sample-compose/src/main/java/com/airbnb/lottie/sample/compose/player/PlayerPage.kt b/sample-compose/src/main/java/com/airbnb/lottie/sample/compose/player/PlayerPage.kt
index ef6d46a..f2fb765 100644
--- a/sample-compose/src/main/java/com/airbnb/lottie/sample/compose/player/PlayerPage.kt
+++ b/sample-compose/src/main/java/com/airbnb/lottie/sample/compose/player/PlayerPage.kt
@@ -1,6 +1,5 @@
 package com.airbnb.lottie.sample.compose.player
 
-import android.util.Log
 import androidx.activity.compose.LocalOnBackPressedDispatcherOwner
 import androidx.compose.animation.AnimatedVisibility
 import androidx.compose.animation.expandVertically
@@ -41,10 +40,7 @@
 import com.airbnb.lottie.sample.compose.R
 import com.airbnb.lottie.sample.compose.composables.DebouncedCircularProgressIndicator
 import com.airbnb.lottie.sample.compose.ui.Teal
-import com.airbnb.lottie.sample.compose.utils.drawBottomBorder
-import com.airbnb.lottie.sample.compose.utils.maybeBackground
-import com.airbnb.lottie.sample.compose.utils.maybeDrawBorder
-import com.airbnb.lottie.sample.compose.utils.toDummyBitmap
+import com.airbnb.lottie.sample.compose.utils.*
 import kotlinx.coroutines.flow.collect
 import kotlin.math.ceil
 import kotlin.math.roundToInt
@@ -167,7 +163,7 @@
     var backgroundColor by remember(animationBackgroundColor) { mutableStateOf(animationBackgroundColor) }
     val dummyBitmapStrokeWidth = with(LocalDensity.current) { 3.dp.toPx() }
     val imageAssetDelegate = remember(compositionResult()) {
-        if (compositionResult()?.images?.any { (_, asset) -> asset.hasBitmap() } == true) {
+        if (compositionResult()?.hasEmbeddedBitmaps == true) {
             null
         } else {
             ImageAssetDelegate { if (it.hasBitmap()) null else it.toDummyBitmap(dummyBitmapStrokeWidth) }
@@ -272,9 +268,11 @@
                 state,
                 modifier = Modifier.weight(1f)
             )
-            IconButton(onClick = {
-                state.repeatCount = if (state.repeatCount == LottieConstants.RepeatForever) 1 else LottieConstants.RepeatForever
-            }) {
+            IconButton(
+                onClick = {
+                    state.repeatCount = if (state.repeatCount == LottieConstants.RepeatForever) 1 else LottieConstants.RepeatForever
+                },
+            ) {
                 Icon(
                     Icons.Filled.Repeat,
                     tint = if (state.repeatCount == LottieConstants.RepeatForever) Teal else Color.Black,
diff --git a/sample-compose/src/main/java/com/airbnb/lottie/sample/compose/utils/LottieExtensions.kt b/sample-compose/src/main/java/com/airbnb/lottie/sample/compose/utils/LottieExtensions.kt
new file mode 100644
index 0000000..3ab6459
--- /dev/null
+++ b/sample-compose/src/main/java/com/airbnb/lottie/sample/compose/utils/LottieExtensions.kt
@@ -0,0 +1,5 @@
+package com.airbnb.lottie.sample.compose.utils
+
+import com.airbnb.lottie.LottieComposition
+
+val LottieComposition.hasEmbeddedBitmaps get() = images?.any { (_, asset) -> asset.hasBitmap() } == true
\ No newline at end of file
