refactor: Deprecated RememberFlow extensions.

This commit is contained in:
Neil Marietta 2024-02-28 19:34:13 +01:00
parent fd105f362e
commit 5f69a56eef
5 changed files with 35 additions and 3 deletions

View File

@ -40,7 +40,8 @@ public val DependencyHandler.`hilt-navigation-compose`: Any
get() = androidx("hilt", moduleSuffix = "navigation-compose") version `hilt-navigation-compose version`
public val DependencyHandler.`lifecycle-viewModel-compose`: Any
get() = androidx("lifecycle", moduleSuffix = "viewmodel-compose") version `lifecycle version`
public val DependencyHandler.`lifecycle-runtime-compose`: Any
get() = androidx("lifecycle", moduleSuffix = "runtime-compose") version `lifecycle version`
public fun DependencyHandler.compose(
module: String,
moduleSuffix: String? = null,

View File

@ -63,7 +63,7 @@ internal fun initVersions(libs: VersionCatalog) {
`espresso version` = "3.5.0"
`fragment version` = "1.6.2"
`ktx version` = "1.9.0"
`lifecycle version` = "2.6.1"
`lifecycle version` = "2.7.0"
`material version` = "1.7.0"
`android-paging version` = "3.1.0"
`android-work version` = "2.8.1"

View File

@ -443,6 +443,7 @@ public final class me/proton/core/compose/component/bottomsheet/ModalBottomSheet
public final class me/proton/core/compose/flow/RememberFlowKt {
public static final fun rememberAsState (Lkotlinx/coroutines/flow/Flow;Ljava/lang/Object;Landroidx/compose/runtime/Composer;I)Landroidx/compose/runtime/State;
public static final fun rememberAsState (Lkotlinx/coroutines/flow/StateFlow;Ljava/lang/Object;Landroidx/compose/runtime/Composer;I)Landroidx/compose/runtime/State;
public static final fun rememberFlowWithLifecycle (Lkotlinx/coroutines/flow/Flow;Landroidx/lifecycle/Lifecycle;Landroidx/lifecycle/Lifecycle$State;Landroidx/compose/runtime/Composer;II)Lkotlinx/coroutines/flow/Flow;
}

View File

@ -50,6 +50,7 @@ dependencies {
`lifecycle-common`,
`lifecycle-viewModel`,
`lifecycle-viewModel-compose`,
`lifecycle-runtime-compose`,
)
implementation(

View File

@ -24,8 +24,10 @@ import androidx.compose.runtime.collectAsState
import androidx.compose.runtime.remember
import androidx.compose.ui.platform.LocalLifecycleOwner
import androidx.lifecycle.Lifecycle
import androidx.lifecycle.compose.collectAsStateWithLifecycle
import androidx.lifecycle.flowWithLifecycle
import kotlinx.coroutines.flow.Flow
import kotlinx.coroutines.flow.StateFlow
/**
* Merges functionality from Compose [androidx.compose.runtime.remember] and flow's [flowWithLifecycle].
@ -38,6 +40,13 @@ import kotlinx.coroutines.flow.Flow
*
* @see [rememberAsState]
*/
@Deprecated(
message = "Use Flow.collectAsStateWithLifecycle(initialValue) or StateFlow.collectAsStateWithLifecycle()",
replaceWith = ReplaceWith(
"flow.collectAsStateWithLifecycle()",
"androidx.lifecycle.compose.collectAsStateWithLifecycle"
)
)
@Composable
fun <T> rememberFlowWithLifecycle(
flow: Flow<T>,
@ -58,8 +67,28 @@ fun <T> rememberFlowWithLifecycle(
* val viewState by rememberAsState(viewModel.viewState, ViewState.initialValue)
* ```
*/
@Deprecated(
message = "Use Flow.collectAsStateWithLifecycle(initialValue) or StateFlow.collectAsStateWithLifecycle()",
replaceWith = ReplaceWith(
"flow.collectAsStateWithLifecycle(initial)",
"androidx.lifecycle.compose.collectAsStateWithLifecycle"
)
)
@Composable
fun <T> rememberAsState(
flow: Flow<T>,
initial: T
): State<T> = rememberFlowWithLifecycle(flow).collectAsState(initial)
): State<T> = flow.collectAsStateWithLifecycle(initial)
@Deprecated(
message = "Use StateFlow.collectAsStateWithLifecycle()",
replaceWith = ReplaceWith(
"flow.collectAsStateWithLifecycle()",
"androidx.lifecycle.compose.collectAsStateWithLifecycle"
)
)
@Composable
fun <T> rememberAsState(
flow: StateFlow<T>,
initial: T
): State<T> = flow.collectAsStateWithLifecycle()