Replace sealed interfaces

pull/3385/head
Alex Baker 9 months ago
parent 3cd169dd87
commit cf5f810f18

@ -4,7 +4,7 @@ import kotlinx.coroutines.flow.MutableSharedFlow
typealias TaskListEventBus = MutableSharedFlow<TaskListEvent> typealias TaskListEventBus = MutableSharedFlow<TaskListEvent>
sealed interface TaskListEvent { sealed class TaskListEvent {
data class TaskCreated(val uuid: String) : TaskListEvent data class TaskCreated(val uuid: String) : TaskListEvent()
data class CalendarEventCreated(val title: String?, val uri: String) : TaskListEvent data class CalendarEventCreated(val title: String?, val uri: String) : TaskListEvent()
} }

@ -47,13 +47,13 @@ import org.tasks.tasklist.TasksResults
import org.tasks.time.DateTimeUtils2.currentTimeMillis import org.tasks.time.DateTimeUtils2.currentTimeMillis
import javax.inject.Inject import javax.inject.Inject
sealed interface Banner { sealed class Banner {
data object NotificationsDisabled : Banner data object NotificationsDisabled : Banner()
data object AlarmsDisabled : Banner data object AlarmsDisabled : Banner()
data object QuietHoursEnabled : Banner data object QuietHoursEnabled : Banner()
data object BegForMoney : Banner data object BegForMoney : Banner()
data object WarnMicrosoft : Banner data object WarnMicrosoft : Banner()
data object WarnGoogleTasks : Banner data object WarnGoogleTasks : Banner()
} }
@HiltViewModel @HiltViewModel

