diff --git a/app/build.gradle b/app/build.gradle index f5415a6..16faad3 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -39,6 +39,10 @@ dependencies { compile 'com.squareup.retrofit2:converter-gson:2.3.0' compile 'io.reactivex.rxjava2:rxjava:2.1.6' compile 'io.reactivex.rxjava2:rxandroid:2.0.1' + compile 'com.trello.rxlifecycle2:rxlifecycle:2.2.1' + compile 'com.trello.rxlifecycle2:rxlifecycle-android:2.2.1' + compile 'com.trello.rxlifecycle2:rxlifecycle-components:2.2.1' + compile 'com.squareup.okhttp3:okhttp:3.9.0' compile 'com.squareup.okhttp3:logging-interceptor:3.9.0' compile 'com.jakewharton:butterknife:8.8.1' diff --git a/app/src/main/java/com/ervin/mvp/presenter/BasePresenter.java b/app/src/main/java/com/ervin/mvp/presenter/BasePresenter.java index 2d0fa04..0deb1ac 100644 --- a/app/src/main/java/com/ervin/mvp/presenter/BasePresenter.java +++ b/app/src/main/java/com/ervin/mvp/presenter/BasePresenter.java @@ -4,6 +4,11 @@ import android.util.Log; import com.ervin.mvp.ui.iview.IBaseView; +import com.trello.rxlifecycle2.LifecycleTransformer; +import com.trello.rxlifecycle2.android.ActivityEvent; +import com.trello.rxlifecycle2.android.FragmentEvent; +import com.trello.rxlifecycle2.components.support.RxAppCompatActivity; +import com.trello.rxlifecycle2.components.support.RxFragment; import io.reactivex.disposables.CompositeDisposable; @@ -39,4 +44,34 @@ public void detachView() { iView = null; } } + + /** + * RxLifecycle支持 + * @param event + * @param + * @return + */ + protected LifecycleTransformer bindUntilEvent(ActivityEvent event){ + if(iView instanceof RxAppCompatActivity){ + RxAppCompatActivity activity = (RxAppCompatActivity) iView; + return activity.bindUntilEvent(event); + } + + throw new RuntimeException("Confirm mView is instance of RxAppCompatActivity"); + } + + /** + * RxLifecycle支持 + * @param event + * @param + * @return + */ + protected LifecycleTransformer bindUntilEvent(FragmentEvent event){ + if(iView instanceof RxFragment){ + RxFragment fragment = (RxFragment) iView; + return fragment.bindUntilEvent(event); + } + + throw new RuntimeException("Confirm mView is instance of RxFragment"); + } }