[fea]
[添加本地缓存任务、车道引导、运营面板]
This commit is contained in:
yangyakun
2024-09-25 17:47:25 +08:00
parent 528b6859fb
commit a42e417af2
15 changed files with 233 additions and 28 deletions

View File

@@ -0,0 +1,48 @@
package com.mogo.och.common.module.wigets.biz
import android.content.Context
import android.util.AttributeSet
import android.view.LayoutInflater
import androidx.constraintlayout.widget.ConstraintLayout
import com.mogo.eagle.core.utilcode.kotlin.onClick
import com.mogo.och.common.module.R
import com.mogo.och.common.module.utils.ResourcesUtils
import kotlinx.android.synthetic.main.common_line_view.view.iv_toolkit_item_head
import kotlinx.android.synthetic.main.common_line_view.view.iv_toolkit_item_title
/**
*
*/
class OperationalInfoGatewayView : ConstraintLayout {
private val TAG = "LineView"
constructor(context: Context) : super(context)
constructor(context: Context, attributeSet: AttributeSet) : super(context, attributeSet)
constructor(context: Context, attributeSet: AttributeSet, defStyleAttr: Int) : super(
context,
attributeSet,
defStyleAttr
)
private fun initView() {
LayoutInflater.from(context).inflate(R.layout.common_line_view, this, true)
iv_toolkit_item_head.setImageResource(R.drawable.common_biz_operation)
iv_toolkit_item_title.text = ResourcesUtils.getString(R.string.common_operation)
}
override fun onAttachedToWindow() {
super.onAttachedToWindow()
}
init {
try {
initView()
} catch (e: Exception) {
e.printStackTrace()
}
}
}

View File

