Skip to content

Instantly share code, notes, and snippets.

@ntngel1
Last active February 27, 2019 13:27
Show Gist options
  • Save ntngel1/614bc26f09d9e85d7501f2e4542d7d11 to your computer and use it in GitHub Desktop.
Save ntngel1/614bc26f09d9e85d7501f2e4542d7d11 to your computer and use it in GitHub Desktop.
// Задача состоит в том, чтобы получать через даггер одну и тот же фрагмент, но с презентером,
// у которого разные аргументы в конструкторе
@Module
class PhotosViewModule {
@Provides
@Named("PopularPhotos")
fun providePopularPhotosView(): PhotosView.View {
val fragment: Photos.View = PhotosFragment()
// Здесь бы должны как-то заинжектить вручную Presenter с определенными аргументами в конструкторе
fragment.inject(PhotosPresenter(popular = true, new = false))
return fragment
}
@Provides
@Named("NewPhotos")
fun provideNewPhotosView(): PhotosView.View {
val fragment: Photos.View = PhotosFragment()
// Здесь бы должны как-то заинжектить вручную Presenter с определенными аргументами в конструкторе
fragment.inject(PhotosPresenter(popular = false, new = true))
return fragment
}
}
class PhotosFragment : PhotosView.View {
@Inject lateinit var presenter: PhotosView.Presenter // Именно сюда нужно заинжектить презентер с определенными
// аргументами в констркуторе
....
....
}
// Это презентер который принимает определенные параметры в конструкторе
class PhotosPresenter(private val new: Boolean, private val popular: Boolean) : PhotosView.Presenter {
...........
.....
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment