From 3eae8acccbfa62222e9e681144cd4ff2c318c363 Mon Sep 17 00:00:00 2001 From: yangyakun Date: Mon, 13 Feb 2023 12:39:14 +0800 Subject: [PATCH] =?UTF-8?q?[m1]=20[1.0.0]=20[=E9=80=9F=E5=BA=A6=E3=80=81?= =?UTF-8?q?=E8=B7=9D=E7=A6=BB=E3=80=81time]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../presenter/BusPassengerPresenter.kt | 64 ++++++++++++++++--- .../passenger/ui/BusPassengerRouteFragment.kt | 12 ++-- .../view/statusbar/M1BlueToothView.kt | 1 + .../src/m1/res/layout/bus_p_fragment.xml | 1 + 4 files changed, 63 insertions(+), 15 deletions(-) diff --git a/OCH/mogo-och-bus-passenger/src/m1/java/com/mogo/och/bus/passenger/presenter/BusPassengerPresenter.kt b/OCH/mogo-och-bus-passenger/src/m1/java/com/mogo/och/bus/passenger/presenter/BusPassengerPresenter.kt index c0a801447b..8acf6edfbc 100644 --- a/OCH/mogo-och-bus-passenger/src/m1/java/com/mogo/och/bus/passenger/presenter/BusPassengerPresenter.kt +++ b/OCH/mogo-och-bus-passenger/src/m1/java/com/mogo/och/bus/passenger/presenter/BusPassengerPresenter.kt @@ -1,34 +1,78 @@ package com.mogo.och.bus.passenger.presenter import androidx.lifecycle.LifecycleOwner +import com.amap.api.maps.model.LatLng import com.mogo.eagle.core.data.map.MogoLocation -import com.mogo.eagle.core.function.api.autopilot.IMoGoChassisLocationGCJ02Listener -import com.mogo.eagle.core.function.call.autopilot.CallerChassisLocationGCJ02ListenerManager +import com.mogo.och.bus.passenger.callback.IBusPassengerAutopilotPlanningCallback +import com.mogo.och.bus.passenger.callback.IBusPassengerControllerStatusCallback +import com.mogo.och.bus.passenger.model.BusPassengerModel import com.mogo.och.bus.passenger.ui.BusPassengerRouteFragment +import com.mogo.och.common.module.utils.DateTimeUtil +import com.mogo.och.common.module.utils.NumberFormatUtil +import java.util.* class BusPassengerPresenter(view: BusPassengerRouteFragment?) : BusBasePassengerFunctionDevicePresenter(view), - IMoGoChassisLocationGCJ02Listener { + IBusPassengerControllerStatusCallback, IBusPassengerAutopilotPlanningCallback { override fun onCreate(owner: LifecycleOwner) { super.onCreate(owner) // 定位监听 - CallerChassisLocationGCJ02ListenerManager.addListener(TAG, this) + BusPassengerModel.setControllerStatusCallback(TAG,this) + BusPassengerModel.setMoGoAutopilotPlanningListener(this) + } override fun onDestroy(owner: LifecycleOwner) { super.onDestroy(owner) - CallerChassisLocationGCJ02ListenerManager.removeListener(TAG) - } - override fun onChassisLocationGCJ02(mogoLocation: MogoLocation?) { - mogoLocation?.let { - setSpeed(it.gnssSpeed) - } + BusPassengerModel.setControllerStatusCallback(TAG,null) } private fun setSpeed(speed:Float){ val speedKM =(Math.abs(speed) * 3.6f).toInt() mView?.setSpeed(speedKM.toString()) } + private fun setDistanceAndTime(distance: String,distanceUnit: String,sumTime:String,arrivedTime:String){ + mView?.setDistanceAndTime(distance,distanceUnit,sumTime,arrivedTime) + } companion object{ private const val TAG = "BusPassengerPresenter" } + + override fun onVRModeChanged(isVRMode: Boolean) { + TODO("Not yet implemented") + } + + override fun onCarLocationChanged(location: MogoLocation?) { + location?.let { + setSpeed(it.gnssSpeed) + } + } + + override fun routeResult(models: MutableList?, haveArrivedIndex: Int) { + // 轨迹擦除 + } + + override fun routePlanningToNextStationChanged(meters: Long, timeInSecond: Long) { + var dis: String? = "0" + var disUnit = "公里" + if (meters > 0) { + if (meters / 1000 < 1) { + disUnit = "米" + dis = Math.round(meters.toFloat()).toString() + } else { + disUnit = "公里" + dis = NumberFormatUtil.formatLong(meters.toDouble() / 1000) + } + } + val surplusTime = Math.ceil(timeInSecond.toDouble() / 60f).toInt() + + val beforeTime = Calendar.getInstance() + beforeTime.add(Calendar.MINUTE, surplusTime) + //到达时间 + val arriveTime = DateTimeUtil.formatCalendarToString(beforeTime, DateTimeUtil.TAXI_HH_mm) + setDistanceAndTime(dis.toString(),disUnit,surplusTime.toString(),arriveTime) + } + + override fun updateTotalDistance() { + TODO("Not yet implemented") + } } \ No newline at end of file diff --git a/OCH/mogo-och-bus-passenger/src/m1/java/com/mogo/och/bus/passenger/ui/BusPassengerRouteFragment.kt b/OCH/mogo-och-bus-passenger/src/m1/java/com/mogo/och/bus/passenger/ui/BusPassengerRouteFragment.kt index c22e5182a4..a0f96fb8d7 100644 --- a/OCH/mogo-och-bus-passenger/src/m1/java/com/mogo/och/bus/passenger/ui/BusPassengerRouteFragment.kt +++ b/OCH/mogo-och-bus-passenger/src/m1/java/com/mogo/och/bus/passenger/ui/BusPassengerRouteFragment.kt @@ -1,16 +1,12 @@ package com.mogo.och.bus.passenger.ui import android.os.Bundle -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup import androidx.fragment.app.DialogFragment import androidx.fragment.app.Fragment import com.mogo.commons.mvp.MvpFragment import com.mogo.eagle.core.function.call.hmi.CallerHmiManager import com.mogo.eagle.core.function.call.map.CallerSmpManager.hidePanel import com.mogo.eagle.core.function.hmi.ui.setting.ToggleDebugView -import com.mogo.eagle.core.function.view.MapBizView import com.mogo.eagle.core.utilcode.kotlin.onClick import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant @@ -97,7 +93,13 @@ class BusPassengerRouteFragment : fun setSpeed(speed:String){ - tv_distance.text = speed + tv_speed.text = speed + } + fun setDistanceAndTime(distance: String,distanceUnit: String,sumTime:String,arrivedTime:String){ + tv_distance.text = distance + tv_distance_unit.text = "距离(${distanceUnit})" + tv_distance_surplus_time.text = sumTime + tv_distance_arrive_time.text = arrivedTime } override fun createPresenter(): BusPassengerPresenter { diff --git a/OCH/mogo-och-bus-passenger/src/m1/java/com/mogo/och/bus/passenger/view/statusbar/M1BlueToothView.kt b/OCH/mogo-och-bus-passenger/src/m1/java/com/mogo/och/bus/passenger/view/statusbar/M1BlueToothView.kt index 77b0ed1057..abd9e37f2b 100644 --- a/OCH/mogo-och-bus-passenger/src/m1/java/com/mogo/och/bus/passenger/view/statusbar/M1BlueToothView.kt +++ b/OCH/mogo-och-bus-passenger/src/m1/java/com/mogo/och/bus/passenger/view/statusbar/M1BlueToothView.kt @@ -11,6 +11,7 @@ import kotlinx.android.synthetic.m1.bus_p_m1_view_blue_tooth.view.* /** * 魔戒蓝牙控件 * 放置于StatusBar右侧位置 + * todo arrow */ class M1BlueToothView @JvmOverloads constructor( context: Context, diff --git a/OCH/mogo-och-bus-passenger/src/m1/res/layout/bus_p_fragment.xml b/OCH/mogo-och-bus-passenger/src/m1/res/layout/bus_p_fragment.xml index 0e87e7928c..35d7fe68b6 100644 --- a/OCH/mogo-och-bus-passenger/src/m1/res/layout/bus_p_fragment.xml +++ b/OCH/mogo-och-bus-passenger/src/m1/res/layout/bus_p_fragment.xml @@ -41,6 +41,7 @@ android:orientation="vertical" android:layout_height="@dimen/dp_152">