Skip to content

Instantly share code, notes, and snippets.

View Rasalexman's full-sized avatar
🌍
i hope you are going to have an amazing day

Alexandr Minkin Rasalexman

🌍
i hope you are going to have an amazing day
View GitHub Profile
val databaseModule = Kodein.Module("database_module") {
bind<IGenresDao>() with provider { kodein.direct.instance<MoviesDatabase>().getGenresDao() }
bind<IMoviesDao>() with provider { kodein.direct.instance<MoviesDatabase>().getMoviesDao() }
}
class MainApplication : Application(), KodeinAware {
override val kodein: Kodein by Kodein.lazy {
bind<ViewModelFactory>() with singleton { ViewModelFactory(applicationContext) }
bind<MoviesDatabase>() with singleton {
Room.databaseBuilder(
applicationContext,
MoviesDatabase::class.java, "moviesDB"
).build()
}
class ViewModelFactory(appContext:Context) : ViewModelProvider.Factory, KodeinAware {
override val kodein: Kodein = (appContext as MainApplication).kodein // we can use `by kodein(appContext)` also
override fun <T : ViewModel> create(modelClass: Class<T>): T = kodein.direct.Instance(TT(modelClass))
}
val databaseModule = Kodein.Module("database_module") {
bind<IGenresDao>() with provider { kodein.direct.instance<MoviesDatabase>().getGenresDao() }
bind<IMoviesDao>() with provider { kodein.direct.instance<MoviesDatabase>().getMoviesDao() }
}
val databaseModule = Kodein.Module("database_module") {
bind<IGenresDao>() with provider { kodein.direct.instance<MoviesDatabase>().getGenresDao() }
bind<IMoviesDao>() with provider { kodein.direct.instance<MoviesDatabase>().getMoviesDao() }
}
class MainApplication : Application(), KodeinAware {
override val kodein: Kodein by Kodein.lazy {
bind<ViewModelFactory>() with singleton { ViewModelFactory(applicationContext) }
bind<MoviesDatabase>() with singleton {
Room.databaseBuilder(
applicationContext,
MoviesDatabase::class.java, "moviesDB"
).build()
}
class ViewModelFactory(appContext:Context) : ViewModelProvider.Factory, KodeinAware {
override val kodein: Kodein = (appContext as MainApplication).kodein // we can use `by kodein(appContext)` also
override fun <T : ViewModel> create(modelClass: Class<T>): T = kodein.direct.Instance(TT(modelClass))
}
class ViewModelFactory(appContext: Context) : ViewModelProvider.Factory, KodeinAware {
override val kodein: Kodein = (appContext as MainApplication).kodein // we can use `by kodein(appContext)` also
override fun <T : ViewModel> create(modelClass: Class<T>): T = kodein.direct.Instance(TT(modelClass))
}
val databaseModule = Kodein.Module("database_module") {
bind<IGenresDao>() with provider { instance<MoviesDatabase>().getGenresDao() }
bind<IMoviesDao>() with provider { instance<MoviesDatabase>().getMoviesDao() }
}
abstract class ViewBindController : LifecycleController, KodeinAware {
override val kodein: Kodein by lazy {
(applicationContext as KodeinAware).kodein
}
constructor()
constructor(args: Bundle) : super(args)
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup): View {
val viewInstance = getViewInstance(inflater.context)