diff --git a/.idea/gradle.xml b/.idea/gradle.xml
index 22d04a33fd..ad82747b49 100644
--- a/.idea/gradle.xml
+++ b/.idea/gradle.xml
@@ -4,7 +4,7 @@
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 0652564d19..6bcfe25e95 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
@@ -61,8 +61,8 @@ class NoticeTrafficAdapter extends RecyclerView.Adapter {
@Override
public int getItemCount() {
- Log.d(TAG, String.valueOf(data.size()));
- return 9;
+ Log.d(TAG, "getItemCount++" + String.valueOf(data.size()));
+ return data.size();
}
public class TrafficInfoHolder extends RecyclerView.ViewHolder {
diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/notice/NoticeTrafficDialog.java b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/notice/NoticeTrafficDialog.java
index fc3c160885..98784f5667 100644
--- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/notice/NoticeTrafficDialog.java
+++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/notice/NoticeTrafficDialog.java
@@ -17,11 +17,9 @@ import com.mogo.eagle.core.data.notice.NoticeTrafficStyleInfo;
import com.mogo.eagle.core.data.notice.NoticeTrafficStylePushData;
import com.mogo.eagle.core.data.notice.NoticeValue;
import com.mogo.eagle.core.function.api.notice.NoticeNetCallBack;
-import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotManager;
import com.mogo.eagle.core.function.call.notice.CallerNoticeManager;
import com.mogo.eagle.core.function.hmi.R;
import com.mogo.eagle.core.widget.media.video.NoticeSimpleSmallVideoPlayer;
-import com.mogo.eagle.core.widget.media.video.NoticeSimpleVideoPlayer;
import com.mogo.module.common.MogoApisHandler;
import com.mogo.module.common.dialog.BaseFloatDialog;
import com.mogo.service.imageloader.MogoImageView;
@@ -30,6 +28,7 @@ import com.shuyu.gsyvideoplayer.GSYVideoManager;
import com.mogo.utils.DateTimeUtils;
import com.shuyu.gsyvideoplayer.builder.GSYVideoOptionBuilder;
import com.shuyu.gsyvideoplayer.listener.VideoAllCallBack;
+import com.shuyu.gsyvideoplayer.utils.NetworkUtils;
import com.shuyu.gsyvideoplayer.video.base.GSYVideoView;
import java.util.ArrayList;
@@ -43,7 +42,7 @@ public class NoticeTrafficDialog extends BaseFloatDialog {
private String TAG = "AINotice";
private Context mContext;
private RecyclerView mRecyclerView;
- private NoticeSimpleVideoPlayer mVideoPlayer;
+ private NoticeSimpleSmallVideoPlayer mVideoPlayer;
private NoticeTrafficStylePushData mPushData;
private ImageView close;
private ImageView playImageView;
@@ -51,6 +50,7 @@ public class NoticeTrafficDialog extends BaseFloatDialog {
private GSYVideoOptionBuilder gsyVideoOptionBuilder = new GSYVideoOptionBuilder();
private TextView accept;//接受
private TextView refuse;//拒绝
+ private TextView connect;//连接
private NoticeTrafficAdapter adapter;
private ArrayList dataArrayList = new ArrayList();
private NoticeTrafficStyleInfo mTrafficStyleInfo;
@@ -70,21 +70,46 @@ public class NoticeTrafficDialog extends BaseFloatDialog {
setContentView(R.layout.notice_dialog_traffic_police);
setCanceledOnTouchOutside(true);
playerShow();//视频播放器
- recyclerVie();//下方详情信息列表
+ recyclerVie();//详情信息列表
+ otherFunctionButton();
+ netWorkStatus();
+ }
- accept = findViewById(R.id.accept_traffic);
- refuse = findViewById(R.id.refuse_traffic);
- accept.setOnClickListener(v -> {
- feedBackTraffic(1);
+ /**
+ * 根据推送消息渲染顶部图片/视频
+ * type 0图片 1视频
+ */
+ private void playerShow() {
+ mVideoPlayer = findViewById(R.id.video_player);
+ thumbnailImage = findViewById(R.id.thumbnail_image);
+ playImageView = this.findViewById(R.id.start_for_traffic);
+ playImageView.setOnClickListener(v -> {
+ startLive();
});
- refuse.setOnClickListener(v -> {
- feedBackTraffic(0);
+ close = findViewById(R.id.notice_traffic_dialog_close);
+ close.setOnClickListener(v -> {
+ releasePlayer();
+ dismiss();
});
- //重新连接
- findViewById(R.id.notice_connect).setOnClickListener(v -> {
- requestTrafficInfo();
+ if (mPushData.getType() == 1) {
+ startLive();
+ } else {
+ MogoApisHandler.getInstance().getApis().getImageLoaderApi().displayImage(mPushData.getPoiImgUrl(),
+ thumbnailImage);
+ thumbnailImage.setVisibility(View.VISIBLE);
+ playImageView.setVisibility(View.INVISIBLE);
+ }
+ mVideoPlayer.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View v) {
+ if (mVideoPlayer.getCurrentState() == GSYVideoView.CURRENT_STATE_PAUSE) {/*播放中*/
+ resume();
+ } else {
+ pause();
+ }
+ }
});
- requestTrafficInfo();
+
}
private void recyclerVie() {
@@ -106,15 +131,38 @@ public class NoticeTrafficDialog extends BaseFloatDialog {
}
+ private void otherFunctionButton() {
+ accept = findViewById(R.id.accept_traffic);
+ refuse = findViewById(R.id.refuse_traffic);
+ connect = findViewById(R.id.notice_connect);
+ accept.setOnClickListener(v -> {
+ feedBackTraffic(1);
+ });
+ refuse.setOnClickListener(v -> {
+ feedBackTraffic(0);
+ });
+ //重新连接
+ connect.setOnClickListener(v -> {
+ netWorkStatus();
+ startLive();
+ requestTrafficInfo();
+ });
+ requestTrafficInfo();
+ }
+
/**
* @param i 是否接受交通事故任务
* 0不接收 1接受 发起自动驾驶任务,显示引导线
*/
private void feedBackTraffic(int i) {
CallerNoticeManager.getNoticeProvider().feedBackNoticeTraffic(mPushData.getInfoId(), MoGoAiCloudClientConfig.getInstance().getSn(), 1);
-
+ if (i == 1) {
+ startAutoPilot();
+ }
+ dismiss();
}
+
/**
* 开启自动驾驶
*/
@@ -131,6 +179,175 @@ public class NoticeTrafficDialog extends BaseFloatDialog {
parameters.endLatLon = endLocation;
}
+ /**
+ * 暂停
+ */
+ private void pause() {
+ playImageView.setVisibility(View.VISIBLE);
+ thumbnailImage.setVisibility(View.GONE);
+ playImageView.setOnClickListener(v -> {
+ mVideoPlayer.onVideoResume();
+ });
+ thumbnailImage.setOnClickListener(v -> {
+ mVideoPlayer.onVideoResume();
+ });
+ }
+
+ /**
+ * 继续
+ */
+ private void resume() {
+ playImageView.setImageResource(R.drawable.notice_video_pause);
+ playImageView.setVisibility(View.GONE);
+ thumbnailImage.setVisibility(View.GONE);
+ }
+
+ /**
+ * 播放结束后
+ */
+ private void complete(Bitmap firstbitmap) {
+ thumbnailImage.setVisibility(View.VISIBLE);
+ thumbnailImage.setImageBitmap(firstbitmap);
+ playImageView.setImageResource(R.drawable.notice_video_play);
+ playImageView.setVisibility(View.VISIBLE);
+ playImageView.setOnClickListener(v -> {
+ startLive();
+ });
+ thumbnailImage.setOnClickListener(v -> {
+ startLive();
+ });
+ }
+
+ /**
+ * 视频播放
+ */
+ private void startLive() {
+ if (mPushData != null) {
+ try {
+ Log.d(TAG, "交警事故开始播放视频startLive");
+ String videoUrl = mPushData.getPoiImgUrl();
+ gsyVideoOptionBuilder.setUrl(videoUrl).setCacheWithPlay(false).setPlayTag("NoticeTrafficDialog")
+ .build(mVideoPlayer);
+ mVideoPlayer.getStartButton().performClick();
+ liveCallBack();
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
+ }
+
+ private void liveCallBack() {
+ new Thread(new Runnable() {
+ @Override
+ public void run() {
+ Bitmap firstBitmap = BitmapHelper.getVideoThumbnail(mPushData.getPoiImgUrl());/*获取第一帧图*/
+ mVideoPlayer.setVideoAllCallBack(new VideoAllCallBack() {
+ @Override
+ public void onAutoComplete(String url, Object... objects) {
+ complete(firstBitmap);
+ }
+
+ @Override
+ public void onClickResume(String url, Object... objects) {
+ thumbnailImage.setVisibility(View.GONE);
+ playImageView.setVisibility(View.GONE);
+ }
+
+ @Override
+ public void onClickStop(String url, Object... objects) {
+ Log.d(TAG, "onClickStop");
+ }
+
+ @Override
+ public void onStartPrepared(String url, Object... objects) {
+ Log.d(TAG, "onStartPrepared");
+ }
+
+ @Override
+ public void onPrepared(String url, Object... objects) {
+ Log.d(TAG, "onPrepared");
+ }
+
+ @Override
+ public void onClickStartIcon(String url, Object... objects) {
+ Log.d(TAG, "onClickStartIcon");
+ }
+
+ @Override
+ public void onClickStartError(String url, Object... objects) {
+ Log.d(TAG, "onClickStartError");
+ }
+
+ @Override
+ public void onClickStopFullscreen(String url, Object... objects) {
+ Log.d(TAG, "onClickStopFullscreen");
+ }
+
+ @Override
+ public void onClickResumeFullscreen(String url, Object... objects) {
+ }
+
+ @Override
+ public void onClickSeekbar(String url, Object... objects) {
+ }
+
+ @Override
+ public void onClickSeekbarFullscreen(String url, Object... objects) {
+ }
+
+ @Override
+ public void onEnterFullscreen(String url, Object... objects) {
+ }
+
+ @Override
+ public void onQuitFullscreen(String url, Object... objects) {
+ }
+
+ @Override
+ public void onQuitSmallWidget(String url, Object... objects) {
+ }
+
+ @Override
+ public void onEnterSmallWidget(String url, Object... objects) {
+ }
+
+ @Override
+ public void onTouchScreenSeekVolume(String url, Object... objects) {
+ }
+
+ @Override
+ public void onTouchScreenSeekPosition(String url, Object... objects) {
+ }
+
+ @Override
+ public void onTouchScreenSeekLight(String url, Object... objects) {
+ }
+
+ @Override
+ public void onPlayError(String url, Object... objects) {
+ thumbnailImage.setVisibility(View.VISIBLE);
+ connect.setVisibility(View.VISIBLE);
+ Log.d(TAG, "onPlayError");
+ }
+
+ @Override
+ public void onClickStartThumb(String url, Object... objects) {
+ }
+
+ @Override
+ public void onClickBlank(String url, Object... objects) {
+ }
+
+ @Override
+ public void onClickBlankFullscreen(String url, Object... objects) {
+ Log.d(TAG, "onClickBlankFullscreen");
+
+ }
+ });
+ }
+ }).start();
+ }
+
/**
* 获取交通事故详情
*/
@@ -203,207 +420,18 @@ public class NoticeTrafficDialog extends BaseFloatDialog {
}
/**
- * 根据推送消息渲染顶部图片/视频
- * type 0图片 1视频
+ * 判断网络状态
*/
- private void playerShow() {
- mVideoPlayer = findViewById(R.id.video_player);
- thumbnailImage = findViewById(R.id.thumbnail_image);
- playImageView = this.findViewById(R.id.start_play);
- playImageView.setOnClickListener(v -> {
- startLive();
- });
- close = findViewById(R.id.notice_traffic_dialog_close);
- close.setOnClickListener(v -> {
- releasePlayer();
- dismiss();
- });
- if (mPushData.getType() == 1) {
- startLive();
+ private void netWorkStatus(){
+ if (NetworkUtils.isAvailable(getContext())) {
+ Log.d(TAG, "网络可用");
+ thumbnailImage.setVisibility(View.GONE);
+ connect.setVisibility(View.GONE);
} else {
- MogoApisHandler.getInstance().getApis().getImageLoaderApi().displayImage(mPushData.getPoiImgUrl(),
- thumbnailImage);
thumbnailImage.setVisibility(View.VISIBLE);
- playImageView.setVisibility(View.INVISIBLE);
- }
- mVideoPlayer.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- if (mVideoPlayer.getCurrentState() == GSYVideoView.CURRENT_STATE_PAUSE) {/*播放中*/
- resume();
- } else {
- pause();
- }
- }
- });
-
- }
-
- /**
- * 暂停
- */
- private void pause() {
- playImageView.setVisibility(View.VISIBLE);
- thumbnailImage.setVisibility(View.GONE);
- playImageView.setOnClickListener(v -> {
- mVideoPlayer.onVideoResume();
- });
- thumbnailImage.setOnClickListener(v -> {
- mVideoPlayer.onVideoResume();
- });
- }
-
- /**
- * 继续
- */
- private void resume() {
- playImageView.setImageResource(R.drawable.notice_video_pause);
- playImageView.setVisibility(View.GONE);
- thumbnailImage.setVisibility(View.GONE);
- }
-
- /**
- * 播放结束后
- */
- private void complete(Bitmap firstbitmap) {
- thumbnailImage.setVisibility(View.VISIBLE);
- thumbnailImage.setImageBitmap(firstbitmap);
- playImageView.setImageResource(R.drawable.notice_video_play);
- playImageView.setVisibility(View.VISIBLE);
- playImageView.setOnClickListener(v -> {
- startLive();
- });
- thumbnailImage.setOnClickListener(v -> {
- startLive();
- });
- }
-
- /**
- * 视频播放
- */
- private void startLive() {
- if (mPushData != null) {
- try {
- Log.d(TAG, "交警事故开始播放视频startLive");
- String videoUrl = mPushData.getPoiImgUrl();
- gsyVideoOptionBuilder.setUrl(videoUrl).setCacheWithPlay(false).setPlayTag("NoticeTrafficDialog")
- .build(mVideoPlayer);
- mVideoPlayer.getStartButton().performClick();
- thumbnailImage.setVisibility(View.GONE);
- playImageView.setVisibility(View.GONE);
- liveCallBack();
- } catch (Exception e) {
- e.printStackTrace();
- }
+ connect.setVisibility(View.VISIBLE);
}
}
-
- private void liveCallBack() {
- new Thread(new Runnable() {
- @Override
- public void run() {
- Bitmap firstBitmap = BitmapHelper.getVideoThumbnail(mPushData.getPoiImgUrl());/*获取第一帧图*/
- mVideoPlayer.setVideoAllCallBack(new VideoAllCallBack() {
- @Override
- public void onAutoComplete(String url, Object... objects) {
- complete(firstBitmap);
- }
-
- @Override
- public void onClickResume(String url, Object... objects) {
- thumbnailImage.setVisibility(View.GONE);
- playImageView.setVisibility(View.GONE);
- }
-
- @Override
- public void onClickStop(String url, Object... objects) {
- Log.d(TAG, "onClickStop");
- }
-
- @Override
- public void onStartPrepared(String url, Object... objects) {
- Log.d(TAG, "onStartPrepared");
- }
-
- @Override
- public void onPrepared(String url, Object... objects) {
- }
-
- @Override
- public void onClickStartIcon(String url, Object... objects) {
- }
-
- @Override
- public void onClickStartError(String url, Object... objects) {
- }
-
- @Override
- public void onClickStopFullscreen(String url, Object... objects) {
- }
-
- @Override
- public void onClickResumeFullscreen(String url, Object... objects) {
- }
-
- @Override
- public void onClickSeekbar(String url, Object... objects) {
- }
-
- @Override
- public void onClickSeekbarFullscreen(String url, Object... objects) {
- }
-
- @Override
- public void onEnterFullscreen(String url, Object... objects) {
- }
-
- @Override
- public void onQuitFullscreen(String url, Object... objects) {
- }
-
- @Override
- public void onQuitSmallWidget(String url, Object... objects) {
- }
-
- @Override
- public void onEnterSmallWidget(String url, Object... objects) {
- }
-
- @Override
- public void onTouchScreenSeekVolume(String url, Object... objects) {
- }
-
- @Override
- public void onTouchScreenSeekPosition(String url, Object... objects) {
- }
-
- @Override
- public void onTouchScreenSeekLight(String url, Object... objects) {
- }
-
- @Override
- public void onPlayError(String url, Object... objects) {
-
- }
-
- @Override
- public void onClickStartThumb(String url, Object... objects) {
- }
-
- @Override
- public void onClickBlank(String url, Object... objects) {
- }
-
- @Override
- public void onClickBlankFullscreen(String url, Object... objects) {
- Log.d(TAG, "onClickBlankFullscreen");
-
- }
- });
- }
- }).start();
- }
-
public void cancel() {
}
diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/layout/notice_dialog_traffic_police.xml b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/notice_dialog_traffic_police.xml
index 04a23a6c9d..338b51b386 100644
--- a/core/function-impl/mogo-core-function-hmi/src/main/res/layout/notice_dialog_traffic_police.xml
+++ b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/notice_dialog_traffic_police.xml
@@ -31,7 +31,7 @@
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent" />
-
52px
35px
- 26
+ 26px
15px
600px