Bimba.git

commit f7001336c32940112f2229735bd2b5135826b8ba

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 {