Fix crash in Android 13 (#5588)

This commit is contained in:
David Perez 2025-07-25 13:42:38 -05:00 committed by GitHub
parent 91f1180be7
commit 517198b265
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -1,9 +1,9 @@
package com.bitwarden.ui.platform.util package com.bitwarden.ui.platform.util
import android.os.Build
import android.os.Parcel import android.os.Parcel
import android.os.Parcelable import android.os.Parcelable
import android.util.Base64 import android.util.Base64
import androidx.core.os.ParcelCompat
import com.bitwarden.annotation.OmitFromCoverage import com.bitwarden.annotation.OmitFromCoverage
import kotlinx.serialization.ExperimentalSerializationApi import kotlinx.serialization.ExperimentalSerializationApi
import kotlinx.serialization.InternalSerializationApi import kotlinx.serialization.InternalSerializationApi
@ -105,7 +105,7 @@ open class ParcelableRouteSerializer<T : Parcelable>(
} }
} }
encodedString encodedString
?.toParcelable<T>() ?.toParcelable()
?: throw IllegalStateException("Invalid decoding for ${kClass.qualifiedName}.") ?: throw IllegalStateException("Invalid decoding for ${kClass.qualifiedName}.")
} }
@ -137,15 +137,11 @@ open class ParcelableRouteSerializer<T : Parcelable>(
} }
val value = try { val value = try {
@Suppress("UNCHECKED_CAST") @Suppress("UNCHECKED_CAST")
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) { ParcelCompat.readParcelable(
parcel.readParcelable( parcel,
ParcelableRouteSerializer::class.java.classLoader, ParcelableRouteSerializer::class.java.classLoader,
kClass.java, kClass.java,
) ) as T?
} else {
@Suppress("DEPRECATION")
parcel.readParcelable(ParcelableRouteSerializer::class.java.classLoader)
} as T?
} catch (_: IllegalArgumentException) { } catch (_: IllegalArgumentException) {
null null
} catch (_: IllegalStateException) { } catch (_: IllegalStateException) {