From 2848bd4f537855395021f82b81932fe216e4d20d Mon Sep 17 00:00:00 2001 From: Alex Baker Date: Thu, 13 Apr 2023 23:42:39 -0500 Subject: [PATCH] Add kotlin-parcelize --- app/build.gradle.kts | 1 + .../java/org/tasks/data/CaldavCalendar.kt | 42 +----------------- app/src/main/java/org/tasks/data/Geofence.kt | 29 +------------ app/src/main/java/org/tasks/data/Place.kt | 43 +------------------ .../java/org/tasks/data/TaskAttachment.kt | 26 +---------- deps_fdroid.txt | 4 ++ deps_googleplay.txt | 4 ++ 7 files changed, 17 insertions(+), 132 deletions(-) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index e846a120a..26b286656 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -11,6 +11,7 @@ plugins { kotlin("kapt") id("dagger.hilt.android.plugin") id("com.google.android.gms.oss-licenses-plugin") + id("kotlin-parcelize") } repositories { diff --git a/app/src/main/java/org/tasks/data/CaldavCalendar.kt b/app/src/main/java/org/tasks/data/CaldavCalendar.kt index 3763f314a..d6d56b306 100644 --- a/app/src/main/java/org/tasks/data/CaldavCalendar.kt +++ b/app/src/main/java/org/tasks/data/CaldavCalendar.kt @@ -1,16 +1,16 @@ package org.tasks.data -import android.os.Parcel import android.os.Parcelable import androidx.room.ColumnInfo import androidx.room.Entity -import androidx.room.Ignore import androidx.room.PrimaryKey import com.todoroo.andlib.data.Table import com.todoroo.astrid.api.FilterListItem.NO_ORDER import com.todoroo.astrid.data.Task +import kotlinx.parcelize.Parcelize import org.tasks.themes.CustomIcons.LIST +@Parcelize @Entity(tableName = "caldav_lists") data class CaldavCalendar( @PrimaryKey(autoGenerate = true) @@ -27,21 +27,6 @@ data class CaldavCalendar( @ColumnInfo(name = "cdl_access") var access: Int = ACCESS_OWNER, @ColumnInfo(name = "cdl_last_sync") val lastSync: Long = 0, ) : 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") fun getIcon(): Int? { return (if (icon == null) LIST else icon!!) @@ -51,24 +36,6 @@ data class CaldavCalendar( 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 { const val ACCESS_UNKNOWN = -1 const val ACCESS_OWNER = 0 @@ -85,10 +52,5 @@ data class CaldavCalendar( val ACCOUNT = TABLE.column("cdl_account") val UUID = TABLE.column("cdl_uuid") val NAME = TABLE.column("cdl_name") - @JvmField val CREATOR: Parcelable.Creator = object : Parcelable.Creator { - override fun createFromParcel(source: Parcel): CaldavCalendar = CaldavCalendar(source) - - override fun newArray(size: Int): Array = arrayOfNulls(size) - } } } \ No newline at end of file diff --git a/app/src/main/java/org/tasks/data/Geofence.kt b/app/src/main/java/org/tasks/data/Geofence.kt index d1e7c338a..42e4bdb16 100644 --- a/app/src/main/java/org/tasks/data/Geofence.kt +++ b/app/src/main/java/org/tasks/data/Geofence.kt @@ -1,6 +1,5 @@ package org.tasks.data -import android.os.Parcel import android.os.Parcelable import androidx.room.ColumnInfo import androidx.room.Entity @@ -9,10 +8,12 @@ import androidx.room.Ignore import androidx.room.PrimaryKey import com.todoroo.andlib.data.Table import com.todoroo.astrid.data.Task +import kotlinx.parcelize.Parcelize import org.tasks.R import org.tasks.preferences.Preferences import java.io.Serializable +@Parcelize @Entity( tableName = Geofence.TABLE_NAME, foreignKeys = [ @@ -83,36 +84,10 @@ data class Geofence( 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 { const val TABLE_NAME = "geofences" @JvmField val TABLE = Table(TABLE_NAME) @JvmField val TASK = TABLE.column("task") @JvmField val PLACE = TABLE.column("place") - @JvmField val CREATOR: Parcelable.Creator = object : Parcelable.Creator { - override fun createFromParcel(source: Parcel): Geofence = Geofence(source) - - override fun newArray(size: Int): Array = arrayOfNulls(size) - } } } \ No newline at end of file diff --git a/app/src/main/java/org/tasks/data/Place.kt b/app/src/main/java/org/tasks/data/Place.kt index 2bd15c9d9..81be6f452 100644 --- a/app/src/main/java/org/tasks/data/Place.kt +++ b/app/src/main/java/org/tasks/data/Place.kt @@ -3,7 +3,6 @@ package org.tasks.data import android.content.Context import android.location.Location import android.net.Uri -import android.os.Parcel import android.os.Parcelable import androidx.room.ColumnInfo import androidx.room.Entity @@ -13,6 +12,7 @@ import androidx.room.PrimaryKey import com.todoroo.andlib.data.Table import com.todoroo.astrid.api.FilterListItem.NO_ORDER import com.todoroo.astrid.helper.UUIDHelper +import kotlinx.parcelize.Parcelize import org.tasks.Strings import org.tasks.extensions.Context.openUri import org.tasks.location.MapPosition @@ -20,6 +20,7 @@ import java.io.Serializable import java.util.regex.Pattern import kotlin.math.abs +@Parcelize @Entity( tableName = Place.TABLE_NAME, indices = [ @@ -70,22 +71,6 @@ data class Place( 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 get() { if (!Strings.isNullOrEmpty(name) && !COORDS.matcher(name!!).matches()) { @@ -107,25 +92,6 @@ data class Place( val mapPosition: MapPosition 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 { const val KEY = "place" const val TABLE_NAME = "places" @@ -133,11 +99,6 @@ data class Place( @JvmField val UID = TABLE.column("uid") @JvmField val NAME = TABLE.column("name") @JvmField val ADDRESS = TABLE.column("address") - @JvmField val CREATOR: Parcelable.Creator = object : Parcelable.Creator { - override fun createFromParcel(source: Parcel): Place = Place(source) - - override fun newArray(size: Int): Array = arrayOfNulls(size) - } 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 fun formatCoordinate(coordinates: Double, latitude: Boolean): String { diff --git a/app/src/main/java/org/tasks/data/TaskAttachment.kt b/app/src/main/java/org/tasks/data/TaskAttachment.kt index b03d05645..074c4b165 100644 --- a/app/src/main/java/org/tasks/data/TaskAttachment.kt +++ b/app/src/main/java/org/tasks/data/TaskAttachment.kt @@ -1,13 +1,13 @@ package org.tasks.data -import android.os.Parcel import android.os.Parcelable import androidx.room.ColumnInfo import androidx.room.Entity -import androidx.room.Ignore import androidx.room.PrimaryKey import com.todoroo.astrid.helper.UUIDHelper +import kotlinx.parcelize.Parcelize +@Parcelize @Entity(tableName = "attachment_file") data class TaskAttachment( @PrimaryKey(autoGenerate = true) @@ -21,30 +21,8 @@ data class TaskAttachment( @ColumnInfo(name = "uri") val uri: String, ) : 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 { const val KEY = "attachment" const val FILES_DIRECTORY_DEFAULT = "attachments" - - @JvmField - val CREATOR = object : Parcelable.Creator { - override fun createFromParcel(parcel: Parcel) = TaskAttachment(parcel) - - override fun newArray(size: Int): Array = arrayOfNulls(size) - } } } \ No newline at end of file diff --git a/deps_fdroid.txt b/deps_fdroid.txt index 6fb7294cf..c183af4d7 100644 --- a/deps_fdroid.txt +++ b/deps_fdroid.txt @@ -181,6 +181,10 @@ +| | \--- androidx.lifecycle:lifecycle-viewmodel-savedstate:2.6.1 (c) +| +--- androidx.databinding:databinding-runtime:8.0.0 (*) +| \--- 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 +| +--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.7.20 -> 1.8.20 (*) +| +--- org.apache.commons:commons-lang3:3.8.1 -> 3.12.0 diff --git a/deps_googleplay.txt b/deps_googleplay.txt index 37baf7904..c0ff348a6 100644 --- a/deps_googleplay.txt +++ b/deps_googleplay.txt @@ -465,6 +465,10 @@ +| +--- 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-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 +| +--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.7.20 -> 1.8.20 (*) +| +--- org.apache.commons:commons-lang3:3.8.1 -> 3.12.0