Merge branch 'local' into dev_1.1.2

This commit is contained in:
liujing
2020-08-03 14:54:36 +08:00
4 changed files with 190 additions and 101 deletions

View File

@@ -5,6 +5,7 @@ import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.ImageView;
import androidx.annotation.NonNull;
@@ -26,6 +27,9 @@ import com.mogo.module.v2x.listener.AdapterCallback;
import com.mogo.module.v2x.network.EventApiService;
import com.mogo.module.v2x.network.HttpConstant;
import com.mogo.module.v2x.network.ShareEventParameter;
import com.mogo.module.v2x.network.V2XApiService;
import com.mogo.module.v2x.network.V2XRefreshCallback;
import com.mogo.module.v2x.network.V2XShareNetworkModel;
import com.mogo.module.v2x.presenter.ShareEventsPresenter;
import com.mogo.module.v2x.utils.animation.V2XAnimationManager;
import com.mogo.module.v2x.utils.animation.AnimationResources;
@@ -49,10 +53,9 @@ public class V2XShareEventsFragment extends MvpFragment implements AdapterCallba
private RecyclerView recyclerView;
private V2XShareEventAdapter adapter;
private ArrayList dataArrayList = new ArrayList();
private EventApiService eventApiService;
private int pageNum = 1;
final CountDownLatch countDownLatch = new CountDownLatch(2);
private IMogoNetwork network;
private V2XShareNetworkModel v2XShareNetworkModel;
//动画
private ImageView loadingImageView;
@@ -65,8 +68,7 @@ public class V2XShareEventsFragment extends MvpFragment implements AdapterCallba
@Override
protected void initViews() {
network = (IMogoNetwork) ARouter.getInstance().build(MogoServicePaths.PATH_SERVICES_NETWORK).navigation(getContext());
eventApiService = network.create(EventApiService.class, HttpConstant.Companion.getNetHost());
v2XShareNetworkModel = new V2XShareNetworkModel(getContext());
v2XAnimationManager = new V2XAnimationManager();
initRecyclerView();
initData();
@@ -90,7 +92,7 @@ public class V2XShareEventsFragment extends MvpFragment implements AdapterCallba
private void initData() {
loadingImageView = mRootView.findViewById(R.id.loading_imageview);
v2XAnimationManager.animationWithTarget(loadingImageView, AnimationResources.loadingRes,100);
v2XAnimationManager.animationWithTarget(loadingImageView, AnimationResources.loadingRes, 100);
getShareEventDescription();
getShareEventList(pageNum, 10);
}
@@ -99,106 +101,96 @@ public class V2XShareEventsFragment extends MvpFragment implements AdapterCallba
* 热心指数等
* */
private void getShareEventDescription() {
//ZD802B1932L00622 测试数据sn
ShareEventParameter parameter = new ShareEventParameter(Utils.getSn());
Map<String, Object> parameters = new HashMap<>();
parameters.put("data", GsonUtil.jsonFromObject(parameter));
v2XShareNetworkModel.getShareEventDescription(new V2XRefreshCallback() {
@Override
public void onSuccess(Object result) {
ShareEventDescription resultData = (ShareEventDescription) result;
eventApiService.getEnthusiasmIndex(parameters)
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new SubscribeImpl<ShareEventDescription>(RequestOptions.create(getContext())) {
@Override
public void onSuccess(ShareEventDescription resultData) {
if (resultData != null && resultData.getResult() != null
&& resultData.getResult().getEnthusiasmIndex() != null) {
dataArrayList.add(resultData.getResult().getEnthusiasmIndex());
Log.d(TAG, "热心指数---:" + resultData.getResult().getEnthusiasmIndex());
}
countDownLatch.countDown();
}
if (resultData != null && resultData.getResult() != null
&& resultData.getResult().getEnthusiasmIndex() != null) {
dataArrayList.add(resultData.getResult().getEnthusiasmIndex());
Log.d(TAG, "热心指数---:" + resultData.getResult().getEnthusiasmIndex());
}
countDownLatch.countDown();
}
@Override
public void onError(String message, int code) {
super.onError(message, code);
countDownLatch.countDown();
}
@Override
public void onFail(String msg) {
countDownLatch.countDown();
}
});
}
});
private void loadingError(boolean error) {
Button errorBtn = mRootView.findViewById(R.id.loading_error);
if (error) {
errorBtn.setVisibility(View.VISIBLE);
errorBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
getShareEventList(pageNum, 10);
errorBtn.setVisibility(View.INVISIBLE);
}
});
} else {
}
}
/*
* 分享列表
* */
public void getShareEventList(int page, int size) {
ShareEventParameter parameter = new ShareEventParameter(Utils.getSn(), page, 10);
HashMap<String, Object> parameters = new HashMap<>();
parameters.put("data", GsonUtil.jsonFromObject(parameter));
v2XAnimationManager.start();
eventApiService.getShareEventList(parameters)
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new SubscribeImpl<ShareEventItem>(RequestOptions.create(getContext())) {
@Override
public void onSuccess(ShareEventItem resultData) {
ShareEventLoadMoreItem item = new ShareEventLoadMoreItem();
if (resultData != null && resultData.getResult() != null) {
if (resultData.getResult().getPage() != null) {
int total = resultData.getResult().getPage().getTotal();
if (total == 0) {
//空白
item.setViewType(ShareEventItemEnum.ITEM_TYPE_SHARE_EMPTY);
dataArrayList.add(item);
} else {
if (resultData.getResult().getPage().getContent().size() > 0) {
//当前页有数据
if (dataArrayList.size() > 0) {
Object data = dataArrayList.get(dataArrayList.size() - 1);
if (data instanceof ShareEventLoadMoreItem) {
dataArrayList.remove(dataArrayList.size() - 1);
}
}
dataArrayList.addAll(resultData.getResult().getPage().getContent());
item.setViewType(ShareEventItemEnum.ITEM_TYPE_LOAD_MORE_STATUS);
item.setStatusText("查看更早记录");
} else {
//当前页没有数据
item.setViewType(ShareEventItemEnum.ITEM_TYPE_NO_MORE);
item.setStatusText("没有更多了");
}
dataArrayList.add(item);
}
}
Log.d(TAG, "分享列表---:" + dataArrayList.get(0));
} else {
v2XShareNetworkModel.getShareEventList(page, size, new V2XRefreshCallback() {
@Override
public void onSuccess(Object result) {
ShareEventItem resultData = (ShareEventItem) result;
ShareEventLoadMoreItem item = new ShareEventLoadMoreItem();
if (resultData != null && resultData.getResult() != null) {
if (resultData.getResult().getPage() != null) {
int total = resultData.getResult().getPage().getTotal();
if (total == 0) {
//空白
item.setViewType(ShareEventItemEnum.ITEM_TYPE_SHARE_EMPTY);
dataArrayList.add(item);
} else {
if (resultData.getResult().getPage().getContent().size() > 0) {
//当前页有数据
if (dataArrayList.size() > 0) {
Object data = dataArrayList.get(dataArrayList.size() - 1);
if (data instanceof ShareEventLoadMoreItem) {
dataArrayList.remove(dataArrayList.size() - 1);
}
}
dataArrayList.addAll(resultData.getResult().getPage().getContent());
item.setViewType(ShareEventItemEnum.ITEM_TYPE_LOAD_MORE_STATUS);
item.setStatusText("查看更早记录");
} else {
//当前页没有数据
item.setViewType(ShareEventItemEnum.ITEM_TYPE_NO_MORE);
item.setStatusText("没有更多了");
}
dataArrayList.add(item);
}
adapter.notifyDataSetChanged();
countDownLatch.countDown();
v2XAnimationManager.stop();
}
@Override
public void onError(String message, int code) {
super.onError(message, code);
countDownLatch.countDown();
v2XAnimationManager.stop();
}
});
}
private void addLastData(ArrayList dataArray, int total) {
ShareEventLoadMoreItem item = new ShareEventLoadMoreItem();
if (total > 10) {
if (pageNum <= 1) {//没有分享
item.setViewType(ShareEventItemEnum.ITEM_TYPE_SHARE_EMPTY);
} else {//没有更多了
item.setViewType(ShareEventItemEnum.ITEM_TYPE_NO_MORE);
Log.d(TAG, "分享列表---:" + dataArrayList.get(0));
} else {
//空白
item.setViewType(ShareEventItemEnum.ITEM_TYPE_SHARE_EMPTY);
dataArrayList.add(item);
}
adapter.notifyDataSetChanged();
countDownLatch.countDown();
v2XAnimationManager.stop();
}
dataArray.add(item);
}
@Override
public void onFail(String msg) {
countDownLatch.countDown();
v2XAnimationManager.stop();
}
});
}
@NonNull

View File

@@ -18,19 +18,10 @@ import retrofit2.http.Query;
public interface EventApiService {
//我的分享-热心指数等
@FormUrlEncoded
@POST("/deva/poiInfoFabulous/car/poi/no/queryEnthusiasmIndex/v1")
Observable<ShareEventDescription> getEnthusiasmIndex(@FieldMap Map<String, Object> parames);
//我的分享-列表
@FormUrlEncoded
@POST("/deva/car/pathAndPoi/no/queryInfo")
Observable<ShareEventItem> getShareEventList(@FieldMap Map<String, Object> parames);
//周边列表
/*
* 周边列表
* */
@Headers({"Content-Type:application/json", "Accept:application/json"})
@POST("/deva/car/poi/no/queryNovelty/v1")
Observable<SurroundingResponse> getSurroundingEventList(@Query("sn") String sn, @Body RequestBody jsonStr);
}

View File

@@ -9,6 +9,9 @@ import com.mogo.module.v2x.entity.net.V2XLiveCarRes;
import com.mogo.module.v2x.entity.net.V2XLivePushVoRes;
import com.mogo.module.v2x.entity.net.V2XSeekHelpRes;
import com.mogo.module.v2x.entity.net.V2XStrategyPushRes;
import com.mogo.module.v2x.entity.panel.ShareEventDescription;
import com.mogo.module.v2x.entity.panel.ShareEventItem;
import com.mogo.module.v2x.entity.panel.SurroundingResponse;
import java.util.Map;
@@ -20,6 +23,7 @@ import retrofit2.http.FormUrlEncoded;
import retrofit2.http.GET;
import retrofit2.http.Headers;
import retrofit2.http.POST;
import retrofit2.http.Query;
/**
* @author congtaowang
@@ -108,4 +112,20 @@ public interface V2XApiService {
@FormUrlEncoded
@POST("/yycp-launcherSnapshot/launcherSnapshot/queryIllegalPark")
Observable<MarkerResponse> queryIllegalPark(@FieldMap Map<String, Object> parameters);
/*
* 我的分享-热心指数等
* */
@FormUrlEncoded
@POST("/deva/poiInfoFabulous/car/poi/no/queryEnthusiasmIndex/v1")
Observable<ShareEventDescription> getEnthusiasmIndex(@FieldMap Map<String, Object> parames);
/*
* 我的分享-列表
* */
@FormUrlEncoded
@POST("/deva/car/pathAndPoi/no/queryInfo")
Observable<ShareEventItem> getShareEventList(@FieldMap Map<String, Object> parames);
}

View File

@@ -0,0 +1,86 @@
package com.mogo.module.v2x.network;
import android.content.Context;
import com.alibaba.android.arouter.launcher.ARouter;
import com.mogo.commons.data.BaseData;
import com.mogo.commons.network.SubscribeImpl;
import com.mogo.commons.network.Utils;
import com.mogo.service.MogoServicePaths;
import com.mogo.service.network.IMogoNetwork;
import com.mogo.utils.network.RequestOptions;
import com.mogo.utils.network.utils.GsonUtil;
import java.util.HashMap;
import java.util.Map;
import io.reactivex.android.schedulers.AndroidSchedulers;
import io.reactivex.schedulers.Schedulers;
public class V2XShareNetworkModel {
private final Context mContext;
private V2XApiService mRefreshApiService;
public V2XShareNetworkModel(Context context) {
this.mContext = context;
IMogoNetwork network = (IMogoNetwork) ARouter.getInstance().build(MogoServicePaths.PATH_SERVICES_NETWORK).navigation(context);
this.mRefreshApiService = network.create(V2XApiService.class, HttpConstant.Companion.getNetHost());
}
public void getShareEventDescription(V2XRefreshCallback callback) {
ShareEventParameter parameter = new ShareEventParameter(Utils.getSn());
Map<String, Object> parameters = new HashMap<>();
parameters.put("data", GsonUtil.jsonFromObject(parameter));
mRefreshApiService.getEnthusiasmIndex(parameters)
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new SubscribeImpl<BaseData>(RequestOptions.create((mContext))) {
@Override
public void onSuccess(BaseData resultData) {
super.onSuccess(resultData);
if (callback != null) {
callback.onSuccess(resultData);
}
}
@Override
public void onError(String message, int code) {
super.onError(message, code);
if (callback != null) {
callback.onFail(message);
}
}
});
}
/*
* 分享列表
* */
public void getShareEventList(int page, int size, V2XRefreshCallback callback) {
ShareEventParameter parameter = new ShareEventParameter(Utils.getSn(), page, 10);
HashMap<String, Object> parameters = new HashMap<>();
parameters.put("data", GsonUtil.jsonFromObject(parameter));
mRefreshApiService.getShareEventList(parameters)
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new SubscribeImpl<BaseData>(RequestOptions.create(mContext)) {
@Override
public void onSuccess(BaseData resultData) {
super.onSuccess(resultData);
if (callback != null) {
callback.onSuccess(resultData);
}
}
@Override
public void onError(String message, int code) {
super.onError(message, code);
if (callback != null) {
callback.onFail(message);
}
}
});
}
}