mirror of
https://github.com/owenlejeune/TVTime.git
synced 2025-11-08 04:32:43 -05:00
some cleanup
This commit is contained in:
@@ -0,0 +1,41 @@
|
||||
package com.owenlejeune.tvtime.extensions
|
||||
|
||||
import androidx.compose.animation.core.LinearOutSlowInEasing
|
||||
import androidx.compose.animation.core.RepeatMode
|
||||
import androidx.compose.animation.core.animateFloat
|
||||
import androidx.compose.animation.core.infiniteRepeatable
|
||||
import androidx.compose.animation.core.rememberInfiniteTransition
|
||||
import androidx.compose.animation.core.tween
|
||||
import androidx.compose.foundation.background
|
||||
import androidx.compose.runtime.getValue
|
||||
import androidx.compose.ui.Modifier
|
||||
import androidx.compose.ui.composed
|
||||
import androidx.compose.ui.geometry.Offset
|
||||
import androidx.compose.ui.graphics.Brush
|
||||
import androidx.compose.ui.graphics.Color
|
||||
import androidx.compose.ui.graphics.RectangleShape
|
||||
import androidx.compose.ui.graphics.Shape
|
||||
import androidx.compose.ui.graphics.TileMode
|
||||
|
||||
fun Modifier.shimmerBackground(shape: Shape = RectangleShape): Modifier = composed {
|
||||
val transition = rememberInfiniteTransition()
|
||||
val translateAnimation by transition.animateFloat(
|
||||
initialValue = 0f,
|
||||
targetValue = 400f,
|
||||
animationSpec = infiniteRepeatable(
|
||||
tween(durationMillis = 1500, easing = LinearOutSlowInEasing),
|
||||
RepeatMode.Restart
|
||||
),
|
||||
)
|
||||
val shimmerColors = listOf(
|
||||
Color.LightGray.copy(alpha = 0.9f),
|
||||
Color.LightGray.copy(alpha = 0.4f),
|
||||
)
|
||||
val brush = Brush.linearGradient(
|
||||
colors = shimmerColors,
|
||||
start = Offset(translateAnimation, translateAnimation),
|
||||
end = Offset(translateAnimation + 100f, translateAnimation + 100f),
|
||||
tileMode = TileMode.Mirror,
|
||||
)
|
||||
return@composed this.then(background(brush, shape))
|
||||
}
|
||||
@@ -1,7 +1,6 @@
|
||||
package com.owenlejeune.tvtime.ui.components
|
||||
|
||||
import android.util.Log
|
||||
import androidx.compose.foundation.ExperimentalFoundationApi
|
||||
import androidx.compose.foundation.background
|
||||
import androidx.compose.foundation.clickable
|
||||
import androidx.compose.foundation.focusable
|
||||
@@ -16,7 +15,6 @@ import androidx.compose.material.icons.filled.Movie
|
||||
import androidx.compose.material.icons.filled.Person
|
||||
import androidx.compose.material3.Card
|
||||
import androidx.compose.material3.CardDefaults
|
||||
import androidx.compose.material3.ExperimentalMaterial3Api
|
||||
import androidx.compose.material3.Icon
|
||||
import androidx.compose.material3.MaterialTheme
|
||||
import androidx.compose.material3.Text
|
||||
@@ -39,16 +37,14 @@ import androidx.paging.compose.LazyPagingItems
|
||||
import coil.compose.AsyncImage
|
||||
import coil.request.CachePolicy
|
||||
import coil.request.ImageRequest
|
||||
import com.owenlejeune.tvtime.api.LoadingState
|
||||
import com.owenlejeune.tvtime.api.tmdb.api.v3.model.HomePagePerson
|
||||
import com.owenlejeune.tvtime.api.tmdb.api.v3.model.Person
|
||||
import com.owenlejeune.tvtime.api.tmdb.api.v3.model.TmdbItem
|
||||
import com.owenlejeune.tvtime.extensions.header
|
||||
import com.owenlejeune.tvtime.extensions.lazyPagingItems
|
||||
import com.owenlejeune.tvtime.extensions.listItems
|
||||
import com.owenlejeune.tvtime.extensions.shimmerBackground
|
||||
import com.owenlejeune.tvtime.preferences.AppPreferences
|
||||
import com.owenlejeune.tvtime.ui.viewmodel.ConfigurationViewModel
|
||||
import com.owenlejeune.tvtime.utils.TmdbUtils
|
||||
import org.koin.androidx.compose.koinViewModel
|
||||
import org.koin.java.KoinJavaComponent.get
|
||||
|
||||
private val POSTER_WIDTH = 120.dp
|
||||
@@ -58,7 +54,7 @@ private val POSTER_HEIGHT = 180.dp
|
||||
fun PagingPosterGrid(
|
||||
modifier: Modifier = Modifier,
|
||||
lazyPagingItems: LazyPagingItems<TmdbItem>?,
|
||||
header: @Composable (LazyGridItemScope.() -> Unit)? = null,
|
||||
headerContent: @Composable (LazyGridItemScope.() -> Unit)? = null,
|
||||
onClick: (id: Int) -> Unit = {}
|
||||
) {
|
||||
lazyPagingItems?.let {
|
||||
@@ -68,8 +64,8 @@ fun PagingPosterGrid(
|
||||
contentPadding = PaddingValues(8.dp),
|
||||
horizontalArrangement = Arrangement.SpaceBetween
|
||||
) {
|
||||
header?.let {
|
||||
header(header)
|
||||
headerContent?.let {
|
||||
header(headerContent)
|
||||
}
|
||||
lazyPagingItems(
|
||||
lazyPagingItems = lazyPagingItems,
|
||||
|
||||
@@ -101,7 +101,7 @@ fun MediaTabTrendingContent(
|
||||
|
||||
PagingPosterGrid(
|
||||
lazyPagingItems = mediaListItems,
|
||||
header = {
|
||||
headerContent = {
|
||||
val options = listOf(TimeWindow.DAY, TimeWindow.WEEK)
|
||||
|
||||
val context = LocalContext.current
|
||||
|
||||
Reference in New Issue
Block a user