Как заинжектить activity в класс используя Dagger2?

Помогите, пожалуйста написть граф для Dagger2. Мне нужно заинжектить MainActivity в следующий класс:

class JokeDialog @Inject constructor(var activity: Activity) {
    val dialog = AlertDialog.Builder(activity)
        .setNegativeButton(android.R.string.cancel) { _, _ ->
        }
        .setPositiveButton(android.R.string.ok) { _, _ ->
        }

    operator fun invoke( message: String,action: () -> Unit) {
        dialog
            .setMessage(message)
            .setPositiveButton(android.R.string.ok) { _, _ ->
                action()
            }.show()
    }

}

Мой AppComponent выглядит так:

@Singleton
@Component(modules = [MainActivityModule::class])
interface AppComponent {

    @Component.Factory
    interface Factory {
        fun create(
            @BindsInstance context: Context
        ): AppComponent
    }




    fun inject(mainActivity: MainActivity)
}

@Module
class MainActivityModule {
    @Provides
    fun provideJokeDialog(mainActivity: MainActivity): JokeDialog = JokeDialog(mainActivity)
}


Ответы (0 шт):