[charter]

[3.2.0]
[订单倒计时和到站时间分割]
This commit is contained in:
yangyakun
2023-04-26 11:44:03 +08:00
parent 1436df91f0
commit fcb84b69bf
7 changed files with 69 additions and 39 deletions

View File

@@ -564,13 +564,11 @@ object CharterPassengerModel {
}
}
iDistanceTimeCallback?.setOrderTimeCallBack(-1)
iDistanceTimeCallback?.setDistancecAndTime(-1,-1)
}else{
iDistanceTimeCallback?.setOrderTimeCallBack(millisUntilFinished)
}
CallerLogger.d(
M_BUS_P + TAG,
"倒计时${millisUntilFinished}"
)
CallerLogger.d(M_BUS_P + TAG, "订单倒计时${millisUntilFinished}")
}
}
}
@@ -700,19 +698,28 @@ object CharterPassengerModel {
it.latitude
)
}
}
val lastTime: Double = lastSumLength / Charter_AVERAGE_SPEED * 3.6 //秒
CallerLogger.d(
SceneConstant.M_BUS_P + "calculateDistance",
"---lastSumLength: " + lastSumLength + "----lastTime : " + lastTime
+ " thread = " + Thread.currentThread().name
)
if (lastSumLength < CharterPassengerConst.ARRIVE_AT_START_STATION_DISTANCE) {
CallerLogger.d(SceneConstant.M_BUS_P + TAG,"小于15米到站2")
arriveDest()
val lastTime: Double = lastSumLength / Charter_AVERAGE_SPEED * 3.6 //秒
CallerLogger.d(
SceneConstant.M_BUS_P + "calculateDistance",
"---lastSumLength: " + lastSumLength + "----lastTime : " + lastTime
+ " thread = " + Thread.currentThread().name
)
if (lastSumLength < CharterPassengerConst.ARRIVE_AT_START_STATION_DISTANCE) {
CallerLogger.d(SceneConstant.M_BUS_P + TAG,"小于15米到站2")
arriveDest()
return
}
if(order.arriveStatus==OrderInfoResponse.ARRIVING) {
iDistanceTimeCallback?.setDistancecAndTime(
lastSumLength.toLong(),
lastTime.toLong()
)
}else{
iDistanceTimeCallback?.setDistancecAndTime(-1, -1)
}
}
iDistanceTimeCallback?.setDistancecAndTime(lastSumLength.toLong(), lastTime.toLong())
}
}
// endregion
@@ -869,7 +876,7 @@ object CharterPassengerModel {
// 结束路距计算
endCalculateDistanceLoop()
// 到站置距离位0
iDistanceTimeCallback?.setOrderTimeCallBack(-1)
iDistanceTimeCallback?.setDistancecAndTime(-1,-1)
}
}

View File

@@ -71,6 +71,7 @@ object BusPassengerModelLoopManager {
loopInfo.function.invoke()
CallerLogger.d(TAG, "${aLong}正在执行方法${tag}")
}catch (e:Throwable){
e.printStackTrace()
CallerLogger.e(TAG,"$tag:--$e")
}
}

View File

