[6.7.2]
1、升级皮肤SDK,完成视频文件的raw拷贝 2、完成视频换肤资源替换
This commit is contained in:
@@ -10,7 +10,6 @@ import android.view.*
|
||||
import android.view.ViewTreeObserver.OnGlobalLayoutListener
|
||||
import android.view.animation.DecelerateInterpolator
|
||||
import android.view.animation.LinearInterpolator
|
||||
import android.widget.VideoView
|
||||
import androidx.core.content.ContextCompat
|
||||
import androidx.core.widget.addTextChangedListener
|
||||
import com.mogo.commons.AbsMogoApplication
|
||||
@@ -34,6 +33,9 @@ import com.mogo.och.biz.login.callback.ILoginViewCallback
|
||||
import com.mogo.och.biz.login.presenter.LoginPresenter
|
||||
import com.mogo.skin.Skin
|
||||
import com.mogo.skin.SkinManager
|
||||
import com.mogo.skin.SkinManager.SkinLoadListener
|
||||
import com.mogo.skin.utils.FileUtils
|
||||
import com.mogo.skin.utils.SkinResources
|
||||
import com.shuyu.gsyvideoplayer.builder.GSYVideoOptionBuilder
|
||||
import com.shuyu.gsyvideoplayer.listener.GSYSampleCallBack
|
||||
import com.shuyu.gsyvideoplayer.utils.Debuger
|
||||
@@ -96,23 +98,31 @@ class LoginFragment : MvpFragment<LoginFragment?, LoginPresenter?>(), ILoginView
|
||||
CallerLogger.d(TAG, "init")
|
||||
// TODO yangyakun 根据后台配置的用户租户对应的皮肤包进行下载换肤
|
||||
val skin = Skin(
|
||||
"9b69f8c4a2b3b953e1600930eda6a099",
|
||||
"YiXin-skin_v1_2024_10_23.apk",
|
||||
"https://carlife-static-1255510688.cos.ap-beijing.myqcloud.com/MoGoEagleEye/YiXin-skin_v1_2024_10_23.apk"
|
||||
"88a7b397d6a03966aa332aea17f5210a",
|
||||
"YiXin-skin_v1_2024_10_24.apk",
|
||||
"https://carlife-static-1255510688.cos.ap-beijing.myqcloud.com/MoGoEagleEye/YiXin-skin_v1_2024_10_24.apk"
|
||||
)
|
||||
//换肤
|
||||
SkinManager.getInstance().selectSkin(Utils.getApp(), skin)
|
||||
SkinManager.getInstance().downloadSkin(Utils.getApp(), skin, object : SkinLoadListener {
|
||||
override fun onLoadSuccess() {
|
||||
FileUtils.copyVideoRawToFile(Utils.getApp(), R.raw::class.java.fields)
|
||||
}
|
||||
|
||||
override fun onLoadFailed(e: java.lang.Exception?) {
|
||||
|
||||
}
|
||||
})
|
||||
|
||||
context?.let {
|
||||
val videoUrl:String
|
||||
val videoUrl: String
|
||||
if (AppIdentityModeUtils.isT1T2(FunctionBuildConfig.appIdentityMode)) {
|
||||
//aciv_login_bg.setImageResource(R.drawable.biz_login_bg_taxi_start)
|
||||
biz_login_svp.setBackgroundResource(R.drawable.biz_login_bg_taxi_start)
|
||||
videoUrl = "android.resource://" + it.packageName + "/" + R.raw.biz_login_taxi_bg
|
||||
}else{
|
||||
videoUrl = SkinResources.getInstance().getRawMp4FilePath(R.raw.video_biz_login_taxi_bg)
|
||||
} else {
|
||||
//aciv_login_bg.setImageResource(R.drawable.biz_login_bg_bus_start)
|
||||
biz_login_svp.setBackgroundResource(R.drawable.biz_login_bg_bus_start)
|
||||
videoUrl = "android.resource://" + it.packageName + "/" + R.raw.biz_login_bus_bg
|
||||
videoUrl = SkinResources.getInstance().getRawMp4FilePath(R.raw.video_biz_login_bus_bg)
|
||||
}
|
||||
Debuger.enable()
|
||||
|
||||
@@ -121,7 +131,8 @@ class LoginFragment : MvpFragment<LoginFragment?, LoginPresenter?>(), ILoginView
|
||||
biz_login_svp.enableshowProgressDialog = false
|
||||
biz_login_svp.enableDoubleClick = false
|
||||
|
||||
viewColdStart.setColdStartResultListener(object: ColdStartView.ColdStartResultListener{
|
||||
viewColdStart.setColdStartResultListener(object :
|
||||
ColdStartView.ColdStartResultListener {
|
||||
override fun coldStartSuccess() {
|
||||
gsyVideoOptionBuilder.setUrl(videoUrl)
|
||||
.setCacheWithPlay(false)
|
||||
@@ -132,19 +143,25 @@ class LoginFragment : MvpFragment<LoginFragment?, LoginPresenter?>(), ILoginView
|
||||
override fun onAutoComplete(url: String?, vararg objects: Any?) {
|
||||
if (AppIdentityModeUtils.isT1T2(FunctionBuildConfig.appIdentityMode)) {
|
||||
biz_login_svp?.setBackgroundResource(R.drawable.biz_login_bg_taxi_end)
|
||||
}else{
|
||||
} else {
|
||||
biz_login_svp?.setBackgroundResource(R.drawable.biz_login_bg_bus_end)
|
||||
}
|
||||
|
||||
}
|
||||
})
|
||||
if (showLoginInfoAnimator1 == null) {
|
||||
showLoginInfoAnimator1 = ObjectAnimator.ofFloat(cl_login_info, "alpha", 0f, 1f)
|
||||
showLoginInfoAnimator1 =
|
||||
ObjectAnimator.ofFloat(cl_login_info, "alpha", 0f, 1f)
|
||||
showLoginInfoAnimator1?.interpolator = LinearInterpolator()
|
||||
}
|
||||
if (showLoginInfoAnimator2 == null) {
|
||||
val dp2px = AutoSizeUtils.dp2px(AbsMogoApplication.getApp(), -50f)
|
||||
showLoginInfoAnimator2 = ObjectAnimator.ofFloat(cl_login_info, "translationY", 0f, dp2px.toFloat())
|
||||
showLoginInfoAnimator2 = ObjectAnimator.ofFloat(
|
||||
cl_login_info,
|
||||
"translationY",
|
||||
0f,
|
||||
dp2px.toFloat()
|
||||
)
|
||||
showLoginInfoAnimator2?.interpolator = DecelerateInterpolator()
|
||||
}
|
||||
UiThreadHandler.postDelayed({
|
||||
@@ -152,7 +169,7 @@ class LoginFragment : MvpFragment<LoginFragment?, LoginPresenter?>(), ILoginView
|
||||
val animatorSet = AnimatorSet()
|
||||
animatorSet.playTogether(showLoginInfoAnimator1, showLoginInfoAnimator2)
|
||||
animatorSet.duration = 500
|
||||
animatorSet.addListener(object :AnimatorListener{
|
||||
animatorSet.addListener(object : AnimatorListener {
|
||||
override fun onAnimationStart(animation: Animator) {
|
||||
cl_login_info?.visibility = View.VISIBLE
|
||||
}
|
||||
@@ -172,7 +189,7 @@ class LoginFragment : MvpFragment<LoginFragment?, LoginPresenter?>(), ILoginView
|
||||
})
|
||||
animatorSet.start()
|
||||
}
|
||||
},2_000,UiThreadHandler.MODE.QUEUE)
|
||||
}, 2_000, UiThreadHandler.MODE.QUEUE)
|
||||
biz_login_svp.startPlayLogic()
|
||||
}
|
||||
|
||||
@@ -223,12 +240,12 @@ class LoginFragment : MvpFragment<LoginFragment?, LoginPresenter?>(), ILoginView
|
||||
}
|
||||
}
|
||||
biz_actv_login_show_sn.text = SharedPrefsMgr.getInstance().sn
|
||||
if(BuildConfig.DEBUG) {
|
||||
if (BuildConfig.DEBUG) {
|
||||
biz_actv_login_show_sn.setOnLongClickListener {
|
||||
bv_switch_business.selectBusniess()
|
||||
true
|
||||
}
|
||||
}else{
|
||||
} else {
|
||||
biz_actv_login_show_sn.setOnLongClickListener {
|
||||
context?.let {
|
||||
ToggleDebugView.toggleDebugView.toggle(it)
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent">
|
||||
|
||||
<com.mogo.eagle.core.widget.media.video.SimpleVideoPlayer
|
||||
<com.mogo.eagle.core.widget.media.video.SkinSimpleVideoPlayer
|
||||
android:id="@+id/biz_login_svp"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
|
||||
@@ -1,8 +1,5 @@
|
||||
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
|
||||
@@ -10,20 +7,16 @@ 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.mogo.eagle.core.widget.media.video.SkinSimpleVideoPlayer
|
||||
import com.mogo.skin.utils.SkinResources
|
||||
import com.shuyu.gsyvideoplayer.builder.GSYVideoOptionBuilder
|
||||
import com.shuyu.gsyvideoplayer.listener.GSYSampleCallBack
|
||||
import com.zhjt.mogo_core_function_devatools.coldstart.ColdStartConfig
|
||||
import me.jessyan.autosize.utils.AutoSizeUtils
|
||||
|
||||
/**
|
||||
* 打开app后首次与域控链接或与域控断连1min后,需要回到界面并呈现一遍流程
|
||||
@@ -36,7 +29,7 @@ class ColdStartAgainWindow constructor(activity: Activity){
|
||||
private lateinit var mFloatLayout: View
|
||||
|
||||
private lateinit var clColdStartAgain: ConstraintLayout
|
||||
private lateinit var svpColdStart: SimpleVideoPlayer
|
||||
private lateinit var svpColdStart: SkinSimpleVideoPlayer
|
||||
private lateinit var coldStart: ColdStartView
|
||||
|
||||
private val gsyVideoOptionBuilder = GSYVideoOptionBuilder()
|
||||
@@ -53,10 +46,10 @@ class ColdStartAgainWindow constructor(activity: Activity){
|
||||
|
||||
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
|
||||
SkinResources.getInstance().getRawMp4FilePath(R.raw.video_biz_login_taxi_bg)
|
||||
}else{
|
||||
svpColdStart.setBackgroundResource(R.drawable.biz_login_bg_bus_start)
|
||||
"android.resource://" + mActivity.packageName + "/" + R.raw.biz_login_bus_bg
|
||||
SkinResources.getInstance().getRawMp4FilePath(R.raw.video_biz_login_bus_bg)
|
||||
}
|
||||
svpColdStart.setIsTouchWiget(false)
|
||||
svpColdStart.setIsTouchWigetFull(false)
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
android:layout_height="match_parent"
|
||||
android:orientation="vertical">
|
||||
|
||||
<com.mogo.eagle.core.widget.media.video.SimpleVideoPlayer
|
||||
<com.mogo.eagle.core.widget.media.video.SkinSimpleVideoPlayer
|
||||
android:id="@+id/svp_cold_start"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
|
||||
@@ -18,7 +18,7 @@ import com.shuyu.gsyvideoplayer.video.base.GSYVideoViewBridge
|
||||
*
|
||||
* 视频播放器,直播或者MP4都可支持
|
||||
*/
|
||||
class SimpleVideoPlayer : StandardGSYVideoPlayer {
|
||||
open class SimpleVideoPlayer : StandardGSYVideoPlayer {
|
||||
|
||||
companion object {
|
||||
const val PLAY_EVT_PLAY_LOADING = 1000
|
||||
|
||||
@@ -0,0 +1,45 @@
|
||||
package com.mogo.eagle.core.widget.media.video;
|
||||
|
||||
import android.content.Context;
|
||||
import android.graphics.drawable.Drawable;
|
||||
import android.util.AttributeSet;
|
||||
|
||||
import androidx.annotation.Nullable;
|
||||
|
||||
import com.mogo.skin.SkinViewSupport;
|
||||
import com.mogo.skin.utils.SkinResources;
|
||||
|
||||
/**
|
||||
* 增加了换肤功能的视频播放器
|
||||
*/
|
||||
public class SkinSimpleVideoPlayer extends SimpleVideoPlayer implements SkinViewSupport {
|
||||
// 背景图
|
||||
private int backgroundResId;
|
||||
|
||||
public SkinSimpleVideoPlayer(@Nullable Context context) {
|
||||
super(context);
|
||||
}
|
||||
|
||||
public SkinSimpleVideoPlayer(@Nullable Context context, @Nullable AttributeSet attrs) {
|
||||
super(context, attrs);
|
||||
}
|
||||
|
||||
public SkinSimpleVideoPlayer(@Nullable Context context, @Nullable Boolean fullFlag) {
|
||||
super(context, fullFlag);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setBackgroundResource(int resId) {
|
||||
backgroundResId = resId;
|
||||
Drawable backgroundRes = SkinResources.getInstance().getDrawable(backgroundResId);
|
||||
super.setBackgroundDrawable(backgroundRes);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void applySkin() {
|
||||
if (backgroundResId != 0) {
|
||||
Drawable backgroundRes = SkinResources.getInstance().getDrawable(backgroundResId);
|
||||
setBackgroundDrawable(backgroundRes);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -80,7 +80,7 @@ MOGO_LOCATION_VERSION=1.4.7.42
|
||||
# 远程通讯模块
|
||||
MOGO_TELEMATIC_VERSION=1.4.7.42
|
||||
# 动态换肤SDK
|
||||
MOGO_SKIN_VERSION=1.4.7.49.7-debug
|
||||
MOGO_SKIN_VERSION=1.4.7.49.11-debug
|
||||
######## MogoAiCloudSDK Version ########
|
||||
# 自研地图
|
||||
MAP_SDK_VERSION=3.4.1.16
|
||||
|
||||
@@ -4,8 +4,8 @@ if (!isAndroidTest) {
|
||||
apply plugin: 'bytex'
|
||||
|
||||
ByteX {
|
||||
enable true
|
||||
enableInDebug true
|
||||
enable false
|
||||
enableInDebug false
|
||||
}
|
||||
|
||||
apply from: rootProject.file('gradle/bytex/bytex_config.gradle')
|
||||
|
||||
Reference in New Issue
Block a user