힐트 이해가 너무 안갑니다.. 유데미 강의보면서 하고있는데
@AndroidEntryPoint
class MainActivity : AppCompatActivity() {
@Inject
lateinit var factory : NewsViewModelFactory
lateinit var viewmodel : NewsViewModel
private lateinit var binding : ActivityMainBinding
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
binding = ActivityMainBinding.inflate(layoutInflater)
setContentView(binding.root)
val navHostFragment = supportFragmentManager.findFragmentById(R.id.fragment) as NavHostFragment
val navController = navHostFragment.navController
binding.bnvNews.setupWithNavController(
navController
)
viewmodel = ViewModelProvider(this,factory).get(NewsViewModel::class.java)
}
}
이렇게 메인이 있고
@Module
@InstallIn(SingletonComponent::class)
class FactoryModule {
@Singleton
@Provides
fun provideNewsViewModelFactory(
application: Application,
getNewsHeadlinesUseCase: GetNewsHeadlinesUseCase) : NewsViewModelFactory {
return NewsViewModelFactory(application, getNewsHeadlinesUseCase)
}
}
이렇게 있는데 팩토리모듈에 provideNewsViewModelFactory을 눌러보면 메인액티비티의 factory로 이동하는데 @Module이 의존성을 제공하는거고 @Inject가 의존성을 받는거로 알고있습니다만 잘 이해가 안갑니다
모듈클래스에서 리턴을 하면 저기 메인 액티비티의 factory로 리턴을 해주는건가요?
그리고 모듈클래스에 provideNewsViewModelFactory메소드의 파라미터는 어디서 받아온건가요?
또 이해 안가는건 지금 이 모듈이외에 A모듈과 B모듈이 있고, A모듈 메소드를 눌러서 이동하면
B모듈로 갑니다.. 모듈에서 리턴을 했는데 왜 모듈로 가는건지 이해가 안됩니다. 형태는 똑같고 클래스만 다르구요 컴포넌트 클래스가아닌 모듈끼리 리턴을 주고받고가 된건지 모르겠어요 정말