@@ -49,20 +49,17 @@ import androidx.compose.material3.ExperimentalMaterial3ExpressiveApi
4949import androidx.compose.material3.ColorScheme
5050import androidx.compose.material3.FilledIconButton
5151import androidx.compose.material3.Icon
52- import androidx.compose.material3.HorizontalDivider
5352import androidx.compose.material3.IconButtonDefaults
5453import androidx.compose.material3.MaterialTheme
5554import androidx.compose.material3.CircularWavyProgressIndicator
5655import androidx.compose.material3.CircularProgressIndicator
5756import androidx.compose.material3.LoadingIndicator
5857// import androidx.compose.material3.pulltorefresh.PullToRefreshDefaults // Removed
5958// import androidx.compose.material3.pulltorefresh.rememberPullToRefreshState // Removed
60- import androidx.compose.material3.ModalBottomSheet
6159import androidx.compose.material3.Scaffold
6260import androidx.compose.material3.Surface
6361import androidx.compose.material3.Text
6462import androidx.compose.material3.TopAppBar
65- import androidx.compose.material3.SheetState
6663import androidx.compose.material3.TopAppBarDefaults
6764import androidx.compose.runtime.Composable
6865import androidx.compose.runtime.LaunchedEffect
@@ -958,43 +955,18 @@ fun FullPlayerContent(
958955 )
959956 }
960957
961- val artistPickerSheetState: SheetState = rememberModalBottomSheetState(skipPartiallyExpanded = true )
958+ val artistPickerSheetState = rememberModalBottomSheetState(skipPartiallyExpanded = true )
962959 if (showArtistPicker && currentSongArtists.isNotEmpty()) {
963- ModalBottomSheet (
964- onDismissRequest = { showArtistPicker = false },
965- sheetState = artistPickerSheetState
966- ) {
967- Column (
968- modifier = Modifier
969- .fillMaxWidth()
970- .padding(horizontal = 20 .dp, vertical = 12 .dp),
971- verticalArrangement = Arrangement .spacedBy(4 .dp)
972- ) {
973- Text (
974- text = stringResource(R .string.artist_picker_title), // short label; keep UI minimal
975- style = MaterialTheme .typography.titleMedium,
976- color = LocalMaterialTheme .current.onPrimaryContainer,
977- modifier = Modifier .padding(bottom = 8 .dp)
978- )
979- currentSongArtists.forEachIndexed { index, artistItem ->
980- Text (
981- text = artistItem.name,
982- style = MaterialTheme .typography.bodyLarge,
983- color = LocalMaterialTheme .current.onPrimaryContainer,
984- modifier = Modifier
985- .fillMaxWidth()
986- .padding(vertical = 10 .dp)
987- .clickable {
988- playerViewModel.triggerArtistNavigationFromPlayer(artistItem.id)
989- showArtistPicker = false
990- }
991- )
992- if (index != currentSongArtists.lastIndex) {
993- HorizontalDivider (color = LocalMaterialTheme .current.outlineVariant)
994- }
995- }
960+ PlayerArtistPickerBottomSheet (
961+ song = song,
962+ artists = currentSongArtists,
963+ sheetState = artistPickerSheetState,
964+ onDismiss = { showArtistPicker = false },
965+ onArtistClick = { artist ->
966+ playerViewModel.triggerArtistNavigationFromPlayer(artist.id)
967+ showArtistPicker = false
996968 }
997- }
969+ )
998970 }
999971}
1000972
@@ -1878,11 +1850,13 @@ private fun EfficientTimeLabels(
18781850 Text (
18791851 posStr,
18801852 style = MaterialTheme .typography.bodySmall.copy(fontSize = 12 .sp),
1853+ fontWeight = FontWeight .SemiBold ,
18811854 color = textColor
18821855 )
18831856 Text (
18841857 durStr,
18851858 style = MaterialTheme .typography.bodySmall.copy(fontSize = 12 .sp),
1859+ fontWeight = FontWeight .SemiBold ,
18861860 color = textColor
18871861 )
18881862 }
0 commit comments