Skip to content

Commit

Permalink
Add missing DialogProperties argument (#115)
Browse files Browse the repository at this point in the history
* Missing `DialogProperties` argument added to `dialog` NavGraphBuilder extensions

* Binary API updated.

* Old functions recreated (as deprecated-hidden) to maintain binary compatibility

* Lint fix
  • Loading branch information
blipinsk authored Feb 19, 2024
1 parent c9f1e4e commit 099da1e
Show file tree
Hide file tree
Showing 2 changed files with 48 additions and 1 deletion.
4 changes: 3 additions & 1 deletion core/api/core.api
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,9 @@ public final class com/kiwi/navigationcompose/typed/NavBuilderKt {
public static synthetic fun composable$default (Landroidx/navigation/NavGraphBuilder;Lkotlin/reflect/KClass;Lkotlinx/serialization/KSerializer;Ljava/util/List;Lkotlin/jvm/functions/Function4;ILjava/lang/Object;)V
public static final fun createNavArguments (Lkotlinx/serialization/KSerializer;)Ljava/util/List;
public static final fun decodeArguments (Lkotlinx/serialization/KSerializer;Landroidx/navigation/NavBackStackEntry;)Lcom/kiwi/navigationcompose/typed/Destination;
public static final fun dialog (Landroidx/navigation/NavGraphBuilder;Lkotlin/reflect/KClass;Lkotlinx/serialization/KSerializer;Ljava/util/List;Lkotlin/jvm/functions/Function4;)V
public static final fun dialog (Landroidx/navigation/NavGraphBuilder;Lkotlin/reflect/KClass;Lkotlinx/serialization/KSerializer;Ljava/util/List;Landroidx/compose/ui/window/DialogProperties;Lkotlin/jvm/functions/Function4;)V
public static final synthetic fun dialog (Landroidx/navigation/NavGraphBuilder;Lkotlin/reflect/KClass;Lkotlinx/serialization/KSerializer;Ljava/util/List;Lkotlin/jvm/functions/Function4;)V
public static synthetic fun dialog$default (Landroidx/navigation/NavGraphBuilder;Lkotlin/reflect/KClass;Lkotlinx/serialization/KSerializer;Ljava/util/List;Landroidx/compose/ui/window/DialogProperties;Lkotlin/jvm/functions/Function4;ILjava/lang/Object;)V
public static synthetic fun dialog$default (Landroidx/navigation/NavGraphBuilder;Lkotlin/reflect/KClass;Lkotlinx/serialization/KSerializer;Ljava/util/List;Lkotlin/jvm/functions/Function4;ILjava/lang/Object;)V
public static final synthetic fun navigation (Landroidx/navigation/NavGraphBuilder;Lkotlin/reflect/KClass;Lkotlinx/serialization/KSerializer;Ljava/lang/String;Ljava/util/List;Lkotlin/jvm/functions/Function1;)V
public static final fun navigation (Landroidx/navigation/NavGraphBuilder;Lkotlin/reflect/KClass;Lkotlinx/serialization/KSerializer;Ljava/lang/String;Ljava/util/List;Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function1;)V
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ import androidx.compose.animation.AnimatedContentTransitionScope
import androidx.compose.animation.EnterTransition
import androidx.compose.animation.ExitTransition
import androidx.compose.runtime.Composable
import androidx.compose.ui.window.DialogProperties
import androidx.core.os.bundleOf
import androidx.lifecycle.SavedStateHandle
import androidx.navigation.NamedNavArgument
Expand Down Expand Up @@ -129,12 +130,14 @@ public fun <T : Destination> NavGraphBuilder.composable(
@MainThread
public inline fun <reified T : Destination> NavGraphBuilder.dialog(
deepLinks: List<NavDeepLink> = emptyList(),
dialogProperties: DialogProperties = DialogProperties(),
noinline content: @Composable T.(NavBackStackEntry) -> Unit,
) {
dialog(
kClass = T::class,
serializer = serializer(),
deepLinks = deepLinks,
dialogProperties = dialogProperties,
content = content,
)
}
Expand All @@ -151,13 +154,15 @@ public fun <T : Destination> NavGraphBuilder.dialog(
kClass: KClass<T>,
serializer: KSerializer<T>,
deepLinks: List<NavDeepLink> = emptyList(),
dialogProperties: DialogProperties = DialogProperties(),
content: @Composable T.(NavBackStackEntry) -> Unit,
) {
registerDestinationType(kClass, serializer)
dialog(
route = createRoutePattern(serializer),
arguments = createNavArguments(serializer),
deepLinks = deepLinks,
dialogProperties = dialogProperties,
) { navBackStackEntry ->
decodeArguments(serializer, navBackStackEntry).content(navBackStackEntry)
}
Expand Down Expand Up @@ -326,3 +331,43 @@ public fun <T : Destination> NavGraphBuilder.navigation(
builder = builder,
)
}

@Deprecated(
"Deprecated in favor of dialog builder that supports DialogProperties",
level = DeprecationLevel.HIDDEN,
)
@ExperimentalSerializationApi
@MainThread
public inline fun <reified T : Destination> NavGraphBuilder.dialog(
deepLinks: List<NavDeepLink> = emptyList(),
noinline content: @Composable T.(NavBackStackEntry) -> Unit,
) {
dialog(
kClass = T::class,
serializer = serializer(),
deepLinks = deepLinks,
content = content,
)
}

@Deprecated(
"Deprecated in favor of dialog builder that supports DialogProperties",
level = DeprecationLevel.HIDDEN,
)
@ExperimentalSerializationApi
@MainThread
public fun <T : Destination> NavGraphBuilder.dialog(
kClass: KClass<T>,
serializer: KSerializer<T>,
deepLinks: List<NavDeepLink> = emptyList(),
content: @Composable T.(NavBackStackEntry) -> Unit,
) {
registerDestinationType(kClass, serializer)
dialog(
route = createRoutePattern(serializer),
arguments = createNavArguments(serializer),
deepLinks = deepLinks,
) { navBackStackEntry ->
decodeArguments(serializer, navBackStackEntry).content(navBackStackEntry)
}
}

0 comments on commit 099da1e

Please sign in to comment.