-
Notifications
You must be signed in to change notification settings - Fork 192
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Completely reconstructed with the MVVM structure. Optimised v3.0.
- Loading branch information
1 parent
a959a09
commit f4d0bf7
Showing
105 changed files
with
4,581 additions
and
119 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
[{"id":292,"n":"上海"},{"id":366,"n":"深圳"},{"id":291,"n":"重庆"},{"id":290,"n":"北京"},{"id":365,"n":"广州"},{"id":880,"n":"成都"},{"id":974,"n":"杭州"},{"id":371,"n":"东莞"},{"id":561,"n":"武汉"},{"id":373,"n":"佛山"},{"id":791,"n":"西安"},{"id":293,"n":"天津"},{"id":628,"n":"南京"},{"id":489,"n":"郑州"},{"id":598,"n":"长沙"},{"id":295,"n":"合肥"},{"id":1001,"n":"温州"},{"id":1332,"n":"苏州"},{"id":950,"n":"昆明"},{"id":722,"n":"沈阳"},{"id":992,"n":"宁波"},{"id":453,"n":"石家庄"},{"id":662,"n":"无锡"},{"id":409,"n":"中山"},{"id":829,"n":"青岛"},{"id":649,"n":"南通"},{"id":1355,"n":"台州"},{"id":693,"n":"长春"},{"id":729,"n":"大连"},{"id":379,"n":"惠州"},{"id":528,"n":"哈尔滨"},{"id":674,"n":"南昌"},{"id":323,"n":"厦门"},{"id":328,"n":"福州"},{"id":677,"n":"赣州"},{"id":805,"n":"济南"},{"id":411,"n":"南宁"},{"id":630,"n":"常州"},{"id":664,"n":"徐州"},{"id":688,"n":"上饶"},{"id":1687,"n":"临沂"},{"id":600,"n":"常德"},{"id":338,"n":"泉州"},{"id":380,"n":"江门"},{"id":320,"n":"芜湖"},{"id":680,"n":"九江"},{"id":926,"n":"乌鲁木齐"},{"id":980,"n":"湖州"},{"id":433,"n":"贵阳"},{"id":347,"n":"兰州"},{"id":599,"n":"郴州"},{"id":420,"n":"桂林"},{"id":505,"n":"南阳"},{"id":854,"n":"太原"},{"id":843,"n":"烟台"},{"id":636,"n":"淮安"},{"id":665,"n":"盐城"},{"id":533,"n":"大庆"},{"id":450,"n":"海口"},{"id":981,"n":"嘉兴"},{"id":480,"n":"唐山"},{"id":667,"n":"扬州"},{"id":954,"n":"大理"},{"id":464,"n":"邯郸"},{"id":984,"n":"金华"},{"id":990,"n":"丽水"},{"id":904,"n":"南充"},{"id":368,"n":"珠海"},{"id":455,"n":"保定"},{"id":753,"n":"呼和浩特"},{"id":867,"n":"临汾"},{"id":517,"n":"新乡"},{"id":448,"n":"遵义"},{"id":793,"n":"宝鸡"},{"id":503,"n":"洛阳"},{"id":777,"n":"银川"},{"id":878,"n":"运城"},{"id":511,"n":"商丘"},{"id":367,"n":"汕头"},{"id":623,"n":"岳阳"},{"id":602,"n":"衡阳"},{"id":313,"n":"马鞍山"},{"id":997,"n":"绍兴"},{"id":586,"n":"襄阳"},{"id":1744,"n":"宜春"},{"id":300,"n":"滁州"},{"id":301,"n":"阜阳"},{"id":682,"n":"吉安"},{"id":575,"n":"荆州"},{"id":654,"n":"宿迁"},{"id":1763,"n":"榆林"},{"id":1745,"n":"抚州"},{"id":604,"n":"怀化"},{"id":312,"n":"六安"},{"id":901,"n":"绵阳"},{"id":506,"n":"平顶山"},{"id":839,"n":"潍坊"},{"id":803,"n":"延安"},{"id":914,"n":"宜宾"},{"id":621,"n":"益阳"},{"id":485,"n":"张家口"},{"id":407,"n":"湛江"},{"id":851,"n":"淄博"},{"id":855,"n":"长治"},{"id":994,"n":"衢州"},{"id":840,"n":"威海"},{"id":525,"n":"周口"},{"id":526,"n":"驻马店"},{"id":296,"n":"安庆"},{"id":297,"n":"蚌埠"},{"id":813,"n":"菏泽"},{"id":958,"n":"红河"},{"id":572,"n":"黄冈"},{"id":818,"n":"济宁"},{"id":964,"n":"曲靖"},{"id":657,"n":"泰州"},{"id":1003,"n":"义乌"},{"id":345,"n":"漳州"},{"id":857,"n":"大同"},{"id":886,"n":"德阳"},{"id":796,"n":"汉中"},{"id":377,"n":"河源"},{"id":497,"n":"焦作"},{"id":396,"n":"韶关"},{"id":618,"n":"湘潭"},{"id":801,"n":"咸阳"},{"id":408,"n":"肇庆"},{"id":625,"n":"株洲"},{"id":759,"n":"鄂尔多斯"},{"id":381,"n":"揭阳"},{"id":645,"n":"昆山"},{"id":470,"n":"廊坊"},{"id":646,"n":"连云港"},{"id":425,"n":"柳州"},{"id":617,"n":"邵阳"},{"id":581,"n":"十堰"},{"id":515,"n":"信阳"},{"id":670,"n":"张家港"},{"id":756,"n":"包头"},{"id":458,"n":"沧州"},{"id":390,"n":"梅州"},{"id":507,"n":"濮阳"},{"id":589,"n":"孝感"},{"id":785,"n":"西宁"},{"id":671,"n":"镇江"},{"id":758,"n":"赤峰"},{"id":808,"n":"德州"},{"id":641,"n":"江阴"},{"id":703,"n":"吉林市"},{"id":574,"n":"荆门"},{"id":866,"n":"晋中"},{"id":898,"n":"乐山"},{"id":339,"n":"三明"},{"id":800,"n":"渭南"},{"id":403,"n":"阳江"},{"id":590,"n":"宜昌"},{"id":622,"n":"永州"},{"id":499,"n":"开封"},{"id":837,"n":"泰安"},{"id":431,"n":"玉林"},{"id":792,"n":"安康"},{"id":724,"n":"鞍山"},{"id":412,"n":"百色"},{"id":629,"n":"常熟"},{"id":953,"n":"楚雄"},{"id":809,"n":"东营"},{"id":305,"n":"黄山"},{"id":1345,"n":"锦州"},{"id":823,"n":"聊城"},{"id":869,"n":"吕梁"},{"id":389,"n":"茂名"},{"id":337,"n":"莆田"},{"id":833,"n":"日照"},{"id":451,"n":"三亚"},{"id":318,"n":"宿州"},{"id":587,"n":"咸宁"},{"id":873,"n":"忻州"},{"id":971,"n":"玉溪"},{"id":459,"n":"承德"},{"id":567,"n":"恩施"},{"id":960,"n":"临沧"},{"id":612,"n":"浏阳"},{"id":333,"n":"龙岩"},{"id":900,"n":"泸州"},{"id":903,"n":"眉山"},{"id":394,"n":"清远"},{"id":910,"n":"遂宁"},{"id":767,"n":"通辽"},{"id":445,"n":"铜仁"},{"id":482,"n":"邢台"},{"id":321,"n":"宣城"},{"id":750,"n":"营口"},{"id":847,"n":"枣庄"},{"id":1006,"n":"舟山"},{"id":434,"n":"安顺"},{"id":490,"n":"安阳"},{"id":1342,"n":"滨州"},{"id":885,"n":"达州"},{"id":893,"n":"广元"},{"id":764,"n":"呼伦贝尔"},{"id":540,"n":"佳木斯"},{"id":354,"n":"酒泉"},{"id":613,"n":"娄底"},{"id":502,"n":"漯河"},{"id":442,"n":"黔南州"},{"id":435,"n":"毕节"},{"id":302,"n":"亳州"},{"id":423,"n":"河池"},{"id":466,"n":"衡水"},{"id":573,"n":"黄石"},{"id":544,"n":"牡丹江"},{"id":335,"n":"南平"},{"id":905,"n":"内江"},{"id":358,"n":"平凉"},{"id":446,"n":"黔东南"},{"id":475,"n":"秦皇岛"},{"id":547,"n":"齐齐哈尔"},{"id":798,"n":"商洛"},{"id":553,"n":"绥化"},{"id":1000,"n":"温岭"},{"id":968,"n":"文山"},{"id":619,"n":"湘西"},{"id":936,"n":"伊犁"},{"id":915,"n":"自贡"},{"id":757,"n":"巴彦淖尔"},{"id":304,"n":"淮南"},{"id":739,"n":"葫芦岛"},{"id":642,"n":"靖江"},{"id":336,"n":"宁德"},{"id":1349,"n":"萍乡"},{"id":395,"n":"汕尾"},{"id":713,"n":"四平"},{"id":360,"n":"天水"},{"id":716,"n":"通化"},{"id":769,"n":"乌兰察布"},{"id":689,"n":"新余"},{"id":1007,"n":"诸暨"},{"id":952,"n":"保山"},{"id":413,"n":"北海"},{"id":350,"n":"定西"},{"id":735,"n":"抚顺"},{"id":865,"n":"晋城"},{"id":744,"n":"盘锦"},{"id":906,"n":"攀枝花"},{"id":652,"n":"启东"},{"id":359,"n":"庆阳"},{"id":428,"n":"梧州"},{"id":588,"n":"仙桃"},{"id":349,"n":"白银"},{"id":882,"n":"巴中"},{"id":727,"n":"本溪"},{"id":975,"n":"慈溪"},{"id":889,"n":"甘孜"},{"id":331,"n":"晋江"},{"id":440,"n":"六盘水"},{"id":355,"n":"陇南"},{"id":441,"n":"黔西南州"},{"id":714,"n":"松原"},{"id":770,"n":"乌兰浩特"},{"id":520,"n":"许昌"},{"id":913,"n":"雅安"},{"id":874,"n":"阳泉"},{"id":668,"n":"宜兴"},{"id":405,"n":"云浮"},{"id":1005,"n":"余姚"},{"id":695,"n":"白山"},{"id":728,"n":"朝阳"},{"id":369,"n":"潮州"},{"id":736,"n":"阜新"},{"id":357,"n":"甘南"},{"id":891,"n":"广安"},{"id":979,"n":"海宁"},{"id":706,"n":"辽源"},{"id":356,"n":"临夏"},{"id":579,"n":"潜江"},{"id":426,"n":"钦州"},{"id":551,"n":"双鸭山"},{"id":943,"n":"塔城"},{"id":999,"n":"桐乡"},{"id":881,"n":"阿坝"},{"id":927,"n":"阿克苏"},{"id":932,"n":"昌吉"},{"id":299,"n":"池州"},{"id":416,"n":"崇左"},{"id":730,"n":"丹东"},{"id":632,"n":"丹阳"},{"id":955,"n":"德宏"},{"id":418,"n":"防城港"},{"id":327,"n":"福清"},{"id":635,"n":"海门"},{"id":303,"n":"淮北"},{"id":741,"n":"辽阳"},{"id":653,"n":"如皋"},{"id":477,"n":"三河"},{"id":510,"n":"三门峡"},{"id":871,"n":"朔州"},{"id":317,"n":"铜陵"},{"id":660,"n":"吴江"},{"id":718,"n":"延边"},{"id":916,"n":"资阳"},{"id":976,"n":"东阳"},{"id":698,"n":"敦化"},{"id":681,"n":"景德镇"},{"id":938,"n":"喀什"},{"id":424,"n":"来宾"},{"id":988,"n":"临海"},{"id":766,"n":"满洲里"},{"id":5064,"n":"普洱"},{"id":995,"n":"瑞安"},{"id":781,"n":"石嘴山"},{"id":836,"n":"寿光"},{"id":966,"n":"思茅"},{"id":583,"n":"随州"},{"id":746,"n":"铁岭"},{"id":624,"n":"张家界"},{"id":972,"n":"昭通"},{"id":568,"n":"鄂州"},{"id":1764,"n":"海东"},{"id":934,"n":"哈密"},{"id":495,"n":"鹤壁"},{"id":817,"n":"即墨"},{"id":987,"n":"乐清"},{"id":942,"n":"石河子"},{"id":655,"n":"太仓"},{"id":656,"n":"泰兴"},{"id":361,"n":"武威"},{"id":771,"n":"锡林郭勒"},{"id":969,"n":"西双版纳"},{"id":690,"n":"鹰潭"},{"id":1004,"n":"永康"},{"id":694,"n":"白城"},{"id":324,"n":"长乐"},{"id":699,"n":"公主岭"},{"id":419,"n":"贵港"},{"id":422,"n":"贺州"},{"id":352,"n":"嘉峪关"},{"id":498,"n":"济源"},{"id":644,"n":"句容"},{"id":439,"n":"凯里"},{"id":820,"n":"莱芜"},{"id":918,"n":"拉萨"},{"id":899,"n":"凉山"},{"id":961,"n":"丽江"},{"id":647,"n":"溧阳"},{"id":998,"n":"嵊州"},{"id":5051,"n":"时光市"},{"id":799,"n":"铜川"},{"id":768,"n":"乌海"},{"id":447,"n":"兴义"},{"id":948,"n":"伊宁"},{"id":754,"n":"阿拉善"},{"id":884,"n":"崇州"},{"id":534,"n":"大兴安岭"},{"id":460,"n":"定州"},{"id":676,"n":"丰城"},{"id":978,"n":"富阳"},{"id":634,"n":"高邮"},{"id":569,"n":"广水"},{"id":679,"n":"贵溪"},{"id":4914,"n":"海盐"},{"id":536,"n":"鹤岗"},{"id":571,"n":"洪湖"},{"id":378,"n":"化州"},{"id":702,"n":"珲春"},{"id":639,"n":"江都"},{"id":895,"n":"江油"},{"id":353,"n":"金昌"},{"id":937,"n":"克拉玛依"},{"id":939,"n":"库尔勒"},{"id":821,"n":"莱阳"},{"id":385,"n":"廉江"},{"id":989,"n":"临安"},{"id":334,"n":"南安"},{"id":651,"n":"邳州"},{"id":830,"n":"青州"},{"id":1748,"n":"琼海"},{"id":996,"n":"上虞"},{"id":838,"n":"滕州"},{"id":584,"n":"天门"},{"id":946,"n":"五家渠"},{"id":782,"n":"吴忠"},{"id":514,"n":"项城"},{"id":772,"n":"锡林浩特"},{"id":663,"n":"兴化"},{"id":970,"n":"宣威"},{"id":666,"n":"扬中"},{"id":558,"n":"伊春"},{"id":669,"n":"仪征"},{"id":691,"n":"樟树"},{"id":486,"n":"涿州"},{"id":929,"n":"阿勒泰"},{"id":530,"n":"安达"},{"id":1774,"n":"巴音郭楞"},{"id":414,"n":"北流"},{"id":807,"n":"昌邑"},{"id":298,"n":"巢湖"},{"id":563,"n":"赤壁"},{"id":370,"n":"从化"},{"id":631,"n":"大丰"},{"id":564,"n":"丹江口"},{"id":1749,"n":"儋州市"},{"id":786,"n":"德令哈"},{"id":1752,"n":"东方"},{"id":888,"n":"峨眉山"},{"id":977,"n":"奉化"},{"id":325,"n":"福安"},{"id":737,"n":"盖州"},{"id":678,"n":"高安"},{"id":859,"n":"高平"},{"id":375,"n":"高州"},{"id":1344,"n":"海安"},{"id":537,"n":"黑河"},{"id":376,"n":"鹤山"},{"id":862,"n":"侯马"},{"id":701,"n":"桦甸"},{"id":982,"n":"建德"},{"id":643,"n":"金坛"},{"id":541,"n":"鸡西"},{"id":1759,"n":"乐东"},{"id":607,"n":"耒阳"},{"id":684,"n":"乐平"},{"id":577,"n":"利川"},{"id":610,"n":"醴陵"},{"id":826,"n":"龙口"},{"id":578,"n":"麻城"},{"id":4966,"n":"芒市"},{"id":709,"n":"梅河口"},{"id":504,"n":"孟州"},{"id":963,"n":"怒江"},{"id":710,"n":"磐石"},{"id":827,"n":"蓬莱"},{"id":993,"n":"平湖"},{"id":474,"n":"迁安"},{"id":548,"n":"七台河"},{"id":686,"n":"瑞昌"},{"id":478,"n":"沙河"},{"id":340,"n":"邵武"},{"id":341,"n":"石狮"},{"id":711,"n":"双辽"},{"id":945,"n":"吐鲁番"},{"id":747,"n":"瓦房店"},{"id":1750,"n":"文昌"},{"id":620,"n":"湘乡"},{"id":872,"n":"孝义"},{"id":912,"n":"西昌"},{"id":518,"n":"新郑"},{"id":719,"n":"延吉"},{"id":848,"n":"章丘"},{"id":363,"n":"张掖"},{"id":783,"n":"中卫"},{"id":928,"n":"阿拉尔"},{"id":456,"n":"霸州"},{"id":531,"n":"北安"},{"id":1773,"n":"博尔塔拉"},{"id":931,"n":"博乐"},{"id":457,"n":"泊头"},{"id":491,"n":"长葛"},{"id":1755,"n":"澄迈县"},{"id":566,"n":"当阳"},{"id":731,"n":"大石桥"},{"id":697,"n":"德惠"},{"id":733,"n":"调兵山"},{"id":956,"n":"迪庆"},{"id":734,"n":"东港"},{"id":633,"n":"东台"},{"id":417,"n":"东兴"},{"id":887,"n":"都江堰"},{"id":810,"n":"肥城"},{"id":858,"n":"汾阳"},{"id":462,"n":"高碑店"},{"id":811,"n":"高密"},{"id":787,"n":"格尔木"},{"id":494,"n":"巩义"},{"id":778,"n":"固原"},{"id":738,"n":"海城"},{"id":1769,"n":"海南藏族自治州"},{"id":861,"n":"河津"},{"id":496,"n":"辉县"},{"id":640,"n":"姜堰"},{"id":1353,"n":"简阳"},{"id":704,"n":"蛟河"},{"id":816,"n":"胶州"},{"id":864,"n":"介休"},{"id":740,"n":"开原"},{"id":1775,"n":"克孜勒"},{"id":822,"n":"莱州"},{"id":897,"n":"阆中"},{"id":986,"n":"兰溪"},{"id":576,"n":"老河口"},{"id":608,"n":"冷水江"},{"id":609,"n":"涟源"},{"id":824,"n":"临清"},{"id":902,"n":"绵竹"},{"id":614,"n":"汨罗"},{"id":828,"n":"平度"},{"id":745,"n":"普兰店"},{"id":831,"n":"栖霞"},{"id":832,"n":"曲阜"},{"id":476,"n":"任丘"},{"id":834,"n":"荣成"},{"id":687,"n":"瑞金"},{"id":549,"n":"尚志"},{"id":4954,"n":"射阳"},{"id":550,"n":"双城"},{"id":648,"n":"沭阳"},{"id":582,"n":"松滋"},{"id":715,"n":"洮南"},{"id":316,"n":"桐城"},{"id":1754,"n":"屯昌县"},{"id":481,"n":"武安"},{"id":399,"n":"吴川"},{"id":773,"n":"兴安"},{"id":484,"n":"新乐"},{"id":401,"n":"信宜"},{"id":844,"n":"兖州"},{"id":592,"n":"宜都"},{"id":404,"n":"英德"},{"id":430,"n":"宜州"},{"id":343,"n":"永安"},{"id":524,"n":"禹州"},{"id":595,"n":"枝江"},{"id":751,"n":"庄河"},{"id":852,"n":"邹城"},{"id":487,"n":"遵化"},{"id":1757,"n":"白沙"},{"id":415,"n":"岑溪"},{"id":920,"n":"昌都"},{"id":1758,"n":"昌江"},{"id":601,"n":"常宁"},{"id":565,"n":"大冶"},{"id":732,"n":"灯塔"},{"id":493,"n":"邓州"},{"id":675,"n":"德兴"},{"id":1753,"n":"定安县"},{"id":761,"n":"二连浩特"},{"id":372,"n":"恩平"},{"id":326,"n":"福鼎"},{"id":892,"n":"广汉"},{"id":1766,"n":"海北"},{"id":465,"n":"河间"},{"id":797,"n":"华阴"},{"id":894,"n":"华蓥"},{"id":539,"n":"虎林"},{"id":863,"n":"霍州"},{"id":311,"n":"界首"},{"id":683,"n":"井冈山"},{"id":606,"n":"吉首"},{"id":819,"n":"莱西"},{"id":1760,"n":"陵水"},{"id":743,"n":"凌源"},{"id":611,"n":"临湘"},{"id":924,"n":"林芝"},{"id":500,"n":"林州"},{"id":332,"n":"龙海"},{"id":708,"n":"龙井"},{"id":868,"n":"潞城"},{"id":387,"n":"陆丰"},{"id":543,"n":"密山"},{"id":391,"n":"南雄"},{"id":545,"n":"讷河"},{"id":5009,"n":"彭州市"},{"id":444,"n":"仁怀"},{"id":965,"n":"瑞丽"},{"id":835,"n":"乳山"},{"id":509,"n":"汝州"},{"id":921,"n":"山南"},{"id":1746,"n":"神农架"},{"id":909,"n":"什邡"},{"id":712,"n":"舒兰"},{"id":397,"n":"四会"},{"id":554,"n":"铁力"},{"id":717,"n":"图门"},{"id":1751,"n":"万宁"},{"id":512,"n":"卫辉"},{"id":556,"n":"五常"},{"id":557,"n":"五大连池"},{"id":342,"n":"武夷山"},{"id":749,"n":"兴城"},{"id":400,"n":"兴宁"},{"id":483,"n":"辛集"},{"id":516,"n":"新密"},{"id":5005,"n":"洋浦市"},{"id":593,"n":"应城"},{"id":523,"n":"永城"},{"id":1771,"n":"玉树"},{"id":344,"n":"漳平"},{"id":849,"n":"招远"},{"id":850,"n":"诸城"}] |
18 changes: 18 additions & 0 deletions
18
app/src/main/java/com/xw/project/gracefulmovies/broadcast/NetworkStateChangedReceiver.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,18 @@ | ||
package com.xw.project.gracefulmovies.broadcast; | ||
|
||
import android.content.BroadcastReceiver; | ||
import android.content.Context; | ||
import android.content.Intent; | ||
import android.widget.Toast; | ||
|
||
import com.xw.project.gracefulmovies.util.NetWorkUtils; | ||
|
||
public class NetworkStateChangedReceiver extends BroadcastReceiver { | ||
|
||
@Override | ||
public void onReceive(Context context, Intent intent) { | ||
if (!NetWorkUtils.isNetworkAvailable()) { | ||
Toast.makeText(context, "网络连接已断开,请检查网络", Toast.LENGTH_SHORT).show(); | ||
} | ||
} | ||
} |
106 changes: 106 additions & 0 deletions
106
app/src/main/java/com/xw/project/gracefulmovies/data/ApiResponse.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,106 @@ | ||
package com.xw.project.gracefulmovies.data; | ||
|
||
import android.arch.lifecycle.LiveData; | ||
import android.arch.lifecycle.MutableLiveData; | ||
|
||
import com.xw.project.gracefulmovies.data.api.ApiException; | ||
import com.xw.project.gracefulmovies.data.api.ApiObserver; | ||
import com.xw.project.gracefulmovies.data.ao.bridge.ModelBridge; | ||
import com.xw.project.gracefulmovies.rx.RxSchedulers; | ||
|
||
import java.util.List; | ||
|
||
import io.reactivex.Observable; | ||
|
||
/** | ||
* <p> | ||
* Created by woxingxiao on 2018-08-22. | ||
*/ | ||
public class ApiResponse<T> { | ||
|
||
private final MutableLiveData<ApiResponse<T>> mLiveData = new MutableLiveData<>(); | ||
|
||
private T data; | ||
private Exception exception; | ||
|
||
public ApiResponse() { | ||
} | ||
|
||
ApiResponse(T data, Exception exception) { | ||
this.data = data; | ||
this.exception = exception; | ||
} | ||
|
||
public T getData() { | ||
return data; | ||
} | ||
|
||
public Exception getException() { | ||
return exception; | ||
} | ||
|
||
public LiveData<ApiResponse<T>> map(Observable<ModelBridge<T>> observable) { | ||
observable | ||
.map(bridge -> { | ||
if (bridge == null) { | ||
throw new ApiException(ApiException.CODE_FAILED, "获取数据失败"); | ||
} else if (bridge.data == null || (bridge.data instanceof List && ((List) bridge.data).isEmpty())) { | ||
throw new ApiException(ApiException.CODE_EMPTY, "暂无数据"); | ||
} | ||
|
||
return bridge.data; | ||
}) | ||
.compose(RxSchedulers.applyIO()) | ||
.subscribe(new ApiObserver<T>() { | ||
@Override | ||
public void onNext(T t) { | ||
ApiResponseSuccess<T> success = create(t); | ||
mLiveData.postValue(success); | ||
} | ||
|
||
@Override | ||
protected void onErrorResolved(Throwable e, String msg) { | ||
if (e instanceof ApiException && ((ApiException) e).getCode() == ApiException.CODE_EMPTY) { | ||
ApiResponseEmpty<T> empty = create(); | ||
mLiveData.postValue(empty); | ||
} else { | ||
ApiResponseError<T> error = create(new Exception(msg, e)); | ||
mLiveData.postValue(error); | ||
} | ||
} | ||
}); | ||
|
||
return mLiveData; | ||
} | ||
|
||
private ApiResponseSuccess<T> create(T data) { | ||
return new ApiResponseSuccess<>(data, null); | ||
} | ||
|
||
private ApiResponseError<T> create(Exception e) { | ||
return new ApiResponseError<>(null, e); | ||
} | ||
|
||
private ApiResponseEmpty<T> create() { | ||
return new ApiResponseEmpty<>(null, null); | ||
} | ||
|
||
//////////////////////////////////////////////////////////////////////////////////////////////// | ||
public static class ApiResponseSuccess<T> extends ApiResponse<T> { | ||
ApiResponseSuccess(T data, Exception e) { | ||
super(data, e); | ||
} | ||
} | ||
|
||
public static class ApiResponseError<T> extends ApiResponse<T> { | ||
ApiResponseError(T data, Exception e) { | ||
super(data, e); | ||
} | ||
} | ||
|
||
public static class ApiResponseEmpty<T> extends ApiResponse<T> { | ||
ApiResponseEmpty(T data, Exception e) { | ||
super(data, e); | ||
} | ||
} | ||
} |
Oops, something went wrong.