提交 6b48d482 编写于 作者: J jessyan

demo use lambda

上级 435cec35
apply plugin: 'com.android.application'
apply plugin: 'me.tatarka.retrolambda'
android {
compileSdkVersion rootProject.ext.android["compileSdkVersion"]
buildToolsVersion rootProject.ext.android["buildToolsVersion"]
useLibrary 'org.apache.http.legacy'
compileOptions {
targetCompatibility JavaVersion.VERSION_1_8
sourceCompatibility JavaVersion.VERSION_1_8
}
defaultConfig {
applicationId "me.jessyan.mvparms.demo"
minSdkVersion rootProject.ext.android["minSdkVersion"]
......
......@@ -18,7 +18,6 @@ import me.jessyan.mvparms.demo.BuildConfig;
import me.jessyan.mvparms.demo.di.module.CacheModule;
import me.jessyan.mvparms.demo.di.module.ServiceModule;
import me.jessyan.mvparms.demo.mvp.model.api.Api;
import me.jessyan.rxerrorhandler.handler.listener.ResponseErroListener;
import okhttp3.Interceptor;
import okhttp3.Request;
import okhttp3.Response;
......@@ -146,14 +145,9 @@ public class WEApplication extends BaseApplication {
return request;
}
})
.responseErroListener(new ResponseErroListener() {
// 用来提供处理所有错误的监听
// rxjava必要要使用ErrorHandleSubscriber(默认实现Subscriber的onError方法),此监听才生效
@Override
public void handleResponseError(Context context, Exception e) {
Timber.tag(TAG).w("------------>" + e.getMessage());
UiUtils.SnackbarText("net error");
}
.responseErroListener((context, e) -> {
Timber.tag(TAG).w("------------>" + e.getMessage());
UiUtils.SnackbarText("net error");
}).build();
}
......
......@@ -21,7 +21,6 @@ import me.jessyan.rxerrorhandler.core.RxErrorHandler;
import me.jessyan.rxerrorhandler.handler.ErrorHandleSubscriber;
import me.jessyan.rxerrorhandler.handler.RetryWithDelay;
import rx.android.schedulers.AndroidSchedulers;
import rx.functions.Action0;
import rx.schedulers.Schedulers;
/**
......@@ -52,11 +51,8 @@ public class UserPresenter extends BasePresenter<UserContract.Model, UserContrac
public void requestUsers(final boolean pullToRefresh) {
//请求外部存储权限用于适配android6.0的权限管理机制
PermissionUtil.externalStorage(new PermissionUtil.RequestPermission() {
@Override
public void onRequestPermissionSuccess() {
//request permission success, do something.
}
PermissionUtil.externalStorage(() -> {
//request permission success, do something.
}, mRootView.getRxPermissions(), mRootView, mErrorHandler);
......@@ -74,24 +70,18 @@ public class UserPresenter extends BasePresenter<UserContract.Model, UserContrac
mModel.getUsers(lastUserId, isEvictCache)
.subscribeOn(Schedulers.io())
.retryWhen(new RetryWithDelay(3, 2))//遇到错误时重试,第一个参数为重试几次,第二个参数为重试的间隔
.doOnSubscribe(new Action0() {
@Override
public void call() {
if (pullToRefresh)
mRootView.showLoading();//显示上拉刷新的进度条
else
mRootView.startLoadMore();//显示下拉加载更多的进度条
}
.doOnSubscribe(() -> {
if (pullToRefresh)
mRootView.showLoading();//显示上拉刷新的进度条
else
mRootView.startLoadMore();//显示下拉加载更多的进度条
}).subscribeOn(AndroidSchedulers.mainThread())
.observeOn(AndroidSchedulers.mainThread())
.doAfterTerminate(new Action0() {
@Override
public void call() {
if (pullToRefresh)
mRootView.hideLoading();//隐藏上拉刷新的进度条
else
mRootView.endLoadMore();//隐藏下拉加载更多的进度条
}
.doAfterTerminate(() -> {
if (pullToRefresh)
mRootView.hideLoading();//隐藏上拉刷新的进度条
else
mRootView.endLoadMore();//隐藏下拉加载更多的进度条
})
.compose(RxUtils.<List<User>>bindToLifecycle(mRootView))//使用RXlifecycle,使subscription和activity一起销毁
.subscribe(new ErrorHandleSubscriber<List<User>>(mErrorHandler) {
......
......@@ -23,7 +23,6 @@ import me.jessyan.mvparms.demo.mvp.contract.UserContract;
import me.jessyan.mvparms.demo.mvp.presenter.UserPresenter;
import rx.Observable;
import rx.android.schedulers.AndroidSchedulers;
import rx.functions.Action1;
import timber.log.Timber;
......@@ -80,12 +79,7 @@ public class UserActivity extends WEActivity<UserPresenter> implements UserContr
Timber.tag(TAG).w("showLoading");
Observable.just(1)
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new Action1<Integer>() {
@Override
public void call(Integer integer) {
mSwipeRefreshLayout.setRefreshing(true);
}
});
.subscribe(integer -> mSwipeRefreshLayout.setRefreshing(true));
}
@Override
......
apply plugin: 'com.android.library'
apply plugin: 'me.tatarka.retrolambda'
android {
compileSdkVersion rootProject.ext.android["compileSdkVersion"]
buildToolsVersion rootProject.ext.android["buildToolsVersion"]
useLibrary 'org.apache.http.legacy'
compileOptions {
targetCompatibility JavaVersion.VERSION_1_8
sourceCompatibility JavaVersion.VERSION_1_8
}
defaultConfig {
minSdkVersion rootProject.ext.android["minSdkVersion"]
targetSdkVersion rootProject.ext.android["targetSdkVersion"]
......
......@@ -26,7 +26,7 @@ public abstract class BaseApplication extends Application {
static private BaseApplication mApplication;
private ClientModule mClientModule;
private AppModule mAppModule;
private ImageModule mImagerModule;
private ImageModule mImageModule;
private GlobeConfigModule mGlobeConfigModule;
@Inject
protected AppManager mAppManager;
......@@ -45,7 +45,7 @@ public abstract class BaseApplication extends Application {
.appModule(mAppModule)
.build()
.inject(this);
this.mImagerModule = new ImageModule();//图片加载框架默认使用glide
this.mImageModule = new ImageModule();//图片加载框架默认使用glide
this.mClientModule = new ClientModule(mAppManager);//用于提供okhttp和retrofit的单例
this.mGlobeConfigModule = checkNotNull(getGlobeConfigModule(), "lobeConfigModule is required");
registerActivityLifecycleCallbacks(mActivityLifecycle);
......@@ -61,8 +61,8 @@ public abstract class BaseApplication extends Application {
this.mClientModule = null;
if (mAppModule != null)
this.mAppModule = null;
if (mImagerModule != null)
this.mImagerModule = null;
if (mImageModule != null)
this.mImageModule = null;
if (mActivityLifecycle != null) {
unregisterActivityLifecycleCallbacks(mActivityLifecycle);
}
......@@ -92,7 +92,7 @@ public abstract class BaseApplication extends Application {
}
public ImageModule getImageModule() {
return mImagerModule;
return mImageModule;
}
......
......@@ -10,6 +10,8 @@ buildscript {
classpath 'com.github.dcendents:android-maven-gradle-plugin:1.5'
//Gradle Bintray Plugin
classpath 'com.jfrog.bintray.gradle:gradle-bintray-plugin:1.7.3'
//lambda
classpath 'me.tatarka:gradle-retrolambda:3.6.0'
}
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册