viewHolders) {
+ for (int i = viewHolders.size() - 1; i >= 0; i--) {
+ viewHolders.get(i).itemView.animate().cancel();
+ }
+ }
+
+ /**
+ * {@inheritDoc}
+ *
+ * If the payload list is not empty, DefaultItemAnimator returns true.
+ * When this is the case:
+ *
+ * If you override {@link #animateChange(RecyclerView.ViewHolder, RecyclerView.ViewHolder, int, int, int, int)}, both
+ * ViewHolder arguments will be the same instance.
+ *
+ *
+ * If you are not overriding {@link #animateChange(RecyclerView.ViewHolder, RecyclerView.ViewHolder, int, int, int, int)},
+ * then DefaultItemAnimator will call {@link #animateMove(RecyclerView.ViewHolder, int, int, int, int)} and
+ * run a move animation instead.
+ *
+ *
+ */
+ @Override
+ public boolean canReuseUpdatedViewHolder(@NonNull RecyclerView.ViewHolder viewHolder,
+ @NonNull List payloads) {
+ return !payloads.isEmpty() || super.canReuseUpdatedViewHolder(viewHolder, payloads);
+ }
+}
\ No newline at end of file
diff --git a/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/ui/adapter/SwitchLineAdapter.kt b/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/ui/adapter/SwitchLineAdapter.kt
new file mode 100644
index 0000000000..44d5a0fe25
--- /dev/null
+++ b/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/ui/adapter/SwitchLineAdapter.kt
@@ -0,0 +1,157 @@
+package com.mogo.och.bus.ui.adapter
+
+import android.content.Context
+import android.view.LayoutInflater
+import android.view.View
+import android.view.ViewGroup
+import android.widget.ImageView
+import androidx.appcompat.widget.AppCompatTextView
+import androidx.recyclerview.widget.GridLayoutManager
+import androidx.recyclerview.widget.RecyclerView
+import com.mogo.och.bus.R
+import com.mogo.och.bus.bean.BusQueryLinesResponse
+import com.mogo.och.bus.ui.adapter.SwitchLineAdapter.SwitchLineViewHolder
+
+/**
+ * 路线列表adapter
+ */
+class SwitchLineAdapter(
+ private val mContext: Context,
+ private val mData: List
+) : RecyclerView.Adapter() {
+ companion object{
+ const val TAG = "SwitchLineAdapter"
+ }
+ // RecyclerView设置点击事件
+ private var mItemClickListener: LineItemClickListener? = null
+ var checkLineId:Int = -1
+ var checkTaskId:Int = -1
+ override fun onCreateViewHolder(
+ parent: ViewGroup,
+ viewType: Int
+ ): SwitchLineViewHolder {
+ val view = LayoutInflater.from(mContext).inflate(
+ R.layout.bus_switch_line_list_item, parent, false
+ )
+ return SwitchLineViewHolder(view)
+ }
+
+ override fun onBindViewHolder(holder: SwitchLineViewHolder, position: Int) {
+ val currentPosition = holder.bindingAdapterPosition
+ val line = mData[currentPosition]
+ holder.lineName.text = line.name
+ holder.lineEndName.text = mContext.getString(R.string.bus_line_goto_end, line.endSiteName)
+ holder.rvLineTask.layoutManager = GridLayoutManager(mContext, 3)
+ val switchLineTaskAdapter = SwitchLineTaskAdapter(
+ mContext,
+ checkTaskId,
+ line.taskList,
+ object : SwitchLineTaskAdapter.TaskItemClickListener {
+ override fun onItemClick(position: Int,isCheck:Boolean) {
+ if(isCheck) {
+ checkLineId = line.lineId
+ checkTaskId = line.taskList[position].id
+ }else{
+ checkLineId=-1
+ checkTaskId=-1
+ }
+ }
+ })
+ holder.rvLineTask.adapter = switchLineTaskAdapter
+ holder.rvLineTask.isFocusableInTouchMode = false
+ holder.actvShowMore.visibility = View.VISIBLE
+
+ if(line.open){
+ if(line.taskList==null||line.taskList.isEmpty()){
+ holder.actvShowMore.text = mContext.getString(R.string.bus_switch_line_no_task)
+ holder.vLineTask.visibility = View.GONE
+ holder.rvLineTask.visibility = View.GONE
+ holder.selectIv.visibility = View.INVISIBLE
+ holder.itemView.setBackgroundResource(R.drawable.bus_shape_select_line_item_bg_normal)
+ }else {
+ holder.actvShowMore.text = mContext.getString(R.string.bus_switch_line_select_task)
+ holder.vLineTask.visibility = View.VISIBLE
+ holder.rvLineTask.visibility = View.VISIBLE
+ holder.selectIv.visibility = View.VISIBLE
+ holder.itemView.setBackgroundResource(R.drawable.bus_shape_select_line_item_bg_selected)
+ holder.selectIv.apply {
+ pivotX = 9.5f
+ pivotY = 17f
+ rotation = 90f
+ }
+ }
+ }else{
+ if(line.haveTask){
+ holder.actvShowMore.text = mContext.getString(R.string.bus_switch_line_no_task)
+ holder.vLineTask.visibility = View.GONE
+ holder.rvLineTask.visibility = View.GONE
+ holder.selectIv.visibility = View.INVISIBLE
+ holder.itemView.setBackgroundResource(R.drawable.bus_shape_select_line_item_bg_normal)
+ }else {
+ holder.actvShowMore.text = mContext.getString(R.string.bus_switch_line_select_task)
+ holder.vLineTask.visibility = View.GONE
+ holder.rvLineTask.visibility = View.GONE
+ holder.selectIv.visibility = View.VISIBLE
+ holder.itemView.setBackgroundResource(R.drawable.bus_shape_select_line_item_bg_normal)
+ holder.selectIv.apply {
+ pivotX = 9.5f
+ pivotY = 17f
+ rotation = 0f
+ }
+ }
+ }
+
+
+ //设置item点击事件
+ holder.itemView.setOnClickListener {
+ if(holder.actvShowMore.text==mContext.getString(R.string.bus_switch_line_no_task)){
+ return@setOnClickListener
+ }
+ mData.forEachIndexed { index, result ->
+ if(result.open){
+ result.open = false;
+ notifyItemChanged(index)
+ if(result.taskList!=null) {
+ result.taskList.clear()
+ }
+ if(index==currentPosition){// 点击当前已经打开的item 去关闭定时网络请求
+ mItemClickListener?.onItemClick(currentPosition,true)
+ return@setOnClickListener
+ }
+ }
+ }
+ mItemClickListener?.onItemClick(currentPosition,false)
+ line.open = holder.rvLineTask.visibility == View.GONE
+ }
+ }
+
+ override fun getItemCount(): Int {
+ return mData.size
+ }
+
+ fun setOnLineItemClickListener(itemClickListener: LineItemClickListener?) {
+ mItemClickListener = itemClickListener
+ }
+
+ class SwitchLineViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) {
+ val selectIv: ImageView
+ val lineName: AppCompatTextView//线路名称
+ val lineEndName: AppCompatTextView //终点
+ val actvShowMore: AppCompatTextView //选择时间
+ val rvLineTask: RecyclerView// 排班时间
+ val vLineTask: View// 白色分割线
+
+ init {
+ selectIv = itemView.findViewById(R.id.switch_line_item_select_iv)
+ lineName = itemView.findViewById(R.id.switch_line_name)
+ lineEndName = itemView.findViewById(R.id.switch_line_end_station)
+ rvLineTask = itemView.findViewById(R.id.rv_line_task_list)
+ vLineTask = itemView.findViewById(R.id.v_line_task)
+ actvShowMore = itemView.findViewById(R.id.actv_show_more)
+ }
+ }
+
+ interface LineItemClickListener {
+ fun onItemClick(position: Int,close:Boolean)
+ }
+}
\ No newline at end of file
diff --git a/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/ui/adapter/SwitchLineTaskAdapter.kt b/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/ui/adapter/SwitchLineTaskAdapter.kt
new file mode 100644
index 0000000000..8183e0efd4
--- /dev/null
+++ b/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/ui/adapter/SwitchLineTaskAdapter.kt
@@ -0,0 +1,76 @@
+package com.mogo.och.bus.ui.adapter
+
+import android.content.Context
+import android.view.LayoutInflater
+import android.view.View
+import android.view.ViewGroup
+import android.widget.TextView
+import androidx.recyclerview.widget.RecyclerView
+import com.mogo.eagle.core.utilcode.util.TimeUtils
+import com.mogo.och.bus.R
+import com.mogo.och.bus.bean.BusQueryLineTaskResponse
+import com.mogo.och.bus.ui.adapter.SwitchLineTaskAdapter.SwitchLineTaskViewHolder
+
+/**
+ * 路线列表adapter
+ */
+class SwitchLineTaskAdapter(
+ private val mContext: Context,
+ private var checkTaskId:Int,
+ private val mData: List?,
+ private val mTaskItemClickListener: TaskItemClickListener?
+) : RecyclerView.Adapter() {
+ override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): SwitchLineTaskViewHolder {
+ val view = LayoutInflater.from(mContext).inflate(
+ R.layout.bus_switch_line_list_task_item, parent, false
+ )
+ return SwitchLineTaskViewHolder(view)
+ }
+
+ override fun onBindViewHolder(holder: SwitchLineTaskViewHolder, position: Int) {
+ val currentPosition = holder.bindingAdapterPosition
+ val task = mData!![currentPosition]
+ val taskStartTime = TimeUtils.millis2String(task.taskStartTime, "HH:mm")
+ holder.lineTask.text = taskStartTime
+ if(checkTaskId==task.id){
+ holder.lineTask.setBackgroundResource(R.drawable.bus_shape_select_line_item_time_bg_selected)
+ }else{
+ holder.lineTask.setBackgroundResource(R.drawable.bus_shape_select_line_item_time_bg)
+ }
+ holder.lineTask.setOnClickListener {
+ if(checkTaskId==task.id){
+ checkTaskId = -1
+ mTaskItemClickListener?.onItemClick(currentPosition,false)
+ }else {
+ resetOther()
+ checkTaskId = task.id
+ mTaskItemClickListener?.onItemClick(currentPosition,true)
+ }
+ notifyItemChanged(currentPosition)
+ }
+ }
+
+ private fun resetOther() {
+ mData?.forEachIndexed { index, result ->
+ if(result.id==checkTaskId){
+ checkTaskId = -1
+ notifyItemChanged(index)
+ }
+ }
+ }
+
+ override fun getItemCount(): Int {
+ return mData?.size ?: 0
+ }
+
+ class SwitchLineTaskViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) {
+ val lineTask: TextView // 时间
+ init {
+ lineTask = itemView.findViewById(R.id.actv_line_task)
+ }
+ }
+
+ interface TaskItemClickListener {
+ fun onItemClick(position: Int,isCheck:Boolean)
+ }
+}
\ No newline at end of file
diff --git a/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/util/BusTrajectoryManager.java b/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/util/BusTrajectoryManager.java
index 85654e2853..94ad2be2d1 100644
--- a/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/util/BusTrajectoryManager.java
+++ b/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/util/BusTrajectoryManager.java
@@ -6,10 +6,10 @@ import com.mogo.eagle.core.data.autopilot.AutopilotControlParameters;
import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotManager;
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger;
import com.mogo.eagle.core.utilcode.util.GsonUtils;
-import com.mogo.eagle.core.utilcode.util.ToastUtils;
import com.mogo.och.bus.bean.BusRoutesResult;
import com.mogo.och.bus.constant.BusConst;
import com.mogo.och.bus.model.BusOrderModel;
+import com.zhidao.socket.utils.LoginStatusUtil;
import java.util.concurrent.TimeUnit;
@@ -50,7 +50,7 @@ public class BusTrajectoryManager {
*/
public void syncTrajectoryInfo() {
BusRoutesResult routesResult = BusOrderModel.getInstance().getBusRoutesResult();
- if (BusOrderModel.getInstance().isWorking() && routesResult != null
+ if (LoginStatusUtil.isLogin() && routesResult != null
&& BusOrderModel.getInstance().getCurrentStationIndex() == 0
&& !BusOrderModel.getInstance().isGoingToNextStation()) {
CallerLogger.INSTANCE.d(M_BUS + TAG, "syncTrajectoryInfo() start.");
diff --git a/OCH/mogo-och-bus/src/main/res/drawable-xhdpi/bus_line_task_arrow.png b/OCH/mogo-och-bus/src/main/res/drawable-xhdpi/bus_line_task_arrow.png
new file mode 100644
index 0000000000..b32f0693a6
Binary files /dev/null and b/OCH/mogo-och-bus/src/main/res/drawable-xhdpi/bus_line_task_arrow.png differ
diff --git a/OCH/mogo-och-bus/src/main/res/drawable/bus_shape_select_line_item_bg_normal.xml b/OCH/mogo-och-bus/src/main/res/drawable/bus_shape_select_line_item_bg_normal.xml
new file mode 100644
index 0000000000..272e718cce
--- /dev/null
+++ b/OCH/mogo-och-bus/src/main/res/drawable/bus_shape_select_line_item_bg_normal.xml
@@ -0,0 +1,7 @@
+
+
+
+
\ No newline at end of file
diff --git a/OCH/mogo-och-bus/src/main/res/drawable/bus_shape_select_line_item_bg_selected.xml b/OCH/mogo-och-bus/src/main/res/drawable/bus_shape_select_line_item_bg_selected.xml
new file mode 100644
index 0000000000..e5faafb27b
--- /dev/null
+++ b/OCH/mogo-och-bus/src/main/res/drawable/bus_shape_select_line_item_bg_selected.xml
@@ -0,0 +1,7 @@
+
+
+
+
\ No newline at end of file
diff --git a/OCH/mogo-och-bus/src/main/res/drawable/bus_shape_select_line_item_time_bg.xml b/OCH/mogo-och-bus/src/main/res/drawable/bus_shape_select_line_item_time_bg.xml
new file mode 100644
index 0000000000..ee8088637c
--- /dev/null
+++ b/OCH/mogo-och-bus/src/main/res/drawable/bus_shape_select_line_item_time_bg.xml
@@ -0,0 +1,7 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/OCH/mogo-och-bus/src/main/res/drawable/bus_shape_select_line_item_time_bg_selected.xml b/OCH/mogo-och-bus/src/main/res/drawable/bus_shape_select_line_item_time_bg_selected.xml
new file mode 100644
index 0000000000..e2b482ee5f
--- /dev/null
+++ b/OCH/mogo-och-bus/src/main/res/drawable/bus_shape_select_line_item_time_bg_selected.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/OCH/mogo-och-bus/src/main/res/drawable/bus_switch_line_btn_commit.xml b/OCH/mogo-och-bus/src/main/res/drawable/bus_switch_line_btn_commit.xml
index 324b9ece10..43f6d7af60 100644
--- a/OCH/mogo-och-bus/src/main/res/drawable/bus_switch_line_btn_commit.xml
+++ b/OCH/mogo-och-bus/src/main/res/drawable/bus_switch_line_btn_commit.xml
@@ -1,16 +1,10 @@
-
- -
-
-
-
-
-
-
-
-
-
\ No newline at end of file
+
+
+
+
\ No newline at end of file
diff --git a/OCH/mogo-och-bus/src/main/res/drawable/bus_switch_line_btn_un_commit.xml b/OCH/mogo-och-bus/src/main/res/drawable/bus_switch_line_btn_un_commit.xml
deleted file mode 100644
index d0ea7fa041..0000000000
--- a/OCH/mogo-och-bus/src/main/res/drawable/bus_switch_line_btn_un_commit.xml
+++ /dev/null
@@ -1,16 +0,0 @@
-
-
- -
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/OCH/mogo-och-bus/src/main/res/layout/activity_bus_switch_line.xml b/OCH/mogo-och-bus/src/main/res/layout/activity_bus_switch_line.xml
index 91d2b5134d..e5d7b2d7f5 100644
--- a/OCH/mogo-och-bus/src/main/res/layout/activity_bus_switch_line.xml
+++ b/OCH/mogo-och-bus/src/main/res/layout/activity_bus_switch_line.xml
@@ -3,6 +3,7 @@
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
+ xmlns:tools="http://schemas.android.com/tools"
android:background="@color/bus_switch_line_bg">
+ android:background="@drawable/bus_switch_line_btn_commit"/>
+ app:layout_goneMarginTop="@dimen/module_mogo_och_station_panel_container_margin_top_no_call" />
+ android:background="@drawable/bus_shape_select_line_item_bg_normal">
+
+
+ android:layout_marginEnd="@dimen/dp_80"
+ android:background="@drawable/bus_line_task_arrow"
+ app:layout_constraintBottom_toTopOf="@+id/v_line_task"
+ app:layout_constraintEnd_toEndOf="parent"
+ app:layout_constraintTop_toTopOf="parent" />
-
+ android:textSize="@dimen/dp_46"
+ android:textStyle="bold"
+ app:layout_constraintStart_toStartOf="parent"
+ app:layout_constraintTop_toTopOf="parent"
+ tools:text="@string/bus_switch_line_name" />
-
-
-
-
-
-
-
-
-
+ app:layout_constraintBottom_toTopOf="@+id/v_line_task"
+ app:layout_constraintStart_toStartOf="@+id/switch_line_name"
+ app:layout_constraintTop_toBottomOf="@+id/switch_line_name"
+ tools:text="@string/bus_switch_line_end" />
+
+
+
+
+
\ No newline at end of file
diff --git a/OCH/mogo-och-bus/src/main/res/layout/bus_switch_line_list_task_item.xml b/OCH/mogo-och-bus/src/main/res/layout/bus_switch_line_list_task_item.xml
new file mode 100644
index 0000000000..07cb6d0eec
--- /dev/null
+++ b/OCH/mogo-och-bus/src/main/res/layout/bus_switch_line_list_task_item.xml
@@ -0,0 +1,18 @@
+
+
+
+
\ No newline at end of file
diff --git a/OCH/mogo-och-bus/src/main/res/values/colors.xml b/OCH/mogo-och-bus/src/main/res/values/colors.xml
index 90e66e5a88..137af8caff 100644
--- a/OCH/mogo-och-bus/src/main/res/values/colors.xml
+++ b/OCH/mogo-och-bus/src/main/res/values/colors.xml
@@ -45,7 +45,9 @@
#FFFFE198
#FFFF9B00
#59FFFFFF
-
+
+ #B9C3E9
+
#8E9DD4
#2B6EFF
#00FFF8
diff --git a/OCH/mogo-och-bus/src/main/res/values/strings.xml b/OCH/mogo-och-bus/src/main/res/values/strings.xml
index 0755243dd0..575d4cbd76 100644
--- a/OCH/mogo-och-bus/src/main/res/values/strings.xml
+++ b/OCH/mogo-och-bus/src/main/res/values/strings.xml
@@ -5,7 +5,9 @@
启动成功
启动失败
自动驾驶
- 路线列表
+ 任务列表
+ 暂无任务
+ 选择时间
路线:
起点:
终点:
@@ -17,6 +19,7 @@
当前车辆无路线\n请联系运营人员绑定
起点:
终点:
+ 往%1$s方向
更换路线成功
更换路线失败
diff --git a/OCH/mogo-och-bus/src/main/res/xml/bus_switch_line_list_item_scene.xml b/OCH/mogo-och-bus/src/main/res/xml/bus_switch_line_list_item_scene.xml
new file mode 100644
index 0000000000..76ec386d95
--- /dev/null
+++ b/OCH/mogo-och-bus/src/main/res/xml/bus_switch_line_list_item_scene.xml
@@ -0,0 +1,53 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/OCH/mogo-och-common-module/build.gradle b/OCH/mogo-och-common-module/build.gradle
index 1f74335527..927d871c22 100644
--- a/OCH/mogo-och-common-module/build.gradle
+++ b/OCH/mogo-och-common-module/build.gradle
@@ -1,6 +1,8 @@
apply plugin: 'com.android.library'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'
+apply plugin: 'kotlin-kapt'
+apply plugin: 'com.alibaba.arouter'
android {
compileSdkVersion 31
@@ -14,6 +16,22 @@ android {
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
consumerProguardFiles "consumer-rules.pro"
+ //ARouter apt 参数
+ kapt {
+ useBuildCache = false
+ arguments {
+ arg("AROUTER_MODULE_NAME", project.getName())
+ }
+ }
+ }
+
+ compileOptions {
+ sourceCompatibility JavaVersion.VERSION_1_8
+ targetCompatibility JavaVersion.VERSION_1_8
+ }
+
+ kotlinOptions {
+ jvmTarget = "1.8"
}
buildTypes {
@@ -34,6 +52,10 @@ dependencies {
androidTestImplementation 'androidx.test.ext:junit:1.1.1'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0'
implementation rootProject.ext.dependencies.amapnavi3dmap
+ implementation rootProject.ext.dependencies.rxandroid
+
+ implementation rootProject.ext.dependencies.arouter
+ kapt rootProject.ext.dependencies.aroutercompiler
if (Boolean.valueOf(USE_MAVEN_PACKAGE)) {
implementation rootProject.ext.dependencies.mogoutils
diff --git a/OCH/mogo-och-common-module/src/debug/java/com/mogo/och/common/module/utils/CollectionUtils.java b/OCH/mogo-och-common-module/src/debug/java/com/mogo/och/common/module/utils/CollectionUtils.java
new file mode 100644
index 0000000000..a8ae762168
--- /dev/null
+++ b/OCH/mogo-och-common-module/src/debug/java/com/mogo/och/common/module/utils/CollectionUtils.java
@@ -0,0 +1,48 @@
+package com.mogo.och.common.module.utils;
+
+import com.mogo.cloud.network.OkHttpFactory;
+
+import java.lang.reflect.Field;
+import java.util.List;
+
+import okhttp3.Interceptor;
+import okhttp3.OkHttpClient;
+
+public class CollectionUtils {
+ public static void setInterceptor(){
+ OkHttpClient okHttpClient = OkHttpFactory.Companion.getOkHttpClient();
+ List interceptors = okHttpClient.interceptors();
+ Field pro = getDeclaredField(interceptors, "list");
+ pro.setAccessible(true);
+ List modifyerList = null;
+ try {
+ modifyerList = (List) pro.get(interceptors);
+ modifyerList.add(new SimpleInterceptor());
+ } catch (IllegalAccessException e) {
+ e.printStackTrace();
+ }
+ }
+ /**
+ * 获得名为field的字段
+ * @Description:如果本身找不到去父类寻找
+ * @param object
+ * @param fieldName
+ * @return Field
+ * @author luhao
+ * @since:2019年2月26日 下午4:06:16
+ */
+ public static Field getDeclaredField(Object object, String fieldName){
+ Field field = null ;
+ Class> clazz = object.getClass() ;
+ for(; clazz != Object.class ; clazz = clazz.getSuperclass()) {
+ try {
+ field = clazz.getDeclaredField(fieldName) ;
+ return field ;
+ } catch (Exception e) {
+ //这里甚么都不要做!并且这里的异常必须这样写,不能抛出去。
+ //如果这里的异常打印或者往外抛,则就不会执行clazz = clazz.getSuperclass(),最后就不会进入到父类中了
+ }
+ }
+ return null;
+ }
+}
diff --git a/OCH/mogo-och-common-module/src/debug/java/com/mogo/och/common/module/utils/SimpleInterceptor.kt b/OCH/mogo-och-common-module/src/debug/java/com/mogo/och/common/module/utils/SimpleInterceptor.kt
new file mode 100644
index 0000000000..5bacbfe0d7
--- /dev/null
+++ b/OCH/mogo-och-common-module/src/debug/java/com/mogo/och/common/module/utils/SimpleInterceptor.kt
@@ -0,0 +1,75 @@
+package com.mogo.och.common.module.utils
+
+import android.util.Log
+import okhttp3.*
+
+class SimpleInterceptor: Interceptor {
+ var first = true;
+ override fun intercept(chain: Interceptor.Chain): Response {
+ val original = chain.request()
+ val encodedPath = original.url().encodedPath()
+ Log.e("SimpleInterceptor",original.method()+ encodedPath+original.url().encodedQuery())
+ when (encodedPath) {
+ "/autopilot-car-hailing/operation/v1/driver/bus/loginStatus" -> {
+ val builder = Response.Builder()
+ val create:ResponseBody
+ if(first) {
+ create = ResponseBody.create(
+ MediaType.parse("application/json"),
+ "{\"code\":0,\"msg\":\"\",\"data\":{\"servingStatus\":0,\"driverStatus\":1,\"orderNo\":\"12111\",\"purpose\":1,\"sn\":\"fjsdlfjslf\",\"plateNumber\":\"车牌号\",\"phone\":\"18811539480\",\"lineId\":\"线路id\",\"taskId\":\"任务id\"}}"
+ )
+ first = false
+ }else{
+ create = ResponseBody.create(
+ MediaType.parse("application/json"),
+ "{\"code\":0,\"msg\":\"\",\"data\":{\"servingStatus\":0,\"driverStatus\":0,\"orderNo\":\"12111\",\"purpose\":1,\"sn\":\"fjsdlfjslf\",\"plateNumber\":\"车牌号\",\"phone\":\"18811539480\",\"lineId\":\"线路id\",\"taskId\":\"任务id\"}}"
+ )
+ first = true
+ }
+ builder.code(200)
+ builder.request(original)
+ builder.protocol(Protocol.HTTP_1_1)
+ builder.message("")
+ return builder.body(create).build()
+ }
+ "/autopilot-car-hailing/line/v2/driver/bus/task/query" -> {
+ val builder = Response.Builder()
+ val create = ResponseBody.create(MediaType.parse("application/json"), "{\"code\":0,\"msg\":\"\",\"data\":[{\"id\":1,\"taskStartTime\":1663722000000},{\"id\":2,\"taskStartTime\":1663725600000},{\"id\":3,\"taskStartTime\":1663729200000},{\"id\":4,\"taskStartTime\":1663732800000},{\"id\":5,\"taskStartTime\":1663736400000},{\"id\":6,\"taskStartTime\":1663740000000},{\"id\":7,\"taskStartTime\":1663743600000},{\"id\":8,\"taskStartTime\":1663747200000},{\"id\":9,\"taskStartTime\":1663750800000},{\"id\":10,\"taskStartTime\":1663754400000}]}")
+ builder.code(200)
+ builder.request(original)
+ builder.protocol(Protocol.HTTP_1_1)
+ builder.message("")
+ return builder.body(create).build()
+ }
+ "/autopilot-car-hailing/cab/flow/v1/bus/driver/bus/startTask" -> {
+ val builder = Response.Builder()
+ val create = ResponseBody.create(MediaType.parse("application/json"), "{\"code\":0,\"msg\":\"\",\"data\":null}")
+ builder.code(200)
+ builder.request(original)
+ builder.protocol(Protocol.HTTP_1_1)
+ builder.message("")
+ return builder.body(create).build()
+ }
+ "/autopilot-car-hailing/cab/flow/v1/bus/driver/bus/endOperation" -> {
+ val builder = Response.Builder()
+ val create = ResponseBody.create(MediaType.parse("application/json"), "{\"code\":0,\"msg\":\"\",\"data\":null}")
+ builder.code(200)
+ builder.request(original)
+ builder.protocol(Protocol.HTTP_1_1)
+ builder.message("")
+ return builder.body(create).build()
+ }
+ "/autopilot-car-hailing/cab/flow/v1/bus/driver/bus/startOperation" -> {
+ val builder = Response.Builder()
+ val create = ResponseBody.create(MediaType.parse("application/json"), "{\"code\":0,\"msg\":\"\",\"data\":null}")
+ builder.code(200)
+ builder.request(original)
+ builder.protocol(Protocol.HTTP_1_1)
+ builder.message("")
+ return builder.body(create).build()
+ }
+ else -> {}
+ }
+ return chain.proceed(original)
+ }
+}
\ No newline at end of file
diff --git a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/bean/DriverStatusQueryRespBean.java b/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/biz/bean/DriverStatusQueryRespBean.java
similarity index 65%
rename from OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/bean/DriverStatusQueryRespBean.java
rename to OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/biz/bean/DriverStatusQueryRespBean.java
index ac630c9ecf..0b8692ae59 100644
--- a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/bean/DriverStatusQueryRespBean.java
+++ b/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/biz/bean/DriverStatusQueryRespBean.java
@@ -1,4 +1,4 @@
-package com.mogo.och.taxi.bean;
+package com.mogo.och.common.module.biz.bean;
import com.mogo.eagle.core.data.BaseData;
@@ -15,5 +15,11 @@ public class DriverStatusQueryRespBean extends BaseData {
public int driverStatus; //1登录,0登出
public String orderNo;
public int purpose; // 1 运营, 2 测试, 3演示
+
+ public String sn;
+ public String plateNumber;//车牌号
+ public String phone;//手机号
+ public Integer lineId;//线路id
+ public Integer taskId;//任务id
}
}
diff --git a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/bean/TaxiLoginReqBean.java b/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/biz/bean/TaxiLoginReqBean.java
similarity index 81%
rename from OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/bean/TaxiLoginReqBean.java
rename to OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/biz/bean/TaxiLoginReqBean.java
index 0591d3f878..ebe1fa2731 100644
--- a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/bean/TaxiLoginReqBean.java
+++ b/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/biz/bean/TaxiLoginReqBean.java
@@ -1,8 +1,8 @@
-package com.mogo.och.taxi.bean;
+package com.mogo.och.common.module.biz.bean;
/**
- * Created by pangfan on 2021/8/19
- * 司机端准备好或者乘客已验证上车请求参数
+ * Created by yangyakun on 2021/8/19
+ * 通过手机号验证码登录
*/
public class TaxiLoginReqBean {
diff --git a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/bean/TaxiLoginRespBean.java b/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/biz/bean/TaxiLoginRespBean.java
similarity index 54%
rename from OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/bean/TaxiLoginRespBean.java
rename to OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/biz/bean/TaxiLoginRespBean.java
index c1265a9be3..9cda2a96c6 100644
--- a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/bean/TaxiLoginRespBean.java
+++ b/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/biz/bean/TaxiLoginRespBean.java
@@ -1,14 +1,14 @@
-package com.mogo.och.taxi.bean;
+package com.mogo.och.common.module.biz.bean;
import com.mogo.eagle.core.data.BaseData;
/**
- * Created by pangfan on 2021/8/19
- * 司机端准备好或者乘客已验证上车请求参数
+ * Created by yangyakun on 2021/8/19
+ * 通过验证码登录
*/
public class TaxiLoginRespBean extends BaseData {
- public TaxiLoginRespBean.Result data;
+ public Result data;
public static class Result {
public Double lat;
diff --git a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/bean/TaxiLoginSmsReqBean.java b/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/biz/bean/TaxiLoginSmsReqBean.java
similarity index 54%
rename from OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/bean/TaxiLoginSmsReqBean.java
rename to OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/biz/bean/TaxiLoginSmsReqBean.java
index 3a4d4d7a4f..3c246bc153 100644
--- a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/bean/TaxiLoginSmsReqBean.java
+++ b/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/biz/bean/TaxiLoginSmsReqBean.java
@@ -1,8 +1,8 @@
-package com.mogo.och.taxi.bean;
+package com.mogo.och.common.module.biz.bean;
/**
- * Created by pangfan on 2021/8/19
- * 司机端准备好或者乘客已验证上车请求参数
+ * Created by yyk on 2021/8/19
+ * 获取验证码
*/
public class TaxiLoginSmsReqBean {
diff --git a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/bean/TaxiLogoutReqBean.java b/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/biz/bean/TaxiLogoutReqBean.java
similarity index 77%
rename from OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/bean/TaxiLogoutReqBean.java
rename to OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/biz/bean/TaxiLogoutReqBean.java
index ced9b2eddb..22e63dd838 100644
--- a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/bean/TaxiLogoutReqBean.java
+++ b/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/biz/bean/TaxiLogoutReqBean.java
@@ -1,8 +1,8 @@
-package com.mogo.och.taxi.bean;
+package com.mogo.och.common.module.biz.bean;
/**
- * Created by pangfan on 2021/8/19
- * 司机端准备好或者乘客已验证上车请求参数
+ * Created by yyk on 2021/8/19
+ * 登出请求参数
*/
public class TaxiLogoutReqBean {
public String sn;
diff --git a/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/biz/callback/ILoginCallback.java b/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/biz/callback/ILoginCallback.java
new file mode 100644
index 0000000000..481a2cd75b
--- /dev/null
+++ b/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/biz/callback/ILoginCallback.java
@@ -0,0 +1,9 @@
+package com.mogo.och.common.module.biz.callback;
+
+import com.mogo.och.common.module.biz.bean.DriverStatusQueryRespBean;
+
+public interface ILoginCallback {
+ void loginSuccess(DriverStatusQueryRespBean data);
+
+ void loginFail(boolean isLogin);
+}
diff --git a/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/biz/callback/ILoginViewCallback.kt b/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/biz/callback/ILoginViewCallback.kt
new file mode 100644
index 0000000000..033e900e77
--- /dev/null
+++ b/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/biz/callback/ILoginViewCallback.kt
@@ -0,0 +1,13 @@
+package com.mogo.och.common.module.biz.callback
+
+interface ILoginViewCallback {
+ /**
+ * 展示登录页面
+ */
+ fun showLoginDialogFragment()
+
+ /**
+ * 隐藏登录页面
+ */
+ fun hideLoginDialogFragment()
+}
\ No newline at end of file
diff --git a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/callback/ITaxiLoginCallback.java b/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/biz/callback/ITaxiLoginCallback.java
similarity index 58%
rename from OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/callback/ITaxiLoginCallback.java
rename to OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/biz/callback/ITaxiLoginCallback.java
index a8f35171cb..5cbca0d853 100644
--- a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/callback/ITaxiLoginCallback.java
+++ b/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/biz/callback/ITaxiLoginCallback.java
@@ -1,11 +1,4 @@
-package com.mogo.och.taxi.callback;
-
-import androidx.annotation.NonNull;
-
-import com.mogo.och.taxi.bean.OrderQueryRespBean;
-import com.mogo.och.taxi.bean.OrderQueryRouteInfoRespBean;
-
-import java.util.List;
+package com.mogo.och.common.module.biz.callback;
/**
* Created on 2021/9/8
diff --git a/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/biz/constant/LoginStatusManager.kt b/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/biz/constant/LoginStatusManager.kt
new file mode 100644
index 0000000000..8f290529b7
--- /dev/null
+++ b/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/biz/constant/LoginStatusManager.kt
@@ -0,0 +1,38 @@
+package com.mogo.och.common.module.biz.constant
+
+object LoginStatusManager {
+ /**
+ * 登录状态
+ */
+ private var loginStatus: TaxiLoginStatusEnum = TaxiLoginStatusEnum.None
+
+ @JvmStatic
+ fun setLoginStatus(status: Int) {
+ when (status) {
+ 0 -> {
+ this.loginStatus = TaxiLoginStatusEnum.Logout
+ }
+ 1 -> {
+ this.loginStatus = TaxiLoginStatusEnum.Login
+ }
+ else -> {
+ this.loginStatus = TaxiLoginStatusEnum.None
+ }
+ }
+ }
+ @JvmStatic
+ fun setLoginStatus(loginStatus: TaxiLoginStatusEnum) {
+ this.loginStatus = loginStatus
+ }
+ @JvmStatic
+ fun getLoginStatus(): TaxiLoginStatusEnum {
+ return loginStatus
+ }
+ @JvmStatic
+ fun isLogin():Boolean {
+ if(loginStatus== TaxiLoginStatusEnum.Login){
+ return true
+ }
+ return false
+ }
+}
\ No newline at end of file
diff --git a/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/biz/constant/OchCommonConst.kt b/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/biz/constant/OchCommonConst.kt
new file mode 100644
index 0000000000..6e1891710e
--- /dev/null
+++ b/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/biz/constant/OchCommonConst.kt
@@ -0,0 +1,30 @@
+package com.mogo.och.common.module.biz.constant
+
+import com.mogo.commons.debug.DebugConfig
+
+/**
+ * Created on 2021/12/6
+ */
+class OchCommonConst {
+ companion object {
+
+ private const val BASE_URL_OCH_DEV = "http://tech-dev.zhidaohulian.com"
+ private const val BASE_URL_OCH_QA = "https://tech-qa.zhidaohulian.com"
+ private const val BASE_URL_OCH_RELEASE = "https://tech.zhidaohulian.com"
+
+ @JvmStatic
+ fun getBaseUrl(): String {
+ return when (DebugConfig.getNetMode()) {
+ DebugConfig.NET_MODE_DEV, DebugConfig.NET_MODE_DEMO -> BASE_URL_OCH_DEV
+ DebugConfig.NET_MODE_QA -> BASE_URL_OCH_QA
+ DebugConfig.NET_MODE_RELEASE -> BASE_URL_OCH_RELEASE
+ else -> BASE_URL_OCH_RELEASE
+ }
+ }
+ // token 失效 重新获取token
+ const val WAIT_TAKEN = 100046
+
+ const val LOGINSERVICE = "/ochbiz/common/login"
+
+ }
+}
\ No newline at end of file
diff --git a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/constant/TaxiLoginStatusEnum.kt b/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/biz/constant/TaxiLoginStatusEnum.kt
similarity index 90%
rename from OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/constant/TaxiLoginStatusEnum.kt
rename to OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/biz/constant/TaxiLoginStatusEnum.kt
index 5e19782f5e..451196d777 100644
--- a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/constant/TaxiLoginStatusEnum.kt
+++ b/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/biz/constant/TaxiLoginStatusEnum.kt
@@ -1,4 +1,4 @@
-package com.mogo.och.taxi.constant
+package com.mogo.och.common.module.biz.constant
/**
* Created on 2022/08/19
diff --git a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/model/TaxiLoginModel.kt b/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/biz/model/OchCommonLoginModel.kt
similarity index 75%
rename from OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/model/TaxiLoginModel.kt
rename to OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/biz/model/OchCommonLoginModel.kt
index bdef0b53fd..b9874084bc 100644
--- a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/model/TaxiLoginModel.kt
+++ b/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/biz/model/OchCommonLoginModel.kt
@@ -1,21 +1,21 @@
-package com.mogo.och.taxi.model
+package com.mogo.och.common.module.biz.model
import android.annotation.SuppressLint
import android.content.Context
import com.mogo.eagle.core.data.BaseData
import com.mogo.eagle.core.utilcode.util.NetworkUtils
-import com.mogo.och.taxi.model.TaxiLoginModel
-import com.mogo.och.taxi.callback.ITaxiLoginCallback
-import com.mogo.module.common.MogoApisHandler
-import com.mogo.map.navi.IMogoCarLocationChangedListener2
-import com.mogo.och.taxi.network.TaxiServiceManager
-import com.mogo.och.taxi.network.TaxiServiceCallback
+import com.mogo.eagle.core.utilcode.util.SharedPrefs
import com.mogo.eagle.core.utilcode.util.ToastUtils
-import com.mogo.och.taxi.R
-import com.mogo.och.taxi.bean.TaxiLoginReqBean
-import com.mogo.och.taxi.bean.TaxiLoginRespBean
-import com.mogo.och.taxi.constant.TaxiLoginStatusEnum
-import com.mogo.och.taxi.utils.StatusManager
+import com.mogo.map.navi.IMogoCarLocationChangedListener2
+import com.mogo.module.common.MogoApisHandler
+import com.mogo.och.common.module.R
+import com.mogo.och.common.module.biz.bean.TaxiLoginReqBean
+import com.mogo.och.common.module.biz.bean.TaxiLoginRespBean
+import com.mogo.och.common.module.biz.callback.ITaxiLoginCallback
+import com.mogo.och.common.module.biz.constant.TaxiLoginStatusEnum
+import com.mogo.och.common.module.biz.constant.LoginStatusManager
+import com.mogo.och.common.module.biz.network.OchCommonServiceCallback
+import com.mogo.och.common.module.biz.network.OchCommonServiceManager
/**
* Created by pangfan on 2021/8/19
@@ -24,7 +24,7 @@ import com.mogo.och.taxi.utils.StatusManager
* 网约车 - 出租车业务逻辑处理
*/
@SuppressLint("StaticFieldLeak")
-object TaxiLoginModel{
+object OchCommonLoginModel{
private val TAG = "TaxiLoginModel"
private var mContext: Context? = null
@@ -34,10 +34,7 @@ object TaxiLoginModel{
fun init(context: Context) {
mContext = context.applicationContext
// 达到起始站围栏监听
- MogoApisHandler.getInstance()
- .apis
- .registerCenterApi
- .registerCarLocationChangedListener(TAG, mCarLocationChangedListener2)
+ MogoApisHandler.getInstance().apis.registerCenterApi.registerCarLocationChangedListener(TAG, mCarLocationChangedListener2)
}
fun hasInit():Boolean{
@@ -73,8 +70,8 @@ object TaxiLoginModel{
* 获取手机验证码
*/
fun getPhoneCode(phone: String?) {
- TaxiServiceManager.getInstance().getPhoneCode(mContext, phone,
- object : TaxiServiceCallback {
+ OchCommonServiceManager.getInstance().getPhoneCode(mContext, phone,
+ object : OchCommonServiceCallback {
override fun onSuccess(data: BaseData?) {
if (null != data && 0 == data.code) {
// 获取验证码成功
@@ -103,13 +100,16 @@ object TaxiLoginModel{
fun gotoLogin(phone: String, code: String) {
val location4Login = TaxiLoginReqBean.Location4Login(mLatitude, mLongitude)
- TaxiServiceManager.getInstance().gotoLoginBycode(mContext, phone, code, location4Login,
- object : TaxiServiceCallback {
+ OchCommonServiceManager.getInstance().gotoLoginBycode(mContext, phone, code, location4Login,
+ object : OchCommonServiceCallback {
override fun onSuccess(data: TaxiLoginRespBean?) {
if (null != data && 0 == data.code) {
// 获取验证码成功
ToastUtils.showShort(mContext?.getString(R.string.module_och_taxi_login_login_success))
- StatusManager.setLoginStatus(TaxiLoginStatusEnum.Login)
+ LoginStatusManager.setLoginStatus(TaxiLoginStatusEnum.Login)
+ mContext?.let {
+ SharedPrefs.getInstance(it).putString("och_account",phone)
+ }
iTaxiLoginCallback?.loginSuccess()
} else {
if (data != null) {
diff --git a/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/biz/model/OchCommonLoginStatusDefaultModel.kt b/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/biz/model/OchCommonLoginStatusDefaultModel.kt
new file mode 100644
index 0000000000..10348b6b2b
--- /dev/null
+++ b/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/biz/model/OchCommonLoginStatusDefaultModel.kt
@@ -0,0 +1,44 @@
+package com.mogo.och.common.module.biz.model
+
+import android.annotation.SuppressLint
+import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger
+import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant
+import com.mogo.eagle.core.utilcode.util.SharedPrefs
+import com.mogo.och.common.module.biz.bean.DriverStatusQueryRespBean
+import com.mogo.och.common.module.biz.callback.ILoginCallback
+import com.mogo.och.common.module.biz.callback.ILoginViewCallback
+import com.mogo.och.common.module.biz.constant.LoginStatusManager
+
+@SuppressLint("StaticFieldLeak")
+object OchCommonLoginStatusDefaultModel : OchCommonLoginStatusModel() {
+
+
+ const val TAG = "OchCommonLoginStatusDefaultModel"
+
+
+ var loginCallback: ILoginCallback? = null
+ var loginViewCallback: ILoginViewCallback? = null
+
+ override fun loginSuccess(data: DriverStatusQueryRespBean?) {
+ CallerLogger.d(SceneConstant.M_TAXI + TAG, "loginSuccess:${LoginStatusManager.isLogin()}")
+ if (LoginStatusManager.isLogin()) {
+ SharedPrefs.getInstance(mContext).putString("och_account", data?.data?.phone)
+ loginViewCallback?.hideLoginDialogFragment()
+ } else {
+ SharedPrefs.getInstance(mContext).putString("och_account", "")
+ loginViewCallback?.showLoginDialogFragment()
+ }
+ loginCallback?.loginSuccess(data)
+ }
+
+ override fun loginFail(isLogin: Boolean) {
+ CallerLogger.d(SceneConstant.M_TAXI + TAG, "loginFail:$isLogin")
+ if (isLogin) {
+ loginViewCallback?.hideLoginDialogFragment()
+ } else {
+ loginViewCallback?.showLoginDialogFragment()
+ }
+ loginCallback?.loginFail(isLogin)
+ }
+
+}
\ No newline at end of file
diff --git a/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/biz/model/OchCommonLoginStatusModel.java b/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/biz/model/OchCommonLoginStatusModel.java
new file mode 100644
index 0000000000..0b1e9f0bfb
--- /dev/null
+++ b/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/biz/model/OchCommonLoginStatusModel.java
@@ -0,0 +1,128 @@
+package com.mogo.och.common.module.biz.model;
+
+import static com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.M_TAXI;
+
+import android.content.Context;
+
+import com.mogo.commons.AbsMogoApplication;
+import com.mogo.eagle.core.data.BaseData;
+import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger;
+import com.mogo.eagle.core.utilcode.util.NetworkUtils;
+import com.mogo.eagle.core.utilcode.util.ToastUtils;
+import com.mogo.och.common.module.R;
+import com.mogo.och.common.module.biz.bean.DriverStatusQueryRespBean;
+import com.mogo.och.common.module.biz.bean.TaxiLogoutReqBean;
+import com.mogo.och.common.module.biz.constant.LoginStatusManager;
+import com.mogo.och.common.module.biz.constant.OchCommonConst;
+import com.mogo.och.common.module.biz.network.OchCommonServiceCallback;
+import com.mogo.och.common.module.biz.network.OchCommonServiceManager;
+import com.mogo.och.common.module.utils.ToastUtilsOch;
+
+import java.util.concurrent.TimeUnit;
+
+import io.reactivex.Observable;
+import io.reactivex.disposables.Disposable;
+
+public abstract class OchCommonLoginStatusModel {
+
+ private static final String TAG = "OchCommonLoginStatusModel";
+
+ protected Context mContext;
+
+ private Disposable subscribe;
+
+
+ public void init() {
+ mContext = AbsMogoApplication.getApp();
+ queryCarStatus();
+ }
+
+ protected abstract void loginSuccess(DriverStatusQueryRespBean data);
+
+ protected abstract void loginFail(boolean isLogin);
+
+ /**
+ * 接单状态和登录状态查询
+ * 1、初始化查询
+ * 2、错误重试
+ * 3、错误重试
+ * 4、登出后重试
+ * 5、变更出车状态查下
+ * 6、变更出车状态查下
+ * 7、网络状态变更后查询
+ * 8、登录页面关闭后查下状态
+ */
+ public void queryCarStatus() {
+ OchCommonServiceManager.getInstance().queryDriverServiceStatus(mContext,
+ new OchCommonServiceCallback() {
+ @Override
+ public void onSuccess(DriverStatusQueryRespBean data) {
+ if (null != data && 0 == data.code) {
+ LoginStatusManager.setLoginStatus(data.data.driverStatus);
+ CallerLogger.INSTANCE.d(M_TAXI + TAG, "changeCarStatus:" + LoginStatusManager.getLoginStatus());
+ loginSuccess(data);
+ }
+ }
+
+ @Override
+ public void onError() {
+ if (!NetworkUtils.isConnected(mContext)) {
+ ToastUtils.showShort(mContext.getString(R.string.network_error_tip));
+ } else {
+ ToastUtils.showShort(mContext.getString(R.string.request_error_tip));
+ }
+ subscribe = Observable.timer(5, TimeUnit.SECONDS).subscribe(aLong -> {
+ queryCarStatus();
+ });
+ }
+
+ @Override
+ public void onFail(int code, String msg) {
+ ToastUtilsOch.showWithCodeMessage(code,msg);
+ if(code== OchCommonConst.WAIT_TAKEN){
+ subscribe = Observable.timer(3, TimeUnit.SECONDS).subscribe(aLong -> {
+ queryCarStatus();
+ });
+ }else {
+ loginFail(LoginStatusManager.isLogin());
+ }
+ }
+ });
+ }
+
+ // 登出
+ public void logout(double mLatitude,double mLongitude) {
+ TaxiLogoutReqBean.Location4Login location4Login = new TaxiLogoutReqBean.Location4Login(mLatitude, mLongitude);
+ OchCommonServiceManager.getInstance().logout(mContext,location4Login,
+ new OchCommonServiceCallback() {
+ @Override
+ public void onSuccess(BaseData data) {
+ if (null != data && 0 == data.code) {
+ loginFail(false);
+ queryCarStatus();
+ }
+ }
+
+ @Override
+ public void onError() {
+ if (!NetworkUtils.isConnected(mContext)) {
+ ToastUtils.showShort(mContext.getString(R.string.network_error_tip));
+ } else {
+ ToastUtils.showShort(mContext.getString(R.string.request_error_tip));
+ }
+ }
+
+ @Override
+ public void onFail(int code, String msg) {
+ ToastUtilsOch.showWithCodeMessage(code,msg);
+ }
+ });
+ }
+
+ public void release() {
+ if(subscribe!=null&&!subscribe.isDisposed()){
+ subscribe.dispose();
+ }
+ }
+
+}
diff --git a/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/biz/network/OchCommonServiceApiNew.java b/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/biz/network/OchCommonServiceApiNew.java
new file mode 100644
index 0000000000..d31f624578
--- /dev/null
+++ b/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/biz/network/OchCommonServiceApiNew.java
@@ -0,0 +1,81 @@
+package com.mogo.och.common.module.biz.network;
+import com.mogo.eagle.core.data.BaseData;
+import com.mogo.och.common.module.biz.bean.DriverStatusQueryRespBean;
+import com.mogo.och.common.module.biz.bean.TaxiLoginReqBean;
+import com.mogo.och.common.module.biz.bean.TaxiLoginRespBean;
+import com.mogo.och.common.module.biz.bean.TaxiLoginSmsReqBean;
+import com.mogo.och.common.module.biz.bean.TaxiLogoutReqBean;
+
+import io.reactivex.Observable;
+import retrofit2.http.Body;
+import retrofit2.http.GET;
+import retrofit2.http.Header;
+import retrofit2.http.Headers;
+import retrofit2.http.POST;
+import retrofit2.http.Path;
+import retrofit2.http.Query;
+
+/**
+ * Created by pangfan on 2021/8/19
+ *
+ * 网约车-出租车接口定义
+ */
+interface OchCommonServiceApiNew {
+ /**
+ * 获取手机验证码
+ *
+ * @return
+ */
+ @Headers( {"Content-type:application/json;charset=UTF-8"} )
+ @POST( "/autopilot-car-hailing/driver/v2/driver/taxi/sendSms" )
+ Observable getPhoneCode(@Header("appId") String appId
+ , @Header("ticket") String ticket, @Body TaxiLoginSmsReqBean data);
+ /**
+ * 通过验证码登录
+ * @param appId
+ * @param ticket
+ * @param data
+ * @return
+ */
+ @Headers( {"Content-type:application/json;charset=UTF-8"} )
+ @POST( "/autopilot-car-hailing/cab/flow/v1/driver/taxi/startOperation" )
+ Observable gotoLoginBycode4Taxi(@Header("appId") String appId
+ , @Header("ticket") String ticket, @Body TaxiLoginReqBean data);
+
+ /**
+ * 通过验证码登录
+ * @param appId
+ * @param ticket
+ * @param data
+ * @return
+ */
+ @Headers( {"Content-type:application/json;charset=UTF-8"} )
+ @POST( "/autopilot-car-hailing/cab/flow/v1/bus/driver/bus/startOperation" )
+ Observable gotoLoginBycode4Bus(@Header("appId") String appId
+ , @Header("ticket") String ticket, @Body TaxiLoginReqBean data);
+ /**
+ * 登出接口
+ */
+ @Headers({"Content-type:application/json;charset=UTF-8"})
+ @POST("/autopilot-car-hailing/cab/flow/v1/driver/taxi/endOperation")
+ Observable logout4Taxi(@Header("appId") String appId, @Header("ticket") String ticket,
+ @Body TaxiLogoutReqBean data);
+ /**
+ * 登出接口
+ */
+ @Headers({"Content-type:application/json;charset=UTF-8"})
+ @POST("/autopilot-car-hailing/cab/flow/v1/bus/driver/bus/endOperation")
+ Observable logout4Bus(@Header("appId") String appId, @Header("ticket") String ticket,
+ @Body TaxiLogoutReqBean data);
+
+ /**
+ * 接单状态和登录状态查询 出租车司机端、小巴车司机端、小巴车乘客端
+ * @param sn
+ * @return
+ */
+ @Headers( {"Content-type:application/json;charset=UTF-8"} )
+ @GET( "/autopilot-car-hailing/operation/v1/driver/{flavor}/loginStatus")
+ Observable queryDriverServiceStatusAndLoginStatus(@Path(value = "flavor",encoded = true) String flavor,@Header ("appId") String appId
+ , @Header("ticket") String ticket, @Query("sn") String sn);
+
+}
diff --git a/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/biz/network/OchCommonServiceCallback.java b/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/biz/network/OchCommonServiceCallback.java
new file mode 100644
index 0000000000..8433def5f0
--- /dev/null
+++ b/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/biz/network/OchCommonServiceCallback.java
@@ -0,0 +1,18 @@
+package com.mogo.och.common.module.biz.network;
+
+/**
+ * @author congtaowang
+ * @since 2021/1/15
+ *
+ * 修改订单状态回调接口
+ */
+public interface OchCommonServiceCallback< T > {
+
+ void onSuccess(T data);
+
+ void onFail(int code, String msg);
+
+ default void onError() {
+
+ }
+}
diff --git a/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/biz/network/OchCommonServiceManager.java b/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/biz/network/OchCommonServiceManager.java
new file mode 100644
index 0000000000..ecc0129cfe
--- /dev/null
+++ b/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/biz/network/OchCommonServiceManager.java
@@ -0,0 +1,187 @@
+package com.mogo.och.common.module.biz.network;
+
+import static com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.M_TAXI;
+
+import android.content.Context;
+
+import com.mogo.cloud.passport.MoGoAiCloudClient;
+import com.mogo.cloud.passport.MoGoAiCloudClientConfig;
+import com.mogo.commons.debug.DebugConfig;
+import com.mogo.eagle.core.data.BaseData;
+import com.mogo.eagle.core.network.MoGoRetrofitFactory;
+import com.mogo.eagle.core.network.RequestOptions;
+import com.mogo.eagle.core.network.SubscribeImpl;
+import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger;
+import com.mogo.och.common.module.biz.bean.DriverStatusQueryRespBean;
+import com.mogo.och.common.module.biz.bean.TaxiLoginReqBean;
+import com.mogo.och.common.module.biz.bean.TaxiLoginRespBean;
+import com.mogo.och.common.module.biz.bean.TaxiLoginSmsReqBean;
+import com.mogo.och.common.module.biz.bean.TaxiLogoutReqBean;
+import com.mogo.och.common.module.biz.constant.OchCommonConst;
+
+import io.reactivex.Observable;
+import io.reactivex.android.schedulers.AndroidSchedulers;
+import io.reactivex.schedulers.Schedulers;
+
+/**
+ * Created by pangfan on 2021/8/19
+ */
+public class OchCommonServiceManager {
+ private static final String TAG = OchCommonServiceManager.class.getSimpleName();
+
+ private static final class SingletonHolder {
+ private static final OchCommonServiceManager INSTANCE = new OchCommonServiceManager();
+ }
+
+ public static OchCommonServiceManager getInstance() {
+ return SingletonHolder.INSTANCE;
+ }
+
+ private OchCommonServiceApiNew mOCHTaxiServiceApi;
+
+ private OchCommonServiceManager() {
+ if (mOCHTaxiServiceApi == null){
+ mOCHTaxiServiceApi = MoGoRetrofitFactory.getInstance(OchCommonConst.getBaseUrl()).create(OchCommonServiceApiNew.class);
+ }
+ }
+
+ /**
+ * 获取手机验证码
+ * @param context
+ * @param callback
+ */
+ public void getPhoneCode(Context context, String phone,
+ OchCommonServiceCallback callback) {
+ mOCHTaxiServiceApi.getPhoneCode(MoGoAiCloudClientConfig.getInstance().getServiceAppId()
+ , MoGoAiCloudClientConfig.getInstance().getToken()
+ , new TaxiLoginSmsReqBean(phone))
+ .subscribeOn(Schedulers.io())
+ .observeOn(AndroidSchedulers.mainThread())
+ .subscribe(getSubscribeImpl(context, callback, "getPhoneCode"));
+ }
+ /**
+ * 通过验证码登录
+ * @param context
+ * @param callback
+ */
+ public void gotoLoginBycode(Context context, String phone, String code,
+ TaxiLoginReqBean.Location4Login location4Login,
+ OchCommonServiceCallback callback) {
+ String sn = MoGoAiCloudClientConfig.getInstance().getSn();
+ Observable taxiLoginRespBeanObservable = null;
+ switch (DebugConfig.getProductFlavor()) {
+ case "fPadLenovoOchTaxi": {//出租车司机
+ taxiLoginRespBeanObservable = mOCHTaxiServiceApi.gotoLoginBycode4Taxi(MoGoAiCloudClientConfig.getInstance().getServiceAppId()
+ , MoGoAiCloudClientConfig.getInstance().getToken()
+ , new TaxiLoginReqBean(phone, code, sn, location4Login));
+ break;
+ }
+ case "fPadLenovoOchBus": {//小巴车司机
+ taxiLoginRespBeanObservable = mOCHTaxiServiceApi.gotoLoginBycode4Bus(MoGoAiCloudClientConfig.getInstance().getServiceAppId()
+ , MoGoAiCloudClientConfig.getInstance().getToken()
+ , new TaxiLoginReqBean(phone, code, sn, location4Login));
+ break;
+ }
+ }
+ if (taxiLoginRespBeanObservable != null) {
+ taxiLoginRespBeanObservable.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread())
+ .subscribe(getSubscribeImpl(context, callback, "gotoLoginBycode"));
+ }
+ }
+
+ /**
+ * 登出
+ */
+ public void logout(Context context, TaxiLogoutReqBean.Location4Login location4Login, OchCommonServiceCallback callback) {
+ Observable logout = null;
+ switch (DebugConfig.getProductFlavor()) {
+ case "fPadLenovoOchTaxi": {//出租车司机
+ logout = mOCHTaxiServiceApi.logout4Taxi(
+ MoGoAiCloudClientConfig.getInstance().getServiceAppId(),
+ MoGoAiCloudClientConfig.getInstance().getToken(),
+ new TaxiLogoutReqBean(MoGoAiCloudClientConfig.getInstance().getSn(), location4Login));
+ break;
+ }
+ case "fPadLenovoOchBus": {//小巴车司机
+ logout = mOCHTaxiServiceApi.logout4Bus(
+ MoGoAiCloudClientConfig.getInstance().getServiceAppId(),
+ MoGoAiCloudClientConfig.getInstance().getToken(),
+ new TaxiLogoutReqBean(MoGoAiCloudClientConfig.getInstance().getSn(), location4Login));
+ break;
+ }
+ }
+ if (logout != null) {
+ logout.subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread())
+ .subscribe(getSubscribeImpl(context, callback, "logout"));
+ }
+ }
+
+ /**
+ * 接单状态和登录状态查询
+ *
+ * @param context
+ * @param callback
+ */
+ public void queryDriverServiceStatus(Context context,
+ OchCommonServiceCallback callback) {
+ if (MoGoAiCloudClientConfig.getInstance().getToken().isEmpty()) {
+ callback.onFail(OchCommonConst.WAIT_TAKEN, "等待令牌中请稍等");
+ MoGoAiCloudClient.getInstance().refreshToken();
+ return;
+ }
+ String flavor = "";
+ switch (DebugConfig.getProductFlavor()) {
+ case "fPadLenovoOchTaxi": {//出租车司机
+ flavor = "taxi";
+ break;
+ }
+ case "fPadLenovoOchBus": {//小巴车司机
+ flavor = "bus";
+ break;
+ }
+ case "fPadLenovoOchBusPassenger": {//小巴车乘客
+ flavor = "bus/passenger";
+ break;
+ }
+ }
+ mOCHTaxiServiceApi.queryDriverServiceStatusAndLoginStatus(flavor, MoGoAiCloudClientConfig.getInstance().getServiceAppId()
+ , MoGoAiCloudClientConfig.getInstance().getToken()
+ , MoGoAiCloudClientConfig.getInstance().getSn())
+ .subscribeOn(Schedulers.io())
+ .observeOn(AndroidSchedulers.mainThread())
+ .subscribe(getSubscribeImpl(context, callback, "queryDriverServiceStatus"));
+ }
+
+
+ private SubscribeImpl getSubscribeImpl(
+ Context context, OchCommonServiceCallback callback, String apiName) {
+ return new SubscribeImpl(RequestOptions.create(context)) {
+ @Override
+ public void onSuccess(T o) {
+ super.onSuccess(o);
+ CallerLogger.INSTANCE.d(M_TAXI + TAG, apiName + ": onSuccess() " + o.msg);
+ if (callback != null) {
+ callback.onSuccess(o);
+ }
+ }
+
+ @Override
+ public void onError(Throwable e) {
+ super.onError(e);
+ CallerLogger.INSTANCE.e(M_TAXI + TAG, apiName + ": onError() " + e.getMessage());
+ if (callback != null) {
+ callback.onError();
+ }
+ }
+
+ @Override
+ public void onError(String message, int code) {
+ super.onError(message, code);
+ CallerLogger.INSTANCE.e(M_TAXI + TAG, String.format(apiName + ": onError() code = %d; message = %s;", code, message));
+ if (callback != null) {
+ callback.onFail(code, message);
+ }
+ }
+ };
+ }
+}
diff --git a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/presenter/TaxiLoginPresenter.kt b/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/biz/presenter/OchCommonLoginPresenter.kt
similarity index 79%
rename from OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/presenter/TaxiLoginPresenter.kt
rename to OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/biz/presenter/OchCommonLoginPresenter.kt
index 1497683ddc..49b8446a77 100644
--- a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/presenter/TaxiLoginPresenter.kt
+++ b/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/biz/presenter/OchCommonLoginPresenter.kt
@@ -1,4 +1,4 @@
-package com.mogo.och.taxi.presenter
+package com.mogo.och.common.module.biz.presenter
import androidx.lifecycle.LifecycleOwner
import com.mogo.commons.AbsMogoApplication
@@ -7,10 +7,10 @@ import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger
import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant
import com.mogo.eagle.core.utilcode.util.RegexUtils
import com.mogo.eagle.core.utilcode.util.ToastUtils
-import com.mogo.och.taxi.R
-import com.mogo.och.taxi.callback.ITaxiLoginCallback
-import com.mogo.och.taxi.model.TaxiLoginModel
-import com.mogo.och.taxi.ui.TaxiLoginDialogFragment
+import com.mogo.och.common.module.R
+import com.mogo.och.common.module.biz.ui.TaxiLoginDialogFragment
+import com.mogo.och.common.module.biz.callback.ITaxiLoginCallback
+import com.mogo.och.common.module.biz.model.OchCommonLoginModel
import io.reactivex.Observable
import io.reactivex.android.schedulers.AndroidSchedulers
import io.reactivex.disposables.Disposable
@@ -23,7 +23,7 @@ import java.util.concurrent.TimeUnit
*
* 描述
*/
-class TaxiLoginPresenter(view: TaxiLoginDialogFragment?) :
+class OchCommonLoginPresenter(view: TaxiLoginDialogFragment?) :
Presenter(view), ITaxiLoginCallback {
private var countDownDisposable: Disposable? = null
@@ -33,12 +33,12 @@ class TaxiLoginPresenter(view: TaxiLoginDialogFragment?) :
}
private fun initListeners() {
- TaxiLoginModel.init(AbsMogoApplication.getApp())
- TaxiLoginModel.setiTaxiLoginCallback(this)
+ OchCommonLoginModel.init(AbsMogoApplication.getApp())
+ OchCommonLoginModel.setiTaxiLoginCallback(this)
}
fun getPhoneCode(phone:String){
- if(!TaxiLoginModel.hasInit()){
+ if(!OchCommonLoginModel.hasInit()){
initListeners()
}
if (!RegexUtils.isMobileExact(phone)) {
@@ -46,7 +46,7 @@ class TaxiLoginPresenter(view: TaxiLoginDialogFragment?) :
mView?.inputPhoneError()
return
}
- TaxiLoginModel.getPhoneCode(phone)
+ OchCommonLoginModel.getPhoneCode(phone)
}
override fun onCreate(owner: LifecycleOwner) {
@@ -58,7 +58,7 @@ class TaxiLoginPresenter(view: TaxiLoginDialogFragment?) :
override fun onDestroy(owner: LifecycleOwner) {
super.onDestroy(owner)
- TaxiLoginModel.release()
+ OchCommonLoginModel.release()
countDownDisposable?.let {
if (!it.isDisposed) {
it.dispose()
@@ -67,7 +67,7 @@ class TaxiLoginPresenter(view: TaxiLoginDialogFragment?) :
}
companion object {
- private val TAG = TaxiLoginPresenter::class.java.simpleName
+ private val TAG = OchCommonLoginPresenter::class.java.simpleName
}
override fun getPhoneCodeSuccess() {
@@ -94,7 +94,7 @@ class TaxiLoginPresenter(view: TaxiLoginDialogFragment?) :
}
fun gotoLogin(phone: String, code: String) {
- if(!TaxiLoginModel.hasInit()){
+ if(!OchCommonLoginModel.hasInit()){
initListeners()
}
if (!RegexUtils.isMobileExact(phone)) {
@@ -107,6 +107,6 @@ class TaxiLoginPresenter(view: TaxiLoginDialogFragment?) :
return
}
mView?.closeSoftInput()
- TaxiLoginModel.gotoLogin(phone,code)
+ OchCommonLoginModel.gotoLogin(phone,code)
}
}
\ No newline at end of file
diff --git a/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/biz/presenter/OchCommonLoginStatusDefaultPresenter.kt b/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/biz/presenter/OchCommonLoginStatusDefaultPresenter.kt
new file mode 100644
index 0000000000..a4c77ec190
--- /dev/null
+++ b/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/biz/presenter/OchCommonLoginStatusDefaultPresenter.kt
@@ -0,0 +1,48 @@
+package com.mogo.och.common.module.biz.presenter
+
+import androidx.lifecycle.Lifecycle
+import androidx.lifecycle.LifecycleObserver
+import androidx.lifecycle.LifecycleOwner
+import androidx.lifecycle.OnLifecycleEvent
+import com.mogo.och.common.module.biz.callback.ILoginCallback
+import com.mogo.och.common.module.biz.callback.ILoginViewCallback
+import com.mogo.och.common.module.biz.model.OchCommonLoginStatusDefaultModel
+
+/**
+ * @author yangyakun
+ * @since 2020-09-19
+ */
+class OchCommonLoginStatusDefaultPresenter : LifecycleObserver {
+ private var isFirstShow = true
+
+ @OnLifecycleEvent(Lifecycle.Event.ON_CREATE)
+ fun onCreate(owner: LifecycleOwner) {
+ OchCommonLoginStatusDefaultModel.init()
+ }
+
+ @OnLifecycleEvent(Lifecycle.Event.ON_RESUME)
+ fun onResume(owner: LifecycleOwner) {
+ if (isFirstShow) {
+ isFirstShow = false
+ } else {
+ queryLoginStatus()
+ }
+ }
+ @OnLifecycleEvent(Lifecycle.Event.ON_DESTROY)
+ fun onDestory(owner: LifecycleOwner) {
+ OchCommonLoginStatusDefaultModel.release()
+ }
+
+ fun queryLoginStatus() {
+ OchCommonLoginStatusDefaultModel.queryCarStatus()
+ }
+
+ fun logOut(mLatitude:Double,mLongitude:Double){
+ OchCommonLoginStatusDefaultModel.logout(mLatitude, mLongitude)
+ }
+
+ fun setLoginCallback(loginCallback: ILoginCallback?,loginViewCallback: ILoginViewCallback?){
+ OchCommonLoginStatusDefaultModel.loginCallback = loginCallback
+ OchCommonLoginStatusDefaultModel.loginViewCallback = loginViewCallback
+ }
+}
\ No newline at end of file
diff --git a/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/biz/provider/LoginService.kt b/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/biz/provider/LoginService.kt
new file mode 100644
index 0000000000..a311da107f
--- /dev/null
+++ b/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/biz/provider/LoginService.kt
@@ -0,0 +1,29 @@
+package com.mogo.och.common.module.biz.provider
+
+import androidx.fragment.app.Fragment
+import com.alibaba.android.arouter.facade.template.IProvider
+import com.mogo.och.common.module.biz.callback.ILoginCallback
+
+interface LoginService : IProvider {
+ /**
+ * 注册页面
+ * @param fragment 主页面
+ * @param callback 回调
+ */
+ fun registerFragment(fragment: Fragment?,loginCallback: ILoginCallback?)
+
+ fun unRegisterFragment()
+
+ /**
+ * 查询登录状态
+ */
+ fun queryLoginStatus():Boolean
+
+ fun queryLoginStatusByNet()
+
+ /**
+ * 登出
+ */
+ fun loginOut(mLatitude:Double,mLongitude:Double)
+
+}
\ No newline at end of file
diff --git a/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/biz/provider/LoginServiceImpl.kt b/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/biz/provider/LoginServiceImpl.kt
new file mode 100644
index 0000000000..352fa57e6b
--- /dev/null
+++ b/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/biz/provider/LoginServiceImpl.kt
@@ -0,0 +1,110 @@
+package com.mogo.och.common.module.biz.provider
+
+import android.content.Context
+import android.content.DialogInterface
+import androidx.fragment.app.DialogFragment
+import androidx.fragment.app.Fragment
+import com.alibaba.android.arouter.facade.annotation.Route
+import com.mogo.eagle.core.function.call.hmi.CallerHmiManager
+import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger.d
+import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant
+import com.mogo.eagle.core.utilcode.util.AppStateManager.currentActivity
+import com.mogo.och.common.module.biz.callback.ILoginCallback
+import com.mogo.och.common.module.biz.callback.ILoginViewCallback
+import com.mogo.och.common.module.biz.constant.LoginStatusManager
+import com.mogo.och.common.module.biz.constant.OchCommonConst
+import com.mogo.och.common.module.biz.presenter.OchCommonLoginStatusDefaultPresenter
+import com.mogo.och.common.module.biz.ui.TaxiLoginDialogFragment
+import com.mogo.och.common.module.biz.ui.TaxiLoginDialogFragment.Companion.newInstance
+import java.lang.ref.WeakReference
+
+@Route(path = OchCommonConst.LOGINSERVICE)
+class LoginServiceImpl : LoginService,ILoginViewCallback {
+
+ companion object{
+ const val TAG = "LoginServiceImpl"
+ }
+
+ private var fragment: Fragment?=null
+ private var taxiLoginDialogFragment: WeakReference? = null
+ private var presenter: OchCommonLoginStatusDefaultPresenter?=null
+
+ override fun init(context: Context) {
+
+ }
+
+ override fun registerFragment(fragment: Fragment?,loginCallback: ILoginCallback?) {
+ presenter = OchCommonLoginStatusDefaultPresenter()
+ this.fragment = fragment
+ presenter?.let {
+ it.setLoginCallback(loginCallback, this)
+ this.fragment?.lifecycle?.addObserver(it)
+ }
+
+ }
+
+ override fun unRegisterFragment() {
+ this.presenter?.let {
+ it.setLoginCallback(null,null)
+ this.fragment?.lifecycle?.removeObserver(it)
+ }
+ this.fragment = null
+ }
+
+
+ override fun showLoginDialogFragment() {
+ fragment?.let {
+ CallerHmiManager.hideToolsView()
+ val parentFragmentManager = it.parentFragmentManager
+ val fragmentByTag: Fragment? = parentFragmentManager.findFragmentByTag(TAG)
+ if (fragmentByTag is DialogFragment) {
+ if (fragmentByTag.dialog != null && fragmentByTag.dialog!!.isShowing) {
+ return
+ }
+ if (fragmentByTag.dialog != null && fragmentByTag.isAdded) {
+ if (currentActivity() == null) { // 没有在当前应用内 在启动页面关闭应用
+ d(SceneConstant.M_TAXI + TAG, "showLoginDialogFragment 权限验证")
+ return
+ }
+ }
+ }
+
+ if (taxiLoginDialogFragment?.get() == null) {
+ taxiLoginDialogFragment = WeakReference(newInstance())
+ }
+ val taxiLoginDialog = taxiLoginDialogFragment?.get()
+ if (taxiLoginDialog != null) {
+ if (taxiLoginDialog.dialog != null && taxiLoginDialog.dialog!!.isShowing) {
+ return
+ }
+ if (taxiLoginDialog.isAdded) { //解决方法就是添加这行代码,如果已经添加了,就移除掉然后再show,就不会出现Fragment already added的错误了。
+ parentFragmentManager.beginTransaction().remove(taxiLoginDialog)
+ .commitAllowingStateLoss()
+ }
+ d(SceneConstant.M_TAXI + TAG, "showLoginDialogFragment 展示登录界面")
+ taxiLoginDialog.show(parentFragmentManager, TAG)
+ taxiLoginDialog.setOnDismissListener(DialogInterface.OnDismissListener { dialog: DialogInterface? ->
+ taxiLoginDialogFragment?.clear()
+ presenter?.queryLoginStatus()
+ })
+ }
+ }
+ }
+ override fun hideLoginDialogFragment() {
+ d(SceneConstant.M_TAXI + TAG, "hideLoginDialogFragment 隐藏登录界面")
+ if (taxiLoginDialogFragment?.get() != null) {
+ taxiLoginDialogFragment?.get()?.dismissAllowingStateLoss()
+ }
+ }
+ override fun queryLoginStatus():Boolean {
+ return LoginStatusManager.isLogin()
+ }
+
+ override fun queryLoginStatusByNet() {
+ presenter?.queryLoginStatus()
+ }
+
+ override fun loginOut(mLatitude:Double,mLongitude:Double) {
+ presenter?.logOut(mLatitude,mLongitude)
+ }
+}
\ No newline at end of file
diff --git a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/ui/TaxiLoginDialogFragment.kt b/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/biz/ui/TaxiLoginDialogFragment.kt
similarity index 96%
rename from OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/ui/TaxiLoginDialogFragment.kt
rename to OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/biz/ui/TaxiLoginDialogFragment.kt
index 19da74fbae..b08e15472d 100644
--- a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/ui/TaxiLoginDialogFragment.kt
+++ b/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/biz/ui/TaxiLoginDialogFragment.kt
@@ -1,4 +1,4 @@
-package com.mogo.och.taxi.ui
+package com.mogo.och.common.module.biz.ui
import android.content.DialogInterface
import android.graphics.Rect
@@ -15,7 +15,6 @@ import androidx.core.widget.addTextChangedListener
import androidx.fragment.app.DialogFragment
import androidx.fragment.app.FragmentManager
import androidx.fragment.app.FragmentTransaction
-import com.mogo.cloud.passport.MoGoAiCloudClient
import com.mogo.cloud.passport.MoGoAiCloudClientConfig
import com.mogo.commons.mvp.MvpDialogFragment
import com.mogo.eagle.core.utilcode.kotlin.onClick
@@ -23,16 +22,15 @@ import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger
import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant
import com.mogo.eagle.core.utilcode.util.BarUtils
import com.mogo.eagle.core.utilcode.util.KeyboardUtils
-import com.mogo.och.taxi.R
-import com.mogo.och.taxi.constant.TaxiConst
-import com.mogo.och.taxi.presenter.TaxiLoginPresenter
+import com.mogo.och.common.module.R
+import com.mogo.och.common.module.biz.presenter.OchCommonLoginPresenter
/**
* @author: yangyakun
* @date: 2022/8/15
*/
-class TaxiLoginDialogFragment : MvpDialogFragment(),
+class TaxiLoginDialogFragment : MvpDialogFragment(),
DialogInterface.OnKeyListener {
lateinit var clMain: ConstraintLayout
@@ -169,8 +167,8 @@ class TaxiLoginDialogFragment : MvpDialogFragment
+ #2961F2
+ #14FF0000
+ #FF0000
+ #666666
+ #86A5F7
+ #111533
+ #878890
+ #EF262C
+ #4D000000
+
#3B4577
\ No newline at end of file
diff --git a/OCH/mogo-och-common-module/src/main/res/values/strings.xml b/OCH/mogo-och-common-module/src/main/res/values/strings.xml
new file mode 100644
index 0000000000..f2d52ad1eb
--- /dev/null
+++ b/OCH/mogo-och-common-module/src/main/res/values/strings.xml
@@ -0,0 +1,17 @@
+
+
+
+ 欢迎您登录
+ 登录
+ 获取验证码
+ 请输入验证码
+ 获取验证码成功
+ 登录成功
+ 请输入正确的手机号
+ 请输入正确的验证码
+ 请输入手机号
+ 请输入手机号
+
+ 网络异常,请稍后重试
+ 请求出现异常,请稍后重试
+
\ No newline at end of file
diff --git a/OCH/mogo-och-common-module/src/main/res/values/styles.xml b/OCH/mogo-och-common-module/src/main/res/values/styles.xml
index d983a865a0..ccbb7c934e 100644
--- a/OCH/mogo-och-common-module/src/main/res/values/styles.xml
+++ b/OCH/mogo-och-common-module/src/main/res/values/styles.xml
@@ -1,5 +1,23 @@
-
+
+
+
diff --git a/OCH/mogo-och-common-module/src/test/java/com/mogo/och/common/module/ExampleUnitTest.kt b/OCH/mogo-och-common-module/src/test/java/com/mogo/och/common/module/ExampleUnitTest.kt
index 76f5f67a00..b10afe9aa9 100644
--- a/OCH/mogo-och-common-module/src/test/java/com/mogo/och/common/module/ExampleUnitTest.kt
+++ b/OCH/mogo-och-common-module/src/test/java/com/mogo/och/common/module/ExampleUnitTest.kt
@@ -1,8 +1,8 @@
package com.mogo.och.common.module
-import org.junit.Test
-
+import com.zhidao.thirdlogin.utils.Aes
import org.junit.Assert.*
+import org.junit.Test
/**
* Example local unit test, which will execute on the development machine (host).
@@ -13,5 +13,11 @@ class ExampleUnitTest {
@Test
fun addition_isCorrect() {
assertEquals(4, 2 + 2)
+
+ val json = "{\"device\":\"03cdfec225781de0\",\"time\":" + System.currentTimeMillis() + "}"
+ val IVS = "tqXMOa6g2w3S4sso+DqCfKAHRNA5jg3Mzp45e33zHFA="
+ val KEY = "y5VajBH+sTHonJP2a5Uh6uDZcK0fxNB5ORHmbg9B3V0="
+ val encrypt: String = Aes.encrypt(json, KEY, IVS, "UTF-8")
+ println(encrypt)
}
}
\ No newline at end of file
diff --git a/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/network/TaxiPassengerServiceManager.java b/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/network/TaxiPassengerServiceManager.java
index f052794c40..5af7ed7006 100644
--- a/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/network/TaxiPassengerServiceManager.java
+++ b/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/network/TaxiPassengerServiceManager.java
@@ -54,7 +54,7 @@ public class TaxiPassengerServiceManager {
* @return
*/
private String getDriverAppSn(){
- return CallerTelematicManager.INSTANCE.getServerToken();
+ return "X20202206092431156";
}
/**
diff --git a/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/ui/comment/TaxiPassengerArrivedView.kt b/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/ui/comment/TaxiPassengerArrivedView.kt
index b3335b40ee..55a3ba0a59 100644
--- a/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/ui/comment/TaxiPassengerArrivedView.kt
+++ b/OCH/mogo-och-taxi-passenger/src/main/java/com/mogo/och/taxi/passenger/ui/comment/TaxiPassengerArrivedView.kt
@@ -177,7 +177,7 @@ class TaxiPassengerArrivedView :RelativeLayout, View.OnClickListener {
tvFeel.text = ""
rvCommentList.visibility = View.INVISIBLE
btnSubmit.visibility = View.INVISIBLE
- clCommentContain.getLayoutParams().height = 657
+ clCommentContain.getLayoutParams().height = 748
clCommentContain.requestLayout()
super.onDetachedFromWindow()
subscribe?.let {
@@ -305,7 +305,7 @@ class TaxiPassengerArrivedView :RelativeLayout, View.OnClickListener {
private fun startChangeHeightAnimarion() {
// 815 除了 点评的高度
- val resizeAnimation = ResizeAnimation(clCommentContain,832+rvCommentList.height, clCommentContain.height)
+ val resizeAnimation = ResizeAnimation(clCommentContain,923+rvCommentList.height, clCommentContain.height)
resizeAnimation.duration = 300
resizeAnimation.setAnimationListener(object :Animation.AnimationListener{
override fun onAnimationStart(animation: Animation?) {
diff --git a/OCH/mogo-och-taxi-passenger/src/main/res/layout/taxi_p_arrived_end_panel.xml b/OCH/mogo-och-taxi-passenger/src/main/res/layout/taxi_p_arrived_end_panel.xml
index f07f9b6bb4..2a5872ee2b 100644
--- a/OCH/mogo-och-taxi-passenger/src/main/res/layout/taxi_p_arrived_end_panel.xml
+++ b/OCH/mogo-och-taxi-passenger/src/main/res/layout/taxi_p_arrived_end_panel.xml
@@ -44,7 +44,7 @@
@@ -57,6 +57,7 @@
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
+
+
Presenter回调:接单车状态变更 登录状态变更
*/
public interface ITaxiCarStatusCallback {
- void onCarStatusChanged(boolean inOperation,String role);
void onServiceDataUpdate(long dailyTimeDuration, long dailyOrderNum);
- void onCarLoginStatusChange(boolean isLogin);
}
diff --git a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/constant/TaxiConst.kt b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/constant/TaxiConst.kt
index 41a1280592..2a399bb339 100644
--- a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/constant/TaxiConst.kt
+++ b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/constant/TaxiConst.kt
@@ -81,6 +81,5 @@ class TaxiConst {
const val TIMER_START_AUTOPILOT_INTERVAL = 20 * 1000L
- const val WAIT_TAKEN = 100046
}
}
\ No newline at end of file
diff --git a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/constant/TaxtServingStatusManager.kt b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/constant/TaxtServingStatusManager.kt
new file mode 100644
index 0000000000..7a42236e8b
--- /dev/null
+++ b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/constant/TaxtServingStatusManager.kt
@@ -0,0 +1,38 @@
+package com.mogo.och.taxi.constant
+
+object TaxtServingStatusManager {
+
+ /**
+ * 接单状态
+ */
+ private var openOrderStatus: TaxiOpenOrderStatusEnum = TaxiOpenOrderStatusEnum.None
+
+ // region 是否可用接单
+ @JvmStatic
+ fun isOpeningOrderStatus():Boolean{
+ if(openOrderStatus==TaxiOpenOrderStatusEnum.Ordering){
+ return true
+ }
+ return false
+ }
+ @JvmStatic
+ fun setOpenOrderStatus(status: Int) {
+ when (status) {
+ 0 -> {
+ this.openOrderStatus = TaxiOpenOrderStatusEnum.UnOrdering
+ }
+ 1 -> {
+ this.openOrderStatus = TaxiOpenOrderStatusEnum.Ordering
+ }
+ else -> {
+ this.openOrderStatus = TaxiOpenOrderStatusEnum.None
+ }
+ }
+ }
+ @JvmStatic
+ fun getOpenOrderStatus(): TaxiOpenOrderStatusEnum {
+ return openOrderStatus
+ }
+
+ //endregion
+}
\ No newline at end of file
diff --git a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/model/TaxiModel.java b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/model/TaxiModel.java
index 5431beaf87..5362bf5930 100644
--- a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/model/TaxiModel.java
+++ b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/model/TaxiModel.java
@@ -13,6 +13,7 @@ import android.net.ConnectivityManager;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
+import com.alibaba.android.arouter.launcher.ARouter;
import com.amap.api.maps.model.LatLng;
import com.elegant.network.utils.GsonUtil;
import com.mogo.aicloud.services.socket.MogoAiCloudSocketManager;
@@ -33,12 +34,14 @@ import com.mogo.eagle.core.utilcode.util.NetworkUtils;
import com.mogo.eagle.core.utilcode.util.ToastUtils;
import com.mogo.map.navi.IMogoCarLocationChangedListener2;
import com.mogo.module.common.MogoApisHandler;
+import com.mogo.och.common.module.biz.constant.LoginStatusManager;
+import com.mogo.och.common.module.biz.constant.OchCommonConst;
+import com.mogo.och.common.module.biz.provider.LoginService;
import com.mogo.och.common.module.utils.CoordinateCalculateRouteUtil;
import com.mogo.och.common.module.utils.PinYinUtil;
import com.mogo.och.common.module.utils.ToastUtilsOch;
import com.mogo.och.taxi.R;
import com.mogo.och.taxi.bean.DriverServiceDataRespBean;
-import com.mogo.och.taxi.bean.DriverStatusQueryRespBean;
import com.mogo.och.taxi.bean.OrderGrabRespBean;
import com.mogo.och.taxi.bean.OrderGrabStatusQueryRespBean;
import com.mogo.och.taxi.bean.OrderQueryRespBean;
@@ -49,19 +52,17 @@ import com.mogo.och.taxi.bean.OrdersListQueryRespBean;
import com.mogo.och.taxi.bean.OrdersNewBookingQueryRespBean;
import com.mogo.och.taxi.bean.QueryOrderRouteResp;
import com.mogo.och.taxi.bean.TaxiDataBaseRespBean;
-import com.mogo.och.taxi.bean.TaxiLogoutReqBean;
import com.mogo.och.taxi.bean.TaxiOrPassengerReadyReqBean;
import com.mogo.och.taxi.callback.ITaxiADASStatusCallback;
import com.mogo.och.taxi.callback.ITaxiCarStatusCallback;
import com.mogo.och.taxi.callback.ITaxiControllerStatusCallback;
import com.mogo.och.taxi.callback.ITaxiOrderStatusCallback;
-import com.mogo.och.taxi.constant.TaxiDriverRoleEnum;
import com.mogo.och.taxi.constant.TaxiConst;
import com.mogo.och.taxi.constant.TaxiOrderStatusEnum;
import com.mogo.och.taxi.constant.TaxiOrderTypeEnum;
+import com.mogo.och.taxi.constant.TaxtServingStatusManager;
import com.mogo.och.taxi.network.TaxiServiceCallback;
import com.mogo.och.taxi.network.TaxiServiceManager;
-import com.mogo.och.taxi.utils.StatusManager;
import com.mogo.och.taxi.utils.TaxiAnalyticsManager;
import com.mogo.och.taxi.utils.OrderUtil;
import com.mogo.aicloud.services.socket.IMogoLifecycleListener;
@@ -78,10 +79,7 @@ import java.io.IOException;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
-import java.util.concurrent.TimeUnit;
-import io.reactivex.Observable;
-import io.reactivex.disposables.Disposable;
import io.reactivex.exceptions.UndeliverableException;
import io.reactivex.functions.Consumer;
import io.reactivex.plugins.RxJavaPlugins;
@@ -118,7 +116,6 @@ public class TaxiModel {
private ITaxiCarStatusCallback mCarStatusCallback; //Model->Presenter:接单状态、登录状态和司机今日接单状态
private ITaxiControllerStatusCallback mControllerStatusCallback; //Model->Presenter:VR mode等
private ITaxiOrderStatusCallback mOrderStatusCallback; //Model->Presenter:订单变更
- private Disposable subscribe;
private volatile boolean isRestartAutopilot = false;
@@ -126,6 +123,8 @@ public class TaxiModel {
private double mLongitude, mLatitude;
+ private LoginService loginService;
+
private TaxiModel() {
}
@@ -148,6 +147,7 @@ public class TaxiModel {
public void init(Context context) {
mContext = context.getApplicationContext();
initListeners();
+ loginService = (LoginService) ARouter.getInstance().build(OchCommonConst.LOGINSERVICE).navigation();
// IMogoServiceApis apis = MogoApisHandler.getInstance().getApis();
// apis.getSocketManagerApi(mContext).init(mContext, DebugConfig.getSocketAppId());
@@ -192,16 +192,13 @@ public class TaxiModel {
CallerLogger.INSTANCE.d(M_TAXI + TAG, "Undeliverable exception");
}
});
- queryCarStatus();
}
public void release() {
startOrStopOrderLoop(false);
startOrStopCalculateRouteInfo(false);
releaseListeners();
- if(subscribe!=null&&!subscribe.isDisposed()){
- subscribe.dispose();
- }
+ loginService = null;
}
private void initListeners() {
@@ -247,7 +244,7 @@ public class TaxiModel {
CallerAutopilotPlanningListenerManager.INSTANCE.removeListener(moGoAutopilotPlanningListener);
}
- private void startOrStopOrderLoop(boolean start) {
+ public void startOrStopOrderLoop(boolean start) {
CallerLogger.INSTANCE.d(M_TAXI + TAG, "startOrStopOrderLoop() " + start);
if (start) {
TaxiModelLoopManager.getInstance().startInAndWaitOrdersLoop();
@@ -260,82 +257,18 @@ public class TaxiModel {
}
}
- /**
- * 接单状态和登录状态查询
- * 1、初始化查下状态
- * 2、点击更新接单状态 如果是初始化状态就查下状态
- * 3、点击更新接单状态后 查询状态
- * 4、网络状态波动时 查询状态
- * 5、登出后更新状态
- */
- public void queryCarStatus() {
- TaxiServiceManager.getInstance().queryDriverServiceStatus(mContext,
- new TaxiServiceCallback() {
- @Override
- public void onSuccess(DriverStatusQueryRespBean data) {
- if (null != data && 0 == data.code) {
- StatusManager.setLoginStatus(data.data.driverStatus);
- StatusManager.setOpenOrderStatus(data.data.servingStatus);
- //更新view
- CallerLogger.INSTANCE.d(M_TAXI + TAG, "changeCarStatus:" + StatusManager.getLoginStatus());
- startOrStopOrderLoop(StatusManager.isLogin()&&StatusManager.isOpeningOrderStatus());
- if(mCarStatusCallback!=null) {
- mCarStatusCallback.onCarLoginStatusChange(StatusManager.isLogin());
- }
- String role = "";
- if (TaxiDriverRoleEnum.DEMO.getCode() == data.data.purpose) {
- role = TaxiConst.DEMO_USER;
- } else if (TaxiDriverRoleEnum.TEST.getCode() == data.data.purpose) {
- role = TaxiConst.TEST_USER;
- }
- if (mCarStatusCallback != null) {
- mCarStatusCallback.onCarStatusChanged(StatusManager.isOpeningOrderStatus(), role);
- }
-
- }
- }
-
- @Override
- public void onError() {
- if (!NetworkUtils.isConnected(mContext)) {
- ToastUtils.showShort(mContext.getString(R.string.network_error_tip));
- } else {
- ToastUtils.showShort(mContext.getString(R.string.request_error_tip));
- }
- subscribe = Observable.timer(5, TimeUnit.SECONDS).subscribe(aLong -> {
- queryCarStatus();
- });
- }
-
- @Override
- public void onFail(int code, String msg) {
- ToastUtilsOch.showWithCodeMessage(code,msg);
- if(code==TaxiConst.WAIT_TAKEN){
- subscribe = Observable.timer(3, TimeUnit.SECONDS).subscribe(aLong -> {
- queryCarStatus();
- });
- }else {
- if (mCarStatusCallback != null) {
- mCarStatusCallback.onCarLoginStatusChange(StatusManager.isLogin());
- }
- }
- }
- });
- }
-
//更新接单状态
public void updateCarStatus() {
- if(!StatusManager.isLogin()){
- queryCarStatus();
+ if(!LoginStatusManager.isLogin()){
+ loginService.queryLoginStatusByNet();
return;
}
- TaxiServiceManager.getInstance().changeOrderServing(mContext,StatusManager.isOpeningOrderStatus(),
+ TaxiServiceManager.getInstance().changeOrderServing(mContext,TaxtServingStatusManager.isOpeningOrderStatus(),
new TaxiServiceCallback() {
@Override
public void onSuccess(BaseData data) {
if (null != data && 0 == data.code) {
- //StatusManager.changeOrderStatus();
- queryCarStatus();
+ loginService.queryLoginStatusByNet();
}
}
@@ -1001,8 +934,8 @@ public class TaxiModel {
CallerLogger.INSTANCE.d(M_TAXI + TAG, "onIntentReceived = %s", intentStr);
if (ConnectivityManager.CONNECTIVITY_ACTION.equals(intentStr)) {
if (NetworkUtils.isConnected(mContext)) {
- startOrStopOrderLoop(StatusManager.isLogin()&&StatusManager.isOpeningOrderStatus());
- queryCarStatus();
+ startOrStopOrderLoop(LoginStatusManager.isLogin()&&TaxtServingStatusManager.isOpeningOrderStatus());
+ loginService.queryLoginStatusByNet();
}
}
}
@@ -1579,30 +1512,6 @@ public class TaxiModel {
// 登出
public void logout() {
- TaxiLogoutReqBean.Location4Login location4Login = new TaxiLogoutReqBean.Location4Login(mLatitude, mLongitude);
- TaxiServiceManager.getInstance().logout(mContext,location4Login,
- new TaxiServiceCallback() {
- @Override
- public void onSuccess(BaseData data) {
- if (null != data && 0 == data.code) {
- mCarStatusCallback.onCarLoginStatusChange(false);
- queryCarStatus();
- }
- }
-
- @Override
- public void onError() {
- if (!NetworkUtils.isConnected(mContext)) {
- ToastUtils.showShort(mContext.getString(R.string.network_error_tip));
- } else {
- ToastUtils.showShort(mContext.getString(R.string.request_error_tip));
- }
- }
-
- @Override
- public void onFail(int code, String msg) {
- ToastUtilsOch.showWithCodeMessage(code,msg);
- }
- });
+ loginService.loginOut(mLatitude,mLongitude);
}
}
diff --git a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/network/TaxiServiceApiNew.java b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/network/TaxiServiceApiNew.java
index 8b29d4039d..cbb3885cf6 100644
--- a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/network/TaxiServiceApiNew.java
+++ b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/network/TaxiServiceApiNew.java
@@ -2,7 +2,6 @@ package com.mogo.och.taxi.network;
import com.mogo.eagle.core.data.BaseData;
import com.mogo.och.taxi.bean.CarHeartbeatReqBean;
import com.mogo.och.taxi.bean.DriverServiceDataRespBean;
-import com.mogo.och.taxi.bean.DriverStatusQueryRespBean;
import com.mogo.och.taxi.bean.DriverStatusUpdateReqBean;
import com.mogo.och.taxi.bean.OrderCancelReqBean;
import com.mogo.och.taxi.bean.OrderGrabReqBean;
@@ -20,10 +19,6 @@ import com.mogo.och.taxi.bean.OrdersListQueryRespBean;
import com.mogo.och.taxi.bean.OrdersNewBookingQueryRespBean;
import com.mogo.och.taxi.bean.QueryOrderRouteResp;
import com.mogo.och.taxi.bean.TaxiDataBaseRespBean;
-import com.mogo.och.taxi.bean.TaxiLoginReqBean;
-import com.mogo.och.taxi.bean.TaxiLoginRespBean;
-import com.mogo.och.taxi.bean.TaxiLoginSmsReqBean;
-import com.mogo.och.taxi.bean.TaxiLogoutReqBean;
import com.mogo.och.taxi.bean.TaxiOrPassengerReadyReqBean;
import com.mogo.och.taxi.bean.UpdateOrderDisAndTimeReqBean;
@@ -290,35 +285,6 @@ interface TaxiServiceApiNew {
Observable orderCompleted(@Header ("appId") String appId
, @Header("ticket") String ticket,@Body TaxiOrPassengerReadyReqBean data);
-
- /**
- * 获取手机验证码
- *
- * @return
- */
- @Headers( {"Content-type:application/json;charset=UTF-8"} )
-// @GET( "/autopilot-car-hailing/api/v1/driver/serviceStatus/query" )
- @POST( "/autopilot-car-hailing/driver/v2/driver/taxi/sendSms" )
- Observable getPhoneCode(@Header ("appId") String appId
- ,@Header("ticket") String ticket,@Body TaxiLoginSmsReqBean data);
- /**
- * 通过验证码登录
- * @param appId
- * @param ticket
- * @param data
- * @return
- */
- @Headers( {"Content-type:application/json;charset=UTF-8"} )
- @POST( "/autopilot-car-hailing/cab/flow/v1/driver/taxi/startOperation" )
- Observable gotoLoginBycode(@Header ("appId") String appId
- , @Header("ticket") String ticket, @Body TaxiLoginReqBean data);
- /**
- * 登出接口
- */
- @Headers({"Content-type:application/json;charset=UTF-8"})
- @POST("/autopilot-car-hailing/cab/flow/v1/driver/taxi/endOperation")
- Observable logout(@Header ("appId") String appId,@Header("ticket") String ticket,
- @Body TaxiLogoutReqBean data);
/**
* 暂停接单
* @param data
@@ -339,15 +305,4 @@ interface TaxiServiceApiNew {
@POST( "/autopilot-car-hailing/cab/flow/v1/driver/taxi/resetOrderServing" )
Observable resetOrderServing(@Header ("appId") String appId,@Header("ticket") String ticket
,@Body DriverStatusUpdateReqBean data);
- /**
- * 接单状态和登录状态查询
- * @param sn
- * @return
- */
- @Headers( {"Content-type:application/json;charset=UTF-8"} )
-// @GET( "/autopilot-car-hailing/api/v1/driver/serviceStatus/query" )
- @GET( "/autopilot-car-hailing/operation/v1/driver/taxi/loginStatus" )
- Observable queryDriverServiceStatusAndLoginStatus(@Header ("appId") String appId
- ,@Header("ticket") String ticket,@Query("sn") String sn);
-
}
diff --git a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/network/TaxiServiceManager.java b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/network/TaxiServiceManager.java
index 333ca64fd9..5c209c7b87 100644
--- a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/network/TaxiServiceManager.java
+++ b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/network/TaxiServiceManager.java
@@ -4,7 +4,6 @@ import static com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.M_TAX
import android.content.Context;
-import com.mogo.cloud.passport.MoGoAiCloudClient;
import com.mogo.cloud.passport.MoGoAiCloudClientConfig;
import com.mogo.eagle.core.data.BaseData;
import com.mogo.eagle.core.network.MoGoRetrofitFactory;
@@ -13,7 +12,6 @@ import com.mogo.eagle.core.network.SubscribeImpl;
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger;
import com.mogo.och.taxi.bean.CarHeartbeatReqBean;
import com.mogo.och.taxi.bean.DriverServiceDataRespBean;
-import com.mogo.och.taxi.bean.DriverStatusQueryRespBean;
import com.mogo.och.taxi.bean.DriverStatusUpdateReqBean;
import com.mogo.och.taxi.bean.OrderCancelReqBean;
import com.mogo.och.taxi.bean.OrderGrabReqBean;
@@ -31,10 +29,6 @@ import com.mogo.och.taxi.bean.OrdersListQueryRespBean;
import com.mogo.och.taxi.bean.OrdersNewBookingQueryRespBean;
import com.mogo.och.taxi.bean.QueryOrderRouteResp;
import com.mogo.och.taxi.bean.TaxiDataBaseRespBean;
-import com.mogo.och.taxi.bean.TaxiLoginReqBean;
-import com.mogo.och.taxi.bean.TaxiLoginRespBean;
-import com.mogo.och.taxi.bean.TaxiLoginSmsReqBean;
-import com.mogo.och.taxi.bean.TaxiLogoutReqBean;
import com.mogo.och.taxi.bean.TaxiOrPassengerReadyReqBean;
import com.mogo.och.taxi.bean.UpdateOrderDisAndTimeReqBean;
import com.mogo.och.taxi.constant.TaxiConst;
@@ -263,26 +257,6 @@ public class TaxiServiceManager {
.subscribe(getSubscribeImpl(context, callback, "updateDriverServiceStatus"));
}
- /**
- * 接单状态和登录状态查询
- * @param context
- * @param callback
- */
- public void queryDriverServiceStatus(Context context,
- TaxiServiceCallback callback) {
- if(MoGoAiCloudClientConfig.getInstance().getToken().isEmpty()){
- callback.onFail(TaxiConst.WAIT_TAKEN,"等待令牌中请稍等");
- MoGoAiCloudClient.getInstance().refreshToken();
- return;
- }
- mOCHTaxiServiceApi.queryDriverServiceStatusAndLoginStatus(MoGoAiCloudClientConfig.getInstance().getServiceAppId()
- ,MoGoAiCloudClientConfig.getInstance().getToken()
- ,MoGoAiCloudClientConfig.getInstance().getSn())
- .subscribeOn(Schedulers.io())
- .observeOn(AndroidSchedulers.mainThread())
- .subscribe(getSubscribeImpl(context, callback, "queryDriverServiceStatus"));
- }
-
/**
* 车机端上传心跳数据(只在出车状态时上传):包含高德坐标系经纬度
* @param context
@@ -455,52 +429,6 @@ public class TaxiServiceManager {
}
- /**
- * 获取手机验证码
- * @param context
- * @param callback
- */
- public void getPhoneCode(Context context,String phone,
- TaxiServiceCallback callback) {
- mOCHTaxiServiceApi.getPhoneCode(MoGoAiCloudClientConfig.getInstance().getServiceAppId()
- , MoGoAiCloudClientConfig.getInstance().getToken()
- , new TaxiLoginSmsReqBean(phone))
- .subscribeOn(Schedulers.io())
- .observeOn(AndroidSchedulers.mainThread())
- .subscribe(getSubscribeImpl(context, callback, "getPhoneCode"));
- }
- /**
- * 通过验证码登录
- * @param context
- * @param callback
- */
- public void gotoLoginBycode(Context context, String phone, String code,
- TaxiLoginReqBean.Location4Login location4Login,
- TaxiServiceCallback callback) {
- String sn = MoGoAiCloudClientConfig.getInstance().getSn();
- mOCHTaxiServiceApi.gotoLoginBycode(MoGoAiCloudClientConfig.getInstance().getServiceAppId()
- , MoGoAiCloudClientConfig.getInstance().getToken()
- , new TaxiLoginReqBean(phone, code, sn, location4Login))
- .subscribeOn(Schedulers.io())
- .observeOn(AndroidSchedulers.mainThread())
- .subscribe(getSubscribeImpl(context, callback, "gotoLoginBycode"));
- }
-
- /**
- * 登出
- */
- public void logout(Context context, TaxiLogoutReqBean.Location4Login location4Login, TaxiServiceCallback callback) {
- mOCHTaxiServiceApi.logout(
- MoGoAiCloudClientConfig.getInstance().getServiceAppId(),
- MoGoAiCloudClientConfig.getInstance().getToken(),
- new TaxiLogoutReqBean(MoGoAiCloudClientConfig.getInstance().getSn(), location4Login))
- .subscribeOn(Schedulers.io())
- .observeOn(AndroidSchedulers.mainThread())
- .subscribe(getSubscribeImpl(context, callback, "logout"));
- }
-
-
-
private SubscribeImpl getSubscribeImpl(
Context context, TaxiServiceCallback callback, String apiName) {
return new SubscribeImpl(RequestOptions.create(context)) {
diff --git a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/presenter/TaxiPresenter.java b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/presenter/TaxiPresenter.java
index deaafcc374..3478be286d 100644
--- a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/presenter/TaxiPresenter.java
+++ b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/presenter/TaxiPresenter.java
@@ -15,7 +15,11 @@ import com.mogo.commons.mvp.Presenter;
import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotStatusListener;
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger;
import com.mogo.eagle.core.utilcode.util.UiThreadHandler;
+import com.mogo.och.common.module.biz.bean.DriverStatusQueryRespBean;
+import com.mogo.och.common.module.biz.callback.ILoginCallback;
+import com.mogo.och.common.module.biz.constant.LoginStatusManager;
import com.mogo.och.taxi.constant.TaxiConst;
+import com.mogo.och.taxi.constant.TaxiDriverRoleEnum;
import com.mogo.och.taxi.constant.TaxiOrderStatusEnum;
import com.mogo.och.taxi.bean.OrderQueryRespBean;
import com.mogo.och.taxi.bean.OrderQueryRouteInfoRespBean;
@@ -23,6 +27,7 @@ import com.mogo.och.taxi.callback.ITaxiADASStatusCallback;
import com.mogo.och.taxi.callback.ITaxiCarStatusCallback;
import com.mogo.och.taxi.callback.ITaxiControllerStatusCallback;
import com.mogo.och.taxi.callback.ITaxiOrderStatusCallback;
+import com.mogo.och.taxi.constant.TaxtServingStatusManager;
import com.mogo.och.taxi.model.TaxiModel;
import com.mogo.och.taxi.ui.TaxiFragment;
@@ -37,11 +42,10 @@ import java.util.List;
* 描述
*/
public class TaxiPresenter extends Presenter implements ITaxiADASStatusCallback,
- ITaxiCarStatusCallback, ITaxiOrderStatusCallback, ITaxiControllerStatusCallback {
+ ITaxiCarStatusCallback, ITaxiOrderStatusCallback, ITaxiControllerStatusCallback, ILoginCallback {
private static final String TAG = TaxiPresenter.class.getSimpleName();
- private boolean isFirstShow = true;
private int preAutopilotStatus = 0;
public TaxiPresenter(TaxiFragment view) {
@@ -64,16 +68,6 @@ public class TaxiPresenter extends Presenter implements ITaxiADASS
TaxiModel.getInstance().release();
}
- @Override
- public void onResume(@NonNull LifecycleOwner owner) {
- super.onResume(owner);
- if(isFirstShow){
- isFirstShow = false;
- }else {
- TaxiModel.getInstance().queryCarStatus();
- }
- }
-
private void initListeners() {
TaxiModel.getInstance().setADASStatusCallback(this);
TaxiModel.getInstance().setCarStatusCallback(this);
@@ -120,13 +114,6 @@ public class TaxiPresenter extends Presenter implements ITaxiADASS
TaxiModel.getInstance().jumpPassengerCheckDone();
}
- /**
- * 登录成功后查询登录状态
- */
- public void queryLoginStatus() {
- TaxiModel.getInstance().queryCarStatus();
- }
-
/**
* 司机确认车辆环境可开启自动驾驶
*/
@@ -225,25 +212,11 @@ public class TaxiPresenter extends Presenter implements ITaxiADASS
preAutopilotStatus = IMoGoAutopilotStatusListener.STATUS_PARALLEL_DRIVING;
}
- @Override
- public void onCarStatusChanged(boolean inOperation, String role) {
- runOnUIThread(() -> mView.updateOperationStatus(inOperation,role));
- }
-
@Override
public void onServiceDataUpdate(long dailyTimeDuration, long dailyOrderNum) {
runOnUIThread(() -> mView.onServiceDataUpdate(dailyTimeDuration,dailyOrderNum));
}
- @Override
- public void onCarLoginStatusChange(boolean isLogin) {
- if(isLogin){
- mView.hideLoginDialogFragment();
- }else {
- mView.showLoginDialogFragment();
- }
- }
-
@Override
public void onOrdersInServiceChanged(@NonNull @NotNull List inServiceList) {
@@ -344,4 +317,29 @@ public class TaxiPresenter extends Presenter implements ITaxiADASS
});
}
}
+
+ @Override
+ public void loginSuccess(DriverStatusQueryRespBean data) {
+ //设置 接单状态
+ TaxtServingStatusManager.setOpenOrderStatus(data.data.servingStatus);
+ //设置 是否启动订单轮训
+ TaxiModel.getInstance().startOrStopOrderLoop(LoginStatusManager.isLogin()&&TaxtServingStatusManager.isOpeningOrderStatus());
+
+ // 设置当前用户角色
+ String role = "";
+ if (TaxiDriverRoleEnum.DEMO.getCode() == data.data.purpose) {
+ role = TaxiConst.DEMO_USER;
+ } else if (TaxiDriverRoleEnum.TEST.getCode() == data.data.purpose) {
+ role = TaxiConst.TEST_USER;
+ }
+ String finalRole = role;
+ runOnUIThread(() -> {
+ mView.updateOperationStatus(TaxtServingStatusManager.isOpeningOrderStatus(), finalRole);
+ });
+ }
+
+ @Override
+ public void loginFail(boolean isLogin) {
+
+ }
}
diff --git a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/ui/TaxiFragment.java b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/ui/TaxiFragment.java
index 6db1b97582..d7b7c97a7e 100644
--- a/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/ui/TaxiFragment.java
+++ b/OCH/mogo-och-taxi/src/main/java/com/mogo/och/taxi/ui/TaxiFragment.java
@@ -13,15 +13,14 @@ import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.annotation.RequiresApi;
-import androidx.fragment.app.DialogFragment;
-import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentTransaction;
+import com.alibaba.android.arouter.launcher.ARouter;
import com.mogo.eagle.core.data.temp.EventLogout;
-import com.mogo.eagle.core.function.call.hmi.CallerHmiManager;
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger;
-import com.mogo.eagle.core.utilcode.util.AppStateManager;
import com.mogo.module.common.MogoApisHandler;
+import com.mogo.och.common.module.biz.constant.OchCommonConst;
+import com.mogo.och.common.module.biz.provider.LoginService;
import com.mogo.och.taxi.R;
import com.mogo.och.taxi.constant.TaxiOrderStatusEnum;
import com.mogo.och.taxi.bean.OrderQueryRespBean;
@@ -58,10 +57,19 @@ public class TaxiFragment extends BaseTaxiTabFragment taxiLoginDialogFragment = null;
private WeakReference personalDialogFragment = null;
protected double mCurLatitude = 0.0;
protected double mCurLongitude = 0.0;
+ private LoginService loginService;
+
+ @Override
+ public void onActivityCreated(@Nullable Bundle savedInstanceState) {
+ super.onActivityCreated(savedInstanceState);
+ loginService = (LoginService) ARouter.getInstance().build(OchCommonConst.LOGINSERVICE).navigation();
+ if(loginService!=null){
+ loginService.registerFragment(this, getPresenter());
+ }
+ }
@Nullable
@Override
@@ -163,6 +171,8 @@ public class TaxiFragment extends BaseTaxiTabFragment(TaxiLoginDialogFragment.newInstance());
- }
- TaxiLoginDialogFragment taxiLoginDialog = taxiLoginDialogFragment.get();
- if(taxiLoginDialog!=null) {
- if (taxiLoginDialog.getDialog() != null && taxiLoginDialog.getDialog().isShowing()) {
- return;
- }
- if (taxiLoginDialog.isAdded()) {//解决方法就是添加这行代码,如果已经添加了,就移除掉然后再show,就不会出现Fragment already added的错误了。
- getParentFragmentManager().beginTransaction().remove(taxiLoginDialog).commitAllowingStateLoss();
- }
- CallerLogger.INSTANCE.d(M_TAXI + TAG,"showLoginDialogFragment 展示登录界面");
- taxiLoginDialog.show(getParentFragmentManager(), TaxiLoginDialogFragment.Companion.getTAG());
- taxiLoginDialog.setOnDismissListener(dialog -> {
- taxiLoginDialogFragment.clear();
- mPresenter.queryLoginStatus();
- });
- }
- }
- public void hideLoginDialogFragment(){
- CallerLogger.INSTANCE.d(M_TAXI + TAG,"hideLoginDialogFragment 隐藏登录界面");
- if(taxiLoginDialogFragment!=null&&taxiLoginDialogFragment.get()!=null){
- taxiLoginDialogFragment.get().dismissAllowingStateLoss();
- }
- }
-
private void testRouteInfoUpload() {
TPRouteDataTestUtils.converToRouteData();
}
- /**
- * Taxi调试信息:订单、线路、轨迹等信息
- *
- * START
- */
+ //region Taxi调试信息:订单、线路、轨迹等信息
private View testBar;
private TextView testCurOrderId;
private TextView testCurLineId;
@@ -477,7 +441,6 @@ public class TaxiFragment extends BaseTaxiTabFragment {
- this.loginStatus = TaxiLoginStatusEnum.Logout
- }
- 1 -> {
- this.loginStatus = TaxiLoginStatusEnum.Login
- }
- else -> {
- this.loginStatus = TaxiLoginStatusEnum.None
- }
- }
- }
- @JvmStatic
- fun setLoginStatus(loginStatus: TaxiLoginStatusEnum) {
- this.loginStatus = loginStatus
- }
- @JvmStatic
- fun getLoginStatus(): TaxiLoginStatusEnum {
- return loginStatus
- }
- @JvmStatic
- fun isLogin():Boolean {
- if(loginStatus==TaxiLoginStatusEnum.Login){
- return true
- }
- return false
- }
- // region 是否可用接单
- @JvmStatic
- fun isOpeningOrderStatus():Boolean{
- if(openOrderStatus==TaxiOpenOrderStatusEnum.Ordering){
- return true
- }
- return false
- }
- @JvmStatic
- fun setOpenOrderStatus(status: Int) {
- when (status) {
- 0 -> {
- this.openOrderStatus = TaxiOpenOrderStatusEnum.UnOrdering
- }
- 1 -> {
- this.openOrderStatus = TaxiOpenOrderStatusEnum.Ordering
- }
- else -> {
- this.openOrderStatus = TaxiOpenOrderStatusEnum.None
- }
- }
- }
- @JvmStatic
- fun getOpenOrderStatus(): TaxiOpenOrderStatusEnum {
- return openOrderStatus
- }
-
- //endregion
-}
\ No newline at end of file
diff --git a/OCH/mogo-och-taxi/src/main/res/drawable-xhdpi-2560x1600/taxi_ic_login_bg.webp b/OCH/mogo-och-taxi/src/main/res/drawable-xhdpi-2560x1600/taxi_ic_login_bg.webp
deleted file mode 100644
index 7af7432551..0000000000
Binary files a/OCH/mogo-och-taxi/src/main/res/drawable-xhdpi-2560x1600/taxi_ic_login_bg.webp and /dev/null differ
diff --git a/OCH/mogo-och-taxi/src/main/res/drawable-xhdpi/taxi_ic_login_bg.webp b/OCH/mogo-och-taxi/src/main/res/drawable-xhdpi/taxi_ic_login_bg.webp
deleted file mode 100644
index 7af7432551..0000000000
Binary files a/OCH/mogo-och-taxi/src/main/res/drawable-xhdpi/taxi_ic_login_bg.webp and /dev/null differ
diff --git a/OCH/mogo-och-taxi/src/main/res/values/colors.xml b/OCH/mogo-och-taxi/src/main/res/values/colors.xml
index 743794b7f8..3aa7cfc710 100644
--- a/OCH/mogo-och-taxi/src/main/res/values/colors.xml
+++ b/OCH/mogo-och-taxi/src/main/res/values/colors.xml
@@ -25,14 +25,4 @@
#657EE2
- #2961F2
- #14FF0000
- #FF0000
- #666666
- #86A5F7
- #111533
- #878890
- #EF262C
- #4D000000
-
\ No newline at end of file
diff --git a/OCH/mogo-och-taxi/src/main/res/values/strings.xml b/OCH/mogo-och-taxi/src/main/res/values/strings.xml
index 1a370dcaa7..891e3168a3 100644
--- a/OCH/mogo-och-taxi/src/main/res/values/strings.xml
+++ b/OCH/mogo-och-taxi/src/main/res/values/strings.xml
@@ -32,17 +32,6 @@
自动驾驶状态为0不可用
司机端未确认可以开启自动驾驶
- 欢迎您登录
- 登录
- 获取验证码
- 请输入验证码
- 获取验证码成功
- 登录成功
- 请输入正确的手机号
- 请输入正确的验证码
- 请输入手机号
- 请输入手机号
-
网络异常,请稍后重试
请求出现异常,请稍后重试
\ No newline at end of file
diff --git a/OCH/mogo-och-taxi/src/main/res/values/styles.xml b/OCH/mogo-och-taxi/src/main/res/values/styles.xml
index ec73feaae9..bd2964b922 100644
--- a/OCH/mogo-och-taxi/src/main/res/values/styles.xml
+++ b/OCH/mogo-och-taxi/src/main/res/values/styles.xml
@@ -23,22 +23,4 @@
-
-
\ No newline at end of file
diff --git a/app/build.gradle b/app/build.gradle
index d7334c8151..afb3ab9496 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -33,19 +33,19 @@ if (!isAndroidTestBuild()) {
apply plugin: 'apm-plugin'
}
-//if (!isAndroidTestBuild()) {
-// apply plugin: 'bytex.threadOpt'
-// thread_opt {
-// enable true
-// enableInDebug true
-// logLevel "DEBUG"
-// //白名单中的类不进行替换
+if (!isAndroidTestBuild()) {
+ apply plugin: 'bytex.threadOpt'
+ thread_opt {
+ enable true
+ enableInDebug true
+ logLevel "DEBUG"
+ //白名单中的类不进行替换
// white_list = [
// 'leakcanary.*',
// 'com.loc.*'
// ]
-// }
-//}
+ }
+}
//if (!isAndroidTestBuild()) {
// /**
diff --git a/app/src/main/java/com/mogo/launcher/MogoApplication.java b/app/src/main/java/com/mogo/launcher/MogoApplication.java
index c472f0a6d4..ee39bc7a34 100644
--- a/app/src/main/java/com/mogo/launcher/MogoApplication.java
+++ b/app/src/main/java/com/mogo/launcher/MogoApplication.java
@@ -3,14 +3,14 @@ package com.mogo.launcher;
import com.mogo.eagle.core.function.main.MainMoGoApplication;
import android.content.Context;
-//import androidx.annotation.NonNull;
+import androidx.annotation.NonNull;
import com.mogo.eagle.core.utilcode.mogo.logger.LogLevel;
import com.mogo.eagle.core.utilcode.mogo.logger.Logger;
import com.mogo.launcher.crash.CrashSystem;
-//import com.mogo.thread.ext.core.ThreadManager;
-//import com.mogo.thread.ext.core.config.ThreadConfig;
-//
-//import java.util.concurrent.ThreadPoolExecutor;
+import com.mogo.thread.ext.core.ThreadManager;
+import com.mogo.thread.ext.core.config.ThreadConfig;
+
+import java.util.concurrent.ThreadPoolExecutor;
/**
* @author congtaowang
@@ -23,36 +23,40 @@ public class MogoApplication extends MainMoGoApplication {
@Override
protected void attachBaseContext(Context base) {
super.attachBaseContext(base);
-// ThreadConfig.Builder builder = new ThreadConfig.Builder().listener(new ThreadConfig.TaskExecuteListener() {
-// @Override
-// public boolean isEnabled() {
-// return true; // 如果返回true,会有后续的回调;如果返回false, 不会有后续的回调
-// }
+ ThreadConfig.Builder builder = new ThreadConfig.Builder().listener(new ThreadConfig.TaskExecuteListener() {
+ @Override
+ public boolean isEnabled() {
+ return true; // 如果返回true,会有后续的回调;如果返回false, 不会有后续的回调
+ }
+
+ @Override
+ public void onExecutorBefore(@NonNull Runnable runnable, @NonNull ThreadConfig.TaskType type) {
+ //每个任务执行前回调
+// if (type == ThreadConfig.TaskType.HandlerThread) {
//
-// @Override
-// public void onExecutorBefore(@NonNull Runnable runnable) {
-// //每个任务执行前回调
-// }
//
-// @Override
-// public void onExecutorAfter(@NonNull Runnable runnable) {
-// //每个任务执行后回调
-// }
-//
-// /**
-// * @param core 线程池的核心数
-// * @param max 线程池的最大线程数
-// * @param active 线程池正在活跃的任务数
-// * @param completed 线程池已完成的任务数
-// */
-// @Override
-// public void onExecutorStateChanged(@NonNull ThreadPoolExecutor pool, int core, int max, int active, long completed) {
-// //线程池在执行过程,状态变化回调
-// //Log.d("POOL", "core:" + core + ";max:" + max + ";active:" + active + ";completed:" + completed);
-// }
-// });
-// builder.loggable(false);
-// ThreadManager.INSTANCE.init(builder);
+// }
+ }
+
+ @Override
+ public void onExecutorAfter(@NonNull Runnable runnable, @NonNull ThreadConfig.TaskType type) {
+ //每个任务执行后回调
+ }
+
+ /**
+ * @param core 线程池的核心数
+ * @param max 线程池的最大线程数
+ * @param active 线程池正在活跃的任务数
+ * @param completed 线程池已完成的任务数
+ */
+ @Override
+ public void onExecutorStateChanged(@NonNull ThreadPoolExecutor pool, int core, int max, int active, long completed) {
+ //线程池在执行过程,状态变化回调
+ //Log.d("POOL", "core:" + core + ";max:" + max + ";active:" + active + ";completed:" + completed);
+ }
+ });
+ builder.loggable(false);
+ ThreadManager.INSTANCE.init(builder);
}
@Override
diff --git a/build.gradle b/build.gradle
index 786ea8b61e..a1ad739077 100644
--- a/build.gradle
+++ b/build.gradle
@@ -34,7 +34,7 @@ buildscript {
classpath "com.mogo.cloud:hook:${HOOK_LOG_VERSION}"
classpath "com.mogo.cloud:bizconfig:${BIZCONFIG_VERSION}"
classpath 'com.volcengine:apm_insight_plugin:1.4.1'
- classpath 'com.mogo.thread.opt:plg:2.2.12'
+ classpath 'com.mogo.thread.opt:plg:3.0.0'
classpath 'com.mogo.cloud:systrace:1.0.1'
classpath 'com.google.protobuf:protobuf-gradle-plugin:0.8.18'
classpath 'com.mogo.sticky:service:1.0.8'
diff --git a/config.gradle b/config.gradle
index b2b2ca68d5..67ef959049 100644
--- a/config.gradle
+++ b/config.gradle
@@ -234,7 +234,10 @@ ext {
//========================= Koom ======================
koomnative : "com.kuaishou.koom:koom-native-leak-static:2.2.0",
- koomxhook : "com.kuaishou.koom:xhook-static:2.2.0"
+ koomxhook : "com.kuaishou.koom:xhook-static:2.2.0",
+
+ //========================= Koom ======================
+ recyclerviewadapterhelper : "io.github.cymchad:BaseRecyclerViewAdapterHelper:3.0.4"
]
android = [
launcherApplicationId : "com.mogo.launcher",
diff --git a/core/function-impl/mogo-core-function-autopilot/src/main/java/com/mogo/eagle/core/function/autopilot/adapter/MoGoAdasListenerImpl.kt b/core/function-impl/mogo-core-function-autopilot/src/main/java/com/mogo/eagle/core/function/autopilot/adapter/MoGoAdasListenerImpl.kt
index 9174f7da53..65d1aa08fa 100644
--- a/core/function-impl/mogo-core-function-autopilot/src/main/java/com/mogo/eagle/core/function/autopilot/adapter/MoGoAdasListenerImpl.kt
+++ b/core/function-impl/mogo-core-function-autopilot/src/main/java/com/mogo/eagle/core/function/autopilot/adapter/MoGoAdasListenerImpl.kt
@@ -1,5 +1,6 @@
package com.mogo.eagle.core.function.autopilot.adapter
+import android.location.Location
import chassis.VehicleStateOuterClass
import com.mogo.eagle.core.data.app.AppConfigInfo
import com.mogo.eagle.core.data.config.FunctionBuildConfig
@@ -48,6 +49,7 @@ import com.mogo.eagle.core.function.call.autopilot.CallerAutopilotPointCloudList
import com.mogo.eagle.core.function.call.autopilot.CallerAutopilotRecordListenerManager.invokeAutopilotRecordResult
import com.mogo.eagle.core.function.call.autopilot.CallerAutopilotVehicleStateListenerManager
import com.mogo.eagle.core.function.call.map.CallerMapUIServiceManager
+import com.mogo.map.navi.MogoCarLocationChangedListenerRegister
import com.zhidao.support.adas.high.AdasManager
import com.zhidao.support.adas.high.OnAdasListener
import com.zhidao.support.adas.high.bean.AutopilotAbility
@@ -77,12 +79,12 @@ class MoGoAdasListenerImpl : OnAdasListener {
//车前引导线
@ChainLog(
- linkChainLog = CHAIN_LINK_LOG_WEB_SOCKET_TRAJECTORY,
- linkCode = CHAIN_LINK_ADAS,
- endpoint = PAD,
- nodeAliasCode = CHAIN_ALIAS_CODE_ADAS_MESSAGE_AUTOPILOT_TRAJECTORY,
- paramIndexes = [0, 1],
- clientPkFileName = "sn"
+ linkChainLog = CHAIN_LINK_LOG_WEB_SOCKET_TRAJECTORY,
+ linkCode = CHAIN_LINK_ADAS,
+ endpoint = PAD,
+ nodeAliasCode = CHAIN_ALIAS_CODE_ADAS_MESSAGE_AUTOPILOT_TRAJECTORY,
+ paramIndexes = [0, 1],
+ clientPkFileName = "sn"
)
override fun onTrajectory(header: MessagePad.Header, trajectory: MessagePad.Trajectory?) {
if (HdMapBuildConfig.isMapLoaded) {
@@ -94,16 +96,16 @@ class MoGoAdasListenerImpl : OnAdasListener {
//感知物体
@ChainLog(
- linkChainLog = CHAIN_LINK_LOG_WEB_SOCKET_DATA_TRACKED,
- linkCode = CHAIN_LINK_ADAS,
- endpoint = PAD,
- nodeAliasCode = CHAIN_ALIAS_CODE_ADAS_MESSAGE_RECT_DATA,
- paramIndexes = [0, 1],
- clientPkFileName = "sn"
+ linkChainLog = CHAIN_LINK_LOG_WEB_SOCKET_DATA_TRACKED,
+ linkCode = CHAIN_LINK_ADAS,
+ endpoint = PAD,
+ nodeAliasCode = CHAIN_ALIAS_CODE_ADAS_MESSAGE_RECT_DATA,
+ paramIndexes = [0, 1],
+ clientPkFileName = "sn"
)
override fun onTrackedObjects(
- header: MessagePad.Header,
- trackedObjects: MessagePad.TrackedObjects
+ header: MessagePad.Header,
+ trackedObjects: MessagePad.TrackedObjects
) {
if (HdMapBuildConfig.isMapLoaded) {
invokeAutopilotIdentifyDataUpdate(trackedObjects.objsList as List?)
@@ -112,12 +114,12 @@ class MoGoAdasListenerImpl : OnAdasListener {
//自车定位信息
@ChainLog(
- linkChainLog = CHAIN_LINK_LOG_WEB_SOCKET_GNSSINFO,
- linkCode = CHAIN_LINK_ADAS,
- endpoint = PAD,
- nodeAliasCode = CHAIN_ALIAS_CODE_ADAS_MESSAGE_CAR_STATE,
- paramIndexes = [0, 1],
- clientPkFileName = "sn"
+ linkChainLog = CHAIN_LINK_LOG_WEB_SOCKET_GNSSINFO,
+ linkCode = CHAIN_LINK_ADAS,
+ endpoint = PAD,
+ nodeAliasCode = CHAIN_ALIAS_CODE_ADAS_MESSAGE_CAR_STATE,
+ paramIndexes = [0, 1],
+ clientPkFileName = "sn"
)
override fun onGnssInfo(header: MessagePad.Header, gnssInfo: MessagePad.GnssInfo?) {
invokeAutopilotCarStateData(gnssInfo)
@@ -127,9 +129,9 @@ class MoGoAdasListenerImpl : OnAdasListener {
CallerMapUIServiceManager.getMapUIController()?.syncLocation2Map(gnssInfo)
// 同步更新经纬度和系统时间至 AutoPilotStatusListener
CallerAutoPilotStatusListenerManager.updateAutoPilotLatLon(
- gnssInfo.satelliteTime,
- gnssInfo.longitude,
- gnssInfo.latitude
+ gnssInfo.satelliteTime,
+ gnssInfo.longitude,
+ gnssInfo.latitude
)
}
}
@@ -137,16 +139,16 @@ class MoGoAdasListenerImpl : OnAdasListener {
//自车状态(底盘),车灯等。
@ChainLog(
- linkChainLog = CHAIN_LINK_LOG_WEB_SOCKET_VEHICLE,
- linkCode = CHAIN_LINK_ADAS,
- endpoint = PAD,
- nodeAliasCode = CHAIN_ALIAS_CODE_ADAS_MESSAGE_AUTOPILOT_VEHICLE,
- paramIndexes = [0, 1],
- clientPkFileName = "sn"
+ linkChainLog = CHAIN_LINK_LOG_WEB_SOCKET_VEHICLE,
+ linkCode = CHAIN_LINK_ADAS,
+ endpoint = PAD,
+ nodeAliasCode = CHAIN_ALIAS_CODE_ADAS_MESSAGE_AUTOPILOT_VEHICLE,
+ paramIndexes = [0, 1],
+ clientPkFileName = "sn"
)
override fun onVehicleState(
- header: MessagePad.Header,
- vehicleState: VehicleStateOuterClass.VehicleState?
+ header: MessagePad.Header,
+ vehicleState: VehicleStateOuterClass.VehicleState?
) {
if (vehicleState != null) {
@@ -172,16 +174,16 @@ class MoGoAdasListenerImpl : OnAdasListener {
//自动驾驶状态
@ChainLog(
- linkChainLog = CHAIN_LINK_LOG_WEB_SOCKET_AUTOPILOT,
- linkCode = CHAIN_LINK_ADAS,
- endpoint = PAD,
- nodeAliasCode = CHAIN_ALIAS_CODE_ADAS_MESSAGE_AUTOPILOT_STATUS,
- paramIndexes = [0, 1],
- clientPkFileName = "sn"
+ linkChainLog = CHAIN_LINK_LOG_WEB_SOCKET_AUTOPILOT,
+ linkCode = CHAIN_LINK_ADAS,
+ endpoint = PAD,
+ nodeAliasCode = CHAIN_ALIAS_CODE_ADAS_MESSAGE_AUTOPILOT_STATUS,
+ paramIndexes = [0, 1],
+ clientPkFileName = "sn"
)
override fun onAutopilotState(
- header: MessagePad.Header,
- autopilotState: MessagePad.AutopilotState?
+ header: MessagePad.Header,
+ autopilotState: MessagePad.AutopilotState?
) {
if (autopilotState != null) {
//工控机模拟时间
@@ -216,16 +218,16 @@ class MoGoAdasListenerImpl : OnAdasListener {
//监控
@ChainLog(
- linkChainLog = CHAIN_LINK_LOG_WEB_SOCKET_AUTOPILOT,
- linkCode = CHAIN_LINK_ADAS,
- endpoint = PAD,
- nodeAliasCode = CHAIN_ALIAS_CODE_ADAS_MESSAGE_AUTOPILOT_GUARDIAN,
- paramIndexes = [0, 1],
- clientPkFileName = "sn"
+ linkChainLog = CHAIN_LINK_LOG_WEB_SOCKET_AUTOPILOT,
+ linkCode = CHAIN_LINK_ADAS,
+ endpoint = PAD,
+ nodeAliasCode = CHAIN_ALIAS_CODE_ADAS_MESSAGE_AUTOPILOT_GUARDIAN,
+ paramIndexes = [0, 1],
+ clientPkFileName = "sn"
)
override fun onReportMessage(
- header: MessagePad.Header,
- mogoReportMessage: MogoReportMsg.MogoReportMessage?
+ header: MessagePad.Header,
+ mogoReportMessage: MogoReportMsg.MogoReportMessage?
) {
if (HdMapBuildConfig.isMapLoaded) {
invokeAutopilotGuardian(mogoReportMessage)
@@ -234,27 +236,27 @@ class MoGoAdasListenerImpl : OnAdasListener {
//感知红绿灯
@ChainLog(
- linkChainLog = CHAIN_LINK_LOG_WEB_SOCKET_TRAFFIC_LIGHT,
- linkCode = CHAIN_LINK_ADAS,
- endpoint = PAD,
- nodeAliasCode = CHAIN_ALIAS_CODE_ADAS_MESSAGE_AUTOPILOT_TRAFFIC_LIGHT,
- paramIndexes = [0, 1],
- clientPkFileName = "sn"
+ linkChainLog = CHAIN_LINK_LOG_WEB_SOCKET_TRAFFIC_LIGHT,
+ linkCode = CHAIN_LINK_ADAS,
+ endpoint = PAD,
+ nodeAliasCode = CHAIN_ALIAS_CODE_ADAS_MESSAGE_AUTOPILOT_TRAFFIC_LIGHT,
+ paramIndexes = [0, 1],
+ clientPkFileName = "sn"
)
override fun onPerceptionTrafficLight(
- header: MessagePad.Header?,
- trafficLights: TrafficLightOuterClass.TrafficLights?
+ header: MessagePad.Header?,
+ trafficLights: TrafficLightOuterClass.TrafficLights?
) {
if (trafficLights != null) {
CallerAutopilotIdentifyListenerManager.invokeAutopilotPerceptionTrafficLight(
- trafficLights
+ trafficLights
)
}
}
override fun onPredictionObstacleTrajectory(
- header: MessagePad.Header?,
- predictionObjects: Prediction.mPredictionObjects?
+ header: MessagePad.Header?,
+ predictionObjects: Prediction.mPredictionObjects?
) {
//他车轨迹预测
}
@@ -272,16 +274,16 @@ class MoGoAdasListenerImpl : OnAdasListener {
//planning障碍物
@ChainLog(
- linkChainLog = CHAIN_LINK_LOG_WEB_SOCKET_PLANNING_OBJECTS,
- linkCode = CHAIN_LINK_ADAS,
- endpoint = PAD,
- nodeAliasCode = CHAIN_ALIAS_CODE_ADAS_MESSAGE_PLANNING_OBJECTS,
- paramIndexes = [0, 1],
- clientPkFileName = "sn"
+ linkChainLog = CHAIN_LINK_LOG_WEB_SOCKET_PLANNING_OBJECTS,
+ linkCode = CHAIN_LINK_ADAS,
+ endpoint = PAD,
+ nodeAliasCode = CHAIN_ALIAS_CODE_ADAS_MESSAGE_PLANNING_OBJECTS,
+ paramIndexes = [0, 1],
+ clientPkFileName = "sn"
)
override fun onPlanningObjects(
- header: MessagePad.Header?,
- planningObjects: MessagePad.PlanningObjects
+ header: MessagePad.Header?,
+ planningObjects: MessagePad.PlanningObjects
) {
if (HdMapBuildConfig.isMapLoaded) {
invokeAutopilotIdentifyPlanningObj(planningObjects.objsList as List)
@@ -289,24 +291,24 @@ class MoGoAdasListenerImpl : OnAdasListener {
}
override fun onBasicInfoReq(
- header: MessagePad.Header,
- basicInfoReq: MessagePad.BasicInfoReq?
+ header: MessagePad.Header,
+ basicInfoReq: MessagePad.BasicInfoReq?
) {
invokeAutopilotSNRequest()
}
//工控机基础配置信息
@ChainLog(
- linkChainLog = CHAIN_LINK_LOG_CONNECT_STATUS,
- linkCode = CHAIN_LINK_ADAS,
- endpoint = PAD,
- nodeAliasCode = CHAIN_ALIAS_CODE_ADAS_MESSAGE_CAR_CONFIG,
- paramIndexes = [0, 1],
- clientPkFileName = "sn"
+ linkChainLog = CHAIN_LINK_LOG_CONNECT_STATUS,
+ linkCode = CHAIN_LINK_ADAS,
+ endpoint = PAD,
+ nodeAliasCode = CHAIN_ALIAS_CODE_ADAS_MESSAGE_CAR_CONFIG,
+ paramIndexes = [0, 1],
+ clientPkFileName = "sn"
)
override fun onCarConfigResp(
- header: MessagePad.Header,
- carConfigResp: MessagePad.CarConfigResp?
+ header: MessagePad.Header,
+ carConfigResp: MessagePad.CarConfigResp?
) {
if (HdMapBuildConfig.isMapLoaded && carConfigResp != null) {
AppConfigInfo.plateNumber = carConfigResp.plateNumber//车牌号
@@ -318,16 +320,16 @@ class MoGoAdasListenerImpl : OnAdasListener {
//全局路径规划
@ChainLog(
- linkChainLog = CHAIN_LINK_LOG_WEB_SOCKET_AUTOPILOT,
- linkCode = CHAIN_LINK_ADAS,
- endpoint = PAD,
- nodeAliasCode = CHAIN_ALIAS_CODE_ADAS_MESSAGE_AUTOPILOT_ROUTE,
- paramIndexes = [0, 1],
- clientPkFileName = "sn"
+ linkChainLog = CHAIN_LINK_LOG_WEB_SOCKET_AUTOPILOT,
+ linkCode = CHAIN_LINK_ADAS,
+ endpoint = PAD,
+ nodeAliasCode = CHAIN_ALIAS_CODE_ADAS_MESSAGE_AUTOPILOT_ROUTE,
+ paramIndexes = [0, 1],
+ clientPkFileName = "sn"
)
override fun onGlobalPathResp(
- header: MessagePad.Header,
- globalPathResp: MessagePad.GlobalPathResp?
+ header: MessagePad.Header,
+ globalPathResp: MessagePad.GlobalPathResp?
) {
if (HdMapBuildConfig.isMapLoaded) {
invokeAutopilotRotting(globalPathResp)
@@ -336,16 +338,16 @@ class MoGoAdasListenerImpl : OnAdasListener {
//数据采集,badCase
@ChainLog(
- linkChainLog = CHAIN_LINK_LOG_WEB_SOCKET_AUTOPILOT,
- linkCode = CHAIN_LINK_ADAS,
- endpoint = PAD,
- nodeAliasCode = CHAIN_ALIAS_CODE_ADAS_MESSAGE_AUTOPILOT_RECORD,
- paramIndexes = [0, 1],
- clientPkFileName = "sn"
+ linkChainLog = CHAIN_LINK_LOG_WEB_SOCKET_AUTOPILOT,
+ linkCode = CHAIN_LINK_ADAS,
+ endpoint = PAD,
+ nodeAliasCode = CHAIN_ALIAS_CODE_ADAS_MESSAGE_AUTOPILOT_RECORD,
+ paramIndexes = [0, 1],
+ clientPkFileName = "sn"
)
override fun onRecordResult(
- header: MessagePad.Header,
- recordPanel: RecordPanelOuterClass.RecordPanel?
+ header: MessagePad.Header,
+ recordPanel: RecordPanelOuterClass.RecordPanel?
) {
if (recordPanel != null) {
invokeAutopilotRecordResult(recordPanel)
@@ -367,16 +369,16 @@ class MoGoAdasListenerImpl : OnAdasListener {
//到站回调
@ChainLog(
- linkChainLog = CHAIN_LINK_LOG_WEB_SOCKET_AUTOPILOT,
- linkCode = CHAIN_LINK_ADAS,
- endpoint = PAD,
- nodeAliasCode = CHAIN_ALIAS_CODE_ADAS_MESSAGE_AUTOPILOT_ARRIVE,
- paramIndexes = [0, 1],
- clientPkFileName = "sn"
+ linkChainLog = CHAIN_LINK_LOG_WEB_SOCKET_AUTOPILOT,
+ linkCode = CHAIN_LINK_ADAS,
+ endpoint = PAD,
+ nodeAliasCode = CHAIN_ALIAS_CODE_ADAS_MESSAGE_AUTOPILOT_ARRIVE,
+ paramIndexes = [0, 1],
+ clientPkFileName = "sn"
)
override fun onArrivalNotification(
- header: MessagePad.Header,
- arrivalNotification: MessagePad.ArrivalNotification?
+ header: MessagePad.Header,
+ arrivalNotification: MessagePad.ArrivalNotification?
) {
if (HdMapBuildConfig.isMapLoaded) {
invokeArriveAtStation(arrivalNotification)
@@ -385,16 +387,16 @@ class MoGoAdasListenerImpl : OnAdasListener {
//状态查询应答
@ChainLog(
- linkChainLog = CHAIN_LINK_LOG_WEB_SOCKET_AUTOPILOT,
- linkCode = CHAIN_LINK_ADAS,
- endpoint = PAD,
- nodeAliasCode = CHAIN_ALIAS_CODE_ADAS_STATUS_QUERY_RESP,
- paramIndexes = [0, 1],
- clientPkFileName = "sn"
+ linkChainLog = CHAIN_LINK_LOG_WEB_SOCKET_AUTOPILOT,
+ linkCode = CHAIN_LINK_ADAS,
+ endpoint = PAD,
+ nodeAliasCode = CHAIN_ALIAS_CODE_ADAS_STATUS_QUERY_RESP,
+ paramIndexes = [0, 1],
+ clientPkFileName = "sn"
)
override fun onStatusQueryResp(
- header: MessagePad.Header?,
- statusInfo: SystemStatusInfo.StatusInfo?
+ header: MessagePad.Header?,
+ statusInfo: SystemStatusInfo.StatusInfo?
) {
invokeAutopilotStatusRespByQuery(statusInfo)
}
@@ -403,8 +405,8 @@ class MoGoAdasListenerImpl : OnAdasListener {
* 数据采集配置应答
*/
override fun onRecordDataConfigResp(
- header: MessagePad.Header?,
- config: MessagePad.RecordDataConfig?
+ header: MessagePad.Header?,
+ config: MessagePad.RecordDataConfig?
) {
}
@@ -413,16 +415,16 @@ class MoGoAdasListenerImpl : OnAdasListener {
* planning决策状态, 透传
*/
@ChainLog(
- linkChainLog = CHAIN_LINK_LOG_WEB_SOCKET_PLANNING_ACTIONS,
- linkCode = CHAIN_LINK_ADAS,
- endpoint = PAD,
- nodeAliasCode = CHAIN_ALIAS_CODE_ADAS_MESSAGE_PLANNING_ACTIONS,
- paramIndexes = [0, 1],
- clientPkFileName = "sn"
+ linkChainLog = CHAIN_LINK_LOG_WEB_SOCKET_PLANNING_ACTIONS,
+ linkCode = CHAIN_LINK_ADAS,
+ endpoint = PAD,
+ nodeAliasCode = CHAIN_ALIAS_CODE_ADAS_MESSAGE_PLANNING_ACTIONS,
+ paramIndexes = [0, 1],
+ clientPkFileName = "sn"
)
override fun onPlanningActionMsg(
- header: MessagePad.Header?,
- planningActionMsg: MessagePad.PlanningActionMsg?
+ header: MessagePad.Header?,
+ planningActionMsg: MessagePad.PlanningActionMsg?
) {
planningActionMsg?.let {
invokePNCActions(it)
diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/MoGoHmiFragment.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/MoGoHmiFragment.kt
index ba754a638d..bcc57eb412 100644
--- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/MoGoHmiFragment.kt
+++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/MoGoHmiFragment.kt
@@ -402,11 +402,6 @@ class MoGoHmiFragment : MvpFragment(),
mViewNotificationProvider = provider
}
-
- override fun changeBusOperationStatus(isOut: Boolean) {
- busOperationStatus?.changerOperationStatus(isOut)
- }
-
override fun setBusOperationView(view: IOchBusView) {
busOperationStatus = view
busOperationStatus?.showBusOperation()
@@ -1379,6 +1374,7 @@ class MoGoHmiFragment : MvpFragment(),
HmiBuildConfig.isShowSnBindingView = isOpen
}
+ private var takeOver = false
/**
* 工控机监控节点上报
@@ -1386,31 +1382,6 @@ class MoGoHmiFragment : MvpFragment(),
override fun onAutopilotGuardian(guardianInfo: MogoReportMsg.MogoReportMessage?) {
ThreadUtils.runOnUiThread {
guardianInfo?.let {
- when (it.code) {
- EXIT_AUTOPILOT_FOR_PLANNING,
- EXIT_AUTOPILOT_FOR_LOCATION,
- EXIT_AUTOPILOT_FOR_CHASSIS,
- EXIT_AUTOPILOT_FOR_DISTANCE -> {
- showWarningV2X(
- EventTypeEnum.TAKE_OVER_EVENT.poiType,
- EventTypeEnum.TAKE_OVER_EVENT.content,
- EventTypeEnum.TAKE_OVER_EVENT.tts,
- EventTypeEnum.TAKE_OVER_EVENT.poiType,
- object : IMoGoWarningStatusListener {
- override fun onShow() {
- clTakeOverView.visibility = View.VISIBLE
- }
-
- override fun onDismiss() {
- clTakeOverView.visibility = View.GONE
- }
- },
- true,
- 6000L
- )
- }
- }
-
if (reportList.size > 49) {
reportList.removeLast()
}
@@ -1423,6 +1394,38 @@ class MoGoHmiFragment : MvpFragment(),
)
reportListFloatWindow?.refreshData(reportList)
+ if(FunctionBuildConfig.isDemoMode){
+ return@let
+ }
+ if(takeOver){
+ return@let
+ }
+ when (it.code) {
+ EXIT_AUTOPILOT_FOR_PLANNING,
+ EXIT_AUTOPILOT_FOR_LOCATION,
+ EXIT_AUTOPILOT_FOR_CHASSIS,
+ EXIT_AUTOPILOT_FOR_DISTANCE -> {
+ showWarningV2X(
+ EventTypeEnum.TAKE_OVER_EVENT.poiType,
+ EventTypeEnum.TAKE_OVER_EVENT.content,
+ EventTypeEnum.TAKE_OVER_EVENT.tts,
+ EventTypeEnum.TAKE_OVER_EVENT.poiType,
+ object : IMoGoWarningStatusListener {
+ override fun onShow() {
+ takeOver = true
+ clTakeOverView.visibility = View.VISIBLE
+ }
+
+ override fun onDismiss() {
+ takeOver = false
+ clTakeOverView.visibility = View.GONE
+ }
+ },
+ true,
+ 6000L
+ )
+ }
+ }
}
}
}
diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/setting/DebugSettingView.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/setting/DebugSettingView.kt
index 384af51e4f..adc7747c96 100644
--- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/setting/DebugSettingView.kt
+++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/setting/DebugSettingView.kt
@@ -9,6 +9,7 @@ import android.graphics.Color
import android.os.Build
import android.text.Html
import android.util.AttributeSet
+import android.util.Log
import android.view.LayoutInflater
import android.view.View
import android.widget.*
@@ -21,7 +22,6 @@ import androidx.recyclerview.widget.LinearLayoutManager
import chassis.Chassis
import com.mogo.cloud.passport.MoGoAiCloudClient
import com.mogo.cloud.passport.MoGoAiCloudClientConfig
-import com.mogo.commons.AbsMogoApplication
import com.mogo.commons.debug.DebugConfig
import com.mogo.eagle.core.data.app.AppConfigInfo
import com.mogo.eagle.core.data.autopilot.*
@@ -57,7 +57,6 @@ import com.mogo.eagle.core.function.call.map.CallerSmpManager
import com.mogo.eagle.core.function.call.obu.CallerOBUManager
import com.mogo.eagle.core.function.call.obu.CallerObuListenerManager
import com.mogo.eagle.core.function.call.setting.CallerMoGoUiSettingManager
-import com.mogo.eagle.core.function.call.telematic.CallerTelematicManager
import com.mogo.eagle.core.function.hmi.R
import com.mogo.eagle.core.function.hmi.ui.logcatch.ILogViewListener
import com.mogo.eagle.core.function.hmi.ui.logcatch.LogInfoView
@@ -633,33 +632,20 @@ class DebugSettingView @JvmOverloads constructor(
}
-
// 初始化 GSP数据源 数据
rgGpsProvider.check(
when (FunctionBuildConfig.gpsProvider) {
- 0 -> {
- R.id.rbGpsProviderAndroid
- }
- 1 -> {
- R.id.rbGpsProviderRTK
- }
- 2 -> {
- R.id.rbGpsProviderOBU
- }
+ 0 -> R.id.rbGpsProviderAndroid
+ 1 -> R.id.rbGpsProviderRTK
+ 2 -> R.id.rbGpsProviderOBU
else -> R.id.rbGpsProviderAndroid
}
)
rgGpsProvider.setOnCheckedChangeListener { _, checkedId ->
when (checkedId) {
- R.id.rbGpsProviderAndroid -> {
- FunctionBuildConfig.gpsProvider = 0
- }
- R.id.rbGpsProviderRTK -> {
- FunctionBuildConfig.gpsProvider = 1
- }
- R.id.rbGpsProviderOBU -> {
- FunctionBuildConfig.gpsProvider = 2
- }
+ R.id.rbGpsProviderAndroid -> FunctionBuildConfig.gpsProvider = 0
+ R.id.rbGpsProviderRTK -> FunctionBuildConfig.gpsProvider = 1
+ R.id.rbGpsProviderOBU -> FunctionBuildConfig.gpsProvider = 2
}
}
@@ -690,22 +676,18 @@ class DebugSettingView @JvmOverloads constructor(
trackerIPCProvider.check(
when (FunctionBuildConfig.trackerIPCProvider) {
0 -> R.id.trackerIPCUnion
- 1 -> R.id.trackerIPCObu
- 2 -> R.id.trackerIPCV2N
+ 1 -> R.id.trackerIPC
+ 2 -> R.id.trackerIPCObu
+ 3 -> R.id.trackerIPCV2I
else -> R.id.trackerIPCUnion
}
)
- trackerProvider.setOnCheckedChangeListener{ _, checkedId ->
- when(checkedId){
- R.id.trackerIPCUnion -> {
- FunctionBuildConfig.trackerIPCProvider = 0
- }
- R.id.trackerIPCObu -> {
- FunctionBuildConfig.trackerIPCProvider = 1
- }
- R.id.trackerIPCV2N -> {
- FunctionBuildConfig.trackerIPCProvider = 2
- }
+ trackerIPCProvider.setOnCheckedChangeListener { _, checkedId ->
+ when (checkedId) {
+ R.id.trackerIPCUnion -> FunctionBuildConfig.trackerIPCProvider = 0
+ R.id.trackerIPC -> FunctionBuildConfig.trackerIPCProvider = 1
+ R.id.trackerIPCObu -> FunctionBuildConfig.trackerIPCProvider = 2
+ R.id.trackerIPCV2I -> FunctionBuildConfig.trackerIPCProvider = 3
}
}
diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/tools/AutoPilotAndCheckView.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/tools/AutoPilotAndCheckView.kt
index 141becc292..26c294afd6 100644
--- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/tools/AutoPilotAndCheckView.kt
+++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/tools/AutoPilotAndCheckView.kt
@@ -14,7 +14,6 @@ import com.mogo.commons.debug.DebugConfig
import com.mogo.eagle.core.data.app.AppConfigInfo
import com.mogo.eagle.core.data.autopilot.AutopilotStatusInfo
import com.mogo.eagle.core.data.bindingcar.IPCUpgradeStateInfo
-import com.mogo.eagle.core.data.temp.EventBusOperation
import com.mogo.eagle.core.data.temp.EventLogout
import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotCarConfigListener
import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotStatusListener
@@ -160,14 +159,15 @@ class AutoPilotAndCheckView @JvmOverloads constructor(
actvLoginout.onClick {
EventBus.getDefault().post(EventLogout())
}
+ actvLoginout.visibility = View.VISIBLE
+ CallerHmiManager.setBusOperationView(toolBusOperationView)
when (DebugConfig.getProductFlavor()) {
"fPadLenovoOchTaxi" -> {
- actvLoginout.visibility = View.VISIBLE
+ //出租车司机
}
"fPadLenovoOchBus" ->{
- CallerHmiManager.setBusOperationView(toolBusOperationView)
- EventBus.getDefault().post(EventBusOperation(0))
+ //小巴车司机
}
else -> {
diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/tools/BusOperationView.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/tools/BusOperationView.kt
index bfc83e98b9..37709763dd 100644
--- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/tools/BusOperationView.kt
+++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/tools/BusOperationView.kt
@@ -4,9 +4,10 @@ import android.content.Context
import android.util.AttributeSet
import android.view.LayoutInflater
import android.view.View
-import com.mogo.eagle.core.data.temp.EventBusOperation
import com.mogo.eagle.core.function.api.hmi.view.IOchBusView
import com.mogo.eagle.core.function.hmi.R
+import com.mogo.eagle.core.utilcode.util.SharedPrefs
+import com.mogo.eagle.core.utilcode.util.StringUtils
import kotlinx.android.synthetic.main.view_och_bus_operation.view.*
import org.greenrobot.eventbus.EventBus
@@ -18,11 +19,13 @@ class BusOperationView @JvmOverloads constructor(
context: Context?,
attrs: AttributeSet? = null,
defStyleAttr: Int = 0)
- : IOchBusView(context, attrs, defStyleAttr), View.OnClickListener {
+ : IOchBusView(context, attrs, defStyleAttr) {
init {
LayoutInflater.from(context).inflate(R.layout.view_och_bus_operation,this,true)
- ochBusOperationStatus.setOnClickListener(this)
+ context?.let {
+ actvAccountPhone.text = SharedPrefs.getInstance(it).getString("account","")
+ }
}
override fun showBusOperation() {
@@ -30,14 +33,29 @@ class BusOperationView @JvmOverloads constructor(
}
override fun changerOperationStatus(isOut: Boolean) {
- if (isOut){
- ochBusOperationStatusCTV.text = "收车"
- }else{
- ochBusOperationStatusCTV.text = "出车"
+
+ }
+
+ override fun onAttachedToWindow() {
+ super.onAttachedToWindow()
+ context?.let {
+ actvAccountPhone.text = phoneMask(SharedPrefs.getInstance(it).getString("och_account",""))
}
}
- override fun onClick(v: View?) {
- EventBus.getDefault().post(EventBusOperation(1))
+
+ /**
+ * 用户电话号码的打码隐藏加星号加*
+ * 一般都是中间四位
+ * @return 处理完成的手机号码
+ */
+ fun phoneMask(phone: String?): String? {
+ var res = ""
+ if (!StringUtils.isEmpty(phone)&&phone?.length==11) {
+ val stringBuilder = StringBuilder(phone)
+ res = stringBuilder.replace(3, 7, "****").toString()
+ }
+ return res
}
+
}
\ No newline at end of file
diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/drawable-xxhdpi/icon_account_head.png b/core/function-impl/mogo-core-function-hmi/src/main/res/drawable-xxhdpi/icon_account_head.png
new file mode 100755
index 0000000000..c9de0b61b9
Binary files /dev/null and b/core/function-impl/mogo-core-function-hmi/src/main/res/drawable-xxhdpi/icon_account_head.png differ
diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/layout/view_auto_pilot_check.xml b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/view_auto_pilot_check.xml
index 88f719956b..fe20f404b3 100644
--- a/core/function-impl/mogo-core-function-hmi/src/main/res/layout/view_auto_pilot_check.xml
+++ b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/view_auto_pilot_check.xml
@@ -17,24 +17,34 @@
android:layout_width="match_parent"
android:layout_height="wrap_content">
+
+
+ app:layout_constraintTop_toBottomOf="@+id/toolBusOperationView" />
+ app:layout_constraintStart_toStartOf="@+id/tv_check_title"
+ app:layout_constraintEnd_toEndOf="parent"
+ app:layout_constraintTop_toBottomOf="@+id/v_second_group">
+ app:layout_constraintStart_toEndOf="@+id/v_second_group"
+ app:layout_constraintTop_toTopOf="@+id/v_second_group"
+ app:layout_constraintBottom_toBottomOf="@+id/v_second_group"
+ />
-
-
+
+
@@ -1811,12 +1821,12 @@
android:textSize="@dimen/dp_24" />
diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/layout/view_och_bus_operation.xml b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/view_och_bus_operation.xml
index 267d9a844a..6507f81358 100644
--- a/core/function-impl/mogo-core-function-hmi/src/main/res/layout/view_och_bus_operation.xml
+++ b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/view_och_bus_operation.xml
@@ -1,17 +1,17 @@
-
-
-
\ No newline at end of file
+ android:layout_marginTop="40px"/>
+
+
+
+
+
\ No newline at end of file
diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/values/strings.xml b/core/function-impl/mogo-core-function-hmi/src/main/res/values/strings.xml
index 44111ae8da..958c053241 100644
--- a/core/function-impl/mogo-core-function-hmi/src/main/res/values/strings.xml
+++ b/core/function-impl/mogo-core-function-hmi/src/main/res/values/strings.xml
@@ -23,7 +23,7 @@
调试面板
录包设置
车速设置
- 出收车状态
+ 账户信息
系统运行
关机
重启
diff --git a/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/map/identify/IdentifyOriginDataDrawer.kt b/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/map/identify/IdentifyOriginDataDrawer.kt
index 343bbd8449..d4c3e3d62b 100644
--- a/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/map/identify/IdentifyOriginDataDrawer.kt
+++ b/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/map/identify/IdentifyOriginDataDrawer.kt
@@ -1,21 +1,14 @@
package com.mogo.eagle.core.function.map.identify
import android.annotation.SuppressLint
-import android.text.TextUtils
import androidx.collection.ArraySet
import com.mogo.commons.AbsMogoApplication
-import com.mogo.eagle.core.data.autopilot.AutopilotStatusInfo
-import com.mogo.eagle.core.data.config.FunctionBuildConfig
-import com.mogo.eagle.core.data.enums.TrafficTypeEnum
import com.mogo.eagle.core.data.traffic.TrafficData
-import com.mogo.eagle.core.data.traffic.threatLevelColor
-import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotStatusListener
-import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListenerManager
import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger.w
import com.mogo.map.MogoMarkerManager
import com.mogo.module.common.MogoApisHandler
-import mogo.telematics.pad.MessagePad
-import mogo.telematics.pad.MessagePad.*
+import mogo.telematics.pad.MessagePad.PlanningObject
+import mogo.telematics.pad.MessagePad.TrackedObject
import java.util.concurrent.ConcurrentHashMap
/**
@@ -23,20 +16,12 @@ import java.util.concurrent.ConcurrentHashMap
* @date 2021/10/19 10:45 上午
* 域控制器识别信息绘制
*/
-class IdentifyOriginDataDrawer : Identify, IMoGoAutopilotStatusListener {
+class IdentifyOriginDataDrawer : Identify {
companion object {
private const val TAG = "IdentifyDataDrawer"
}
- init {
- // 添加 ADAS状态 监听
- CallerAutoPilotStatusListenerManager.addListener(TAG, this)
- }
-
- @Volatile
- private var mAutopilotStatus: Int = 0 //自动驾驶状态
-
/**
* 上一帧数据的缓存
*/
@@ -54,58 +39,13 @@ class IdentifyOriginDataDrawer : Identify, IMoGoAutopilotStatusListener {
@SuppressLint("NewApi")
private val mFilterTrafficData = HashMap()
- /**
- * planning 感知物预警缓存,用于重置color状态
- */
- private val pncWarningTrafficData = ConcurrentHashMap()
-
- /**
- * obu 感知物预警缓存,用于重置color状态
- */
- private val obuWarningTrafficData = ConcurrentHashMap()
-
@SuppressLint("NewApi")
- override fun renderPlanningWarningObj(planningObjects: List?) {
- pncWarningTrafficData.clear()
- if (FunctionBuildConfig.isIgnoreConditionsDrawAutopilotTrajectoryData || mAutopilotStatus == 2) {
- if (planningObjects == null) {
- return
- }
- planningObjects.forEach { planningObj ->
- val trackId = planningObj.uuid.toString()
- if (mMarkersCaches.containsKey(trackId)) {
- val trackObj = mMarkersCaches[trackId]
- if (planningObj.type == 0) {
- //0是leading障碍物,障碍物车身红色提示
- trackObj?.let {
- pncWarningTrafficData[trackId] = PlanningTrack(
- "#D65D5AFF",
- CallerAutoPilotStatusListenerManager.getCurWgs84SatelliteTime()
- )
- }
- } else if (planningObj.type == 1) {
- //1是避障和择机的障碍物,障碍物车身黄色提示
- trackObj?.let {
- pncWarningTrafficData[trackId] = PlanningTrack(
- "#E4DD94FF",
- CallerAutoPilotStatusListenerManager.getCurWgs84SatelliteTime()
- )
- }
- }
- }
- }
- }
+ override fun renderPlanningWarningObj(planningObjects: List?) {
+ WarningHelper.renderPlanningOriginWarningObj(planningObjects, mMarkersCaches)
}
override fun renderOBUWarningObj(exist: Boolean, obuTrafficData: TrafficData) {
- if (obuTrafficData.uuid.isNullOrEmpty()) {
- return
- }
- if (exist) {
- obuWarningTrafficData[obuTrafficData.uuid!!] = obuTrafficData
- } else {
- obuWarningTrafficData.remove(obuTrafficData.uuid!!)
- }
+ WarningHelper.renderOBUWarningObj(exist, obuTrafficData)
}
/**
@@ -129,7 +69,7 @@ class IdentifyOriginDataDrawer : Identify, IMoGoAutopilotStatusListener {
//清除缓存
for (data in resultList) {
if (trafficDataUuidList.size > 0 && trafficDataUuidList.contains("" + data.uuid)) {
- if (!FunctionBuildConfig.isDrawUnknownIdentifyData && data.type == TrafficTypeEnum.TYPE_TRAFFIC_ID_WEI_ZHI.type) {
+ if (TrackerSourceHelper.filterData(data)) {
continue
}
trafficDataUuidList.remove("" + data.uuid)
@@ -165,7 +105,7 @@ class IdentifyOriginDataDrawer : Identify, IMoGoAutopilotStatusListener {
trafficDataUuidList.clear()
for (data in trafficData) {
// 过滤掉未知感知数据
- if (!FunctionBuildConfig.isDrawUnknownIdentifyData && data.type == TrafficTypeEnum.TYPE_TRAFFIC_ID_WEI_ZHI.type) {
+ if (TrackerSourceHelper.filterData(data)) {
continue
}
var temp: TrackedObject = data
@@ -173,38 +113,8 @@ class IdentifyOriginDataDrawer : Identify, IMoGoAutopilotStatusListener {
//首次过来的数据不添加,首次未添加的感知物在调用完绘制方法后再塞入cache map
val cacheData = mMarkersCaches[uuid]
if (cacheData != null) {
-
- //OBU数据颜色标记
- val first = data.trackedSourceList.stream()
- .filter { trackedSource: TrackedSource -> trackedSource.source == 4 }
- .findFirst()
- if (first.isPresent) {
- val subFirst = first.get().subSourceList.stream()
- .filter { subSource: SubSource -> subSource.source == 1 }
- .findFirst()
- if (subFirst.isPresent) {
- val subID = subFirst.get().id
- if (!TextUtils.isEmpty(subID)) {
- temp = data.toBuilder().setColor("#36D3FE").build()
- if (obuWarningTrafficData.containsKey(subID)) {
- temp = data.toBuilder()
- .setColor(obuWarningTrafficData[subID]!!.threatLevelColor())
- .build()
- }
- }
- }
- }
-
- //预警颜色变化
- if (pncWarningTrafficData.containsKey(uuid)) {
- val planningTrack = pncWarningTrafficData[uuid]
- if (!timeOut(planningTrack!!.time)) {
- temp = data.toBuilder().setColor(planningTrack.color).build()
- } else {
- pncWarningTrafficData.remove(uuid)
- }
- }
-
+ val color = TrackerSourceHelper.getDefaultColor(data)
+ temp = data.toBuilder().setColor(color).build()
mFilterTrafficData[uuid] = temp
}
mMarkersCaches[uuid] = temp
@@ -223,17 +133,7 @@ class IdentifyOriginDataDrawer : Identify, IMoGoAutopilotStatusListener {
.removeMarker(uuid)
}
trafficDataUuidList.clear()
- pncWarningTrafficData.clear()
- }
-
- override fun onAutopilotStatusResponse(autoPilotStatusInfo: AutopilotStatusInfo) {
- mAutopilotStatus = autoPilotStatusInfo.state
- }
-
- private fun timeOut(time: Double): Boolean {
- val duration =
- (CallerAutoPilotStatusListenerManager.getCurWgs84SatelliteTime() * 1000).toLong() - (time * 1000).toLong()
- return duration >= 500
+ WarningHelper.clear()
}
}
\ No newline at end of file
diff --git a/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/map/identify/TrackManager.java b/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/map/identify/TrackManager.java
index dfccf31eb5..c5b5a301f3 100644
--- a/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/map/identify/TrackManager.java
+++ b/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/map/identify/TrackManager.java
@@ -9,8 +9,6 @@ import androidx.annotation.RequiresApi;
import com.google.common.collect.BiMap;
import com.google.common.collect.HashBiMap;
import com.mogo.commons.AbsMogoApplication;
-import com.mogo.eagle.core.data.config.FunctionBuildConfig;
-import com.mogo.eagle.core.data.enums.TrafficTypeEnum;
import com.mogo.eagle.core.data.traffic.TrafficData;
import com.mogo.eagle.core.data.traffic.TrafficDataKt;
import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListenerManager;
@@ -22,7 +20,6 @@ import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
-import java.util.Optional;
import java.util.concurrent.ConcurrentHashMap;
import mogo.telematics.pad.MessagePad;
@@ -64,57 +61,13 @@ public class TrackManager {
@SuppressLint("NewApi")
private final HashMap mFilterTrafficData = new HashMap<>();
- //感知物预警各自先以帧数更新保持,不做同一个集合的融合处理(以卫星时间做判断先后,可能会出现不同ip节点间的回溯问题)
- /**
- * planning 感知物预警缓存,用于重置color状态
- */
- private final ConcurrentHashMap pncWarningTrafficData = new ConcurrentHashMap<>();
-
- /**
- * obu 感知物预警缓存,用于重置color状态
- */
- private final ConcurrentHashMap obuWarningTrafficData = new ConcurrentHashMap<>();
-
@SuppressLint("NewApi")
public synchronized void renderPlanningWarningObj(List planningObjects) {
- pncWarningTrafficData.clear();
- //处于美化模式或者自动驾驶状态下展示
- if (FunctionBuildConfig.isIgnoreConditionsDrawAutopilotTrajectoryData || CallerAutoPilotStatusListenerManager.INSTANCE.getAutoPilotStatusInfo().getState() == 2) {
- if (planningObjects == null) {
- return;
- }
- planningObjects.forEach(planningObj -> {
- String trackId = "" + planningObj.getUuid();
- if (mMarkersCaches.containsKey(trackId)) {
- TrackObj trackObj = mMarkersCaches.get(trackId);
- if (trackObj == null) {
- return;
- }
- if (planningObj.getType() == 0) {
- pncWarningTrafficData.put(trackId, new PlanningTrack(
- "#D65D5AFF",
- CallerAutoPilotStatusListenerManager.INSTANCE.getCurWgs84SatelliteTime()
- ));
- } else if (planningObj.getType() == 1) {
- pncWarningTrafficData.put(trackId, new PlanningTrack(
- "#E4DD94FF",
- CallerAutoPilotStatusListenerManager.INSTANCE.getCurWgs84SatelliteTime()
- ));
- }
- }
- });
- }
+ WarningHelper.INSTANCE.renderPlanningWarningObj(planningObjects, mMarkersCaches);
}
public synchronized void renderOBUWarningObj(boolean exist, TrafficData obuTrafficData) {
- if (obuTrafficData.getUuid() == null || obuTrafficData.getUuid().isEmpty()) {
- return;
- }
- if (exist) {
- obuWarningTrafficData.put(obuTrafficData.getUuid(), obuTrafficData);
- } else {
- obuWarningTrafficData.remove(obuTrafficData.getUuid());
- }
+ WarningHelper.INSTANCE.renderOBUWarningObj(exist, obuTrafficData);
}
/**
@@ -126,39 +79,14 @@ public class TrackManager {
mFilterTrafficData.clear();
//进入过滤机制的感知物体,首先从缓存队列中进行查找 uuid
for (MessagePad.TrackedObject data : trafficData) {
- if (!FunctionBuildConfig.isDrawUnknownIdentifyData && data.getType() == TrafficTypeEnum.TYPE_TRAFFIC_ID_WEI_ZHI.getType()) {
+ if (TrackerSourceHelper.INSTANCE.filterData(data)) {
continue;
}
String uuid = "" + data.getUuid();
TrackObj trackObj = mMarkersCaches.get(uuid);
- //OBU数据颜色标记
- Optional first = data.getTrackedSourceList().stream()
- .filter(trackedSource -> trackedSource.getSource() == 4).findFirst();
- if (first.isPresent()) {
- Optional subFirst = first.get().getSubSourceList().stream().filter(subSource -> subSource.getSource() == 1).findFirst();
- if (subFirst.isPresent()) {
- String subID = subFirst.get().getId();
- if (!TextUtils.isEmpty(subID)) {
- data = data.toBuilder().setColor("#36D3FE").build();
- if (obuWarningTrafficData.containsKey(subID)) {
- data = data.toBuilder()
- .setColor(TrafficDataKt.threatLevelColor(obuWarningTrafficData.get(subID)))
- .build();
- }
- }
- }
- }
-
- // 判断物体是否与预警信息
- if (pncWarningTrafficData.containsKey(uuid)) {
- PlanningTrack planningTrack = pncWarningTrafficData.get(uuid);
- if (planningTrack != null && !timeOut(planningTrack.getTime())) {
- data = data.toBuilder().setColor(planningTrack.getColor()).build();
- } else {
- pncWarningTrafficData.remove(uuid);
- }
- }
+ String color = TrackerSourceHelper.INSTANCE.getDefaultColor(data);
+ data = data.toBuilder().setColor(color).build();
if (trackObj != null) {
trackObj.updateObj(data);
@@ -178,7 +106,7 @@ public class TrackManager {
if (cache != null) {
//相对静止物体并且非obu数据,则不改变,为感知融合同位置物体,使用缓存数据做覆盖
if (cacheTrack.relativeStatic()) {
- if(data.getColor()!= null && !data.getColor().isEmpty()){
+ if (data.getColor() != null && !data.getColor().isEmpty()) {
cache = cache.toBuilder().setColor(data.getColor()).build();
}
data = cache;
@@ -206,7 +134,7 @@ public class TrackManager {
//过滤现有元素
for (MessagePad.TrackedObject data : resultList) {
String uuid = "" + data.getUuid();
- if (!FunctionBuildConfig.isDrawUnknownIdentifyData && data.getType() == TrafficTypeEnum.TYPE_TRAFFIC_ID_WEI_ZHI.getType()) {
+ if (TrackerSourceHelper.INSTANCE.filterData(data)) {
continue;
}
if (trafficDataUuid.size() > 0) {
@@ -234,13 +162,8 @@ public class TrackManager {
@SuppressLint("NewApi")
public void clearAll() {
trafficDataUuid.clear();
- pncWarningTrafficData.clear();
+ WarningHelper.INSTANCE.clear();
mMarkersCaches.forEach((uuid, trackObj) -> removeKey(uuid));
}
- private Boolean timeOut(Double time) {
- long duration = (long) (CallerAutoPilotStatusListenerManager.INSTANCE.getCurWgs84SatelliteTime() * 1000) - (long) (time * 1000);
- return duration >= 500;
- }
-
}
diff --git a/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/map/identify/TrackerSourceHelper.kt b/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/map/identify/TrackerSourceHelper.kt
new file mode 100644
index 0000000000..470b3068b6
--- /dev/null
+++ b/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/map/identify/TrackerSourceHelper.kt
@@ -0,0 +1,135 @@
+package com.mogo.eagle.core.function.map.identify
+
+import android.annotation.SuppressLint
+import com.mogo.eagle.core.data.config.FunctionBuildConfig
+import com.mogo.eagle.core.data.enums.TrafficTypeEnum
+import mogo.telematics.pad.MessagePad.*
+
+object TrackerSourceHelper {
+
+ @SuppressLint("NewApi")
+ fun filterData(data: TrackedObject): Boolean {
+ if (!FunctionBuildConfig.isDrawUnknownIdentifyData
+ && data.type == TrafficTypeEnum.TYPE_TRAFFIC_ID_WEI_ZHI.type
+ ) {
+ return true
+ }
+ var trackIPCFilter = true
+ when (FunctionBuildConfig.trackerIPCProvider) {
+ 0 -> trackIPCFilter = false
+ 1 -> if (isIPC(data)) {
+ trackIPCFilter = false
+ }
+ 2 -> {
+ if (isObu(data).second) {
+ trackIPCFilter = false
+ }
+ }
+ 3 -> {
+ if (isV2I(data).second) {
+ trackIPCFilter = false
+ }
+ }
+ }
+ return trackIPCFilter
+ }
+
+ fun getDefaultColor(data: TrackedObject): String {
+ var color = ""
+ if (!FunctionBuildConfig.isDrawUnknownIdentifyData
+ && data.type == TrafficTypeEnum.TYPE_TRAFFIC_ID_WEI_ZHI.type
+ ) {
+ return ""
+ }
+
+ if (isV2I(data).second) {
+ color = "#00AEFF"
+ }
+
+ //等级最高
+ if (isObu(data).second) {
+ color = "#36D3FE"
+ // obu预警
+ isObu(data).first?.let {
+ val obuColor = WarningHelper.getObuColor(it.id)
+ if (obuColor.isNotBlank()) {
+ color = obuColor
+ }
+ }
+ }
+
+ // pnc预警
+ val pncColor = WarningHelper.getPncColor(data.uuid.toString())
+ if (pncColor.isNotBlank()) {
+ color = pncColor
+ }
+ return color
+ }
+
+ /**
+ * 过滤所有 工控感知数据 all match
+ */
+ @SuppressLint("NewApi")
+ fun isIPC(data: TrackedObject): Boolean {
+ val source = data.trackedSourceList.stream().allMatch {
+ it.source != 4
+ }
+ return source
+ }
+
+ /**
+ * any match 任何一个匹配到OBU,则认为是存在obu数据
+ */
+ @SuppressLint("NewApi")
+ fun isObu(data: TrackedObject): Pair {
+ val source = data.trackedSourceList.stream().anyMatch {
+ it.source == 4
+ }
+ if (source) {
+ val first = data.trackedSourceList.stream()
+ .filter { trackedSource: TrackedSource -> trackedSource.source == 4 }.findFirst()
+ if (first.isPresent) {
+ val subObu = first.get().subSourceList.stream().anyMatch {
+ it.source == 1
+ }
+ if (subObu) {
+ val subFirst = first.get().subSourceList.stream()
+ .filter { subSource: SubSource -> subSource.source == 1 }
+ .findFirst()
+ if (subFirst.isPresent) {
+ return Pair(subFirst.get(), true)
+ }
+ }
+ }
+ }
+ return Pair(null, false)
+ }
+
+ /**
+ * 过滤所有 v2i 感知数据 all match
+ */
+ @SuppressLint("NewApi")
+ fun isV2I(data: TrackedObject): Pair {
+ val source = data.trackedSourceList.stream().allMatch {
+ it.source == 4
+ }
+ if (source) {
+ val first = data.trackedSourceList.stream()
+ .filter { trackedSource: TrackedSource -> trackedSource.source == 4 }.findFirst()
+ if (first.isPresent) {
+ val subV2I = first.get().subSourceList.stream().allMatch {
+ it.source == 6
+ }
+ if (subV2I) {
+ val subFirst = first.get().subSourceList.stream()
+ .filter { subSource: SubSource -> subSource.source == 6 }
+ .findFirst()
+ if (subFirst.isPresent) {
+ return Pair(subFirst.get(), true)
+ }
+ }
+ }
+ }
+ return Pair(null, false)
+ }
+}
\ No newline at end of file
diff --git a/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/map/identify/WarningHelper.kt b/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/map/identify/WarningHelper.kt
new file mode 100644
index 0000000000..f7f70ccb05
--- /dev/null
+++ b/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/map/identify/WarningHelper.kt
@@ -0,0 +1,148 @@
+package com.mogo.eagle.core.function.map.identify
+
+import android.annotation.SuppressLint
+import com.mogo.eagle.core.data.config.FunctionBuildConfig
+import com.mogo.eagle.core.data.traffic.TrafficData
+import com.mogo.eagle.core.data.traffic.threatLevelColor
+import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListenerManager.getAutoPilotStatusInfo
+import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListenerManager.getCurWgs84SatelliteTime
+import mogo.telematics.pad.MessagePad
+import mogo.telematics.pad.MessagePad.PlanningObject
+import java.util.concurrent.ConcurrentHashMap
+import java.util.function.Consumer
+
+object WarningHelper {
+
+ //感知物预警各自先以帧数更新保持,不做同一个集合的融合处理(以卫星时间做判断先后,可能会出现不同ip节点间的回溯问题)
+ /**
+ * planning 感知物预警缓存,用于重置color状态
+ */
+ private val pncWarningBeautyTrafficData = ConcurrentHashMap()
+
+ /**
+ * planning 感知物预警缓存,用于重置color状态
+ */
+ private val pncWarningOriginTrafficData = ConcurrentHashMap()
+
+ /**
+ * obu 感知物预警缓存,用于重置color状态
+ */
+ private val obuWarningTrafficData = ConcurrentHashMap()
+
+ @SuppressLint("NewApi")
+ fun renderPlanningWarningObj(
+ planningObjects: List?,
+ mMarkersCaches: ConcurrentHashMap
+ ) {
+ pncWarningBeautyTrafficData.clear()
+ //处于美化模式或者自动驾驶状态下展示
+ if (FunctionBuildConfig.isIgnoreConditionsDrawAutopilotTrajectoryData || getAutoPilotStatusInfo().state == 2) {
+ if (planningObjects == null) {
+ return
+ }
+ planningObjects.forEach(Consumer { planningObj: PlanningObject ->
+ val trackId = "" + planningObj.uuid
+ if (mMarkersCaches.containsKey(trackId)) {
+ mMarkersCaches[trackId] ?: return@Consumer
+ if (planningObj.type == 0) { //0是leading障碍物,障碍物车身红色提示
+ pncWarningBeautyTrafficData[trackId] = PlanningTrack(
+ "#D65D5AFF",
+ getCurWgs84SatelliteTime()
+ )
+ } else if (planningObj.type == 1) { //1是避障和择机的障碍物,障碍物车身黄色提示
+ pncWarningBeautyTrafficData[trackId] = PlanningTrack(
+ "#E4DD94FF",
+ getCurWgs84SatelliteTime()
+ )
+ }
+ }
+ })
+ }
+ }
+
+ @SuppressLint("NewApi")
+ fun renderPlanningOriginWarningObj(
+ planningObjects: List?,
+ mMarkersCaches: ConcurrentHashMap
+ ) {
+ pncWarningOriginTrafficData.clear()
+ //处于美化模式或者自动驾驶状态下展示
+ if (FunctionBuildConfig.isIgnoreConditionsDrawAutopilotTrajectoryData || getAutoPilotStatusInfo().state == 2) {
+ if (planningObjects == null) {
+ return
+ }
+ planningObjects.forEach(Consumer { planningObj: PlanningObject ->
+ val trackId = "" + planningObj.uuid
+ if (mMarkersCaches.containsKey(trackId)) {
+ mMarkersCaches[trackId] ?: return@Consumer
+ if (planningObj.type == 0) { //0是leading障碍物,障碍物车身红色提示
+ pncWarningOriginTrafficData[trackId] = PlanningTrack(
+ "#D65D5AFF",
+ getCurWgs84SatelliteTime()
+ )
+ } else if (planningObj.type == 1) { //1是避障和择机的障碍物,障碍物车身黄色提示
+ pncWarningOriginTrafficData[trackId] = PlanningTrack(
+ "#E4DD94FF",
+ getCurWgs84SatelliteTime()
+ )
+ }
+ }
+ })
+ }
+ }
+
+ fun renderOBUWarningObj(exist: Boolean, obuTrafficData: TrafficData) {
+ if (obuTrafficData.uuid == null || obuTrafficData.uuid!!.isEmpty()) {
+ return
+ }
+ if (exist) {
+ obuWarningTrafficData[obuTrafficData.uuid!!] = obuTrafficData
+ } else {
+ obuWarningTrafficData.remove(obuTrafficData.uuid)
+ }
+ }
+
+ fun getObuColor(uuid: String): String {
+ if (obuWarningTrafficData.containsKey(uuid)) {
+ return obuWarningTrafficData[uuid]!!.threatLevelColor()
+ }
+ return ""
+ }
+
+ fun getPncColor(uuid: String): String {
+ if (FunctionBuildConfig.isBeautyMode) {
+ // 判断物体是否有预警信息
+ if (pncWarningBeautyTrafficData.containsKey(uuid)) {
+ val planningTrack = pncWarningBeautyTrafficData[uuid]
+ if (planningTrack != null && !timeOut(planningTrack.time)) {
+ return planningTrack.color
+ } else {
+ pncWarningBeautyTrafficData.remove(uuid)
+ }
+ }
+ return ""
+ } else {
+ // 判断物体是否有预警信息
+ if (pncWarningOriginTrafficData.containsKey(uuid)) {
+ val planningTrack = pncWarningOriginTrafficData[uuid]
+ if (planningTrack != null && !timeOut(planningTrack.time)) {
+ return planningTrack.color
+ } else {
+ pncWarningOriginTrafficData.remove(uuid)
+ }
+ }
+ return ""
+ }
+ }
+
+ fun clear() {
+ pncWarningBeautyTrafficData.clear()
+ pncWarningOriginTrafficData.clear()
+ obuWarningTrafficData.clear()
+ }
+
+ private fun timeOut(time: Double): Boolean {
+ val duration = (getCurWgs84SatelliteTime() * 1000).toLong() - (time * 1000).toLong()
+ return duration >= 500
+ }
+}
\ No newline at end of file
diff --git a/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/config/FunctionBuildConfig.kt b/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/config/FunctionBuildConfig.kt
index 4f12272c8f..ed2b6943ae 100644
--- a/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/config/FunctionBuildConfig.kt
+++ b/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/config/FunctionBuildConfig.kt
@@ -80,7 +80,7 @@ object FunctionBuildConfig {
var debugTrackerProvider = 0
/**
- * 感知物识别使用的数据来源 0 = 默认输出 1 = 只显示工控硬件数据感知来源 2 = 只显示V2V数据来源 3 = 只显示V2N数据来源
+ * 感知物识别使用的数据来源 0 = 默认输出 1 = 只显示工控硬件数据感知来源 2 = 只显示V2V数据来源 3 = 只显示V2I数据来源
*/
@Volatile
@JvmField
diff --git a/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/temp/EventBusOperation.kt b/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/temp/EventBusOperation.kt
deleted file mode 100644
index 3aefda4737..0000000000
--- a/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/temp/EventBusOperation.kt
+++ /dev/null
@@ -1,10 +0,0 @@
-package com.mogo.eagle.core.data.temp
-
-/**
- * @author: wangmingjun
- * @date: 2022/8/23
- */
-class EventBusOperation constructor(var id:Int
-) {
-
-}
\ No newline at end of file
diff --git a/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/hmi/warning/IMoGoWaringProvider.kt b/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/hmi/warning/IMoGoWaringProvider.kt
index 5921a99347..61b818993d 100644
--- a/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/hmi/warning/IMoGoWaringProvider.kt
+++ b/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/hmi/warning/IMoGoWaringProvider.kt
@@ -257,7 +257,5 @@ interface IMoGoWaringProvider : IMoGoHmiViewProxy {
fun showVideoDialog(infList: List)
- fun changeBusOperationStatus(isOut:Boolean)
-
fun setBusOperationView(view:IOchBusView)
}
\ No newline at end of file
diff --git a/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/hmi/CallerHmiManager.kt b/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/hmi/CallerHmiManager.kt
index 2f8411528c..4b81da2533 100644
--- a/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/hmi/CallerHmiManager.kt
+++ b/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/hmi/CallerHmiManager.kt
@@ -397,13 +397,6 @@ object CallerHmiManager : CallerBase() {
waringProviderApi?.showVideoDialog(infList)
}
- /**
- * bus出车/收车状态设置
- * true : 显示收车; false:显示出车
- */
- fun changeBusOperationStatus(isOut: Boolean) {
- waringProviderApi?.changeBusOperationStatus(isOut)
- }
/**
* 设置 bus出车/收车View
diff --git a/libraries/mogo-map/src/main/java/com/mogo/map/AMapViewWrapper.java b/libraries/mogo-map/src/main/java/com/mogo/map/AMapViewWrapper.java
index fa71aec7a7..6a64322c93 100644
--- a/libraries/mogo-map/src/main/java/com/mogo/map/AMapViewWrapper.java
+++ b/libraries/mogo-map/src/main/java/com/mogo/map/AMapViewWrapper.java
@@ -744,15 +744,6 @@ public class AMapViewWrapper implements IMogoMapView,
mainHandler.removeCallbacks(mLocationTask);
mainHandler.post(mLocationTask);
}
- Location sysLocation = new Location(location.getProvider());
- sysLocation.setAltitude(location.getAltitude());
- sysLocation.setLatitude(location.getLat());
- sysLocation.setLongitude(location.getLon());
- sysLocation.setProvider(location.getProvider());
- sysLocation.setAccuracy(location.getAcceleration());
- sysLocation.setTime(location.duration);
- sysLocation.setBearing((float) location.getHeading());
- sysLocation.setSpeed(location.getSpeed());
// 将有效经纬度暂存本地,提供给下一次的Http-DNS使用,防止首次请求位置获取不到
if (location.getLat() > 0 && location.getLon() > 0) {
@@ -766,6 +757,17 @@ public class AMapViewWrapper implements IMogoMapView,
.putString(SharedPrefsConstants.LOCATION_LONGITUDE, String.valueOf(location.getLon()));
}
+ // 同步给各个模块
+ Location sysLocation = new Location(location.getProvider());
+ sysLocation.setAltitude(location.getAltitude());
+ sysLocation.setLatitude(location.getLat());
+ sysLocation.setLongitude(location.getLon());
+ sysLocation.setProvider(location.getProvider());
+ sysLocation.setAccuracy(location.getAcceleration());
+ sysLocation.setTime(location.duration);
+ sysLocation.setBearing((float) location.getHeading());
+ sysLocation.setSpeed(location.getSpeed());
+
if (MogoCarLocationChangedListenerRegister.getInstance().getListener() != null) {
MogoCarLocationChangedListenerRegister.getInstance().getListener().onCarLocationChanged2(sysLocation);
}
diff --git a/modules/mogo-module-common/src/main/java/com/mogo/module/common/enums/EventTypeEnum.kt b/modules/mogo-module-common/src/main/java/com/mogo/module/common/enums/EventTypeEnum.kt
index 7521d0ac83..2f9a527d69 100644
--- a/modules/mogo-module-common/src/main/java/com/mogo/module/common/enums/EventTypeEnum.kt
+++ b/modules/mogo-module-common/src/main/java/com/mogo/module/common/enums/EventTypeEnum.kt
@@ -363,8 +363,8 @@ enum class EventTypeEnum(
tts = ""
),
- TYPE_VIP_IDENTIFICATION("10022", "", "", R.drawable.icon_warning_v2x_vip_turn_light, "VIP车辆优先通行", "已为您变灯请优先通行"),
- TYPE_VIP_ERROR_IDENTIFICATION("10023", "", "", R.drawable.icon_warning_v2x_vip_turn_light, "请求失败,", "请求失败请稍后重试"),
+ TYPE_VIP_IDENTIFICATION("10022", "", "", R.drawable.icon_warning_v2x_vip_turn_light, "VIP车辆优先通行", "已为您变灯,请优先通行"),
+ TYPE_VIP_ERROR_IDENTIFICATION("10023", "", "", R.drawable.icon_warning_v2x_vip_turn_light, "请求失败,", "请求失败,请稍后重试"),
TYPE_OPTIMAL_ROUTE_RECOMMEND("2000", "", "", R.drawable.icon_warning_v2x_optimal_route, "为您推荐最优路线", "已为您选择最优路线");