From 1b031134db82d9347115fb5fa493c893ac394aec Mon Sep 17 00:00:00 2001 From: Alex Baker Date: Fri, 31 Jan 2025 01:07:03 -0600 Subject: [PATCH] Add collapsed state to header --- .../googleplay/java/org/tasks/wear/WearService.kt | 2 +- .../org/tasks/tasklist/SectionedDataSource.kt | 2 +- .../commonMain/kotlin/org/tasks/tasklist/UiItem.kt | 14 ++++++++++++-- 3 files changed, 14 insertions(+), 4 deletions(-) diff --git a/app/src/googleplay/java/org/tasks/wear/WearService.kt b/app/src/googleplay/java/org/tasks/wear/WearService.kt index 80c425283..f0bdefca1 100644 --- a/app/src/googleplay/java/org/tasks/wear/WearService.kt +++ b/app/src/googleplay/java/org/tasks/wear/WearService.kt @@ -87,7 +87,7 @@ class WearService( .setId(item.value) .setType(ListItemType.Header) .setTitle(headerFormatter.headerString(item.value, style = DateStyle.MEDIUM)) - .setCollapsed(collapsed.contains(item.value)) + .setCollapsed(item.collapsed) .build() is UiItem.Task -> { diff --git a/kmp/src/commonMain/kotlin/org/tasks/tasklist/SectionedDataSource.kt b/kmp/src/commonMain/kotlin/org/tasks/tasklist/SectionedDataSource.kt index 39af882cc..c9d1c6877 100644 --- a/kmp/src/commonMain/kotlin/org/tasks/tasklist/SectionedDataSource.kt +++ b/kmp/src/commonMain/kotlin/org/tasks/tasklist/SectionedDataSource.kt @@ -51,7 +51,7 @@ class SectionedDataSource( override fun get(index: Int) = sections[index] - ?.let { UiItem.Header(it.value) } + ?.let { UiItem.Header(it.value, it.collapsed) } ?: UiItem.Task(getItem(index)) override fun isEmpty() = size == 0 diff --git a/kmp/src/commonMain/kotlin/org/tasks/tasklist/UiItem.kt b/kmp/src/commonMain/kotlin/org/tasks/tasklist/UiItem.kt index 754b7f7fb..e0b97cb9c 100644 --- a/kmp/src/commonMain/kotlin/org/tasks/tasklist/UiItem.kt +++ b/kmp/src/commonMain/kotlin/org/tasks/tasklist/UiItem.kt @@ -3,6 +3,16 @@ package org.tasks.tasklist import org.tasks.data.TaskContainer sealed class UiItem { - data class Header(val value: Long): UiItem() - data class Task(val task: TaskContainer): UiItem() + data class Header( + val value: Long, + val collapsed: Boolean, + ) : UiItem() + + data class Task(val task: TaskContainer) : UiItem() + + val key: String + get() = when (this) { + is Header -> "header_$value" + is Task -> task.id.toString() + } }