فهرست منبع

cursor row scroll improvement

Milan Jurkulak 3 سال پیش
والد
کامیت
175d5b8c08

+ 29 - 0
app/src/main/kotlin/org/mjdev/tvapp/base/extensions/ComposeExt.kt

@@ -13,6 +13,7 @@ package org.mjdev.tvapp.base.extensions
 import android.annotation.SuppressLint
 import android.content.ContentResolver
 import android.content.res.Configuration
+import android.os.Build
 import androidx.compose.foundation.interaction.MutableInteractionSource
 import androidx.compose.runtime.Composable
 import androidx.compose.runtime.MutableState
@@ -25,6 +26,10 @@ import androidx.compose.ui.platform.LocalContext
 import androidx.compose.ui.platform.LocalInspectionMode
 import androidx.compose.ui.unit.Dp
 import androidx.compose.ui.unit.dp
+import coil.ImageLoader
+import coil.decode.GifDecoder
+import coil.decode.ImageDecoderDecoder
+import coil.request.CachePolicy
 import org.mjdev.tvapp.BuildConfig
 
 @Suppress("MemberVisibilityCanBePrivate")
@@ -105,4 +110,28 @@ object ComposeExt {
         }
     }
 
+    @SuppressLint("RememberReturnType", "ComposableNaming")
+    @Composable
+    fun rememberImageLoader(): ImageLoader {
+        val context = LocalContext.current
+        return remember {
+            ImageLoader.Builder(context)
+                .allowHardware(false)
+                .addLastModifiedToFileCacheKey(true)
+                .crossfade(false)
+                .diskCachePolicy(CachePolicy.ENABLED)
+                .memoryCachePolicy(CachePolicy.ENABLED)
+                .respectCacheHeaders(true)
+                .networkObserverEnabled(true)
+                .components {
+                    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.P) {
+                        add(ImageDecoderDecoder.Factory())
+                    } else {
+                        add(GifDecoder.Factory())
+                    }
+                }
+                .build()
+        }
+    }
+
 }

+ 1 - 1
app/src/main/kotlin/org/mjdev/tvapp/base/ui/components/tv/CursorRow.kt

@@ -115,7 +115,7 @@ fun CursorRow(
                 }
             }
             LaunchedEffect(scrollDelta.value) {
-                rowState.animateScrollBy(-scrollDelta.value)
+                rowState.animateScrollBy(-(scrollDelta.value * 3f))
             }
         }
     }