Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- abstract class BasePresenter<V : MvpView> : MvpPresenter<V>() {
- protected lateinit var mMVPComponent: MvpComponent
- protected lateinit var mStorageComponent: StorageComponent
- private lateinit var mRouter: Router
- private val compositeDisposable = CompositeDisposable()
- init {
- with(AndroidApplication.getInstance()) {
- mMVPComponent = mvpComponent
- mStorageComponent = storageComponent
- mRouter = appComponent.router()
- }
- }
- fun onStop() {
- clearAllNetworkSubscribers()
- }
- protected fun unsubscribeOnDestroy(disposable: Disposable) {
- compositeDisposable.add(disposable)
- }
- protected fun clearAllNetworkSubscribers() {
- compositeDisposable.apply { if (size() != 0) clear() }
- }
- protected fun back() {
- mRouter.exit()
- }
- protected fun navigateTo(screenKey: String) {
- mRouter.navigateTo(screenKey)
- }
- protected fun navigateTo(screenKey: String, data: Any) {
- mRouter.navigateTo(screenKey, data)
- }
- protected fun newRootScreen(screenKey: String) {
- mRouter.newScreenChain(screenKey)
- }
- protected fun newRootScreen(screenKey: String, data: Any) {
- mRouter.newScreenChain(screenKey, data)
- }
- protected fun replaceScreen(screenKey: String) {
- mRouter.replaceScreen(screenKey)
- }
- protected fun replaceScreen(screenKey: String, data: Any) {
- mRouter.replaceScreen(screenKey, data)
- }
- protected fun backToScreen(screenKey: String) {
- mRouter.backTo(screenKey)
- }
- protected fun openNewPreviousScreen(screenKey: String) {
- backToScreen(screenKey)
- mRouter.replaceScreen(screenKey)
- }
- protected fun openNewPreviousScreen(screenKey: String, data: Any) {
- backToScreen(screenKey)
- mRouter.replaceScreen(screenKey, data)
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment