mirror of https://github.com/tasks/tasks
Convert Filter to data class
parent
0bdd83988f
commit
082f741983
@ -1,92 +1,31 @@
|
|||||||
package org.tasks.data
|
package org.tasks.data
|
||||||
|
|
||||||
|
import android.os.Parcelable
|
||||||
import androidx.room.ColumnInfo
|
import androidx.room.ColumnInfo
|
||||||
import androidx.room.Entity
|
import androidx.room.Entity
|
||||||
import androidx.room.PrimaryKey
|
import androidx.room.PrimaryKey
|
||||||
import com.todoroo.andlib.utility.AndroidUtilities
|
|
||||||
import com.todoroo.astrid.api.Filter.Companion.NO_ORDER
|
import com.todoroo.astrid.api.Filter.Companion.NO_ORDER
|
||||||
import org.tasks.themes.CustomIcons.FILTER
|
import kotlinx.parcelize.Parcelize
|
||||||
|
|
||||||
|
@Parcelize
|
||||||
@Entity(tableName = "filters")
|
@Entity(tableName = "filters")
|
||||||
class Filter {
|
data class Filter(
|
||||||
@PrimaryKey(autoGenerate = true)
|
@PrimaryKey(autoGenerate = true)
|
||||||
@ColumnInfo(name = "_id")
|
@ColumnInfo(name = "_id")
|
||||||
@Transient
|
@Transient
|
||||||
var id: Long = 0
|
val id: Long = 0,
|
||||||
|
|
||||||
@ColumnInfo(name = "title")
|
@ColumnInfo(name = "title")
|
||||||
var title: String? = null
|
val title: String? = null,
|
||||||
|
|
||||||
@ColumnInfo(name = "sql")
|
@ColumnInfo(name = "sql")
|
||||||
private var sql: String? = null
|
val sql: String? = null,
|
||||||
|
|
||||||
@ColumnInfo(name = "values")
|
@ColumnInfo(name = "values")
|
||||||
var values: String? = null
|
val values: String? = null,
|
||||||
|
|
||||||
@ColumnInfo(name = "criterion")
|
@ColumnInfo(name = "criterion")
|
||||||
var criterion: String? = null
|
val criterion: String? = null,
|
||||||
|
|
||||||
@ColumnInfo(name = "f_color")
|
@ColumnInfo(name = "f_color")
|
||||||
private var color: Int? = 0
|
val color: Int? = 0,
|
||||||
|
|
||||||
@ColumnInfo(name = "f_icon")
|
@ColumnInfo(name = "f_icon")
|
||||||
private var icon: Int? = -1
|
val icon: Int? = -1,
|
||||||
|
|
||||||
@ColumnInfo(name = "f_order")
|
@ColumnInfo(name = "f_order")
|
||||||
var order = NO_ORDER
|
val order: Int = NO_ORDER,
|
||||||
|
) : Parcelable
|
||||||
// TODO: replace dirty hack for missing column
|
|
||||||
fun getSql(): String = sql!!.replace("tasks.userId=0", "1")
|
|
||||||
|
|
||||||
fun setSql(sql: String?) {
|
|
||||||
this.sql = sql
|
|
||||||
}
|
|
||||||
|
|
||||||
val valuesAsMap: Map<String, Any>
|
|
||||||
get() = AndroidUtilities.mapFromSerializedString(values)
|
|
||||||
|
|
||||||
@Suppress("RedundantNullableReturnType")
|
|
||||||
fun getColor(): Int? = color ?: 0
|
|
||||||
|
|
||||||
fun setColor(color: Int?) {
|
|
||||||
this.color = color
|
|
||||||
}
|
|
||||||
|
|
||||||
@Suppress("RedundantNullableReturnType")
|
|
||||||
fun getIcon(): Int? = icon ?: FILTER
|
|
||||||
|
|
||||||
fun setIcon(icon: Int?) {
|
|
||||||
this.icon = icon
|
|
||||||
}
|
|
||||||
|
|
||||||
override fun equals(other: Any?): Boolean {
|
|
||||||
if (this === other) return true
|
|
||||||
if (other !is Filter) return false
|
|
||||||
|
|
||||||
if (id != other.id) return false
|
|
||||||
if (title != other.title) return false
|
|
||||||
if (sql != other.sql) return false
|
|
||||||
if (values != other.values) return false
|
|
||||||
if (criterion != other.criterion) return false
|
|
||||||
if (color != other.color) return false
|
|
||||||
if (icon != other.icon) return false
|
|
||||||
if (order != other.order) return false
|
|
||||||
|
|
||||||
return true
|
|
||||||
}
|
|
||||||
|
|
||||||
override fun hashCode(): Int {
|
|
||||||
var result = id.hashCode()
|
|
||||||
result = 31 * result + (title?.hashCode() ?: 0)
|
|
||||||
result = 31 * result + (sql?.hashCode() ?: 0)
|
|
||||||
result = 31 * result + (values?.hashCode() ?: 0)
|
|
||||||
result = 31 * result + (criterion?.hashCode() ?: 0)
|
|
||||||
result = 31 * result + (color ?: 0)
|
|
||||||
result = 31 * result + (icon ?: 0)
|
|
||||||
result = 31 * result + order
|
|
||||||
return result
|
|
||||||
}
|
|
||||||
|
|
||||||
override fun toString(): String =
|
|
||||||
"Filter(id=$id, title=$title, sql=$sql, values=$values, criterion=$criterion, color=$color, icon=$icon, order=$order)"
|
|
||||||
}
|
|
||||||
|
Loading…
Reference in New Issue