[6.7.0]冷启动调整

This commit is contained in:
xuxinchao
2024-10-21 17:57:58 +08:00
parent 6292915983
commit 08dc5b120d
9 changed files with 140 additions and 4 deletions

View File

@@ -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)
}
}

View File

@@ -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()

View File

@@ -0,0 +1,22 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/cl_cold_start_again"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<com.mogo.eagle.core.widget.media.video.SimpleVideoPlayer
android:id="@+id/svp_cold_start"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<com.mogo.eagle.core.function.hmi.ui.widget.ColdStartView
android:id="@+id/view_cold_start_again"
android:layout_width="match_parent"
android:layout_height="match_parent"
/>
</androidx.constraintlayout.widget.ConstraintLayout>