Guest User

Untitled

a guest
May 28th, 2018
87
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Kotlin 1.92 KB | None | 0 0
  1. abstract class BasePresenter<V : MvpView> : MvpPresenter<V>() {
  2.  
  3.     protected lateinit var mMVPComponent: MvpComponent
  4.     protected lateinit var mStorageComponent: StorageComponent
  5.  
  6.     private lateinit var mRouter: Router
  7.     private val compositeDisposable = CompositeDisposable()
  8.  
  9.     init {
  10.         with(AndroidApplication.getInstance()) {
  11.             mMVPComponent = mvpComponent
  12.             mStorageComponent = storageComponent
  13.             mRouter = appComponent.router()
  14.         }
  15.     }
  16.  
  17.     fun onStop() {
  18.         clearAllNetworkSubscribers()
  19.     }
  20.  
  21.     protected fun unsubscribeOnDestroy(disposable: Disposable) {
  22.         compositeDisposable.add(disposable)
  23.     }
  24.  
  25.     protected fun clearAllNetworkSubscribers() {
  26.         compositeDisposable.apply { if (size() != 0) clear() }
  27.     }
  28.  
  29.     protected fun back() {
  30.         mRouter.exit()
  31.     }
  32.  
  33.     protected fun navigateTo(screenKey: String) {
  34.         mRouter.navigateTo(screenKey)
  35.     }
  36.  
  37.     protected fun navigateTo(screenKey: String, data: Any) {
  38.         mRouter.navigateTo(screenKey, data)
  39.     }
  40.  
  41.     protected fun newRootScreen(screenKey: String) {
  42.         mRouter.newScreenChain(screenKey)
  43.     }
  44.  
  45.     protected fun newRootScreen(screenKey: String, data: Any) {
  46.         mRouter.newScreenChain(screenKey, data)
  47.     }
  48.  
  49.     protected fun replaceScreen(screenKey: String) {
  50.         mRouter.replaceScreen(screenKey)
  51.     }
  52.  
  53.     protected fun replaceScreen(screenKey: String, data: Any) {
  54.         mRouter.replaceScreen(screenKey, data)
  55.     }
  56.  
  57.     protected fun backToScreen(screenKey: String) {
  58.         mRouter.backTo(screenKey)
  59.     }
  60.  
  61.     protected fun openNewPreviousScreen(screenKey: String) {
  62.         backToScreen(screenKey)
  63.         mRouter.replaceScreen(screenKey)
  64.     }
  65.  
  66.     protected fun openNewPreviousScreen(screenKey: String, data: Any) {
  67.         backToScreen(screenKey)
  68.         mRouter.replaceScreen(screenKey, data)
  69.     }
  70. }
Advertisement
Add Comment
Please, Sign In to add comment