Add kotlin-parcelize

pull/2271/head
Alex Baker 3 years ago
parent 70ab826598
commit 2848bd4f53

@ -11,6 +11,7 @@ plugins {
kotlin("kapt") kotlin("kapt")
id("dagger.hilt.android.plugin") id("dagger.hilt.android.plugin")
id("com.google.android.gms.oss-licenses-plugin") id("com.google.android.gms.oss-licenses-plugin")
id("kotlin-parcelize")
} }
repositories { repositories {

@ -1,16 +1,16 @@
package org.tasks.data package org.tasks.data
import android.os.Parcel
import android.os.Parcelable import android.os.Parcelable
import androidx.room.ColumnInfo import androidx.room.ColumnInfo
import androidx.room.Entity import androidx.room.Entity
import androidx.room.Ignore
import androidx.room.PrimaryKey import androidx.room.PrimaryKey
import com.todoroo.andlib.data.Table import com.todoroo.andlib.data.Table
import com.todoroo.astrid.api.FilterListItem.NO_ORDER import com.todoroo.astrid.api.FilterListItem.NO_ORDER
import com.todoroo.astrid.data.Task import com.todoroo.astrid.data.Task
import kotlinx.parcelize.Parcelize
import org.tasks.themes.CustomIcons.LIST import org.tasks.themes.CustomIcons.LIST
@Parcelize
@Entity(tableName = "caldav_lists") @Entity(tableName = "caldav_lists")
data class CaldavCalendar( data class CaldavCalendar(
@PrimaryKey(autoGenerate = true) @PrimaryKey(autoGenerate = true)
@ -27,21 +27,6 @@ data class CaldavCalendar(
@ColumnInfo(name = "cdl_access") var access: Int = ACCESS_OWNER, @ColumnInfo(name = "cdl_access") var access: Int = ACCESS_OWNER,
@ColumnInfo(name = "cdl_last_sync") val lastSync: Long = 0, @ColumnInfo(name = "cdl_last_sync") val lastSync: Long = 0,
) : Parcelable { ) : Parcelable {
@Ignore
constructor(source: Parcel): this(
id = source.readLong(),
account = source.readString(),
uuid = source.readString(),
name = source.readString(),
color = source.readInt(),
ctag = source.readString(),
url = source.readString(),
icon = source.readInt(),
order = source.readInt(),
access = source.readInt(),
lastSync = source.readLong(),
)
@Suppress("RedundantNullableReturnType") @Suppress("RedundantNullableReturnType")
fun getIcon(): Int? { fun getIcon(): Int? {
return (if (icon == null) LIST else icon!!) return (if (icon == null) LIST else icon!!)
@ -51,24 +36,6 @@ data class CaldavCalendar(
this.icon = icon this.icon = icon
} }
override fun describeContents() = 0
override fun writeToParcel(dest: Parcel, flags: Int) {
with(dest) {
writeLong(id)
writeString(account)
writeString(uuid)
writeString(name)
writeInt(color)
writeString(ctag)
writeString(url)
writeInt(getIcon()!!)
writeInt(order)
writeInt(access)
writeLong(lastSync)
}
}
companion object { companion object {
const val ACCESS_UNKNOWN = -1 const val ACCESS_UNKNOWN = -1
const val ACCESS_OWNER = 0 const val ACCESS_OWNER = 0
@ -85,10 +52,5 @@ data class CaldavCalendar(
val ACCOUNT = TABLE.column("cdl_account") val ACCOUNT = TABLE.column("cdl_account")
val UUID = TABLE.column("cdl_uuid") val UUID = TABLE.column("cdl_uuid")
val NAME = TABLE.column("cdl_name") val NAME = TABLE.column("cdl_name")
@JvmField val CREATOR: Parcelable.Creator<CaldavCalendar> = object : Parcelable.Creator<CaldavCalendar> {
override fun createFromParcel(source: Parcel): CaldavCalendar = CaldavCalendar(source)
override fun newArray(size: Int): Array<CaldavCalendar?> = arrayOfNulls(size)
}
} }
} }

@ -1,6 +1,5 @@
package org.tasks.data package org.tasks.data
import android.os.Parcel
import android.os.Parcelable import android.os.Parcelable
import androidx.room.ColumnInfo import androidx.room.ColumnInfo
import androidx.room.Entity import androidx.room.Entity
@ -9,10 +8,12 @@ import androidx.room.Ignore
import androidx.room.PrimaryKey import androidx.room.PrimaryKey
import com.todoroo.andlib.data.Table import com.todoroo.andlib.data.Table
import com.todoroo.astrid.data.Task import com.todoroo.astrid.data.Task
import kotlinx.parcelize.Parcelize
import org.tasks.R import org.tasks.R
import org.tasks.preferences.Preferences import org.tasks.preferences.Preferences
import java.io.Serializable import java.io.Serializable
@Parcelize
@Entity( @Entity(
tableName = Geofence.TABLE_NAME, tableName = Geofence.TABLE_NAME,
foreignKeys = [ foreignKeys = [
@ -83,36 +84,10 @@ data class Geofence(
isDeparture = o.isDeparture, isDeparture = o.isDeparture,
) )
@Ignore
constructor(parcel: Parcel): this(
id = parcel.readLong(),
task = parcel.readLong(),
place = parcel.readString(),
isArrival = parcel.readInt() == 1,
isDeparture = parcel.readInt() == 1,
)
override fun describeContents() = 0
override fun writeToParcel(out: Parcel, flags: Int) {
with(out) {
writeLong(id)
writeLong(task)
writeString(place)
writeInt(if (isArrival) 1 else 0)
writeInt(if (isDeparture) 1 else 0)
}
}
companion object { companion object {
const val TABLE_NAME = "geofences" const val TABLE_NAME = "geofences"
@JvmField val TABLE = Table(TABLE_NAME) @JvmField val TABLE = Table(TABLE_NAME)
@JvmField val TASK = TABLE.column("task") @JvmField val TASK = TABLE.column("task")
@JvmField val PLACE = TABLE.column("place") @JvmField val PLACE = TABLE.column("place")
@JvmField val CREATOR: Parcelable.Creator<Geofence> = object : Parcelable.Creator<Geofence> {
override fun createFromParcel(source: Parcel): Geofence = Geofence(source)
override fun newArray(size: Int): Array<Geofence?> = arrayOfNulls(size)
}
} }
} }

@ -3,7 +3,6 @@ package org.tasks.data
import android.content.Context import android.content.Context
import android.location.Location import android.location.Location
import android.net.Uri import android.net.Uri
import android.os.Parcel
import android.os.Parcelable import android.os.Parcelable
import androidx.room.ColumnInfo import androidx.room.ColumnInfo
import androidx.room.Entity import androidx.room.Entity
@ -13,6 +12,7 @@ import androidx.room.PrimaryKey
import com.todoroo.andlib.data.Table import com.todoroo.andlib.data.Table
import com.todoroo.astrid.api.FilterListItem.NO_ORDER import com.todoroo.astrid.api.FilterListItem.NO_ORDER
import com.todoroo.astrid.helper.UUIDHelper import com.todoroo.astrid.helper.UUIDHelper
import kotlinx.parcelize.Parcelize
import org.tasks.Strings import org.tasks.Strings
import org.tasks.extensions.Context.openUri import org.tasks.extensions.Context.openUri
import org.tasks.location.MapPosition import org.tasks.location.MapPosition
@ -20,6 +20,7 @@ import java.io.Serializable
import java.util.regex.Pattern import java.util.regex.Pattern
import kotlin.math.abs import kotlin.math.abs
@Parcelize
@Entity( @Entity(
tableName = Place.TABLE_NAME, tableName = Place.TABLE_NAME,
indices = [ indices = [
@ -70,22 +71,6 @@ data class Place(
radius = o.radius, radius = o.radius,
) )
@Ignore
constructor(parcel: Parcel): this(
id = parcel.readLong(),
uid = parcel.readString(),
name = parcel.readString(),
address = parcel.readString(),
phone = parcel.readString(),
url = parcel.readString(),
latitude = parcel.readDouble(),
longitude = parcel.readDouble(),
color = parcel.readInt(),
icon = parcel.readInt(),
order = parcel.readInt(),
radius = parcel.readInt(),
)
val displayName: String val displayName: String
get() { get() {
if (!Strings.isNullOrEmpty(name) && !COORDS.matcher(name!!).matches()) { if (!Strings.isNullOrEmpty(name) && !COORDS.matcher(name!!).matches()) {
@ -107,25 +92,6 @@ data class Place(
val mapPosition: MapPosition val mapPosition: MapPosition
get() = MapPosition(latitude, longitude) get() = MapPosition(latitude, longitude)
override fun describeContents() = 0
override fun writeToParcel(out: Parcel, flags: Int) {
with(out) {
writeLong(id)
writeString(uid)
writeString(name)
writeString(address)
writeString(phone)
writeString(url)
writeDouble(latitude)
writeDouble(longitude)
writeInt(color)
writeInt(icon)
writeInt(order)
writeInt(radius)
}
}
companion object { companion object {
const val KEY = "place" const val KEY = "place"
const val TABLE_NAME = "places" const val TABLE_NAME = "places"
@ -133,11 +99,6 @@ data class Place(
@JvmField val UID = TABLE.column("uid") @JvmField val UID = TABLE.column("uid")
@JvmField val NAME = TABLE.column("name") @JvmField val NAME = TABLE.column("name")
@JvmField val ADDRESS = TABLE.column("address") @JvmField val ADDRESS = TABLE.column("address")
@JvmField val CREATOR: Parcelable.Creator<Place> = object : Parcelable.Creator<Place> {
override fun createFromParcel(source: Parcel): Place = Place(source)
override fun newArray(size: Int): Array<Place?> = arrayOfNulls(size)
}
private val pattern = Pattern.compile("(\\d+):(\\d+):(\\d+\\.\\d+)") private val pattern = Pattern.compile("(\\d+):(\\d+):(\\d+\\.\\d+)")
private val COORDS = Pattern.compile("^\\d+°\\d+'\\d+\\.\\d+\"[NS] \\d+°\\d+'\\d+\\.\\d+\"[EW]$") private val COORDS = Pattern.compile("^\\d+°\\d+'\\d+\\.\\d+\"[NS] \\d+°\\d+'\\d+\\.\\d+\"[EW]$")
private fun formatCoordinate(coordinates: Double, latitude: Boolean): String { private fun formatCoordinate(coordinates: Double, latitude: Boolean): String {

@ -1,13 +1,13 @@
package org.tasks.data package org.tasks.data
import android.os.Parcel
import android.os.Parcelable import android.os.Parcelable
import androidx.room.ColumnInfo import androidx.room.ColumnInfo
import androidx.room.Entity import androidx.room.Entity
import androidx.room.Ignore
import androidx.room.PrimaryKey import androidx.room.PrimaryKey
import com.todoroo.astrid.helper.UUIDHelper import com.todoroo.astrid.helper.UUIDHelper
import kotlinx.parcelize.Parcelize
@Parcelize
@Entity(tableName = "attachment_file") @Entity(tableName = "attachment_file")
data class TaskAttachment( data class TaskAttachment(
@PrimaryKey(autoGenerate = true) @PrimaryKey(autoGenerate = true)
@ -21,30 +21,8 @@ data class TaskAttachment(
@ColumnInfo(name = "uri") @ColumnInfo(name = "uri")
val uri: String, val uri: String,
) : Parcelable { ) : Parcelable {
@Ignore
constructor(parcel: Parcel) : this(
remoteId = parcel.readString()!!,
name = parcel.readString()!!,
uri = parcel.readString()!!,
)
override fun describeContents() = 0
override fun writeToParcel(parcel: Parcel, flags: Int) {
parcel.writeString(remoteId)
parcel.writeString(name)
parcel.writeString(uri)
}
companion object { companion object {
const val KEY = "attachment" const val KEY = "attachment"
const val FILES_DIRECTORY_DEFAULT = "attachments" const val FILES_DIRECTORY_DEFAULT = "attachments"
@JvmField
val CREATOR = object : Parcelable.Creator<TaskAttachment> {
override fun createFromParcel(parcel: Parcel) = TaskAttachment(parcel)
override fun newArray(size: Int): Array<TaskAttachment?> = arrayOfNulls(size)
}
} }
} }

@ -181,6 +181,10 @@
+| | \--- androidx.lifecycle:lifecycle-viewmodel-savedstate:2.6.1 (c) +| | \--- androidx.lifecycle:lifecycle-viewmodel-savedstate:2.6.1 (c)
+| +--- androidx.databinding:databinding-runtime:8.0.0 (*) +| +--- androidx.databinding:databinding-runtime:8.0.0 (*)
+| \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.7.10 -> 1.8.20 (*) +| \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.7.10 -> 1.8.20 (*)
++--- org.jetbrains.kotlin:kotlin-parcelize-runtime:1.8.20
+| +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.20 (*)
+| \--- org.jetbrains.kotlin:kotlin-android-extensions-runtime:1.8.20
+| \--- org.jetbrains.kotlin:kotlin-stdlib:1.8.20 (*)
++--- com.github.bitfireAT:dav4jvm:2.2.1 ++--- com.github.bitfireAT:dav4jvm:2.2.1
+| +--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.7.20 -> 1.8.20 (*) +| +--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.7.20 -> 1.8.20 (*)
+| +--- org.apache.commons:commons-lang3:3.8.1 -> 3.12.0 +| +--- org.apache.commons:commons-lang3:3.8.1 -> 3.12.0

@ -465,6 +465,10 @@
+| +--- com.google.android.gms:play-services-base:17.0.0 -> 18.0.1 (*) +| +--- com.google.android.gms:play-services-base:17.0.0 -> 18.0.1 (*)
+| +--- com.google.android.gms:play-services-basement:17.0.0 -> 18.1.0 (*) +| +--- com.google.android.gms:play-services-basement:17.0.0 -> 18.1.0 (*)
+| \--- com.google.android.gms:play-services-tasks:17.0.0 -> 18.0.2 (*) +| \--- com.google.android.gms:play-services-tasks:17.0.0 -> 18.0.2 (*)
++--- org.jetbrains.kotlin:kotlin-parcelize-runtime:1.8.20
+| +--- org.jetbrains.kotlin:kotlin-stdlib:1.8.20 (*)
+| \--- org.jetbrains.kotlin:kotlin-android-extensions-runtime:1.8.20
+| \--- org.jetbrains.kotlin:kotlin-stdlib:1.8.20 (*)
++--- com.github.bitfireAT:dav4jvm:2.2.1 ++--- com.github.bitfireAT:dav4jvm:2.2.1
+| +--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.7.20 -> 1.8.20 (*) +| +--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.7.20 -> 1.8.20 (*)
+| +--- org.apache.commons:commons-lang3:3.8.1 -> 3.12.0 +| +--- org.apache.commons:commons-lang3:3.8.1 -> 3.12.0

Loading…
Cancel
Save