From a767d70d9f011f7682ff5cdb9a96ea1b006d1a4e Mon Sep 17 00:00:00 2001 From: HapeLee <63206378+HapeLee@users.noreply.github.com> Date: Mon, 29 Jun 2026 02:40:35 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20HomeScreen=20=E7=BB=9F=E8=AE=A1?= =?UTF-8?q?=E5=8D=A1=E7=89=87=E7=82=B9=E5=87=BB=E5=AF=BC=E8=88=AA=E8=87=B3?= =?UTF-8?q?=E9=98=85=E8=AF=BB=E8=AE=B0=E5=BD=95/=E9=98=85=E8=AF=BB?= =?UTF-8?q?=E6=80=BB=E8=A7=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/io/legado/app/ui/main/MainNavGraph.kt | 3 +++ app/src/main/java/io/legado/app/ui/main/MainScreen.kt | 3 +++ .../main/java/io/legado/app/ui/main/home/HomeScreen.kt | 10 ++++++++++ 3 files changed, 16 insertions(+) diff --git a/app/src/main/java/io/legado/app/ui/main/MainNavGraph.kt b/app/src/main/java/io/legado/app/ui/main/MainNavGraph.kt index 3cd043b42..5fd360f48 100644 --- a/app/src/main/java/io/legado/app/ui/main/MainNavGraph.kt +++ b/app/src/main/java/io/legado/app/ui/main/MainNavGraph.kt @@ -169,6 +169,9 @@ fun MainActivity.mainEntryProvider( onNavigateToReadRecord = { onNavigateToRoute(MainRouteReadRecord) }, + onNavigateToReadRecordOverview = { + onNavigateToRoute(MainRouteReadRecordOverview) + }, onNavigateToHighlightTagRule = { onNavigateToRoute(MainRouteHighlightTagRule) }, diff --git a/app/src/main/java/io/legado/app/ui/main/MainScreen.kt b/app/src/main/java/io/legado/app/ui/main/MainScreen.kt index a5226c065..dcf4e05ae 100644 --- a/app/src/main/java/io/legado/app/ui/main/MainScreen.kt +++ b/app/src/main/java/io/legado/app/ui/main/MainScreen.kt @@ -122,6 +122,7 @@ fun MainScreen( onNavigateToRssFavorites: () -> Unit, onNavigateToRuleSub: () -> Unit, onNavigateToReadRecord: () -> Unit, + onNavigateToReadRecordOverview: () -> Unit, onNavigateToHighlightTagRule: () -> Unit, onNavigateToAbout: () -> Unit, sharedTransitionScope: SharedTransitionScope? = null, @@ -392,6 +393,8 @@ fun MainScreen( context.startActivityForBook(book) }, onOpenBackupSettings = onNavigateToBackupSettings, + onNavigateToReadRecord = onNavigateToReadRecord, + onNavigateToReadRecordOverview = onNavigateToReadRecordOverview, sharedTransitionScope = sharedTransitionScope, animatedVisibilityScope = animatedVisibilityScope, ) diff --git a/app/src/main/java/io/legado/app/ui/main/home/HomeScreen.kt b/app/src/main/java/io/legado/app/ui/main/home/HomeScreen.kt index 02eceeec4..6c02b3179 100644 --- a/app/src/main/java/io/legado/app/ui/main/home/HomeScreen.kt +++ b/app/src/main/java/io/legado/app/ui/main/home/HomeScreen.kt @@ -93,6 +93,8 @@ import kotlin.math.roundToInt fun HomeRouteScreen( onOpenBook: (Book) -> Unit, onOpenBackupSettings: () -> Unit, + onNavigateToReadRecord: () -> Unit, + onNavigateToReadRecordOverview: () -> Unit, sharedTransitionScope: SharedTransitionScope? = null, animatedVisibilityScope: AnimatedVisibilityScope? = null, viewModel: HomeViewModel = koinViewModel(), @@ -178,6 +180,8 @@ fun HomeRouteScreen( HomeScreen( state = state, onIntent = viewModel::onIntent, + onNavigateToReadRecord = onNavigateToReadRecord, + onNavigateToReadRecordOverview = onNavigateToReadRecordOverview, sharedTransitionScope = sharedTransitionScope, animatedVisibilityScope = animatedVisibilityScope, ) @@ -188,6 +192,8 @@ fun HomeRouteScreen( fun HomeScreen( state: HomeUiState, onIntent: (HomeIntent) -> Unit, + onNavigateToReadRecord: () -> Unit = {}, + onNavigateToReadRecordOverview: () -> Unit = {}, sharedTransitionScope: SharedTransitionScope? = null, animatedVisibilityScope: AnimatedVisibilityScope? = null, ) { @@ -231,6 +237,7 @@ fun HomeScreen( title = stringResource(R.string.home_total_read_books), value = state.totalReadBooks.toString(), unit = stringResource(R.string.unit_books), + onClick = onNavigateToReadRecord, ) StatisticCard( modifier = Modifier.weight(1f), @@ -238,6 +245,7 @@ fun HomeScreen( title = stringResource(R.string.home_total_reading_time), value = String.format("%.1f", state.totalReadTimeMillis / 3_600_000.0), unit = stringResource(R.string.unit_hours), + onClick = onNavigateToReadRecordOverview, ) } } @@ -481,9 +489,11 @@ private fun StatisticCard( title: String, value: String, unit: String, + onClick: () -> Unit, ) { NormalCard( modifier = modifier, + onClick = onClick, cornerRadius = 20.dp, containerColor = LegadoTheme.colorScheme.surfaceContainer, ) {