Skip to content

Commit c4fecdd

Browse files
committed
wanandroid的Appdemo加入,正在书写中
1 parent 202b2aa commit c4fecdd

File tree

16 files changed

+340
-89
lines changed

16 files changed

+340
-89
lines changed

wanandroidapp/src/main/AndroidManifest.xml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,13 +16,14 @@
1616
android:roundIcon="@mipmap/ic_launcher_round"
1717
android:supportsRtl="true"
1818
android:theme="@style/AppTheme">
19-
<activity android:name=".ui.activity.MainActivity">
19+
<activity android:name=".ui.activity.TestActivity">
2020
<intent-filter>
2121
<action android:name="android.intent.action.MAIN" />
2222

2323
<category android:name="android.intent.category.LAUNCHER" />
2424
</intent-filter>
2525
</activity>
26+
<activity android:name=".ui.activity.MainActivity"/>
2627
</application>
2728

2829
</manifest>

wanandroidapp/src/main/java/com/yzs/wanandroidapp/bean/BannerBean.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
/**
66
* Author: 姚智胜
77
* Version: V1.0版本
8-
* Description:
8+
* Description: 首页banner数据类
99
* Date: 2018/4/25
1010
*/
1111
public class BannerBean {

wanandroidapp/src/main/java/com/yzs/wanandroidapp/bean/HomeBean.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
/**
66
* Author: 姚智胜
77
* Version: V1.0版本
8-
* Description:
8+
* Description: 首页数据类
99
* Date: 2018/4/23
1010
*/
1111
public class HomeBean {

wanandroidapp/src/main/java/com/yzs/wanandroidapp/bean/HomeKnowledgeBean.java

Lines changed: 199 additions & 0 deletions
Large diffs are not rendered by default.

wanandroidapp/src/main/java/com/yzs/wanandroidapp/contract/HomeContract.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,11 +28,14 @@ interface CHomeModel extends BaseModel {
2828
Observable<HomeBean> requestHomeListData(int page);
2929

3030
Observable<BannerBean> requestBannerData();
31+
32+
Observable<Object> refresh();
3133
}
3234

3335
abstract static class CHomePresenter extends BasePresenter<CHomeView, CHomeModel> {
36+
3437
public abstract void getDataRequest(int page);
3538

36-
public abstract void getBannerDataRequest();
39+
public abstract void refresh();
3740
}
3841
}

wanandroidapp/src/main/java/com/yzs/wanandroidapp/model/HomeModel.java

Lines changed: 8 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -1,68 +1,33 @@
11
package com.yzs.wanandroidapp.model;
22

3-
import com.google.gson.Gson;
43
import com.yzs.wanandroidapp.bean.BannerBean;
54
import com.yzs.wanandroidapp.bean.HomeBean;
65
import com.yzs.wanandroidapp.contract.HomeContract;
76
import com.yzs.wanandroidapp.http.Api;
8-
import com.yzs.yzslibrary.util.LogUtils;
97

108
import io.reactivex.Observable;
11-
import io.reactivex.Observer;
12-
import io.reactivex.android.schedulers.AndroidSchedulers;
13-
import io.reactivex.annotations.NonNull;
14-
import io.reactivex.disposables.Disposable;
15-
import io.reactivex.functions.Function;
16-
import io.reactivex.schedulers.Schedulers;
179

1810
/**
1911
* Author: 姚智胜
2012
* Version: V1.0版本
21-
* Description:
13+
* Description: 首页model
2214
* Date: 2018/4/25
2315
*/
2416
public class HomeModel implements HomeContract.CHomeModel {
2517

2618
@Override
2719
public Observable<HomeBean> requestHomeListData(int page) {
28-
return Api.getDefault().getFeedArticleList(page).map(new Function<HomeBean, HomeBean>() {
29-
@Override
30-
public HomeBean apply(@NonNull HomeBean homeBean) throws Exception {
31-
return homeBean;
32-
}
33-
});
34-
// subscribeOn(Schedulers.io()).
35-
// observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer<HomeBean>() {
36-
// @Override
37-
// public void onSubscribe(@NonNull Disposable disposable) {
38-
//
39-
// }
40-
//
41-
// @Override
42-
// public void onNext(@NonNull HomeBean homeBean) {
43-
// LogUtils.e(new Gson().toJson(homeBean));
44-
// }
45-
//
46-
// @Override
47-
// public void onError(@NonNull Throwable throwable) {
48-
//
49-
// }
50-
//
51-
// @Override
52-
// public void onComplete() {
53-
//
54-
// }
55-
// });
20+
return Api.getDefault().getFeedArticleList(page);
5621
}
5722

5823
@Override
5924
public Observable<BannerBean> requestBannerData() {
60-
return Api.getDefault().getBanner().map(new Function<BannerBean, BannerBean>() {
61-
@Override
62-
public BannerBean apply(@NonNull BannerBean bannerBean) throws Exception {
63-
return bannerBean;
64-
}
65-
});
25+
return Api.getDefault().getBanner();
26+
}
27+
28+
@Override
29+
public Observable<Object> refresh() {
30+
return Observable.merge(requestBannerData(), requestHomeListData(0));
6631
}
6732

6833
@Override

wanandroidapp/src/main/java/com/yzs/wanandroidapp/presenter/HomePresenter.java

Lines changed: 18 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
package com.yzs.wanandroidapp.presenter;
22

3+
34
import com.yzs.wanandroidapp.bean.BannerBean;
45
import com.yzs.wanandroidapp.bean.HomeBean;
56
import com.yzs.wanandroidapp.contract.HomeContract;
6-
import com.yzs.yzslibrary.util.LogUtils;
7+
78

89
import io.reactivex.Observer;
9-
import io.reactivex.Scheduler;
1010
import io.reactivex.android.schedulers.AndroidSchedulers;
1111
import io.reactivex.annotations.NonNull;
1212
import io.reactivex.disposables.Disposable;
@@ -15,13 +15,14 @@
1515
/**
1616
* Author: 姚智胜
1717
* Version: V1.0版本
18-
* Description:
18+
* Description: 首页presenter
1919
* Date: 2018/4/25
2020
*/
2121
public class HomePresenter extends HomeContract.CHomePresenter {
2222

2323
@Override
2424
public void getDataRequest(int page) {
25+
2526
mModel.requestHomeListData(page).subscribeOn(Schedulers.io()).
2627
observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer<HomeBean>() {
2728
@Override
@@ -47,34 +48,32 @@ public void onComplete() {
4748
}
4849

4950
@Override
50-
public void getBannerDataRequest() {
51-
mModel.requestBannerData().subscribeOn(Schedulers.io()).
52-
observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer<BannerBean>() {
53-
@Override
54-
public void onSubscribe(@NonNull Disposable disposable) {
55-
// mView.showLoading("");
56-
}
57-
51+
public void refresh() {
52+
mModel.refresh().subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(new Observer<Object>() {
5853
@Override
59-
public void onNext(@NonNull BannerBean bannerBean) {
60-
LogUtils.e("onNext");
61-
if (bannerBean.getErrorCode() < 0) {
62-
mView.showErrorTip(bannerBean.getErrorMsg());
63-
} else {
54+
public void onNext(@NonNull Object o) {
55+
if (o instanceof BannerBean) {
56+
BannerBean bannerBean = (BannerBean) o;
6457
mView.showBanner(bannerBean.getData());
58+
} else if (o instanceof HomeBean) {
59+
HomeBean homeBean = (HomeBean) o;
60+
mView.showData(homeBean.getData());
6561
}
6662
}
6763

6864
@Override
6965
public void onError(@NonNull Throwable throwable) {
7066
mView.showErrorTip(throwable.getMessage());
71-
LogUtils.e("onError");
7267
}
7368

7469
@Override
7570
public void onComplete() {
76-
LogUtils.e("onComplete");
77-
// mView.stopLoading();
71+
mView.stopLoading();
72+
}
73+
74+
@Override
75+
public void onSubscribe(@NonNull Disposable disposable) {
76+
mView.showLoading("");
7877
}
7978
});
8079
}
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
package com.yzs.wanandroidapp.ui.activity;
2+
3+
import android.app.Activity;
4+
import android.content.Intent;
5+
import android.os.Bundle;
6+
import android.support.annotation.Nullable;
7+
import android.view.View;
8+
9+
import com.yzs.wanandroidapp.R;
10+
11+
/**
12+
* Author: 姚智胜
13+
* Version: V1.0版本
14+
* Description:
15+
* Date: 2018/4/28
16+
*/
17+
public class TestActivity extends Activity {
18+
@Override
19+
protected void onCreate(@Nullable Bundle savedInstanceState) {
20+
super.onCreate(savedInstanceState);
21+
setContentView(R.layout.ac_test);
22+
findViewById(R.id.btn_test).setOnClickListener(new View.OnClickListener() {
23+
@Override
24+
public void onClick(View view) {
25+
startActivity(new Intent(TestActivity.this, MainActivity.class));
26+
}
27+
});
28+
29+
}
30+
}

wanandroidapp/src/main/java/com/yzs/wanandroidapp/ui/fragment/home/HomeFragment.java

Lines changed: 10 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,8 @@
44
import android.view.LayoutInflater;
55
import android.view.View;
66

7+
import com.chad.library.adapter.base.BaseQuickAdapter;
78
import com.chad.library.adapter.base.BaseViewHolder;
8-
import com.google.gson.Gson;
99
import com.like.LikeButton;
1010
import com.like.OnLikeListener;
1111
import com.youth.banner.Banner;
@@ -16,28 +16,19 @@
1616
import com.yzs.wanandroidapp.bean.BannerBean;
1717
import com.yzs.wanandroidapp.bean.HomeBean;
1818
import com.yzs.wanandroidapp.contract.HomeContract;
19-
import com.yzs.wanandroidapp.http.Api;
2019
import com.yzs.wanandroidapp.model.HomeModel;
2120
import com.yzs.wanandroidapp.presenter.HomePresenter;
2221
import com.yzs.wanandroidapp.utils.GlideImageLoader;
2322
import com.yzs.yzsbaseactivitylib.entity.BaseListType;
2423
import com.yzs.yzsbaseactivitylib.util.LoadingDialogUtils;
25-
import com.yzs.yzsbaseactivitylib.yzsbase.YzsBaseListFragment;
2624
import com.yzs.yzsbaseactivitylib.yzsbase.YzsBaseMvpListFragment;
27-
import com.yzs.yzslibrary.util.ConstUtils;
28-
import com.yzs.yzslibrary.util.LogUtils;
2925
import com.yzs.yzslibrary.util.TimeUtils;
3026
import com.yzs.yzslibrary.util.ToastUtils;
3127

3228
import java.text.SimpleDateFormat;
3329
import java.util.List;
3430
import java.util.Locale;
3531

36-
import io.reactivex.Observer;
37-
import io.reactivex.android.schedulers.AndroidSchedulers;
38-
import io.reactivex.annotations.NonNull;
39-
import io.reactivex.disposables.Disposable;
40-
import io.reactivex.schedulers.Schedulers;
4132

4233
/**
4334
* Author: 姚智胜
@@ -112,6 +103,12 @@ protected void initLogic() {
112103
View headView = LayoutInflater.from(_mActivity).inflate(R.layout.layout_head_home, null);
113104
banner = (Banner) headView.findViewById(R.id.banner_home);
114105
mAdapter.addHeaderView(headView);
106+
mAdapter.setOnItemClickListener(new BaseQuickAdapter.OnItemClickListener() {
107+
@Override
108+
public void onItemClick(BaseQuickAdapter baseQuickAdapter, View view, int i) {
109+
110+
}
111+
});
115112
autoRefresh();
116113
}
117114

@@ -123,7 +120,7 @@ public boolean showToolBar() {
123120
/**
124121
* 详细使用
125122
*/
126-
private void bannerUse(List<BannerBean.DataBean> bannerList) {
123+
private void initBanner(List<BannerBean.DataBean> bannerList) {
127124
//设置banner样式
128125
banner.setBannerStyle(BannerConfig.NUM_INDICATOR);
129126
//设置图片加载器
@@ -174,14 +171,13 @@ public void showData(HomeBean.DataBean bean) {
174171

175172
@Override
176173
public void showBanner(List<BannerBean.DataBean> bannerList) {
177-
bannerUse(bannerList);
174+
initBanner(bannerList);
178175
}
179176

180177
@Override
181178
protected void refreshListener() {
182179
setPage(0);
183-
mPresenter.getBannerDataRequest();
184-
mPresenter.getDataRequest(getPage());
180+
mPresenter.refresh();
185181
}
186182

187183
@Override

wanandroidapp/src/main/java/com/yzs/wanandroidapp/ui/fragment/home/KnowledgeFragment.java

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,8 @@
55

66
import com.chad.library.adapter.base.BaseViewHolder;
77
import com.yzs.wanandroidapp.R;
8+
import com.yzs.wanandroidapp.bean.HomeKnowledgeBean;
9+
import com.yzs.yzsbaseactivitylib.entity.BaseListType;
810
import com.yzs.yzsbaseactivitylib.yzsbase.YzsBaseFragment;
911
import com.yzs.yzsbaseactivitylib.yzsbase.YzsBaseListFragment;
1012

@@ -14,7 +16,7 @@
1416
* Description: 知识体系fragment
1517
* Date: 2018/4/20
1618
*/
17-
public class KnowledgeFragment extends YzsBaseListFragment{
19+
public class KnowledgeFragment extends YzsBaseListFragment<HomeKnowledgeBean.DataBean> {
1820

1921
public static KnowledgeFragment newInstance() {
2022

@@ -26,19 +28,22 @@ public static KnowledgeFragment newInstance() {
2628

2729
@Override
2830
protected int initItemLayout() {
29-
return R.layout.item_home_layout;
31+
return R.layout.item_layout_knowledge;
3032
}
3133

3234
@Override
3335
protected void initSetting() {
34-
36+
isOpenLoad(false, false);
37+
setListType(BaseListType.LINEAR_LAYOUT_MANAGER, true);//设置展示方式
3538
}
3639

3740
@Override
38-
protected void MyHolder(BaseViewHolder baseViewHolder, Object o) {
41+
protected void MyHolder(BaseViewHolder baseViewHolder, HomeKnowledgeBean.DataBean bean) {
42+
baseViewHolder.setText(R.id.tv_knowledge_title, bean.getName());
3943

4044
}
4145

46+
4247
@Override
4348
protected void initLogic() {
4449

0 commit comments

Comments
 (0)