From cf5f810f183f25a31902c99a9d7e75df97a445a0 Mon Sep 17 00:00:00 2001 From: Alex Baker Date: Tue, 4 Mar 2025 13:57:49 -0600 Subject: [PATCH] Replace sealed interfaces --- .../main/java/org/tasks/ui/TaskListEvent.kt | 6 +-- .../java/org/tasks/ui/TaskListViewModel.kt | 14 +++---- .../app_googleplayRelease-classes.txt | 28 ++++++++----- .../app_googleplayRelease-composables.txt | 10 ++--- .../app_googleplayRelease-module.json | 12 +++--- compose-metrics/kmp_release-classes.txt | 40 +++++++++++-------- compose-metrics/kmp_release-composables.txt | 2 +- compose-metrics/kmp_release-module.json | 14 +++---- .../org/tasks/compose/drawer/DrawerItem.kt | 12 ++++-- .../org/tasks/filters/AstridOrderingFilter.kt | 4 +- .../kotlin/org/tasks/filters/CaldavFilter.kt | 2 +- .../kotlin/org/tasks/filters/CustomFilter.kt | 2 +- .../kotlin/org/tasks/filters/EmptyFilter.kt | 2 +- .../kotlin/org/tasks/filters/Filter.kt | 30 +++++++------- .../kotlin/org/tasks/filters/FilterImpl.kt | 2 +- .../kotlin/org/tasks/filters/MyTasksFilter.kt | 2 +- .../org/tasks/filters/NotificationsFilter.kt | 2 +- .../kotlin/org/tasks/filters/PlaceFilter.kt | 2 +- .../tasks/filters/RecentlyModifiedFilter.kt | 2 +- .../kotlin/org/tasks/filters/SearchFilter.kt | 2 +- .../kotlin/org/tasks/filters/SnoozedFilter.kt | 2 +- .../kotlin/org/tasks/filters/SubtaskFilter.kt | 2 +- .../kotlin/org/tasks/filters/TagFilter.kt | 2 +- .../kotlin/org/tasks/filters/TimerFilter.kt | 2 +- .../kotlin/org/tasks/filters/TodayFilter.kt | 2 +- .../kotlin/org/tasks/tasklist/TasksResults.kt | 6 +-- 26 files changed, 113 insertions(+), 93 deletions(-) diff --git a/app/src/main/java/org/tasks/ui/TaskListEvent.kt b/app/src/main/java/org/tasks/ui/TaskListEvent.kt index cc2b9fa63..9c24abc6a 100644 --- a/app/src/main/java/org/tasks/ui/TaskListEvent.kt +++ b/app/src/main/java/org/tasks/ui/TaskListEvent.kt @@ -4,7 +4,7 @@ import kotlinx.coroutines.flow.MutableSharedFlow typealias TaskListEventBus = MutableSharedFlow -sealed interface TaskListEvent { - data class TaskCreated(val uuid: String) : TaskListEvent - data class CalendarEventCreated(val title: String?, val uri: String) : TaskListEvent +sealed class TaskListEvent { + data class TaskCreated(val uuid: String) : TaskListEvent() + data class CalendarEventCreated(val title: String?, val uri: String) : TaskListEvent() } diff --git a/app/src/main/java/org/tasks/ui/TaskListViewModel.kt b/app/src/main/java/org/tasks/ui/TaskListViewModel.kt index ca3260e7f..b1a831868 100644 --- a/app/src/main/java/org/tasks/ui/TaskListViewModel.kt +++ b/app/src/main/java/org/tasks/ui/TaskListViewModel.kt @@ -47,13 +47,13 @@ import org.tasks.tasklist.TasksResults import org.tasks.time.DateTimeUtils2.currentTimeMillis import javax.inject.Inject -sealed interface Banner { - data object NotificationsDisabled : Banner - data object AlarmsDisabled : Banner - data object QuietHoursEnabled : Banner - data object BegForMoney : Banner - data object WarnMicrosoft : Banner - data object WarnGoogleTasks : Banner +sealed class Banner { + data object NotificationsDisabled : Banner() + data object AlarmsDisabled : Banner() + data object QuietHoursEnabled : Banner() + data object BegForMoney : Banner() + data object WarnMicrosoft : Banner() + data object WarnGoogleTasks : Banner() } @HiltViewModel diff --git a/compose-metrics/app_googleplayRelease-classes.txt b/compose-metrics/app_googleplayRelease-classes.txt index adbfb2820..e30ee0f2e 100644 --- a/compose-metrics/app_googleplayRelease-classes.txt +++ b/compose-metrics/app_googleplayRelease-classes.txt @@ -124,7 +124,7 @@ unstable class MainActivity { } unstable class State { stable val begForMoney: Boolean - unstable val filter: Filter + stable val filter: Filter unstable val task: Task? stable val drawerItems: ImmutableList stable val searchItems: ImmutableList @@ -197,7 +197,7 @@ unstable class TaskListFragment { unstable val mainViewModel$delegate: Lazy unstable var taskAdapter: TaskAdapter unstable var recyclerAdapter: DragAndDropRecyclerAdapter? - unstable var filter: Filter + stable var filter: Filter unstable var search: MenuItem unstable var mode: ActionMode? unstable var themeColor: ThemeColor @@ -211,7 +211,7 @@ unstable class TaskListFragment { } unstable class AstridTaskAdapter { unstable val list: TaskListMetadata - unstable val filter: AstridOrderingFilter + stable val filter: AstridOrderingFilter unstable val updater: SubtasksFilterUpdater unstable val taskDao: TaskDao unstable val localBroadcastManager: LocalBroadcastManager @@ -234,7 +234,7 @@ unstable class FilterViewHolder { unstable val shareIndicator: ImageView unstable val icon: MutableStateFlow unstable val color: MutableStateFlow - unstable var filter: Filter + stable var filter: Filter = Unstable } stable class GoogleTaskManualSortAdapter { @@ -677,7 +677,7 @@ unstable class FilterSettingsActivity { = Unstable } unstable class ViewState { - runtime val filter: CustomFilter? + stable val filter: CustomFilter? stable val fabExtended: Boolean unstable val criteria: ImmutableList = Unstable @@ -2175,7 +2175,7 @@ unstable class TaskListPreferences { } unstable class TaskerListNotification { unstable var defaultFilterProvider: DefaultFilterProvider - unstable var filter: Filter + stable var filter: Filter stable var cancelled: Boolean unstable val listPickerLauncher: ActivityResultLauncher = Unstable @@ -2774,6 +2774,9 @@ stable class CalendarEventCreated { stable val uri: String = Stable } +stable class TaskListEvent { + = Stable +} stable class NotificationsDisabled { = Stable } @@ -2792,14 +2795,17 @@ stable class WarnMicrosoft { stable class WarnGoogleTasks { = Stable } +stable class Banner { + = Stable +} unstable class State { - unstable val filter: Filter + stable val filter: Filter stable val now: Long stable val searchQuery: String? - unstable val tasks: TasksResults + runtime val tasks: TasksResults stable val syncOngoing: Boolean unstable val collapsed: Set - runtime val banner: Banner? + stable val banner: Banner? = Unstable } unstable class TaskListViewModel { @@ -2842,7 +2848,7 @@ unstable class ShortcutConfigActivity { unstable var shortcutName: TextInputEditText unstable var colorIcon: TextView unstable var clear: View - unstable var selectedFilter: Filter? + stable var selectedFilter: Filter? stable var selectedTheme: Int unstable val listPickerResult: ActivityResultLauncher = Unstable @@ -2867,7 +2873,7 @@ unstable class TasksWidgetAdapter { unstable class TasksWidgetViewFactory { unstable val subtasksHelper: SubtasksHelper unstable val widgetPreferences: WidgetPreferences - unstable val filter: Filter + stable val filter: Filter unstable val context: Context stable val widgetId: Int unstable val taskDao: TaskDao diff --git a/compose-metrics/app_googleplayRelease-composables.txt b/compose-metrics/app_googleplayRelease-composables.txt index a410ba923..fd50a2082 100644 --- a/compose-metrics/app_googleplayRelease-composables.txt +++ b/compose-metrics/app_googleplayRelease-composables.txt @@ -363,7 +363,7 @@ restartable skippable scheme("[androidx.compose.ui.UiComposable, [androidx.compo stable content: Function3<@[ParameterName(name = 'isDragging')] Boolean, Composer, Int, Unit> ) restartable skippable scheme("[androidx.compose.ui.UiComposable]") fun FilterChip( - unstable filter: Filter + stable filter: Filter stable defaultIcon: String stable showText: Boolean stable showIcon: Boolean @@ -740,7 +740,7 @@ restartable skippable scheme("[androidx.compose.ui.UiComposable]") fun InfoRow( ) restartable skippable scheme("[androidx.compose.ui.UiComposable]") fun InfoPreview() restartable skippable scheme("[androidx.compose.ui.UiComposable]") fun ListRow( - unstable list: Filter? + stable list: Filter? stable colorProvider: Function1 stable onClick: Function0 ) @@ -832,10 +832,10 @@ restartable skippable scheme("[androidx.compose.ui.UiComposable]") fun NoStartDa restartable skippable scheme("[androidx.compose.ui.UiComposable]") fun FutureStartDate() restartable skippable scheme("[androidx.compose.ui.UiComposable]") fun PastStartDate() restartable skippable scheme("[androidx.compose.ui.UiComposable]") fun SubtaskRow( - originalFilter: CaldavFilter - filter: CaldavFilter + stable originalFilter: CaldavFilter + stable filter: CaldavFilter stable hasParent: Boolean - unstable existingSubtasks: TasksResults + existingSubtasks: TasksResults unstable newSubtasks: List stable openSubtask: Function1 stable completeExistingSubtask: Function2 diff --git a/compose-metrics/app_googleplayRelease-module.json b/compose-metrics/app_googleplayRelease-module.json index ee663c3a5..8e7298206 100644 --- a/compose-metrics/app_googleplayRelease-module.json +++ b/compose-metrics/app_googleplayRelease-module.json @@ -7,16 +7,16 @@ "totalGroups": 853, "staticArguments": 1367, "certainArguments": 162, - "knownStableArguments": 6373, - "knownUnstableArguments": 175, - "unknownStableArguments": 16, + "knownStableArguments": 6387, + "knownUnstableArguments": 171, + "unknownStableArguments": 6, "totalArguments": 6564, "markedStableClasses": 0, - "inferredStableClasses": 93, + "inferredStableClasses": 95, "inferredUnstableClasses": 321, "inferredUncertainClasses": 0, - "effectivelyStableClasses": 93, - "totalClasses": 414, + "effectivelyStableClasses": 95, + "totalClasses": 416, "memoizedLambdas": 932, "singletonLambdas": 0, "singletonComposableLambdas": 136, diff --git a/compose-metrics/kmp_release-classes.txt b/compose-metrics/kmp_release-classes.txt index 71e891198..b7a1ef809 100644 --- a/compose-metrics/kmp_release-classes.txt +++ b/compose-metrics/kmp_release-classes.txt @@ -65,8 +65,7 @@ stable class Filter { stable val count: Int stable val shareCount: Int stable val selected: Boolean - runtime val filter: Filter - = Stable + stable val filter: Filter } stable class Header { stable val title: String @@ -74,7 +73,8 @@ stable class Header { stable val hasError: Boolean stable val canAdd: Boolean stable val header: NavigationDrawerSubheader - = Stable +} +stable class DrawerItem { } stable class ViewState { stable val icons: ImmutableMap> @@ -131,16 +131,19 @@ stable class AlphanumComparator { stable val getTitle: Function1 = Stable } -unstable class CaldavFilter { +stable class AstridOrderingFilter { + = Stable +} +stable class CaldavFilter { unstable val calendar: CaldavCalendar unstable val account: CaldavAccount stable val principals: Int stable val count: Int - = Unstable + = Stable } -unstable class CustomFilter { +stable class CustomFilter { unstable val filter: Filter - = Unstable + = Stable } stable class DebugFilters { = Stable @@ -150,6 +153,8 @@ stable class EmptyFilter { stable val title: String? = Stable } +stable class Filter { +} stable class FilterImpl { stable val title: String? stable val sql: String? @@ -168,10 +173,10 @@ unstable class FilterProvider { unstable val tasksPreferences: TasksPreferences = Unstable } -unstable class MyTasksFilter { +stable class MyTasksFilter { stable val title: String stable var filterOverride: String? - = Unstable + = Stable } stable class NavigationDrawerSubheader { stable val title: String? @@ -187,10 +192,10 @@ stable class NotificationsFilter { stable val title: String = Stable } -unstable class PlaceFilter { +stable class PlaceFilter { unstable val place: Place stable val count: Int - = Unstable + = Stable } stable class RecentlyModifiedFilter { stable val title: String @@ -211,20 +216,20 @@ stable class SubtaskFilter { stable val sql: String = Stable } -unstable class TagFilter { +stable class TagFilter { unstable val tagData: TagData stable val count: Int stable var filterOverride: String? - = Unstable + = Stable } stable class TimerFilter { stable val title: String = Stable } -unstable class TodayFilter { +stable class TodayFilter { stable val title: String stable var filterOverride: String? - = Unstable + = Stable } unstable class TasksPreferences { unstable val dataStore: DataStore @@ -241,7 +246,7 @@ unstable class TaskEditViewState { stable val linkify: Boolean stable val alwaysDisplayFullDate: Boolean stable val showEditScreenWithoutUnlock: Boolean - unstable val list: CaldavFilter + stable val list: CaldavFilter unstable val location: Location? unstable val tags: ImmutableSet stable val calendar: String? @@ -274,6 +279,9 @@ unstable class Results { unstable val tasks: SectionedDataSource = Unstable } +stable class TasksResults { + = Stable +} stable class Header { stable val value: Long stable val collapsed: Boolean diff --git a/compose-metrics/kmp_release-composables.txt b/compose-metrics/kmp_release-composables.txt index f23283f08..e9f4da9ce 100644 --- a/compose-metrics/kmp_release-composables.txt +++ b/compose-metrics/kmp_release-composables.txt @@ -118,7 +118,7 @@ restartable skippable scheme("[androidx.compose.ui.UiComposable, [androidx.compo unstable filters: List stable query: String stable onQueryChange: Function1 - selected: Filter? + stable selected: Filter? stable onClick: Function1 stable getIcon: Function3 stable getColor: Function1 diff --git a/compose-metrics/kmp_release-module.json b/compose-metrics/kmp_release-module.json index 88dd139bd..ec4c1f550 100644 --- a/compose-metrics/kmp_release-module.json +++ b/compose-metrics/kmp_release-module.json @@ -7,16 +7,16 @@ "totalGroups": 103, "staticArguments": 146, "certainArguments": 19, - "knownStableArguments": 706, + "knownStableArguments": 707, "knownUnstableArguments": 2, - "unknownStableArguments": 3, + "unknownStableArguments": 2, "totalArguments": 711, - "markedStableClasses": 3, - "inferredStableClasses": 24, - "inferredUnstableClasses": 22, + "markedStableClasses": 7, + "inferredStableClasses": 30, + "inferredUnstableClasses": 16, "inferredUncertainClasses": 0, - "effectivelyStableClasses": 27, - "totalClasses": 49, + "effectivelyStableClasses": 37, + "totalClasses": 53, "memoizedLambdas": 83, "singletonLambdas": 0, "singletonComposableLambdas": 12, diff --git a/kmp/src/commonMain/kotlin/org/tasks/compose/drawer/DrawerItem.kt b/kmp/src/commonMain/kotlin/org/tasks/compose/drawer/DrawerItem.kt index bb7b41a59..a9ddf5736 100644 --- a/kmp/src/commonMain/kotlin/org/tasks/compose/drawer/DrawerItem.kt +++ b/kmp/src/commonMain/kotlin/org/tasks/compose/drawer/DrawerItem.kt @@ -4,7 +4,8 @@ import androidx.compose.runtime.Stable import org.tasks.filters.NavigationDrawerSubheader @Stable -sealed interface DrawerItem { +sealed class DrawerItem { + @Stable data class Filter( val title: String, val icon: String?, @@ -13,21 +14,24 @@ sealed interface DrawerItem { val shareCount: Int = 0, val selected: Boolean = false, val filter: org.tasks.filters.Filter, - ) : DrawerItem { + ) : DrawerItem() { override fun key(): String { return "filter_${hashCode()}" } } + + @Stable data class Header( val title: String, val collapsed: Boolean, val hasError: Boolean, val canAdd: Boolean, val header: NavigationDrawerSubheader, - ) : DrawerItem { + ) : DrawerItem() { override fun key(): String { return "header_${header.subheaderType}_${header.id}" } } - fun key(): String + + abstract fun key(): String } diff --git a/kmp/src/commonMain/kotlin/org/tasks/filters/AstridOrderingFilter.kt b/kmp/src/commonMain/kotlin/org/tasks/filters/AstridOrderingFilter.kt index 82dc576e9..bde04a6b9 100644 --- a/kmp/src/commonMain/kotlin/org/tasks/filters/AstridOrderingFilter.kt +++ b/kmp/src/commonMain/kotlin/org/tasks/filters/AstridOrderingFilter.kt @@ -1,8 +1,8 @@ package org.tasks.filters @Deprecated("Use manual ordering") -interface AstridOrderingFilter : Filter { - var filterOverride: String? +abstract class AstridOrderingFilter : Filter() { + abstract var filterOverride: String? fun getSqlQuery(): String = filterOverride ?: sql!! } diff --git a/kmp/src/commonMain/kotlin/org/tasks/filters/CaldavFilter.kt b/kmp/src/commonMain/kotlin/org/tasks/filters/CaldavFilter.kt index d3ad15b3e..b48278c5b 100644 --- a/kmp/src/commonMain/kotlin/org/tasks/filters/CaldavFilter.kt +++ b/kmp/src/commonMain/kotlin/org/tasks/filters/CaldavFilter.kt @@ -19,7 +19,7 @@ data class CaldavFilter( val account: CaldavAccount, val principals: Int = 0, override val count: Int = NO_COUNT, -) : Filter { +) : Filter() { override val title: String? get() = calendar.name diff --git a/kmp/src/commonMain/kotlin/org/tasks/filters/CustomFilter.kt b/kmp/src/commonMain/kotlin/org/tasks/filters/CustomFilter.kt index 3526f3207..4c7536f04 100644 --- a/kmp/src/commonMain/kotlin/org/tasks/filters/CustomFilter.kt +++ b/kmp/src/commonMain/kotlin/org/tasks/filters/CustomFilter.kt @@ -6,7 +6,7 @@ import org.tasks.themes.TasksIcons @CommonParcelize data class CustomFilter( val filter: org.tasks.data.entity.Filter, -) : Filter { +) : Filter() { override val title: String? get() = filter.title override val sql: String diff --git a/kmp/src/commonMain/kotlin/org/tasks/filters/EmptyFilter.kt b/kmp/src/commonMain/kotlin/org/tasks/filters/EmptyFilter.kt index 8a86f405a..95533f71f 100644 --- a/kmp/src/commonMain/kotlin/org/tasks/filters/EmptyFilter.kt +++ b/kmp/src/commonMain/kotlin/org/tasks/filters/EmptyFilter.kt @@ -6,6 +6,6 @@ import org.tasks.CommonParcelize class EmptyFilter( override val sql: String? = "WHERE 0", override val title: String? = null -) : Filter { +) : Filter() { override fun areItemsTheSame(other: FilterListItem): Boolean = false } \ No newline at end of file diff --git a/kmp/src/commonMain/kotlin/org/tasks/filters/Filter.kt b/kmp/src/commonMain/kotlin/org/tasks/filters/Filter.kt index 6af3be4db..15a80cbb8 100644 --- a/kmp/src/commonMain/kotlin/org/tasks/filters/Filter.kt +++ b/kmp/src/commonMain/kotlin/org/tasks/filters/Filter.kt @@ -1,33 +1,35 @@ package org.tasks.filters +import androidx.compose.runtime.Stable import org.tasks.CommonParcelable import org.tasks.data.NO_COUNT import org.tasks.data.NO_ORDER -interface Filter : FilterListItem, CommonParcelable { - val valuesForNewTasks: String? +@Stable +abstract class Filter : FilterListItem, CommonParcelable { + open val valuesForNewTasks: String? get() = null - val sql: String? - val icon: String? + abstract val sql: String? + open val icon: String? get() = null - val title: String? - val tint: Int + abstract val title: String? + open val tint: Int get() = 0 @Deprecated("Remove this") - val count: Int + open val count: Int get() = NO_COUNT - val order: Int + open val order: Int get() = NO_ORDER override val itemType: FilterListItem.Type get() = FilterListItem.Type.ITEM - val isReadOnly: Boolean + open val isReadOnly: Boolean get() = false val isWritable: Boolean get() = !isReadOnly - fun supportsManualSort(): Boolean = false - fun supportsHiddenTasks(): Boolean = true - fun supportsSubtasks(): Boolean = true - fun supportsSorting(): Boolean = true - fun disableHeaders(): Boolean = !supportsSorting() + open fun supportsManualSort(): Boolean = false + open fun supportsHiddenTasks(): Boolean = true + open fun supportsSubtasks(): Boolean = true + open fun supportsSorting(): Boolean = true + open fun disableHeaders(): Boolean = !supportsSorting() } diff --git a/kmp/src/commonMain/kotlin/org/tasks/filters/FilterImpl.kt b/kmp/src/commonMain/kotlin/org/tasks/filters/FilterImpl.kt index f0d1761d3..ae31c0931 100644 --- a/kmp/src/commonMain/kotlin/org/tasks/filters/FilterImpl.kt +++ b/kmp/src/commonMain/kotlin/org/tasks/filters/FilterImpl.kt @@ -9,7 +9,7 @@ data class FilterImpl( override val valuesForNewTasks: String? = null, override val icon: String? = null, override val tint: Int = 0, -) : Filter { +) : Filter() { override fun areItemsTheSame(other: FilterListItem): Boolean { return other is Filter && sql == other.sql } diff --git a/kmp/src/commonMain/kotlin/org/tasks/filters/MyTasksFilter.kt b/kmp/src/commonMain/kotlin/org/tasks/filters/MyTasksFilter.kt index e06b28a96..52cad12e9 100644 --- a/kmp/src/commonMain/kotlin/org/tasks/filters/MyTasksFilter.kt +++ b/kmp/src/commonMain/kotlin/org/tasks/filters/MyTasksFilter.kt @@ -14,7 +14,7 @@ import tasks.kmp.generated.resources.filter_my_tasks data class MyTasksFilter( override val title: String, override var filterOverride: String? = null, -) : AstridOrderingFilter { +) : AstridOrderingFilter() { override val icon: String get() = TasksIcons.ALL_INBOX override val sql: String diff --git a/kmp/src/commonMain/kotlin/org/tasks/filters/NotificationsFilter.kt b/kmp/src/commonMain/kotlin/org/tasks/filters/NotificationsFilter.kt index a915f8c9d..65345f258 100644 --- a/kmp/src/commonMain/kotlin/org/tasks/filters/NotificationsFilter.kt +++ b/kmp/src/commonMain/kotlin/org/tasks/filters/NotificationsFilter.kt @@ -13,7 +13,7 @@ import tasks.kmp.generated.resources.filter_notifications @CommonParcelize data class NotificationsFilter( override val title: String, -) : Filter { +) : Filter() { override val icon: String get() = TasksIcons.NOTIFICATIONS diff --git a/kmp/src/commonMain/kotlin/org/tasks/filters/PlaceFilter.kt b/kmp/src/commonMain/kotlin/org/tasks/filters/PlaceFilter.kt index cfad57125..781396f2a 100644 --- a/kmp/src/commonMain/kotlin/org/tasks/filters/PlaceFilter.kt +++ b/kmp/src/commonMain/kotlin/org/tasks/filters/PlaceFilter.kt @@ -16,7 +16,7 @@ import org.tasks.themes.TasksIcons data class PlaceFilter( val place: Place, override val count: Int = NO_COUNT, -) : Filter { +) : Filter() { override val valuesForNewTasks: String get() = mapToSerializedString(mapOf(Place.KEY to place.uid!!)) override val sql: String diff --git a/kmp/src/commonMain/kotlin/org/tasks/filters/RecentlyModifiedFilter.kt b/kmp/src/commonMain/kotlin/org/tasks/filters/RecentlyModifiedFilter.kt index 4d07b346d..895f4e8bd 100644 --- a/kmp/src/commonMain/kotlin/org/tasks/filters/RecentlyModifiedFilter.kt +++ b/kmp/src/commonMain/kotlin/org/tasks/filters/RecentlyModifiedFilter.kt @@ -16,7 +16,7 @@ import tasks.kmp.generated.resources.filter_recently_modified @CommonParcelize data class RecentlyModifiedFilter( override val title: String, -) : Filter { +) : Filter() { override val icon: String get() = TasksIcons.HISTORY diff --git a/kmp/src/commonMain/kotlin/org/tasks/filters/SearchFilter.kt b/kmp/src/commonMain/kotlin/org/tasks/filters/SearchFilter.kt index e7f755d0b..7d4751cd2 100644 --- a/kmp/src/commonMain/kotlin/org/tasks/filters/SearchFilter.kt +++ b/kmp/src/commonMain/kotlin/org/tasks/filters/SearchFilter.kt @@ -17,7 +17,7 @@ import org.tasks.data.sql.QueryTemplate data class SearchFilter( override val title: String, val query: String, -) : Filter { +) : Filter() { override val sql: String get() { val matcher = "%$query%" diff --git a/kmp/src/commonMain/kotlin/org/tasks/filters/SnoozedFilter.kt b/kmp/src/commonMain/kotlin/org/tasks/filters/SnoozedFilter.kt index c5d6d31a8..b16036209 100644 --- a/kmp/src/commonMain/kotlin/org/tasks/filters/SnoozedFilter.kt +++ b/kmp/src/commonMain/kotlin/org/tasks/filters/SnoozedFilter.kt @@ -16,7 +16,7 @@ import tasks.kmp.generated.resources.filter_snoozed @CommonParcelize data class SnoozedFilter( override val title: String, -) : Filter { +) : Filter() { override val icon: String get() = TasksIcons.SNOOZE diff --git a/kmp/src/commonMain/kotlin/org/tasks/filters/SubtaskFilter.kt b/kmp/src/commonMain/kotlin/org/tasks/filters/SubtaskFilter.kt index ff8c8d3a6..34692a335 100644 --- a/kmp/src/commonMain/kotlin/org/tasks/filters/SubtaskFilter.kt +++ b/kmp/src/commonMain/kotlin/org/tasks/filters/SubtaskFilter.kt @@ -10,7 +10,7 @@ import org.tasks.data.sql.QueryTemplate @CommonParcelize data class SubtaskFilter( private val parent: Long, -) : Filter { +) : Filter() { @CommonIgnoredOnParcel override val title: String = "subtasks" diff --git a/kmp/src/commonMain/kotlin/org/tasks/filters/TagFilter.kt b/kmp/src/commonMain/kotlin/org/tasks/filters/TagFilter.kt index fd5fb4473..46402391c 100644 --- a/kmp/src/commonMain/kotlin/org/tasks/filters/TagFilter.kt +++ b/kmp/src/commonMain/kotlin/org/tasks/filters/TagFilter.kt @@ -15,7 +15,7 @@ data class TagFilter( val tagData: TagData, override val count: Int = NO_COUNT, override var filterOverride: String? = null, -) : AstridOrderingFilter { +) : AstridOrderingFilter() { override val title: String? get() = tagData.name override val sql: String diff --git a/kmp/src/commonMain/kotlin/org/tasks/filters/TimerFilter.kt b/kmp/src/commonMain/kotlin/org/tasks/filters/TimerFilter.kt index 80fa57472..4214574e1 100644 --- a/kmp/src/commonMain/kotlin/org/tasks/filters/TimerFilter.kt +++ b/kmp/src/commonMain/kotlin/org/tasks/filters/TimerFilter.kt @@ -10,7 +10,7 @@ import tasks.kmp.generated.resources.Res import tasks.kmp.generated.resources.filter_timer @CommonParcelize -data class TimerFilter(override val title: String) : Filter { +data class TimerFilter(override val title: String) : Filter() { override val icon get() = TasksIcons.TIMER diff --git a/kmp/src/commonMain/kotlin/org/tasks/filters/TodayFilter.kt b/kmp/src/commonMain/kotlin/org/tasks/filters/TodayFilter.kt index b56c5278a..6238133fb 100644 --- a/kmp/src/commonMain/kotlin/org/tasks/filters/TodayFilter.kt +++ b/kmp/src/commonMain/kotlin/org/tasks/filters/TodayFilter.kt @@ -15,7 +15,7 @@ import tasks.kmp.generated.resources.filter_today data class TodayFilter( override val title: String, override var filterOverride: String? = null, -) : AstridOrderingFilter { +) : AstridOrderingFilter() { override val sql: String get() = QueryTemplate() .where( diff --git a/kmp/src/commonMain/kotlin/org/tasks/tasklist/TasksResults.kt b/kmp/src/commonMain/kotlin/org/tasks/tasklist/TasksResults.kt index dae3eee7f..38d33e0e4 100644 --- a/kmp/src/commonMain/kotlin/org/tasks/tasklist/TasksResults.kt +++ b/kmp/src/commonMain/kotlin/org/tasks/tasklist/TasksResults.kt @@ -1,6 +1,6 @@ package org.tasks.tasklist -sealed interface TasksResults { - data object Loading : TasksResults - data class Results(val tasks: SectionedDataSource) : TasksResults +sealed class TasksResults { + data object Loading : TasksResults() + data class Results(val tasks: SectionedDataSource) : TasksResults() }