From 9a8da1fa7cd61bcee25447743ccd6d7df3d2c335 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=91=A3=E5=AE=8F=E5=AE=87?= Date: Mon, 19 Oct 2020 15:44:08 +0800 Subject: [PATCH 01/23] =?UTF-8?q?=E4=BF=AE=E5=A4=8DUI=20bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/res/layout/item_v2x_fatigue_driving.xml | 2 +- .../src/main/res/layout/item_v2x_fault_help.xml | 10 +++++----- .../src/main/res/layout/window_fault_help.xml | 5 ++--- 3 files changed, 8 insertions(+), 9 deletions(-) diff --git a/modules/mogo-module-v2x/src/main/res/layout/item_v2x_fatigue_driving.xml b/modules/mogo-module-v2x/src/main/res/layout/item_v2x_fatigue_driving.xml index 1610387581..d20d34fb7d 100644 --- a/modules/mogo-module-v2x/src/main/res/layout/item_v2x_fatigue_driving.xml +++ b/modules/mogo-module-v2x/src/main/res/layout/item_v2x_fatigue_driving.xml @@ -4,7 +4,7 @@ xmlns:tools="http://schemas.android.com/tools" android:id="@+id/rlContent" android:layout_width="match_parent" - android:layout_height="wrap_content" + android:layout_height="match_parent" android:background="@drawable/v2x_alert_window_bg" android:paddingStart="@dimen/dp_62" android:paddingTop="@dimen/dp_42" diff --git a/modules/mogo-module-v2x/src/main/res/layout/item_v2x_fault_help.xml b/modules/mogo-module-v2x/src/main/res/layout/item_v2x_fault_help.xml index 1090691eea..cad8477a05 100644 --- a/modules/mogo-module-v2x/src/main/res/layout/item_v2x_fault_help.xml +++ b/modules/mogo-module-v2x/src/main/res/layout/item_v2x_fault_help.xml @@ -3,17 +3,18 @@ xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" - android:layout_height="wrap_content" + android:layout_height="match_parent" android:background="@drawable/v2x_alert_window_bg" - android:padding="@dimen/dp_25"> + android:paddingStart="@dimen/dp_62" + android:paddingTop="@dimen/dp_42" + android:paddingEnd="@dimen/dp_62" + android:paddingBottom="@dimen/dp_42"> From a0a35c1dda4a2d4ad5c2a2289ff5e0c76d880230 Mon Sep 17 00:00:00 2001 From: liujing Date: Thu, 24 Sep 2020 16:17:29 +0800 Subject: [PATCH 02/23] no message --- .../scene/road/V2XRoadVideoWindow.java | 24 +++++++++++++++++++ .../src/main/res/layout/window_road_video.xml | 13 ++++++++++ 2 files changed, 37 insertions(+) create mode 100644 modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/scenario/scene/road/V2XRoadVideoWindow.java create mode 100644 modules/mogo-module-v2x/src/main/res/layout/window_road_video.xml diff --git a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/scenario/scene/road/V2XRoadVideoWindow.java b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/scenario/scene/road/V2XRoadVideoWindow.java new file mode 100644 index 0000000000..4f4428c25a --- /dev/null +++ b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/scenario/scene/road/V2XRoadVideoWindow.java @@ -0,0 +1,24 @@ +package com.mogo.module.v2x.scenario.scene.road; + +import android.content.Context; +import android.util.Log; +import android.view.LayoutInflater; +import android.widget.RelativeLayout; + +import com.mogo.module.v2x.R; + +public class V2XRoadVideoWindow extends RelativeLayout { + private static final String TAG = "V2XRoadVideoWindow"; + + public V2XRoadVideoWindow(Context context) { + super(context); + initView(context); + } + + private void initView(Context context) { + Log.d(TAG, "初始化视频播放器"); + // 填充布局 + LayoutInflater.from(context).inflate(R.layout.window_road_video, this); + } + +} diff --git a/modules/mogo-module-v2x/src/main/res/layout/window_road_video.xml b/modules/mogo-module-v2x/src/main/res/layout/window_road_video.xml new file mode 100644 index 0000000000..079b9cde8c --- /dev/null +++ b/modules/mogo-module-v2x/src/main/res/layout/window_road_video.xml @@ -0,0 +1,13 @@ + + + + + + + + + \ No newline at end of file From 912acb3f30bfae5813abf385b3dff2fbe857b7c4 Mon Sep 17 00:00:00 2001 From: liujing Date: Sun, 27 Sep 2020 15:15:13 +0800 Subject: [PATCH 03/23] =?UTF-8?q?=E6=8E=A2=E8=B7=AF=E7=82=B9=E5=87=BB?= =?UTF-8?q?=E9=81=93=E8=B7=AF=E4=BA=8B=E4=BB=B6=E5=BC=B9=E6=A1=86->V2X?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../tanlu/fragment/TanluListWindow.java | 67 +++++++------------ .../res/layout/window_push_event_detail.xml | 1 + 2 files changed, 25 insertions(+), 43 deletions(-) diff --git a/modules/mogo-module-tanlu/src/main/java/com/mogo/module/tanlu/fragment/TanluListWindow.java b/modules/mogo-module-tanlu/src/main/java/com/mogo/module/tanlu/fragment/TanluListWindow.java index ae0c326c62..a297d23717 100644 --- a/modules/mogo-module-tanlu/src/main/java/com/mogo/module/tanlu/fragment/TanluListWindow.java +++ b/modules/mogo-module-tanlu/src/main/java/com/mogo/module/tanlu/fragment/TanluListWindow.java @@ -373,15 +373,24 @@ public class TanluListWindow extends RelativeLayout implements IMogoMarkerClickL mMogoRegisterCenter.registerMogoMarkerClickListener(TanluConstants.MODEL_NAME, new IMogoMarkerClickListener() { @Override public boolean onMarkerClicked(IMogoMarker marker) { - GSYVideoManager.releaseAllVideos(); - initVideo(); - releaseTimer(); - //埋点 - Map properties = new HashMap<>(); - properties.put("type", "2"); - mAnalytics.track(TanluConstants.LAUNCHER_ICON_CLICK, properties); + //点击的marker的具体数据 MarkerExploreWay exploreWay = extractFromMarker(marker); + V2XRoadEventEntity roadEventEntity = new V2XRoadEventEntity(); + roadEventEntity.setNoveltyInfo(exploreWay); + roadEventEntity.setPoiType(exploreWay.getPoiType()); + roadEventEntity.setExpireTime(20000); + //地理位置 + MarkerLocation location = exploreWay.getLocation(); + roadEventEntity.setLocation(location); + + V2XMessageEntity v2XMessageEntity = new V2XMessageEntity(); + v2XMessageEntity.setType(V2XMessageEntity.V2XTypeEnum.ALERT_ROAD_WARNING); + v2XMessageEntity.setShowState(true); + v2XMessageEntity.setOnlyShow(true); + v2XMessageEntity.setNeedAddLine(false); + + v2XMessageEntity.setContent(roadEventEntity); //更新数据 if (markerExploreWayList != null) { markerExploreWayList.clear(); @@ -390,48 +399,20 @@ public class TanluListWindow extends RelativeLayout implements IMogoMarkerClickL } markerExploreWayList.add(exploreWay); - boolean isAdd = TanluServiceManager.getIMogoTopViewManager().isViewAdded(TanluListWindow.this); - hideWindowTimerStart(); - Logger.d(TAG, "onMarkerClicked ------ isAdd = " + isAdd); + Intent intent = new Intent(Const.BROADCAST_SCENE_HANDLER_ACTION); + intent.putExtra(Const.BROADCAST_SCENE_EXTRA_KEY, v2XMessageEntity); + LocalBroadcastManager.getInstance(getContext()).sendBroadcast(intent); - //添加window窗口,重复创建 - if (!isAdd) { - ViewGroup.LayoutParams layoutParams = - new ViewGroup.LayoutParams( - ViewGroup.LayoutParams.MATCH_PARENT, - (int) getContext().getResources().getDimension((R.dimen.tanlu_module_card_height))); - TanluServiceManager.getIMogoTopViewManager().addView(TanluListWindow.this, layoutParams, new IMogoTopViewStatusListener() { - @Override - public void onViewAdded(View view) { - Logger.d(TAG, "onViewAdded -------->"); - } - - @Override - public void onViewRemoved(View view) { - Logger.e(TAG, "onViewRemoved -------->"); - releaseTimer(); - releaseAction(); - } - - @Override - public void beforeViewAddAnim(View view) { - - } - - @Override - public void beforeViewRemoveAnim(View view) { - - } - }); - - } - - renderCardViews(); + //埋点 + Map properties = new HashMap<>(); + properties.put("type", "2"); + mAnalytics.track(TanluConstants.LAUNCHER_ICON_CLICK, properties); return false; } }); } + private CountDownTimer mHideWindowTimer; private void hideWindowTimerStart() { diff --git a/modules/mogo-module-v2x/src/main/res/layout/window_push_event_detail.xml b/modules/mogo-module-v2x/src/main/res/layout/window_push_event_detail.xml index 20b5ac78b9..b8244cb9c5 100644 --- a/modules/mogo-module-v2x/src/main/res/layout/window_push_event_detail.xml +++ b/modules/mogo-module-v2x/src/main/res/layout/window_push_event_detail.xml @@ -7,5 +7,6 @@ android:layout_height="@dimen/module_v2x_event_window_height_ground" android:orientation="horizontal" android:overScrollMode="never" + android:padding="@dimen/module_v2x_widow_top_gaps" app:layoutManager="androidx.recyclerview.widget.LinearLayoutManager" tools:listitem="@layout/item_v2x_push_event_detail" /> From 910933ed677403e6ad0a06aceeed47308501f78a Mon Sep 17 00:00:00 2001 From: liujing Date: Sun, 27 Sep 2020 20:18:13 +0800 Subject: [PATCH 04/23] =?UTF-8?q?[add]=20=E6=B7=BB=E5=8A=A0=E9=81=93?= =?UTF-8?q?=E8=B7=AF=E8=A7=86=E9=A2=91=E5=85=A8=E5=B1=8FUI?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../v2x/adapter/holder/V2XRoadEventVH.java | 18 ++- .../v2x/manager/IMoGoV2XStatusManager.java | 5 + .../v2x/manager/V2XStatusDescriptor.java | 5 + .../manager/impl/MoGoV2XStatusManager.java | 7 + .../scene/road/V2XRoadVideoCarScenario.java | 126 ++++++++++++++++++ .../scene/road/V2XRoadVideoWindow.java | 25 +++- .../src/main/res/layout/window_road_video.xml | 3 +- 7 files changed, 186 insertions(+), 3 deletions(-) create mode 100644 modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/scenario/scene/road/V2XRoadVideoCarScenario.java diff --git a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/adapter/holder/V2XRoadEventVH.java b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/adapter/holder/V2XRoadEventVH.java index 75b246063c..3b9156143c 100644 --- a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/adapter/holder/V2XRoadEventVH.java +++ b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/adapter/holder/V2XRoadEventVH.java @@ -23,6 +23,8 @@ import com.mogo.module.v2x.network.V2XRefreshCallback; import com.mogo.module.v2x.scenario.scene.livecar.V2XRoadLiveCarScenario; import com.mogo.module.v2x.scenario.scene.road.V2XRoadEventScenario; import com.mogo.module.v2x.scenario.scene.road.V2XRoadEventWindow; +import com.mogo.module.v2x.scenario.scene.road.V2XRoadVideoCarScenario; +import com.mogo.module.v2x.scenario.scene.road.V2XRoadVideoWindow; import com.mogo.module.v2x.utils.ChartingUtil; import com.mogo.module.v2x.utils.EventTypeUtils; import com.mogo.module.v2x.utils.SpanUtils; @@ -163,7 +165,7 @@ public class V2XRoadEventVH extends V2XBaseViewHolder { @Override public void onViewDetachedFromWindow(View v) { - Log.d(TAG,"onViewDetachedFromWindow unRegister"); + Log.d(TAG, "onViewDetachedFromWindow unRegister"); // 反注册语音交互 V2XVoiceManager.INSTANCE .unRegisterWakeCmd(V2XVoiceConstants.COMMAND_ZHIDAO_V2X_CALL_CHATTING) @@ -200,6 +202,9 @@ public class V2XRoadEventVH extends V2XBaseViewHolder { if (!TextUtils.isEmpty(imgUrl)) { V2XServiceManager.getImageLoader() .displayImage(imgUrl, ivEventImg); + ivEventImg.setOnClickListener(v -> { + showRoadVideoInfo(v2XEventShowEntity); + }); } } if (mNoveltyInfo.getUserInfo() != null && @@ -270,6 +275,17 @@ public class V2XRoadEventVH extends V2XBaseViewHolder { } } + /* + * 展示事件的图片/视频资源 + * */ + private void showRoadVideoInfo(V2XEventShowEntity v2XEventShowEntity){ + if (v2XEventShowEntity != null){ + Log.d(TAG,"马上展示图片/视频资源"); + V2XMessageEntity> v2XMessageEntity = new V2XMessageEntity<>(); + V2XRoadVideoCarScenario.getInstance().init(v2XMessageEntity); + V2XRoadVideoWindow window = (V2XRoadVideoWindow) V2XRoadVideoCarScenario.getInstance().getV2XWindow(); + } + } /** * 展示直播信息 * diff --git a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/manager/IMoGoV2XStatusManager.java b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/manager/IMoGoV2XStatusManager.java index 015fb0eea2..9da2ab1f68 100644 --- a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/manager/IMoGoV2XStatusManager.java +++ b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/manager/IMoGoV2XStatusManager.java @@ -141,6 +141,11 @@ public interface IMoGoV2XStatusManager extends IProvider { */ void setV2XAnimationWindowShow(String tag, boolean show); + /* + * 道路事件图片/视频资源 全屏 + * */ + void setV2XRoadVideoInfoWindowShow(String tag, boolean show); + /** * 设置 模拟直播车机 UI 是否在展示 * diff --git a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/manager/V2XStatusDescriptor.java b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/manager/V2XStatusDescriptor.java index 8cf3c46ab3..f6d50046db 100644 --- a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/manager/V2XStatusDescriptor.java +++ b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/manager/V2XStatusDescriptor.java @@ -53,6 +53,11 @@ public enum V2XStatusDescriptor { */ LiveCarWindow_UI, + /** + * 右侧2/3 左下角 模拟直播车机 UI 是否在展示 + */ + V2XRoadVideo_UI, + /** * 推送的POI */ diff --git a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/manager/impl/MoGoV2XStatusManager.java b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/manager/impl/MoGoV2XStatusManager.java index 44b0282c80..286a4afc5c 100644 --- a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/manager/impl/MoGoV2XStatusManager.java +++ b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/manager/impl/MoGoV2XStatusManager.java @@ -170,6 +170,13 @@ public class MoGoV2XStatusManager implements IMoGoV2XStatusManager { recordStatusModifier(tag, V2XStatusDescriptor.V2XAnimationWindow_UI); } + @Override + public void setV2XRoadVideoInfoWindowShow(String tag, boolean show) { + mStatus.put(V2XStatusDescriptor.V2XAnimationWindow_UI, show); + invokeStatusChangedListener(V2XStatusDescriptor.V2XRoadVideo_UI, show); + recordStatusModifier(tag, V2XStatusDescriptor.V2XRoadVideo_UI); + } + @Override public void setLiveCarWindowShow(String tag, boolean show) { mStatus.put(V2XStatusDescriptor.LiveCarWindow_UI, show); diff --git a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/scenario/scene/road/V2XRoadVideoCarScenario.java b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/scenario/scene/road/V2XRoadVideoCarScenario.java new file mode 100644 index 0000000000..45bc63106a --- /dev/null +++ b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/scenario/scene/road/V2XRoadVideoCarScenario.java @@ -0,0 +1,126 @@ +package com.mogo.module.v2x.scenario.scene.road; + +import android.util.Log; +import android.view.View; +import android.view.ViewGroup; + +import androidx.annotation.Nullable; + +import com.mogo.map.IDestroyable; +import com.mogo.module.common.entity.V2XMessageEntity; +import com.mogo.module.v2x.V2XServiceManager; +import com.mogo.module.v2x.R; +import com.mogo.module.v2x.scenario.impl.AbsV2XScenario; +import com.mogo.module.v2x.scenario.scene.livecar.V2XRoadLiveCarWindow; +import com.mogo.module.v2x.scenario.view.IV2XWindow; +import com.mogo.module.v2x.utils.V2XUtils; +import com.mogo.service.windowview.IMogoTopViewStatusListener; + +import javax.security.auth.DestroyFailedException; +import javax.security.auth.Destroyable; + +public class V2XRoadVideoCarScenario extends AbsV2XScenario implements IMogoTopViewStatusListener, Destroyable { + + private static V2XRoadVideoCarScenario sV2XRoadVideoCarScenario; + + @Override + public void init(@Nullable V2XMessageEntity v2XMessageEntity) { + Log.d(TAG, "init"); + setV2XMessageEntity(v2XMessageEntity); + show(); + } + + public static V2XRoadVideoCarScenario getInstance() { + if (sV2XRoadVideoCarScenario == null) { + synchronized (V2XRoadVideoCarScenario.class) { + sV2XRoadVideoCarScenario = new V2XRoadVideoCarScenario(); + } + } + return new V2XRoadVideoCarScenario(); + } + + + @Override + public void show() { + if (getV2XMessageEntity() != null && getV2XMessageEntity().getContent() != null) { + } + showWindow(); + } + + @Override + public void showWindow() { + Log.d(TAG, "showWindow"); + if (getV2XWindow() != null) { + ViewGroup.LayoutParams layoutParams = + new ViewGroup.LayoutParams( + ViewGroup.LayoutParams.MATCH_PARENT, + (int) V2XUtils.getApp().getResources().getDimension(R.dimen.module_v2x_event_window_height_ground)); + V2XServiceManager + .getMogoTopViewManager() + .addSubView(getV2XWindow().getView(), this); + sV2XRoadVideoCarScenario.setV2XWindow(new V2XRoadVideoWindow(V2XServiceManager.getContext())); + getV2XWindow().show(getV2XMessageEntity().getContent()); + V2XServiceManager.getMoGoV2XStatusManager(). + setV2XRoadVideoInfoWindowShow( + "https://haokan.baidu.com/v?vid=11239381022041270821&pd=bjh&fr=bjhauthor&type=video", + true); + } + } + + @Override + public void closeWindow() { + + } + + @Override + public void showButton() { + + } + + @Override + public void closeButton() { + + } + + @Override + public void drawPOI() { + + } + + @Override + public void clearPOI() { + Log.d(TAG, "clearPOI"); + } + + + @Override + public void destroy() throws DestroyFailedException { + Log.d(TAG, "destroy"); + } + + @Override + public boolean isDestroyed() { + Log.d(TAG, "isDestroyed"); + return false; + } + + @Override + public void onViewAdded(View view) { + Log.d(TAG, "onViewAdded"); + } + + @Override + public void onViewRemoved(View view) { + Log.d(TAG, "onViewRemoved"); + } + + @Override + public void beforeViewAddAnim(View view) { + Log.d(TAG, "beforeViewAddAnim"); + } + + @Override + public void beforeViewRemoveAnim(View view) { + Log.d(TAG, "beforeViewRemoveAnim"); + } +} diff --git a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/scenario/scene/road/V2XRoadVideoWindow.java b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/scenario/scene/road/V2XRoadVideoWindow.java index 4f4428c25a..97da42077c 100644 --- a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/scenario/scene/road/V2XRoadVideoWindow.java +++ b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/scenario/scene/road/V2XRoadVideoWindow.java @@ -3,11 +3,15 @@ package com.mogo.module.v2x.scenario.scene.road; import android.content.Context; import android.util.Log; import android.view.LayoutInflater; +import android.view.View; import android.widget.RelativeLayout; import com.mogo.module.v2x.R; +import com.mogo.module.v2x.listener.V2XWindowStatusListener; +import com.mogo.module.v2x.scenario.view.IV2XWindow; + +public class V2XRoadVideoWindow extends RelativeLayout implements IV2XWindow { -public class V2XRoadVideoWindow extends RelativeLayout { private static final String TAG = "V2XRoadVideoWindow"; public V2XRoadVideoWindow(Context context) { @@ -21,4 +25,23 @@ public class V2XRoadVideoWindow extends RelativeLayout { LayoutInflater.from(context).inflate(R.layout.window_road_video, this); } + @Override + public void show(Object entity) { + + } + + @Override + public void close() { + + } + + @Override + public View getView() { + return null; + } + + @Override + public void setWindowStatusListener(V2XWindowStatusListener listener) { + + } } diff --git a/modules/mogo-module-v2x/src/main/res/layout/window_road_video.xml b/modules/mogo-module-v2x/src/main/res/layout/window_road_video.xml index 079b9cde8c..b459023d53 100644 --- a/modules/mogo-module-v2x/src/main/res/layout/window_road_video.xml +++ b/modules/mogo-module-v2x/src/main/res/layout/window_road_video.xml @@ -5,7 +5,8 @@ + android:layout_height="match_parent" + android:background="@color/design_default_color_error"> From 7a0e585b48d95bf51cf60b76ff23add13e08fd88 Mon Sep 17 00:00:00 2001 From: liujing Date: Thu, 24 Sep 2020 16:17:29 +0800 Subject: [PATCH 05/23] no message --- .../mogo/module/v2x/scenario/scene/road/V2XRoadVideoWindow.java | 1 + .../mogo-module-v2x/src/main/res/layout/window_road_video.xml | 1 - 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/scenario/scene/road/V2XRoadVideoWindow.java b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/scenario/scene/road/V2XRoadVideoWindow.java index 97da42077c..f214c22a1e 100644 --- a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/scenario/scene/road/V2XRoadVideoWindow.java +++ b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/scenario/scene/road/V2XRoadVideoWindow.java @@ -12,6 +12,7 @@ import com.mogo.module.v2x.scenario.view.IV2XWindow; public class V2XRoadVideoWindow extends RelativeLayout implements IV2XWindow { + private static final String TAG = "V2XRoadVideoWindow"; public V2XRoadVideoWindow(Context context) { diff --git a/modules/mogo-module-v2x/src/main/res/layout/window_road_video.xml b/modules/mogo-module-v2x/src/main/res/layout/window_road_video.xml index b459023d53..44752d3b5a 100644 --- a/modules/mogo-module-v2x/src/main/res/layout/window_road_video.xml +++ b/modules/mogo-module-v2x/src/main/res/layout/window_road_video.xml @@ -8,7 +8,6 @@ android:layout_height="match_parent" android:background="@color/design_default_color_error"> - \ No newline at end of file From a6135bd280453e6966a4437ac272ddcb50708646 Mon Sep 17 00:00:00 2001 From: liujing Date: Sun, 27 Sep 2020 11:32:06 +0800 Subject: [PATCH 06/23] =?UTF-8?q?=E6=8E=A2=E8=B7=AF=E7=82=B9=E5=87=BB?= =?UTF-8?q?=E9=81=93=E8=B7=AF=E4=BA=8B=E4=BB=B6=E5=BC=B9=E6=A1=86->V2X?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- modules/mogo-module-v2x/src/main/res/values-xhdpi/dimens.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/modules/mogo-module-v2x/src/main/res/values-xhdpi/dimens.xml b/modules/mogo-module-v2x/src/main/res/values-xhdpi/dimens.xml index 714c300b34..e68401f90f 100644 --- a/modules/mogo-module-v2x/src/main/res/values-xhdpi/dimens.xml +++ b/modules/mogo-module-v2x/src/main/res/values-xhdpi/dimens.xml @@ -97,4 +97,5 @@ 34px + From c82be1c913e047fde088463c12a662fee8bd1497 Mon Sep 17 00:00:00 2001 From: liujing Date: Sun, 27 Sep 2020 20:18:13 +0800 Subject: [PATCH 07/23] =?UTF-8?q?[add]=20=E6=B7=BB=E5=8A=A0=E9=81=93?= =?UTF-8?q?=E8=B7=AF=E8=A7=86=E9=A2=91=E5=85=A8=E5=B1=8FUI?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mogo/module/v2x/scenario/scene/road/V2XRoadVideoWindow.java | 1 - 1 file changed, 1 deletion(-) diff --git a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/scenario/scene/road/V2XRoadVideoWindow.java b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/scenario/scene/road/V2XRoadVideoWindow.java index f214c22a1e..97da42077c 100644 --- a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/scenario/scene/road/V2XRoadVideoWindow.java +++ b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/scenario/scene/road/V2XRoadVideoWindow.java @@ -12,7 +12,6 @@ import com.mogo.module.v2x.scenario.view.IV2XWindow; public class V2XRoadVideoWindow extends RelativeLayout implements IV2XWindow { - private static final String TAG = "V2XRoadVideoWindow"; public V2XRoadVideoWindow(Context context) { From a9289238543ceb718553cf4162efaae346999b12 Mon Sep 17 00:00:00 2001 From: liujing Date: Mon, 28 Sep 2020 10:49:04 +0800 Subject: [PATCH 08/23] no message --- .../scene/livecar/V2XRoadLiveCarScenario.java | 2 ++ .../v2x/scenario/scene/road/V2XRoadVideoWindow.java | 11 +++++++++++ 2 files changed, 13 insertions(+) diff --git a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/scenario/scene/livecar/V2XRoadLiveCarScenario.java b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/scenario/scene/livecar/V2XRoadLiveCarScenario.java index aa70d637ee..ffbdb1e14b 100644 --- a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/scenario/scene/livecar/V2XRoadLiveCarScenario.java +++ b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/scenario/scene/livecar/V2XRoadLiveCarScenario.java @@ -1,5 +1,6 @@ package com.mogo.module.v2x.scenario.scene.livecar; +import android.util.Log; import android.view.View; import com.mogo.module.common.entity.V2XEventShowEntity; @@ -74,6 +75,7 @@ public class V2XRoadLiveCarScenario extends AbsV2XScenario Date: Mon, 28 Sep 2020 14:08:07 +0800 Subject: [PATCH 09/23] no message --- .../scene/road/V2XRoadVideoCarScenario.java | 22 ++++++++++++--- .../scene/road/V2XRoadVideoWindow.java | 28 +++++++++++++------ 2 files changed, 37 insertions(+), 13 deletions(-) diff --git a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/scenario/scene/road/V2XRoadVideoCarScenario.java b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/scenario/scene/road/V2XRoadVideoCarScenario.java index 45bc63106a..0bf15e15b1 100644 --- a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/scenario/scene/road/V2XRoadVideoCarScenario.java +++ b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/scenario/scene/road/V2XRoadVideoCarScenario.java @@ -7,7 +7,9 @@ import android.view.ViewGroup; import androidx.annotation.Nullable; import com.mogo.map.IDestroyable; +import com.mogo.module.common.entity.V2XEventShowEntity; import com.mogo.module.common.entity.V2XMessageEntity; +import com.mogo.module.v2x.V2XConst; import com.mogo.module.v2x.V2XServiceManager; import com.mogo.module.v2x.R; import com.mogo.module.v2x.scenario.impl.AbsV2XScenario; @@ -15,6 +17,9 @@ import com.mogo.module.v2x.scenario.scene.livecar.V2XRoadLiveCarWindow; import com.mogo.module.v2x.scenario.view.IV2XWindow; import com.mogo.module.v2x.utils.V2XUtils; import com.mogo.service.windowview.IMogoTopViewStatusListener; +import com.mogo.utils.logger.Logger; + +import java.util.List; import javax.security.auth.DestroyFailedException; import javax.security.auth.Destroyable; @@ -26,8 +31,13 @@ public class V2XRoadVideoCarScenario extends AbsV2XScenario implements IMogoTopV @Override public void init(@Nullable V2XMessageEntity v2XMessageEntity) { Log.d(TAG, "init"); - setV2XMessageEntity(v2XMessageEntity); - show(); + try { + sV2XRoadVideoCarScenario.setV2XWindow(new V2XRoadVideoWindow()); + setV2XMessageEntity(v2XMessageEntity); + show(); + } catch (Exception e) { + e.printStackTrace(); + } } public static V2XRoadVideoCarScenario getInstance() { @@ -42,9 +52,10 @@ public class V2XRoadVideoCarScenario extends AbsV2XScenario implements IMogoTopV @Override public void show() { - if (getV2XMessageEntity() != null && getV2XMessageEntity().getContent() != null) { + Log.d(TAG,getV2XMessageEntity().toString()+"content-----"+getV2XMessageEntity().getContent()); + if (getV2XMessageEntity() != null) { + showWindow(); } - showWindow(); } @Override @@ -106,6 +117,7 @@ public class V2XRoadVideoCarScenario extends AbsV2XScenario implements IMogoTopV @Override public void onViewAdded(View view) { + Log.d(TAG, "onViewAdded"); } @@ -116,11 +128,13 @@ public class V2XRoadVideoCarScenario extends AbsV2XScenario implements IMogoTopV @Override public void beforeViewAddAnim(View view) { + Log.d(TAG, "beforeViewAddAnim"); } @Override public void beforeViewRemoveAnim(View view) { + Log.d(TAG, "beforeViewRemoveAnim"); } } diff --git a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/scenario/scene/road/V2XRoadVideoWindow.java b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/scenario/scene/road/V2XRoadVideoWindow.java index 04280e56d1..dbe97d1830 100644 --- a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/scenario/scene/road/V2XRoadVideoWindow.java +++ b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/scenario/scene/road/V2XRoadVideoWindow.java @@ -7,33 +7,43 @@ import android.view.LayoutInflater; import android.view.View; import android.widget.RelativeLayout; +import androidx.recyclerview.widget.LinearLayoutManager; +import androidx.recyclerview.widget.RecyclerView; + +import com.mogo.module.common.entity.V2XEventShowEntity; import com.mogo.module.v2x.R; import com.mogo.module.v2x.V2XServiceManager; +import com.mogo.module.v2x.adapter.V2XRoadEventAdapter; import com.mogo.module.v2x.listener.V2XWindowStatusListener; import com.mogo.module.v2x.scenario.view.IV2XWindow; +import java.util.List; + public class V2XRoadVideoWindow extends RelativeLayout implements IV2XWindow { private static final String TAG = "V2XRoadVideoWindow"; + private RecyclerView mRecyclerView; + private V2XRoadEventAdapter mV2XRoadEventAdapter; + private List mItemList; + + public V2XRoadVideoWindow() { + this(V2XServiceManager.getContext()); + } public V2XRoadVideoWindow(Context context) { super(context); initView(context); } - public V2XRoadVideoWindow(Context context, AttributeSet attrs) { - super(context, attrs); - } - - public V2XRoadVideoWindow(Context context, AttributeSet attrs, int defStyleAttr) { - super(context, attrs, defStyleAttr); - } - - private void initView(Context context) { Log.d(TAG, "初始化视频播放器"); + mRecyclerView = findViewById(R.id.rvRoadEventList); + mV2XRoadEventAdapter = new V2XRoadEventAdapter(mItemList); + mRecyclerView.setAdapter(mV2XRoadEventAdapter); // 填充布局 LayoutInflater.from(context).inflate(R.layout.window_road_video, this); + LinearLayoutManager layoutManager = new LinearLayoutManager(context, LinearLayoutManager.HORIZONTAL, false); + mRecyclerView.setLayoutManager(layoutManager); } @Override From 2259342a8954e9f1597d1f13886f03a3d108aefa Mon Sep 17 00:00:00 2001 From: liujing Date: Mon, 28 Sep 2020 15:32:23 +0800 Subject: [PATCH 10/23] =?UTF-8?q?[add]=20=E8=A7=86=E9=A2=91=E6=92=AD?= =?UTF-8?q?=E6=94=BE=E5=99=A8adapter?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../v2x/adapter/V2XRoadVideoAdapter.java | 34 +++++++++++++++++++ .../scene/road/V2XRoadVideoCarScenario.java | 6 ++-- .../scene/road/V2XRoadVideoWindow.java | 28 ++++++++++++--- 3 files changed, 62 insertions(+), 6 deletions(-) create mode 100644 modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/adapter/V2XRoadVideoAdapter.java diff --git a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/adapter/V2XRoadVideoAdapter.java b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/adapter/V2XRoadVideoAdapter.java new file mode 100644 index 0000000000..71648a7e63 --- /dev/null +++ b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/adapter/V2XRoadVideoAdapter.java @@ -0,0 +1,34 @@ +package com.mogo.module.v2x.adapter; + +import android.view.ViewGroup; + +import androidx.annotation.NonNull; +import androidx.recyclerview.widget.RecyclerView; + +import com.mogo.module.common.entity.V2XEventShowEntity; +import com.mogo.module.common.entity.V2XMessageEntity; + +public class V2XRoadVideoAdapter extends RecyclerView.Adapter { + + private V2XEventShowEntity mV2XEventShowEntity; + + public V2XRoadVideoAdapter(){ + + } + + @NonNull + @Override + public RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { + return null; + } + + @Override + public void onBindViewHolder(@NonNull RecyclerView.ViewHolder holder, int position) { + + } + + @Override + public int getItemCount() { + return 0; + } +} diff --git a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/scenario/scene/road/V2XRoadVideoCarScenario.java b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/scenario/scene/road/V2XRoadVideoCarScenario.java index 0bf15e15b1..db1a19a891 100644 --- a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/scenario/scene/road/V2XRoadVideoCarScenario.java +++ b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/scenario/scene/road/V2XRoadVideoCarScenario.java @@ -7,11 +7,13 @@ import android.view.ViewGroup; import androidx.annotation.Nullable; import com.mogo.map.IDestroyable; +import com.mogo.module.common.entity.MarkerExploreWay; import com.mogo.module.common.entity.V2XEventShowEntity; import com.mogo.module.common.entity.V2XMessageEntity; import com.mogo.module.v2x.V2XConst; import com.mogo.module.v2x.V2XServiceManager; import com.mogo.module.v2x.R; +import com.mogo.module.v2x.adapter.V2XRoadVideoAdapter; import com.mogo.module.v2x.scenario.impl.AbsV2XScenario; import com.mogo.module.v2x.scenario.scene.livecar.V2XRoadLiveCarWindow; import com.mogo.module.v2x.scenario.view.IV2XWindow; @@ -52,7 +54,6 @@ public class V2XRoadVideoCarScenario extends AbsV2XScenario implements IMogoTopV @Override public void show() { - Log.d(TAG,getV2XMessageEntity().toString()+"content-----"+getV2XMessageEntity().getContent()); if (getV2XMessageEntity() != null) { showWindow(); } @@ -61,6 +62,7 @@ public class V2XRoadVideoCarScenario extends AbsV2XScenario implements IMogoTopV @Override public void showWindow() { Log.d(TAG, "showWindow"); + MarkerExploreWay markerExploreWay = null; if (getV2XWindow() != null) { ViewGroup.LayoutParams layoutParams = new ViewGroup.LayoutParams( @@ -70,7 +72,7 @@ public class V2XRoadVideoCarScenario extends AbsV2XScenario implements IMogoTopV .getMogoTopViewManager() .addSubView(getV2XWindow().getView(), this); sV2XRoadVideoCarScenario.setV2XWindow(new V2XRoadVideoWindow(V2XServiceManager.getContext())); - getV2XWindow().show(getV2XMessageEntity().getContent()); + ((V2XRoadVideoWindow) getV2XWindow()).showWithEntity(markerExploreWay); V2XServiceManager.getMoGoV2XStatusManager(). setV2XRoadVideoInfoWindowShow( "https://haokan.baidu.com/v?vid=11239381022041270821&pd=bjh&fr=bjhauthor&type=video", diff --git a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/scenario/scene/road/V2XRoadVideoWindow.java b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/scenario/scene/road/V2XRoadVideoWindow.java index dbe97d1830..5f8c036dbb 100644 --- a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/scenario/scene/road/V2XRoadVideoWindow.java +++ b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/scenario/scene/road/V2XRoadVideoWindow.java @@ -5,26 +5,31 @@ import android.util.AttributeSet; import android.util.Log; import android.view.LayoutInflater; import android.view.View; +import android.view.ViewGroup; import android.widget.RelativeLayout; import androidx.recyclerview.widget.LinearLayoutManager; import androidx.recyclerview.widget.RecyclerView; +import com.mogo.module.common.entity.MarkerExploreWay; import com.mogo.module.common.entity.V2XEventShowEntity; import com.mogo.module.v2x.R; import com.mogo.module.v2x.V2XServiceManager; import com.mogo.module.v2x.adapter.V2XRoadEventAdapter; +import com.mogo.module.v2x.adapter.V2XRoadVideoAdapter; import com.mogo.module.v2x.listener.V2XWindowStatusListener; import com.mogo.module.v2x.scenario.view.IV2XWindow; +import com.mogo.module.v2x.utils.V2XUtils; +import java.util.ArrayList; import java.util.List; public class V2XRoadVideoWindow extends RelativeLayout implements IV2XWindow { private static final String TAG = "V2XRoadVideoWindow"; private RecyclerView mRecyclerView; - private V2XRoadEventAdapter mV2XRoadEventAdapter; - private List mItemList; + private V2XRoadVideoAdapter mV2XRoadVideoAdapter; + private List mItemList = new ArrayList<>(); public V2XRoadVideoWindow() { this(V2XServiceManager.getContext()); @@ -38,17 +43,32 @@ public class V2XRoadVideoWindow extends RelativeLayout implements IV2XWindow { private void initView(Context context) { Log.d(TAG, "初始化视频播放器"); mRecyclerView = findViewById(R.id.rvRoadEventList); - mV2XRoadEventAdapter = new V2XRoadEventAdapter(mItemList); - mRecyclerView.setAdapter(mV2XRoadEventAdapter); + mV2XRoadVideoAdapter = new V2XRoadVideoAdapter(); + mRecyclerView.setAdapter(mV2XRoadVideoAdapter); // 填充布局 LayoutInflater.from(context).inflate(R.layout.window_road_video, this); LinearLayoutManager layoutManager = new LinearLayoutManager(context, LinearLayoutManager.HORIZONTAL, false); mRecyclerView.setLayoutManager(layoutManager); } + public void showWithEntity(MarkerExploreWay markerExploreWay) { + show(markerExploreWay); + } + @Override public void show(Object entity) { + if (entity != null) { + mV2XRoadVideoAdapter.notifyDataSetChanged(); + } + ViewGroup.LayoutParams layoutParams = + new ViewGroup.LayoutParams( + ViewGroup.LayoutParams.MATCH_PARENT, + (int) V2XUtils.getApp() + .getResources() + .getDimension(R.dimen.module_v2x_fatigue_driving_window_height_ground)); + // 添加弹窗 + V2XServiceManager.getMogoTopViewManager().addView(this, layoutParams); } @Override From c2097659f1d5cba1450e37b48edddd333898df95 Mon Sep 17 00:00:00 2001 From: liujing Date: Tue, 29 Sep 2020 19:53:25 +0800 Subject: [PATCH 11/23] =?UTF-8?q?[rm]=20=E5=88=A0=E9=99=A4=E6=97=A0?= =?UTF-8?q?=E7=94=A8=E7=B1=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../v2x/adapter/V2XRoadVideoAdapter.java | 34 ---------- .../v2x/adapter/holder/V2XRoadEventVH.java | 10 ++- .../v2x/manager/IMoGoV2XStatusManager.java | 2 +- .../manager/impl/MoGoV2XStatusManager.java | 2 +- .../scene/road/V2XRoadVideoCarScenario.java | 65 +++++++----------- .../scene/road/V2XRoadVideoWindow.java | 66 +++++++------------ .../src/main/res/layout/window_road_video.xml | 13 ++-- 7 files changed, 67 insertions(+), 125 deletions(-) delete mode 100644 modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/adapter/V2XRoadVideoAdapter.java diff --git a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/adapter/V2XRoadVideoAdapter.java b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/adapter/V2XRoadVideoAdapter.java deleted file mode 100644 index 71648a7e63..0000000000 --- a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/adapter/V2XRoadVideoAdapter.java +++ /dev/null @@ -1,34 +0,0 @@ -package com.mogo.module.v2x.adapter; - -import android.view.ViewGroup; - -import androidx.annotation.NonNull; -import androidx.recyclerview.widget.RecyclerView; - -import com.mogo.module.common.entity.V2XEventShowEntity; -import com.mogo.module.common.entity.V2XMessageEntity; - -public class V2XRoadVideoAdapter extends RecyclerView.Adapter { - - private V2XEventShowEntity mV2XEventShowEntity; - - public V2XRoadVideoAdapter(){ - - } - - @NonNull - @Override - public RecyclerView.ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) { - return null; - } - - @Override - public void onBindViewHolder(@NonNull RecyclerView.ViewHolder holder, int position) { - - } - - @Override - public int getItemCount() { - return 0; - } -} diff --git a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/adapter/holder/V2XRoadEventVH.java b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/adapter/holder/V2XRoadEventVH.java index 3b9156143c..6e76ee2823 100644 --- a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/adapter/holder/V2XRoadEventVH.java +++ b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/adapter/holder/V2XRoadEventVH.java @@ -280,10 +280,16 @@ public class V2XRoadEventVH extends V2XBaseViewHolder { * */ private void showRoadVideoInfo(V2XEventShowEntity v2XEventShowEntity){ if (v2XEventShowEntity != null){ + /* + * MarkerExploreWay 具体事件 + * V2XRoadEventEntity 包含MarkerExploreWay 事件的二次封装(tts播报内容 事件类型等) + * V2XMessageEntity 三次封装(是否进行事件与本机连线 是否显示通话功能等) + * V2XEventShowEntity 包含V2XRoadEventEntity + * */ Log.d(TAG,"马上展示图片/视频资源"); - V2XMessageEntity> v2XMessageEntity = new V2XMessageEntity<>(); + V2XMessageEntity v2XMessageEntity = new V2XMessageEntity<>(); + v2XMessageEntity.setContent(v2XEventShowEntity); V2XRoadVideoCarScenario.getInstance().init(v2XMessageEntity); - V2XRoadVideoWindow window = (V2XRoadVideoWindow) V2XRoadVideoCarScenario.getInstance().getV2XWindow(); } } /** diff --git a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/manager/IMoGoV2XStatusManager.java b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/manager/IMoGoV2XStatusManager.java index 9da2ab1f68..a95eaefc08 100644 --- a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/manager/IMoGoV2XStatusManager.java +++ b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/manager/IMoGoV2XStatusManager.java @@ -144,7 +144,7 @@ public interface IMoGoV2XStatusManager extends IProvider { /* * 道路事件图片/视频资源 全屏 * */ - void setV2XRoadVideoInfoWindowShow(String tag, boolean show); + void setV2XRoadVideoWindowShow(String tag, boolean show); /** * 设置 模拟直播车机 UI 是否在展示 diff --git a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/manager/impl/MoGoV2XStatusManager.java b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/manager/impl/MoGoV2XStatusManager.java index 286a4afc5c..1a80dcaebe 100644 --- a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/manager/impl/MoGoV2XStatusManager.java +++ b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/manager/impl/MoGoV2XStatusManager.java @@ -171,7 +171,7 @@ public class MoGoV2XStatusManager implements IMoGoV2XStatusManager { } @Override - public void setV2XRoadVideoInfoWindowShow(String tag, boolean show) { + public void setV2XRoadVideoWindowShow(String tag, boolean show) { mStatus.put(V2XStatusDescriptor.V2XAnimationWindow_UI, show); invokeStatusChangedListener(V2XStatusDescriptor.V2XRoadVideo_UI, show); recordStatusModifier(tag, V2XStatusDescriptor.V2XRoadVideo_UI); diff --git a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/scenario/scene/road/V2XRoadVideoCarScenario.java b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/scenario/scene/road/V2XRoadVideoCarScenario.java index db1a19a891..542af49cd4 100644 --- a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/scenario/scene/road/V2XRoadVideoCarScenario.java +++ b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/scenario/scene/road/V2XRoadVideoCarScenario.java @@ -6,77 +6,61 @@ import android.view.ViewGroup; import androidx.annotation.Nullable; -import com.mogo.map.IDestroyable; -import com.mogo.module.common.entity.MarkerExploreWay; import com.mogo.module.common.entity.V2XEventShowEntity; import com.mogo.module.common.entity.V2XMessageEntity; -import com.mogo.module.v2x.V2XConst; -import com.mogo.module.v2x.V2XServiceManager; import com.mogo.module.v2x.R; -import com.mogo.module.v2x.adapter.V2XRoadVideoAdapter; +import com.mogo.module.v2x.V2XServiceManager; import com.mogo.module.v2x.scenario.impl.AbsV2XScenario; -import com.mogo.module.v2x.scenario.scene.livecar.V2XRoadLiveCarWindow; import com.mogo.module.v2x.scenario.view.IV2XWindow; import com.mogo.module.v2x.utils.V2XUtils; import com.mogo.service.windowview.IMogoTopViewStatusListener; -import com.mogo.utils.logger.Logger; - -import java.util.List; import javax.security.auth.DestroyFailedException; import javax.security.auth.Destroyable; -public class V2XRoadVideoCarScenario extends AbsV2XScenario implements IMogoTopViewStatusListener, Destroyable { +public class V2XRoadVideoCarScenario extends AbsV2XScenario implements IMogoTopViewStatusListener, Destroyable { private static V2XRoadVideoCarScenario sV2XRoadVideoCarScenario; - - @Override - public void init(@Nullable V2XMessageEntity v2XMessageEntity) { - Log.d(TAG, "init"); - try { - sV2XRoadVideoCarScenario.setV2XWindow(new V2XRoadVideoWindow()); - setV2XMessageEntity(v2XMessageEntity); - show(); - } catch (Exception e) { - e.printStackTrace(); - } - } + private static String TAG = "V2XRoadVideoCarScenario"; public static V2XRoadVideoCarScenario getInstance() { if (sV2XRoadVideoCarScenario == null) { synchronized (V2XRoadVideoCarScenario.class) { - sV2XRoadVideoCarScenario = new V2XRoadVideoCarScenario(); + if (sV2XRoadVideoCarScenario == null) { + sV2XRoadVideoCarScenario = new V2XRoadVideoCarScenario(); + sV2XRoadVideoCarScenario.setV2XWindow(new V2XRoadVideoWindow()); + } + } } return new V2XRoadVideoCarScenario(); } + @Override + public void init(@Nullable V2XMessageEntity v2XMessageEntity) { + try { + setV2XMessageEntity(v2XMessageEntity); + show(); + } catch (Exception e) { + Log.d(TAG, "pppp" + e.getMessage()); + e.printStackTrace(); + } + } + @Override public void show() { - if (getV2XMessageEntity() != null) { - showWindow(); - } + showWindow(); } @Override public void showWindow() { - Log.d(TAG, "showWindow"); - MarkerExploreWay markerExploreWay = null; if (getV2XWindow() != null) { - ViewGroup.LayoutParams layoutParams = - new ViewGroup.LayoutParams( - ViewGroup.LayoutParams.MATCH_PARENT, - (int) V2XUtils.getApp().getResources().getDimension(R.dimen.module_v2x_event_window_height_ground)); + getV2XWindow().show(getV2XMessageEntity().getContent()); V2XServiceManager - .getMogoTopViewManager() - .addSubView(getV2XWindow().getView(), this); - sV2XRoadVideoCarScenario.setV2XWindow(new V2XRoadVideoWindow(V2XServiceManager.getContext())); - ((V2XRoadVideoWindow) getV2XWindow()).showWithEntity(markerExploreWay); - V2XServiceManager.getMoGoV2XStatusManager(). - setV2XRoadVideoInfoWindowShow( - "https://haokan.baidu.com/v?vid=11239381022041270821&pd=bjh&fr=bjhauthor&type=video", - true); + .getIMogoWindowManager() + .addView(getV2XWindow().getView(), 0, 0, false); + V2XServiceManager.getMoGoV2XStatusManager().setV2XRoadVideoWindowShow(TAG, true); } } @@ -119,7 +103,6 @@ public class V2XRoadVideoCarScenario extends AbsV2XScenario implements IMogoTopV @Override public void onViewAdded(View view) { - Log.d(TAG, "onViewAdded"); } diff --git a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/scenario/scene/road/V2XRoadVideoWindow.java b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/scenario/scene/road/V2XRoadVideoWindow.java index 5f8c036dbb..d8f482e9a1 100644 --- a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/scenario/scene/road/V2XRoadVideoWindow.java +++ b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/scenario/scene/road/V2XRoadVideoWindow.java @@ -1,74 +1,56 @@ package com.mogo.module.v2x.scenario.scene.road; import android.content.Context; +import android.net.Uri; import android.util.AttributeSet; -import android.util.Log; import android.view.LayoutInflater; import android.view.View; -import android.view.ViewGroup; -import android.widget.RelativeLayout; -import androidx.recyclerview.widget.LinearLayoutManager; -import androidx.recyclerview.widget.RecyclerView; +import androidx.constraintlayout.widget.ConstraintLayout; -import com.mogo.module.common.entity.MarkerExploreWay; -import com.mogo.module.common.entity.V2XEventShowEntity; +import com.mogo.module.common.entity.V2XMessageEntity; import com.mogo.module.v2x.R; import com.mogo.module.v2x.V2XServiceManager; -import com.mogo.module.v2x.adapter.V2XRoadEventAdapter; -import com.mogo.module.v2x.adapter.V2XRoadVideoAdapter; import com.mogo.module.v2x.listener.V2XWindowStatusListener; import com.mogo.module.v2x.scenario.view.IV2XWindow; -import com.mogo.module.v2x.utils.V2XUtils; +import com.mogo.module.v2x.view.TextureVideoView; -import java.util.ArrayList; -import java.util.List; -public class V2XRoadVideoWindow extends RelativeLayout implements IV2XWindow { +public class V2XRoadVideoWindow extends ConstraintLayout implements IV2XWindow { private static final String TAG = "V2XRoadVideoWindow"; - private RecyclerView mRecyclerView; - private V2XRoadVideoAdapter mV2XRoadVideoAdapter; - private List mItemList = new ArrayList<>(); + private V2XWindowStatusListener mV2XWindowStatusListener; + private TextureVideoView mVideoView; + private V2XMessageEntity mV2XMessageEntity; public V2XRoadVideoWindow() { - this(V2XServiceManager.getContext()); + this(V2XServiceManager.getContext(), null); } public V2XRoadVideoWindow(Context context) { - super(context); + this(context, null); + } + + public V2XRoadVideoWindow(Context context, AttributeSet attrs) { + this(context, attrs, 0); + } + + public V2XRoadVideoWindow(Context context, AttributeSet attrs, int defStyleAttr) { + super(context, attrs, defStyleAttr); initView(context); } private void initView(Context context) { - Log.d(TAG, "初始化视频播放器"); - mRecyclerView = findViewById(R.id.rvRoadEventList); - mV2XRoadVideoAdapter = new V2XRoadVideoAdapter(); - mRecyclerView.setAdapter(mV2XRoadVideoAdapter); // 填充布局 LayoutInflater.from(context).inflate(R.layout.window_road_video, this); - LinearLayoutManager layoutManager = new LinearLayoutManager(context, LinearLayoutManager.HORIZONTAL, false); - mRecyclerView.setLayoutManager(layoutManager); - } - - public void showWithEntity(MarkerExploreWay markerExploreWay) { - show(markerExploreWay); + mVideoView = findViewById(R.id.roadVideoView); } @Override public void show(Object entity) { - if (entity != null) { - mV2XRoadVideoAdapter.notifyDataSetChanged(); - } - ViewGroup.LayoutParams layoutParams = - new ViewGroup.LayoutParams( - ViewGroup.LayoutParams.MATCH_PARENT, - (int) V2XUtils.getApp() - .getResources() - .getDimension(R.dimen.module_v2x_fatigue_driving_window_height_ground)); - - // 添加弹窗 - V2XServiceManager.getMogoTopViewManager().addView(this, layoutParams); + mV2XMessageEntity = (V2XMessageEntity) entity; +// String path = + mVideoView.setVideoPath("https://haokan.baidu.com/v?vid=11239381022041270821&pd=bjh&fr=bjhauthor&type=video"); } @Override @@ -78,11 +60,11 @@ public class V2XRoadVideoWindow extends RelativeLayout implements IV2XWindow { @Override public View getView() { - return null; + return this; } @Override public void setWindowStatusListener(V2XWindowStatusListener listener) { - + this.mV2XWindowStatusListener = listener; } } diff --git a/modules/mogo-module-v2x/src/main/res/layout/window_road_video.xml b/modules/mogo-module-v2x/src/main/res/layout/window_road_video.xml index 44752d3b5a..146a46e559 100644 --- a/modules/mogo-module-v2x/src/main/res/layout/window_road_video.xml +++ b/modules/mogo-module-v2x/src/main/res/layout/window_road_video.xml @@ -1,13 +1,18 @@ - + android:layout_height="match_parent" + android:id="@+id/roadVideoLayout" + android:background="#000000"> + android:background="@color/live_video_progress_bar_loading_color" + android:padding="@dimen/dp_30" + android:layout_marginTop="@dimen/dp_30"> - \ No newline at end of file + \ No newline at end of file From abc7b244a774cad7e798eda8386cbeaa2387a734 Mon Sep 17 00:00:00 2001 From: liujing Date: Tue, 29 Sep 2020 20:06:49 +0800 Subject: [PATCH 12/23] no message --- .../module/v2x/scenario/scene/road/V2XRoadVideoWindow.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/scenario/scene/road/V2XRoadVideoWindow.java b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/scenario/scene/road/V2XRoadVideoWindow.java index d8f482e9a1..ac1377ba44 100644 --- a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/scenario/scene/road/V2XRoadVideoWindow.java +++ b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/scenario/scene/road/V2XRoadVideoWindow.java @@ -5,6 +5,7 @@ import android.net.Uri; import android.util.AttributeSet; import android.view.LayoutInflater; import android.view.View; +import android.widget.RelativeLayout; import androidx.constraintlayout.widget.ConstraintLayout; @@ -16,7 +17,7 @@ import com.mogo.module.v2x.scenario.view.IV2XWindow; import com.mogo.module.v2x.view.TextureVideoView; -public class V2XRoadVideoWindow extends ConstraintLayout implements IV2XWindow { +public class V2XRoadVideoWindow extends RelativeLayout implements IV2XWindow { private static final String TAG = "V2XRoadVideoWindow"; private V2XWindowStatusListener mV2XWindowStatusListener; @@ -41,7 +42,6 @@ public class V2XRoadVideoWindow extends ConstraintLayout implements IV2XWindow { } private void initView(Context context) { - // 填充布局 LayoutInflater.from(context).inflate(R.layout.window_road_video, this); mVideoView = findViewById(R.id.roadVideoView); } From f7113f56e3b4e0fbdd7a7a4185be5a4a42241394 Mon Sep 17 00:00:00 2001 From: liujing Date: Tue, 29 Sep 2020 20:16:02 +0800 Subject: [PATCH 13/23] no message --- .../com/mogo/module/v2x/adapter/holder/V2XRoadEventVH.java | 4 +++- .../v2x/scenario/scene/road/V2XRoadVideoCarScenario.java | 3 +-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/adapter/holder/V2XRoadEventVH.java b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/adapter/holder/V2XRoadEventVH.java index 6e76ee2823..aa28e2dee2 100644 --- a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/adapter/holder/V2XRoadEventVH.java +++ b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/adapter/holder/V2XRoadEventVH.java @@ -78,6 +78,7 @@ public class V2XRoadEventVH extends V2XBaseViewHolder { private MarkerExploreWay mNoveltyInfo; private V2XRoadEventEntity mV2XRoadEventEntity; private V2XEventShowEntity mV2XEventShowEntity; + private V2XRoadVideoCarScenario mV2XRoadVideoCarScenario; // 拨打车聊聊语音回调 private V2XVoiceCallbackListener v2XVoiceCallbackCallListener = new V2XVoiceCallbackListener() { @@ -289,7 +290,8 @@ public class V2XRoadEventVH extends V2XBaseViewHolder { Log.d(TAG,"马上展示图片/视频资源"); V2XMessageEntity v2XMessageEntity = new V2XMessageEntity<>(); v2XMessageEntity.setContent(v2XEventShowEntity); - V2XRoadVideoCarScenario.getInstance().init(v2XMessageEntity); + mV2XRoadVideoCarScenario = V2XRoadVideoCarScenario.getInstance(); + mV2XRoadVideoCarScenario.init(v2XMessageEntity); } } /** diff --git a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/scenario/scene/road/V2XRoadVideoCarScenario.java b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/scenario/scene/road/V2XRoadVideoCarScenario.java index 542af49cd4..fcb4a3c1a0 100644 --- a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/scenario/scene/road/V2XRoadVideoCarScenario.java +++ b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/scenario/scene/road/V2XRoadVideoCarScenario.java @@ -33,7 +33,7 @@ public class V2XRoadVideoCarScenario extends AbsV2XScenario } } - return new V2XRoadVideoCarScenario(); + return sV2XRoadVideoCarScenario; } @Override @@ -42,7 +42,6 @@ public class V2XRoadVideoCarScenario extends AbsV2XScenario setV2XMessageEntity(v2XMessageEntity); show(); } catch (Exception e) { - Log.d(TAG, "pppp" + e.getMessage()); e.printStackTrace(); } } From 0bae46b652b911df734077c56b6c3997f714e3cb Mon Sep 17 00:00:00 2001 From: liujing Date: Wed, 30 Sep 2020 15:18:57 +0800 Subject: [PATCH 14/23] =?UTF-8?q?=E8=A7=86=E9=A2=91=E5=85=A8=E5=B1=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../v2x/adapter/holder/V2XRoadEventVH.java | 6 ++-- .../scene/animation/V2XAnimationWindow.java | 2 ++ .../scene/road/V2XRoadVideoCarScenario.java | 16 ++++++++--- .../scene/road/V2XRoadVideoWindow.java | 28 ++++++++++++++++--- .../src/main/res/layout/window_road_video.xml | 28 +++++++++++++------ 5 files changed, 60 insertions(+), 20 deletions(-) diff --git a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/adapter/holder/V2XRoadEventVH.java b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/adapter/holder/V2XRoadEventVH.java index aa28e2dee2..7236fea5eb 100644 --- a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/adapter/holder/V2XRoadEventVH.java +++ b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/adapter/holder/V2XRoadEventVH.java @@ -287,11 +287,9 @@ public class V2XRoadEventVH extends V2XBaseViewHolder { * V2XMessageEntity 三次封装(是否进行事件与本机连线 是否显示通话功能等) * V2XEventShowEntity 包含V2XRoadEventEntity * */ - Log.d(TAG,"马上展示图片/视频资源"); + Log.d(TAG,"马上展示图片/视频资源全屏"); V2XMessageEntity v2XMessageEntity = new V2XMessageEntity<>(); - v2XMessageEntity.setContent(v2XEventShowEntity); - mV2XRoadVideoCarScenario = V2XRoadVideoCarScenario.getInstance(); - mV2XRoadVideoCarScenario.init(v2XMessageEntity); + V2XRoadVideoCarScenario.getInstance().init(v2XMessageEntity); } } /** diff --git a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/scenario/scene/animation/V2XAnimationWindow.java b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/scenario/scene/animation/V2XAnimationWindow.java index bef1acd8d1..b2e2860f21 100644 --- a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/scenario/scene/animation/V2XAnimationWindow.java +++ b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/scenario/scene/animation/V2XAnimationWindow.java @@ -87,8 +87,10 @@ public class V2XAnimationWindow extends ConstraintLayout implements IV2XWindow { Logger.w(MODULE_NAME, "场景动画准备。。。。。"); diff --git a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/scenario/scene/road/V2XRoadVideoCarScenario.java b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/scenario/scene/road/V2XRoadVideoCarScenario.java index fcb4a3c1a0..1d207bd4dd 100644 --- a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/scenario/scene/road/V2XRoadVideoCarScenario.java +++ b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/scenario/scene/road/V2XRoadVideoCarScenario.java @@ -11,6 +11,7 @@ import com.mogo.module.common.entity.V2XMessageEntity; import com.mogo.module.v2x.R; import com.mogo.module.v2x.V2XServiceManager; import com.mogo.module.v2x.scenario.impl.AbsV2XScenario; +import com.mogo.module.v2x.scenario.scene.animation.V2XAnimationWindow; import com.mogo.module.v2x.scenario.view.IV2XWindow; import com.mogo.module.v2x.utils.V2XUtils; import com.mogo.service.windowview.IMogoTopViewStatusListener; @@ -59,23 +60,30 @@ public class V2XRoadVideoCarScenario extends AbsV2XScenario V2XServiceManager .getIMogoWindowManager() .addView(getV2XWindow().getView(), 0, 0, false); - V2XServiceManager.getMoGoV2XStatusManager().setV2XRoadVideoWindowShow(TAG, true); + V2XServiceManager.getMoGoV2XStatusManager().setV2XAnimationWindowShow(TAG, true); } } @Override public void closeWindow() { - + if (getV2XWindow() != null) { + getV2XWindow().close(); + } + V2XServiceManager.getMoGoV2XStatusManager().setV2XRoadVideoWindowShow(TAG, false); } @Override public void showButton() { - + if (getV2XButton() != null) { + getV2XButton().show(); + } } @Override public void closeButton() { - + if (getV2XButton() != null) { + getV2XButton().close(); + } } @Override diff --git a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/scenario/scene/road/V2XRoadVideoWindow.java b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/scenario/scene/road/V2XRoadVideoWindow.java index ac1377ba44..74f118b5dc 100644 --- a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/scenario/scene/road/V2XRoadVideoWindow.java +++ b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/scenario/scene/road/V2XRoadVideoWindow.java @@ -15,6 +15,11 @@ import com.mogo.module.v2x.V2XServiceManager; import com.mogo.module.v2x.listener.V2XWindowStatusListener; import com.mogo.module.v2x.scenario.view.IV2XWindow; import com.mogo.module.v2x.view.TextureVideoView; +import com.mogo.utils.logger.Logger; + +import retrofit2.http.Url; + +import static com.mogo.module.v2x.V2XConst.MODULE_NAME; public class V2XRoadVideoWindow extends RelativeLayout implements IV2XWindow { @@ -48,14 +53,29 @@ public class V2XRoadVideoWindow extends RelativeLayout implements IV2XWindow { @Override public void show(Object entity) { - mV2XMessageEntity = (V2XMessageEntity) entity; -// String path = - mVideoView.setVideoPath("https://haokan.baidu.com/v?vid=11239381022041270821&pd=bjh&fr=bjhauthor&type=video"); +// mV2XMessageEntity = (V2XMessageEntity) entity; + String path = "http://vd4.bdstatic.com//mda-kh0ijgx47i3uu141//v1-cae//mda-kh0ijgx47i3uu141.mp4"; + mVideoView.setVideoPath(path); + if (path != null) { + mVideoView.setOnPreparedListener(mediaPlayer -> { + Logger.w(MODULE_NAME, "全屏准备。。。。。"); + }); + mVideoView.setOnCompletionListener(mediaPlayer -> { + Logger.w(MODULE_NAME, "全屏展示结束..."); + if (mV2XWindowStatusListener != null) { + mV2XWindowStatusListener.onViewClose(); + } + }); + mVideoView.start(); + } } @Override public void close() { - + //移除窗体 + V2XServiceManager + .getIMogoWindowManager() + .removeView(this); } @Override diff --git a/modules/mogo-module-v2x/src/main/res/layout/window_road_video.xml b/modules/mogo-module-v2x/src/main/res/layout/window_road_video.xml index 146a46e559..26989d5087 100644 --- a/modules/mogo-module-v2x/src/main/res/layout/window_road_video.xml +++ b/modules/mogo-module-v2x/src/main/res/layout/window_road_video.xml @@ -1,18 +1,30 @@ + android:background="#99000000" + android:paddingStart="@dimen/module_main_v2x_animation_width"> - + android:layout_margin="@dimen/dp_30" + app:roundLayoutRadius="@dimen/dp_28"> - + + + \ No newline at end of file From 0c44ef65db42b776592b0c96c5dfdab4cdf5601f Mon Sep 17 00:00:00 2001 From: liujing Date: Wed, 30 Sep 2020 15:35:31 +0800 Subject: [PATCH 15/23] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E5=85=B3=E9=97=AD?= =?UTF-8?q?=E6=8C=89=E9=92=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../v2x/scenario/scene/road/V2XRoadVideoWindow.java | 6 ++++++ .../src/main/res/layout/window_road_video.xml | 11 ++++++++++- 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/scenario/scene/road/V2XRoadVideoWindow.java b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/scenario/scene/road/V2XRoadVideoWindow.java index 74f118b5dc..4a3eb4b7c7 100644 --- a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/scenario/scene/road/V2XRoadVideoWindow.java +++ b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/scenario/scene/road/V2XRoadVideoWindow.java @@ -5,6 +5,7 @@ import android.net.Uri; import android.util.AttributeSet; import android.view.LayoutInflater; import android.view.View; +import android.widget.ImageView; import android.widget.RelativeLayout; import androidx.constraintlayout.widget.ConstraintLayout; @@ -28,6 +29,7 @@ public class V2XRoadVideoWindow extends RelativeLayout implements IV2XWindow { private V2XWindowStatusListener mV2XWindowStatusListener; private TextureVideoView mVideoView; private V2XMessageEntity mV2XMessageEntity; + private ImageView closeImage; public V2XRoadVideoWindow() { this(V2XServiceManager.getContext(), null); @@ -49,6 +51,10 @@ public class V2XRoadVideoWindow extends RelativeLayout implements IV2XWindow { private void initView(Context context) { LayoutInflater.from(context).inflate(R.layout.window_road_video, this); mVideoView = findViewById(R.id.roadVideoView); + closeImage = findViewById(R.id.roadVideoClose); + closeImage.setOnClickListener(v -> { + close(); + }); } @Override diff --git a/modules/mogo-module-v2x/src/main/res/layout/window_road_video.xml b/modules/mogo-module-v2x/src/main/res/layout/window_road_video.xml index 26989d5087..a145599956 100644 --- a/modules/mogo-module-v2x/src/main/res/layout/window_road_video.xml +++ b/modules/mogo-module-v2x/src/main/res/layout/window_road_video.xml @@ -23,7 +23,16 @@ app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" - app:layout_constraintTop_toTopOf="parent" /> + app:layout_constraintTop_toTopOf="parent"> + + + From 6aefb843169651021ceab8504bd70c7a1041188e Mon Sep 17 00:00:00 2001 From: liujing Date: Wed, 30 Sep 2020 15:50:06 +0800 Subject: [PATCH 16/23] no message --- .../v2x/scenario/scene/road/V2XRoadVideoWindow.java | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/scenario/scene/road/V2XRoadVideoWindow.java b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/scenario/scene/road/V2XRoadVideoWindow.java index 4a3eb4b7c7..95871bf5ac 100644 --- a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/scenario/scene/road/V2XRoadVideoWindow.java +++ b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/scenario/scene/road/V2XRoadVideoWindow.java @@ -10,6 +10,7 @@ import android.widget.RelativeLayout; import androidx.constraintlayout.widget.ConstraintLayout; +import com.mogo.map.IDestroyable; import com.mogo.module.common.entity.V2XMessageEntity; import com.mogo.module.v2x.R; import com.mogo.module.v2x.V2XServiceManager; @@ -23,7 +24,7 @@ import retrofit2.http.Url; import static com.mogo.module.v2x.V2XConst.MODULE_NAME; -public class V2XRoadVideoWindow extends RelativeLayout implements IV2XWindow { +public class V2XRoadVideoWindow extends RelativeLayout implements IV2XWindow , IDestroyable { private static final String TAG = "V2XRoadVideoWindow"; private V2XWindowStatusListener mV2XWindowStatusListener; @@ -93,4 +94,9 @@ public class V2XRoadVideoWindow extends RelativeLayout implements IV2XWindow { public void setWindowStatusListener(V2XWindowStatusListener listener) { this.mV2XWindowStatusListener = listener; } + + @Override + public void destroy() { + + } } From 3f28efaf3e1834b56db3267f582e2059ec925c09 Mon Sep 17 00:00:00 2001 From: liujing Date: Mon, 12 Oct 2020 14:37:51 +0800 Subject: [PATCH 17/23] =?UTF-8?q?=E7=9C=9F=E5=AE=9E=E4=BA=8B=E4=BB=B6?= =?UTF-8?q?=E8=A7=86=E9=A2=91=E6=92=AD=E6=94=BE-=E6=97=A0=E6=9A=82?= =?UTF-8?q?=E5=81=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../v2x/adapter/holder/V2XRoadEventVH.java | 1 + .../scene/road/V2XRoadVideoWindow.java | 45 ++++++++++++------- 2 files changed, 30 insertions(+), 16 deletions(-) diff --git a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/adapter/holder/V2XRoadEventVH.java b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/adapter/holder/V2XRoadEventVH.java index 7236fea5eb..05605ee461 100644 --- a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/adapter/holder/V2XRoadEventVH.java +++ b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/adapter/holder/V2XRoadEventVH.java @@ -289,6 +289,7 @@ public class V2XRoadEventVH extends V2XBaseViewHolder { * */ Log.d(TAG,"马上展示图片/视频资源全屏"); V2XMessageEntity v2XMessageEntity = new V2XMessageEntity<>(); + v2XMessageEntity.setContent(v2XEventShowEntity); V2XRoadVideoCarScenario.getInstance().init(v2XMessageEntity); } } diff --git a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/scenario/scene/road/V2XRoadVideoWindow.java b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/scenario/scene/road/V2XRoadVideoWindow.java index 95871bf5ac..6514dc0a30 100644 --- a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/scenario/scene/road/V2XRoadVideoWindow.java +++ b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/scenario/scene/road/V2XRoadVideoWindow.java @@ -11,7 +11,11 @@ import android.widget.RelativeLayout; import androidx.constraintlayout.widget.ConstraintLayout; import com.mogo.map.IDestroyable; +import com.mogo.module.common.entity.MarkerExploreWay; +import com.mogo.module.common.entity.MarkerExploreWayItem; +import com.mogo.module.common.entity.V2XEventShowEntity; import com.mogo.module.common.entity.V2XMessageEntity; +import com.mogo.module.common.entity.V2XRoadEventEntity; import com.mogo.module.v2x.R; import com.mogo.module.v2x.V2XServiceManager; import com.mogo.module.v2x.listener.V2XWindowStatusListener; @@ -19,17 +23,18 @@ import com.mogo.module.v2x.scenario.view.IV2XWindow; import com.mogo.module.v2x.view.TextureVideoView; import com.mogo.utils.logger.Logger; +import java.util.ArrayList; + import retrofit2.http.Url; import static com.mogo.module.v2x.V2XConst.MODULE_NAME; -public class V2XRoadVideoWindow extends RelativeLayout implements IV2XWindow , IDestroyable { +public class V2XRoadVideoWindow extends RelativeLayout implements IV2XWindow, IDestroyable { private static final String TAG = "V2XRoadVideoWindow"; private V2XWindowStatusListener mV2XWindowStatusListener; private TextureVideoView mVideoView; - private V2XMessageEntity mV2XMessageEntity; private ImageView closeImage; public V2XRoadVideoWindow() { @@ -60,20 +65,28 @@ public class V2XRoadVideoWindow extends RelativeLayout implements IV2XWindow , I @Override public void show(Object entity) { -// mV2XMessageEntity = (V2XMessageEntity) entity; - String path = "http://vd4.bdstatic.com//mda-kh0ijgx47i3uu141//v1-cae//mda-kh0ijgx47i3uu141.mp4"; - mVideoView.setVideoPath(path); - if (path != null) { - mVideoView.setOnPreparedListener(mediaPlayer -> { - Logger.w(MODULE_NAME, "全屏准备。。。。。"); - }); - mVideoView.setOnCompletionListener(mediaPlayer -> { - Logger.w(MODULE_NAME, "全屏展示结束..."); - if (mV2XWindowStatusListener != null) { - mV2XWindowStatusListener.onViewClose(); - } - }); - mVideoView.start(); + V2XEventShowEntity showEntity = (V2XEventShowEntity) entity; + V2XRoadEventEntity xRoadEventEntity = showEntity.getV2XRoadEventEntity(); + ArrayList list = (ArrayList) xRoadEventEntity.getNoveltyInfo().getItems(); + if (list.size() > 0) { + MarkerExploreWayItem item = (MarkerExploreWayItem) list.get(0); + String path = item.getUrl(); + if (path == null) { + return; + } + mVideoView.setVideoPath(path); + if (path != null) { + mVideoView.setOnPreparedListener(mediaPlayer -> { + Logger.w(MODULE_NAME, "全屏准备。。。。。"); + }); + mVideoView.setOnCompletionListener(mediaPlayer -> { + Logger.w(MODULE_NAME, "全屏展示结束..."); + if (mV2XWindowStatusListener != null) { + mV2XWindowStatusListener.onViewClose(); + } + }); + mVideoView.start(); + } } } From 430388b61ed582209dfddcc8dc529797b8ba28a6 Mon Sep 17 00:00:00 2001 From: liujing Date: Tue, 13 Oct 2020 14:17:54 +0800 Subject: [PATCH 18/23] =?UTF-8?q?=E5=9B=BE=E7=89=87+=E8=A7=86=E9=A2=91(?= =?UTF-8?q?=E6=97=A0=E8=BF=9B=E5=BA=A6=E5=92=8C=E6=9A=82=E5=81=9C)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../model/StrategyServiceModel.kt | 3 +- .../scene/road/V2XRoadVideoWindow.java | 15 ++++++-- .../res/drawable/v2x_bg_big_image_dark.xml | 9 +++++ .../src/main/res/layout/window_road_video.xml | 34 +++++++++++++------ 4 files changed, 47 insertions(+), 14 deletions(-) create mode 100644 modules/mogo-module-v2x/src/main/res/drawable/v2x_bg_big_image_dark.xml diff --git a/libraries/tanlulib/src/main/java/com/zhidao/roadcondition/model/StrategyServiceModel.kt b/libraries/tanlulib/src/main/java/com/zhidao/roadcondition/model/StrategyServiceModel.kt index f4755ff79c..8891def0ee 100644 --- a/libraries/tanlulib/src/main/java/com/zhidao/roadcondition/model/StrategyServiceModel.kt +++ b/libraries/tanlulib/src/main/java/com/zhidao/roadcondition/model/StrategyServiceModel.kt @@ -40,7 +40,8 @@ class StrategyServiceModel : BaseRepository() { // } // } // -// suspend fun getSplashConfig(): BaseResponse { +// suspend fun getSplashConfig(): BaseR +// esponse { // return apiCall { // var splashConfigRequest = // SplashConfigRequest("1", "1") diff --git a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/scenario/scene/road/V2XRoadVideoWindow.java b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/scenario/scene/road/V2XRoadVideoWindow.java index 6514dc0a30..7a2f4a6c41 100644 --- a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/scenario/scene/road/V2XRoadVideoWindow.java +++ b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/scenario/scene/road/V2XRoadVideoWindow.java @@ -21,6 +21,7 @@ import com.mogo.module.v2x.V2XServiceManager; import com.mogo.module.v2x.listener.V2XWindowStatusListener; import com.mogo.module.v2x.scenario.view.IV2XWindow; import com.mogo.module.v2x.view.TextureVideoView; +import com.mogo.service.imageloader.MogoImageView; import com.mogo.utils.logger.Logger; import java.util.ArrayList; @@ -36,6 +37,7 @@ public class V2XRoadVideoWindow extends RelativeLayout implements IV2XWindow, ID private V2XWindowStatusListener mV2XWindowStatusListener; private TextureVideoView mVideoView; private ImageView closeImage; + private MogoImageView bigImage; public V2XRoadVideoWindow() { this(V2XServiceManager.getContext(), null); @@ -57,6 +59,7 @@ public class V2XRoadVideoWindow extends RelativeLayout implements IV2XWindow, ID private void initView(Context context) { LayoutInflater.from(context).inflate(R.layout.window_road_video, this); mVideoView = findViewById(R.id.roadVideoView); + bigImage = findViewById(R.id.big_image); closeImage = findViewById(R.id.roadVideoClose); closeImage.setOnClickListener(v -> { close(); @@ -74,8 +77,10 @@ public class V2XRoadVideoWindow extends RelativeLayout implements IV2XWindow, ID if (path == null) { return; } - mVideoView.setVideoPath(path); - if (path != null) { + if (path.contains(".mp4")) { + mVideoView.setVisibility(VISIBLE); + bigImage.setVisibility(View.GONE); + mVideoView.setVideoPath(path); mVideoView.setOnPreparedListener(mediaPlayer -> { Logger.w(MODULE_NAME, "全屏准备。。。。。"); }); @@ -86,7 +91,13 @@ public class V2XRoadVideoWindow extends RelativeLayout implements IV2XWindow, ID } }); mVideoView.start(); + } else { + bigImage.setVisibility(View.VISIBLE); + mVideoView.setVisibility(View.GONE); + V2XServiceManager.getImageLoader() + .displayImage(path, bigImage); } + } } diff --git a/modules/mogo-module-v2x/src/main/res/drawable/v2x_bg_big_image_dark.xml b/modules/mogo-module-v2x/src/main/res/drawable/v2x_bg_big_image_dark.xml new file mode 100644 index 0000000000..318b24d43d --- /dev/null +++ b/modules/mogo-module-v2x/src/main/res/drawable/v2x_bg_big_image_dark.xml @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/modules/mogo-module-v2x/src/main/res/layout/window_road_video.xml b/modules/mogo-module-v2x/src/main/res/layout/window_road_video.xml index a145599956..8f97e4af0e 100644 --- a/modules/mogo-module-v2x/src/main/res/layout/window_road_video.xml +++ b/modules/mogo-module-v2x/src/main/res/layout/window_road_video.xml @@ -14,16 +14,17 @@ android:layout_margin="@dimen/dp_30" app:roundLayoutRadius="@dimen/dp_28"> - + + - + \ No newline at end of file From 6c0cd455a0106257f43f69c51e0ce69dd76cb2a4 Mon Sep 17 00:00:00 2001 From: liujing Date: Sun, 18 Oct 2020 14:44:36 +0800 Subject: [PATCH 19/23] =?UTF-8?q?=E5=85=B3=E9=97=AD=E6=8C=89=E9=92=AE?= =?UTF-8?q?=E6=8D=A2=E4=BD=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/res/layout/window_road_video.xml | 62 +++++++++---------- 1 file changed, 31 insertions(+), 31 deletions(-) diff --git a/modules/mogo-module-v2x/src/main/res/layout/window_road_video.xml b/modules/mogo-module-v2x/src/main/res/layout/window_road_video.xml index 8f97e4af0e..53fde60538 100644 --- a/modules/mogo-module-v2x/src/main/res/layout/window_road_video.xml +++ b/modules/mogo-module-v2x/src/main/res/layout/window_road_video.xml @@ -14,38 +14,38 @@ android:layout_margin="@dimen/dp_30" app:roundLayoutRadius="@dimen/dp_28"> - + - + - - - + + + \ No newline at end of file From 33006f843f94c5f9bf630915b8864b6abc225c45 Mon Sep 17 00:00:00 2001 From: liujing Date: Mon, 19 Oct 2020 19:20:46 +0800 Subject: [PATCH 20/23] =?UTF-8?q?=E7=82=B9=E5=87=BB=E4=BA=8B=E4=BB=B6?= =?UTF-8?q?=E9=99=90=E5=88=B6=E8=A7=86=E9=A2=91=E8=B5=84=E6=BA=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../v2x/adapter/holder/V2XRoadEventVH.java | 32 +++++++++++++------ .../scene/road/V2XRoadVideoWindow.java | 8 ----- 2 files changed, 22 insertions(+), 18 deletions(-) diff --git a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/adapter/holder/V2XRoadEventVH.java b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/adapter/holder/V2XRoadEventVH.java index 05605ee461..604d7ccc75 100644 --- a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/adapter/holder/V2XRoadEventVH.java +++ b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/adapter/holder/V2XRoadEventVH.java @@ -197,15 +197,26 @@ public class V2XRoadEventVH extends V2XBaseViewHolder { mUserInfo = mNoveltyInfo.getUserInfo(); if (!ArrayUtils.isEmpty(mNoveltyInfo.getItems())) { String imgUrl = mNoveltyInfo.getItems().get(0).getThumbnail(); + String url = mNoveltyInfo.getItems().get(0).getUrl(); if (TextUtils.isEmpty(imgUrl)) { imgUrl = mNoveltyInfo.getItems().get(0).getUrl(); } if (!TextUtils.isEmpty(imgUrl)) { V2XServiceManager.getImageLoader() .displayImage(imgUrl, ivEventImg); + } + if (url.contains(".mp4")) { ivEventImg.setOnClickListener(v -> { showRoadVideoInfo(v2XEventShowEntity); }); + ivEventPlay.setOnClickListener(v -> { + showRoadVideoInfo(v2XEventShowEntity); + }); + ivEventPlay.setVisibility(VISIBLE); + } else { + ivEventImg.setOnClickListener(null); + ivEventPlay.setOnClickListener(null); + ivEventPlay.setVisibility(GONE); } } if (mNoveltyInfo.getUserInfo() != null && @@ -277,22 +288,23 @@ public class V2XRoadEventVH extends V2XBaseViewHolder { } /* - * 展示事件的图片/视频资源 - * */ - private void showRoadVideoInfo(V2XEventShowEntity v2XEventShowEntity){ - if (v2XEventShowEntity != null){ + * 展示事件的图片/视频资源 + * */ + private void showRoadVideoInfo(V2XEventShowEntity v2XEventShowEntity) { + if (v2XEventShowEntity != null) { /* - * MarkerExploreWay 具体事件 - * V2XRoadEventEntity 包含MarkerExploreWay 事件的二次封装(tts播报内容 事件类型等) - * V2XMessageEntity 三次封装(是否进行事件与本机连线 是否显示通话功能等) - * V2XEventShowEntity 包含V2XRoadEventEntity - * */ - Log.d(TAG,"马上展示图片/视频资源全屏"); + * MarkerExploreWay 具体事件 + * V2XRoadEventEntity 包含MarkerExploreWay 事件的二次封装(tts播报内容 事件类型等) + * V2XMessageEntity 三次封装(是否进行事件与本机连线 是否显示通话功能等) + * V2XEventShowEntity 包含V2XRoadEventEntity + * */ + Log.d(TAG, "马上展示图片/视频资源全屏"); V2XMessageEntity v2XMessageEntity = new V2XMessageEntity<>(); v2XMessageEntity.setContent(v2XEventShowEntity); V2XRoadVideoCarScenario.getInstance().init(v2XMessageEntity); } } + /** * 展示直播信息 * diff --git a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/scenario/scene/road/V2XRoadVideoWindow.java b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/scenario/scene/road/V2XRoadVideoWindow.java index 7a2f4a6c41..7d314f7d9a 100644 --- a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/scenario/scene/road/V2XRoadVideoWindow.java +++ b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/scenario/scene/road/V2XRoadVideoWindow.java @@ -37,7 +37,6 @@ public class V2XRoadVideoWindow extends RelativeLayout implements IV2XWindow, ID private V2XWindowStatusListener mV2XWindowStatusListener; private TextureVideoView mVideoView; private ImageView closeImage; - private MogoImageView bigImage; public V2XRoadVideoWindow() { this(V2XServiceManager.getContext(), null); @@ -59,7 +58,6 @@ public class V2XRoadVideoWindow extends RelativeLayout implements IV2XWindow, ID private void initView(Context context) { LayoutInflater.from(context).inflate(R.layout.window_road_video, this); mVideoView = findViewById(R.id.roadVideoView); - bigImage = findViewById(R.id.big_image); closeImage = findViewById(R.id.roadVideoClose); closeImage.setOnClickListener(v -> { close(); @@ -79,7 +77,6 @@ public class V2XRoadVideoWindow extends RelativeLayout implements IV2XWindow, ID } if (path.contains(".mp4")) { mVideoView.setVisibility(VISIBLE); - bigImage.setVisibility(View.GONE); mVideoView.setVideoPath(path); mVideoView.setOnPreparedListener(mediaPlayer -> { Logger.w(MODULE_NAME, "全屏准备。。。。。"); @@ -91,11 +88,6 @@ public class V2XRoadVideoWindow extends RelativeLayout implements IV2XWindow, ID } }); mVideoView.start(); - } else { - bigImage.setVisibility(View.VISIBLE); - mVideoView.setVisibility(View.GONE); - V2XServiceManager.getImageLoader() - .displayImage(path, bigImage); } } From afca3396fcf8c72a03cc4764ebd373323e46e269 Mon Sep 17 00:00:00 2001 From: liujing Date: Mon, 19 Oct 2020 21:03:58 +0800 Subject: [PATCH 21/23] =?UTF-8?q?=E6=92=AD=E6=94=BE=E5=AE=8C=E5=90=8E?= =?UTF-8?q?=E5=81=9C=E5=9C=A8=E7=AC=AC=E4=B8=80=E5=B8=A7(=E7=BC=BA?= =?UTF-8?q?=E5=B0=91=E5=A4=A7=E5=B0=8F+=E5=86=8D=E6=AC=A1=E6=92=AD?= =?UTF-8?q?=E6=94=BE=E9=80=BB=E8=BE=91)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/mogo/utils/BitmapHelper.java | 8 +++- .../scene/road/V2XRoadVideoWindow.java | 46 +++++++++++++------ .../src/main/res/layout/window_road_video.xml | 11 +++-- 3 files changed, 47 insertions(+), 18 deletions(-) diff --git a/foudations/mogo-utils/src/main/java/com/mogo/utils/BitmapHelper.java b/foudations/mogo-utils/src/main/java/com/mogo/utils/BitmapHelper.java index a2a84d73ac..b63655c408 100644 --- a/foudations/mogo-utils/src/main/java/com/mogo/utils/BitmapHelper.java +++ b/foudations/mogo-utils/src/main/java/com/mogo/utils/BitmapHelper.java @@ -28,6 +28,7 @@ import java.io.ByteArrayOutputStream; import java.io.File; import java.io.FileOutputStream; import java.io.InputStream; +import java.util.HashMap; import javax.microedition.khronos.egl.EGL10; import javax.microedition.khronos.egl.EGLConfig; @@ -645,7 +646,12 @@ public class BitmapHelper { Bitmap b = null; MediaMetadataRetriever retriever = new MediaMetadataRetriever(); try { - retriever.setDataSource( filePath ); + retriever = new MediaMetadataRetriever(); + if (Build.VERSION.SDK_INT >= 14) + retriever.setDataSource(filePath, new HashMap()); + else + retriever.setDataSource(filePath); + // mediaMetadataRetriever.setDataSource(videoPath); b = retriever.getFrameAtTime(); } catch ( IllegalArgumentException e ) { e.printStackTrace(); diff --git a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/scenario/scene/road/V2XRoadVideoWindow.java b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/scenario/scene/road/V2XRoadVideoWindow.java index 7d314f7d9a..6f5d93dda6 100644 --- a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/scenario/scene/road/V2XRoadVideoWindow.java +++ b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/scenario/scene/road/V2XRoadVideoWindow.java @@ -1,33 +1,27 @@ package com.mogo.module.v2x.scenario.scene.road; import android.content.Context; -import android.net.Uri; +import android.graphics.Bitmap; import android.util.AttributeSet; import android.view.LayoutInflater; import android.view.View; import android.widget.ImageView; import android.widget.RelativeLayout; -import androidx.constraintlayout.widget.ConstraintLayout; - import com.mogo.map.IDestroyable; -import com.mogo.module.common.entity.MarkerExploreWay; import com.mogo.module.common.entity.MarkerExploreWayItem; import com.mogo.module.common.entity.V2XEventShowEntity; -import com.mogo.module.common.entity.V2XMessageEntity; import com.mogo.module.common.entity.V2XRoadEventEntity; import com.mogo.module.v2x.R; import com.mogo.module.v2x.V2XServiceManager; import com.mogo.module.v2x.listener.V2XWindowStatusListener; import com.mogo.module.v2x.scenario.view.IV2XWindow; import com.mogo.module.v2x.view.TextureVideoView; -import com.mogo.service.imageloader.MogoImageView; +import com.mogo.utils.BitmapHelper; import com.mogo.utils.logger.Logger; import java.util.ArrayList; -import retrofit2.http.Url; - import static com.mogo.module.v2x.V2XConst.MODULE_NAME; @@ -37,6 +31,8 @@ public class V2XRoadVideoWindow extends RelativeLayout implements IV2XWindow, ID private V2XWindowStatusListener mV2XWindowStatusListener; private TextureVideoView mVideoView; private ImageView closeImage; + private ImageView mThumbnailImageView; + private ImageView windowPalyImageView; public V2XRoadVideoWindow() { this(V2XServiceManager.getContext(), null); @@ -59,6 +55,8 @@ public class V2XRoadVideoWindow extends RelativeLayout implements IV2XWindow, ID LayoutInflater.from(context).inflate(R.layout.window_road_video, this); mVideoView = findViewById(R.id.roadVideoView); closeImage = findViewById(R.id.roadVideoClose); + mThumbnailImageView = findViewById(R.id.thumbnail_image); + windowPalyImageView = findViewById(R.id.window_video_play); closeImage.setOnClickListener(v -> { close(); }); @@ -76,23 +74,43 @@ public class V2XRoadVideoWindow extends RelativeLayout implements IV2XWindow, ID return; } if (path.contains(".mp4")) { - mVideoView.setVisibility(VISIBLE); - mVideoView.setVideoPath(path); - mVideoView.setOnPreparedListener(mediaPlayer -> { - Logger.w(MODULE_NAME, "全屏准备。。。。。"); - }); + videoViewStartWithPath(path); + mVideoView.setOnCompletionListener(mediaPlayer -> { - Logger.w(MODULE_NAME, "全屏展示结束..."); + Logger.w(MODULE_NAME, "视频播放结束..."); + Bitmap bitmap = BitmapHelper.getVideoThumbnail(path); + mThumbnailImageView.setVisibility(View.VISIBLE); + mThumbnailImageView.setImageBitmap(bitmap); + + windowPalyImageView.setVisibility(View.VISIBLE); + windowPalyImageView.setOnClickListener(v -> { + videoViewStartWithPath(path); + + }); if (mV2XWindowStatusListener != null) { mV2XWindowStatusListener.onViewClose(); } }); mVideoView.start(); + } } } + /* + * 视频开始播放 + * */ + private void videoViewStartWithPath(String path) { + mVideoView.setVisibility(VISIBLE); + mVideoView.setVideoPath(path); + mVideoView.setOnPreparedListener(mediaPlayer -> { + Logger.w(MODULE_NAME, "全屏准备。。。。。"); + mThumbnailImageView.setVisibility(View.GONE); + windowPalyImageView.setVisibility(View.GONE); + }); + } + @Override public void close() { //移除窗体 diff --git a/modules/mogo-module-v2x/src/main/res/layout/window_road_video.xml b/modules/mogo-module-v2x/src/main/res/layout/window_road_video.xml index 53fde60538..3ac98e63f0 100644 --- a/modules/mogo-module-v2x/src/main/res/layout/window_road_video.xml +++ b/modules/mogo-module-v2x/src/main/res/layout/window_road_video.xml @@ -20,7 +20,6 @@ android:layout_height="match_parent" android:background="@color/live_video_progress_bar_loading_color" android:clickable="false" - android:visibility="gone" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" @@ -29,16 +28,22 @@ + Date: Tue, 20 Oct 2020 10:13:41 +0800 Subject: [PATCH 22/23] =?UTF-8?q?=E8=A7=86=E9=A2=91=E7=BB=93=E6=9D=9F?= =?UTF-8?q?=E5=90=8E=E6=98=BE=E7=A4=BA=E7=AC=AC=E4=B8=80=E5=B8=A7=E5=9B=BE?= =?UTF-8?q?=E7=89=87=E5=85=A8=E5=B1=8F+=E9=87=8D=E5=A4=8D=E6=92=AD?= =?UTF-8?q?=E6=94=BE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../scene/road/V2XRoadVideoWindow.java | 33 +++++++++++-------- .../src/main/res/layout/window_road_video.xml | 1 + 2 files changed, 21 insertions(+), 13 deletions(-) diff --git a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/scenario/scene/road/V2XRoadVideoWindow.java b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/scenario/scene/road/V2XRoadVideoWindow.java index 6f5d93dda6..ff4a6ffa3a 100644 --- a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/scenario/scene/road/V2XRoadVideoWindow.java +++ b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/scenario/scene/road/V2XRoadVideoWindow.java @@ -78,20 +78,8 @@ public class V2XRoadVideoWindow extends RelativeLayout implements IV2XWindow, ID mVideoView.setOnCompletionListener(mediaPlayer -> { Logger.w(MODULE_NAME, "视频播放结束..."); - Bitmap bitmap = BitmapHelper.getVideoThumbnail(path); - mThumbnailImageView.setVisibility(View.VISIBLE); - mThumbnailImageView.setImageBitmap(bitmap); - - windowPalyImageView.setVisibility(View.VISIBLE); - windowPalyImageView.setOnClickListener(v -> { - videoViewStartWithPath(path); - - }); - if (mV2XWindowStatusListener != null) { - mV2XWindowStatusListener.onViewClose(); - } + videoPlayEnd(); }); - mVideoView.start(); } @@ -109,6 +97,25 @@ public class V2XRoadVideoWindow extends RelativeLayout implements IV2XWindow, ID mThumbnailImageView.setVisibility(View.GONE); windowPalyImageView.setVisibility(View.GONE); }); + mVideoView.start(); + } + + /* + * 视频播放结束 + * */ + private void videoPlayEnd(){ + Bitmap bitmap = BitmapHelper.getVideoThumbnail(path); + mThumbnailImageView.setVisibility(View.VISIBLE); + mThumbnailImageView.setImageBitmap(bitmap); + + windowPalyImageView.setVisibility(View.VISIBLE); + windowPalyImageView.setOnClickListener(v -> { + videoViewStartWithPath(path); + + }); + if (mV2XWindowStatusListener != null) { + mV2XWindowStatusListener.onViewClose(); + } } @Override diff --git a/modules/mogo-module-v2x/src/main/res/layout/window_road_video.xml b/modules/mogo-module-v2x/src/main/res/layout/window_road_video.xml index 3ac98e63f0..d43b868146 100644 --- a/modules/mogo-module-v2x/src/main/res/layout/window_road_video.xml +++ b/modules/mogo-module-v2x/src/main/res/layout/window_road_video.xml @@ -33,6 +33,7 @@ android:layout_height="match_parent" android:background="@drawable/v2x_bg_big_image_dark" android:visibility="gone" + android:scaleType="fitXY" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" From 9a59270ac580b4dbac42aee8f7d3b868172bb5f5 Mon Sep 17 00:00:00 2001 From: liujing Date: Tue, 20 Oct 2020 10:37:05 +0800 Subject: [PATCH 23/23] path --- .../module/v2x/scenario/scene/road/V2XRoadVideoWindow.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/scenario/scene/road/V2XRoadVideoWindow.java b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/scenario/scene/road/V2XRoadVideoWindow.java index ff4a6ffa3a..da6d1b592b 100644 --- a/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/scenario/scene/road/V2XRoadVideoWindow.java +++ b/modules/mogo-module-v2x/src/main/java/com/mogo/module/v2x/scenario/scene/road/V2XRoadVideoWindow.java @@ -78,7 +78,7 @@ public class V2XRoadVideoWindow extends RelativeLayout implements IV2XWindow, ID mVideoView.setOnCompletionListener(mediaPlayer -> { Logger.w(MODULE_NAME, "视频播放结束..."); - videoPlayEnd(); + videoPlayEnd(path); }); } @@ -103,7 +103,7 @@ public class V2XRoadVideoWindow extends RelativeLayout implements IV2XWindow, ID /* * 视频播放结束 * */ - private void videoPlayEnd(){ + private void videoPlayEnd(String path){ Bitmap bitmap = BitmapHelper.getVideoThumbnail(path); mThumbnailImageView.setVisibility(View.VISIBLE); mThumbnailImageView.setImageBitmap(bitmap);