@@ -2,18 +2,22 @@ package com.mogo.och.common.module.wigets.map.drawline
import android.content.Context
import android.util.AttributeSet
import androidx.appcompat.widget.AppCompatImageView
import android.view.LayoutInflater
import androidx.constraintlayout.widget.ConstraintLayout
import androidx.lifecycle.ViewModelProvider
import androidx.lifecycle.findViewTreeViewModelStoreOwner
import com.mogo.eagle.core.utilcode.kotlin.onClick
import com.mogo.eagle.core.utilcode.util.ToastUtils
import com.mogo.och.common.module.R
import com.mogo.och.common.module.manager.autopilot.line.LineManager
import com.mogo.och.common.module.utils.ResourcesUtils
import kotlinx.android.synthetic.main.common_line_view.view.iv_toolkit_item_head
import kotlinx.android.synthetic.main.common_line_view.view.iv_toolkit_item_title
/**
*
*/
class LineView : AppCompatImageView, LineViewModel.ILineViewCallback {
class LineView : ConstraintLayout, LineViewModel.ILineViewCallback {
private val TAG = "LineView"
@@ -28,7 +32,9 @@ class LineView : AppCompatImageView, LineViewModel.ILineViewCallback {
)
private fun initView() {
setImageResource(R.drawable.common_map_line_close)
LayoutInflater.from(context).inflate(R.layout.common_line_view, this, true)
iv_toolkit_item_head.setImageResource(R.drawable.common_map_line_close)
iv_toolkit_item_title.text = ResourcesUtils.getString(R.string.common_line_info)
}
override fun onAttachedToWindow() {
@@ -62,7 +68,7 @@ class LineView : AppCompatImageView, LineViewModel.ILineViewCallback {
}
override fun setImageViewResource(name: Int) {
setImageResource(name)
iv_toolkit_item_head.setImageResource(name)
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 20 KiB

After

Width:  |  Height:  |  Size: 5.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 24 KiB

After

Width:  |  Height:  |  Size: 4.8 KiB

View File

@@ -0,0 +1,36 @@
<?xml version="1.0" encoding="utf-8"?>
<merge xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:background="@color/acc_default_txt_color"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:parentTag="androidx.constraintlayout.widget.ConstraintLayout">
<ImageView
android:id="@+id/iv_toolkit_item_head"
android:layout_width="@dimen/dp_160"
android:layout_height="@dimen/dp_160"
android:scaleType="fitXY"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent"
android:src="@drawable/common_map_line_close"
/>
<TextView
android:id="@+id/iv_toolkit_item_title"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/dp_1"
android:ellipsize="end"
android:gravity="center"
android:maxLines="2"
android:text="车道指引"
android:textColor="@color/color_FFFFFF"
android:textSize="@dimen/sp_38"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toBottomOf="@+id/iv_toolkit_item_head"/>
</merge>

View File

@@ -7,6 +7,9 @@
<string name="common_autopilot_start">START</string>
<string name="common_autopilot_fail">启动失败</string>
<string name="common_line_info">车道指引</string>
<string name="common_operation">运营看板</string>
<string name="module_och_taxi_login_title">欢迎您登录</string>
<string name="module_och_taxi_login_btn">登录</string>
<string name="module_och_taxi_login_get_code">获取验证码</string>

View File

@@ -1,5 +1,6 @@
package com.mogo.och.weaknet.ui.fragment
import android.content.Context
import android.graphics.BitmapFactory
import android.os.Bundle
import android.view.LayoutInflater
@@ -10,11 +11,14 @@ import com.mogo.commons.mvp.MvpFragment
import com.mogo.commons.storage.SharedPrefsMgr
import com.mogo.eagle.core.data.config.FunctionBuildConfig
import com.mogo.eagle.core.data.temp.EventLogout
import com.mogo.eagle.core.function.api.och.toolkit.IToolKitItemClickListener
import com.mogo.eagle.core.function.call.autopilot.CallerAutopilotRecordListenerManager
import com.mogo.eagle.core.function.call.och.CallerEagleBaseFunctionCall4OchManager
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger.d
import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant
import com.mogo.och.common.module.utils.createQRCodeWithPicture
import com.mogo.och.common.module.wigets.BindQRCodeDialog
import com.mogo.och.common.module.wigets.map.drawline.LineView
import com.mogo.och.shuttle.weaknet.R
import com.mogo.och.weaknet.ui.bizswitch.SwitchBizView
import com.mogo.och.weaknet.ui.taskrunned.RunningTaskManager
@@ -35,6 +39,11 @@ import org.greenrobot.eventbus.ThreadMode
*/
class ShuttleFragment : MvpFragment<ShuttleFragment?, BusPresenter?>() {
private val runningTaskGateWay = "RUNNINGTASKGATEWAY"
private val lineView = "LINEVIEW"
override fun getLayoutId(): Int {
return R.layout.shuttle_weak_base_fragment
}
@@ -47,6 +56,15 @@ class ShuttleFragment : MvpFragment<ShuttleFragment?, BusPresenter?>() {
context?.let {
boneContainerView.addBizView(SwitchBizView(it))
CallerEagleBaseFunctionCall4OchManager.addSingleToolKitDefaultItem(runningTaskGateWay,"本地缓存任务", R.drawable.bus_running_task_history,4)
CallerEagleBaseFunctionCall4OchManager.addToolKitDefaultItemClickListener(runningTaskGateWay,object :
IToolKitItemClickListener{
override fun onItemClick(toolTag: String, ctx: Context?) {
RunningTaskManager.showBadCaseConfigWindow(it)
}
})
CallerEagleBaseFunctionCall4OchManager.addSingleToolKitCustomItem(lineView, LineView(it),10)
}
initListener()

View File

@@ -0,0 +1,53 @@
package com.mogo.och.weaknet.ui.taskrunned
import android.content.Context
import android.util.AttributeSet
import android.view.LayoutInflater
import android.widget.ImageView
import android.widget.TextView
import androidx.constraintlayout.widget.ConstraintLayout
import com.mogo.eagle.core.utilcode.kotlin.onClick
import com.mogo.och.common.module.utils.ResourcesUtils
import com.mogo.och.shuttle.weaknet.R
/**
*
*/
class RunningTaskGatewayView : ConstraintLayout {
private val TAG = "LineView"
constructor(context: Context) : super(context)
constructor(context: Context, attributeSet: AttributeSet) : super(context, attributeSet)
constructor(context: Context, attributeSet: AttributeSet, defStyleAttr: Int) : super(
context,
attributeSet,
defStyleAttr
)
private fun initView() {
LayoutInflater.from(context).inflate(R.layout.common_line_view, this, true)
findViewById<ImageView>(R.id.iv_toolkit_item_head).setImageResource(R.drawable.bus_running_task_history)
findViewById<TextView>(R.id.iv_toolkit_item_title).text = ResourcesUtils.getString(R.string.bus_running_tasked_gateway)
}
override fun onAttachedToWindow() {
super.onAttachedToWindow()
onClick {
RunningTaskManager.showBadCaseConfigWindow(context)
}
}
init {
try {
initView()
} catch (e: Exception) {
e.printStackTrace()
}
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

View File

@@ -60,6 +60,7 @@
<string name="bus_before_tips_s">距离发车时间还有%1$s分钟</string>
<string name="bus_pingxing_driver">平行驾驶</string>
<string name="bus_running_tasked_gateway">本地缓存任务</string>
<!-- region tts -->

View File

@@ -3,6 +3,7 @@ package com.mogo.och.taxi.ui;
import static com.mogo.och.taxi.constant.TaxiConst.TIMER_START_AUTOPILOT_INTERVAL;
import android.animation.ObjectAnimator;
import android.content.Context;
import android.os.Bundle;
import android.os.Handler;
import android.os.Looper;
@@ -15,6 +16,7 @@ import android.widget.RelativeLayout;
import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.constraintlayout.widget.ConstraintLayout;
import androidx.constraintlayout.widget.Group;
import androidx.fragment.app.FragmentTransaction;
@@ -23,10 +25,12 @@ import com.mogo.commons.mvp.IView;
import com.mogo.commons.mvp.MvpFragment;
import com.mogo.commons.mvp.Presenter;
import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotStatusListener;
import com.mogo.eagle.core.function.api.och.toolkit.IToolKitItemClickListener;
import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotControlManager;
import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListenerManager;
import com.mogo.eagle.core.function.call.autopilot.CallerAutopilotRecordListenerManager;
import com.mogo.eagle.core.function.call.devatools.CallerDevaToolsManager;
import com.mogo.eagle.core.function.call.och.CallerEagleBaseFunctionCall4OchManager;
import com.mogo.eagle.core.function.hmi.map.MapContainerLayout;
import com.mogo.eagle.core.function.view.MapRoamView;
import com.mogo.eagle.core.utilcode.mogo.view.OnPreventFastClickListener;
@@ -34,11 +38,14 @@ import com.mogo.eagle.core.utilcode.util.ToastUtils;
import com.mogo.eagle.core.utilcode.util.UiThreadHandler;
import com.mogo.map.listener.IMogoMapListener;
import com.mogo.och.common.module.utils.ResourcesUtils;
import com.mogo.och.common.module.wigets.map.drawline.LineView;
import com.mogo.och.common.module.wigets.map.orderstatus.OrderStatusView;
import com.mogo.och.common.module.wigets.map.overmapview.OverMapDialog;
import com.mogo.eagle.core.function.call.hmi.CallerHmiViewControlListenerManager;
import com.mogo.och.taxi.R;
import java.lang.ref.WeakReference;
import me.jessyan.autosize.utils.AutoSizeUtils;
@@ -73,6 +80,13 @@ public abstract class BaseTaxiTabFragment<V extends IView, P extends Presenter<V
private OverMapDialog overMapDialog;
private final Handler mHandler = new Handler(Looper.getMainLooper());
private String runningTaskGateWay = "RUNNINGTASKGATEWAY";
private String lineView = "LINEVIEW";
// 查看运营情况 点击账户信息右边的箭头展示
private WeakReference<TaxiPersonalDialogFragment> personalDialogFragment = null;
@Override
protected int getLayoutId() {
return R.layout.taxi_base_fragment;
@@ -175,6 +189,19 @@ public abstract class BaseTaxiTabFragment<V extends IView, P extends Presenter<V
// overMapDialog.showDialog();
// }
// });
if(getContext()!=null){
CallerEagleBaseFunctionCall4OchManager.INSTANCE.addSingleToolKitDefaultItem(runningTaskGateWay,"运营面板", R.drawable.common_biz_operation,4);
CallerEagleBaseFunctionCall4OchManager.INSTANCE.addToolKitDefaultItemClickListener(runningTaskGateWay,new IToolKitItemClickListener() {
@Override
public void onItemClick(@NonNull String toolTag, @Nullable Context ctx) {
personalDialogFragment = new WeakReference<>(new TaxiPersonalDialogFragment());
personalDialogFragment.get().show(getActivity().getSupportFragmentManager(), "service_data");
}
});
CallerEagleBaseFunctionCall4OchManager.INSTANCE.addSingleToolKitCustomItem(lineView, new LineView(getContext()),10);
}
}
@Override

View File

@@ -60,8 +60,6 @@ public class TaxiFragment extends BaseTaxiTabFragment<TaxiFragment, TaxiPresente
// 待服务信息
private WeakReference<TaxiServerOrdersFragment> serverOrdersFragmentWR;
// 查看运营情况 点击账户信息右边的箭头展示
private WeakReference<TaxiPersonalDialogFragment> personalDialogFragment = null;
@Override
public void onActivityCreated(@Nullable Bundle savedInstanceState) {
@@ -366,16 +364,12 @@ public class TaxiFragment extends BaseTaxiTabFragment<TaxiFragment, TaxiPresente
@Subscribe(threadMode = ThreadMode.MAIN)
public void openOperationalInfoView(EventLogout eventLogout){
if (eventLogout.getMessgae() == EventLogout.PERSONAL_TYPE){
CallerLogger.d(M_TAXI + TAG,"openOperationalInfoView Event个人中心");
openOperationalInfoView();
}
// if (eventLogout.getMessgae() == EventLogout.PERSONAL_TYPE){
// CallerLogger.d(M_TAXI + TAG,"openOperationalInfoView Event个人中心");
// openOperationalInfoView();
// }
}
private void openOperationalInfoView(){
personalDialogFragment = new WeakReference<>(new TaxiPersonalDialogFragment());
personalDialogFragment.get().show(getActivity().getSupportFragmentManager(), "service_data");
}
private void testRouteInfoUpload() {
TPRouteDataTestUtils.converToRouteData();

View File

@@ -2,6 +2,7 @@ package com.mogo.och.unmanned.taxi.ui.base
import android.animation.ObjectAnimator
import android.annotation.SuppressLint
import android.content.Context
import android.content.Intent
import android.os.Bundle
import android.view.LayoutInflater
@@ -16,11 +17,13 @@ import com.mogo.commons.mvp.MvpFragment
import com.mogo.commons.mvp.Presenter
import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotRecordListener
import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotStatusListener
import com.mogo.eagle.core.function.api.och.toolkit.IToolKitItemClickListener
import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotControlManager
import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListenerManager.getState
import com.mogo.eagle.core.function.call.autopilot.CallerAutopilotRecordListenerManager
import com.mogo.eagle.core.function.call.devatools.CallerDevaToolsManager
import com.mogo.eagle.core.function.call.hmi.CallerHmiViewControlListenerManager
import com.mogo.eagle.core.function.call.och.CallerEagleBaseFunctionCall4OchManager
import com.mogo.eagle.core.function.hmi.ui.widget.ParallelDriveView
import com.mogo.eagle.core.utilcode.kotlin.onClick
import com.mogo.eagle.core.utilcode.mogo.view.OnPreventFastClickListener
@@ -29,6 +32,7 @@ import com.mogo.eagle.core.utilcode.util.UiThreadHandler
import com.mogo.map.listener.IMogoMapListener
import com.mogo.map.uicontroller.VisualAngleMode
import com.mogo.och.common.module.wigets.StartAutopilotAnimationView
import com.mogo.och.common.module.wigets.map.drawline.LineView
import com.mogo.och.common.module.wigets.map.overmapview.OverMapDialog
import com.mogo.och.unmanned.taxi.R
import com.mogo.och.unmanned.taxi.constant.TaxiUnmannedConst
@@ -36,6 +40,7 @@ import com.mogo.och.unmanned.taxi.constant.TaxiUnmannedConst.Companion.START_AUT
import com.mogo.och.unmanned.taxi.ui.debug.DebugView
import com.mogo.och.unmanned.taxi.ui.navi.amap.TaxiAmapNaviFragment
import com.mogo.och.unmanned.taxi.ui.navi.auto.TaxiRoutingNaviFragment
import com.mogo.och.unmanned.taxi.ui.operational.TaxiOperationalDialogFragment
import kotlinx.android.synthetic.main.unmanned_taxi_base_fragment.aciv_show_guid
import kotlinx.android.synthetic.main.unmanned_taxi_base_fragment.groupTestPanel
import kotlinx.android.synthetic.main.unmanned_taxi_base_fragment.mapBizView
@@ -50,6 +55,8 @@ import kotlinx.android.synthetic.main.unmanned_taxi_base_fragment.parallelDriveV
import kotlinx.android.synthetic.main.unmanned_taxi_base_fragment.smallMapView
import kotlinx.android.synthetic.main.unmanned_taxi_base_fragment.startAutopilotAnimationView
import kotlinx.android.synthetic.main.unmanned_taxi_base_fragment.taxi_close_navi_icon
import java.lang.ref.WeakReference
/**
* @author: wangmingjun
* @date: 2023/7/24
@@ -70,6 +77,12 @@ abstract class BaseTaxiTabFragment<V : IView, P : Presenter<V>> : MvpFragment<V,
private var overMapDialog: OverMapDialog? = null
private val runningTaskGateWay = "RUNNINGTASKGATEWAY"
private val lineView = "LINEVIEW"
private var personalDialogFragment: WeakReference<TaxiOperationalDialogFragment>? = null
override fun getLayoutId(): Int {
return R.layout.unmanned_taxi_base_fragment
}
@@ -184,6 +197,20 @@ abstract class BaseTaxiTabFragment<V : IView, P : Presenter<V>> : MvpFragment<V,
overMapDialog?.showDialog()
}
}
context?.let {
CallerEagleBaseFunctionCall4OchManager.addSingleToolKitDefaultItem(runningTaskGateWay,"运营面板", R.drawable.common_biz_operation,4);
CallerEagleBaseFunctionCall4OchManager.addToolKitDefaultItemClickListener(runningTaskGateWay,object :
IToolKitItemClickListener {
override fun onItemClick(toolTag: String, ctx: Context?) {
personalDialogFragment = WeakReference(TaxiOperationalDialogFragment())
activity?.supportFragmentManager?.let {
personalDialogFragment!!.get()
?.show(it, "service_data")
}
}
});
CallerEagleBaseFunctionCall4OchManager.addSingleToolKitCustomItem(lineView, LineView(it),10);
}
}
abstract fun stopAutoStartAutopilot()

View File

@@ -46,7 +46,7 @@ class TaxiFragment : BaseTaxiTabFragment<TaxiFragment, TaxiPresenter>(),
}
private var taskTabFragment: WeakReference<TaxiTaskTabFragment>? = null
private var personalDialogFragment: WeakReference<TaxiOperationalDialogFragment>? = null
private var routingVerifyFragment: WeakReference<TaxiRoutingFragment>? = null
private var moFanglistener: IMogoStatusChangedListener? = object :IMogoStatusChangedListener{
@@ -76,19 +76,11 @@ class TaxiFragment : BaseTaxiTabFragment<TaxiFragment, TaxiPresenter>(),
@Subscribe(threadMode = ThreadMode.MAIN)
fun openOperationalInfoView(eventLogout: EventLogout) {
// V6.2.0 增加订单统计功能
if (eventLogout.messgae == EventLogout.PERSONAL_TYPE) {
// 个人信息, 运营数据在无人化阶段暂时不展示
d(SceneConstant.M_TAXI + TAG, "openOperationalInfoView Event个人中心")
openOperationalInfoView()
}
}
private fun openOperationalInfoView() {
personalDialogFragment = WeakReference(TaxiOperationalDialogFragment())
activity?.supportFragmentManager?.let {
personalDialogFragment!!.get()
?.show(it, "service_data")
}
// if (eventLogout.messgae == EventLogout.PERSONAL_TYPE) {
//// 个人信息, 运营数据在无人化阶段暂时不展示
// d(SceneConstant.M_TAXI + TAG, "openOperationalInfoView Event个人中心")
// openOperationalInfoView()
// }
}
override fun getTagName(): String {