Author: Adam Evyčędo <git@apiote.xyz>
fix parceilising Query
app/src/main/java/xyz/apiote/bimba/czwek/search/Query.kt | 79 ---------
diff --git a/app/src/main/java/xyz/apiote/bimba/czwek/search/Query.kt b/app/src/main/java/xyz/apiote/bimba/czwek/search/Query.kt index 5396231c9c4049f16e1487129092e308580baf2a..a6bd5c4d80c1ce968668bceebd1018783204dd7e 100644 --- a/app/src/main/java/xyz/apiote/bimba/czwek/search/Query.kt +++ b/app/src/main/java/xyz/apiote/bimba/czwek/search/Query.kt @@ -6,89 +6,32 @@ package xyz.apiote.bimba.czwek.search import android.content.Context import android.location.Location -import android.os.Build -import android.os.Parcel import android.os.Parcelable import android.util.Log import com.google.openlocationcode.OpenLocationCode import kotlinx.parcelize.Parcelize import xyz.apiote.bimba.czwek.repo.Position -class Query : Parcelable { - companion object { - @Suppress("unused") - @JvmField - val CREATOR = object : Parcelable.Creator<Query> { - @Suppress("DEPRECATION") - override fun createFromParcel(source: Parcel?): Query? { - if (source == null) { - return null - } else { - val mode = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) { - source.readParcelable(Mode::class.java.classLoader, Mode::class.java)!! - } else { - source.readParcelable(Mode::class.java.classLoader)!! - } - val raw = source.readString()!! - val position = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) { - source.readParcelable(Position::class.java.classLoader, Position::class.java)!! - } else { - source.readParcelable(Position::class.java.classLoader)!! - } - return Query(mode, raw, position) - } - } - - override fun newArray(size: Int): Array<out Query?>? { - return arrayOfNulls(size) - } - - } - } - +@Parcelize +class Query(var raw: String, var mode: Mode, var position: Position?) : Parcelable { @Parcelize enum class Mode : Parcelable { LOCATION, POSITION, NAME, LOCATION_PLUS_CODE, UNKNOWN } - constructor(raw: String) { - mode = Mode.UNKNOWN - this.raw = raw - position = null - } + constructor(raw: String) : this(raw, Mode.UNKNOWN, null) - constructor(raw: String, mode: Mode) { - this.mode = mode - this.raw = raw - position = null - } + constructor(raw: String, mode: Mode) : this(raw, mode, null) - constructor(mode: Mode) { + constructor(mode: Mode) : this("", mode, null) { if (mode != Mode.LOCATION) { throw Exception("Cannot initialise Query from bare Mode other than LOCATION") } - this.mode = mode - raw = "" - position = null } - constructor(position: Position) { - mode = Mode.POSITION - raw = position.toString() - this.position = position - } + constructor(position: Position) : this(position.toString(), Mode.POSITION, position) - private constructor(mode: Mode, raw: String, position: Position?) { - this.mode = mode - this.raw = raw - this.position = position - } - - var mode: Mode - private set - val raw: String - var position: Position? - private set + private constructor(mode: Mode, raw: String, position: Position?) : this(raw, mode, position) fun parse(context: Context) { if (mode != Mode.UNKNOWN) { @@ -159,14 +102,6 @@ } else { val area = OpenLocationCode(code).recover(location.latitude, location.longitude).decode() position = Position(area.centerLatitude, area.centerLongitude) } - } - - override fun describeContents(): Int = 0 - - override fun writeToParcel(dest: Parcel, flags: Int) { - dest.writeParcelable(mode, flags) - dest.writeString(raw) - dest.writeParcelable(position, flags) } override fun toString(): String {