This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| getKoin().createScope("session") |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| module { | |
| // Shared user session data | |
| scope("session") { UserSession() } | |
| } |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| class MyActivity : AppCompatActivity() { | |
| // inject Presenter instance, tied to current MyActivity's scope | |
| val presenter : Presenter by inject() | |
| override fun onCreate(savedInstanceState: Bundle?) { | |
| super.onCreate(savedInstanceState) | |
| // bind current lifecycle to Activity's scope | |
| bindScope(createScope("activity")) |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| // A scoped Presenter | |
| module { | |
| scope("activity") { Presenter() } | |
| } |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| // Inject MyPresenter | |
| val presenter : MyPresenter by inject() |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| companion object { | |
| fun getComponent(context: Context) = | |
| (context.applicationContext as WTWApplication).appComponent | |
| } | |
| lateinit var appComponent: AppComponent | |
| override fun onCreate() { | |
| super.onCreate() | |
| appComponent = DaggerAppComponent |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| override fun onCreate() { | |
| super.onCreate() | |
| // start Koin context | |
| startKoin(this, listOf(appModule)) | |
| } |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| val appModule = module { | |
| // single instance of HelloRepository | |
| singleBy<HelloRepository, HelloRepositoryImpl>() | |
| // Simple Presenter Factory | |
| factory<MySimplePresenter>() | |
| } |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| val appModule = module { | |
| // single instance of HelloRepository (which will be reused) | |
| single { HelloRepositoryImpl() } | |
| // Simple Presenter Factory (creates every time new) | |
| factory { MySimplePresenter(get()) } | |
| } |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| sealed class ResourceState<T> | |
| class LoadingState<T> : ResourceState<T>() { | |
| override fun hashCode(): Int = javaClass.hashCode() | |
| override fun equals(other: Any?) = equalz(other) | |
| } | |
| class EmptyState<T> : ResourceState<T>() { | |
| override fun hashCode(): Int = javaClass.hashCode() | |
| override fun equals(other: Any?) = equalz(other) | |
| } |