Enable explicit API for all savedstate projects
- Remove no-op kotlin { explicitApi = ExplicitApiMode.Strict }
- Remove legacyDisableKotlinStrictApiMode = true
- Fix any missing declarations
Test: ./gradlew -p savedstate build
Change-Id: I162de786a5a3e4f241dcd88e27bab6a934c7bc53
diff --git a/savedstate/savedstate-compose/build.gradle b/savedstate/savedstate-compose/build.gradle
index fcb5297..729ff50 100644
--- a/savedstate/savedstate-compose/build.gradle
+++ b/savedstate/savedstate-compose/build.gradle
@@ -22,10 +22,6 @@
jvmStubs()
linuxX64Stubs()
- kotlin {
- explicitApi = ExplicitApiMode.Strict
- }
-
defaultPlatform(PlatformIdentifier.ANDROID)
sourceSets {
@@ -99,7 +95,6 @@
samples(project(":savedstate:savedstate-compose"))
inceptionYear = "2018"
description = "Compose integration with Saved State"
- legacyDisableKotlinStrictApiMode = true
metalavaK2UastEnabled = false
kotlinTarget = KotlinTarget.KOTLIN_1_9
}
diff --git a/savedstate/savedstate-compose/src/androidMain/kotlin/androidx/savedstate/compose/LocalSavedStateRegistryOwner.android.kt b/savedstate/savedstate-compose/src/androidMain/kotlin/androidx/savedstate/compose/LocalSavedStateRegistryOwner.android.kt
index 547f05e..fc94ea0 100644
--- a/savedstate/savedstate-compose/src/androidMain/kotlin/androidx/savedstate/compose/LocalSavedStateRegistryOwner.android.kt
+++ b/savedstate/savedstate-compose/src/androidMain/kotlin/androidx/savedstate/compose/LocalSavedStateRegistryOwner.android.kt
@@ -36,30 +36,32 @@
* Please note that backward compatibility reflection may be removed once Compose >= 1.8 is stable.
* A Gradle dependency constraint will be put in place to ensure smooth migration for clients.
*/
-actual val LocalSavedStateRegistryOwner: ProvidableCompositionLocal<SavedStateRegistryOwner> = run {
- val compositionLocalFromComposeUi = runCatching {
- // Use the CompositionLocal class to find the `classLoader` from the `Application`.
- val classLoader = SavedStateRegistryOwner::class.java.classLoader!!
- // Top-level class name from Compose UI 1.6.* that holds the old CompositionLocal.
- val className = "androidx.compose.ui.platform.AndroidCompositionLocals_androidKt"
- // The Java getter used when accessing the CompositionLocal property in Kotlin.
- val methodName = "getLocalSavedStateRegistryOwner"
+public actual val LocalSavedStateRegistryOwner:
+ ProvidableCompositionLocal<SavedStateRegistryOwner> =
+ run {
+ val compositionLocalFromComposeUi = runCatching {
+ // Use the CompositionLocal class to find the `classLoader` from the `Application`.
+ val classLoader = SavedStateRegistryOwner::class.java.classLoader!!
+ // Top-level class name from Compose UI 1.6.* that holds the old CompositionLocal.
+ val className = "androidx.compose.ui.platform.AndroidCompositionLocals_androidKt"
+ // The Java getter used when accessing the CompositionLocal property in Kotlin.
+ val methodName = "getLocalSavedStateRegistryOwner"
- val methodRef = classLoader.loadClass(className).getMethod(methodName)
- if (methodRef.annotations.none { it is Deprecated }) {
- // If the method IS NOT deprecated, we are running with Compose 1.6.*.
- // We use reflection to access the older CompositionLocal from `compose-ui`.
- @Suppress("UNCHECKED_CAST", "BanUncheckedReflection")
- methodRef.invoke(null) as? ProvidableCompositionLocal<SavedStateRegistryOwner>
- } else {
- // If the method IS deprecated, we are running with Compose 1.7.*.
- // The new CompositionLocal is available, no reflection needed.
- null
+ val methodRef = classLoader.loadClass(className).getMethod(methodName)
+ if (methodRef.annotations.none { it is Deprecated }) {
+ // If the method IS NOT deprecated, we are running with Compose 1.6.*.
+ // We use reflection to access the older CompositionLocal from `compose-ui`.
+ @Suppress("UNCHECKED_CAST", "BanUncheckedReflection")
+ methodRef.invoke(null) as? ProvidableCompositionLocal<SavedStateRegistryOwner>
+ } else {
+ // If the method IS deprecated, we are running with Compose 1.7.*.
+ // The new CompositionLocal is available, no reflection needed.
+ null
+ }
}
+
+ return@run compositionLocalFromComposeUi.getOrNull()
+ ?: staticCompositionLocalOf<SavedStateRegistryOwner> {
+ error("CompositionLocal LocalSavedStateRegistryOwner not present")
+ }
}
-
- return@run compositionLocalFromComposeUi.getOrNull()
- ?: staticCompositionLocalOf<SavedStateRegistryOwner> {
- error("CompositionLocal LocalSavedStateRegistryOwner not present")
- }
-}
diff --git a/savedstate/savedstate/build.gradle b/savedstate/savedstate/build.gradle
index 91ce8e0..e74d23c 100644
--- a/savedstate/savedstate/build.gradle
+++ b/savedstate/savedstate/build.gradle
@@ -25,10 +25,6 @@
linux()
mac()
- kotlin {
- explicitApi = ExplicitApiMode.Strict
- }
-
defaultPlatform(PlatformIdentifier.ANDROID)
sourceSets {
@@ -174,7 +170,6 @@
samples(project(":savedstate:savedstate-samples"))
inceptionYear = "2018"
description = "Android Lifecycle Saved State"
- legacyDisableKotlinStrictApiMode = true
metalavaK2UastEnabled = false
kotlinTarget = KotlinTarget.KOTLIN_1_9
}
diff --git a/savedstate/savedstate/src/androidMain/kotlin/androidx/savedstate/SavedStateReader.android.kt b/savedstate/savedstate/src/androidMain/kotlin/androidx/savedstate/SavedStateReader.android.kt
index f12b21c..7e7452f 100644
--- a/savedstate/savedstate/src/androidMain/kotlin/androidx/savedstate/SavedStateReader.android.kt
+++ b/savedstate/savedstate/src/androidMain/kotlin/androidx/savedstate/SavedStateReader.android.kt
@@ -34,7 +34,7 @@
@Suppress("ValueClassDefinition")
@JvmInline
-actual value class SavedStateReader
+public actual value class SavedStateReader
@PublishedApi
internal actual constructor(
@PublishedApi internal actual val source: SavedState,
@@ -47,7 +47,7 @@
* @return The value associated with the [key].
* @throws IllegalStateException If the key is not found.
*/
- inline fun getBinder(key: String): IBinder {
+ public inline fun getBinder(key: String): IBinder {
if (key !in this) keyNotFoundError(key)
return source.getBinder(key) ?: valueNotFoundError(key)
}
@@ -62,32 +62,32 @@
* @return The value associated with the [key], or the result of [defaultValue] if the key is
* not found or the associated value has the wrong type.
*/
- inline fun getBinderOrElse(key: String, defaultValue: () -> IBinder): IBinder {
+ public inline fun getBinderOrElse(key: String, defaultValue: () -> IBinder): IBinder {
if (key !in this) defaultValue()
return source.getBinder(key) ?: defaultValue()
}
- actual inline fun getBoolean(key: String): Boolean {
+ public actual inline fun getBoolean(key: String): Boolean {
if (key !in this) keyNotFoundError(key)
return source.getBoolean(key, DEFAULT_BOOLEAN)
}
- actual inline fun getBooleanOrElse(key: String, defaultValue: () -> Boolean): Boolean {
+ public actual inline fun getBooleanOrElse(key: String, defaultValue: () -> Boolean): Boolean {
if (key !in this) defaultValue()
return source.getBoolean(key, defaultValue())
}
- actual inline fun getChar(key: String): Char {
+ public actual inline fun getChar(key: String): Char {
if (key !in this) keyNotFoundError(key)
return source.getChar(key, DEFAULT_CHAR)
}
- actual inline fun getCharSequence(key: String): CharSequence {
+ public actual inline fun getCharSequence(key: String): CharSequence {
if (key !in this) keyNotFoundError(key)
return source.getCharSequence(key) ?: valueNotFoundError(key)
}
- actual inline fun getCharSequenceOrElse(
+ public actual inline fun getCharSequenceOrElse(
key: String,
defaultValue: () -> CharSequence
): CharSequence {
@@ -95,47 +95,47 @@
return source.getCharSequence(key) ?: defaultValue()
}
- actual inline fun getCharOrElse(key: String, defaultValue: () -> Char): Char {
+ public actual inline fun getCharOrElse(key: String, defaultValue: () -> Char): Char {
if (key !in this) defaultValue()
return source.getChar(key, defaultValue())
}
- actual inline fun getDouble(key: String): Double {
+ public actual inline fun getDouble(key: String): Double {
if (key !in this) keyNotFoundError(key)
return source.getDouble(key, DEFAULT_DOUBLE)
}
- actual inline fun getDoubleOrElse(key: String, defaultValue: () -> Double): Double {
+ public actual inline fun getDoubleOrElse(key: String, defaultValue: () -> Double): Double {
if (key !in this) defaultValue()
return source.getDouble(key, defaultValue())
}
- actual inline fun getFloat(key: String): Float {
+ public actual inline fun getFloat(key: String): Float {
if (key !in this) keyNotFoundError(key)
return source.getFloat(key, DEFAULT_FLOAT)
}
- actual inline fun getFloatOrElse(key: String, defaultValue: () -> Float): Float {
+ public actual inline fun getFloatOrElse(key: String, defaultValue: () -> Float): Float {
if (key !in this) defaultValue()
return source.getFloat(key, defaultValue())
}
- actual inline fun getInt(key: String): Int {
+ public actual inline fun getInt(key: String): Int {
if (key !in this) keyNotFoundError(key)
return source.getInt(key, DEFAULT_INT)
}
- actual inline fun getIntOrElse(key: String, defaultValue: () -> Int): Int {
+ public actual inline fun getIntOrElse(key: String, defaultValue: () -> Int): Int {
if (key !in this) defaultValue()
return source.getInt(key, defaultValue())
}
- actual inline fun getLong(key: String): Long {
+ public actual inline fun getLong(key: String): Long {
if (key !in this) keyNotFoundError(key)
return source.getLong(key, DEFAULT_LONG)
}
- actual inline fun getLongOrElse(key: String, defaultValue: () -> Long): Long {
+ public actual inline fun getLongOrElse(key: String, defaultValue: () -> Long): Long {
if (key !in this) defaultValue()
return source.getLong(key, defaultValue())
}
@@ -147,7 +147,7 @@
* @return The value associated with the [key].
* @throws IllegalStateException If the key is not found.
*/
- inline fun <reified T : Parcelable> getParcelable(key: String): T {
+ public inline fun <reified T : Parcelable> getParcelable(key: String): T {
if (key !in this) keyNotFoundError(key)
return getParcelable(source, key, T::class.java) ?: valueNotFoundError(key)
}
@@ -162,7 +162,10 @@
* @return The value associated with the [key], or the result of [defaultValue] if the key is
* not found or the associated value has the wrong type.
*/
- inline fun <reified T : Parcelable> getParcelableOrElse(key: String, defaultValue: () -> T): T {
+ public inline fun <reified T : Parcelable> getParcelableOrElse(
+ key: String,
+ defaultValue: () -> T
+ ): T {
if (key !in this) defaultValue()
return getParcelable(source, key, T::class.java) ?: defaultValue()
}
@@ -174,7 +177,7 @@
* @return The value associated with the [key].
* @throws IllegalStateException If the key is not found.
*/
- inline fun <reified T : Serializable> getJavaSerializable(key: String): T {
+ public inline fun <reified T : Serializable> getJavaSerializable(key: String): T {
if (key !in this) keyNotFoundError(key)
return getSerializable(source, key, T::class.java) ?: valueNotFoundError(key)
}
@@ -189,7 +192,7 @@
* @return The value associated with the [key], or the result of [defaultValue] if the key is
* not found or the associated value has the wrong type.
*/
- inline fun <reified T : Serializable> getJavaSerializableOrElse(
+ public inline fun <reified T : Serializable> getJavaSerializableOrElse(
key: String,
defaultValue: () -> T
): T {
@@ -204,7 +207,7 @@
* @return The value associated with the [key].
* @throws IllegalStateException If the key is not found.
*/
- inline fun getSize(key: String): Size {
+ public inline fun getSize(key: String): Size {
if (key !in this) keyNotFoundError(key)
return source.getSize(key) ?: valueNotFoundError(key)
}
@@ -219,7 +222,7 @@
* @return The value associated with the [key], or the result of [defaultValue] if the key is
* not found or the associated value has the wrong type.
*/
- inline fun getSizeOrElse(key: String, defaultValue: () -> Size): Size {
+ public inline fun getSizeOrElse(key: String, defaultValue: () -> Size): Size {
if (key !in this) defaultValue()
return source.getSize(key) ?: defaultValue()
}
@@ -231,7 +234,7 @@
* @return The value associated with the [key].
* @throws IllegalStateException If the key is not found.
*/
- inline fun getSizeF(key: String): SizeF {
+ public inline fun getSizeF(key: String): SizeF {
if (key !in this) keyNotFoundError(key)
return source.getSizeF(key) ?: valueNotFoundError(key)
}
@@ -246,37 +249,40 @@
* @return The value associated with the [key], or the result of [defaultValue] if the key is
* not found or the associated value has the wrong type.
*/
- inline fun getSizeFOrElse(key: String, defaultValue: () -> SizeF): SizeF {
+ public inline fun getSizeFOrElse(key: String, defaultValue: () -> SizeF): SizeF {
if (key !in this) defaultValue()
return source.getSizeF(key) ?: defaultValue()
}
- actual inline fun getString(key: String): String {
+ public actual inline fun getString(key: String): String {
if (key !in this) keyNotFoundError(key)
return source.getString(key) ?: valueNotFoundError(key)
}
- actual inline fun getStringOrElse(key: String, defaultValue: () -> String): String {
+ public actual inline fun getStringOrElse(key: String, defaultValue: () -> String): String {
if (key !in this) defaultValue()
return source.getString(key, defaultValue())
}
- actual inline fun getIntList(key: String): List<Int> {
+ public actual inline fun getIntList(key: String): List<Int> {
if (key !in this) keyNotFoundError(key)
return source.getIntegerArrayList(key) ?: valueNotFoundError(key)
}
- actual inline fun getIntListOrElse(key: String, defaultValue: () -> List<Int>): List<Int> {
+ public actual inline fun getIntListOrElse(
+ key: String,
+ defaultValue: () -> List<Int>
+ ): List<Int> {
if (key !in this) defaultValue()
return source.getIntegerArrayList(key) ?: defaultValue()
}
- actual inline fun getCharSequenceList(key: String): List<CharSequence> {
+ public actual inline fun getCharSequenceList(key: String): List<CharSequence> {
if (key !in this) keyNotFoundError(key)
return source.getCharSequenceArrayList(key) ?: valueNotFoundError(key)
}
- actual inline fun getCharSequenceListOrElse(
+ public actual inline fun getCharSequenceListOrElse(
key: String,
defaultValue: () -> List<CharSequence>
): List<CharSequence> {
@@ -284,12 +290,12 @@
return source.getCharSequenceArrayList(key) ?: defaultValue()
}
- actual inline fun getStringList(key: String): List<String> {
+ public actual inline fun getStringList(key: String): List<String> {
if (key !in this) keyNotFoundError(key)
return source.getStringArrayList(key) ?: valueNotFoundError(key)
}
- actual inline fun getStringListOrElse(
+ public actual inline fun getStringListOrElse(
key: String,
defaultValue: () -> List<String>
): List<String> {
@@ -305,7 +311,7 @@
* @throws IllegalArgumentException If the [key] is not found.
* @throws IllegalStateException if associated value has wrong type.
*/
- inline fun <reified T : Parcelable> getParcelableList(key: String): List<T> {
+ public inline fun <reified T : Parcelable> getParcelableList(key: String): List<T> {
if (key !in this) keyNotFoundError(key)
return getParcelableArrayList(source, key, T::class.java) ?: valueNotFoundError(key)
}
@@ -320,7 +326,7 @@
* @return The value associated with the [key], or the result of [defaultValue] if the key is
* not found or the associated value has the wrong type.
*/
- inline fun <reified T : Parcelable> getParcelableListOrElse(
+ public inline fun <reified T : Parcelable> getParcelableListOrElse(
key: String,
defaultValue: () -> List<T>
): List<T> {
@@ -328,12 +334,12 @@
return getParcelableArrayList(source, key, T::class.java) ?: defaultValue()
}
- actual inline fun getBooleanArray(key: String): BooleanArray {
+ public actual inline fun getBooleanArray(key: String): BooleanArray {
if (key !in this) keyNotFoundError(key)
return source.getBooleanArray(key) ?: valueNotFoundError(key)
}
- actual inline fun getBooleanArrayOrElse(
+ public actual inline fun getBooleanArrayOrElse(
key: String,
defaultValue: () -> BooleanArray
): BooleanArray {
@@ -341,24 +347,27 @@
return source.getBooleanArray(key) ?: defaultValue()
}
- actual inline fun getCharArray(key: String): CharArray {
+ public actual inline fun getCharArray(key: String): CharArray {
if (key !in this) keyNotFoundError(key)
return source.getCharArray(key) ?: valueNotFoundError(key)
}
- actual inline fun getCharArrayOrElse(key: String, defaultValue: () -> CharArray): CharArray {
+ public actual inline fun getCharArrayOrElse(
+ key: String,
+ defaultValue: () -> CharArray
+ ): CharArray {
if (key !in this) defaultValue()
return source.getCharArray(key) ?: defaultValue()
}
@Suppress("ArrayReturn")
- actual inline fun getCharSequenceArray(key: String): Array<CharSequence> {
+ public actual inline fun getCharSequenceArray(key: String): Array<CharSequence> {
if (key !in this) keyNotFoundError(key)
return source.getCharSequenceArray(key) ?: valueNotFoundError(key)
}
@Suppress("ArrayReturn")
- actual inline fun getCharSequenceArrayOrElse(
+ public actual inline fun getCharSequenceArrayOrElse(
key: String,
defaultValue: () -> Array<CharSequence>
): Array<CharSequence> {
@@ -366,12 +375,12 @@
return source.getCharSequenceArray(key) ?: defaultValue()
}
- actual inline fun getDoubleArray(key: String): DoubleArray {
+ public actual inline fun getDoubleArray(key: String): DoubleArray {
if (key !in this) keyNotFoundError(key)
return source.getDoubleArray(key) ?: valueNotFoundError(key)
}
- actual inline fun getDoubleArrayOrElse(
+ public actual inline fun getDoubleArrayOrElse(
key: String,
defaultValue: () -> DoubleArray
): DoubleArray {
@@ -379,42 +388,51 @@
return source.getDoubleArray(key) ?: defaultValue()
}
- actual inline fun getFloatArray(key: String): FloatArray {
+ public actual inline fun getFloatArray(key: String): FloatArray {
if (key !in this) keyNotFoundError(key)
return source.getFloatArray(key) ?: valueNotFoundError(key)
}
- actual inline fun getFloatArrayOrElse(key: String, defaultValue: () -> FloatArray): FloatArray {
+ public actual inline fun getFloatArrayOrElse(
+ key: String,
+ defaultValue: () -> FloatArray
+ ): FloatArray {
if (key !in this) defaultValue()
return source.getFloatArray(key) ?: defaultValue()
}
- actual inline fun getIntArray(key: String): IntArray {
+ public actual inline fun getIntArray(key: String): IntArray {
if (key !in this) keyNotFoundError(key)
return source.getIntArray(key) ?: valueNotFoundError(key)
}
- actual inline fun getIntArrayOrElse(key: String, defaultValue: () -> IntArray): IntArray {
+ public actual inline fun getIntArrayOrElse(
+ key: String,
+ defaultValue: () -> IntArray
+ ): IntArray {
if (key !in this) defaultValue()
return source.getIntArray(key) ?: defaultValue()
}
- actual inline fun getLongArray(key: String): LongArray {
+ public actual inline fun getLongArray(key: String): LongArray {
if (key !in this) keyNotFoundError(key)
return source.getLongArray(key) ?: valueNotFoundError(key)
}
- actual inline fun getLongArrayOrElse(key: String, defaultValue: () -> LongArray): LongArray {
+ public actual inline fun getLongArrayOrElse(
+ key: String,
+ defaultValue: () -> LongArray
+ ): LongArray {
if (key !in this) defaultValue()
return source.getLongArray(key) ?: defaultValue()
}
- actual inline fun getStringArray(key: String): Array<String> {
+ public actual inline fun getStringArray(key: String): Array<String> {
if (key !in this) keyNotFoundError(key)
return source.getStringArray(key) ?: valueNotFoundError(key)
}
- actual inline fun getStringArrayOrElse(
+ public actual inline fun getStringArrayOrElse(
key: String,
defaultValue: () -> Array<String>
): Array<String> {
@@ -431,7 +449,7 @@
* @throws IllegalStateException if associated value has wrong type.
*/
@Suppress("ArrayReturn")
- inline fun <reified T : Parcelable> getParcelableArray(key: String): Array<T> {
+ public inline fun <reified T : Parcelable> getParcelableArray(key: String): Array<T> {
if (key !in this) keyNotFoundError(key)
@Suppress("UNCHECKED_CAST")
return getParcelableArray(source, key, T::class.java) as? Array<T>
@@ -449,7 +467,7 @@
* not found or the associated value has the wrong type.
*/
@Suppress("ArrayReturn")
- inline fun <reified T : Parcelable> getParcelableArrayOrElse(
+ public inline fun <reified T : Parcelable> getParcelableArrayOrElse(
key: String,
defaultValue: () -> Array<T>
): Array<T> {
@@ -466,7 +484,9 @@
* @throws IllegalArgumentException If the [key] is not found.
* @throws IllegalStateException if associated value has wrong type.
*/
- inline fun <reified T : Parcelable> getSparseParcelableArray(key: String): SparseArray<T> {
+ public inline fun <reified T : Parcelable> getSparseParcelableArray(
+ key: String
+ ): SparseArray<T> {
if (key !in this) keyNotFoundError(key)
return getSparseParcelableArray(source, key, T::class.java) as? SparseArray<T>
?: valueNotFoundError(key)
@@ -482,7 +502,7 @@
* @return The value associated with the [key], or the result of [defaultValue] if the key is
* not found or the associated value has the wrong type.
*/
- inline fun <reified T : Parcelable> getSparseParcelableArrayOrElse(
+ public inline fun <reified T : Parcelable> getSparseParcelableArrayOrElse(
key: String,
defaultValue: () -> SparseArray<T>
): SparseArray<T> {
@@ -491,34 +511,38 @@
?: defaultValue()
}
- actual inline fun getSavedState(key: String): SavedState {
+ public actual inline fun getSavedState(key: String): SavedState {
if (key !in this) keyNotFoundError(key)
return source.getBundle(key) ?: valueNotFoundError(key)
}
- actual inline fun getSavedStateOrElse(key: String, defaultValue: () -> SavedState): SavedState {
+ public actual inline fun getSavedStateOrElse(
+ key: String,
+ defaultValue: () -> SavedState
+ ): SavedState {
if (key !in this) defaultValue()
return source.getBundle(key) ?: defaultValue()
}
- actual inline fun size(): Int = source.size()
+ public actual inline fun size(): Int = source.size()
- actual inline fun isEmpty(): Boolean = source.isEmpty
+ public actual inline fun isEmpty(): Boolean = source.isEmpty
- actual inline fun isNull(key: String): Boolean {
+ public actual inline fun isNull(key: String): Boolean {
// Using `getString` to check for `null` is unreliable as it returns null for type
// mismatches. To reliably determine if the value is actually `null`, we use the
// deprecated `Bundle.get`.
@Suppress("DEPRECATION") return contains(key) && source[key] == null
}
- actual inline operator fun contains(key: String): Boolean = source.containsKey(key)
+ public actual inline operator fun contains(key: String): Boolean = source.containsKey(key)
- actual fun contentDeepEquals(other: SavedState): Boolean = source.contentDeepEquals(other)
+ public actual fun contentDeepEquals(other: SavedState): Boolean =
+ source.contentDeepEquals(other)
- actual fun contentDeepHashCode(): Int = source.contentDeepHashCode()
+ public actual fun contentDeepHashCode(): Int = source.contentDeepHashCode()
- actual fun toMap(): Map<String, Any?> {
+ public actual fun toMap(): Map<String, Any?> {
return buildMap(capacity = source.size()) {
for (key in source.keySet()) {
@Suppress("DEPRECATION") put(key, source[key])
diff --git a/savedstate/savedstate/src/androidMain/kotlin/androidx/savedstate/SavedStateRegistry.android.kt b/savedstate/savedstate/src/androidMain/kotlin/androidx/savedstate/SavedStateRegistry.android.kt
index 5d0676e..09a65b0 100644
--- a/savedstate/savedstate/src/androidMain/kotlin/androidx/savedstate/SavedStateRegistry.android.kt
+++ b/savedstate/savedstate/src/androidMain/kotlin/androidx/savedstate/SavedStateRegistry.android.kt
@@ -19,34 +19,34 @@
import androidx.lifecycle.Lifecycle
import androidx.savedstate.internal.SavedStateRegistryImpl
-actual class SavedStateRegistry
+public actual class SavedStateRegistry
internal actual constructor(
private val impl: SavedStateRegistryImpl,
) {
@get:MainThread
- actual val isRestored: Boolean
+ public actual val isRestored: Boolean
get() = impl.isRestored
@MainThread
- actual fun consumeRestoredStateForKey(key: String): SavedState? =
+ public actual fun consumeRestoredStateForKey(key: String): SavedState? =
impl.consumeRestoredStateForKey(key)
@MainThread
- actual fun registerSavedStateProvider(key: String, provider: SavedStateProvider) {
+ public actual fun registerSavedStateProvider(key: String, provider: SavedStateProvider) {
impl.registerSavedStateProvider(key, provider)
}
- actual fun getSavedStateProvider(key: String): SavedStateProvider? =
+ public actual fun getSavedStateProvider(key: String): SavedStateProvider? =
impl.getSavedStateProvider(key)
@MainThread
- actual fun unregisterSavedStateProvider(key: String) {
+ public actual fun unregisterSavedStateProvider(key: String) {
impl.unregisterSavedStateProvider(key)
}
- actual fun interface SavedStateProvider {
- actual fun saveState(): SavedState
+ public actual fun interface SavedStateProvider {
+ public actual fun saveState(): SavedState
}
/**
@@ -55,14 +55,14 @@
*
* Subclasses must have a default constructor
*/
- interface AutoRecreated {
+ public interface AutoRecreated {
/**
* This method will be called during dispatching of
* [androidx.lifecycle.Lifecycle.Event.ON_CREATE] of owning component which was restarted
*
* @param owner a component that was restarted
*/
- fun onRecreated(owner: SavedStateRegistryOwner)
+ public fun onRecreated(owner: SavedStateRegistryOwner)
}
private var recreatorProvider: Recreator.SavedStateProvider? = null
@@ -79,7 +79,7 @@
* dispatched
*/
@MainThread
- fun runOnNextRecreation(clazz: Class<out AutoRecreated>) {
+ public fun runOnNextRecreation(clazz: Class<out AutoRecreated>) {
check(impl.isAllowingSavingState) {
"Can not perform this action after onSaveInstanceState"
}
diff --git a/savedstate/savedstate/src/androidMain/kotlin/androidx/savedstate/SavedStateRegistryController.android.kt b/savedstate/savedstate/src/androidMain/kotlin/androidx/savedstate/SavedStateRegistryController.android.kt
index 15b6fc9..6059739 100644
--- a/savedstate/savedstate/src/androidMain/kotlin/androidx/savedstate/SavedStateRegistryController.android.kt
+++ b/savedstate/savedstate/src/androidMain/kotlin/androidx/savedstate/SavedStateRegistryController.android.kt
@@ -23,27 +23,27 @@
private val impl: SavedStateRegistryImpl,
) {
- actual val savedStateRegistry: SavedStateRegistry = SavedStateRegistry(impl)
+ public actual val savedStateRegistry: SavedStateRegistry = SavedStateRegistry(impl)
@MainThread
- actual fun performAttach() {
+ public actual fun performAttach() {
impl.performAttach()
}
@MainThread
- actual fun performRestore(savedState: SavedState?) {
+ public actual fun performRestore(savedState: SavedState?) {
impl.performRestore(savedState)
}
@MainThread
- actual fun performSave(outBundle: SavedState) {
+ public actual fun performSave(outBundle: SavedState) {
impl.performSave(outBundle)
}
- actual companion object {
+ public actual companion object {
@JvmStatic
- actual fun create(owner: SavedStateRegistryOwner): SavedStateRegistryController {
+ public actual fun create(owner: SavedStateRegistryOwner): SavedStateRegistryController {
val impl =
SavedStateRegistryImpl(
owner = owner,
diff --git a/savedstate/savedstate/src/androidMain/kotlin/androidx/savedstate/SavedStateWriter.android.kt b/savedstate/savedstate/src/androidMain/kotlin/androidx/savedstate/SavedStateWriter.android.kt
index 762fa1a..42c8295 100644
--- a/savedstate/savedstate/src/androidMain/kotlin/androidx/savedstate/SavedStateWriter.android.kt
+++ b/savedstate/savedstate/src/androidMain/kotlin/androidx/savedstate/SavedStateWriter.android.kt
@@ -29,7 +29,7 @@
@Suppress("ValueClassDefinition")
@JvmInline
-actual value class SavedStateWriter
+public actual value class SavedStateWriter
@PublishedApi
internal actual constructor(
@PublishedApi internal actual val source: SavedState,
@@ -41,39 +41,39 @@
* @param key The key to associate the value with.
* @param value The [IBinder] value to store.
*/
- inline fun putBinder(key: String, value: IBinder) {
+ public inline fun putBinder(key: String, value: IBinder) {
source.putBinder(key, value)
}
- actual inline fun putBoolean(key: String, value: Boolean) {
+ public actual inline fun putBoolean(key: String, value: Boolean) {
source.putBoolean(key, value)
}
- actual inline fun putChar(key: String, value: Char) {
+ public actual inline fun putChar(key: String, value: Char) {
source.putChar(key, value)
}
- actual inline fun putCharSequence(key: String, value: CharSequence) {
+ public actual inline fun putCharSequence(key: String, value: CharSequence) {
source.putCharSequence(key, value)
}
- actual inline fun putDouble(key: String, value: Double) {
+ public actual inline fun putDouble(key: String, value: Double) {
source.putDouble(key, value)
}
- actual inline fun putFloat(key: String, value: Float) {
+ public actual inline fun putFloat(key: String, value: Float) {
source.putFloat(key, value)
}
- actual inline fun putInt(key: String, value: Int) {
+ public actual inline fun putInt(key: String, value: Int) {
source.putInt(key, value)
}
- actual inline fun putLong(key: String, value: Long) {
+ public actual inline fun putLong(key: String, value: Long) {
source.putLong(key, value)
}
- actual inline fun putNull(key: String) {
+ public actual inline fun putNull(key: String) {
source.putString(key, null)
}
@@ -83,7 +83,7 @@
* @param key The key to associate the value with.
* @param value The [Parcelable] value to store.
*/
- inline fun <reified T : Parcelable> putParcelable(key: String, value: T) {
+ public inline fun <reified T : Parcelable> putParcelable(key: String, value: T) {
source.putParcelable(key, value)
}
@@ -93,7 +93,7 @@
* @param key The key to associate the value with.
* @param value The [Serializable] value to store.
*/
- inline fun <reified T : Serializable> putJavaSerializable(key: String, value: T) {
+ public inline fun <reified T : Serializable> putJavaSerializable(key: String, value: T) {
source.putSerializable(key, value)
}
@@ -103,7 +103,7 @@
* @param key The key to associate the value with.
* @param value The [Size] value to store.
*/
- inline fun putSize(key: String, value: Size) {
+ public inline fun putSize(key: String, value: Size) {
source.putSize(key, value)
}
@@ -113,23 +113,23 @@
* @param key The key to associate the value with.
* @param value The [SizeF] value to store.
*/
- inline fun putSizeF(key: String, value: SizeF) {
+ public inline fun putSizeF(key: String, value: SizeF) {
source.putSizeF(key, value)
}
- actual inline fun putString(key: String, value: String) {
+ public actual inline fun putString(key: String, value: String) {
source.putString(key, value)
}
- actual inline fun putIntList(key: String, value: List<Int>) {
+ public actual inline fun putIntList(key: String, value: List<Int>) {
source.putIntegerArrayList(key, value.toArrayListUnsafe())
}
- actual inline fun putCharSequenceList(key: String, value: List<CharSequence>) {
+ public actual inline fun putCharSequenceList(key: String, value: List<CharSequence>) {
source.putCharSequenceArrayList(key, value.toArrayListUnsafe())
}
- actual inline fun putStringList(key: String, value: List<String>) {
+ public actual inline fun putStringList(key: String, value: List<String>) {
source.putStringArrayList(key, value.toArrayListUnsafe())
}
@@ -140,42 +140,42 @@
* @param key The key to associate the value with.
* @param value The [List] of elements to store.
*/
- inline fun <reified T : Parcelable> putParcelableList(key: String, value: List<T>) {
+ public inline fun <reified T : Parcelable> putParcelableList(key: String, value: List<T>) {
source.putParcelableArrayList(key, value.toArrayListUnsafe())
}
- actual inline fun putBooleanArray(key: String, value: BooleanArray) {
+ public actual inline fun putBooleanArray(key: String, value: BooleanArray) {
source.putBooleanArray(key, value)
}
- actual inline fun putCharArray(key: String, value: CharArray) {
+ public actual inline fun putCharArray(key: String, value: CharArray) {
source.putCharArray(key, value)
}
- actual inline fun putCharSequenceArray(
+ public actual inline fun putCharSequenceArray(
key: String,
@Suppress("ArrayReturn") value: Array<CharSequence>
) {
source.putCharSequenceArray(key, value)
}
- actual inline fun putDoubleArray(key: String, value: DoubleArray) {
+ public actual inline fun putDoubleArray(key: String, value: DoubleArray) {
source.putDoubleArray(key, value)
}
- actual inline fun putFloatArray(key: String, value: FloatArray) {
+ public actual inline fun putFloatArray(key: String, value: FloatArray) {
source.putFloatArray(key, value)
}
- actual inline fun putIntArray(key: String, value: IntArray) {
+ public actual inline fun putIntArray(key: String, value: IntArray) {
source.putIntArray(key, value)
}
- actual inline fun putLongArray(key: String, value: LongArray) {
+ public actual inline fun putLongArray(key: String, value: LongArray) {
source.putLongArray(key, value)
}
- actual inline fun putStringArray(key: String, value: Array<String>) {
+ public actual inline fun putStringArray(key: String, value: Array<String>) {
source.putStringArray(key, value)
}
@@ -186,7 +186,7 @@
* @param key The key to associate the value with.
* @param value The [Array] of elements to store.
*/
- inline fun <reified T : Parcelable> putParcelableArray(
+ public inline fun <reified T : Parcelable> putParcelableArray(
key: String,
@Suppress("ArrayReturn") value: Array<T>
) {
@@ -200,26 +200,26 @@
* @param key The key to associate the value with.
* @param value The [SparseArray] of elements to store.
*/
- inline fun <reified T : Parcelable> putSparseParcelableArray(
+ public inline fun <reified T : Parcelable> putSparseParcelableArray(
key: String,
value: SparseArray<T>
) {
source.putSparseParcelableArray(key, value)
}
- actual inline fun putSavedState(key: String, value: SavedState) {
+ public actual inline fun putSavedState(key: String, value: SavedState) {
source.putBundle(key, value)
}
- actual inline fun putAll(from: SavedState) {
+ public actual inline fun putAll(from: SavedState) {
source.putAll(from)
}
- actual inline fun remove(key: String) {
+ public actual inline fun remove(key: String) {
source.remove(key)
}
- actual inline fun clear() {
+ public actual inline fun clear() {
source.clear()
}
}
diff --git a/savedstate/savedstate/src/androidMain/kotlin/androidx/savedstate/ViewTreeSavedStateRegistryOwner.android.kt b/savedstate/savedstate/src/androidMain/kotlin/androidx/savedstate/ViewTreeSavedStateRegistryOwner.android.kt
index 670caee..e6b7502 100644
--- a/savedstate/savedstate/src/androidMain/kotlin/androidx/savedstate/ViewTreeSavedStateRegistryOwner.android.kt
+++ b/savedstate/savedstate/src/androidMain/kotlin/androidx/savedstate/ViewTreeSavedStateRegistryOwner.android.kt
@@ -35,7 +35,7 @@
* view
*/
@JvmName("set")
-fun View.setViewTreeSavedStateRegistryOwner(owner: SavedStateRegistryOwner?) {
+public fun View.setViewTreeSavedStateRegistryOwner(owner: SavedStateRegistryOwner?) {
setTag(R.id.view_tree_saved_state_registry_owner, owner)
}
@@ -50,7 +50,7 @@
* and/or some subset of its ancestors
*/
@JvmName("get")
-fun View.findViewTreeSavedStateRegistryOwner(): SavedStateRegistryOwner? {
+public fun View.findViewTreeSavedStateRegistryOwner(): SavedStateRegistryOwner? {
var currentView: View? = this
while (currentView != null) {
val registryOwner =
diff --git a/savedstate/savedstate/src/androidMain/kotlin/androidx/savedstate/serialization/serializers/BuiltInSerializer.android.kt b/savedstate/savedstate/src/androidMain/kotlin/androidx/savedstate/serialization/serializers/BuiltInSerializer.android.kt
index 4be08b3..f0dacc5 100644
--- a/savedstate/savedstate/src/androidMain/kotlin/androidx/savedstate/serialization/serializers/BuiltInSerializer.android.kt
+++ b/savedstate/savedstate/src/androidMain/kotlin/androidx/savedstate/serialization/serializers/BuiltInSerializer.android.kt
@@ -47,7 +47,7 @@
* @see androidx.savedstate.serialization.decodeFromSavedState
*/
@OptIn(ExperimentalSerializationApi::class)
-class SizeSerializer : KSerializer<Size> {
+public class SizeSerializer : KSerializer<Size> {
override val descriptor: SerialDescriptor = buildClassSerialDescriptor("Size")
override fun serialize(encoder: Encoder, value: Size) {
@@ -77,7 +77,7 @@
* @see androidx.savedstate.serialization.decodeFromSavedState
*/
@OptIn(ExperimentalSerializationApi::class)
-class SizeFSerializer : KSerializer<SizeF> {
+public class SizeFSerializer : KSerializer<SizeF> {
override val descriptor: SerialDescriptor = buildClassSerialDescriptor("SizeF")
override fun serialize(encoder: Encoder, value: SizeF) {
@@ -107,7 +107,7 @@
* @see androidx.savedstate.serialization.decodeFromSavedState
*/
@OptIn(ExperimentalSerializationApi::class)
-open class CharSequenceSerializer<T : CharSequence> : KSerializer<T> {
+public open class CharSequenceSerializer<T : CharSequence> : KSerializer<T> {
final override val descriptor: SerialDescriptor = buildClassSerialDescriptor("CharSequence")
final override fun serialize(encoder: Encoder, value: T) {
@@ -138,7 +138,7 @@
* @see androidx.savedstate.serialization.decodeFromSavedState
*/
@OptIn(ExperimentalSerializationApi::class)
-open class JavaSerializableSerializer<T : JavaSerializable> : KSerializer<T> {
+public open class JavaSerializableSerializer<T : JavaSerializable> : KSerializer<T> {
final override val descriptor: SerialDescriptor = buildClassSerialDescriptor("JavaSerializable")
final override fun serialize(encoder: Encoder, value: T) {
@@ -169,7 +169,7 @@
* @see androidx.savedstate.serialization.decodeFromSavedState
*/
@OptIn(ExperimentalSerializationApi::class)
-open class ParcelableSerializer<T : Parcelable> : KSerializer<T> {
+public open class ParcelableSerializer<T : Parcelable> : KSerializer<T> {
final override val descriptor: SerialDescriptor = buildClassSerialDescriptor("Parcelable")
final override fun serialize(encoder: Encoder, value: T) {
@@ -200,7 +200,7 @@
* @see androidx.savedstate.serialization.decodeFromSavedState
*/
@OptIn(ExperimentalSerializationApi::class)
-class IBinderSerializer : KSerializer<IBinder> {
+public class IBinderSerializer : KSerializer<IBinder> {
override val descriptor: SerialDescriptor = buildClassSerialDescriptor("IBinder")
override fun serialize(encoder: Encoder, value: IBinder) {
@@ -230,7 +230,7 @@
* @see androidx.savedstate.serialization.decodeFromSavedState
*/
@OptIn(ExperimentalSerializationApi::class)
-class CharSequenceArraySerializer : KSerializer<Array<CharSequence>> {
+public class CharSequenceArraySerializer : KSerializer<Array<CharSequence>> {
override val descriptor: SerialDescriptor = buildClassSerialDescriptor("CharSequenceArray")
override fun serialize(encoder: Encoder, @Suppress("ArrayReturn") value: Array<CharSequence>) {
@@ -261,7 +261,7 @@
* @see androidx.savedstate.serialization.decodeFromSavedState
*/
@OptIn(ExperimentalSerializationApi::class)
-class ParcelableArraySerializer : KSerializer<Array<Parcelable>> {
+public class ParcelableArraySerializer : KSerializer<Array<Parcelable>> {
override val descriptor: SerialDescriptor = buildClassSerialDescriptor("ParcelableArray")
override fun serialize(encoder: Encoder, @Suppress("ArrayReturn") value: Array<Parcelable>) {
@@ -292,7 +292,7 @@
* @see androidx.savedstate.serialization.decodeFromSavedState
*/
@OptIn(ExperimentalSerializationApi::class)
-class CharSequenceListSerializer : KSerializer<List<CharSequence>> {
+public class CharSequenceListSerializer : KSerializer<List<CharSequence>> {
override val descriptor: SerialDescriptor = buildClassSerialDescriptor("CharSequenceList")
override fun serialize(encoder: Encoder, value: List<CharSequence>) {
@@ -322,7 +322,7 @@
* @see androidx.savedstate.serialization.decodeFromSavedState
*/
@OptIn(ExperimentalSerializationApi::class)
-class ParcelableListSerializer : KSerializer<List<Parcelable>> {
+public class ParcelableListSerializer : KSerializer<List<Parcelable>> {
override val descriptor: SerialDescriptor = buildClassSerialDescriptor("ParcelableList")
override fun serialize(encoder: Encoder, value: List<Parcelable>) {
@@ -352,7 +352,7 @@
* @see androidx.savedstate.serialization.decodeFromSavedState
*/
@OptIn(ExperimentalSerializationApi::class)
-class SparseParcelableArraySerializer : KSerializer<SparseArray<Parcelable>> {
+public class SparseParcelableArraySerializer : KSerializer<SparseArray<Parcelable>> {
override val descriptor: SerialDescriptor = buildClassSerialDescriptor("SparseParcelableArray")
override fun serialize(encoder: Encoder, value: SparseArray<Parcelable>) {
diff --git a/savedstate/savedstate/src/commonMain/kotlin/androidx/savedstate/SavedStateRegistry.kt b/savedstate/savedstate/src/commonMain/kotlin/androidx/savedstate/SavedStateRegistry.kt
index 80716ea..fdd98dd6 100644
--- a/savedstate/savedstate/src/commonMain/kotlin/androidx/savedstate/SavedStateRegistry.kt
+++ b/savedstate/savedstate/src/commonMain/kotlin/androidx/savedstate/SavedStateRegistry.kt
@@ -32,14 +32,14 @@
) {
/** This interface marks a component that contributes to saved state. */
- fun interface SavedStateProvider {
+ public fun interface SavedStateProvider {
/**
* Called to retrieve a state from a component before being killed so later the state can be
* received from [consumeRestoredStateForKey]
*
* Returns `S` with your saved state.
*/
- fun saveState(): SavedState
+ public fun saveState(): SavedState
}
/**
@@ -48,7 +48,7 @@
*
* [isRestored] == true if state was restored
*/
- val isRestored: Boolean
+ public val isRestored: Boolean
/**
* Consumes saved state previously supplied by [SavedStateProvider] registered via
@@ -67,7 +67,7 @@
* @param key a key with which [SavedStateProvider] was previously registered.
* @return `S` with the previously saved state or {@code null}
*/
- @MainThread fun consumeRestoredStateForKey(key: String): SavedState?
+ @MainThread public fun consumeRestoredStateForKey(key: String): SavedState?
/**
* Registers a [SavedStateProvider] by the given `key`. This `savedStateProvider` will be called
@@ -83,7 +83,7 @@
* @param key a key with which returned saved state will be associated
* @param provider savedStateProvider to get saved state.
*/
- @MainThread fun registerSavedStateProvider(key: String, provider: SavedStateProvider)
+ @MainThread public fun registerSavedStateProvider(key: String, provider: SavedStateProvider)
/**
* Get a previously registered [SavedStateProvider].
@@ -94,12 +94,12 @@
* Returns the [SavedStateProvider] previously registered with [registerSavedStateProvider] or
* null if no provider has been registered with the given key.
*/
- fun getSavedStateProvider(key: String): SavedStateProvider?
+ public fun getSavedStateProvider(key: String): SavedStateProvider?
/**
* Unregisters a component previously registered by the given `key`
*
* @param key a key with which a component was previously registered.
*/
- @MainThread fun unregisterSavedStateProvider(key: String)
+ @MainThread public fun unregisterSavedStateProvider(key: String)
}
diff --git a/savedstate/savedstate/src/commonMain/kotlin/androidx/savedstate/serialization/SavedStateDecoder.kt b/savedstate/savedstate/src/commonMain/kotlin/androidx/savedstate/serialization/SavedStateDecoder.kt
index 755e034..65ccd1f 100644
--- a/savedstate/savedstate/src/commonMain/kotlin/androidx/savedstate/serialization/SavedStateDecoder.kt
+++ b/savedstate/savedstate/src/commonMain/kotlin/androidx/savedstate/serialization/SavedStateDecoder.kt
@@ -39,7 +39,7 @@
* @throws SerializationException for any deserialization error.
* @throws IllegalArgumentException if [savedState] is not valid.
*/
-fun <T : Any> decodeFromSavedState(
+public fun <T : Any> decodeFromSavedState(
deserializer: DeserializationStrategy<T>,
savedState: SavedState
): T {
@@ -55,7 +55,7 @@
* @throws SerializationException for any deserialization error.
* @throws IllegalArgumentException if [savedState] is not valid.
*/
-inline fun <reified T : Any> decodeFromSavedState(savedState: SavedState): T =
+public inline fun <reified T : Any> decodeFromSavedState(savedState: SavedState): T =
decodeFromSavedState(serializer<T>(), savedState)
/**
diff --git a/savedstate/savedstate/src/commonMain/kotlin/androidx/savedstate/serialization/SavedStateEncoder.kt b/savedstate/savedstate/src/commonMain/kotlin/androidx/savedstate/serialization/SavedStateEncoder.kt
index 9625885..7d89c34 100644
--- a/savedstate/savedstate/src/commonMain/kotlin/androidx/savedstate/serialization/SavedStateEncoder.kt
+++ b/savedstate/savedstate/src/commonMain/kotlin/androidx/savedstate/serialization/SavedStateEncoder.kt
@@ -39,7 +39,10 @@
* @return The encoded [SavedState].
* @throws SerializationException if [value] cannot be serialized.
*/
-fun <T : Any> encodeToSavedState(serializer: SerializationStrategy<T>, value: T): SavedState =
+public fun <T : Any> encodeToSavedState(
+ serializer: SerializationStrategy<T>,
+ value: T
+): SavedState =
savedState().apply { SavedStateEncoder(this).encodeSerializableValue(serializer, value) }
/**
@@ -50,7 +53,7 @@
* @return The encoded [SavedState].
* @throws SerializationException if [value] cannot be serialized.
*/
-inline fun <reified T : Any> encodeToSavedState(value: T): SavedState {
+public inline fun <reified T : Any> encodeToSavedState(value: T): SavedState {
return encodeToSavedState(serializer<T>(), value)
}
diff --git a/savedstate/savedstate/src/commonMain/kotlin/androidx/savedstate/serialization/serializers/BuiltInSerializer.kt b/savedstate/savedstate/src/commonMain/kotlin/androidx/savedstate/serialization/serializers/BuiltInSerializer.kt
index 51411f3..14d6036 100644
--- a/savedstate/savedstate/src/commonMain/kotlin/androidx/savedstate/serialization/serializers/BuiltInSerializer.kt
+++ b/savedstate/savedstate/src/commonMain/kotlin/androidx/savedstate/serialization/serializers/BuiltInSerializer.kt
@@ -42,7 +42,7 @@
* @see androidx.savedstate.serialization.decodeFromSavedState
*/
@OptIn(ExperimentalSerializationApi::class)
-class SavedStateSerializer : KSerializer<SavedState> {
+public class SavedStateSerializer : KSerializer<SavedState> {
override val descriptor: SerialDescriptor = buildClassSerialDescriptor("SavedState")
override fun serialize(encoder: Encoder, value: SavedState) {
diff --git a/savedstate/savedstate/src/nonAndroidMain/kotlin/androidx/savedstate/SavedState.nonAndroid.kt b/savedstate/savedstate/src/nonAndroidMain/kotlin/androidx/savedstate/SavedState.nonAndroid.kt
index 03b06aa..1b98e67 100644
--- a/savedstate/savedstate/src/nonAndroidMain/kotlin/androidx/savedstate/SavedState.nonAndroid.kt
+++ b/savedstate/savedstate/src/nonAndroidMain/kotlin/androidx/savedstate/SavedState.nonAndroid.kt
@@ -27,7 +27,7 @@
@PublishedApi
internal constructor(@PublishedApi internal val map: MutableMap<String, Any?> = mutableMapOf())
-actual inline fun savedState(
+public actual inline fun savedState(
initialState: Map<String, Any?>,
builderAction: SavedStateWriter.() -> Unit,
): SavedState = SavedState(initialState.toMutableMap()).apply { write(builderAction) }
diff --git a/savedstate/savedstate/src/nonAndroidMain/kotlin/androidx/savedstate/SavedStateReader.nonAndroid.kt b/savedstate/savedstate/src/nonAndroidMain/kotlin/androidx/savedstate/SavedStateReader.nonAndroid.kt
index b18561a..8f0d715e 100644
--- a/savedstate/savedstate/src/nonAndroidMain/kotlin/androidx/savedstate/SavedStateReader.nonAndroid.kt
+++ b/savedstate/savedstate/src/nonAndroidMain/kotlin/androidx/savedstate/SavedStateReader.nonAndroid.kt
@@ -31,32 +31,32 @@
@PublishedApi internal actual val source: SavedState,
) {
- actual inline fun getBoolean(key: String): Boolean {
+ public actual inline fun getBoolean(key: String): Boolean {
if (key !in this) keyNotFoundError(key)
return source.map[key] as? Boolean ?: DEFAULT_BOOLEAN
}
- actual inline fun getBooleanOrElse(key: String, defaultValue: () -> Boolean): Boolean {
+ public actual inline fun getBooleanOrElse(key: String, defaultValue: () -> Boolean): Boolean {
if (key !in this) defaultValue()
return source.map[key] as? Boolean ?: defaultValue()
}
- actual inline fun getChar(key: String): Char {
+ public actual inline fun getChar(key: String): Char {
if (key !in this) keyNotFoundError(key)
return source.map[key] as? Char ?: DEFAULT_CHAR
}
- actual inline fun getCharOrElse(key: String, defaultValue: () -> Char): Char {
+ public actual inline fun getCharOrElse(key: String, defaultValue: () -> Char): Char {
if (key !in this) defaultValue()
return source.map[key] as? Char ?: defaultValue()
}
- actual inline fun getCharSequence(key: String): CharSequence {
+ public actual inline fun getCharSequence(key: String): CharSequence {
if (key !in this) keyNotFoundError(key)
return source.map[key] as? CharSequence ?: valueNotFoundError(key)
}
- actual inline fun getCharSequenceOrElse(
+ public actual inline fun getCharSequenceOrElse(
key: String,
defaultValue: () -> CharSequence
): CharSequence {
@@ -64,63 +64,63 @@
return source.map[key] as? CharSequence ?: defaultValue()
}
- actual inline fun getDouble(key: String): Double {
+ public actual inline fun getDouble(key: String): Double {
if (key !in this) keyNotFoundError(key)
return source.map[key] as? Double ?: DEFAULT_DOUBLE
}
- actual inline fun getDoubleOrElse(key: String, defaultValue: () -> Double): Double {
+ public actual inline fun getDoubleOrElse(key: String, defaultValue: () -> Double): Double {
if (key !in this) defaultValue()
return source.map[key] as? Double ?: defaultValue()
}
- actual inline fun getFloat(key: String): Float {
+ public actual inline fun getFloat(key: String): Float {
if (key !in this) keyNotFoundError(key)
return source.map[key] as? Float ?: DEFAULT_FLOAT
}
- actual inline fun getFloatOrElse(key: String, defaultValue: () -> Float): Float {
+ public actual inline fun getFloatOrElse(key: String, defaultValue: () -> Float): Float {
if (key !in this) defaultValue()
return source.map[key] as? Float ?: defaultValue()
}
- actual inline fun getInt(key: String): Int {
+ public actual inline fun getInt(key: String): Int {
if (key !in this) keyNotFoundError(key)
return source.map[key] as? Int ?: DEFAULT_INT
}
- actual inline fun getIntOrElse(key: String, defaultValue: () -> Int): Int {
+ public actual inline fun getIntOrElse(key: String, defaultValue: () -> Int): Int {
if (key !in this) defaultValue()
return source.map[key] as? Int ?: defaultValue()
}
- actual inline fun getLong(key: String): Long {
+ public actual inline fun getLong(key: String): Long {
if (key !in this) keyNotFoundError(key)
return source.map[key] as? Long ?: DEFAULT_LONG
}
- actual inline fun getLongOrElse(key: String, defaultValue: () -> Long): Long {
+ public actual inline fun getLongOrElse(key: String, defaultValue: () -> Long): Long {
if (key !in this) defaultValue()
return source.map[key] as? Long ?: defaultValue()
}
- actual inline fun getString(key: String): String {
+ public actual inline fun getString(key: String): String {
if (key !in this) keyNotFoundError(key)
return source.map[key] as? String ?: valueNotFoundError(key)
}
- actual inline fun getStringOrElse(key: String, defaultValue: () -> String): String {
+ public actual inline fun getStringOrElse(key: String, defaultValue: () -> String): String {
if (key !in this) defaultValue()
return source.map[key] as? String ?: defaultValue()
}
- actual inline fun getCharSequenceList(key: String): List<CharSequence> {
+ public actual inline fun getCharSequenceList(key: String): List<CharSequence> {
if (key !in this) keyNotFoundError(key)
@Suppress("UNCHECKED_CAST")
return source.map[key] as? List<CharSequence> ?: valueNotFoundError(key)
}
- actual inline fun getCharSequenceListOrElse(
+ public actual inline fun getCharSequenceListOrElse(
key: String,
defaultValue: () -> List<CharSequence>
): List<CharSequence> {
@@ -128,23 +128,26 @@
@Suppress("UNCHECKED_CAST") return source.map[key] as? List<CharSequence> ?: defaultValue()
}
- actual inline fun getIntList(key: String): List<Int> {
+ public actual inline fun getIntList(key: String): List<Int> {
if (key !in this) keyNotFoundError(key)
@Suppress("UNCHECKED_CAST") return source.map[key] as? List<Int> ?: valueNotFoundError(key)
}
- actual inline fun getIntListOrElse(key: String, defaultValue: () -> List<Int>): List<Int> {
+ public actual inline fun getIntListOrElse(
+ key: String,
+ defaultValue: () -> List<Int>
+ ): List<Int> {
if (key !in this) defaultValue()
@Suppress("UNCHECKED_CAST") return source.map[key] as? List<Int> ?: defaultValue()
}
- actual inline fun getStringList(key: String): List<String> {
+ public actual inline fun getStringList(key: String): List<String> {
if (key !in this) keyNotFoundError(key)
@Suppress("UNCHECKED_CAST")
return source.map[key] as? List<String> ?: valueNotFoundError(key)
}
- actual inline fun getStringListOrElse(
+ public actual inline fun getStringListOrElse(
key: String,
defaultValue: () -> List<String>
): List<String> {
@@ -152,23 +155,26 @@
@Suppress("UNCHECKED_CAST") return source.map[key] as? List<String> ?: defaultValue()
}
- actual inline fun getCharArray(key: String): CharArray {
+ public actual inline fun getCharArray(key: String): CharArray {
if (key !in this) keyNotFoundError(key)
return source.map[key] as? CharArray ?: valueNotFoundError(key)
}
- actual inline fun getCharArrayOrElse(key: String, defaultValue: () -> CharArray): CharArray {
+ public actual inline fun getCharArrayOrElse(
+ key: String,
+ defaultValue: () -> CharArray
+ ): CharArray {
if (key !in this) defaultValue()
return source.map[key] as? CharArray ?: defaultValue()
}
- actual inline fun getCharSequenceArray(key: String): Array<CharSequence> {
+ public actual inline fun getCharSequenceArray(key: String): Array<CharSequence> {
if (key !in this) keyNotFoundError(key)
@Suppress("UNCHECKED_CAST")
return source.map[key] as? Array<CharSequence> ?: valueNotFoundError(key)
}
- actual inline fun getCharSequenceArrayOrElse(
+ public actual inline fun getCharSequenceArrayOrElse(
key: String,
defaultValue: () -> Array<CharSequence>
): Array<CharSequence> {
@@ -176,12 +182,12 @@
@Suppress("UNCHECKED_CAST") return source.map[key] as? Array<CharSequence> ?: defaultValue()
}
- actual inline fun getBooleanArray(key: String): BooleanArray {
+ public actual inline fun getBooleanArray(key: String): BooleanArray {
if (key !in this) keyNotFoundError(key)
return source.map[key] as? BooleanArray ?: valueNotFoundError(key)
}
- actual inline fun getBooleanArrayOrElse(
+ public actual inline fun getBooleanArrayOrElse(
key: String,
defaultValue: () -> BooleanArray
): BooleanArray {
@@ -189,12 +195,12 @@
return source.map[key] as? BooleanArray ?: defaultValue()
}
- actual inline fun getDoubleArray(key: String): DoubleArray {
+ public actual inline fun getDoubleArray(key: String): DoubleArray {
if (key !in this) keyNotFoundError(key)
return source.map[key] as? DoubleArray ?: valueNotFoundError(key)
}
- actual inline fun getDoubleArrayOrElse(
+ public actual inline fun getDoubleArrayOrElse(
key: String,
defaultValue: () -> DoubleArray,
): DoubleArray {
@@ -202,44 +208,53 @@
return source.map[key] as? DoubleArray ?: defaultValue()
}
- actual inline fun getFloatArray(key: String): FloatArray {
+ public actual inline fun getFloatArray(key: String): FloatArray {
if (key !in this) keyNotFoundError(key)
return source.map[key] as? FloatArray ?: valueNotFoundError(key)
}
- actual inline fun getFloatArrayOrElse(key: String, defaultValue: () -> FloatArray): FloatArray {
+ public actual inline fun getFloatArrayOrElse(
+ key: String,
+ defaultValue: () -> FloatArray
+ ): FloatArray {
if (key !in this) defaultValue()
return source.map[key] as? FloatArray ?: defaultValue()
}
- actual inline fun getIntArray(key: String): IntArray {
+ public actual inline fun getIntArray(key: String): IntArray {
if (key !in this) keyNotFoundError(key)
return source.map[key] as? IntArray ?: valueNotFoundError(key)
}
- actual inline fun getIntArrayOrElse(key: String, defaultValue: () -> IntArray): IntArray {
+ public actual inline fun getIntArrayOrElse(
+ key: String,
+ defaultValue: () -> IntArray
+ ): IntArray {
if (key !in this) defaultValue()
return source.map[key] as? IntArray ?: defaultValue()
}
- actual inline fun getLongArray(key: String): LongArray {
+ public actual inline fun getLongArray(key: String): LongArray {
if (key !in this) keyNotFoundError(key)
return source.map[key] as? LongArray ?: valueNotFoundError(key)
}
- actual inline fun getLongArrayOrElse(key: String, defaultValue: () -> LongArray): LongArray {
+ public actual inline fun getLongArrayOrElse(
+ key: String,
+ defaultValue: () -> LongArray
+ ): LongArray {
if (key !in this) defaultValue()
return source.map[key] as? LongArray ?: defaultValue()
}
@Suppress("UNCHECKED_CAST")
- actual inline fun getStringArray(key: String): Array<String> {
+ public actual inline fun getStringArray(key: String): Array<String> {
if (key !in this) keyNotFoundError(key)
return source.map[key] as? Array<String> ?: valueNotFoundError(key)
}
@Suppress("UNCHECKED_CAST")
- actual inline fun getStringArrayOrElse(
+ public actual inline fun getStringArrayOrElse(
key: String,
defaultValue: () -> Array<String>
): Array<String> {
@@ -247,29 +262,33 @@
return source.map[key] as? Array<String> ?: defaultValue()
}
- actual inline fun getSavedState(key: String): SavedState {
+ public actual inline fun getSavedState(key: String): SavedState {
if (key !in this) keyNotFoundError(key)
return source.map[key] as? SavedState ?: valueNotFoundError(key)
}
- actual inline fun getSavedStateOrElse(key: String, defaultValue: () -> SavedState): SavedState {
+ public actual inline fun getSavedStateOrElse(
+ key: String,
+ defaultValue: () -> SavedState
+ ): SavedState {
if (key !in this) defaultValue()
return source.map[key] as? SavedState ?: defaultValue()
}
- actual inline fun size(): Int = source.map.size
+ public actual inline fun size(): Int = source.map.size
- actual inline fun isEmpty(): Boolean = source.map.isEmpty()
+ public actual inline fun isEmpty(): Boolean = source.map.isEmpty()
- actual inline fun isNull(key: String): Boolean = contains(key) && source.map[key] == null
+ public actual inline fun isNull(key: String): Boolean = contains(key) && source.map[key] == null
- actual inline operator fun contains(key: String): Boolean = source.map.containsKey(key)
+ public actual inline operator fun contains(key: String): Boolean = source.map.containsKey(key)
- actual fun contentDeepEquals(other: SavedState): Boolean = source.contentDeepEquals(other)
+ public actual fun contentDeepEquals(other: SavedState): Boolean =
+ source.contentDeepEquals(other)
- actual fun contentDeepHashCode(): Int = source.contentDeepHashCode()
+ public actual fun contentDeepHashCode(): Int = source.contentDeepHashCode()
- actual fun toMap(): Map<String, Any?> {
+ public actual fun toMap(): Map<String, Any?> {
return buildMap(capacity = source.map.size) {
for (key in source.map.keys) {
put(key, source.map[key])
diff --git a/savedstate/savedstate/src/nonAndroidMain/kotlin/androidx/savedstate/SavedStateRegistry.nonAndroid.kt b/savedstate/savedstate/src/nonAndroidMain/kotlin/androidx/savedstate/SavedStateRegistry.nonAndroid.kt
index 19f8801..1f5bfb8 100644
--- a/savedstate/savedstate/src/nonAndroidMain/kotlin/androidx/savedstate/SavedStateRegistry.nonAndroid.kt
+++ b/savedstate/savedstate/src/nonAndroidMain/kotlin/androidx/savedstate/SavedStateRegistry.nonAndroid.kt
@@ -18,33 +18,33 @@
import androidx.annotation.MainThread
import androidx.savedstate.internal.SavedStateRegistryImpl
-actual class SavedStateRegistry
+public actual class SavedStateRegistry
internal actual constructor(
private val impl: SavedStateRegistryImpl,
) {
@get:MainThread
- actual val isRestored: Boolean
+ public actual val isRestored: Boolean
get() = impl.isRestored
@MainThread
- actual fun consumeRestoredStateForKey(key: String): SavedState? =
+ public actual fun consumeRestoredStateForKey(key: String): SavedState? =
impl.consumeRestoredStateForKey(key)
@MainThread
- actual fun registerSavedStateProvider(key: String, provider: SavedStateProvider) {
+ public actual fun registerSavedStateProvider(key: String, provider: SavedStateProvider) {
impl.registerSavedStateProvider(key, provider)
}
- actual fun getSavedStateProvider(key: String): SavedStateProvider? =
+ public actual fun getSavedStateProvider(key: String): SavedStateProvider? =
impl.getSavedStateProvider(key)
@MainThread
- actual fun unregisterSavedStateProvider(key: String) {
+ public actual fun unregisterSavedStateProvider(key: String) {
impl.unregisterSavedStateProvider(key)
}
- actual fun interface SavedStateProvider {
- actual fun saveState(): SavedState
+ public actual fun interface SavedStateProvider {
+ public actual fun saveState(): SavedState
}
}
diff --git a/savedstate/savedstate/src/nonAndroidMain/kotlin/androidx/savedstate/SavedStateRegistryController.nonAndroid.kt b/savedstate/savedstate/src/nonAndroidMain/kotlin/androidx/savedstate/SavedStateRegistryController.nonAndroid.kt
index acfe7f4..a720c44 100644
--- a/savedstate/savedstate/src/nonAndroidMain/kotlin/androidx/savedstate/SavedStateRegistryController.nonAndroid.kt
+++ b/savedstate/savedstate/src/nonAndroidMain/kotlin/androidx/savedstate/SavedStateRegistryController.nonAndroid.kt
@@ -24,27 +24,27 @@
private val impl: SavedStateRegistryImpl,
) {
- actual val savedStateRegistry: SavedStateRegistry = SavedStateRegistry(impl)
+ public actual val savedStateRegistry: SavedStateRegistry = SavedStateRegistry(impl)
@MainThread
- actual fun performAttach() {
+ public actual fun performAttach() {
impl.performAttach()
}
@MainThread
- actual fun performRestore(savedState: SavedState?) {
+ public actual fun performRestore(savedState: SavedState?) {
impl.performRestore(savedState)
}
@MainThread
- actual fun performSave(outBundle: SavedState) {
+ public actual fun performSave(outBundle: SavedState) {
impl.performSave(outBundle)
}
- actual companion object {
+ public actual companion object {
@JvmStatic
- actual fun create(owner: SavedStateRegistryOwner): SavedStateRegistryController {
+ public actual fun create(owner: SavedStateRegistryOwner): SavedStateRegistryController {
return SavedStateRegistryController(SavedStateRegistryImpl(owner))
}
}
diff --git a/savedstate/savedstate/src/nonAndroidMain/kotlin/androidx/savedstate/SavedStateWriter.nonAndroid.kt b/savedstate/savedstate/src/nonAndroidMain/kotlin/androidx/savedstate/SavedStateWriter.nonAndroid.kt
index bfa30cd..a0980f2 100644
--- a/savedstate/savedstate/src/nonAndroidMain/kotlin/androidx/savedstate/SavedStateWriter.nonAndroid.kt
+++ b/savedstate/savedstate/src/nonAndroidMain/kotlin/androidx/savedstate/SavedStateWriter.nonAndroid.kt
@@ -25,105 +25,105 @@
import kotlin.jvm.JvmName
@JvmInline
-actual value class SavedStateWriter
+public actual value class SavedStateWriter
@PublishedApi
internal actual constructor(
@PublishedApi internal actual val source: SavedState,
) {
- actual inline fun putBoolean(key: String, value: Boolean) {
+ public actual inline fun putBoolean(key: String, value: Boolean) {
source.map[key] = value
}
- actual inline fun putChar(key: String, value: Char) {
+ public actual inline fun putChar(key: String, value: Char) {
source.map[key] = value
}
- actual inline fun putCharSequence(key: String, value: CharSequence) {
+ public actual inline fun putCharSequence(key: String, value: CharSequence) {
source.map[key] = value
}
- actual inline fun putDouble(key: String, value: Double) {
+ public actual inline fun putDouble(key: String, value: Double) {
source.map[key] = value
}
- actual inline fun putFloat(key: String, value: Float) {
+ public actual inline fun putFloat(key: String, value: Float) {
source.map[key] = value
}
- actual inline fun putInt(key: String, value: Int) {
+ public actual inline fun putInt(key: String, value: Int) {
source.map[key] = value
}
- actual inline fun putLong(key: String, value: Long) {
+ public actual inline fun putLong(key: String, value: Long) {
source.map[key] = value
}
- actual inline fun putNull(key: String) {
+ public actual inline fun putNull(key: String) {
source.map[key] = null
}
- actual inline fun putString(key: String, value: String) {
+ public actual inline fun putString(key: String, value: String) {
source.map[key] = value
}
- actual inline fun putCharSequenceList(key: String, value: List<CharSequence>) {
+ public actual inline fun putCharSequenceList(key: String, value: List<CharSequence>) {
source.map[key] = value
}
- actual inline fun putIntList(key: String, value: List<Int>) {
+ public actual inline fun putIntList(key: String, value: List<Int>) {
source.map[key] = value
}
- actual inline fun putStringList(key: String, value: List<String>) {
+ public actual inline fun putStringList(key: String, value: List<String>) {
source.map[key] = value
}
- actual inline fun putBooleanArray(key: String, value: BooleanArray) {
+ public actual inline fun putBooleanArray(key: String, value: BooleanArray) {
source.map[key] = value
}
- actual inline fun putCharArray(key: String, value: CharArray) {
+ public actual inline fun putCharArray(key: String, value: CharArray) {
source.map[key] = value
}
- actual inline fun putCharSequenceArray(key: String, value: Array<CharSequence>) {
+ public actual inline fun putCharSequenceArray(key: String, value: Array<CharSequence>) {
source.map[key] = value
}
- actual inline fun putDoubleArray(key: String, value: DoubleArray) {
+ public actual inline fun putDoubleArray(key: String, value: DoubleArray) {
source.map[key] = value
}
- actual inline fun putFloatArray(key: String, value: FloatArray) {
+ public actual inline fun putFloatArray(key: String, value: FloatArray) {
source.map[key] = value
}
- actual inline fun putIntArray(key: String, value: IntArray) {
+ public actual inline fun putIntArray(key: String, value: IntArray) {
source.map[key] = value
}
- actual inline fun putLongArray(key: String, value: LongArray) {
+ public actual inline fun putLongArray(key: String, value: LongArray) {
source.map[key] = value
}
- actual inline fun putStringArray(key: String, value: Array<String>) {
+ public actual inline fun putStringArray(key: String, value: Array<String>) {
source.map[key] = value
}
- actual inline fun putSavedState(key: String, value: SavedState) {
+ public actual inline fun putSavedState(key: String, value: SavedState) {
source.map[key] = value
}
- actual inline fun putAll(from: SavedState) {
+ public actual inline fun putAll(from: SavedState) {
source.map.putAll(from.map)
}
- actual inline fun remove(key: String) {
+ public actual inline fun remove(key: String) {
source.map.remove(key)
}
- actual inline fun clear() {
+ public actual inline fun clear() {
source.map.clear()
}
}