fix: 修复临近待办显示超过今天的待办
This commit is contained in:
parent
da0728d390
commit
2f3e84b8f9
5 changed files with 29 additions and 5 deletions
|
|
@ -38,7 +38,7 @@ android {
|
|||
applicationId = "cn.super12138.todo"
|
||||
minSdk = 24
|
||||
targetSdk = 36
|
||||
versionCode = 971
|
||||
versionCode = 976
|
||||
versionName = "2.3.3"
|
||||
|
||||
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
|
||||
|
|
|
|||
|
|
@ -20,6 +20,7 @@ import cn.super12138.todo.ui.components.TopAppBarScaffold
|
|||
import cn.super12138.todo.ui.pages.overview.components.RoundedCornerCardLarge
|
||||
import cn.super12138.todo.ui.pages.overview.components.UpcomingTaskCard
|
||||
import cn.super12138.todo.ui.viewmodels.MainViewModel
|
||||
import java.util.Calendar
|
||||
|
||||
@OptIn(ExperimentalMaterial3ExpressiveApi::class)
|
||||
@Composable
|
||||
|
|
@ -27,10 +28,29 @@ fun OverviewPage(
|
|||
viewModel: MainViewModel,
|
||||
modifier: Modifier = Modifier
|
||||
) {
|
||||
val today = Calendar.getInstance().apply {
|
||||
// 将时间设置为当天的开始(00:00:00.000)
|
||||
// 兼容API24
|
||||
set(Calendar.HOUR_OF_DAY, 0)
|
||||
set(Calendar.MINUTE, 0)
|
||||
set(Calendar.SECOND, 0)
|
||||
set(Calendar.MILLISECOND, 0)
|
||||
}
|
||||
|
||||
val toDos by viewModel.sortedTodos.collectAsState(initial = emptyList())
|
||||
val totalTasks by remember { derivedStateOf { toDos.size } }
|
||||
val completedTasks by remember { derivedStateOf { toDos.count { it.isCompleted } } }
|
||||
val nextWeekTodo by remember { derivedStateOf { toDos.filter { it.dueDate != null && it.dueDate < System.currentTimeMillis() + 7 * 24 * 60 * 60 * 1000 } } }
|
||||
val nextWeekTodo by remember {
|
||||
derivedStateOf {
|
||||
val now = System.currentTimeMillis()
|
||||
val weekFromNow = now + 7L * 24 * 60 * 60 * 1000
|
||||
toDos.filter { todo ->
|
||||
val due = todo.dueDate ?: return@filter false
|
||||
due >= today.timeInMillis && due < weekFromNow
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
TopAppBarScaffold(
|
||||
title = stringResource(R.string.page_overview),
|
||||
|
|
|
|||
|
|
@ -15,7 +15,9 @@ import androidx.compose.runtime.Composable
|
|||
import androidx.compose.ui.Alignment
|
||||
import androidx.compose.ui.Modifier
|
||||
import androidx.compose.ui.graphics.Color
|
||||
import androidx.compose.ui.res.stringResource
|
||||
import androidx.compose.ui.unit.dp
|
||||
import cn.super12138.todo.R
|
||||
import cn.super12138.todo.logic.database.TodoEntity
|
||||
import cn.super12138.todo.ui.TodoDefaults
|
||||
import cn.super12138.todo.ui.pages.settings.components.SettingsItem
|
||||
|
|
@ -23,9 +25,9 @@ import cn.super12138.todo.utils.toLocalDateString
|
|||
|
||||
@Composable
|
||||
fun UpcomingTaskCard(
|
||||
modifier: Modifier = Modifier,
|
||||
nextWeekTodo: List<TodoEntity>,
|
||||
containerColor: Color = TodoDefaults.ContainerColor,
|
||||
modifier: Modifier = Modifier
|
||||
containerColor: Color = TodoDefaults.ContainerColor
|
||||
) {
|
||||
Card(
|
||||
modifier = modifier.height(300.dp),
|
||||
|
|
@ -40,7 +42,7 @@ fun UpcomingTaskCard(
|
|||
verticalArrangement = Arrangement.spacedBy(16.dp)
|
||||
) {
|
||||
Text(
|
||||
text = "临近的任务",
|
||||
text = stringResource(R.string.title_upcoming_task),
|
||||
style = MaterialTheme.typography.titleMedium
|
||||
)
|
||||
|
||||
|
|
|
|||
|
|
@ -118,4 +118,5 @@
|
|||
<string name="page_overview">概览</string>
|
||||
<string name="tip_short_category">尽量使用简短的分类名称</string>
|
||||
<string name="action_clear">清除</string>
|
||||
<string name="title_upcoming_task">临近的任务</string>
|
||||
</resources>
|
||||
|
|
@ -119,4 +119,5 @@
|
|||
<string name="page_overview">Overview</string>
|
||||
<string name="tip_short_category">Keep category names concise</string>
|
||||
<string name="action_clear">Clear</string>
|
||||
<string name="title_upcoming_task">Upcoming Task</string>
|
||||
</resources>
|
||||
Loading…
Reference in a new issue