The Dagger Component
@Component
public interface ApplicationComponent {
void inject(LoginActivity loginActivity);
}
Application class
class MyApplication: Application() {
val appComponent = DaggerApplicationComponent.create()
}
Activity
class LoginActivity: Activity() {
@Inject lateinit var loginViewModel: LoginViewModel
}
override fun onCreate(savedInstanceState: Bundle?) {
(applicationContext as MyApplication).appComponent.inject(this)
super.onCreate(savedInstanceState)
}
In my activity's onCreate() , I'm casting my applicationContext to Application class and then accessing the variable inside it. Can someone please elaborate on how does it work and why the casting is needed.