release v2026.05.13.0: SSE live updates + offline cache + per-item rendering #43

Merged
bvandeusen merged 262 commits from dev into main 2026-05-13 22:36:49 -04:00
Showing only changes of commit 69179e0af3 - Show all commits
@@ -94,6 +94,29 @@ fun AlbumDetailScreen(
PullToRefreshScaffold( PullToRefreshScaffold(
onRefresh = { viewModel.refresh().join() }, onRefresh = { viewModel.refresh().join() },
modifier = Modifier.fillMaxSize().padding(inner), modifier = Modifier.fillMaxSize().padding(inner),
) {
AlbumDetailStateContent(
state = state,
viewModel = viewModel,
playerViewModel = playerViewModel,
navController = navController,
)
}
}
}
private fun titleFor(state: AlbumDetailUiState): String = when (state) {
is AlbumDetailUiState.Success -> state.detail.album.title
is AlbumDetailUiState.Loading -> state.seed?.title ?: "Album"
is AlbumDetailUiState.Error -> "Album"
}
@Composable
private fun AlbumDetailStateContent(
state: AlbumDetailUiState,
viewModel: AlbumDetailViewModel,
playerViewModel: com.fabledsword.minstrel.player.ui.PlayerViewModel,
navController: NavHostController,
) { ) {
Crossfade(targetState = state, label = "album-detail") { s -> Crossfade(targetState = state, label = "album-detail") { s ->
when (s) { when (s) {
@@ -129,14 +152,6 @@ fun AlbumDetailScreen(
} }
} }
} }
}
}
private fun titleFor(state: AlbumDetailUiState): String = when (state) {
is AlbumDetailUiState.Success -> state.detail.album.title
is AlbumDetailUiState.Loading -> state.seed?.title ?: "Album"
is AlbumDetailUiState.Error -> "Album"
}
@Composable @Composable
private fun AlbumBody( private fun AlbumBody(