[charter]
[3.2.0] [订单倒计时和到站时间分割]
This commit is contained in:
@@ -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)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -71,6 +71,7 @@ object BusPassengerModelLoopManager {
|
||||
loopInfo.function.invoke()
|
||||
CallerLogger.d(TAG, "${aLong}正在执行方法${tag}")
|
||||
}catch (e:Throwable){
|
||||
e.printStackTrace()
|
||||
CallerLogger.e(TAG,"$tag:--$e")
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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("--","--")
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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){
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user