@ -124,7 +124,7 @@ unstable class MainActivity {
} }
unstable class State { unstable class State {
stable val begForMoney: Boolean stable val begForMoney: Boolean
unstable val filter: Filter stable val filter: Filter
unstable val task: Task? unstable val task: Task?
stable val drawerItems: ImmutableList<DrawerItem> stable val drawerItems: ImmutableList<DrawerItem>
stable val searchItems: ImmutableList<DrawerItem> stable val searchItems: ImmutableList<DrawerItem>
@ -197,7 +197,7 @@ unstable class TaskListFragment {
unstable val mainViewModel$delegate: Lazy<MainActivityViewModel> unstable val mainViewModel$delegate: Lazy<MainActivityViewModel>
unstable var taskAdapter: TaskAdapter unstable var taskAdapter: TaskAdapter
unstable var recyclerAdapter: DragAndDropRecyclerAdapter? unstable var recyclerAdapter: DragAndDropRecyclerAdapter?
unstable var filter: Filter stable var filter: Filter
unstable var search: MenuItem unstable var search: MenuItem
unstable var mode: ActionMode? unstable var mode: ActionMode?
unstable var themeColor: ThemeColor unstable var themeColor: ThemeColor
@ -211,7 +211,7 @@ unstable class TaskListFragment {
} }
unstable class AstridTaskAdapter { unstable class AstridTaskAdapter {
unstable val list: TaskListMetadata unstable val list: TaskListMetadata
unstable val filter: AstridOrderingFilter stable val filter: AstridOrderingFilter
unstable val updater: SubtasksFilterUpdater unstable val updater: SubtasksFilterUpdater
unstable val taskDao: TaskDao unstable val taskDao: TaskDao
unstable val localBroadcastManager: LocalBroadcastManager unstable val localBroadcastManager: LocalBroadcastManager
@ -234,7 +234,7 @@ unstable class FilterViewHolder {
unstable val shareIndicator: ImageView unstable val shareIndicator: ImageView
unstable val icon: MutableStateFlow<String?> unstable val icon: MutableStateFlow<String?>
unstable val color: MutableStateFlow<Int> unstable val color: MutableStateFlow<Int>
unstable var filter: Filter stable var filter: Filter
<runtime stability> = Unstable <runtime stability> = Unstable
} }
stable class GoogleTaskManualSortAdapter { stable class GoogleTaskManualSortAdapter {
@ -677,7 +677,7 @@ unstable class FilterSettingsActivity {
<runtime stability> = Unstable <runtime stability> = Unstable
} }
unstable class ViewState { unstable class ViewState {
runtime val filter: CustomFilter? stable val filter: CustomFilter?
stable val fabExtended: Boolean stable val fabExtended: Boolean
unstable val criteria: ImmutableList<CriterionInstance> unstable val criteria: ImmutableList<CriterionInstance>
<runtime stability> = Unstable <runtime stability> = Unstable
@ -2175,7 +2175,7 @@ unstable class TaskListPreferences {
} }
unstable class TaskerListNotification { unstable class TaskerListNotification {
unstable var defaultFilterProvider: DefaultFilterProvider unstable var defaultFilterProvider: DefaultFilterProvider
unstable var filter: Filter stable var filter: Filter
stable var cancelled: Boolean stable var cancelled: Boolean
unstable val listPickerLauncher: ActivityResultLauncher<Intent> unstable val listPickerLauncher: ActivityResultLauncher<Intent>
<runtime stability> = Unstable <runtime stability> = Unstable
@ -2774,6 +2774,9 @@ stable class CalendarEventCreated {
stable val uri: String stable val uri: String
<runtime stability> = Stable <runtime stability> = Stable
} }
stable class TaskListEvent {
<runtime stability> = Stable
}
stable class NotificationsDisabled { stable class NotificationsDisabled {
<runtime stability> = Stable <runtime stability> = Stable
} }
@ -2792,14 +2795,17 @@ stable class WarnMicrosoft {
stable class WarnGoogleTasks { stable class WarnGoogleTasks {
<runtime stability> = Stable <runtime stability> = Stable
} }
stable class Banner {
<runtime stability> = Stable
}
unstable class State { unstable class State {
unstable val filter: Filter stable val filter: Filter
stable val now: Long stable val now: Long
stable val searchQuery: String? stable val searchQuery: String?
unstable val tasks: TasksResults runtime val tasks: TasksResults
stable val syncOngoing: Boolean stable val syncOngoing: Boolean
unstable val collapsed: Set<Long> unstable val collapsed: Set<Long>
runtime val banner: Banner? stable val banner: Banner?
<runtime stability> = Unstable <runtime stability> = Unstable
} }
unstable class TaskListViewModel { unstable class TaskListViewModel {
@ -2842,7 +2848,7 @@ unstable class ShortcutConfigActivity {
unstable var shortcutName: TextInputEditText unstable var shortcutName: TextInputEditText
unstable var colorIcon: TextView unstable var colorIcon: TextView
unstable var clear: View unstable var clear: View
unstable var selectedFilter: Filter? stable var selectedFilter: Filter?
stable var selectedTheme: Int stable var selectedTheme: Int
unstable val listPickerResult: ActivityResultLauncher<Intent> unstable val listPickerResult: ActivityResultLauncher<Intent>
<runtime stability> = Unstable <runtime stability> = Unstable
@ -2867,7 +2873,7 @@ unstable class TasksWidgetAdapter {
unstable class TasksWidgetViewFactory { unstable class TasksWidgetViewFactory {
unstable val subtasksHelper: SubtasksHelper unstable val subtasksHelper: SubtasksHelper
unstable val widgetPreferences: WidgetPreferences unstable val widgetPreferences: WidgetPreferences
unstable val filter: Filter stable val filter: Filter
unstable val context: Context unstable val context: Context
stable val widgetId: Int stable val widgetId: Int
unstable val taskDao: TaskDao unstable val taskDao: TaskDao

@ -363,7 +363,7 @@ restartable skippable scheme("[androidx.compose.ui.UiComposable, [androidx.compo
stable content: Function3<@[ParameterName(name = 'isDragging')] Boolean, Composer, Int, Unit> stable content: Function3<@[ParameterName(name = 'isDragging')] Boolean, Composer, Int, Unit>
) )
restartable skippable scheme("[androidx.compose.ui.UiComposable]") fun FilterChip( restartable skippable scheme("[androidx.compose.ui.UiComposable]") fun FilterChip(
unstable filter: Filter stable filter: Filter
stable defaultIcon: String stable defaultIcon: String
stable showText: Boolean stable showText: Boolean
stable showIcon: 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 InfoPreview()
restartable skippable scheme("[androidx.compose.ui.UiComposable]") fun ListRow( restartable skippable scheme("[androidx.compose.ui.UiComposable]") fun ListRow(
unstable list: Filter? stable list: Filter?
stable colorProvider: Function1<Int, Int> stable colorProvider: Function1<Int, Int>
stable onClick: Function0<Unit> stable onClick: Function0<Unit>
) )
@ -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 FutureStartDate()
restartable skippable scheme("[androidx.compose.ui.UiComposable]") fun PastStartDate() restartable skippable scheme("[androidx.compose.ui.UiComposable]") fun PastStartDate()
restartable skippable scheme("[androidx.compose.ui.UiComposable]") fun SubtaskRow( restartable skippable scheme("[androidx.compose.ui.UiComposable]") fun SubtaskRow(
originalFilter: CaldavFilter stable originalFilter: CaldavFilter
filter: CaldavFilter stable filter: CaldavFilter
stable hasParent: Boolean stable hasParent: Boolean
unstable existingSubtasks: TasksResults existingSubtasks: TasksResults
unstable newSubtasks: List<Task> unstable newSubtasks: List<Task>
stable openSubtask: Function1<Task, Unit> stable openSubtask: Function1<Task, Unit>
stable completeExistingSubtask: Function2<Task, Boolean, Unit> stable completeExistingSubtask: Function2<Task, Boolean, Unit>

@ -7,16 +7,16 @@
"totalGroups": 853, "totalGroups": 853,
"staticArguments": 1367, "staticArguments": 1367,
"certainArguments": 162, "certainArguments": 162,
"knownStableArguments": 6373, "knownStableArguments": 6387,
"knownUnstableArguments": 175, "knownUnstableArguments": 171,
"unknownStableArguments": 16, "unknownStableArguments": 6,
"totalArguments": 6564, "totalArguments": 6564,
"markedStableClasses": 0, "markedStableClasses": 0,
"inferredStableClasses": 93, "inferredStableClasses": 95,
"inferredUnstableClasses": 321, "inferredUnstableClasses": 321,
"inferredUncertainClasses": 0, "inferredUncertainClasses": 0,
"effectivelyStableClasses": 93, "effectivelyStableClasses": 95,
"totalClasses": 414, "totalClasses": 416,
"memoizedLambdas": 932, "memoizedLambdas": 932,
"singletonLambdas": 0, "singletonLambdas": 0,
"singletonComposableLambdas": 136, "singletonComposableLambdas": 136,

@ -65,8 +65,7 @@ stable class Filter {
stable val count: Int stable val count: Int
stable val shareCount: Int stable val shareCount: Int
stable val selected: Boolean stable val selected: Boolean
runtime val filter: Filter stable val filter: Filter
<runtime stability> = Stable
} }
stable class Header { stable class Header {
stable val title: String stable val title: String
@ -74,7 +73,8 @@ stable class Header {
stable val hasError: Boolean stable val hasError: Boolean
stable val canAdd: Boolean stable val canAdd: Boolean
stable val header: NavigationDrawerSubheader stable val header: NavigationDrawerSubheader
<runtime stability> = Stable }
stable class DrawerItem {
} }
stable class ViewState { stable class ViewState {
stable val icons: ImmutableMap<String, ImmutableList<Icon>> stable val icons: ImmutableMap<String, ImmutableList<Icon>>
@ -131,16 +131,19 @@ stable class AlphanumComparator {
stable val getTitle: Function1<T, String?> stable val getTitle: Function1<T, String?>
<runtime stability> = Stable <runtime stability> = Stable
} }
unstable class CaldavFilter { stable class AstridOrderingFilter {
<runtime stability> = Stable
}
stable class CaldavFilter {
unstable val calendar: CaldavCalendar unstable val calendar: CaldavCalendar
unstable val account: CaldavAccount unstable val account: CaldavAccount
stable val principals: Int stable val principals: Int
stable val count: Int stable val count: Int
<runtime stability> = Unstable <runtime stability> = Stable
} }
unstable class CustomFilter { stable class CustomFilter {
unstable val filter: Filter unstable val filter: Filter
<runtime stability> = Unstable <runtime stability> = Stable
} }
stable class DebugFilters { stable class DebugFilters {
<runtime stability> = Stable <runtime stability> = Stable
@ -150,6 +153,8 @@ stable class EmptyFilter {
stable val title: String? stable val title: String?
<runtime stability> = Stable <runtime stability> = Stable
} }
stable class Filter {
}
stable class FilterImpl { stable class FilterImpl {
stable val title: String? stable val title: String?
stable val sql: String? stable val sql: String?
@ -168,10 +173,10 @@ unstable class FilterProvider {
unstable val tasksPreferences: TasksPreferences unstable val tasksPreferences: TasksPreferences
<runtime stability> = Unstable <runtime stability> = Unstable
} }
unstable class MyTasksFilter { stable class MyTasksFilter {
stable val title: String stable val title: String
stable var filterOverride: String? stable var filterOverride: String?
<runtime stability> = Unstable <runtime stability> = Stable
} }
stable class NavigationDrawerSubheader { stable class NavigationDrawerSubheader {
stable val title: String? stable val title: String?
@ -187,10 +192,10 @@ stable class NotificationsFilter {
stable val title: String stable val title: String
<runtime stability> = Stable <runtime stability> = Stable
} }
unstable class PlaceFilter { stable class PlaceFilter {
unstable val place: Place unstable val place: Place
stable val count: Int stable val count: Int
<runtime stability> = Unstable <runtime stability> = Stable
} }
stable class RecentlyModifiedFilter { stable class RecentlyModifiedFilter {
stable val title: String stable val title: String
@ -211,20 +216,20 @@ stable class SubtaskFilter {
stable val sql: String stable val sql: String
<runtime stability> = Stable <runtime stability> = Stable
} }
unstable class TagFilter { stable class TagFilter {
unstable val tagData: TagData unstable val tagData: TagData
stable val count: Int stable val count: Int
stable var filterOverride: String? stable var filterOverride: String?
<runtime stability> = Unstable <runtime stability> = Stable
} }
stable class TimerFilter { stable class TimerFilter {
stable val title: String stable val title: String
<runtime stability> = Stable <runtime stability> = Stable
} }
unstable class TodayFilter { stable class TodayFilter {
stable val title: String stable val title: String
stable var filterOverride: String? stable var filterOverride: String?
<runtime stability> = Unstable <runtime stability> = Stable
} }
unstable class TasksPreferences { unstable class TasksPreferences {
unstable val dataStore: DataStore<Preferences> unstable val dataStore: DataStore<Preferences>
@ -241,7 +246,7 @@ unstable class TaskEditViewState {
stable val linkify: Boolean stable val linkify: Boolean
stable val alwaysDisplayFullDate: Boolean stable val alwaysDisplayFullDate: Boolean
stable val showEditScreenWithoutUnlock: Boolean stable val showEditScreenWithoutUnlock: Boolean
unstable val list: CaldavFilter stable val list: CaldavFilter
unstable val location: Location? unstable val location: Location?
unstable val tags: ImmutableSet<TagData> unstable val tags: ImmutableSet<TagData>
stable val calendar: String? stable val calendar: String?
@ -274,6 +279,9 @@ unstable class Results {
unstable val tasks: SectionedDataSource unstable val tasks: SectionedDataSource
<runtime stability> = Unstable <runtime stability> = Unstable
} }
stable class TasksResults {
<runtime stability> = Stable
}
stable class Header { stable class Header {
stable val value: Long stable val value: Long
stable val collapsed: Boolean stable val collapsed: Boolean

@ -118,7 +118,7 @@ restartable skippable scheme("[androidx.compose.ui.UiComposable, [androidx.compo
unstable filters: List<FilterListItem> unstable filters: List<FilterListItem>
stable query: String stable query: String
stable onQueryChange: Function1<String, Unit> stable onQueryChange: Function1<String, Unit>
selected: Filter? stable selected: Filter?
stable onClick: Function1<FilterListItem, Unit> stable onClick: Function1<FilterListItem, Unit>
stable getIcon: Function3<Filter, Composer, Int, String?> stable getIcon: Function3<Filter, Composer, Int, String?>
stable getColor: Function1<Filter, Int> stable getColor: Function1<Filter, Int>

@ -7,16 +7,16 @@
"totalGroups": 103, "totalGroups": 103,
"staticArguments": 146, "staticArguments": 146,
"certainArguments": 19, "certainArguments": 19,
"knownStableArguments": 706, "knownStableArguments": 707,
"knownUnstableArguments": 2, "knownUnstableArguments": 2,
"unknownStableArguments": 3, "unknownStableArguments": 2,
"totalArguments": 711, "totalArguments": 711,
"markedStableClasses": 3, "markedStableClasses": 7,
"inferredStableClasses": 24, "inferredStableClasses": 30,
"inferredUnstableClasses": 22, "inferredUnstableClasses": 16,
"inferredUncertainClasses": 0, "inferredUncertainClasses": 0,
"effectivelyStableClasses": 27, "effectivelyStableClasses": 37,
"totalClasses": 49, "totalClasses": 53,
"memoizedLambdas": 83, "memoizedLambdas": 83,
"singletonLambdas": 0, "singletonLambdas": 0,
"singletonComposableLambdas": 12, "singletonComposableLambdas": 12,

@ -4,7 +4,8 @@ import androidx.compose.runtime.Stable
import org.tasks.filters.NavigationDrawerSubheader import org.tasks.filters.NavigationDrawerSubheader
@Stable @Stable
sealed interface DrawerItem { sealed class DrawerItem {
@Stable
data class Filter( data class Filter(
val title: String, val title: String,
val icon: String?, val icon: String?,
@ -13,21 +14,24 @@ sealed interface DrawerItem {
val shareCount: Int = 0, val shareCount: Int = 0,
val selected: Boolean = false, val selected: Boolean = false,
val filter: org.tasks.filters.Filter, val filter: org.tasks.filters.Filter,
) : DrawerItem { ) : DrawerItem() {
override fun key(): String { override fun key(): String {
return "filter_${hashCode()}" return "filter_${hashCode()}"
} }
} }
@Stable
data class Header( data class Header(
val title: String, val title: String,
val collapsed: Boolean, val collapsed: Boolean,
val hasError: Boolean, val hasError: Boolean,
val canAdd: Boolean, val canAdd: Boolean,
val header: NavigationDrawerSubheader, val header: NavigationDrawerSubheader,
) : DrawerItem { ) : DrawerItem() {
override fun key(): String { override fun key(): String {
return "header_${header.subheaderType}_${header.id}" return "header_${header.subheaderType}_${header.id}"
} }
} }
fun key(): String
abstract fun key(): String
} }

@ -1,8 +1,8 @@
package org.tasks.filters package org.tasks.filters
@Deprecated("Use manual ordering") @Deprecated("Use manual ordering")
interface AstridOrderingFilter : Filter { abstract class AstridOrderingFilter : Filter() {
var filterOverride: String? abstract var filterOverride: String?
fun getSqlQuery(): String = filterOverride ?: sql!! fun getSqlQuery(): String = filterOverride ?: sql!!
} }

@ -19,7 +19,7 @@ data class CaldavFilter(
val account: CaldavAccount, val account: CaldavAccount,
val principals: Int = 0, val principals: Int = 0,
override val count: Int = NO_COUNT, override val count: Int = NO_COUNT,
) : Filter { ) : Filter() {
override val title: String? override val title: String?
get() = calendar.name get() = calendar.name

@ -6,7 +6,7 @@ import org.tasks.themes.TasksIcons
@CommonParcelize @CommonParcelize
data class CustomFilter( data class CustomFilter(
val filter: org.tasks.data.entity.Filter, val filter: org.tasks.data.entity.Filter,
) : Filter { ) : Filter() {
override val title: String? override val title: String?
get() = filter.title get() = filter.title
override val sql: String override val sql: String

@ -6,6 +6,6 @@ import org.tasks.CommonParcelize
class EmptyFilter( class EmptyFilter(
override val sql: String? = "WHERE 0", override val sql: String? = "WHERE 0",
override val title: String? = null override val title: String? = null
) : Filter { ) : Filter() {
override fun areItemsTheSame(other: FilterListItem): Boolean = false override fun areItemsTheSame(other: FilterListItem): Boolean = false
} }

@ -1,33 +1,35 @@
package org.tasks.filters package org.tasks.filters
import androidx.compose.runtime.Stable
import org.tasks.CommonParcelable import org.tasks.CommonParcelable
import org.tasks.data.NO_COUNT import org.tasks.data.NO_COUNT
import org.tasks.data.NO_ORDER import org.tasks.data.NO_ORDER
interface Filter : FilterListItem, CommonParcelable { @Stable
val valuesForNewTasks: String? abstract class Filter : FilterListItem, CommonParcelable {
open val valuesForNewTasks: String?
get() = null get() = null
val sql: String? abstract val sql: String?
val icon: String? open val icon: String?
get() = null get() = null
val title: String? abstract val title: String?
val tint: Int open val tint: Int
get() = 0 get() = 0
@Deprecated("Remove this") @Deprecated("Remove this")
val count: Int open val count: Int
get() = NO_COUNT get() = NO_COUNT
val order: Int open val order: Int
get() = NO_ORDER get() = NO_ORDER
override val itemType: FilterListItem.Type override val itemType: FilterListItem.Type
get() = FilterListItem.Type.ITEM get() = FilterListItem.Type.ITEM
val isReadOnly: Boolean open val isReadOnly: Boolean
get() = false get() = false
val isWritable: Boolean val isWritable: Boolean
get() = !isReadOnly get() = !isReadOnly
fun supportsManualSort(): Boolean = false open fun supportsManualSort(): Boolean = false
fun supportsHiddenTasks(): Boolean = true open fun supportsHiddenTasks(): Boolean = true
fun supportsSubtasks(): Boolean = true open fun supportsSubtasks(): Boolean = true
fun supportsSorting(): Boolean = true open fun supportsSorting(): Boolean = true
fun disableHeaders(): Boolean = !supportsSorting() open fun disableHeaders(): Boolean = !supportsSorting()
} }

@ -9,7 +9,7 @@ data class FilterImpl(
override val valuesForNewTasks: String? = null, override val valuesForNewTasks: String? = null,
override val icon: String? = null, override val icon: String? = null,
override val tint: Int = 0, override val tint: Int = 0,
) : Filter { ) : Filter() {
override fun areItemsTheSame(other: FilterListItem): Boolean { override fun areItemsTheSame(other: FilterListItem): Boolean {
return other is Filter && sql == other.sql return other is Filter && sql == other.sql
} }

@ -14,7 +14,7 @@ import tasks.kmp.generated.resources.filter_my_tasks
data class MyTasksFilter( data class MyTasksFilter(
override val title: String, override val title: String,
override var filterOverride: String? = null, override var filterOverride: String? = null,
) : AstridOrderingFilter { ) : AstridOrderingFilter() {
override val icon: String override val icon: String
get() = TasksIcons.ALL_INBOX get() = TasksIcons.ALL_INBOX
override val sql: String override val sql: String

@ -13,7 +13,7 @@ import tasks.kmp.generated.resources.filter_notifications
@CommonParcelize @CommonParcelize
data class NotificationsFilter( data class NotificationsFilter(
override val title: String, override val title: String,
) : Filter { ) : Filter() {
override val icon: String override val icon: String
get() = TasksIcons.NOTIFICATIONS get() = TasksIcons.NOTIFICATIONS

@ -16,7 +16,7 @@ import org.tasks.themes.TasksIcons
data class PlaceFilter( data class PlaceFilter(
val place: Place, val place: Place,
override val count: Int = NO_COUNT, override val count: Int = NO_COUNT,
) : Filter { ) : Filter() {
override val valuesForNewTasks: String override val valuesForNewTasks: String
get() = mapToSerializedString(mapOf(Place.KEY to place.uid!!)) get() = mapToSerializedString(mapOf(Place.KEY to place.uid!!))
override val sql: String override val sql: String

@ -16,7 +16,7 @@ import tasks.kmp.generated.resources.filter_recently_modified
@CommonParcelize @CommonParcelize
data class RecentlyModifiedFilter( data class RecentlyModifiedFilter(
override val title: String, override val title: String,
) : Filter { ) : Filter() {
override val icon: String override val icon: String
get() = TasksIcons.HISTORY get() = TasksIcons.HISTORY

@ -17,7 +17,7 @@ import org.tasks.data.sql.QueryTemplate
data class SearchFilter( data class SearchFilter(
override val title: String, override val title: String,
val query: String, val query: String,
) : Filter { ) : Filter() {
override val sql: String override val sql: String
get() { get() {
val matcher = "%$query%" val matcher = "%$query%"

@ -16,7 +16,7 @@ import tasks.kmp.generated.resources.filter_snoozed
@CommonParcelize @CommonParcelize
data class SnoozedFilter( data class SnoozedFilter(
override val title: String, override val title: String,
) : Filter { ) : Filter() {
override val icon: String override val icon: String
get() = TasksIcons.SNOOZE get() = TasksIcons.SNOOZE

@ -10,7 +10,7 @@ import org.tasks.data.sql.QueryTemplate
@CommonParcelize @CommonParcelize
data class SubtaskFilter( data class SubtaskFilter(
private val parent: Long, private val parent: Long,
) : Filter { ) : Filter() {
@CommonIgnoredOnParcel @CommonIgnoredOnParcel
override val title: String = "subtasks" override val title: String = "subtasks"

@ -15,7 +15,7 @@ data class TagFilter(
val tagData: TagData, val tagData: TagData,
override val count: Int = NO_COUNT, override val count: Int = NO_COUNT,
override var filterOverride: String? = null, override var filterOverride: String? = null,
) : AstridOrderingFilter { ) : AstridOrderingFilter() {
override val title: String? override val title: String?
get() = tagData.name get() = tagData.name
override val sql: String override val sql: String

@ -10,7 +10,7 @@ import tasks.kmp.generated.resources.Res
import tasks.kmp.generated.resources.filter_timer import tasks.kmp.generated.resources.filter_timer
@CommonParcelize @CommonParcelize
data class TimerFilter(override val title: String) : Filter { data class TimerFilter(override val title: String) : Filter() {
override val icon override val icon
get() = TasksIcons.TIMER get() = TasksIcons.TIMER

@ -15,7 +15,7 @@ import tasks.kmp.generated.resources.filter_today
data class TodayFilter( data class TodayFilter(
override val title: String, override val title: String,
override var filterOverride: String? = null, override var filterOverride: String? = null,
) : AstridOrderingFilter { ) : AstridOrderingFilter() {
override val sql: String override val sql: String
get() = QueryTemplate() get() = QueryTemplate()
.where( .where(

@ -1,6 +1,6 @@
package org.tasks.tasklist package org.tasks.tasklist
sealed interface TasksResults { sealed class TasksResults {
data object Loading : TasksResults data object Loading : TasksResults()
data class Results(val tasks: SectionedDataSource) : TasksResults data class Results(val tasks: SectionedDataSource) : TasksResults()
} }

Loading…
Cancel
Save