From f88ee8b485cade91e8981a813ac6eab755544de6 Mon Sep 17 00:00:00 2001 From: Chiara Chiappini Date: Fri, 13 Sep 2024 15:39:18 +0100 Subject: [PATCH] Update Horologist lib and bump sdk --- Jetcaster/gradle/libs.versions.toml | 4 ++-- Jetcaster/wear/build.gradle | 2 +- .../jetcaster/ui/episode/EpisodeScreen.kt | 9 ++++---- .../latest_episodes/LatestEpisodesScreen.kt | 14 +++-------- .../jetcaster/ui/library/LibraryScreen.kt | 6 ++--- .../jetcaster/ui/player/PlayerScreen.kt | 7 +++--- .../ui/podcast/PodcastDetailsScreen.kt | 4 ++-- .../jetcaster/ui/podcasts/PodcastsScreen.kt | 13 ++++------- .../example/jetcaster/ui/queue/QueueScreen.kt | 23 +++++++------------ 9 files changed, 31 insertions(+), 51 deletions(-) diff --git a/Jetcaster/gradle/libs.versions.toml b/Jetcaster/gradle/libs.versions.toml index 50f95ad964..7e0625d6cd 100644 --- a/Jetcaster/gradle/libs.versions.toml +++ b/Jetcaster/gradle/libs.versions.toml @@ -24,7 +24,7 @@ androidx-test-espresso = "3.6.1" androidx-test-ext-junit = "1.2.1" androidx-test-ext-truth = "1.5.0" androidx-tv-material = "1.0.0" -androidx-wear-compose = "1.3.1" +androidx-wear-compose = "1.4.0" androidx-window = "1.3.0" androidxHiltNavigationCompose = "1.2.0" androix-test-uiautomator = "2.3.0" @@ -36,7 +36,7 @@ google-maps = "18.2.0" gradle-versions = "0.51.0" hilt = "2.51.1" hiltExt = "1.2.0" -horologist = "0.6.9" +horologist = "0.6.19" # @pin When updating to AGP 7.4.0-alpha10 and up we can update this https://developer.android.com/studio/write/java8-support#library-desugaring-versions jdkDesugar = "1.2.2" junit = "4.13.2" diff --git a/Jetcaster/wear/build.gradle b/Jetcaster/wear/build.gradle index 22e68b3948..b8803bbdde 100644 --- a/Jetcaster/wear/build.gradle +++ b/Jetcaster/wear/build.gradle @@ -30,7 +30,7 @@ android { defaultConfig { applicationId "com.example.jetcaster" minSdk 26 - targetSdk 33 + targetSdk 34 versionCode 1 versionName "1.0" } diff --git a/Jetcaster/wear/src/main/java/com/example/jetcaster/ui/episode/EpisodeScreen.kt b/Jetcaster/wear/src/main/java/com/example/jetcaster/ui/episode/EpisodeScreen.kt index 4bb9a901dc..d03b8fb2dd 100644 --- a/Jetcaster/wear/src/main/java/com/example/jetcaster/ui/episode/EpisodeScreen.kt +++ b/Jetcaster/wear/src/main/java/com/example/jetcaster/ui/episode/EpisodeScreen.kt @@ -35,6 +35,7 @@ import androidx.lifecycle.compose.collectAsStateWithLifecycle import androidx.wear.compose.foundation.lazy.ScalingLazyListScope import androidx.wear.compose.foundation.lazy.items import androidx.wear.compose.material.ChipDefaults +import androidx.wear.compose.material.ExperimentalWearMaterialApi import androidx.wear.compose.material.LocalContentColor import androidx.wear.compose.material.MaterialTheme import androidx.wear.compose.material.Text @@ -49,7 +50,6 @@ import com.google.android.horologist.composables.PlaceholderChip import com.google.android.horologist.compose.layout.ScalingLazyColumnDefaults import com.google.android.horologist.compose.layout.ScalingLazyColumnDefaults.listTextPadding import com.google.android.horologist.compose.layout.ScalingLazyColumnDefaults.padding -import com.google.android.horologist.compose.layout.ScalingLazyColumnState import com.google.android.horologist.compose.layout.ScreenScaffold import com.google.android.horologist.compose.layout.rememberResponsiveColumnState import com.google.android.horologist.compose.material.AlertDialog @@ -101,7 +101,6 @@ fun EpisodeScreen( val title = uiState.episode.episode.title EntityScreen( - columnState = columnState, headerContent = { ResponsiveListHeader( contentPadding = ListHeaderDefaults.firstItemPadding() @@ -136,7 +135,7 @@ fun EpisodeScreen( ) } EpisodeScreenState.Loading -> { - LoadingScreen(columnState) + LoadingScreen() } } } @@ -182,10 +181,10 @@ fun LoadedButtonsContent( ) } } +@OptIn(ExperimentalWearMaterialApi::class) @Composable -fun LoadingScreen(columnState: ScalingLazyColumnState) { +fun LoadingScreen() { EntityScreen( - columnState = columnState, headerContent = { ResponsiveListHeader( contentPadding = ListHeaderDefaults.firstItemPadding() diff --git a/Jetcaster/wear/src/main/java/com/example/jetcaster/ui/latest_episodes/LatestEpisodesScreen.kt b/Jetcaster/wear/src/main/java/com/example/jetcaster/ui/latest_episodes/LatestEpisodesScreen.kt index 11c0387c5d..732e0f68c8 100644 --- a/Jetcaster/wear/src/main/java/com/example/jetcaster/ui/latest_episodes/LatestEpisodesScreen.kt +++ b/Jetcaster/wear/src/main/java/com/example/jetcaster/ui/latest_episodes/LatestEpisodesScreen.kt @@ -30,6 +30,7 @@ import androidx.compose.ui.unit.dp import androidx.hilt.navigation.compose.hiltViewModel import androidx.lifecycle.compose.collectAsStateWithLifecycle import androidx.wear.compose.material.ChipDefaults +import androidx.wear.compose.material.ExperimentalWearMaterialApi import androidx.wear.compose.material.Text import androidx.wear.compose.ui.tooling.preview.WearPreviewDevices import androidx.wear.compose.ui.tooling.preview.WearPreviewFontScales @@ -41,7 +42,6 @@ import com.google.android.horologist.annotations.ExperimentalHorologistApi import com.google.android.horologist.composables.PlaceholderChip import com.google.android.horologist.compose.layout.ScalingLazyColumnDefaults import com.google.android.horologist.compose.layout.ScalingLazyColumnDefaults.padding -import com.google.android.horologist.compose.layout.ScalingLazyColumnState import com.google.android.horologist.compose.layout.ScreenScaffold import com.google.android.horologist.compose.layout.rememberResponsiveColumnState import com.google.android.horologist.compose.material.AlertDialog @@ -91,7 +91,6 @@ fun LatestEpisodeScreen( when (uiState) { is LatestEpisodeScreenState.Loaded -> { LatestEpisodesScreen( - columnState = columnState, episodeList = uiState.episodeList, onPlayButtonClick = onPlayButtonClick, onPlayEpisode = onPlayEpisode, @@ -110,7 +109,6 @@ fun LatestEpisodeScreen( is LatestEpisodeScreenState.Loading -> { LatestEpisodesScreenLoading( - columnState = columnState, modifier = modifier ) } @@ -139,7 +137,6 @@ fun ButtonsContent( @Composable fun LatestEpisodesScreen( - columnState: ScalingLazyColumnState, episodeList: List, onPlayButtonClick: () -> Unit, onPlayEpisode: (PlayerEpisode) -> Unit, @@ -148,7 +145,6 @@ fun LatestEpisodesScreen( ) { EntityScreen( modifier = modifier, - columnState = columnState, headerContent = { ResponsiveListHeader( contentPadding = ListHeaderDefaults.firstItemPadding() @@ -181,14 +177,13 @@ fun LatestEpisodesScreen( ) } +@OptIn(ExperimentalWearMaterialApi::class) @Composable fun LatestEpisodesScreenLoading( - columnState: ScalingLazyColumnState, modifier: Modifier = Modifier ) { EntityScreen( modifier = modifier, - columnState = columnState, headerContent = { ResponsiveListHeader( contentPadding = ListHeaderDefaults.firstItemPadding() @@ -225,7 +220,6 @@ fun LatestEpisodeScreenLoadedPreview( ) ) LatestEpisodesScreen( - columnState = columnState, episodeList = listOf(episode), onPlayButtonClick = { }, onPlayEpisode = { }, @@ -243,7 +237,5 @@ fun LatestEpisodeScreenLoadingPreview() { last = ScalingLazyColumnDefaults.ItemType.Chip ) ) - LatestEpisodesScreenLoading( - columnState = columnState, - ) + LatestEpisodesScreenLoading() } diff --git a/Jetcaster/wear/src/main/java/com/example/jetcaster/ui/library/LibraryScreen.kt b/Jetcaster/wear/src/main/java/com/example/jetcaster/ui/library/LibraryScreen.kt index 4ee8eab90b..3c80928328 100644 --- a/Jetcaster/wear/src/main/java/com/example/jetcaster/ui/library/LibraryScreen.kt +++ b/Jetcaster/wear/src/main/java/com/example/jetcaster/ui/library/LibraryScreen.kt @@ -31,6 +31,7 @@ import androidx.compose.ui.unit.dp import androidx.hilt.navigation.compose.hiltViewModel import androidx.wear.compose.foundation.lazy.items import androidx.wear.compose.material.ChipDefaults +import androidx.wear.compose.material.ExperimentalWearMaterialApi import androidx.wear.compose.material.MaterialTheme import androidx.wear.compose.material.Text import com.example.jetcaster.R @@ -71,7 +72,6 @@ fun LibraryScreen( when (val s = uiState) { is LibraryScreenUiState.Loading -> LoadingScreen( - columnState = columnState, modifier = modifier ) is LibraryScreenUiState.NoSubscribedPodcast -> @@ -94,13 +94,12 @@ fun LibraryScreen( } } +@OptIn(ExperimentalWearMaterialApi::class) @Composable fun LoadingScreen( - columnState: ScalingLazyColumnState, modifier: Modifier, ) { EntityScreen( - columnState = columnState, headerContent = { ResponsiveListHeader( contentPadding = ListHeaderDefaults.firstItemPadding() @@ -117,6 +116,7 @@ fun LoadingScreen( ) } +@OptIn(ExperimentalWearMaterialApi::class) @Composable fun NoSubscribedPodcastScreen( columnState: ScalingLazyColumnState, diff --git a/Jetcaster/wear/src/main/java/com/example/jetcaster/ui/player/PlayerScreen.kt b/Jetcaster/wear/src/main/java/com/example/jetcaster/ui/player/PlayerScreen.kt index dbcd235840..7e6f957db2 100644 --- a/Jetcaster/wear/src/main/java/com/example/jetcaster/ui/player/PlayerScreen.kt +++ b/Jetcaster/wear/src/main/java/com/example/jetcaster/ui/player/PlayerScreen.kt @@ -41,7 +41,8 @@ import androidx.hilt.navigation.compose.hiltViewModel import androidx.lifecycle.compose.collectAsStateWithLifecycle import androidx.wear.compose.foundation.ExperimentalWearFoundationApi import androidx.wear.compose.foundation.rememberActiveFocusRequester -import androidx.wear.compose.foundation.rotary.rotary +import androidx.wear.compose.foundation.rotary.rotaryScrollable +import androidx.wear.compose.material.ExperimentalWearMaterialApi import androidx.wear.compose.material.MaterialTheme import com.example.jetcaster.R import com.example.jetcaster.ui.components.SettingsButtons @@ -74,7 +75,7 @@ fun PlayerScreen( ) } -@OptIn(ExperimentalWearFoundationApi::class) +@OptIn(ExperimentalWearFoundationApi::class, ExperimentalWearMaterialApi::class) @Composable private fun PlayerScreen( playerScreenViewModel: PlayerViewModel, @@ -164,7 +165,7 @@ private fun PlayerScreen( ) }, modifier = modifier - .rotary( + .rotaryScrollable( volumeRotaryBehavior( volumeUiStateProvider = { volumeUiState }, onRotaryVolumeInput = { onUpdateVolume }, diff --git a/Jetcaster/wear/src/main/java/com/example/jetcaster/ui/podcast/PodcastDetailsScreen.kt b/Jetcaster/wear/src/main/java/com/example/jetcaster/ui/podcast/PodcastDetailsScreen.kt index 53afd31f67..cd0644d5e8 100644 --- a/Jetcaster/wear/src/main/java/com/example/jetcaster/ui/podcast/PodcastDetailsScreen.kt +++ b/Jetcaster/wear/src/main/java/com/example/jetcaster/ui/podcast/PodcastDetailsScreen.kt @@ -31,6 +31,7 @@ import androidx.hilt.navigation.compose.hiltViewModel import androidx.lifecycle.compose.collectAsStateWithLifecycle import androidx.wear.compose.foundation.lazy.items import androidx.wear.compose.material.ChipDefaults +import androidx.wear.compose.material.ExperimentalWearMaterialApi import androidx.wear.compose.material.Text import androidx.wear.compose.ui.tooling.preview.WearPreviewDevices import androidx.wear.compose.ui.tooling.preview.WearPreviewFontScales @@ -73,6 +74,7 @@ import com.google.android.horologist.media.ui.screens.entity.EntityScreen ) } +@OptIn(ExperimentalWearMaterialApi::class) @Composable fun PodcastDetailsScreen( uiState: PodcastDetailsScreenState, @@ -95,7 +97,6 @@ fun PodcastDetailsScreen( when (uiState) { is PodcastDetailsScreenState.Loaded -> { EntityScreen( - columnState = columnState, headerContent = { ResponsiveListHeader( contentPadding = ListHeaderDefaults.firstItemPadding() @@ -134,7 +135,6 @@ fun PodcastDetailsScreen( } PodcastDetailsScreenState.Loading -> { EntityScreen( - columnState = columnState, headerContent = { ResponsiveListHeader( contentPadding = ListHeaderDefaults.firstItemPadding() diff --git a/Jetcaster/wear/src/main/java/com/example/jetcaster/ui/podcasts/PodcastsScreen.kt b/Jetcaster/wear/src/main/java/com/example/jetcaster/ui/podcasts/PodcastsScreen.kt index f278424b92..55d941d6a3 100644 --- a/Jetcaster/wear/src/main/java/com/example/jetcaster/ui/podcasts/PodcastsScreen.kt +++ b/Jetcaster/wear/src/main/java/com/example/jetcaster/ui/podcasts/PodcastsScreen.kt @@ -28,6 +28,7 @@ import androidx.compose.ui.tooling.preview.PreviewParameter import androidx.hilt.navigation.compose.hiltViewModel import androidx.lifecycle.compose.collectAsStateWithLifecycle import androidx.wear.compose.material.ChipDefaults +import androidx.wear.compose.material.ExperimentalWearMaterialApi import androidx.wear.compose.material.Text import androidx.wear.compose.ui.tooling.preview.WearPreviewDevices import androidx.wear.compose.ui.tooling.preview.WearPreviewFontScales @@ -37,7 +38,6 @@ import com.example.jetcaster.ui.preview.WearPreviewPodcasts import com.google.android.horologist.annotations.ExperimentalHorologistApi import com.google.android.horologist.composables.PlaceholderChip import com.google.android.horologist.compose.layout.ScalingLazyColumnDefaults -import com.google.android.horologist.compose.layout.ScalingLazyColumnState import com.google.android.horologist.compose.layout.ScreenScaffold import com.google.android.horologist.compose.layout.rememberResponsiveColumnState import com.google.android.horologist.compose.material.AlertDialog @@ -95,27 +95,24 @@ fun PodcastsScreen( ) { when (podcastsScreenState) { is PodcastsScreenState.Loaded -> PodcastScreenLoaded( - columnState = columnState, podcastList = podcastsScreenState.podcastList, onPodcastsItemClick = onPodcastsItemClick ) PodcastsScreenState.Empty -> PodcastScreenEmpty(onDismiss) PodcastsScreenState.Loading -> - PodcastScreenLoading(columnState) + PodcastScreenLoading() } } } @Composable fun PodcastScreenLoaded( - columnState: ScalingLazyColumnState, podcastList: List, onPodcastsItemClick: (PodcastInfo) -> Unit, modifier: Modifier = Modifier ) { EntityScreen( - columnState = columnState, modifier = modifier, headerContent = { ResponsiveListHeader( @@ -154,13 +151,12 @@ fun PodcastScreenEmpty( ) } +@OptIn(ExperimentalWearMaterialApi::class) @Composable fun PodcastScreenLoading( - columnState: ScalingLazyColumnState, modifier: Modifier = Modifier ) { EntityScreen( - columnState = columnState, modifier = modifier, headerContent = { DefaultEntityScreenHeader( @@ -188,7 +184,6 @@ fun PodcastScreenLoadedPreview( ) ) PodcastScreenLoaded( - columnState = columnState, podcastList = listOf(podcasts), onPodcastsItemClick = {} ) @@ -204,7 +199,7 @@ fun PodcastScreenLoadingPreview() { last = ScalingLazyColumnDefaults.ItemType.Chip ) ) - PodcastScreenLoading(columnState) + PodcastScreenLoading() } @WearPreviewDevices diff --git a/Jetcaster/wear/src/main/java/com/example/jetcaster/ui/queue/QueueScreen.kt b/Jetcaster/wear/src/main/java/com/example/jetcaster/ui/queue/QueueScreen.kt index 88d9aa32f0..f06d09c88e 100644 --- a/Jetcaster/wear/src/main/java/com/example/jetcaster/ui/queue/QueueScreen.kt +++ b/Jetcaster/wear/src/main/java/com/example/jetcaster/ui/queue/QueueScreen.kt @@ -36,6 +36,7 @@ import androidx.hilt.navigation.compose.hiltViewModel import androidx.lifecycle.compose.collectAsStateWithLifecycle import androidx.wear.compose.foundation.lazy.items import androidx.wear.compose.material.ChipDefaults +import androidx.wear.compose.material.ExperimentalWearMaterialApi import androidx.wear.compose.material.Text import androidx.wear.compose.ui.tooling.preview.WearPreviewDevices import androidx.wear.compose.ui.tooling.preview.WearPreviewFontScales @@ -47,7 +48,6 @@ import com.google.android.horologist.annotations.ExperimentalHorologistApi import com.google.android.horologist.composables.PlaceholderChip import com.google.android.horologist.compose.layout.ScalingLazyColumnDefaults import com.google.android.horologist.compose.layout.ScalingLazyColumnDefaults.padding -import com.google.android.horologist.compose.layout.ScalingLazyColumnState import com.google.android.horologist.compose.layout.ScreenScaffold import com.google.android.horologist.compose.layout.rememberResponsiveColumnState import com.google.android.horologist.compose.material.AlertDialog @@ -100,14 +100,13 @@ fun QueueScreen( ) { when (uiState) { is QueueScreenState.Loaded -> QueueScreenLoaded( - columnState = columnState, episodeList = uiState.episodeList, - onDeleteQueueEpisodes = onDeleteQueueEpisodes, - onPlayEpisodes = onPlayEpisodes, onPlayButtonClick = onPlayButtonClick, + onPlayEpisodes = onPlayEpisodes, + onDeleteQueueEpisodes = onDeleteQueueEpisodes, onEpisodeItemClick = onEpisodeItemClick ) - QueueScreenState.Loading -> QueueScreenLoading(columnState) + QueueScreenState.Loading -> QueueScreenLoading() QueueScreenState.Empty -> QueueScreenEmpty(onDismiss) } } @@ -115,7 +114,6 @@ fun QueueScreen( @Composable fun QueueScreenLoaded( - columnState: ScalingLazyColumnState, episodeList: List, onPlayButtonClick: () -> Unit, onPlayEpisodes: (List) -> Unit, @@ -124,7 +122,6 @@ fun QueueScreenLoaded( modifier: Modifier = Modifier ) { EntityScreen( - columnState = columnState, modifier = modifier, headerContent = { ResponsiveListHeader( @@ -156,13 +153,12 @@ fun QueueScreenLoaded( ) } +@OptIn(ExperimentalWearMaterialApi::class) @Composable fun QueueScreenLoading( - columnState: ScalingLazyColumnState, modifier: Modifier = Modifier ) { EntityScreen( - columnState = columnState, modifier = modifier, headerContent = { DefaultEntityScreenHeader( @@ -255,12 +251,11 @@ fun QueueScreenLoadedPreview( ) ) QueueScreenLoaded( - columnState = columnState, episodeList = listOf(episode), onPlayButtonClick = { }, onPlayEpisodes = { }, - onEpisodeItemClick = { }, - onDeleteQueueEpisodes = { } + onDeleteQueueEpisodes = { }, + onEpisodeItemClick = { } ) } @@ -274,9 +269,7 @@ fun QueueScreenLoadingPreview() { last = ScalingLazyColumnDefaults.ItemType.Chip ) ) - QueueScreenLoading( - columnState = columnState, - ) + QueueScreenLoading() } @WearPreviewDevices