Skip to content

Commit

Permalink
Merge branch 'v2-compose-1.6'
Browse files Browse the repository at this point in the history
# Conflicts:
#	playground/app/src/main/java/com/ramcosta/samples/playground/AppNavigation.kt
  • Loading branch information
raamcosta committed May 18, 2024
2 parents ee4e9ad + 033201d commit f2f7f9a
Show file tree
Hide file tree
Showing 14 changed files with 259 additions and 169 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ import androidx.navigation.NavHostController
import com.ramcosta.composedestinations.bottomsheet.scope.BottomSheetDestinationScopeImpl
import com.ramcosta.composedestinations.manualcomposablecalls.DestinationLambda
import com.ramcosta.composedestinations.manualcomposablecalls.ManualComposableCalls
import com.ramcosta.composedestinations.manualcomposablecalls.allDeepLinks
import com.ramcosta.composedestinations.navigation.DependenciesContainerBuilder
import com.ramcosta.composedestinations.spec.DestinationStyle
import com.ramcosta.composedestinations.spec.TypedDestinationSpec
Expand Down Expand Up @@ -45,9 +46,9 @@ object DestinationStyleBottomSheet : DestinationStyle() {
val contentWrapper = manualComposableCalls[destination.route] as? DestinationLambda<T>?

bottomSheet(
destination.route,
destination.arguments,
destination.deepLinks
route = destination.route,
arguments = destination.arguments,
deepLinks = destination.allDeepLinks(manualComposableCalls)
) { navBackStackEntry ->
CallComposable(
destination,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,6 @@ import com.ramcosta.composedestinations.codegen.model.SubModuleInfo
import com.ramcosta.composedestinations.codegen.servicelocator.ServiceLocator
import com.ramcosta.composedestinations.codegen.servicelocator.customNavTypeWriter
import com.ramcosta.composedestinations.codegen.servicelocator.defaultKtxSerializableNavTypeSerializerWriter
import com.ramcosta.composedestinations.codegen.servicelocator.destinationWithNavArgsMapper
import com.ramcosta.composedestinations.codegen.servicelocator.destinationsWriter
import com.ramcosta.composedestinations.codegen.servicelocator.initialValidator
import com.ramcosta.composedestinations.codegen.servicelocator.moduleOutputWriter
Expand All @@ -37,25 +36,38 @@ class CodeGenerator(
navTypeSerializers: List<NavTypeSerializer>,
submodules: List<SubModuleInfo>
) {
initialValidator.validate(
initConfigurationValues()

val validatedDestinations: List<CodeGenProcessedDestination> = initialValidator.validate(
navGraphs = navGraphs,
destinations = destinations,
submoduleResultSenders = submodules
.flatMap { it.publicResultSenders }
.associateBy { it.genDestinationQualifiedName }
)

initConfigurationValues()

val processedDestinations: List<CodeGenProcessedDestination> = destinationWithNavArgsMapper.map(destinations)
postValidateGenerate(
navGraphs = navGraphs,
destinations = validatedDestinations,
navTypeSerializers = navTypeSerializers,
submodules = submodules
)
}

val navTypeNamesByType = customNavTypeWriter.write(navGraphs, processedDestinations, navTypeSerializers)
private fun postValidateGenerate(
navGraphs: List<RawNavGraphGenParams>,
destinations: List<CodeGenProcessedDestination>,
navTypeSerializers: List<NavTypeSerializer>,
submodules: List<SubModuleInfo>
) {
val navTypeNamesByType =
customNavTypeWriter.write(navGraphs, destinations, navTypeSerializers)

moduleOutputWriter(navTypeNamesByType, submodules).write(navGraphs, processedDestinations)
moduleOutputWriter(navTypeNamesByType, submodules).write(navGraphs, destinations)

destinationsWriter(navTypeNamesByType).write(processedDestinations)
destinationsWriter(navTypeNamesByType).write(destinations)

if (shouldWriteKtxSerializableNavTypeSerializer(processedDestinations)) {
if (shouldWriteKtxSerializableNavTypeSerializer(destinations)) {
defaultKtxSerializableNavTypeSerializerWriter.write()
}
}
Expand Down

This file was deleted.

Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
package com.ramcosta.composedestinations.codegen.servicelocator

import com.ramcosta.composedestinations.codegen.commons.DestinationWithNavArgsMapper
import com.ramcosta.composedestinations.codegen.facades.CodeOutputStreamMaker
import com.ramcosta.composedestinations.codegen.model.CodeGenConfig
import com.ramcosta.composedestinations.codegen.model.CustomNavType
Expand Down Expand Up @@ -74,8 +73,6 @@ internal fun ServiceLocator.navGraphsSingleObjectWriter(
::SingleNavGraphWriter
)

internal val ServiceLocator.destinationWithNavArgsMapper get() = DestinationWithNavArgsMapper()

internal val ServiceLocator.initialValidator get() = InitialValidator(
codeGenConfig,
isBottomSheetDependencyPresent
Expand Down
Loading

0 comments on commit f2f7f9a

Please sign in to comment.