diff --git a/app/tv/build.gradle.kts b/app/tv/build.gradle.kts index 3324bee0..b4aa064e 100644 --- a/app/tv/build.gradle.kts +++ b/app/tv/build.gradle.kts @@ -81,15 +81,14 @@ ktlint { } dependencies { - val composeBom = platform(libs.androidx.compose.bom) - implementation(projects.core) implementation(projects.data) implementation(projects.preferences) implementation(projects.player.core) implementation(projects.player.video) implementation(libs.androidx.activity.compose) - implementation(composeBom) + implementation(libs.androidx.compose.foundation) + implementation(libs.androidx.compose.runtime) implementation(libs.androidx.compose.ui.tooling.preview) implementation(libs.androidx.compose.material3) implementation(libs.androidx.core) @@ -99,7 +98,6 @@ dependencies { implementation(libs.androidx.media3.ui) implementation(libs.androidx.media3.session) implementation(libs.androidx.paging.compose) - implementation(libs.androidx.tv.foundation) implementation(libs.androidx.tv.material) implementation(libs.coil.compose) implementation(libs.coil.svg) diff --git a/app/tv/src/main/java/dev/jdtech/jellyfin/ui/AddServerScreen.kt b/app/tv/src/main/java/dev/jdtech/jellyfin/ui/AddServerScreen.kt index acdacdce..a59595b4 100644 --- a/app/tv/src/main/java/dev/jdtech/jellyfin/ui/AddServerScreen.kt +++ b/app/tv/src/main/java/dev/jdtech/jellyfin/ui/AddServerScreen.kt @@ -115,7 +115,7 @@ private fun AddServerScreenLayout( }, singleLine = true, keyboardOptions = KeyboardOptions( - autoCorrect = false, + autoCorrectEnabled = false, keyboardType = KeyboardType.Uri, imeAction = ImeAction.Go, ), diff --git a/app/tv/src/main/java/dev/jdtech/jellyfin/ui/HomeScreen.kt b/app/tv/src/main/java/dev/jdtech/jellyfin/ui/HomeScreen.kt index 4515a414..2fbb892b 100644 --- a/app/tv/src/main/java/dev/jdtech/jellyfin/ui/HomeScreen.kt +++ b/app/tv/src/main/java/dev/jdtech/jellyfin/ui/HomeScreen.kt @@ -6,6 +6,9 @@ import androidx.compose.foundation.layout.Spacer import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.foundation.layout.height import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.lazy.LazyColumn +import androidx.compose.foundation.lazy.LazyRow +import androidx.compose.foundation.lazy.items import androidx.compose.runtime.Composable import androidx.compose.runtime.LaunchedEffect import androidx.compose.runtime.collectAsState @@ -19,9 +22,6 @@ import androidx.compose.ui.focus.focusRequester import androidx.compose.ui.res.stringResource import androidx.compose.ui.tooling.preview.Preview import androidx.hilt.navigation.compose.hiltViewModel -import androidx.tv.foundation.lazy.list.TvLazyColumn -import androidx.tv.foundation.lazy.list.TvLazyRow -import androidx.tv.foundation.lazy.list.items import androidx.tv.material3.MaterialTheme import androidx.tv.material3.Text import com.ramcosta.composedestinations.annotation.Destination @@ -107,7 +107,7 @@ private fun HomeScreenLayout( } else -> Unit } - TvLazyColumn( + LazyColumn( contentPadding = PaddingValues(bottom = MaterialTheme.spacings.large), modifier = Modifier .fillMaxSize() @@ -122,7 +122,7 @@ private fun HomeScreenLayout( modifier = Modifier.padding(start = MaterialTheme.spacings.large), ) Spacer(modifier = Modifier.height(MaterialTheme.spacings.medium)) - TvLazyRow( + LazyRow( horizontalArrangement = Arrangement.spacedBy(MaterialTheme.spacings.default), contentPadding = PaddingValues(horizontal = MaterialTheme.spacings.large), ) { @@ -145,7 +145,7 @@ private fun HomeScreenLayout( modifier = Modifier.padding(start = MaterialTheme.spacings.large), ) Spacer(modifier = Modifier.height(MaterialTheme.spacings.medium)) - TvLazyRow( + LazyRow( horizontalArrangement = Arrangement.spacedBy(MaterialTheme.spacings.default), contentPadding = PaddingValues(horizontal = MaterialTheme.spacings.large), ) { diff --git a/app/tv/src/main/java/dev/jdtech/jellyfin/ui/LibrariesScreen.kt b/app/tv/src/main/java/dev/jdtech/jellyfin/ui/LibrariesScreen.kt index 07e042fc..d412a0c1 100644 --- a/app/tv/src/main/java/dev/jdtech/jellyfin/ui/LibrariesScreen.kt +++ b/app/tv/src/main/java/dev/jdtech/jellyfin/ui/LibrariesScreen.kt @@ -2,6 +2,9 @@ package dev.jdtech.jellyfin.ui import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.PaddingValues +import androidx.compose.foundation.lazy.grid.GridCells +import androidx.compose.foundation.lazy.grid.LazyVerticalGrid +import androidx.compose.foundation.lazy.grid.items import androidx.compose.runtime.Composable import androidx.compose.runtime.LaunchedEffect import androidx.compose.runtime.collectAsState @@ -14,9 +17,6 @@ import androidx.compose.ui.focus.FocusRequester import androidx.compose.ui.focus.focusRequester import androidx.compose.ui.tooling.preview.Preview import androidx.hilt.navigation.compose.hiltViewModel -import androidx.tv.foundation.lazy.grid.TvGridCells -import androidx.tv.foundation.lazy.grid.TvLazyVerticalGrid -import androidx.tv.foundation.lazy.grid.items import androidx.tv.material3.MaterialTheme import com.ramcosta.composedestinations.annotation.Destination import com.ramcosta.composedestinations.navigation.DestinationsNavigator @@ -72,8 +72,8 @@ private fun LibrariesScreenLayout( val focusRequester = remember { FocusRequester() } - TvLazyVerticalGrid( - columns = TvGridCells.Fixed(3), + LazyVerticalGrid( + columns = GridCells.Fixed(3), horizontalArrangement = Arrangement.spacedBy(MaterialTheme.spacings.large), verticalArrangement = Arrangement.spacedBy(MaterialTheme.spacings.large), contentPadding = PaddingValues( diff --git a/app/tv/src/main/java/dev/jdtech/jellyfin/ui/LibraryScreen.kt b/app/tv/src/main/java/dev/jdtech/jellyfin/ui/LibraryScreen.kt index 6b18565f..4af57365 100644 --- a/app/tv/src/main/java/dev/jdtech/jellyfin/ui/LibraryScreen.kt +++ b/app/tv/src/main/java/dev/jdtech/jellyfin/ui/LibraryScreen.kt @@ -3,6 +3,9 @@ package dev.jdtech.jellyfin.ui import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.PaddingValues import androidx.compose.foundation.layout.fillMaxSize +import androidx.compose.foundation.lazy.grid.GridCells +import androidx.compose.foundation.lazy.grid.GridItemSpan +import androidx.compose.foundation.lazy.grid.LazyVerticalGrid import androidx.compose.runtime.Composable import androidx.compose.runtime.LaunchedEffect import androidx.compose.runtime.collectAsState @@ -15,9 +18,6 @@ import androidx.compose.ui.tooling.preview.Preview import androidx.hilt.navigation.compose.hiltViewModel import androidx.paging.PagingData import androidx.paging.compose.collectAsLazyPagingItems -import androidx.tv.foundation.lazy.grid.TvGridCells -import androidx.tv.foundation.lazy.grid.TvGridItemSpan -import androidx.tv.foundation.lazy.grid.TvLazyVerticalGrid import androidx.tv.material3.MaterialTheme import androidx.tv.material3.Text import com.ramcosta.composedestinations.annotation.Destination @@ -86,8 +86,8 @@ private fun LibraryScreenLayout( is LibraryViewModel.UiState.Loading -> Text(text = "LOADING") is LibraryViewModel.UiState.Normal -> { val items = uiState.items.collectAsLazyPagingItems() - TvLazyVerticalGrid( - columns = TvGridCells.Fixed(5), + LazyVerticalGrid( + columns = GridCells.Fixed(5), horizontalArrangement = Arrangement.spacedBy(MaterialTheme.spacings.default), verticalArrangement = Arrangement.spacedBy(MaterialTheme.spacings.default), contentPadding = PaddingValues(horizontal = MaterialTheme.spacings.default * 2, vertical = MaterialTheme.spacings.large), @@ -95,7 +95,7 @@ private fun LibraryScreenLayout( .fillMaxSize() .focusRequester(focusRequester), ) { - item(span = { TvGridItemSpan(this.maxLineSpan) }) { + item(span = { GridItemSpan(this.maxLineSpan) }) { Text( text = libraryName, style = MaterialTheme.typography.displayMedium, diff --git a/app/tv/src/main/java/dev/jdtech/jellyfin/ui/LoginScreen.kt b/app/tv/src/main/java/dev/jdtech/jellyfin/ui/LoginScreen.kt index 6cbc210c..e0dd01d9 100644 --- a/app/tv/src/main/java/dev/jdtech/jellyfin/ui/LoginScreen.kt +++ b/app/tv/src/main/java/dev/jdtech/jellyfin/ui/LoginScreen.kt @@ -152,7 +152,7 @@ private fun LoginScreenLayout( label = { Text(text = stringResource(id = CoreR.string.edit_text_username_hint)) }, singleLine = true, keyboardOptions = KeyboardOptions( - autoCorrect = false, + autoCorrectEnabled = false, keyboardType = KeyboardType.Text, imeAction = ImeAction.Next, ), @@ -175,7 +175,7 @@ private fun LoginScreenLayout( label = { Text(text = stringResource(id = CoreR.string.edit_text_password_hint)) }, singleLine = true, keyboardOptions = KeyboardOptions( - autoCorrect = false, + autoCorrectEnabled = false, keyboardType = KeyboardType.Password, imeAction = ImeAction.Go, ), diff --git a/app/tv/src/main/java/dev/jdtech/jellyfin/ui/PlayerScreen.kt b/app/tv/src/main/java/dev/jdtech/jellyfin/ui/PlayerScreen.kt index 92cb0aae..af5a8c43 100644 --- a/app/tv/src/main/java/dev/jdtech/jellyfin/ui/PlayerScreen.kt +++ b/app/tv/src/main/java/dev/jdtech/jellyfin/ui/PlayerScreen.kt @@ -18,12 +18,12 @@ import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.focus.FocusRequester import androidx.compose.ui.platform.LocalContext -import androidx.compose.ui.platform.LocalLifecycleOwner import androidx.compose.ui.res.painterResource import androidx.compose.ui.viewinterop.AndroidView import androidx.hilt.navigation.compose.hiltViewModel import androidx.lifecycle.Lifecycle import androidx.lifecycle.LifecycleEventObserver +import androidx.lifecycle.compose.LocalLifecycleOwner import androidx.media3.common.C import androidx.media3.common.Player import androidx.media3.common.TrackSelectionOverride diff --git a/app/tv/src/main/java/dev/jdtech/jellyfin/ui/SeasonScreen.kt b/app/tv/src/main/java/dev/jdtech/jellyfin/ui/SeasonScreen.kt index e54895e7..21c64f70 100644 --- a/app/tv/src/main/java/dev/jdtech/jellyfin/ui/SeasonScreen.kt +++ b/app/tv/src/main/java/dev/jdtech/jellyfin/ui/SeasonScreen.kt @@ -6,6 +6,8 @@ import androidx.compose.foundation.layout.PaddingValues import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.lazy.LazyColumn +import androidx.compose.foundation.lazy.items import androidx.compose.runtime.Composable import androidx.compose.runtime.LaunchedEffect import androidx.compose.runtime.collectAsState @@ -16,8 +18,6 @@ import androidx.compose.ui.focus.FocusRequester import androidx.compose.ui.focus.focusRequester import androidx.compose.ui.tooling.preview.Preview import androidx.hilt.navigation.compose.hiltViewModel -import androidx.tv.foundation.lazy.list.TvLazyColumn -import androidx.tv.foundation.lazy.list.items import androidx.tv.material3.MaterialTheme import androidx.tv.material3.Text import com.ramcosta.composedestinations.annotation.Destination @@ -109,7 +109,7 @@ private fun SeasonScreenLayout( style = MaterialTheme.typography.headlineMedium, ) } - TvLazyColumn( + LazyColumn( contentPadding = PaddingValues( top = MaterialTheme.spacings.large, bottom = MaterialTheme.spacings.large, diff --git a/app/tv/src/main/java/dev/jdtech/jellyfin/ui/ServerSelectScreen.kt b/app/tv/src/main/java/dev/jdtech/jellyfin/ui/ServerSelectScreen.kt index 4d3cc63c..e11f04ac 100644 --- a/app/tv/src/main/java/dev/jdtech/jellyfin/ui/ServerSelectScreen.kt +++ b/app/tv/src/main/java/dev/jdtech/jellyfin/ui/ServerSelectScreen.kt @@ -13,6 +13,8 @@ import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.height import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.width +import androidx.compose.foundation.lazy.LazyRow +import androidx.compose.foundation.lazy.items import androidx.compose.foundation.shape.RoundedCornerShape import androidx.compose.runtime.Composable import androidx.compose.runtime.LaunchedEffect @@ -31,8 +33,6 @@ import androidx.compose.ui.text.style.TextOverflow import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp import androidx.hilt.navigation.compose.hiltViewModel -import androidx.tv.foundation.lazy.list.TvLazyRow -import androidx.tv.foundation.lazy.list.items import androidx.tv.material3.Border import androidx.tv.material3.ClickableSurfaceDefaults import androidx.tv.material3.Icon @@ -172,7 +172,7 @@ private fun ServerSelectScreenLayout( style = MaterialTheme.typography.bodyMedium, ) } else { - TvLazyRow( + LazyRow( horizontalArrangement = Arrangement.spacedBy(MaterialTheme.spacings.large), contentPadding = PaddingValues(horizontal = MaterialTheme.spacings.default), modifier = Modifier.focusRequester(focusRequester), diff --git a/app/tv/src/main/java/dev/jdtech/jellyfin/ui/SettingsScreen.kt b/app/tv/src/main/java/dev/jdtech/jellyfin/ui/SettingsScreen.kt index 9e5866c0..f65bc835 100644 --- a/app/tv/src/main/java/dev/jdtech/jellyfin/ui/SettingsScreen.kt +++ b/app/tv/src/main/java/dev/jdtech/jellyfin/ui/SettingsScreen.kt @@ -3,6 +3,10 @@ package dev.jdtech.jellyfin.ui import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.PaddingValues import androidx.compose.foundation.layout.fillMaxSize +import androidx.compose.foundation.lazy.grid.GridCells +import androidx.compose.foundation.lazy.grid.GridItemSpan +import androidx.compose.foundation.lazy.grid.LazyVerticalGrid +import androidx.compose.foundation.lazy.grid.items import androidx.compose.runtime.Composable import androidx.compose.runtime.LaunchedEffect import androidx.compose.runtime.collectAsState @@ -15,10 +19,6 @@ import androidx.compose.ui.res.stringArrayResource import androidx.compose.ui.res.stringResource import androidx.compose.ui.tooling.preview.Preview import androidx.hilt.navigation.compose.hiltViewModel -import androidx.tv.foundation.lazy.grid.TvGridCells -import androidx.tv.foundation.lazy.grid.TvGridItemSpan -import androidx.tv.foundation.lazy.grid.TvLazyVerticalGrid -import androidx.tv.foundation.lazy.grid.items import androidx.tv.material3.MaterialTheme import androidx.tv.material3.Text import com.ramcosta.composedestinations.annotation.Destination @@ -88,8 +88,8 @@ private fun SettingsScreenLayout( when (uiState) { is SettingsViewModel.UiState.Normal -> { - TvLazyVerticalGrid( - columns = TvGridCells.Fixed(3), + LazyVerticalGrid( + columns = GridCells.Fixed(3), horizontalArrangement = Arrangement.spacedBy(MaterialTheme.spacings.default), verticalArrangement = Arrangement.spacedBy(MaterialTheme.spacings.default), contentPadding = PaddingValues(horizontal = MaterialTheme.spacings.default * 2, vertical = MaterialTheme.spacings.large), @@ -97,7 +97,7 @@ private fun SettingsScreenLayout( .fillMaxSize() .focusRequester(focusRequester), ) { - item(span = { TvGridItemSpan(this.maxLineSpan) }) { + item(span = { GridItemSpan(this.maxLineSpan) }) { Text( text = stringResource(id = CoreR.string.title_settings), style = MaterialTheme.typography.displayMedium, diff --git a/app/tv/src/main/java/dev/jdtech/jellyfin/ui/SettingsSubScreen.kt b/app/tv/src/main/java/dev/jdtech/jellyfin/ui/SettingsSubScreen.kt index eec271ef..aeef7df1 100644 --- a/app/tv/src/main/java/dev/jdtech/jellyfin/ui/SettingsSubScreen.kt +++ b/app/tv/src/main/java/dev/jdtech/jellyfin/ui/SettingsSubScreen.kt @@ -8,6 +8,8 @@ import androidx.compose.foundation.layout.PaddingValues import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.lazy.LazyColumn +import androidx.compose.foundation.lazy.items import androidx.compose.runtime.Composable import androidx.compose.runtime.LaunchedEffect import androidx.compose.runtime.collectAsState @@ -23,8 +25,6 @@ import androidx.compose.ui.res.stringArrayResource import androidx.compose.ui.res.stringResource import androidx.compose.ui.tooling.preview.Preview import androidx.hilt.navigation.compose.hiltViewModel -import androidx.tv.foundation.lazy.list.TvLazyColumn -import androidx.tv.foundation.lazy.list.items import androidx.tv.material3.MaterialTheme import androidx.tv.material3.Text import com.ramcosta.composedestinations.annotation.Destination @@ -131,7 +131,7 @@ private fun SettingsSubScreenLayout( Row( horizontalArrangement = Arrangement.spacedBy(MaterialTheme.spacings.large), ) { - TvLazyColumn( + LazyColumn( verticalArrangement = Arrangement.spacedBy(MaterialTheme.spacings.default), contentPadding = PaddingValues(vertical = MaterialTheme.spacings.large), modifier = Modifier diff --git a/app/tv/src/main/java/dev/jdtech/jellyfin/ui/ShowScreen.kt b/app/tv/src/main/java/dev/jdtech/jellyfin/ui/ShowScreen.kt index 77fb1464..95c35bef 100644 --- a/app/tv/src/main/java/dev/jdtech/jellyfin/ui/ShowScreen.kt +++ b/app/tv/src/main/java/dev/jdtech/jellyfin/ui/ShowScreen.kt @@ -1,5 +1,6 @@ package dev.jdtech.jellyfin.ui +import android.annotation.SuppressLint import android.content.Intent import android.net.Uri import android.view.KeyEvent @@ -16,6 +17,10 @@ import androidx.compose.foundation.layout.height import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.size import androidx.compose.foundation.layout.width +import androidx.compose.foundation.lazy.LazyColumn +import androidx.compose.foundation.lazy.LazyRow +import androidx.compose.foundation.lazy.items +import androidx.compose.foundation.lazy.rememberLazyListState import androidx.compose.runtime.Composable import androidx.compose.runtime.LaunchedEffect import androidx.compose.runtime.collectAsState @@ -44,10 +49,6 @@ import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.toSize import androidx.hilt.navigation.compose.hiltViewModel -import androidx.tv.foundation.lazy.list.TvLazyColumn -import androidx.tv.foundation.lazy.list.TvLazyRow -import androidx.tv.foundation.lazy.list.items -import androidx.tv.foundation.lazy.list.rememberTvLazyListState import androidx.tv.material3.Button import androidx.tv.material3.Icon import androidx.tv.material3.LocalContentColor @@ -136,7 +137,7 @@ private fun ShowScreenLayout( ) { val focusRequester = remember { FocusRequester() } - val listState = rememberTvLazyListState() + val listState = rememberLazyListState() val listSize = remember { mutableIntStateOf(2) } var currentIndex by remember { mutableIntStateOf(0) } @@ -179,7 +180,7 @@ private fun ShowScreenLayout( ), ) } - TvLazyColumn( + LazyColumn( state = listState, contentPadding = PaddingValues(top = 112.dp, bottom = MaterialTheme.spacings.large), verticalArrangement = Arrangement.spacedBy(MaterialTheme.spacings.medium), @@ -364,7 +365,7 @@ private fun ShowScreenLayout( } } item { - TvLazyRow( + LazyRow( horizontalArrangement = Arrangement.spacedBy(MaterialTheme.spacings.default), contentPadding = PaddingValues(horizontal = MaterialTheme.spacings.default * 2), ) { diff --git a/app/tv/src/main/java/dev/jdtech/jellyfin/ui/UserSelectScreen.kt b/app/tv/src/main/java/dev/jdtech/jellyfin/ui/UserSelectScreen.kt index ed1b6e92..4a0679e3 100644 --- a/app/tv/src/main/java/dev/jdtech/jellyfin/ui/UserSelectScreen.kt +++ b/app/tv/src/main/java/dev/jdtech/jellyfin/ui/UserSelectScreen.kt @@ -11,6 +11,8 @@ import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.height import androidx.compose.foundation.layout.width +import androidx.compose.foundation.lazy.LazyRow +import androidx.compose.foundation.lazy.items import androidx.compose.foundation.shape.CircleShape import androidx.compose.runtime.Composable import androidx.compose.runtime.LaunchedEffect @@ -29,8 +31,6 @@ import androidx.compose.ui.res.stringResource import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp import androidx.hilt.navigation.compose.hiltViewModel -import androidx.tv.foundation.lazy.list.TvLazyRow -import androidx.tv.foundation.lazy.list.items import androidx.tv.material3.Border import androidx.tv.material3.ClickableSurfaceDefaults import androidx.tv.material3.Icon @@ -146,7 +146,7 @@ private fun UserSelectScreenLayout( style = MaterialTheme.typography.bodyMedium, ) } else { - TvLazyRow( + LazyRow( horizontalArrangement = Arrangement.spacedBy(MaterialTheme.spacings.default), contentPadding = PaddingValues(MaterialTheme.spacings.default), modifier = Modifier.focusRequester(focusRequester), diff --git a/app/tv/src/main/java/dev/jdtech/jellyfin/ui/components/SettingsDetailsSelectCard.kt b/app/tv/src/main/java/dev/jdtech/jellyfin/ui/components/SettingsDetailsSelectCard.kt index 74d2b9ba..efc6aa19 100644 --- a/app/tv/src/main/java/dev/jdtech/jellyfin/ui/components/SettingsDetailsSelectCard.kt +++ b/app/tv/src/main/java/dev/jdtech/jellyfin/ui/components/SettingsDetailsSelectCard.kt @@ -9,6 +9,7 @@ import androidx.compose.foundation.layout.Spacer import androidx.compose.foundation.layout.height import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.width +import androidx.compose.foundation.lazy.LazyColumn import androidx.compose.foundation.shape.RoundedCornerShape import androidx.compose.runtime.Composable import androidx.compose.ui.Alignment @@ -18,7 +19,6 @@ import androidx.compose.ui.res.stringArrayResource import androidx.compose.ui.res.stringResource import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp -import androidx.tv.foundation.lazy.list.TvLazyColumn import androidx.tv.material3.Border import androidx.tv.material3.ClickableSurfaceDefaults import androidx.tv.material3.ClickableSurfaceScale @@ -56,7 +56,7 @@ fun SettingsDetailsCard( Text(text = stringResource(id = it), style = MaterialTheme.typography.bodyMedium) } Spacer(modifier = Modifier.height(MaterialTheme.spacings.default)) - TvLazyColumn( + LazyColumn( verticalArrangement = Arrangement.spacedBy(MaterialTheme.spacings.medium - MaterialTheme.spacings.extraSmall), contentPadding = PaddingValues(vertical = MaterialTheme.spacings.extraSmall), ) { diff --git a/app/tv/src/main/java/dev/jdtech/jellyfin/ui/dialogs/VideoPlayerTrackSelectorDialog.kt b/app/tv/src/main/java/dev/jdtech/jellyfin/ui/dialogs/VideoPlayerTrackSelectorDialog.kt index 94176948..9393adc9 100644 --- a/app/tv/src/main/java/dev/jdtech/jellyfin/ui/dialogs/VideoPlayerTrackSelectorDialog.kt +++ b/app/tv/src/main/java/dev/jdtech/jellyfin/ui/dialogs/VideoPlayerTrackSelectorDialog.kt @@ -10,6 +10,8 @@ import androidx.compose.foundation.layout.Spacer import androidx.compose.foundation.layout.height import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.width +import androidx.compose.foundation.lazy.LazyColumn +import androidx.compose.foundation.lazy.items import androidx.compose.foundation.shape.RoundedCornerShape import androidx.compose.runtime.Composable import androidx.compose.ui.Alignment @@ -19,8 +21,6 @@ import androidx.compose.ui.res.stringResource import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp import androidx.media3.common.C -import androidx.tv.foundation.lazy.list.TvLazyColumn -import androidx.tv.foundation.lazy.list.items import androidx.tv.material3.Border import androidx.tv.material3.ClickableSurfaceDefaults import androidx.tv.material3.ClickableSurfaceScale @@ -65,7 +65,7 @@ fun VideoPlayerTrackSelectorDialog( style = MaterialTheme.typography.headlineMedium, ) Spacer(modifier = Modifier.height(MaterialTheme.spacings.medium)) - TvLazyColumn( + LazyColumn( verticalArrangement = Arrangement.spacedBy(MaterialTheme.spacings.medium - MaterialTheme.spacings.extraSmall), contentPadding = PaddingValues(vertical = MaterialTheme.spacings.extraSmall), ) { diff --git a/core/build.gradle.kts b/core/build.gradle.kts index 76bfe312..f38277b9 100644 --- a/core/build.gradle.kts +++ b/core/build.gradle.kts @@ -49,13 +49,13 @@ ktlint { } dependencies { - val composeBom = platform(libs.androidx.compose.bom) + // val composeBom = platform(libs.androidx.compose.bom) implementation(projects.data) implementation(projects.preferences) implementation(projects.player.core) implementation(libs.androidx.appcompat) - implementation(composeBom) + // implementation(composeBom) implementation(libs.androidx.compose.ui) implementation(libs.androidx.core) implementation(libs.androidx.hilt.work) diff --git a/core/src/main/java/dev/jdtech/jellyfin/utils/ComposeUtils.kt b/core/src/main/java/dev/jdtech/jellyfin/utils/ComposeUtils.kt index 00da8ca2..79e85a5b 100644 --- a/core/src/main/java/dev/jdtech/jellyfin/utils/ComposeUtils.kt +++ b/core/src/main/java/dev/jdtech/jellyfin/utils/ComposeUtils.kt @@ -6,8 +6,8 @@ import androidx.compose.runtime.LaunchedEffect import androidx.compose.ui.Modifier import androidx.compose.ui.input.key.onKeyEvent import androidx.compose.ui.input.key.onPreviewKeyEvent -import androidx.compose.ui.platform.LocalLifecycleOwner import androidx.lifecycle.Lifecycle +import androidx.lifecycle.compose.LocalLifecycleOwner import androidx.lifecycle.repeatOnLifecycle import kotlinx.coroutines.flow.Flow diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 84ce78bb..5797bad9 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -4,7 +4,7 @@ android-desugar-jdk-libs = "2.0.4" android-plugin = "8.5.1" androidx-activity = "1.9.0" androidx-appcompat = "1.7.0" -androidx-compose-bom = "2024.06.00" +androidx-compose = "1.7.0-beta05" androidx-compose-material3 = "1.2.1" androidx-constraintlayout = "2.1.4" androidx-core = "1.13.1" @@ -22,7 +22,6 @@ androidx-test-expresso = "3.6.1" androidx-test-junit = "1.2.1" androidx-test-rules = "1.6.1" androidx-test-runner = "1.6.1" -androidx-tv = "1.0.0-alpha11" androidx-tv-material3 = "1.0.0-rc01" androidx-work = "2.9.0" coil = "2.6.0" @@ -46,11 +45,12 @@ android-desugar-jdk = { group = "com.android.tools", name = "desugar_jdk_libs", androidx-activity = { group = "androidx.activity", name = "activity", version.ref = "androidx-activity" } androidx-activity-compose = { group = "androidx.activity", name = "activity-compose", version.ref = "androidx-activity" } androidx-appcompat = { group = "androidx.appcompat", name = "appcompat", version.ref = "androidx-appcompat" } -androidx-compose-bom = { group = "androidx.compose", name = "compose-bom", version.ref = "androidx-compose-bom" } +androidx-compose-foundation = { group = "androidx.compose.foundation", name = "foundation", version.ref = "androidx-compose" } androidx-compose-material3 = { group = "androidx.compose.material3", name = "material3", version.ref = "androidx-compose-material3" } -androidx-compose-ui = { group = "androidx.compose.ui", name = "ui" } -androidx-compose-ui-tooling = { group = "androidx.compose.ui", name = "ui-tooling" } -androidx-compose-ui-tooling-preview = { group = "androidx.compose.ui", name = "ui-tooling-preview" } +androidx-compose-runtime = { group = "androidx.compose.runtime", name = "runtime", version.ref = "androidx-compose" } +androidx-compose-ui = { group = "androidx.compose.ui", name = "ui", version.ref = "androidx-compose" } +androidx-compose-ui-tooling = { group = "androidx.compose.ui", name = "ui-tooling", version.ref = "androidx-compose" } +androidx-compose-ui-tooling-preview = { group = "androidx.compose.ui", name = "ui-tooling-preview", version.ref = "androidx-compose" } androidx-constraintlayout = { group = "androidx.constraintlayout", name = "constraintlayout", version.ref = "androidx-constraintlayout" } androidx-core = { group = "androidx.core", name = "core", version.ref = "androidx-core" } androidx-hilt-navigation-compose = { group = "androidx.hilt", name = "hilt-navigation-compose", version.ref = "androidx-hilt" } @@ -79,7 +79,6 @@ androidx-test-expresso = { group = "androidx.test.espresso", name = "espresso-co androidx-test-junit = { group = "androidx.test.ext", name = "junit", version.ref = "androidx-test-junit" } androidx-test-rules = { group = "androidx.test" , name = "rules", version.ref = "androidx-test-rules" } androidx-test-runner = { group = "androidx.test", name = "runner", version.ref = "androidx-test-runner" } -androidx-tv-foundation = { group = "androidx.tv", name = "tv-foundation", version.ref = "androidx-tv" } androidx-tv-material = { group = "androidx.tv", name = "tv-material", version.ref = "androidx-tv-material3" } androidx-work = { group = "androidx.work", name = "work-runtime", version.ref = "androidx-work" } androidx-work-testing = { group = "androidx.work", name = "work-testing", version.ref = "androidx-work" }