Skip to content

Commit

Permalink
Added ViewModel and removed Saver
Browse files Browse the repository at this point in the history
  • Loading branch information
chRyNaN committed Aug 20, 2022
1 parent 806f272 commit e8d8a03
Show file tree
Hide file tree
Showing 15 changed files with 38 additions and 176 deletions.

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -4,13 +4,7 @@ import com.chrynan.navigation.*

@ExperimentalNavigationApi
internal class ComposeNavigatorImpl<Destination : NavigationDestination, Context : NavigationContext<Destination>>(
initialContext: Context,
destinationSaver: Saver<Destination, Any>,
contextSaver: Saver<Context, Any>
initialContext: Context
) : BaseNavigatorImpl<Destination, Context, ComposeNavigatorStateImpl<Destination, Context>>(
state = ComposeNavigatorStateImpl(
initialContext = initialContext,
destinationSaver = destinationSaver,
contextSaver = contextSaver
)
state = ComposeNavigatorStateImpl(initialContext = initialContext)
)
Original file line number Diff line number Diff line change
Expand Up @@ -8,17 +8,13 @@ import com.chrynan.navigation.*
interface ComposeNavigationDestinationState<Destination : NavigationDestination> :
NavigationDestinationState<Destination> {

val destinationSaver: Saver<Destination, Any>

companion object
}

@ExperimentalNavigationApi
interface ComposeNavigationContextState<Destination : NavigationDestination, Context : NavigationContext<Destination>> :
NavigationContextState<Destination, Context> {

val contextSaver: Saver<Context, Any>

companion object
}

Expand All @@ -32,9 +28,7 @@ interface ComposeNavigatorState<Destination : NavigationDestination, Context : N

@ExperimentalNavigationApi
internal class ComposeNavigatorStateImpl<Destination : NavigationDestination, Context : NavigationContext<Destination>>(
initialContext: Context,
override val destinationSaver: Saver<Destination, Any>,
override val contextSaver: Saver<Context, Any>
initialContext: Context
) : BaseNavigatorStateImpl<Destination, Context>(initialContext = initialContext),
ComposeNavigatorState<Destination, Context> {

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -42,15 +42,9 @@ import com.chrynan.navigation.*
@ExperimentalNavigationApi
@Composable
fun <Destination : NavigationDestination> rememberNavigator(
initialDestination: Destination,
destinationSaver: Saver<Destination, Any> = autoSaver(),
contextSaver: Saver<SingleNavigationContext<Destination>, Any> = autoSaver()
initialDestination: Destination
): Navigator<Destination, SingleNavigationContext<Destination>> = remember {
ComposeNavigatorImpl(
initialContext = SingleNavigationContext(initialDestination = initialDestination),
destinationSaver = destinationSaver,
contextSaver = contextSaver
)
ComposeNavigatorImpl(initialContext = SingleNavigationContext(initialDestination = initialDestination))
}

/**
Expand Down Expand Up @@ -95,13 +89,7 @@ fun <Destination : NavigationDestination> rememberNavigator(
@ExperimentalNavigationApi
@Composable
fun <Destination : NavigationDestination, Context : NavigationContext<Destination>> rememberNavigator(
initialContext: Context,
destinationSaver: Saver<Destination, Any> = autoSaver(),
contextSaver: Saver<Context, Any> = autoSaver()
initialContext: Context
): Navigator<Destination, Context> = remember {
ComposeNavigatorImpl(
initialContext = initialContext,
destinationSaver = destinationSaver,
contextSaver = contextSaver
)
ComposeNavigatorImpl(initialContext = initialContext)
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
package com.chrynan.navigation.compose

class SaveableContextStack {
}

This file was deleted.

This file was deleted.

This file was deleted.

Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
@file:Suppress("unused")

package com.chrynan.navigation

actual abstract class ViewModel internal actual constructor(): androidx.lifecycle.ViewModel()
Original file line number Diff line number Diff line change
Expand Up @@ -95,7 +95,8 @@ fun <Destination : Any, Context : NavigationContext<Destination>> Navigator<Dest

abstract class BaseNavigatorImpl<Destination : NavigationDestination, Context : NavigationContext<Destination>, State : BaseNavigatorStateImpl<Destination, Context>>(
final override val state: State
) : Navigator<Destination, Context> {
) : ViewModel(),
Navigator<Destination, Context> {

private val contextKeyStack = mutableMapOf(state.initialContext to mutableListOf(state.initialDestination))

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
package com.chrynan.navigation

expect abstract class ViewModel internal constructor()
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
@file:Suppress("unused")

package com.chrynan.navigation

actual abstract class ViewModel internal actual constructor()
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
@file:Suppress("unused")

package com.chrynan.navigation

actual abstract class ViewModel internal actual constructor()
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
@file:Suppress("unused")

package com.chrynan.navigation

actual abstract class ViewModel internal actual constructor()
Original file line number Diff line number Diff line change
Expand Up @@ -4,12 +4,9 @@ import androidx.compose.foundation.Image
import androidx.compose.foundation.layout.*
import androidx.compose.material.*
import androidx.compose.runtime.Composable
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.unit.dp
import com.chrynan.navigation.ExperimentalNavigationApi
import com.chrynan.navigation.compose.NavContainer
import com.chrynan.navigation.compose.goTo
import com.chrynan.navigation.compose.rememberNavigator

@ExperimentalNavigationApi
Expand All @@ -21,11 +18,9 @@ fun App() {

Column {
Box(modifier = Modifier.weight(1f)) {
NavContainer(navigator)
}

NavContainer(navigator = navigator) { context, destination ->
NavContainer(navigator = navigator) { context, destination ->

}
}

BottomNavigation {
Expand Down

0 comments on commit e8d8a03

Please sign in to comment.