Using the parcelize plugin with K2 doesn't allow a...
# k2-adopters
e
Using the parcelize plugin with K2 doesn't allow a parceler for a nullable type (🧵 )
Copy code
import android.os.Parcel
import kotlinx.parcelize.Parceler
import kotlinx.serialization.json.Json
import kotlinx.serialization.json.JsonArray
import kotlinx.serialization.json.JsonObject

object JsonObjectParceler : Parceler<JsonObject?> {
  @Suppress("EXPERIMENTAL_API_USAGE")
  override fun create(parcel: Parcel) =
    parcel.readString()?.let(Json::parseObject)

  override fun JsonObject?.write(parcel: Parcel, flags: Int) {
    parcel.writeString(this?.toString())
  }
}

object JsonArrayParceler : Parceler<JsonArray?> {
  @Suppress("EXPERIMENTAL_API_USAGE")
  override fun create(parcel: Parcel) =
    parcel.readString()?.let(Json::parseArray)

  override fun JsonArray?.write(parcel: Parcel, flags: Int) {
    parcel.writeString(this?.toString())
  }
}
Usage:
Copy code
data class Venue(override val json: @WriteWith<JsonObjectParceler> JsonObject) : JsonObjectWrapper, Parcelable
Error:
Copy code
Parceler type JsonObjectParceler is incompatible with kotlinx/serialization/json/JsonObject
i
Please file an issue to the Android team tracker - https://issuetracker.google.com/issues?q=componentid:192633%2B
👍 1
e