Thanks to visit codestin.com
Credit goes to github.com

Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
786 changes: 785 additions & 1 deletion README.md

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@
import androidx.annotation.NonNull;
import androidx.databinding.ObservableField;
import androidx.databinding.ObservableInt;

import io.reactivex.disposables.Disposable;
import io.reactivex.functions.Consumer;
import me.goldze.mvvmhabit.base.BaseViewModel;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package com.goldze.mvvmhabit.ui.network;

import android.annotation.SuppressLint;
import android.app.Application;

import com.goldze.mvvmhabit.BR;
Expand Down Expand Up @@ -57,6 +58,7 @@ public void call() {
});
//上拉加载
public BindingCommand onLoadMoreCommand = new BindingCommand(new BindingAction() {
@SuppressLint("CheckResult")
@Override
public void call() {
if (observableList.size() > 50) {
Expand All @@ -66,7 +68,7 @@ public void call() {
}
//模拟网络上拉加载更多
model.loadMore()
.compose(RxUtils.schedulersTransformer()) //线程调度
.compose(RxUtils.<DemoEntity>schedulersTransformer()) //线程调度
.doOnSubscribe(NetWorkViewModel.this) //请求与ViewModel周期同步
.doOnSubscribe(new Consumer<Disposable>() {
@Override
Expand All @@ -92,11 +94,12 @@ public void accept(DemoEntity entity) throws Exception {
/**
* 网络请求方法,在ViewModel中调用Model层,通过Okhttp+Retrofit+RxJava发起请求
*/
@SuppressLint("CheckResult")
public void requestNetWork() {
//可以调用addSubscribe()添加Disposable,请求与View周期同步
model.demoGet()
.compose(RxUtils.schedulersTransformer()) //线程调度
.compose(RxUtils.exceptionTransformer()) // 网络错误的异常转换, 这里可以换成自己的ExceptionHandle
.compose(RxUtils.<BaseResponse<DemoEntity>>schedulersTransformer()) //线程调度
.compose(RxUtils.<BaseResponse<DemoEntity>>exceptionTransformer()) // 网络错误的异常转换, 这里可以换成自己的ExceptionHandle
.doOnSubscribe(this)//请求与ViewModel周期同步
.doOnSubscribe(new Consumer<Disposable>() {
@Override
Expand Down
2 changes: 1 addition & 1 deletion config.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,7 @@ ext {
"lifecycle-extensions" : "androidx.lifecycle:lifecycle-extensions:2.0.0",
"lifecycle-compiler" : "androidx.lifecycle:lifecycle-compiler:2.0.0",
//MVVMHabit
"MVVMHabit" : "com.github.goldze:MVVMHabit:3.1.3",
"MVVMHabit" : "com.github.goldze:MVVMHabit:3.1.4",
]
}

Expand Down
Empty file removed dependencies.txt
Empty file.
2 changes: 1 addition & 1 deletion gradle.properties
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,6 @@ org.gradle.jvmargs=-Xmx1536m
# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects
# org.gradle.parallel=true
# android.databinding.enableV2=true

#compileOptions.encoding="UTF-8"
android.useAndroidX=true
android.enableJetifier=true
14 changes: 7 additions & 7 deletions mvvmhabit/src/main/java/me/goldze/mvvmhabit/utils/RxUtils.java
Original file line number Diff line number Diff line change
Expand Up @@ -59,24 +59,24 @@ public static LifecycleTransformer bindToLifecycle(@NonNull LifecycleProvider li
/**
* 线程调度器
*/
public static ObservableTransformer schedulersTransformer() {
return new ObservableTransformer() {
public static<T> ObservableTransformer<T,T> schedulersTransformer() {
return new ObservableTransformer<T,T>() {
@Override
public ObservableSource apply(Observable upstream) {
public ObservableSource<T> apply(Observable<T> upstream) {
return upstream.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread());
}
};
}

public static ObservableTransformer exceptionTransformer() {
public static<T> ObservableTransformer<T,T> exceptionTransformer() {

return new ObservableTransformer() {
return new ObservableTransformer<T,T>() {
@Override
public ObservableSource apply(Observable observable) {
public ObservableSource<T> apply(Observable<T> observable) {
return observable
// .map(new HandleFuc<T>()) //这里可以取出BaseResponse中的Result
.onErrorResumeNext(new HttpResponseFunc());
.onErrorResumeNext(new HttpResponseFunc<T>());
}
};
}
Expand Down