diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/widget/ColdStartAgainWindow.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/widget/ColdStartAgainWindow.kt
new file mode 100644
index 0000000000..54d9b9b6fd
--- /dev/null
+++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/widget/ColdStartAgainWindow.kt
@@ -0,0 +1,118 @@
+package com.mogo.eagle.core.function.hmi.ui.widget
+
+import android.animation.Animator
+import android.animation.AnimatorSet
+import android.animation.ObjectAnimator
+import android.app.Activity
+import android.graphics.PixelFormat
+import android.util.DisplayMetrics
+import android.view.Gravity
+import android.view.LayoutInflater
+import android.view.View
+import android.view.WindowManager
+import android.view.animation.DecelerateInterpolator
+import android.view.animation.LinearInterpolator
+import android.widget.LinearLayout
+import androidx.constraintlayout.widget.ConstraintLayout
+import com.mogo.commons.AbsMogoApplication
+import com.mogo.eagle.core.data.config.FunctionBuildConfig
+import com.mogo.eagle.core.function.hmi.R
+import com.mogo.eagle.core.utilcode.mogo.AppIdentityModeUtils
+import com.mogo.eagle.core.utilcode.util.UiThreadHandler
+import com.mogo.eagle.core.widget.media.video.SimpleVideoPlayer
+import com.shuyu.gsyvideoplayer.builder.GSYVideoOptionBuilder
+import com.shuyu.gsyvideoplayer.listener.GSYSampleCallBack
+import me.jessyan.autosize.utils.AutoSizeUtils
+
+/**
+ * 打开app后首次与域控链接或与域控断连1min后,需要回到界面并呈现一遍流程
+ */
+class ColdStartAgainWindow constructor(activity: Activity){
+
+ private var mActivity: Activity = activity
+ private var mWindowParams: WindowManager.LayoutParams? = null
+ private var mWindowManager: WindowManager? = null
+ private lateinit var mFloatLayout: View
+
+ private lateinit var clColdStartAgain: ConstraintLayout
+ private lateinit var svpColdStart: SimpleVideoPlayer
+ private lateinit var coldStart: ColdStartView
+
+ private val gsyVideoOptionBuilder = GSYVideoOptionBuilder()
+
+ init {
+ initFloatWindow()
+ }
+
+ private fun initFloatWindow(){
+ mFloatLayout = LayoutInflater.from(mActivity).inflate(R.layout.window_cold_start_again, null) as View
+ clColdStartAgain = mFloatLayout.findViewById(R.id.cl_cold_start_again)
+ svpColdStart = mFloatLayout.findViewById(R.id.svp_cold_start)
+ coldStart = mFloatLayout.findViewById(R.id.view_cold_start_again)
+
+ val videoUrl:String = if (AppIdentityModeUtils.isT1T2(FunctionBuildConfig.appIdentityMode)) {
+ svpColdStart.setBackgroundResource(R.drawable.biz_login_bg_taxi_start)
+ "android.resource://" + mActivity.packageName + "/" + R.raw.biz_login_taxi_bg
+ }else{
+ svpColdStart.setBackgroundResource(R.drawable.biz_login_bg_bus_start)
+ "android.resource://" + mActivity.packageName + "/" + R.raw.biz_login_bus_bg
+ }
+ svpColdStart.setIsTouchWiget(false)
+ svpColdStart.setIsTouchWigetFull(false)
+ svpColdStart.enableshowProgressDialog = false
+ svpColdStart.enableDoubleClick = false
+
+ coldStart.setColdStartResultListener(object: ColdStartView.ColdStartResultListener{
+ override fun coldStartSuccess() {
+ gsyVideoOptionBuilder.setUrl(videoUrl)
+ .setCacheWithPlay(false)
+ .setPlayTag("TaxiPassengerArrivedView")
+ .build(svpColdStart)
+
+ svpColdStart.setVideoAllCallBack(object : GSYSampleCallBack() {
+ override fun onAutoComplete(url: String?, vararg objects: Any?) {
+ if (AppIdentityModeUtils.isT1T2(FunctionBuildConfig.appIdentityMode)) {
+ svpColdStart.setBackgroundResource(R.drawable.biz_login_bg_taxi_end)
+ }else{
+ svpColdStart.setBackgroundResource(R.drawable.biz_login_bg_bus_end)
+ }
+ this@ColdStartAgainWindow.hideFloatWindow()
+ }
+ })
+ svpColdStart.startPlayLogic()
+ }
+
+ override fun coldStartFail() {
+
+ }
+
+ })
+
+ mWindowParams = WindowManager.LayoutParams()
+ mWindowManager = mActivity.windowManager
+ mWindowParams?.let {
+ it.format = PixelFormat.RGBA_8888
+ it.flags = WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE
+ it.gravity = Gravity.START or Gravity.TOP
+ it.width = WindowManager.LayoutParams.MATCH_PARENT
+ it.height = WindowManager.LayoutParams.MATCH_PARENT
+ it.alpha = 1.0f
+ }
+ }
+
+ fun showFloatWindow() {
+ if (mFloatLayout.parent == null) {
+ val metrics = DisplayMetrics()
+ mWindowManager!!.defaultDisplay.getMetrics(metrics)
+ mWindowParams!!.x = 0
+ mWindowParams!!.y = 0
+ mWindowManager!!.addView(mFloatLayout, mWindowParams)
+ }
+
+ }
+
+ fun hideFloatWindow() {
+ if (mFloatLayout.parent != null) mWindowManager!!.removeView(mFloatLayout)
+ }
+
+}
\ No newline at end of file
diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/widget/ColdStartView.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/widget/ColdStartView.kt
index 9a7b4a6459..9ff75c45eb 100644
--- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/widget/ColdStartView.kt
+++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/widget/ColdStartView.kt
@@ -503,10 +503,6 @@ class ColdStartView @JvmOverloads constructor(
* 隐藏冷启动视图
*/
private fun hideColdStartView(){
-// UiThreadHandler.postDelayed({
-// this@ColdStartView.visibility = View.GONE
-// coldStartResultListener?.coldStartSuccess()
-// }, 2000)
// 假设view是你想要淡出的视图
this@ColdStartView.animate().alpha(0.0f).setDuration(1000).start()
coldStartResultListener?.coldStartSuccess()
diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/layout/window_cold_start_again.xml b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/window_cold_start_again.xml
new file mode 100644
index 0000000000..6384ebf47f
--- /dev/null
+++ b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/window_cold_start_again.xml
@@ -0,0 +1,22 @@
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/angle/MoGoVisualAngleChangeProvider.kt b/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/angle/MoGoVisualAngleChangeProvider.kt
index c942ef6173..c0f26e90e5 100644
--- a/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/angle/MoGoVisualAngleChangeProvider.kt
+++ b/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/angle/MoGoVisualAngleChangeProvider.kt
@@ -10,6 +10,7 @@ import com.mogo.eagle.core.data.constants.MogoServicePaths
import com.mogo.eagle.core.data.map.*
import com.mogo.eagle.core.function.angle.scenes.CrossRoad
import com.mogo.eagle.core.function.angle.scenes.Default
+import com.mogo.eagle.core.function.angle.scenes.LongSight
import com.mogo.eagle.core.function.angle.scenes.Roma
import com.mogo.eagle.core.function.api.map.angle.*
import com.mogo.eagle.core.function.api.map.angle.IMoGoVisualAngleChangeProvider.OnMoGoVisualAngleSceneChangeListener
@@ -42,6 +43,8 @@ class MoGoVisualAngleChangeProvider: IMoGoVisualAngleChangeProvider {
private val prevScene by lazy { AtomicReference() }
+ private var timerJob: Job? = null
+
private val listener = object : IMoGoMapRoadListener {
private val roadId = AtomicReference()
private val triggerRoadId = AtomicReference()
@@ -187,7 +190,7 @@ class MoGoVisualAngleChangeProvider: IMoGoVisualAngleChangeProvider {
private fun doChangeAngle(target: Scene) {
val angle = target.getVisualAngleMode()
- CallerMapUIServiceManager.getMapUIController()?.also {
+ CallerMapUIServiceManager.getMapUIController()?.also { itx ->
Log.d(TAG, "--- doChangeAngle ---: $target")
val prev = prevScene.get()
try {
@@ -204,7 +207,23 @@ class MoGoVisualAngleChangeProvider: IMoGoVisualAngleChangeProvider {
DOWN -> CallerMapUIServiceManager.getMapUIController()?.setScreenToOriginDis(5.0f)
}
if (target !is Roma) {
- it.changeMapVisualAngle(angle, null)
+ if (target is LongSight) {
+ timerJob?.safeCancel()
+ scope.launch {
+ CallerMapUIServiceManager.getMapUIController()?.setAllGesturesEnabled(false)
+ itx.changeMapVisualAngle(angle, null)
+ delay(3000)
+ CallerMapUIServiceManager.getMapUIController()?.setAllGesturesEnabled(true)
+ }.also {
+ it.invokeOnCompletion {
+ CallerMapUIServiceManager.getMapUIController()?.setAllGesturesEnabled(true)
+ }
+ timerJob = it
+ }
+ } else {
+ timerJob?.safeCancel()
+ itx.changeMapVisualAngle(angle, null)
+ }
}
} finally {
if (prev == null || prev.javaClass != target.javaClass) {
diff --git a/OCH/common/biz/src/main/res/drawable-nodpi/biz_login_bg_bus_end.webp b/core/mogo-core-res/src/main/res/drawable-nodpi/biz_login_bg_bus_end.webp
similarity index 100%
rename from OCH/common/biz/src/main/res/drawable-nodpi/biz_login_bg_bus_end.webp
rename to core/mogo-core-res/src/main/res/drawable-nodpi/biz_login_bg_bus_end.webp
diff --git a/OCH/common/biz/src/main/res/drawable-nodpi/biz_login_bg_bus_start.webp b/core/mogo-core-res/src/main/res/drawable-nodpi/biz_login_bg_bus_start.webp
similarity index 100%
rename from OCH/common/biz/src/main/res/drawable-nodpi/biz_login_bg_bus_start.webp
rename to core/mogo-core-res/src/main/res/drawable-nodpi/biz_login_bg_bus_start.webp
diff --git a/OCH/common/biz/src/main/res/drawable-nodpi/biz_login_bg_taxi_end.webp b/core/mogo-core-res/src/main/res/drawable-nodpi/biz_login_bg_taxi_end.webp
similarity index 100%
rename from OCH/common/biz/src/main/res/drawable-nodpi/biz_login_bg_taxi_end.webp
rename to core/mogo-core-res/src/main/res/drawable-nodpi/biz_login_bg_taxi_end.webp
diff --git a/OCH/common/biz/src/main/res/drawable-nodpi/biz_login_bg_taxi_start.webp b/core/mogo-core-res/src/main/res/drawable-nodpi/biz_login_bg_taxi_start.webp
similarity index 100%
rename from OCH/common/biz/src/main/res/drawable-nodpi/biz_login_bg_taxi_start.webp
rename to core/mogo-core-res/src/main/res/drawable-nodpi/biz_login_bg_taxi_start.webp
diff --git a/OCH/common/biz/src/main/res/raw/biz_login_bus_bg.mp4 b/core/mogo-core-res/src/main/res/raw/biz_login_bus_bg.mp4
similarity index 100%
rename from OCH/common/biz/src/main/res/raw/biz_login_bus_bg.mp4
rename to core/mogo-core-res/src/main/res/raw/biz_login_bus_bg.mp4
diff --git a/OCH/common/biz/src/main/res/raw/biz_login_taxi_bg.mp4 b/core/mogo-core-res/src/main/res/raw/biz_login_taxi_bg.mp4
similarity index 100%
rename from OCH/common/biz/src/main/res/raw/biz_login_taxi_bg.mp4
rename to core/mogo-core-res/src/main/res/raw/biz_login_taxi_bg.mp4