diff --git a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/fragment/V2XShareEventsFragment.java b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/fragment/V2XShareEventsFragment.java index 715868cb3a..6cb64a8f68 100644 --- a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/fragment/V2XShareEventsFragment.java +++ b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/fragment/V2XShareEventsFragment.java @@ -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 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(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 parameters = new HashMap<>(); - parameters.put("data", GsonUtil.jsonFromObject(parameter)); v2XAnimationManager.start(); - eventApiService.getShareEventList(parameters) - .subscribeOn(Schedulers.io()) - .observeOn(AndroidSchedulers.mainThread()) - .subscribe(new SubscribeImpl(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 diff --git a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/network/EventApiService.java b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/network/EventApiService.java index 30d0b0442b..85777d4386 100644 --- a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/network/EventApiService.java +++ b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/network/EventApiService.java @@ -18,19 +18,10 @@ import retrofit2.http.Query; public interface EventApiService { - //我的分享-热心指数等 - @FormUrlEncoded - @POST("/deva/poiInfoFabulous/car/poi/no/queryEnthusiasmIndex/v1") - Observable getEnthusiasmIndex(@FieldMap Map parames); - - //我的分享-列表 - @FormUrlEncoded - @POST("/deva/car/pathAndPoi/no/queryInfo") - Observable getShareEventList(@FieldMap Map parames); - - //周边列表 + /* + * 周边列表 + * */ @Headers({"Content-Type:application/json", "Accept:application/json"}) @POST("/deva/car/poi/no/queryNovelty/v1") Observable getSurroundingEventList(@Query("sn") String sn, @Body RequestBody jsonStr); - } diff --git a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/network/V2XApiService.java b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/network/V2XApiService.java index 40e84f3b7d..a45cd154c6 100644 --- a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/network/V2XApiService.java +++ b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/network/V2XApiService.java @@ -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 queryIllegalPark(@FieldMap Map parameters); + + /* + * 我的分享-热心指数等 + * */ + @FormUrlEncoded + @POST("/deva/poiInfoFabulous/car/poi/no/queryEnthusiasmIndex/v1") + Observable getEnthusiasmIndex(@FieldMap Map parames); + + /* + * 我的分享-列表 + * */ + @FormUrlEncoded + @POST("/deva/car/pathAndPoi/no/queryInfo") + Observable getShareEventList(@FieldMap Map parames); + + } diff --git a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/network/V2XShareNetworkModel.java b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/network/V2XShareNetworkModel.java new file mode 100644 index 0000000000..208cc7d2bb --- /dev/null +++ b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/network/V2XShareNetworkModel.java @@ -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 parameters = new HashMap<>(); + parameters.put("data", GsonUtil.jsonFromObject(parameter)); + + mRefreshApiService.getEnthusiasmIndex(parameters) + .subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()) + .subscribe(new SubscribeImpl(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 parameters = new HashMap<>(); + parameters.put("data", GsonUtil.jsonFromObject(parameter)); + mRefreshApiService.getShareEventList(parameters) + .subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()) + .subscribe(new SubscribeImpl(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); + } + } + }); + } +}