SavedStateDecoderKt

Added in 1.3.0-alpha10

public final class SavedStateDecoderKt


Summary

Public methods

static final @NonNull T
<T extends Object> decodeFromSavedState(
    @NonNull SavedState savedState,
    @NonNull SavedStateConfiguration configuration
)

Decode a serializable object from a SavedState with the default deserializer.

static final @NonNull T
<T extends Object> decodeFromSavedState(
    @NonNull <Error class: unknown class><@NonNull T> deserializer,
    @NonNull SavedState savedState,
    @NonNull SavedStateConfiguration configuration
)

Decodes and deserializes the given SavedState to the value of type T using the given deserializer.

Public methods

decodeFromSavedState

public static final @NonNull T <T extends Object> decodeFromSavedState(
    @NonNull SavedState savedState,
    @NonNull SavedStateConfiguration configuration
)

Decode a serializable object from a SavedState with the default deserializer.

import androidx.savedstate.serialization.decodeFromSavedState

@Serializable data class User(val id: Int, val name: String)
val user = decodeFromSavedState<User>(userSavedState)
Parameters
@NonNull SavedState savedState

The SavedState to decode from.

@NonNull SavedStateConfiguration configuration

The SavedStateConfiguration to use.

Returns
@NonNull T

The decoded object.

Throws
SerializationException

in case of any decoding-specific error.

kotlin.IllegalArgumentException

if the decoded input is not a valid instance of T.

decodeFromSavedState

public static final @NonNull T <T extends Object> decodeFromSavedState(
    @NonNull <Error class: unknown class><@NonNull T> deserializer,
    @NonNull SavedState savedState,
    @NonNull SavedStateConfiguration configuration
)

Decodes and deserializes the given SavedState to the value of type T using the given deserializer.

import androidx.savedstate.serialization.SavedStateConfiguration
import androidx.savedstate.serialization.decodeFromSavedState
import androidx.savedstate.serialization.encodeToSavedState

val config = SavedStateConfiguration {
    serializersModule = SerializersModule {
        polymorphic(Any::class) { subclass(String::class) }
    }
}
val value = "foo"
val encoded =
    encodeToSavedState(
        serializer = PolymorphicSerializer(Any::class),
        value = value,
        configuration = config
    )
val decoded =
    decodeFromSavedState(
        deserializer = PolymorphicSerializer(Any::class),
        savedState = encoded,
        configuration = config
    )
Parameters
@NonNull <Error class: unknown class><@NonNull T> deserializer

The deserializer to use.

@NonNull SavedState savedState

The SavedState to decode from.

@NonNull SavedStateConfiguration configuration

The SavedStateConfiguration to use.

Returns
@NonNull T

The deserialized object.

Throws
SerializationException

in case of any decoding-specific error.

kotlin.IllegalArgumentException

if the decoded input is not a valid instance of T.