[1.0.0]
[速度、距离、time]
This commit is contained in:
yangyakun
2023-02-13 12:39:14 +08:00
parent 17dcdf726e
commit 3eae8acccb
4 changed files with 63 additions and 15 deletions

View File

@@ -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<BusPassengerRouteFragment?>(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<LatLng>?, 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")
}
}

View File

@@ -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 {

View File

@@ -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,

View File

@@ -41,6 +41,7 @@
android:orientation="vertical"
android:layout_height="@dimen/dp_152">
<TextView
android:id="@+id/tv_speed"
android:text="68"
android:textSize="@dimen/dp_60"
android:textColor="@color/bus_p_m1_f5fbff"