mirror of
https://github.com/bbara04/Purefin.git
synced 2026-07-24 03:36:51 +00:00
feat: add initial focus management and media metadata for TV home screen
Introduce a `FocusableItem` interface to unify media item properties (ID, type, text, and images) across `ContinueWatchingItem`, `NextUpItem`, and `PosterItem`. Key changes: - Implement automatic initial focus on the first available item in `TvHomeContent`. - Add `onMediaFocused` callbacks to TV sections and cards to track active items. - Standardize image URL generation and metadata access in home models. - Clean up unused previews in `HomeScreen`. - Add UI tests for TV home content focus behavior.
This commit is contained in:
@@ -13,20 +13,14 @@ import androidx.compose.runtime.remember
|
||||
import androidx.compose.runtime.saveable.rememberSaveable
|
||||
import androidx.compose.runtime.setValue
|
||||
import androidx.compose.ui.Modifier
|
||||
import androidx.compose.ui.tooling.preview.Preview
|
||||
import hu.bbara.purefin.app.home.ui.HomeContent
|
||||
import hu.bbara.purefin.app.home.ui.HomeTopBar
|
||||
import hu.bbara.purefin.app.home.ui.homePreviewContinueWatching
|
||||
import hu.bbara.purefin.app.home.ui.homePreviewLibraries
|
||||
import hu.bbara.purefin.app.home.ui.homePreviewLibraryContent
|
||||
import hu.bbara.purefin.app.home.ui.homePreviewNextUp
|
||||
import hu.bbara.purefin.app.home.ui.search.HomeSearchOverlay
|
||||
import hu.bbara.purefin.feature.shared.home.ContinueWatchingItem
|
||||
import hu.bbara.purefin.feature.shared.home.LibraryItem
|
||||
import hu.bbara.purefin.feature.shared.home.NextUpItem
|
||||
import hu.bbara.purefin.feature.shared.home.PosterItem
|
||||
import hu.bbara.purefin.feature.shared.home.SuggestedItem
|
||||
import hu.bbara.purefin.ui.theme.AppTheme
|
||||
import org.jellyfin.sdk.model.UUID
|
||||
|
||||
@OptIn(ExperimentalMaterial3Api::class)
|
||||
@@ -114,29 +108,4 @@ fun HomeScreen(
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Preview(name = "Home Screen", showBackground = true, widthDp = 412, heightDp = 915)
|
||||
@Composable
|
||||
private fun HomeScreenPreview() {
|
||||
AppTheme(darkTheme = true) {
|
||||
HomeScreen(
|
||||
libraries = homePreviewLibraries(),
|
||||
libraryContent = homePreviewLibraryContent(),
|
||||
suggestions = emptyList(),
|
||||
continueWatching = homePreviewContinueWatching(),
|
||||
nextUp = homePreviewNextUp(),
|
||||
isRefreshing = false,
|
||||
onRefresh = {},
|
||||
onMovieSelected = {},
|
||||
onSeriesSelected = {},
|
||||
onEpisodeSelected = { _, _, _ -> },
|
||||
onLibrarySelected = {},
|
||||
onProfileClick = {},
|
||||
onSettingsClick = {},
|
||||
onLogoutClick = {},
|
||||
selectedTab = 0,
|
||||
onTabSelected = {}
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user