From fcb84b69bf4c0fe9b54e102b7d77da5161c47dfa Mon Sep 17 00:00:00 2001 From: yangyakun Date: Wed, 26 Apr 2023 11:44:03 +0800 Subject: [PATCH] =?UTF-8?q?[charter]=20[3.2.0]=20[=E8=AE=A2=E5=8D=95?= =?UTF-8?q?=E5=80=92=E8=AE=A1=E6=97=B6=E5=92=8C=E5=88=B0=E7=AB=99=E6=97=B6?= =?UTF-8?q?=E9=97=B4=E5=88=86=E5=89=B2]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../passenger/model/CharterPassengerModel.kt | 39 +++++++++++-------- .../net/BusPassengerModelLoopManager.kt | 1 + .../presenter/BusPassengerPresenter.kt | 38 +++++++++--------- .../mogo/och/bus/passenger/ui/MainFragment.kt | 7 +++- .../src/main/res/layout/m1_main_fragment.xml | 6 +-- .../src/main/res/values/strings.xml | 6 +++ .../och/common/module/utils/DateTimeUtil.java | 11 ++++++ 7 files changed, 69 insertions(+), 39 deletions(-) diff --git a/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/model/CharterPassengerModel.kt b/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/model/CharterPassengerModel.kt index 8cb85c1c03..edcba59b1a 100644 --- a/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/model/CharterPassengerModel.kt +++ b/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/model/CharterPassengerModel.kt @@ -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) } } diff --git a/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/net/BusPassengerModelLoopManager.kt b/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/net/BusPassengerModelLoopManager.kt index 8b7ce2e2b8..73cf0172f0 100644 --- a/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/net/BusPassengerModelLoopManager.kt +++ b/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/net/BusPassengerModelLoopManager.kt @@ -71,6 +71,7 @@ object BusPassengerModelLoopManager { loopInfo.function.invoke() CallerLogger.d(TAG, "${aLong}正在执行方法${tag}") }catch (e:Throwable){ + e.printStackTrace() CallerLogger.e(TAG,"$tag:--$e") } } diff --git a/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/presenter/BusPassengerPresenter.kt b/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/presenter/BusPassengerPresenter.kt index 0489cbaa8d..105ee215ce 100644 --- a/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/presenter/BusPassengerPresenter.kt +++ b/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/presenter/BusPassengerPresenter.kt @@ -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(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("--","--") } } diff --git a/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/ui/MainFragment.kt b/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/ui/MainFragment.kt index 8b753876ad..855586148d 100644 --- a/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/ui/MainFragment.kt +++ b/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/ui/MainFragment.kt @@ -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){ diff --git a/OCH/mogo-och-charter-passenger/src/main/res/layout/m1_main_fragment.xml b/OCH/mogo-och-charter-passenger/src/main/res/layout/m1_main_fragment.xml index 52c5eeaf30..602eb96beb 100644 --- a/OCH/mogo-och-charter-passenger/src/main/res/layout/m1_main_fragment.xml +++ b/OCH/mogo-och-charter-passenger/src/main/res/layout/m1_main_fragment.xml @@ -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" diff --git a/OCH/mogo-och-charter-passenger/src/main/res/values/strings.xml b/OCH/mogo-och-charter-passenger/src/main/res/values/strings.xml index d2b0ab1abf..723d800b4f 100644 --- a/OCH/mogo-och-charter-passenger/src/main/res/values/strings.xml +++ b/OCH/mogo-och-charter-passenger/src/main/res/values/strings.xml @@ -29,6 +29,12 @@ 包车将在5分钟后结束,结束后我们将自动为您寻找停车点 + 距离(KM) + 距离(M) + 剩余(分) + 到达 + + diff --git a/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/utils/DateTimeUtil.java b/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/utils/DateTimeUtil.java index 37550ad892..1330b852ee 100644 --- a/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/utils/DateTimeUtil.java +++ b/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/utils/DateTimeUtil.java @@ -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); + } }