After many searches and investigations into our codes, I found that SafeArgs class exists in a sealed-class file.
Considering to this point that we can't allocate the parceled annotation to the sealed classes, we've decided to move our class outside of that sealed .kt file.
Although, I found the main reason for that runtime crash was this cause.
Also, I've provided the wrong and correct cases below, We hope this will be helpful to others:
We've moved the UserFavorite and its subclass, outside of the Response.kt file,
sealed class Response {
.
.
@Parcelize
data class UserFavorite(
@SerializedName("title") val title: String,
@SerializedName("itemType") val itemType: String,
@SerializedName("emptyIcon") val emptyIcon: String,
@SerializedName("_texts") val texts: UserFavoriteTexts
) : Response(), Parcelable
@Parcelize
data class UserFavoriteTexts(
@SerializedName("hintMessage") val hintMessage: String,
@SerializedName("add") val add: String,
@SerializedName("remove") val remove: String,
@SerializedName("edit") val edit: String
): Parcelable
.
.
}
into an independent file for that: UserFavorite.kt
@Parcelize
data class UserFavorite(
@SerializedName("title") val title: String,
@SerializedName("itemType") val itemType: String,
@SerializedName("emptyIcon") val emptyIcon: String,
@SerializedName("_texts") val texts: UserFavoriteTexts
) : Response(), Parcelable
@Parcelize
data class UserFavoriteTexts(
@SerializedName("hintMessage") val hintMessage: String,
@SerializedName("add") val add: String,
@SerializedName("remove") val remove: String,
@SerializedName("edit") val edit: String
): Parcelable
and, Respons.kt
sealed class Response {
.
.
.
.
}