Rename rememberSavedInstanceState() to rememberSaveable()
Relnote: rememberSavedInstanceState() was renamed to rememberSaveable() and moved to androidx.compose.runtime.saveable package.
Test: ./gradlew bOs
Bug: 177338004
Change-Id: I1366e7fef0a5a56a43d6eeb3770967a9bf683380
diff --git a/compose/animation/animation/integration-tests/animation-demos/src/main/java/androidx/compose/animation/demos/CrossfadeDemo.kt b/compose/animation/animation/integration-tests/animation-demos/src/main/java/androidx/compose/animation/demos/CrossfadeDemo.kt
index b5f0709..a1547ec 100644
--- a/compose/animation/animation/integration-tests/animation-demos/src/main/java/androidx/compose/animation/demos/CrossfadeDemo.kt
+++ b/compose/animation/animation/integration-tests/animation-demos/src/main/java/androidx/compose/animation/demos/CrossfadeDemo.kt
@@ -27,8 +27,8 @@
import androidx.compose.foundation.layout.preferredHeight
import androidx.compose.runtime.Composable
import androidx.compose.runtime.getValue
+import androidx.compose.runtime.saveable.rememberSaveable
import androidx.compose.runtime.saveable.rememberSaveableStateHolder
-import androidx.compose.runtime.savedinstancestate.rememberSavedInstanceState
import androidx.compose.runtime.savedinstancestate.savedInstanceState
import androidx.compose.runtime.setValue
import androidx.compose.ui.Modifier
@@ -60,7 +60,8 @@
Crossfade(current = current) { current ->
saveableStateHolder.SaveableStateProvider(current) {
val tab = tabs[current]
- tab.lastInt = rememberSavedInstanceState { Random.nextInt() }
+ arrayOf<Any?>()
+ tab.lastInt = rememberSaveable { Random.nextInt() }
Box(Modifier.fillMaxSize().background(tab.color))
}
}
diff --git a/compose/foundation/foundation/src/androidAndroidTest/kotlin/androidx/compose/foundation/lazy/LazyItemStateRestoration.kt b/compose/foundation/foundation/src/androidAndroidTest/kotlin/androidx/compose/foundation/lazy/LazyItemStateRestoration.kt
index e27e73b..fa95d97 100644
--- a/compose/foundation/foundation/src/androidAndroidTest/kotlin/androidx/compose/foundation/lazy/LazyItemStateRestoration.kt
+++ b/compose/foundation/foundation/src/androidAndroidTest/kotlin/androidx/compose/foundation/lazy/LazyItemStateRestoration.kt
@@ -19,7 +19,7 @@
import androidx.compose.foundation.layout.Box
import androidx.compose.foundation.layout.size
import androidx.compose.runtime.DisposableEffect
-import androidx.compose.runtime.savedinstancestate.rememberSavedInstanceState
+import androidx.compose.runtime.saveable.rememberSaveable
import androidx.compose.ui.Modifier
import androidx.compose.ui.test.junit4.StateRestorationTester
import androidx.compose.ui.test.junit4.createComposeRule
@@ -44,14 +44,14 @@
restorationTester.setContent {
LazyColumn {
item {
- realState[0] = rememberSavedInstanceState { counter0++ }
+ realState[0] = rememberSaveable { counter0++ }
Box(Modifier.size(1.dp))
}
items((1..2).toList()) {
if (it == 1) {
- realState[1] = rememberSavedInstanceState { counter1++ }
+ realState[1] = rememberSaveable { counter1++ }
} else {
- realState[2] = rememberSavedInstanceState { counter2++ }
+ realState[2] = rememberSaveable { counter2++ }
}
Box(Modifier.size(1.dp))
}
@@ -88,7 +88,7 @@
) {
items((0..1).toList()) {
if (it == 0) {
- realState = rememberSavedInstanceState { counter0++ }
+ realState = rememberSaveable { counter0++ }
DisposableEffect(Unit) {
onDispose {
itemDisposed = true
@@ -134,9 +134,9 @@
) {
items((0..1).toList()) {
if (it == 0) {
- realState[0] = rememberSavedInstanceState { counter0++ }
+ realState[0] = rememberSaveable { counter0++ }
} else {
- realState[1] = rememberSavedInstanceState { counter1++ }
+ realState[1] = rememberSaveable { counter1++ }
}
Box(Modifier.size(30.dp))
}
@@ -185,7 +185,7 @@
if (it == 0) {
LazyRow {
item {
- realState = rememberSavedInstanceState { counter0++ }
+ realState = rememberSaveable { counter0++ }
DisposableEffect(Unit) {
onDispose {
itemDisposed = true
diff --git a/compose/foundation/foundation/src/androidAndroidTest/kotlin/androidx/compose/foundation/textfield/TextFieldScrollTest.kt b/compose/foundation/foundation/src/androidAndroidTest/kotlin/androidx/compose/foundation/textfield/TextFieldScrollTest.kt
index 967e040..c864623 100644
--- a/compose/foundation/foundation/src/androidAndroidTest/kotlin/androidx/compose/foundation/textfield/TextFieldScrollTest.kt
+++ b/compose/foundation/foundation/src/androidAndroidTest/kotlin/androidx/compose/foundation/textfield/TextFieldScrollTest.kt
@@ -37,7 +37,7 @@
import androidx.compose.foundation.text.textFieldScrollable
import androidx.compose.runtime.Composable
import androidx.compose.runtime.remember
-import androidx.compose.runtime.savedinstancestate.rememberSavedInstanceState
+import androidx.compose.runtime.saveable.rememberSaveable
import androidx.compose.testutils.assertPixels
import androidx.compose.ui.Modifier
import androidx.compose.ui.geometry.Offset
@@ -327,7 +327,7 @@
var scrollerPosition: TextFieldScrollerPosition? = null
restorationTester.setContent {
- scrollerPosition = rememberSavedInstanceState(
+ scrollerPosition = rememberSaveable(
saver = TextFieldScrollerPosition.Saver
) {
TextFieldScrollerPosition(Orientation.Horizontal)
diff --git a/compose/foundation/foundation/src/commonMain/kotlin/androidx/compose/foundation/Scroll.kt b/compose/foundation/foundation/src/commonMain/kotlin/androidx/compose/foundation/Scroll.kt
index db6f508..65bc7c7 100644
--- a/compose/foundation/foundation/src/commonMain/kotlin/androidx/compose/foundation/Scroll.kt
+++ b/compose/foundation/foundation/src/commonMain/kotlin/androidx/compose/foundation/Scroll.kt
@@ -43,7 +43,7 @@
import androidx.compose.runtime.remember
import androidx.compose.runtime.rememberCoroutineScope
import androidx.compose.runtime.saveable.Saver
-import androidx.compose.runtime.savedinstancestate.rememberSavedInstanceState
+import androidx.compose.runtime.saveable.rememberSaveable
import androidx.compose.runtime.setValue
import androidx.compose.runtime.structuralEqualityPolicy
import androidx.compose.ui.Alignment
@@ -88,7 +88,7 @@
): ScrollState {
val clock = AmbientAnimationClock.current.asDisposableClock()
val config = defaultFlingConfig()
- return rememberSavedInstanceState(
+ return rememberSaveable(
clock, config, interactionState,
saver = ScrollState.Saver(config, clock, interactionState)
) {
diff --git a/compose/foundation/foundation/src/commonMain/kotlin/androidx/compose/foundation/lazy/LazyListState.kt b/compose/foundation/foundation/src/commonMain/kotlin/androidx/compose/foundation/lazy/LazyListState.kt
index 906a467..6b90307 100644
--- a/compose/foundation/foundation/src/commonMain/kotlin/androidx/compose/foundation/lazy/LazyListState.kt
+++ b/compose/foundation/foundation/src/commonMain/kotlin/androidx/compose/foundation/lazy/LazyListState.kt
@@ -32,7 +32,7 @@
import androidx.compose.runtime.remember
import androidx.compose.runtime.saveable.Saver
import androidx.compose.runtime.saveable.listSaver
-import androidx.compose.runtime.savedinstancestate.rememberSavedInstanceState
+import androidx.compose.runtime.saveable.rememberSaveable
import androidx.compose.ui.layout.Remeasurement
import androidx.compose.ui.layout.RemeasurementModifier
import androidx.compose.ui.platform.AmbientAnimationClock
@@ -65,7 +65,7 @@
LazyListState.Saver(config, clock, interactionState)
}
- return rememberSavedInstanceState(config, clock, interactionState, saver = saver) {
+ return rememberSaveable(config, clock, interactionState, saver = saver) {
LazyListState(
initialFirstVisibleItemIndex,
initialFirstVisibleItemScrollOffset,
diff --git a/compose/foundation/foundation/src/commonMain/kotlin/androidx/compose/foundation/text/CoreTextField.kt b/compose/foundation/foundation/src/commonMain/kotlin/androidx/compose/foundation/text/CoreTextField.kt
index b65c7db..c7801fc 100644
--- a/compose/foundation/foundation/src/commonMain/kotlin/androidx/compose/foundation/text/CoreTextField.kt
+++ b/compose/foundation/foundation/src/commonMain/kotlin/androidx/compose/foundation/text/CoreTextField.kt
@@ -30,7 +30,7 @@
import androidx.compose.runtime.getValue
import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.remember
-import androidx.compose.runtime.savedinstancestate.rememberSavedInstanceState
+import androidx.compose.runtime.saveable.rememberSaveable
import androidx.compose.runtime.setValue
import androidx.compose.ui.Modifier
import androidx.compose.ui.draw.drawBehind
@@ -190,7 +190,7 @@
// Scroll state
val singleLine = maxLines == 1 && !softWrap && imeOptions.singleLine
val orientation = if (singleLine) Orientation.Horizontal else Orientation.Vertical
- val scrollerPosition = rememberSavedInstanceState(
+ val scrollerPosition = rememberSaveable(
orientation,
saver = TextFieldScrollerPosition.Saver
) { TextFieldScrollerPosition(orientation) }
diff --git a/compose/integration-tests/demos/src/main/java/androidx/compose/integration/demos/DemoActivity.kt b/compose/integration-tests/demos/src/main/java/androidx/compose/integration/demos/DemoActivity.kt
index f634a82..d858192 100644
--- a/compose/integration-tests/demos/src/main/java/androidx/compose/integration/demos/DemoActivity.kt
+++ b/compose/integration-tests/demos/src/main/java/androidx/compose/integration/demos/DemoActivity.kt
@@ -44,7 +44,7 @@
import androidx.compose.runtime.SideEffect
import androidx.compose.runtime.saveable.Saver
import androidx.compose.runtime.saveable.listSaver
-import androidx.compose.runtime.savedinstancestate.rememberSavedInstanceState
+import androidx.compose.runtime.saveable.rememberSaveable
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.platform.ComposeView
@@ -62,7 +62,7 @@
val activityStarter = fun(demo: ActivityDemo<*>) {
startActivity(Intent(this, demo.activityClass.java))
}
- val navigator = rememberSavedInstanceState(
+ val navigator = rememberSaveable(
saver = Navigator.Saver(AllDemosCategory, onBackPressedDispatcher, activityStarter)
) {
Navigator(AllDemosCategory, onBackPressedDispatcher, activityStarter)
@@ -79,7 +79,7 @@
}
}
DemoTheme(demoColors, window) {
- val filteringMode = rememberSavedInstanceState(
+ val filteringMode = rememberSaveable(
saver = FilterMode.Saver(onBackPressedDispatcher)
) {
FilterMode(onBackPressedDispatcher)
diff --git a/compose/material/material/src/commonMain/kotlin/androidx/compose/material/BackdropScaffold.kt b/compose/material/material/src/commonMain/kotlin/androidx/compose/material/BackdropScaffold.kt
index 74792b6..73b029c 100644
--- a/compose/material/material/src/commonMain/kotlin/androidx/compose/material/BackdropScaffold.kt
+++ b/compose/material/material/src/commonMain/kotlin/androidx/compose/material/BackdropScaffold.kt
@@ -37,7 +37,7 @@
import androidx.compose.runtime.getValue
import androidx.compose.runtime.remember
import androidx.compose.runtime.saveable.Saver
-import androidx.compose.runtime.savedinstancestate.rememberSavedInstanceState
+import androidx.compose.runtime.saveable.rememberSaveable
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.gesture.nestedscroll.nestedScroll
@@ -188,7 +188,7 @@
snackbarHostState: SnackbarHostState = remember { SnackbarHostState() }
): BackdropScaffoldState {
val disposableClock = clock.asDisposableClock()
- return rememberSavedInstanceState(
+ return rememberSaveable(
disposableClock,
animationSpec,
confirmStateChange,
diff --git a/compose/material/material/src/commonMain/kotlin/androidx/compose/material/BottomSheetScaffold.kt b/compose/material/material/src/commonMain/kotlin/androidx/compose/material/BottomSheetScaffold.kt
index daeeead..858ff45 100644
--- a/compose/material/material/src/commonMain/kotlin/androidx/compose/material/BottomSheetScaffold.kt
+++ b/compose/material/material/src/commonMain/kotlin/androidx/compose/material/BottomSheetScaffold.kt
@@ -36,7 +36,7 @@
import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.remember
import androidx.compose.runtime.saveable.Saver
-import androidx.compose.runtime.savedinstancestate.rememberSavedInstanceState
+import androidx.compose.runtime.saveable.rememberSaveable
import androidx.compose.runtime.setValue
import androidx.compose.ui.Modifier
import androidx.compose.ui.gesture.nestedscroll.nestedScroll
@@ -173,7 +173,7 @@
confirmStateChange: (BottomSheetValue) -> Boolean = { true }
): BottomSheetState {
val disposableClock = AmbientAnimationClock.current.asDisposableClock()
- return rememberSavedInstanceState(
+ return rememberSaveable(
disposableClock,
saver = BottomSheetState.Saver(
clock = disposableClock,
diff --git a/compose/material/material/src/commonMain/kotlin/androidx/compose/material/Drawer.kt b/compose/material/material/src/commonMain/kotlin/androidx/compose/material/Drawer.kt
index d26d7c0..00d07b9 100644
--- a/compose/material/material/src/commonMain/kotlin/androidx/compose/material/Drawer.kt
+++ b/compose/material/material/src/commonMain/kotlin/androidx/compose/material/Drawer.kt
@@ -34,7 +34,7 @@
import androidx.compose.runtime.Stable
import androidx.compose.runtime.remember
import androidx.compose.runtime.saveable.Saver
-import androidx.compose.runtime.savedinstancestate.rememberSavedInstanceState
+import androidx.compose.runtime.saveable.rememberSaveable
import androidx.compose.ui.Modifier
import androidx.compose.ui.gesture.nestedscroll.nestedScroll
import androidx.compose.ui.gesture.scrollorientationlocking.Orientation
@@ -286,7 +286,7 @@
confirmStateChange: (DrawerValue) -> Boolean = { true }
): DrawerState {
val clock = AmbientAnimationClock.current.asDisposableClock()
- return rememberSavedInstanceState(
+ return rememberSaveable(
clock,
saver = DrawerState.Saver(clock, confirmStateChange)
) {
@@ -306,7 +306,7 @@
confirmStateChange: (BottomDrawerValue) -> Boolean = { true }
): BottomDrawerState {
val clock = AmbientAnimationClock.current.asDisposableClock()
- return rememberSavedInstanceState(
+ return rememberSaveable(
clock,
saver = BottomDrawerState.Saver(clock, confirmStateChange)
) {
diff --git a/compose/material/material/src/commonMain/kotlin/androidx/compose/material/ModalBottomSheet.kt b/compose/material/material/src/commonMain/kotlin/androidx/compose/material/ModalBottomSheet.kt
index d012ed9..327a1ff 100644
--- a/compose/material/material/src/commonMain/kotlin/androidx/compose/material/ModalBottomSheet.kt
+++ b/compose/material/material/src/commonMain/kotlin/androidx/compose/material/ModalBottomSheet.kt
@@ -34,7 +34,7 @@
import androidx.compose.runtime.getValue
import androidx.compose.runtime.remember
import androidx.compose.runtime.saveable.Saver
-import androidx.compose.runtime.savedinstancestate.rememberSavedInstanceState
+import androidx.compose.runtime.saveable.rememberSaveable
import androidx.compose.ui.Modifier
import androidx.compose.ui.gesture.nestedscroll.nestedScroll
import androidx.compose.ui.gesture.scrollorientationlocking.Orientation
@@ -180,7 +180,7 @@
confirmStateChange: (ModalBottomSheetValue) -> Boolean = { true }
): ModalBottomSheetState {
val disposableClock = clock.asDisposableClock()
- return rememberSavedInstanceState(
+ return rememberSaveable(
disposableClock,
saver = ModalBottomSheetState.Saver(
clock = disposableClock,
diff --git a/compose/material/material/src/commonMain/kotlin/androidx/compose/material/SwipeToDismiss.kt b/compose/material/material/src/commonMain/kotlin/androidx/compose/material/SwipeToDismiss.kt
index ba5c5ba..a1449a4 100644
--- a/compose/material/material/src/commonMain/kotlin/androidx/compose/material/SwipeToDismiss.kt
+++ b/compose/material/material/src/commonMain/kotlin/androidx/compose/material/SwipeToDismiss.kt
@@ -34,7 +34,7 @@
import androidx.compose.runtime.Composable
import androidx.compose.runtime.remember
import androidx.compose.runtime.saveable.Saver
-import androidx.compose.runtime.savedinstancestate.rememberSavedInstanceState
+import androidx.compose.runtime.saveable.rememberSaveable
import androidx.compose.ui.Modifier
import androidx.compose.ui.gesture.scrollorientationlocking.Orientation
import androidx.compose.ui.platform.AmbientAnimationClock
@@ -170,7 +170,7 @@
confirmStateChange: (DismissValue) -> Boolean = { true }
): DismissState {
val clock = AmbientAnimationClock.current.asDisposableClock()
- return rememberSavedInstanceState(
+ return rememberSaveable(
clock,
saver = DismissState.Saver(clock, confirmStateChange)
) {
diff --git a/compose/material/material/src/commonMain/kotlin/androidx/compose/material/Swipeable.kt b/compose/material/material/src/commonMain/kotlin/androidx/compose/material/Swipeable.kt
index 28095cf..2d4f98a 100644
--- a/compose/material/material/src/commonMain/kotlin/androidx/compose/material/Swipeable.kt
+++ b/compose/material/material/src/commonMain/kotlin/androidx/compose/material/Swipeable.kt
@@ -41,7 +41,7 @@
import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.remember
import androidx.compose.runtime.saveable.Saver
-import androidx.compose.runtime.savedinstancestate.rememberSavedInstanceState
+import androidx.compose.runtime.saveable.rememberSaveable
import androidx.compose.runtime.setValue
import androidx.compose.ui.Modifier
import androidx.compose.ui.composed
@@ -412,7 +412,7 @@
confirmStateChange: (newValue: T) -> Boolean = { true }
): SwipeableState<T> {
val clock = AmbientAnimationClock.current.asDisposableClock()
- return rememberSavedInstanceState(
+ return rememberSaveable(
clock,
saver = SwipeableState.Saver(
clock = clock,
diff --git a/compose/runtime/runtime-saveable/api/current.txt b/compose/runtime/runtime-saveable/api/current.txt
index f503f4a..89f9634 100644
--- a/compose/runtime/runtime-saveable/api/current.txt
+++ b/compose/runtime/runtime-saveable/api/current.txt
@@ -9,6 +9,10 @@
method public static <T> androidx.compose.runtime.saveable.Saver<T,java.lang.Object> mapSaver(kotlin.jvm.functions.Function2<? super androidx.compose.runtime.saveable.SaverScope,? super T,? extends java.util.Map<java.lang.String,?>> save, kotlin.jvm.functions.Function1<? super java.util.Map<java.lang.String,?>,? extends T> restore);
}
+ public final class RememberSaveableKt {
+ method @androidx.compose.runtime.Composable public static <T> T rememberSaveable(Object![]? inputs, optional androidx.compose.runtime.saveable.Saver<T,?> saver, optional String? key, kotlin.jvm.functions.Function0<? extends T> init);
+ }
+
public interface SaveableStateHolder {
method @androidx.compose.runtime.Composable public void SaveableStateProvider(Object key, kotlin.jvm.functions.Function0<kotlin.Unit> content);
method public void removeState(Object key);
@@ -42,15 +46,12 @@
method @Deprecated public static <Original, Saveable> androidx.compose.runtime.savedinstancestate.Saver<Original,?> listSaver(kotlin.jvm.functions.Function2<? super androidx.compose.runtime.savedinstancestate.SaverScope,? super Original,? extends java.util.List<? extends Saveable>> save, kotlin.jvm.functions.Function1<? super java.util.List<? extends Saveable>,? extends Original> restore);
method @Deprecated public static <T> androidx.compose.runtime.savedinstancestate.Saver<T,?> mapSaver(kotlin.jvm.functions.Function2<? super androidx.compose.runtime.savedinstancestate.SaverScope,? super T,? extends java.util.Map<java.lang.String,?>> save, kotlin.jvm.functions.Function1<? super java.util.Map<java.lang.String,?>,? extends T> restore);
method @Deprecated @androidx.compose.runtime.Composable public static <T> androidx.compose.runtime.savedinstancestate.RestorableStateHolder<T> rememberRestorableStateHolder();
+ method @Deprecated @androidx.compose.runtime.Composable public static <T> T rememberSavedInstanceState(Object![]? inputs, optional androidx.compose.runtime.savedinstancestate.Saver<T,?>? saver, optional String? key, kotlin.jvm.functions.Function0<? extends T> init);
}
@Deprecated public @interface ExperimentalRestorableStateHolder {
}
- public final class RememberSavedInstanceStateKt {
- method @androidx.compose.runtime.Composable public static <T> T rememberSavedInstanceState(Object![]? inputs, optional androidx.compose.runtime.saveable.Saver<T,?> saver, optional String? key, kotlin.jvm.functions.Function0<? extends T> init);
- }
-
@Deprecated public interface RestorableStateHolder<T> extends androidx.compose.runtime.saveable.SaveableStateHolder {
}
diff --git a/compose/runtime/runtime-saveable/api/public_plus_experimental_current.txt b/compose/runtime/runtime-saveable/api/public_plus_experimental_current.txt
index f503f4a..89f9634 100644
--- a/compose/runtime/runtime-saveable/api/public_plus_experimental_current.txt
+++ b/compose/runtime/runtime-saveable/api/public_plus_experimental_current.txt
@@ -9,6 +9,10 @@
method public static <T> androidx.compose.runtime.saveable.Saver<T,java.lang.Object> mapSaver(kotlin.jvm.functions.Function2<? super androidx.compose.runtime.saveable.SaverScope,? super T,? extends java.util.Map<java.lang.String,?>> save, kotlin.jvm.functions.Function1<? super java.util.Map<java.lang.String,?>,? extends T> restore);
}
+ public final class RememberSaveableKt {
+ method @androidx.compose.runtime.Composable public static <T> T rememberSaveable(Object![]? inputs, optional androidx.compose.runtime.saveable.Saver<T,?> saver, optional String? key, kotlin.jvm.functions.Function0<? extends T> init);
+ }
+
public interface SaveableStateHolder {
method @androidx.compose.runtime.Composable public void SaveableStateProvider(Object key, kotlin.jvm.functions.Function0<kotlin.Unit> content);
method public void removeState(Object key);
@@ -42,15 +46,12 @@
method @Deprecated public static <Original, Saveable> androidx.compose.runtime.savedinstancestate.Saver<Original,?> listSaver(kotlin.jvm.functions.Function2<? super androidx.compose.runtime.savedinstancestate.SaverScope,? super Original,? extends java.util.List<? extends Saveable>> save, kotlin.jvm.functions.Function1<? super java.util.List<? extends Saveable>,? extends Original> restore);
method @Deprecated public static <T> androidx.compose.runtime.savedinstancestate.Saver<T,?> mapSaver(kotlin.jvm.functions.Function2<? super androidx.compose.runtime.savedinstancestate.SaverScope,? super T,? extends java.util.Map<java.lang.String,?>> save, kotlin.jvm.functions.Function1<? super java.util.Map<java.lang.String,?>,? extends T> restore);
method @Deprecated @androidx.compose.runtime.Composable public static <T> androidx.compose.runtime.savedinstancestate.RestorableStateHolder<T> rememberRestorableStateHolder();
+ method @Deprecated @androidx.compose.runtime.Composable public static <T> T rememberSavedInstanceState(Object![]? inputs, optional androidx.compose.runtime.savedinstancestate.Saver<T,?>? saver, optional String? key, kotlin.jvm.functions.Function0<? extends T> init);
}
@Deprecated public @interface ExperimentalRestorableStateHolder {
}
- public final class RememberSavedInstanceStateKt {
- method @androidx.compose.runtime.Composable public static <T> T rememberSavedInstanceState(Object![]? inputs, optional androidx.compose.runtime.saveable.Saver<T,?> saver, optional String? key, kotlin.jvm.functions.Function0<? extends T> init);
- }
-
@Deprecated public interface RestorableStateHolder<T> extends androidx.compose.runtime.saveable.SaveableStateHolder {
}
diff --git a/compose/runtime/runtime-saveable/api/restricted_current.txt b/compose/runtime/runtime-saveable/api/restricted_current.txt
index f503f4a..89f9634 100644
--- a/compose/runtime/runtime-saveable/api/restricted_current.txt
+++ b/compose/runtime/runtime-saveable/api/restricted_current.txt
@@ -9,6 +9,10 @@
method public static <T> androidx.compose.runtime.saveable.Saver<T,java.lang.Object> mapSaver(kotlin.jvm.functions.Function2<? super androidx.compose.runtime.saveable.SaverScope,? super T,? extends java.util.Map<java.lang.String,?>> save, kotlin.jvm.functions.Function1<? super java.util.Map<java.lang.String,?>,? extends T> restore);
}
+ public final class RememberSaveableKt {
+ method @androidx.compose.runtime.Composable public static <T> T rememberSaveable(Object![]? inputs, optional androidx.compose.runtime.saveable.Saver<T,?> saver, optional String? key, kotlin.jvm.functions.Function0<? extends T> init);
+ }
+
public interface SaveableStateHolder {
method @androidx.compose.runtime.Composable public void SaveableStateProvider(Object key, kotlin.jvm.functions.Function0<kotlin.Unit> content);
method public void removeState(Object key);
@@ -42,15 +46,12 @@
method @Deprecated public static <Original, Saveable> androidx.compose.runtime.savedinstancestate.Saver<Original,?> listSaver(kotlin.jvm.functions.Function2<? super androidx.compose.runtime.savedinstancestate.SaverScope,? super Original,? extends java.util.List<? extends Saveable>> save, kotlin.jvm.functions.Function1<? super java.util.List<? extends Saveable>,? extends Original> restore);
method @Deprecated public static <T> androidx.compose.runtime.savedinstancestate.Saver<T,?> mapSaver(kotlin.jvm.functions.Function2<? super androidx.compose.runtime.savedinstancestate.SaverScope,? super T,? extends java.util.Map<java.lang.String,?>> save, kotlin.jvm.functions.Function1<? super java.util.Map<java.lang.String,?>,? extends T> restore);
method @Deprecated @androidx.compose.runtime.Composable public static <T> androidx.compose.runtime.savedinstancestate.RestorableStateHolder<T> rememberRestorableStateHolder();
+ method @Deprecated @androidx.compose.runtime.Composable public static <T> T rememberSavedInstanceState(Object![]? inputs, optional androidx.compose.runtime.savedinstancestate.Saver<T,?>? saver, optional String? key, kotlin.jvm.functions.Function0<? extends T> init);
}
@Deprecated public @interface ExperimentalRestorableStateHolder {
}
- public final class RememberSavedInstanceStateKt {
- method @androidx.compose.runtime.Composable public static <T> T rememberSavedInstanceState(Object![]? inputs, optional androidx.compose.runtime.saveable.Saver<T,?> saver, optional String? key, kotlin.jvm.functions.Function0<? extends T> init);
- }
-
@Deprecated public interface RestorableStateHolder<T> extends androidx.compose.runtime.saveable.SaveableStateHolder {
}
diff --git a/compose/runtime/runtime-saveable/samples/src/main/java/androidx/compose/runtime/saveable/samples/RememberSaveableSamples.kt b/compose/runtime/runtime-saveable/samples/src/main/java/androidx/compose/runtime/saveable/samples/RememberSaveableSamples.kt
new file mode 100644
index 0000000..0c983de
--- /dev/null
+++ b/compose/runtime/runtime-saveable/samples/src/main/java/androidx/compose/runtime/saveable/samples/RememberSaveableSamples.kt
@@ -0,0 +1,29 @@
+/*
+ * Copyright 2021 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+@file:Suppress("UNUSED_VARIABLE")
+
+package androidx.compose.runtime.saveable.samples
+
+import androidx.annotation.Sampled
+import androidx.compose.runtime.Composable
+import androidx.compose.runtime.saveable.rememberSaveable
+
+@Sampled
+@Composable
+fun RememberSaveable() {
+ val list = rememberSaveable { mutableListOf<Int>() }
+}
diff --git a/compose/runtime/runtime-saveable/samples/src/main/java/androidx/compose/runtime/savedinstancestate/samples/Samples.kt b/compose/runtime/runtime-saveable/samples/src/main/java/androidx/compose/runtime/savedinstancestate/samples/Samples.kt
index bc6ff54..060e9bd 100644
--- a/compose/runtime/runtime-saveable/samples/src/main/java/androidx/compose/runtime/savedinstancestate/samples/Samples.kt
+++ b/compose/runtime/runtime-saveable/samples/src/main/java/androidx/compose/runtime/savedinstancestate/samples/Samples.kt
@@ -21,7 +21,6 @@
import androidx.annotation.Sampled
import androidx.compose.runtime.Composable
import androidx.compose.runtime.getValue
-import androidx.compose.runtime.savedinstancestate.rememberSavedInstanceState
import androidx.compose.runtime.savedinstancestate.savedInstanceState
import androidx.compose.runtime.setValue
@@ -30,9 +29,3 @@
fun SavedInstanceStateSample() {
var value by savedInstanceState { "value" }
}
-
-@Sampled
-@Composable
-fun RememberSavedInstanceStateSample() {
- val list = rememberSavedInstanceState { mutableListOf<Int>() }
-}
diff --git a/compose/runtime/runtime-saveable/src/androidAndroidTest/kotlin/androidx/compose/runtime/savedinstancestate/ActivityRecreationTest.kt b/compose/runtime/runtime-saveable/src/androidAndroidTest/kotlin/androidx/compose/runtime/saveable/ActivityRecreationTest.kt
similarity index 94%
rename from compose/runtime/runtime-saveable/src/androidAndroidTest/kotlin/androidx/compose/runtime/savedinstancestate/ActivityRecreationTest.kt
rename to compose/runtime/runtime-saveable/src/androidAndroidTest/kotlin/androidx/compose/runtime/saveable/ActivityRecreationTest.kt
index 36b57fa..bf075ff 100644
--- a/compose/runtime/runtime-saveable/src/androidAndroidTest/kotlin/androidx/compose/runtime/savedinstancestate/ActivityRecreationTest.kt
+++ b/compose/runtime/runtime-saveable/src/androidAndroidTest/kotlin/androidx/compose/runtime/saveable/ActivityRecreationTest.kt
@@ -23,6 +23,7 @@
import android.widget.LinearLayout
import androidx.activity.ComponentActivity
import androidx.compose.runtime.remember
+import androidx.compose.runtime.saveable.rememberSaveable
import androidx.compose.runtime.saveable.test.R
import androidx.compose.ui.platform.ComposeView
import androidx.compose.ui.platform.setContent
@@ -153,7 +154,8 @@
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContent {
- array = rememberSavedInstanceState { intArrayOf(0) }
+ arrayOf<Any?>()
+ array = rememberSaveable { intArrayOf(0) }
}
}
}
@@ -183,10 +185,12 @@
setContentView(linear)
child1.setContent {
- array1 = rememberSavedInstanceState(key = "key") { intArrayOf(0) }
+ arrayOf<Any?>()
+ array1 = rememberSaveable(key = "key") { intArrayOf(0) }
}
child2.setContent {
- array2 = rememberSavedInstanceState(key = "key") { intArrayOf(0) }
+ arrayOf<Any?>()
+ array2 = rememberSaveable(key = "key") { intArrayOf(0) }
}
}
}
@@ -231,7 +235,8 @@
savedInstanceState: Bundle?
) = ComposeView(requireContext()).apply {
setContent {
- array = rememberSavedInstanceState(key = "key") { intArrayOf(0) }
+ arrayOf<Any?>()
+ array = rememberSaveable(key = "key") { intArrayOf(0) }
}
}
}
diff --git a/compose/runtime/runtime-saveable/src/androidAndroidTest/kotlin/androidx/compose/runtime/savedinstancestate/Holder.kt b/compose/runtime/runtime-saveable/src/androidAndroidTest/kotlin/androidx/compose/runtime/saveable/Holder.kt
similarity index 82%
rename from compose/runtime/runtime-saveable/src/androidAndroidTest/kotlin/androidx/compose/runtime/savedinstancestate/Holder.kt
rename to compose/runtime/runtime-saveable/src/androidAndroidTest/kotlin/androidx/compose/runtime/saveable/Holder.kt
index 1e3d2d3..87b64a6 100644
--- a/compose/runtime/runtime-saveable/src/androidAndroidTest/kotlin/androidx/compose/runtime/savedinstancestate/Holder.kt
+++ b/compose/runtime/runtime-saveable/src/androidAndroidTest/kotlin/androidx/compose/runtime/saveable/Holder.kt
@@ -1,5 +1,5 @@
/*
- * Copyright 2020 The Android Open Source Project
+ * Copyright 2021 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -14,13 +14,11 @@
* limitations under the License.
*/
-package androidx.compose.runtime.savedinstancestate
-
-import androidx.compose.runtime.saveable.Saver
+package androidx.compose.runtime.saveable
internal data class Holder(var value: Int)
internal val HolderSaver = Saver<Holder, Int>(
save = { it.value },
restore = { Holder(it) }
-)
\ No newline at end of file
+)
diff --git a/compose/runtime/runtime-saveable/src/androidAndroidTest/kotlin/androidx/compose/runtime/savedinstancestate/RememberSavedInstanceStateTest.kt b/compose/runtime/runtime-saveable/src/androidAndroidTest/kotlin/androidx/compose/runtime/saveable/RememberSaveableTest.kt
similarity index 92%
rename from compose/runtime/runtime-saveable/src/androidAndroidTest/kotlin/androidx/compose/runtime/savedinstancestate/RememberSavedInstanceStateTest.kt
rename to compose/runtime/runtime-saveable/src/androidAndroidTest/kotlin/androidx/compose/runtime/saveable/RememberSaveableTest.kt
index 254c7f1c..9eef95a 100644
--- a/compose/runtime/runtime-saveable/src/androidAndroidTest/kotlin/androidx/compose/runtime/savedinstancestate/RememberSavedInstanceStateTest.kt
+++ b/compose/runtime/runtime-saveable/src/androidAndroidTest/kotlin/androidx/compose/runtime/saveable/RememberSaveableTest.kt
@@ -14,14 +14,15 @@
* limitations under the License.
*/
-package androidx.compose.runtime.savedinstancestate
+package androidx.compose.runtime.saveable
import androidx.compose.runtime.Composable
import androidx.compose.runtime.Providers
import androidx.compose.runtime.getValue
import androidx.compose.runtime.mutableStateOf
+import androidx.compose.runtime.savedinstancestate.AmbientUiSavedStateRegistry
+import androidx.compose.runtime.savedinstancestate.UiSavedStateRegistry
import androidx.compose.runtime.setValue
-import androidx.compose.runtime.saveable.Saver
import androidx.compose.ui.test.junit4.StateRestorationTester
import androidx.compose.ui.test.junit4.createComposeRule
import androidx.test.ext.junit.runners.AndroidJUnit4
@@ -37,7 +38,7 @@
@MediumTest
@RunWith(AndroidJUnit4::class)
-class RememberSavedInstanceStateTest {
+class RememberSaveableTest {
@get:Rule
val rule = createComposeRule()
@@ -48,7 +49,7 @@
fun simpleRestore() {
var array: IntArray? = null
restorationTester.setContent {
- array = rememberSavedInstanceState {
+ array = rememberSaveable {
intArrayOf(0)
}
}
@@ -70,7 +71,7 @@
fun restoreWithSaver() {
var holder: Holder? = null
restorationTester.setContent {
- holder = rememberSavedInstanceState(saver = HolderSaver) {
+ holder = rememberSaveable(saver = HolderSaver) {
Holder(0)
}
}
@@ -103,7 +104,7 @@
}
}
) {
- val v = rememberSavedInstanceState { 1 }
+ val v = rememberSaveable { 1 }
assertEquals(1, v)
}
}
@@ -128,7 +129,7 @@
}
}
) {
- val v = rememberSavedInstanceState { 2 }
+ val v = rememberSaveable { 2 }
assertEquals(2, v)
}
}
@@ -153,7 +154,7 @@
}
}
) {
- rememberSavedInstanceState(saver = HolderSaver) { Holder(4) }
+ rememberSaveable(saver = HolderSaver) { Holder(4) }
}
}
@@ -182,7 +183,7 @@
registryFactory(it)
}
) {
- val v = rememberSavedInstanceState { 1 }
+ val v = rememberSaveable { 1 }
assertEquals(1, v)
}
}
@@ -229,7 +230,7 @@
}
}
) {
- val v = rememberSavedInstanceState(key = key) { 1 }
+ val v = rememberSaveable(key = key) { 1 }
assertEquals(1, v)
}
}
@@ -253,7 +254,7 @@
)
restorationTester.setContent {
- rememberSavedInstanceState(saver = saver) { 1 }
+ rememberSaveable(saver = saver) { 1 }
}
val latch = CountDownLatch(1)
@@ -289,7 +290,7 @@
}
) {
if (doEmit) {
- rememberSavedInstanceState { 1 }
+ rememberSaveable { 1 }
}
}
}
@@ -318,7 +319,7 @@
}
}
) {
- val v = rememberSavedInstanceState(key = passedKey) { 2 }
+ val v = rememberSaveable(key = passedKey) { 2 }
assertEquals(2, v)
}
}
@@ -340,7 +341,7 @@
}
}
) {
- val v = rememberSavedInstanceState(key = "") { 2 }
+ val v = rememberSaveable(key = "") { 2 }
assertEquals(2, v)
}
}
diff --git a/compose/runtime/runtime-saveable/src/androidAndroidTest/kotlin/androidx/compose/runtime/saveable/SaveableStateHolderTest.kt b/compose/runtime/runtime-saveable/src/androidAndroidTest/kotlin/androidx/compose/runtime/saveable/SaveableStateHolderTest.kt
index 181a478..86f5647 100644
--- a/compose/runtime/runtime-saveable/src/androidAndroidTest/kotlin/androidx/compose/runtime/saveable/SaveableStateHolderTest.kt
+++ b/compose/runtime/runtime-saveable/src/androidAndroidTest/kotlin/androidx/compose/runtime/saveable/SaveableStateHolderTest.kt
@@ -19,7 +19,6 @@
import androidx.compose.runtime.getValue
import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.remember
-import androidx.compose.runtime.savedinstancestate.rememberSavedInstanceState
import androidx.compose.runtime.setValue
import androidx.compose.ui.test.junit4.StateRestorationTester
import androidx.compose.ui.test.junit4.createComposeRule
@@ -50,7 +49,7 @@
holder.SaveableStateProvider(screen) {
if (screen == Screens.Screen1) {
numberOnScreen1 = remember { increment++ }
- restorableNumberOnScreen1 = rememberSavedInstanceState { increment++ }
+ restorableNumberOnScreen1 = rememberSaveable { increment++ }
} else {
// screen 2
remember { 100 }
@@ -87,7 +86,7 @@
val holder = rememberSaveableStateHolder()
holder.SaveableStateProvider(Screens.Screen1) {
number = remember { increment++ }
- restorableNumber = rememberSavedInstanceState { increment++ }
+ restorableNumber = rememberSaveable { increment++ }
}
}
@@ -117,7 +116,7 @@
holder.SaveableStateProvider(screen) {
if (screen == Screens.Screen2) {
numberOnScreen2 = remember { increment++ }
- restorableNumberOnScreen2 = rememberSavedInstanceState { increment++ }
+ restorableNumberOnScreen2 = rememberSaveable { increment++ }
}
}
}
@@ -153,7 +152,7 @@
holder.SaveableStateProvider(screen) {
if (screen == Screens.Screen1) {
numberOnScreen1 = remember { increment++ }
- restorableNumberOnScreen1 = rememberSavedInstanceState { increment++ }
+ restorableNumberOnScreen1 = rememberSaveable { increment++ }
} else {
// screen 2
remember { 100 }
@@ -197,7 +196,7 @@
restorableStateHolder = holder
holder.SaveableStateProvider(screen) {
if (screen == Screens.Screen1) {
- restorableNumberOnScreen1 = rememberSavedInstanceState { increment++ }
+ restorableNumberOnScreen1 = rememberSaveable { increment++ }
} else {
// screen 2
remember { 100 }
@@ -233,7 +232,7 @@
restorableStateHolder = holder
holder.SaveableStateProvider(screen) {
if (screen == Screens.Screen1) {
- restorableNumberOnScreen1 = rememberSavedInstanceState { increment++ }
+ restorableNumberOnScreen1 = rememberSaveable { increment++ }
} else {
// screen 2
remember { 100 }
diff --git a/compose/runtime/runtime-saveable/src/androidAndroidTest/kotlin/androidx/compose/runtime/savedinstancestate/SavedInstanceStateTest.kt b/compose/runtime/runtime-saveable/src/androidAndroidTest/kotlin/androidx/compose/runtime/savedinstancestate/SavedInstanceStateTest.kt
index daedf32..75426ad 100644
--- a/compose/runtime/runtime-saveable/src/androidAndroidTest/kotlin/androidx/compose/runtime/savedinstancestate/SavedInstanceStateTest.kt
+++ b/compose/runtime/runtime-saveable/src/androidAndroidTest/kotlin/androidx/compose/runtime/savedinstancestate/SavedInstanceStateTest.kt
@@ -17,6 +17,8 @@
package androidx.compose.runtime.savedinstancestate
import androidx.compose.runtime.MutableState
+import androidx.compose.runtime.saveable.Holder
+import androidx.compose.runtime.saveable.HolderSaver
import androidx.compose.ui.test.junit4.StateRestorationTester
import androidx.compose.ui.test.junit4.createComposeRule
import androidx.test.ext.junit.runners.AndroidJUnit4
diff --git a/compose/runtime/runtime-saveable/src/commonMain/kotlin/androidx/compose/runtime/saveable/ListSaver.kt b/compose/runtime/runtime-saveable/src/commonMain/kotlin/androidx/compose/runtime/saveable/ListSaver.kt
index dbf0b59..d3b7388 100644
--- a/compose/runtime/runtime-saveable/src/commonMain/kotlin/androidx/compose/runtime/saveable/ListSaver.kt
+++ b/compose/runtime/runtime-saveable/src/commonMain/kotlin/androidx/compose/runtime/saveable/ListSaver.kt
@@ -23,7 +23,7 @@
* What types can be saved is defined by [UiSavedStateRegistry], by default everything which can
* be stored in the Bundle class can be saved.
*
- * You can use it as a parameter for [savedInstanceState] or [rememberSavedInstanceState].
+ * You can use it as a parameter for [savedInstanceState] or [rememberSaveable].
*
* @sample androidx.compose.runtime.saveable.samples.ListSaverSample
*/
diff --git a/compose/runtime/runtime-saveable/src/commonMain/kotlin/androidx/compose/runtime/saveable/MapSaver.kt b/compose/runtime/runtime-saveable/src/commonMain/kotlin/androidx/compose/runtime/saveable/MapSaver.kt
index 3661da2..acc3763 100644
--- a/compose/runtime/runtime-saveable/src/commonMain/kotlin/androidx/compose/runtime/saveable/MapSaver.kt
+++ b/compose/runtime/runtime-saveable/src/commonMain/kotlin/androidx/compose/runtime/saveable/MapSaver.kt
@@ -23,7 +23,7 @@
* What types can be saved is defined by [UiSavedStateRegistry], by default everything which can
* be stored in the Bundle class can be saved.
*
- * You can use it as a parameter for [savedInstanceState] or [rememberSavedInstanceState].
+ * You can use it as a parameter for [savedInstanceState] or [rememberSaveable].
*
* @sample androidx.compose.runtime.saveable.samples.MapSaverSample
*/
diff --git a/compose/runtime/runtime-saveable/src/commonMain/kotlin/androidx/compose/runtime/savedinstancestate/RememberSavedInstanceState.kt b/compose/runtime/runtime-saveable/src/commonMain/kotlin/androidx/compose/runtime/saveable/RememberSaveable.kt
similarity index 84%
rename from compose/runtime/runtime-saveable/src/commonMain/kotlin/androidx/compose/runtime/savedinstancestate/RememberSavedInstanceState.kt
rename to compose/runtime/runtime-saveable/src/commonMain/kotlin/androidx/compose/runtime/saveable/RememberSaveable.kt
index d362e74..de83acc 100644
--- a/compose/runtime/runtime-saveable/src/commonMain/kotlin/androidx/compose/runtime/savedinstancestate/RememberSavedInstanceState.kt
+++ b/compose/runtime/runtime-saveable/src/commonMain/kotlin/androidx/compose/runtime/saveable/RememberSaveable.kt
@@ -1,5 +1,5 @@
/*
- * Copyright 2020 The Android Open Source Project
+ * Copyright 2021 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package androidx.compose.runtime.savedinstancestate
+package androidx.compose.runtime.saveable
import androidx.compose.runtime.Composable
import androidx.compose.runtime.DisposableEffect
@@ -22,9 +22,8 @@
import androidx.compose.runtime.currentCompositeKeyHash
import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.remember
-import androidx.compose.runtime.saveable.Saver
-import androidx.compose.runtime.saveable.SaverScope
-import androidx.compose.runtime.saveable.autoSaver
+import androidx.compose.runtime.savedinstancestate.AmbientUiSavedStateRegistry
+import androidx.compose.runtime.savedinstancestate.UiSavedStateRegistry
/**
* Remember the value produced by [init].
@@ -33,7 +32,7 @@
* recreation using the saved instance state mechanism (for example it happens when the screen is
* rotated in the Android application).
*
- * @sample androidx.compose.runtime.savedinstancestate.samples.RememberSavedInstanceStateSample
+ * @sample androidx.compose.runtime.saveable.samples.RememberSaveable
*
* This function works nicely with mutable objects, when you update the state of this object
* instead of recreating it. If you work with immutable objects [savedInstanceState] can suit you
@@ -54,7 +53,7 @@
* @param init A factory function to create the initial value of this state
*/
@Composable
-fun <T : Any> rememberSavedInstanceState(
+fun <T : Any> rememberSaveable(
vararg inputs: Any?,
saver: Saver<T, out Any> = autoSaver(),
key: String? = null,
@@ -89,7 +88,7 @@
if (registry != null) {
DisposableEffect(registry, finalKey) {
val valueProvider = {
- with(saverHolder.value) { SaverScopeImpl(registry::canBeSaved).save(value) }
+ with(saverHolder.value) { SaverScope { registry.canBeSaved(it) }.save(value) }
}
registry.requireCanBeSaved(valueProvider())
registry.registerProvider(finalKey, valueProvider)
@@ -110,13 +109,8 @@
"$value cannot be saved using the current UiSavedStateRegistry. The default " +
"implementation only supports types which can be stored inside the Bundle" +
". Please consider implementing a custom Saver for this class and pass it" +
- " to savedInstanceState() or rememberSavedInstanceState()."
+ " to savedInstanceState() or rememberSaveable()."
}
)
}
}
-
-// TODO this will not be needed when we make SaverScope "fun interface"
-private class SaverScopeImpl(val canBeSaved: (Any) -> Boolean) : SaverScope {
- override fun canBeSaved(value: Any) = canBeSaved.invoke(value)
-}
diff --git a/compose/runtime/runtime-saveable/src/commonMain/kotlin/androidx/compose/runtime/saveable/SaveableStateHolder.kt b/compose/runtime/runtime-saveable/src/commonMain/kotlin/androidx/compose/runtime/saveable/SaveableStateHolder.kt
index c63a1df..ef4a926 100644
--- a/compose/runtime/runtime-saveable/src/commonMain/kotlin/androidx/compose/runtime/saveable/SaveableStateHolder.kt
+++ b/compose/runtime/runtime-saveable/src/commonMain/kotlin/androidx/compose/runtime/saveable/SaveableStateHolder.kt
@@ -24,10 +24,9 @@
import androidx.compose.runtime.remember
import androidx.compose.runtime.savedinstancestate.AmbientUiSavedStateRegistry
import androidx.compose.runtime.savedinstancestate.UiSavedStateRegistry
-import androidx.compose.runtime.savedinstancestate.rememberSavedInstanceState
/**
- * Allows to save the state defined with [savedInstanceState] and [rememberSavedInstanceState]
+ * Allows to save the state defined with [savedInstanceState] and [rememberSaveable]
* for the subtree before disposing it to make it possible to compose it back next time with the
* restored state. It allows different navigation patterns to keep the ui state like scroll
* position for the currently not composed screens from the backstack.
@@ -41,7 +40,7 @@
interface SaveableStateHolder {
/**
* Put your content associated with a [key] inside the [content]. This will automatically
- * save all the states defined with [savedInstanceState] and [rememberSavedInstanceState]
+ * save all the states defined with [savedInstanceState] and [rememberSaveable]
* before disposing the content and will restore the states when you compose with this key
* again.
*
@@ -62,7 +61,7 @@
*/
@Composable
fun rememberSaveableStateHolder(): SaveableStateHolder =
- rememberSavedInstanceState(
+ rememberSaveable(
saver = SaveableStateHolderImpl.Saver
) {
SaveableStateHolderImpl()
diff --git a/compose/runtime/runtime-saveable/src/commonMain/kotlin/androidx/compose/runtime/saveable/Saver.kt b/compose/runtime/runtime-saveable/src/commonMain/kotlin/androidx/compose/runtime/saveable/Saver.kt
index 6aa0fa1..3f43303 100644
--- a/compose/runtime/runtime-saveable/src/commonMain/kotlin/androidx/compose/runtime/saveable/Saver.kt
+++ b/compose/runtime/runtime-saveable/src/commonMain/kotlin/androidx/compose/runtime/saveable/Saver.kt
@@ -25,7 +25,7 @@
* The implementations can check that the provided value can be saved via [SaverScope.canBeSaved]
*
* You can pass the implementations of this class as a parameter for [savedInstanceState] or
- * [rememberSavedInstanceState].
+ * [rememberSaveable].
*
* @sample androidx.compose.runtime.saveable.samples.CustomSaverSample
*/
@@ -51,7 +51,7 @@
* The implementations can check that the provided value can be saved via [SaverScope.canBeSaved]
*
* You can pass the implementations of this class as a parameter for [savedInstanceState] or
- * [rememberSavedInstanceState].
+ * [rememberSaveable].
*
* @sample androidx.compose.runtime.saveable.samples.CustomSaverSample
*
@@ -87,7 +87,7 @@
/**
* The default implementation of [Saver] which does not perform any conversion.
*
- * It is used by [savedInstanceState] and [rememberSavedInstanceState] by default.
+ * It is used by [savedInstanceState] and [rememberSaveable] by default.
*
* @see Saver
*/
diff --git a/compose/runtime/runtime-saveable/src/commonMain/kotlin/androidx/compose/runtime/savedinstancestate/Deprecated.kt b/compose/runtime/runtime-saveable/src/commonMain/kotlin/androidx/compose/runtime/savedinstancestate/Deprecated.kt
index be2dfa4..55f58b9 100644
--- a/compose/runtime/runtime-saveable/src/commonMain/kotlin/androidx/compose/runtime/savedinstancestate/Deprecated.kt
+++ b/compose/runtime/runtime-saveable/src/commonMain/kotlin/androidx/compose/runtime/savedinstancestate/Deprecated.kt
@@ -108,3 +108,22 @@
throw IllegalStateException(
"This method is deprecated and moved to androidx.compose.runtime.saveable package"
)
+
+@Deprecated(
+ "It was renamed to rememberSaveable() and moved to androidx.compose.runtime.saveable package",
+ ReplaceWith(
+ "rememberSaveable(key = key, init)",
+ "androidx.compose.runtime.saveable.rememberSaveable"
+ ),
+ level = DeprecationLevel.ERROR
+)
+@Suppress("DocumentExceptions")
+@Composable
+fun <T : Any> rememberSavedInstanceState(
+ vararg inputs: Any?,
+ saver: Saver<T, out Any>? = null,
+ key: String? = null,
+ init: () -> T
+): T = throw IllegalStateException(
+ "This method is deprecated and moved to androidx.compose.runtime.saveable package"
+)
diff --git a/compose/runtime/runtime-saveable/src/commonMain/kotlin/androidx/compose/runtime/savedinstancestate/SavedInstanceState.kt b/compose/runtime/runtime-saveable/src/commonMain/kotlin/androidx/compose/runtime/savedinstancestate/SavedInstanceState.kt
index eeecab5..be4afb1 100644
--- a/compose/runtime/runtime-saveable/src/commonMain/kotlin/androidx/compose/runtime/savedinstancestate/SavedInstanceState.kt
+++ b/compose/runtime/runtime-saveable/src/commonMain/kotlin/androidx/compose/runtime/savedinstancestate/SavedInstanceState.kt
@@ -23,6 +23,7 @@
import androidx.compose.runtime.structuralEqualityPolicy
import androidx.compose.runtime.saveable.Saver
import androidx.compose.runtime.saveable.autoSaver
+import androidx.compose.runtime.saveable.rememberSaveable
/**
* Used to introduce a state value of type [T] into a composition.
@@ -35,7 +36,7 @@
*
* This function works nicely with immutable values as we wrap them into [MutableState] and
* update the values in this state. If you work with a mutable object and going to update the
- * state of this object instead of recreating it [rememberSavedInstanceState] can suit you more.
+ * state of this object instead of recreating it [rememberSaveable] can suit you more.
*
* If you use it with types which can be stored inside the Bundle then it will be saved and
* restored automatically using [autoSaver], otherwise you will need to provide a custom [Saver]
@@ -61,7 +62,7 @@
key: String? = null,
policy: SnapshotMutationPolicy<T> = structuralEqualityPolicy(),
init: () -> T
-): MutableState<T> = rememberSavedInstanceState(
+): MutableState<T> = rememberSaveable(
*inputs,
saver = mutableStateSaver(saver, policy),
key = key,
diff --git a/compose/ui/ui-test-junit4/src/androidMain/kotlin/androidx/compose/ui/test/junit4/StateRestorationTester.kt b/compose/ui/ui-test-junit4/src/androidMain/kotlin/androidx/compose/ui/test/junit4/StateRestorationTester.kt
index 9d8f03b..56f5670 100644
--- a/compose/ui/ui-test-junit4/src/androidMain/kotlin/androidx/compose/ui/test/junit4/StateRestorationTester.kt
+++ b/compose/ui/ui-test-junit4/src/androidMain/kotlin/androidx/compose/ui/test/junit4/StateRestorationTester.kt
@@ -33,7 +33,7 @@
* [emulateSavedInstanceStateRestore] and assert your state is restored properly.
*
* Note that this tests only the restoration of the local state of the composable you passed to
- * [setContent] and useful for testing [savedInstanceState] or [rememberSavedInstanceState]
+ * [setContent] and useful for testing [savedInstanceState] or [rememberSaveable]
* integration. It is not testing the integration with any other life cycles or Activity callbacks.
*/
class StateRestorationTester(private val composeTestRule: ComposeContentTestRule) {
@@ -56,7 +56,7 @@
}
/**
- * Saves all the state stored via [savedInstanceState] or [rememberSavedInstanceState],
+ * Saves all the state stored via [savedInstanceState] or [rememberSaveable],
* disposes current composition, and composes again the content passed to [setContent].
* Allows to test how your component behaves when the state restoration is happening.
* Note that the state stored via regular state() or remember() will be lost.
diff --git a/navigation/navigation-compose/src/androidTest/java/androidx/navigation/compose/NavHostTest.kt b/navigation/navigation-compose/src/androidTest/java/androidx/navigation/compose/NavHostTest.kt
index 1440b95..dc344d4 100644
--- a/navigation/navigation-compose/src/androidTest/java/androidx/navigation/compose/NavHostTest.kt
+++ b/navigation/navigation-compose/src/androidTest/java/androidx/navigation/compose/NavHostTest.kt
@@ -25,7 +25,7 @@
import androidx.compose.runtime.getValue
import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.remember
-import androidx.compose.runtime.savedinstancestate.rememberSavedInstanceState
+import androidx.compose.runtime.saveable.rememberSaveable
import androidx.compose.runtime.setValue
import androidx.compose.ui.Modifier
import androidx.compose.ui.platform.AmbientContext
@@ -206,7 +206,7 @@
NavHost(navController, startDestination = "First") {
composable("First") {
- numberOnScreen1 = rememberSavedInstanceState { increment++ }
+ numberOnScreen1 = rememberSaveable { increment++ }
}
composable("Second") {}
}
@@ -243,7 +243,7 @@
composable("First") {
}
composable("Second") {
- numberOnScreen2 = rememberSavedInstanceState { increment++ }
+ numberOnScreen2 = rememberSaveable { increment++ }
}
}
}
diff --git a/navigation/navigation-compose/src/main/java/androidx/navigation/compose/NavHostController.kt b/navigation/navigation-compose/src/main/java/androidx/navigation/compose/NavHostController.kt
index 93bbc84..7d7533a 100644
--- a/navigation/navigation-compose/src/main/java/androidx/navigation/compose/NavHostController.kt
+++ b/navigation/navigation-compose/src/main/java/androidx/navigation/compose/NavHostController.kt
@@ -25,7 +25,7 @@
import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.remember
import androidx.compose.runtime.saveable.Saver
-import androidx.compose.runtime.savedinstancestate.rememberSavedInstanceState
+import androidx.compose.runtime.saveable.rememberSaveable
import androidx.compose.ui.platform.AmbientContext
import androidx.core.net.toUri
import androidx.navigation.NavBackStackEntry
@@ -77,7 +77,7 @@
@Composable
public fun rememberNavController(): NavHostController {
val context = AmbientContext.current
- return rememberSavedInstanceState(saver = NavControllerSaver(context)) {
+ return rememberSaveable(saver = NavControllerSaver(context)) {
createNavController(context)
}
}