Skip to content

Commit 099da1e

Browse files
authored
Add missing DialogProperties argument (#115)
* Missing `DialogProperties` argument added to `dialog` NavGraphBuilder extensions * Binary API updated. * Old functions recreated (as deprecated-hidden) to maintain binary compatibility * Lint fix
1 parent c9f1e4e commit 099da1e

File tree

2 files changed

+48
-1
lines changed

2 files changed

+48
-1
lines changed

core/api/core.api

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,9 @@ public final class com/kiwi/navigationcompose/typed/NavBuilderKt {
88
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
99
public static final fun createNavArguments (Lkotlinx/serialization/KSerializer;)Ljava/util/List;
1010
public static final fun decodeArguments (Lkotlinx/serialization/KSerializer;Landroidx/navigation/NavBackStackEntry;)Lcom/kiwi/navigationcompose/typed/Destination;
11-
public static final fun dialog (Landroidx/navigation/NavGraphBuilder;Lkotlin/reflect/KClass;Lkotlinx/serialization/KSerializer;Ljava/util/List;Lkotlin/jvm/functions/Function4;)V
11+
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
12+
public static final synthetic fun dialog (Landroidx/navigation/NavGraphBuilder;Lkotlin/reflect/KClass;Lkotlinx/serialization/KSerializer;Ljava/util/List;Lkotlin/jvm/functions/Function4;)V
13+
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
1214
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
1315
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
1416
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

core/src/main/kotlin/com/kiwi/navigationcompose/typed/NavBuilder.kt

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import androidx.compose.animation.AnimatedContentTransitionScope
55
import androidx.compose.animation.EnterTransition
66
import androidx.compose.animation.ExitTransition
77
import androidx.compose.runtime.Composable
8+
import androidx.compose.ui.window.DialogProperties
89
import androidx.core.os.bundleOf
910
import androidx.lifecycle.SavedStateHandle
1011
import androidx.navigation.NamedNavArgument
@@ -129,12 +130,14 @@ public fun <T : Destination> NavGraphBuilder.composable(
129130
@MainThread
130131
public inline fun <reified T : Destination> NavGraphBuilder.dialog(
131132
deepLinks: List<NavDeepLink> = emptyList(),
133+
dialogProperties: DialogProperties = DialogProperties(),
132134
noinline content: @Composable T.(NavBackStackEntry) -> Unit,
133135
) {
134136
dialog(
135137
kClass = T::class,
136138
serializer = serializer(),
137139
deepLinks = deepLinks,
140+
dialogProperties = dialogProperties,
138141
content = content,
139142
)
140143
}
@@ -151,13 +154,15 @@ public fun <T : Destination> NavGraphBuilder.dialog(
151154
kClass: KClass<T>,
152155
serializer: KSerializer<T>,
153156
deepLinks: List<NavDeepLink> = emptyList(),
157+
dialogProperties: DialogProperties = DialogProperties(),
154158
content: @Composable T.(NavBackStackEntry) -> Unit,
155159
) {
156160
registerDestinationType(kClass, serializer)
157161
dialog(
158162
route = createRoutePattern(serializer),
159163
arguments = createNavArguments(serializer),
160164
deepLinks = deepLinks,
165+
dialogProperties = dialogProperties,
161166
) { navBackStackEntry ->
162167
decodeArguments(serializer, navBackStackEntry).content(navBackStackEntry)
163168
}
@@ -326,3 +331,43 @@ public fun <T : Destination> NavGraphBuilder.navigation(
326331
builder = builder,
327332
)
328333
}
334+
335+
@Deprecated(
336+
"Deprecated in favor of dialog builder that supports DialogProperties",
337+
level = DeprecationLevel.HIDDEN,
338+
)
339+
@ExperimentalSerializationApi
340+
@MainThread
341+
public inline fun <reified T : Destination> NavGraphBuilder.dialog(
342+
deepLinks: List<NavDeepLink> = emptyList(),
343+
noinline content: @Composable T.(NavBackStackEntry) -> Unit,
344+
) {
345+
dialog(
346+
kClass = T::class,
347+
serializer = serializer(),
348+
deepLinks = deepLinks,
349+
content = content,
350+
)
351+
}
352+
353+
@Deprecated(
354+
"Deprecated in favor of dialog builder that supports DialogProperties",
355+
level = DeprecationLevel.HIDDEN,
356+
)
357+
@ExperimentalSerializationApi
358+
@MainThread
359+
public fun <T : Destination> NavGraphBuilder.dialog(
360+
kClass: KClass<T>,
361+
serializer: KSerializer<T>,
362+
deepLinks: List<NavDeepLink> = emptyList(),
363+
content: @Composable T.(NavBackStackEntry) -> Unit,
364+
) {
365+
registerDestinationType(kClass, serializer)
366+
dialog(
367+
route = createRoutePattern(serializer),
368+
arguments = createNavArguments(serializer),
369+
deepLinks = deepLinks,
370+
) { navBackStackEntry ->
371+
decodeArguments(serializer, navBackStackEntry).content(navBackStackEntry)
372+
}
373+
}

0 commit comments

Comments
 (0)