|
|
|
|
@ -1,7 +1,19 @@
|
|
|
|
|
package org.tasks.compose.drawer
|
|
|
|
|
|
|
|
|
|
import androidx.compose.runtime.Stable
|
|
|
|
|
import co.touchlab.kermit.Logger
|
|
|
|
|
import org.tasks.data.UUIDHelper
|
|
|
|
|
import org.tasks.filters.CaldavFilter
|
|
|
|
|
import org.tasks.filters.CustomFilter
|
|
|
|
|
import org.tasks.filters.MyTasksFilter
|
|
|
|
|
import org.tasks.filters.NavigationDrawerSubheader
|
|
|
|
|
import org.tasks.filters.NotificationsFilter
|
|
|
|
|
import org.tasks.filters.PlaceFilter
|
|
|
|
|
import org.tasks.filters.RecentlyModifiedFilter
|
|
|
|
|
import org.tasks.filters.SnoozedFilter
|
|
|
|
|
import org.tasks.filters.TagFilter
|
|
|
|
|
import org.tasks.filters.TimerFilter
|
|
|
|
|
import org.tasks.filters.TodayFilter
|
|
|
|
|
|
|
|
|
|
@Stable
|
|
|
|
|
sealed class DrawerItem {
|
|
|
|
|
@ -15,8 +27,21 @@ sealed class DrawerItem {
|
|
|
|
|
val selected: Boolean = false,
|
|
|
|
|
val filter: org.tasks.filters.Filter,
|
|
|
|
|
) : DrawerItem() {
|
|
|
|
|
override fun key(): String {
|
|
|
|
|
return "filter_${hashCode()}"
|
|
|
|
|
override fun key() = when (filter) {
|
|
|
|
|
is CustomFilter -> "custom_${filter.id}"
|
|
|
|
|
is CaldavFilter -> "list_${filter.account.id}_${filter.calendar.id}"
|
|
|
|
|
is PlaceFilter -> "place_${filter.place.id}"
|
|
|
|
|
is TagFilter -> "tag_${filter.tagData.id}"
|
|
|
|
|
is MyTasksFilter -> "builtin_my_tasks"
|
|
|
|
|
is TodayFilter -> "builtin_today"
|
|
|
|
|
is RecentlyModifiedFilter -> "builtin_recently_modified"
|
|
|
|
|
is TimerFilter -> "builtin_timer"
|
|
|
|
|
is SnoozedFilter -> "builtin_snoozed"
|
|
|
|
|
is NotificationsFilter -> "builtin_notifications"
|
|
|
|
|
else -> {
|
|
|
|
|
Logger.w { "Unexpected filter type: ${filter.javaClass.name}" }
|
|
|
|
|
UUIDHelper.newUUID()
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@ -28,9 +53,7 @@ sealed class DrawerItem {
|
|
|
|
|
val canAdd: Boolean,
|
|
|
|
|
val header: NavigationDrawerSubheader,
|
|
|
|
|
) : DrawerItem() {
|
|
|
|
|
override fun key(): String {
|
|
|
|
|
return "header_${header.subheaderType}_${header.id}"
|
|
|
|
|
}
|
|
|
|
|
override fun key() = "header_${header.subheaderType}_${header.id}"
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
abstract fun key(): String
|
|
|
|
|
|