[m1]
[1.0.0] [速度、距离、time]
This commit is contained in:
@@ -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")
|
||||
}
|
||||
}
|
||||
@@ -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 {
|
||||
|
||||
@@ -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,
|
||||
|
||||
@@ -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"
|
||||
|
||||
Reference in New Issue
Block a user