findNavController с инструментом DI - PullRequest
2 голосов
/ 19 мая 2019

У меня есть приложение в виде одного действия и нескольких фрагментов с использованием компонента навигации.

Я использую Koin для моего DI. Я хотел создать класс Navigator в своем приложении в соответствии с постулатами чистой архитектуры.

Этот гипотетический класс будет выглядеть так:

class Navigator(private val navHostFragment: NavHostFragment)
{

    fun toStudentsProfile():Unit
    {
        val action = HomeFragmentDirections.toStudentsProfile()
        navHostFragment.findNavController().navigate(action)
    }

    fun toTeachersProfile():Unit
    {
        val action = HomeFragmentDirections.toTeachersProfile()
        navHostFragment.findNavController().navigate(action)
    }
}

Моя проблема сейчас в том, как мне создать это в контейнере Koin?

val platformModule = module {

    single { Navigator("WHAT CAN BE DONE HERE") }
    single { Session(get()) }
    single { CoroutineScope(Dispatchers.IO + Job()) }

}

Более того, компонент Koin будет готов еще до того, как будет готов navhostfragment, поэтому он не сможет удовлетворить зависимость, для начала.

Есть ли способ предоставить Коину экземпляр класса и затем впоследствии начать его использовать?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...