refactor: reduce coupling in Parcelables

This commit is contained in:
andrekir 2023-10-03 17:27:16 -03:00
parent 26195e8d39
commit 2dd0e1f1e2
3 changed files with 36 additions and 15 deletions

View file

@ -2,10 +2,21 @@ package com.geeksville.mesh
import android.os.Parcel
import android.os.Parcelable
import com.geeksville.mesh.util.readParcelableCompat
import kotlinx.parcelize.Parcelize
import kotlinx.serialization.Serializable
/**
* Generic [Parcel.readParcelable] Android 13 compatibility extension.
*/
private inline fun <reified T : Parcelable> Parcel.readParcelableCompat(loader: ClassLoader?): T? {
return if (android.os.Build.VERSION.SDK_INT < android.os.Build.VERSION_CODES.TIRAMISU) {
@Suppress("DEPRECATION")
readParcelable(loader)
} else {
readParcelable(loader, T::class.java)
}
}
@Parcelize
enum class MessageStatus : Parcelable {
UNKNOWN, // Not set for this message