Skip to content

Commit

Permalink
reinforce example for navigation & args
Browse files Browse the repository at this point in the history
  • Loading branch information
arnaudgiuliani committed Aug 27, 2024
1 parent fef2f39 commit d18a974
Show file tree
Hide file tree
Showing 6 changed files with 48 additions and 11 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@ import org.koin.sample.sandbox.mvp.MVPActivity
import org.koin.sample.sandbox.mvvm.MVVMActivity
import org.koin.sample.sandbox.mvvm.MVVMFragment
import org.koin.sample.sandbox.navigation.NavViewModel
import org.koin.sample.sandbox.navigation.NavViewModel2
import org.koin.sample.sandbox.scope.ScopedActivityA
import org.koin.sample.sandbox.workmanager.SimpleWorker
import org.koin.sample.sandbox.workmanager.SimpleWorkerService
Expand Down Expand Up @@ -120,6 +121,7 @@ val workerScopedModule = lazyModule {

val navModule = lazyModule {
viewModelOf(::NavViewModel)
viewModelOf(::NavViewModel2)
}

val allModules = lazyModule {
Expand Down

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -9,12 +9,14 @@ import android.widget.Button
import androidx.navigation.fragment.findNavController
import org.koin.androidx.navigation.koinNavGraphViewModel
import org.koin.sample.sandbox.R
import org.koin.sample.sandbox.navigation.NavFragmentB.Companion

class NavFragmentA : Fragment() {

val mainViewModel: NavViewModel by koinNavGraphViewModel(R.id.main)

lateinit var button: Button
var int = 1

override fun onCreateView(
inflater: LayoutInflater, container: ViewGroup?,
Expand All @@ -29,10 +31,14 @@ class NavFragmentA : Fragment() {
button = requireView().findViewById(R.id.a_button)

button.setOnClickListener {
findNavController().navigate(R.id.action_fragmentA_to_fragmentB)
int++
println("A -> $int")
findNavController().navigate(R.id.action_fragmentA_to_fragmentB,
Bundle().apply { putString("argKey", "value+$int") })
}

ID = mainViewModel.id
println("A vm id: ${NavFragmentB.ID}")
}

companion object {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ import org.koin.sample.sandbox.R
class NavFragmentB : Fragment() {

val mainViewModel: NavViewModel by koinNavGraphViewModel(R.id.main)
val vm2: NavViewModel2 by koinNavGraphViewModel(R.id.main)

lateinit var button: Button

Expand All @@ -34,7 +35,10 @@ class NavFragmentB : Fragment() {

ID = mainViewModel.id
assert(ID == NavFragmentA.ID)
println("vm id: $ID")
println("B vm id: $ID")
println("vm arg: ${mainViewModel.argument}")

println("B - ${vm2.id} - ${vm2.argument}")
}

companion object {
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
package org.koin.sample.sandbox.navigation

import androidx.lifecycle.SavedStateHandle
import androidx.lifecycle.ViewModel
import java.util.*

class NavViewModel(private val savedStateHandle: SavedStateHandle) : ViewModel(){

init {
println("* NavViewModel *")
}

val id : String = UUID.randomUUID().toString()
override fun toString(): String = "NavViewModel[id:$id]"

val argument: String? = savedStateHandle.get<String>("argKey")
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
package org.koin.sample.sandbox.navigation

import androidx.lifecycle.SavedStateHandle
import androidx.lifecycle.ViewModel
import java.util.*

class NavViewModel2(private val savedStateHandle: SavedStateHandle) : ViewModel(){

init {
println("* NavViewModel2 *")
}

val id : String = UUID.randomUUID().toString()
override fun toString(): String = "NavViewModel2[id:$id]"

val argument: String? = savedStateHandle.get<String>("argKey")
}

0 comments on commit d18a974

Please sign in to comment.