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

+ 0 - 1
tvlib/src/main/kotlin/org/mjdev/tvlib/ui/components/audiopreview/AudioPreview.kt

@@ -82,7 +82,6 @@ class AudioPreview constructor(
 
     override fun onDetachedFromWindow() {
         super.onDetachedFromWindow()
-        previewEngine.pause()
         networkListener?.unregister(context)
     }
 

+ 10 - 0
tvlib/src/main/kotlin/org/mjdev/tvlib/ui/components/carousel/BigCarousel.kt

@@ -16,6 +16,7 @@ import androidx.compose.runtime.Composable
 import androidx.compose.runtime.remember
 import androidx.compose.ui.Modifier
 import androidx.compose.ui.focus.focusRequester
+import androidx.compose.ui.focus.onFocusChanged
 import androidx.compose.ui.input.pointer.pointerInput
 import androidx.compose.ui.layout.ContentScale
 import androidx.compose.ui.platform.LocalConfiguration
@@ -24,8 +25,10 @@ import androidx.compose.ui.unit.dp
 import androidx.tv.material3.CardScale
 import androidx.tv.material3.ExperimentalTvMaterial3Api
 import org.mjdev.tvlib.extensions.ComposeExt.rememberFocusRequester
+import org.mjdev.tvlib.extensions.ComposeExt.rememberFocusState
 import org.mjdev.tvlib.extensions.ModifierExt.detectSwipe
 import org.mjdev.tvlib.extensions.ModifierExt.recomposeHighlighter
+import org.mjdev.tvlib.ui.components.card.FocusHelper
 
 @OptIn(ExperimentalTvMaterial3Api::class)
 @SuppressLint("AutoboxingStateValueProperty")
@@ -44,6 +47,7 @@ fun BigCarousel(
         else config.screenHeightDp * 0.4f
     }
     val focusRequester = rememberFocusRequester()
+    val cardFocusState = rememberFocusState()
     Carousel(
         autoScrollDurationMillis = autoScrollDurationMillis,
         carouselState = carouselState,
@@ -53,14 +57,19 @@ fun BigCarousel(
             .focusRequester(focusRequester)
             .fillMaxWidth()
             .height(height.dp)
+            .onFocusChanged { state ->
+                cardFocusState.value = state
+            }
             .pointerInput(Unit) {
                 detectSwipe(
                     onSwipeLeft = {
                         carouselState.moveToNextItem(items.size)
+                        cardFocusState.value = FocusHelper(true)
                         focusRequester.requestFocus()
                     },
                     onSwipeRight = {
                         carouselState.moveToPreviousItem(items.size)
+                        cardFocusState.value = FocusHelper(true)
                         focusRequester.requestFocus()
                     },
                 )
@@ -75,6 +84,7 @@ fun BigCarousel(
                 .height(height.dp),
             contentScale = ContentScale.Crop,
             scale = CardScale.None,
+            focusState = cardFocusState,
             onFocus = onItemSelected,
             onClick = {
                 onItemClicked(selectedItem)