[fea]
[unmanned]
This commit is contained in:
yangyakun
2024-10-08 16:05:11 +08:00
parent 48884e6d8f
commit 9471a4bf3a
19 changed files with 204 additions and 26 deletions

View File

@@ -1,4 +1,4 @@
package com.mogo.och.weaknet.view
package com.mogo.och.common.module.wigets.loading
import android.animation.ObjectAnimator
import android.content.Context
@@ -9,9 +9,9 @@ import androidx.constraintlayout.widget.ConstraintLayout
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger
import com.mogo.eagle.core.utilcode.util.ThreadUtils
import com.mogo.map.listener.IMogoMapListener
import com.mogo.och.shuttle.weaknet.R
import kotlinx.android.synthetic.main.shuttle_weak_loading_view.view.actv_loading_text
import kotlinx.android.synthetic.main.shuttle_weak_loading_view.view.loading_view
import com.mogo.och.common.module.R
import kotlinx.android.synthetic.main.common_loading_view_big.view.actv_loading_text_big
import kotlinx.android.synthetic.main.common_loading_view_big.view.loading_view_big
class LoadingViewBig @JvmOverloads constructor(
context: Context,
@@ -25,14 +25,14 @@ class LoadingViewBig @JvmOverloads constructor(
private var autopilotLoadingAnimator: ObjectAnimator? = null
init {
LayoutInflater.from(context).inflate(R.layout.shuttle_weak_loading_view, this, true)
LayoutInflater.from(context).inflate(R.layout.common_loading_view_big, this, true)
}
override fun onAttachedToWindow() {
super.onAttachedToWindow()
CallerLogger.d(TAG,"onAttachedToWindow")
if (autopilotLoadingAnimator == null) {
autopilotLoadingAnimator = ObjectAnimator.ofFloat(loading_view, "rotation", 0f, 360f)
autopilotLoadingAnimator = ObjectAnimator.ofFloat(loading_view_big, "rotation", 0f, 360f)
autopilotLoadingAnimator?.setInterpolator(LinearInterpolator())
autopilotLoadingAnimator?.setRepeatCount(-1) //无限循环
autopilotLoadingAnimator?.setDuration(1000) //设置持续时间
@@ -50,10 +50,10 @@ class LoadingViewBig @JvmOverloads constructor(
fun setEmptyText(text:CharSequence){
if (ThreadUtils.isMainThread()) {
actv_loading_text.text = text
actv_loading_text_big.text = text
}else{
ThreadUtils.runOnUiThread( {
actv_loading_text.text = text
actv_loading_text_big.text = text
},ThreadUtils.MODE.QUEUE)
}
}

View File

@@ -1,4 +1,4 @@
package com.mogo.och.weaknet.view
package com.mogo.och.common.module.wigets.loading
import android.animation.ObjectAnimator
import android.content.Context
@@ -8,8 +8,8 @@ import android.view.animation.LinearInterpolator
import androidx.constraintlayout.widget.ConstraintLayout
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger
import com.mogo.map.listener.IMogoMapListener
import com.mogo.och.shuttle.weaknet.R
import kotlinx.android.synthetic.main.shuttle_weak_loading_view_samll.view.loading_view_samll
import com.mogo.och.common.module.R
import kotlinx.android.synthetic.main.common_loading_view_samll.view.loading_view_samll
class LoadingViewSmall @JvmOverloads constructor(
context: Context,
@@ -23,7 +23,7 @@ class LoadingViewSmall @JvmOverloads constructor(
private var autopilotLoadingAnimator: ObjectAnimator? = null
init {
LayoutInflater.from(context).inflate(R.layout.shuttle_weak_loading_view_samll, this, true)
LayoutInflater.from(context).inflate(R.layout.common_loading_view_samll, this, true)
}
override fun onAttachedToWindow() {

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.5 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

View File

@@ -2,5 +2,5 @@
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<corners android:radius="@dimen/dp_50"/>
<solid android:color="@color/common_384270"/>
<solid android:color="@color/common_B3000000"/>
</shape>

View File

@@ -17,6 +17,6 @@
android:id="@+id/aciv_loading_map"
android:layout_gravity="center"
android:layout_width="@dimen/dp_136"
android:layout_height="@dimen/dp_125"
android:layout_height="@dimen/dp_136"
android:src="@drawable/common_loading_map" />
</FrameLayout>

View File

@@ -6,7 +6,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center"
tools:background="@color/bus_switch_line_bg"
tools:background="@color/common_f7151d41"
android:orientation="vertical"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
@@ -14,18 +14,18 @@
app:layout_constraintTop_toTopOf="parent">
<androidx.appcompat.widget.AppCompatImageView
android:id="@+id/loading_view"
android:id="@+id/loading_view_big"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="@dimen/dp_16"
android:src="@drawable/bus_switch_biz_loading_big" />
android:src="@drawable/common_biz_loading_big" />
<androidx.appcompat.widget.AppCompatTextView
android:id="@+id/actv_loading_text"
android:id="@+id/actv_loading_text_big"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/dp_15"
android:text="@string/bus_switch_biz_loading"
android:textColor="@color/bus_color_b3ffffff"
android:text="@string/common_biz_loading"
android:textColor="@color/common_B3FFFFFF"
android:textSize="@dimen/dp_40" />
</LinearLayout>

View File

@@ -6,4 +6,4 @@
android:layout_width="@dimen/dp_61"
android:layout_height="@dimen/dp_60"
android:layout_marginBottom="@dimen/dp_16"
android:src="@drawable/bus_switch_biz_loading_samll" />
android:src="@drawable/common_biz_loading_samll" />

View File

@@ -22,7 +22,7 @@
<color name="common_b8c2d8">#B8C2D8</color>
<color name="common_203555">#203555</color>
<color name="common_B3EFF6FF">#B3EFF6FF</color>
<color name="common_384270">#384270</color>
<color name="common_B3000000">#B3000000</color>
<color name="common_5F6582">#5F6582</color>
<color name="common_A0B3DA">#A0B3DA</color>
@@ -33,4 +33,5 @@
<color name="common_FF4E41">#FF4E41</color>
<color name="common_B3FFFFFF">#B3FFFFFF</color>
<color name="common_cccccc">#CCCCCC</color>
<color name="common_f7151d41">#F7151D41</color>
</resources>

View File

@@ -29,4 +29,6 @@
<string name="common_change2_autopilot2_manual">自动驾驶已退出,请立即接管,注意周边环境 小心驾驶</string>
<string name="common_change2_pxjs_manual">平行驾驶已退出,请立即接管,注意周边环境 小心驾驶</string>
<string name="common_biz_loading">加载中……</string>
</resources>

View File

@@ -71,9 +71,9 @@
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintBottom_toBottomOf="parent" />
<com.mogo.och.weaknet.view.LoadingViewSmall
<com.mogo.och.common.module.wigets.loading.LoadingViewSmall
android:id="@+id/loading_start_line"
android:src="@drawable/bus_switch_biz_loading_samll"
android:src="@drawable/common_biz_loading_samll"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"

View File

@@ -80,9 +80,9 @@
android:layout_width="@dimen/dp_474"
android:layout_height="@dimen/dp_120"/>
<com.mogo.och.weaknet.view.LoadingViewSmall
<com.mogo.och.common.module.wigets.loading.LoadingViewSmall
android:id="@+id/loading_arrive_station"
android:src="@drawable/bus_switch_biz_loading_samll"
android:src="@drawable/common_biz_loading_samll"
app:layout_constraintTop_toTopOf="@+id/actv_arriver_station"
app:layout_constraintBottom_toBottomOf="@+id/actv_arriver_station"
app:layout_constraintEnd_toEndOf="@+id/actv_arriver_station"

View File

@@ -1,6 +1,7 @@
package com.mogo.och.unmanned.taxi
import android.content.Context
import android.view.View
import androidx.fragment.app.Fragment
import com.alibaba.android.arouter.facade.annotation.Route
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger
@@ -9,6 +10,7 @@ import com.mogo.och.common.module.constant.OchCommonConst
import com.mogo.och.common.module.biz.provider.CommonServiceImpl
import com.mogo.och.common.module.manager.autopilot.autopilot.OchAutopilotAnalytics
import com.mogo.och.unmanned.taxi.ui.base.TaxiFragment
import com.mogo.och.unmanned.taxi.ui.bizswitch.SwitchBizView
import com.mogo.och.unmanned.taxi.utils.TaxiAnalyticsManager
/**
@@ -42,4 +44,11 @@ class TaxiUnmannedDriverProvider : CommonServiceImpl() {
OchAutopilotAnalytics.ochEventKey = null
ochTaxiFragment = null
}
override fun createOchBusinessView(context: Context?): View? {
return context?.let {
SwitchBizView(it)
}
}
}

View File

@@ -0,0 +1,101 @@
package com.mogo.och.unmanned.taxi.ui.bizswitch
import android.content.Context
import android.util.AttributeSet
import android.view.LayoutInflater
import androidx.lifecycle.ViewModelProvider
import androidx.lifecycle.findViewTreeViewModelStoreOwner
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger
import com.mogo.eagle.core.utilcode.util.ThreadUtils
import com.mogo.och.common.module.utils.ResourcesUtils
import com.mogo.och.common.module.wigets.WindowRelativeLayout
import com.mogo.och.unmanned.taxi.R
import kotlinx.android.synthetic.main.unmanned_switch_biz.view.loading_biz
class SwitchBizView: WindowRelativeLayout, SwtichBizeModel.SwtichLineViewCallback {
constructor(context: Context?) : super(context)
constructor(context: Context?, attributeSet: AttributeSet) : super(context, attributeSet)
constructor(context: Context?, attributeSet: AttributeSet, defStyleAttr: Int) : super(context, attributeSet, defStyleAttr)
constructor(context: Context?, attributeSet: AttributeSet, defStyleAttr: Int, defStyleRes: Int) : super(context, attributeSet, defStyleAttr, defStyleRes)
companion object {
const val TAG = "SwitchBizView"
}
private var viewModel: SwtichBizeModel?=null
init {
LayoutInflater.from(context).inflate(R.layout.unmanned_switch_biz, this, true)
initView()
}
private fun initView(){
loading_biz.setEmptyText(ResourcesUtils.getString(R.string.common_biz_loading))
}
override fun onAttachedToWindow() {
super.onAttachedToWindow()
viewModel = findViewTreeViewModelStoreOwner()?.let {
ViewModelProvider(it).get(SwtichBizeModel::class.java)
}
viewModel?.setDistanceCallback(this)
}
var startLoading = System.currentTimeMillis()
// 展示loading页面
override fun showLoadingView(){
startLoading = System.currentTimeMillis()
loading_biz.visibility = VISIBLE
}
/**
* 初始化数据
*/
override fun loadLineData() {
}
// 展示选择任务页面
override fun showSwitchTaskInfo() {
val endLoading = System.currentTimeMillis()
val dex = (100-(endLoading - startLoading)).takeIf { it>=0 }?:0
CallerLogger.d(TAG,"展示任务 lading 展示了 ${dex}毫秒")
ThreadUtils.runOnUiThreadDelayed({
loading_biz.visibility = GONE
},dex,ThreadUtils.MODE.QUEUE)
}
// 展示选择线路页面
override fun showSwtichLineView() {
val endLoading = System.currentTimeMillis()
val dex = (100-(endLoading - startLoading)).takeIf { it>=0 }?:0
CallerLogger.d(TAG,"展示线路 lading 展示了 ${dex}毫秒")
ThreadUtils.runOnUiThreadDelayed({
loading_biz.visibility = GONE
},dex,ThreadUtils.MODE.QUEUE)
}
// 展示正在进行的任务
override fun loadRunningTask() {
val endLoading = System.currentTimeMillis()
val dex = (100-(endLoading - startLoading)).takeIf { it>=0 }?:0
CallerLogger.d(TAG,"展示运行中任务 lading 展示了 ${dex}毫秒")
ThreadUtils.runOnUiThreadDelayed({
loading_biz.visibility = GONE
},dex,ThreadUtils.MODE.QUEUE)
}
}

View File

@@ -0,0 +1,34 @@
package com.mogo.och.unmanned.taxi.ui.bizswitch
import androidx.lifecycle.ViewModel
/**
* @author XuXinChao
* @description BadCase录包管理页面
* @since: 2022/12/15
*/
class SwtichBizeModel : ViewModel() {
private val TAG = SwtichBizeModel::class.java.simpleName
private var viewCallback: SwtichLineViewCallback? = null
override fun onCleared() {
}
fun setDistanceCallback(viewCallback: SwtichLineViewCallback) {
this.viewCallback = viewCallback
this.viewCallback?.showLoadingView()
}
interface SwtichLineViewCallback {
fun showSwtichLineView()
fun showLoadingView()
fun showSwitchTaskInfo()
fun loadLineData()
fun loadRunningTask()
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 355 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

View File

@@ -0,0 +1,31 @@
<?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:layout_width="@dimen/dp_962"
android:layout_height="@dimen/dp_1047"
xmlns:tools="http://schemas.android.com/tools"
android:background="@drawable/taxi_biz_bg">
<androidx.appcompat.widget.AppCompatImageView
android:src="@drawable/taxi_biz_bg_header"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent"
android:layout_marginTop="@dimen/dp_20"
android:layout_marginEnd="@dimen/dp_42"
android:layout_width="@dimen/dp_856"
android:layout_height="@dimen/dp_100"/>
<com.mogo.och.common.module.wigets.loading.LoadingViewBig
android:id="@+id/loading_biz"
android:visibility="gone"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
</androidx.constraintlayout.widget.ConstraintLayout>