diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/notice/NoticeBannerView.java b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/notice/NoticeBannerView.java index f76d032c57..c010b81109 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/notice/NoticeBannerView.java +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/notice/NoticeBannerView.java @@ -10,7 +10,7 @@ import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.constraintlayout.widget.ConstraintLayout; -import com.mogo.eagle.core.data.notice.NoticeInfo; +import com.mogo.eagle.core.data.notice.NoticeTrafficInfo; import com.mogo.eagle.core.function.hmi.R; /** @@ -61,7 +61,7 @@ public class NoticeBannerView extends ConstraintLayout { } //数据改变刷新UI - public void pushBeanChanged(NoticeInfo info){ + public void pushBeanChanged(NoticeTrafficInfo info){ } } diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/notice/NoticeTrafficAdapter.java b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/notice/NoticeTrafficAdapter.java index 2dc70cf41e..7016a2133a 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/notice/NoticeTrafficAdapter.java +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/notice/NoticeTrafficAdapter.java @@ -9,15 +9,20 @@ import android.widget.TextView; import androidx.annotation.NonNull; import androidx.recyclerview.widget.RecyclerView; +import com.mogo.eagle.core.data.notice.NoticeValue; import com.mogo.eagle.core.function.hmi.R; +import java.util.ArrayList; +import java.util.List; + /** * @author liujing - * @description 描述 + * @description 事故详情(事故来源等)呈现 * @since: 10/26/21 */ class NoticeTrafficAdapter extends RecyclerView.Adapter { LayoutInflater mLayoutInflater; + private List data = new ArrayList(); public NoticeTrafficAdapter(@NonNull Context context) { mLayoutInflater = LayoutInflater.from(context); @@ -34,7 +39,9 @@ class NoticeTrafficAdapter extends RecyclerView.Adapter { @Override public void onBindViewHolder(@NonNull RecyclerView.ViewHolder holder, int position) { - + NoticeValue value = data.get(position); + ((TrafficInfoHolder) holder).keyText.setText(value.getKey()); + ((TrafficInfoHolder) holder).valueText.setText(value.getValue()); } @Override diff --git a/core/function-impl/mogo-core-function-notice/src/main/java/com/mogo/eagle/core/function/notice/NoticeProvider.java b/core/function-impl/mogo-core-function-notice/src/main/java/com/mogo/eagle/core/function/notice/NoticeProvider.java index 69af9d10d4..e6c66dd357 100644 --- a/core/function-impl/mogo-core-function-notice/src/main/java/com/mogo/eagle/core/function/notice/NoticeProvider.java +++ b/core/function-impl/mogo-core-function-notice/src/main/java/com/mogo/eagle/core/function/notice/NoticeProvider.java @@ -41,14 +41,14 @@ public class NoticeProvider implements IMoGoNoticeProvider { @Override public void onDestroy() { - NoticeSocketManager.getInstance().unRegisterSocketMessage(); + NoticeSocketManager.getInstance().unRegisterSocketMessageListener(); } @Override public void init(Context context) { Log.d(TAG, "init"); mContext = context; - NoticeSocketManager.getInstance().registerSocketMessage(context); + NoticeSocketManager.getInstance().registerSocketMessageListener(context); } } diff --git a/core/function-impl/mogo-core-function-notice/src/main/java/com/mogo/eagle/core/function/notice/NoticeSocketManager.java b/core/function-impl/mogo-core-function-notice/src/main/java/com/mogo/eagle/core/function/notice/NoticeSocketManager.java index 082c7505b6..343e92c9c1 100644 --- a/core/function-impl/mogo-core-function-notice/src/main/java/com/mogo/eagle/core/function/notice/NoticeSocketManager.java +++ b/core/function-impl/mogo-core-function-notice/src/main/java/com/mogo/eagle/core/function/notice/NoticeSocketManager.java @@ -17,7 +17,6 @@ class NoticeSocketManager { private String TAG = "AINotice"; private static NoticeSocketManager mNoticeSocketManager; private NoticeMessageListener mNoticeMessageListener; - private static IMogoServiceApis mMoGoServiceApis; private Context mContext; public static synchronized NoticeSocketManager getInstance() { @@ -29,23 +28,17 @@ class NoticeSocketManager { return mNoticeSocketManager; } - public void registerSocketMessage(Context context) { + public void registerSocketMessageListener(Context context) { Log.d(TAG, "registerSocketMessage"); mContext = context; mNoticeMessageListener = new NoticeMessageListener(); - if (mMoGoServiceApis == null) { - mMoGoServiceApis = (IMogoServiceApis) ARouter.getInstance().build(com.mogo.eagle.core.data.constants. - MogoServicePaths.PATH_SERVICE_APIS).navigation(context); - } - mMoGoServiceApis. - getSocketManagerApi(context). + MogoApisHandler.getInstance().getApis().getSocketManagerApi(context). registerOnMessageListener(100, mNoticeMessageListener); } - public void unRegisterSocketMessage() { + public void unRegisterSocketMessageListener() { if (mNoticeMessageListener != null) { - mMoGoServiceApis - .getSocketManagerApi(mContext). + MogoApisHandler.getInstance().getApis().getSocketManagerApi(mContext). unregisterOnMessageListener(100, mNoticeMessageListener); } } diff --git a/core/function-impl/mogo-core-function-notice/src/main/java/com/mogo/eagle/core/function/notice/network/NoticeApiService.java b/core/function-impl/mogo-core-function-notice/src/main/java/com/mogo/eagle/core/function/notice/network/NoticeApiService.java new file mode 100644 index 0000000000..e36b280715 --- /dev/null +++ b/core/function-impl/mogo-core-function-notice/src/main/java/com/mogo/eagle/core/function/notice/network/NoticeApiService.java @@ -0,0 +1,39 @@ +package com.mogo.eagle.core.function.notice.network; + +import com.mogo.commons.data.BaseData; + +import java.util.Map; + +import io.reactivex.Observable; +import retrofit2.http.FieldMap; +import retrofit2.http.FormUrlEncoded; +import retrofit2.http.POST; + +/** + * @author Jing + * @description 云公告相关的短链请求接口定义 + * @since: 10/28/21 + */ +public interface NoticeApiService { + /** + * 获取道路事故详情 + * + * @param accidentParameters 请求数据(sn;infoId) + * @return {@link BaseData} + */ + @FormUrlEncoded + @POST("/deva/accidentInfoManage/queryMyAccidentHandleInfo/server/v1") + Observable getAccidentInfo(@FieldMap Map accidentParameters); + + + /** + * 获取道路事故详情 + * + * @param accidentParameters 请求数据(infoID事故ID;sn;status接受状态 0否 1是) + * @return {@link BaseData} + */ + @FormUrlEncoded + @POST("/deva/accidentInfoManage/policeUpdateTroubleStatus") + Observable sendAcceptStatus(@FieldMap Map accidentParameters); + +} diff --git a/core/function-impl/mogo-core-function-notice/src/main/java/com/mogo/eagle/core/function/notice/network/NoticeNetWorkManager.java b/core/function-impl/mogo-core-function-notice/src/main/java/com/mogo/eagle/core/function/notice/network/NoticeNetWorkManager.java new file mode 100644 index 0000000000..8b45dacc0e --- /dev/null +++ b/core/function-impl/mogo-core-function-notice/src/main/java/com/mogo/eagle/core/function/notice/network/NoticeNetWorkManager.java @@ -0,0 +1,118 @@ +package com.mogo.eagle.core.function.notice.network; + +import com.mogo.cloud.network.NetConstants; +import com.mogo.cloud.network.RetrofitFactory; +import com.mogo.cloud.passport.MoGoAiCloudClient; +import com.mogo.commons.data.BaseData; + +import java.util.HashMap; +import java.util.Map; + +import io.reactivex.Observer; +import io.reactivex.android.schedulers.AndroidSchedulers; +import io.reactivex.annotations.NonNull; +import io.reactivex.disposables.Disposable; +import io.reactivex.schedulers.Schedulers; + +/** + * @author Jing + * @description 云公告网络请求类 + * @since: 10/28/21 + */ +public class NoticeNetWorkManager { + private String TAG = "AINotice"; + private static volatile NoticeNetWorkManager requestNoticeManager; + private final NoticeApiService mNoticeApiService; + + private NoticeNetWorkManager() { + mNoticeApiService = RetrofitFactory.INSTANCE.getInstance(NetConstants.DEVA_HOST) //todo 涉及云公告 + .create(NoticeApiService.class); + } + + public static NoticeNetWorkManager getInstance() { + if (requestNoticeManager == null) { + synchronized (NoticeNetWorkManager.class) { + if (requestNoticeManager == null) { + requestNoticeManager = new NoticeNetWorkManager(); + } + } + } + return requestNoticeManager; + } + + /** + * 获取事故详细信息 + * + * @param infoId 事故id + * @param sn + */ + public void requestAccidentInfo(String infoId, String sn) { + String snString = MoGoAiCloudClient.getInstance().getAiCloudClientConfig().getSn(); + Map map = new HashMap<>(); + map.put("sn", sn); + map.put("infoId", infoId); + mNoticeApiService.getAccidentInfo(map) + .subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()) + .subscribe(new Observer() { + @Override + public void onSubscribe(@NonNull Disposable d) { + + } + + @Override + public void onNext(@NonNull BaseData baseData) { + + } + + @Override + public void onError(@NonNull Throwable e) { + + } + + @Override + public void onComplete() { + + } + }); + } + + /** + * 反馈交警是否接受事故任务 + * + * @param infoId 事故id + * @param sn + * @param status 是否接受 0否 1是 + */ + public void sendAccidentAcceptStatus(String infoId, String sn, String status) { + String snString = MoGoAiCloudClient.getInstance().getAiCloudClientConfig().getSn(); + Map map = new HashMap<>(); + map.put("sn", sn); + map.put("infoId", infoId); + map.put("status", status); + mNoticeApiService.sendAcceptStatus(map) + .subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()) + .subscribe(new Observer() { + @Override + public void onSubscribe(@NonNull Disposable d) { + + } + + @Override + public void onNext(@NonNull BaseData baseData) { + + } + + @Override + public void onError(@NonNull Throwable e) { + + } + + @Override + public void onComplete() { + + } + }); + } +} diff --git a/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/notice/NoticeInfo.java b/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/notice/NoticeTrafficInfo.java similarity index 67% rename from core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/notice/NoticeInfo.java rename to core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/notice/NoticeTrafficInfo.java index 024dba8d76..fc06e8d6a5 100644 --- a/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/notice/NoticeInfo.java +++ b/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/notice/NoticeTrafficInfo.java @@ -7,12 +7,13 @@ import java.io.Serializable; * @description 交通事故任务详情数据bean * @since: 10/26/21 */ -public class NoticeInfo implements Serializable { +public class NoticeTrafficInfo implements Serializable { private String infoId;//事故id + private String poiType;//事故类型 private long dataCreateTime;//事故发生时间 private long dataHandleTime;//事故处理时间 private String operaStatus;//事故状态 - private String reason;//事故原因 + private String troubleReasonName;//事故原因 public String getInfoId() { return infoId; @@ -22,6 +23,14 @@ public class NoticeInfo implements Serializable { this.infoId = infoId; } + public String getPoiType() { + return poiType; + } + + public void setPoiType(String poiType) { + this.poiType = poiType; + } + public long getDataCreateTime() { return dataCreateTime; } @@ -46,22 +55,23 @@ public class NoticeInfo implements Serializable { this.operaStatus = operaStatus; } - public String getReason() { - return reason; + public String getTroubleReasonName() { + return troubleReasonName; } - public void setReason(String reason) { - this.reason = reason; + public void setTroubleReasonName(String troubleReasonName) { + this.troubleReasonName = troubleReasonName; } @Override public String toString() { - return "NoticeInfo{" + + return "NoticeTrafficInfo{" + "infoId='" + infoId + '\'' + + ", poiType='" + poiType + '\'' + ", dataCreateTime=" + dataCreateTime + ", dataHandleTime=" + dataHandleTime + ", operaStatus='" + operaStatus + '\'' + - ", reason='" + reason + '\'' + + ", troubleReasonName='" + troubleReasonName + '\'' + '}'; } } diff --git a/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/notice/NoticeValue.java b/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/notice/NoticeValue.java new file mode 100644 index 0000000000..1800888038 --- /dev/null +++ b/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/notice/NoticeValue.java @@ -0,0 +1,37 @@ +package com.mogo.eagle.core.data.notice; + +import java.io.Serializable; + +/** + * @author Jing + * @description 存储交通事故键值对value + * @since: 10/28/21 + */ +public class NoticeValue implements Serializable { + private String key; + private String value; + + public String getKey() { + return key; + } + + public void setKey(String key) { + this.key = key; + } + + public String getValue() { + return value; + } + + public void setValue(String value) { + this.value = value; + } + + @Override + public String toString() { + return "NoticeValue{" + + "key='" + key + '\'' + + ", value='" + value + '\'' + + '}'; + } +}