@@ -32,7 +32,7 @@ import com.mogo.och.common.module.bean.dpmsg.BaseDPMsg
import com.mogo.och.common.module.bean.dpmsg.DPCommonOperationMsg
import com.mogo.och.common.module.manager.devicemanage.LightAirconditionDoorCallback
import com.mogo.och.common.module.manager.devicemanage.LightAirconditionDoorManager
import java.util.*
import kotlin.math.ceil
class BusPassengerPresenter(view: MainFragment?) :
BusBasePassengerFunctionDevicePresenter<MainFragment?>(view),
@@ -66,9 +66,14 @@ class BusPassengerPresenter(view: MainFragment?) :
mView?.setSpeed(speedKM.toString())
}
}
private fun setDistanceAndTime(distance: String,distanceUnit: String){
private fun setDistanceAndTime(
distance: String,
distanceUnit: String,
leftTime: String,
arriveTime: String
) {
UiThreadHandler.post {
mView?.setDistanceAndTime(distance, distanceUnit)
mView?.setDistanceAndTime(distance, distanceUnit,leftTime,arriveTime)
}
}
private fun setOrderTime(sumTime:String,arrivedTime:String){
@@ -121,36 +126,33 @@ class BusPassengerPresenter(view: MainFragment?) :
* 计算剩余距离和剩余时间
*/
override fun setDistancecAndTime(meters: Long, timeInSecond: Long) {
if(meters<0&&timeInSecond<0){
setDistanceAndTime("--", context.getString(R.string.m1_distance_unit_km), "--", "--")
}
var dis: String? = "0"
var disUnit = "KM"
if (meters > 0) {
if (meters / 1000 < 1) {
disUnit = "M"
disUnit = context.getString(R.string.m1_distance_unit_m)
dis = Math.round(meters.toFloat()).toString()
} else {
disUnit = "KM"
disUnit = context.getString(R.string.m1_distance_unit_km)
dis = NumberFormatUtil.formatLong(meters.toDouble() / 1000)
}
}
setDistanceAndTime(dis.toString(),disUnit)
val time = ceil(timeInSecond / 60f).toInt()
val arriveTime = DateTimeUtil.getAfterSecondTime(time)
setDistanceAndTime(dis.toString(),disUnit,time.toString(),arriveTime)
}
override fun setOrderTimeCallBack(timeInSecond: Long) {
if(timeInSecond<0){
setDistanceAndTime("0", "KM")
setOrderTime("--","--")
return
}
var surplusTime = (timeInSecond / 60).toInt()
if(surplusTime==0){
surplusTime = 1
}
val beforeTime = Calendar.getInstance()
beforeTime.add(Calendar.SECOND, timeInSecond.toInt())
//到达时间
val arriveTime = DateTimeUtil.formatCalendarToString(beforeTime, DateTimeUtil.HH_mm)
setOrderTime(surplusTime.toString(),arriveTime)
val time = ceil(timeInSecond / 60f).toInt()
val arriveTime = DateTimeUtil.getAfterSecondTime(timeInSecond.toInt())
setOrderTime(time.toString(),arriveTime)
}
companion object{
@@ -206,7 +208,7 @@ class BusPassengerPresenter(view: MainFragment?) :
UiThreadHandler.post {
mView?.showOpenAndCloseDoor()
mView?.cleanEndStation()
setDistanceAndTime("0", "KM")
setDistancecAndTime(-1, -1)
setOrderTime("--","--")
}
}

View File

@@ -143,16 +143,19 @@ class MainFragment :
fun setDistanceAndTime(
distance: String,
distanceUnit: String,
leftTime:String,
arriveTime:String
) {
tv_distance.text = distance
tv_distance_unit.text = "距离(${distanceUnit})"
tv_distance_surplus_time.text = leftTime
tv_distance_arrive_time.text = arriveTime
}
fun setOrderTime(
sumTime: String,
arrivedTime: String
) {
tv_distance_surplus_time.text = sumTime
tv_distance_arrive_time.text = arrivedTime
}
fun setCarModle(rawInfo: Int){

View File

@@ -118,7 +118,7 @@
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintBottom_toTopOf="@+id/v_line_01"
android:text="距离KM"
android:text="@string/m1_distance_unit_km"
android:textSize="@dimen/dp_17"
android:textColor="@color/bus_p_m1_112b57"
android:layout_width="wrap_content"
@@ -153,7 +153,7 @@
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintBottom_toTopOf="@+id/v_line_02"
android:text="剩余(分)"
android:text="@string/m1_arrive_left_time"
android:textSize="@dimen/dp_17"
android:textColor="@color/bus_p_m1_112b57"
android:layout_width="wrap_content"
@@ -187,7 +187,7 @@
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintBottom_toBottomOf="parent"
android:text="到达"
android:text="@string/m1_reach_time"
android:textSize="@dimen/dp_17"
android:textColor="@color/bus_p_m1_112b57"
android:layout_width="wrap_content"

View File

@@ -29,6 +29,12 @@
<string name="m1_end_order_5min">包车将在5分钟后结束结束后我们将自动为您寻找停车点</string>
<string name="m1_distance_unit_km">距离KM</string>
<string name="m1_distance_unit_m">距离M</string>
<string name="m1_arrive_left_time">剩余(分)</string>
<string name="m1_reach_time">到达</string>

View File

@@ -110,4 +110,15 @@ public class DateTimeUtil {
calendar.set(Calendar.SECOND,0);
return calendar.getTimeInMillis();
}
public static String getAfterSecondTime(int timeInSecond,String formate){
Calendar beforeTime = Calendar.getInstance();
beforeTime.add(Calendar.SECOND, timeInSecond);
return formatCalendarToString(beforeTime, formate);
}
public static String getAfterSecondTime(int timeInSecond){
Calendar beforeTime = Calendar.getInstance();
beforeTime.add(Calendar.SECOND, timeInSecond);
return formatCalendarToString(beforeTime, DateTimeUtil.HH_mm);
}
}