[1.1.2]
[提前结束页面]
This commit is contained in:
yangyakun
2023-03-01 20:10:14 +08:00
parent d8278f6cea
commit a66d00efc3
8 changed files with 166 additions and 31 deletions

View File

@@ -399,6 +399,9 @@ object CharterPassengerModel {
}
return null
}
fun hasOrder():Boolean{
return orderInfo != null
}
// endregion
// region车辆服务状态轮询
@@ -636,20 +639,9 @@ object CharterPassengerModel {
return Pair(0, false)
}
fun endOrder() {
fun endOrder(callback: OchCommonServiceCallback<BaseData>?) {
orderInfo?.orderNo?.let {
BusPassengerServiceManager.endOrder(
mContext, it, object : OchCommonServiceCallback<BaseData> {
override fun onSuccess(data: BaseData?) {
if (null != data && 0 == data.code) {
ToastUtils.showShort("结束成功")
}
}
override fun onFail(code: Int, msg: String) {
ToastUtils.showShort("$code:$msg")
}
})
BusPassengerServiceManager.endOrder(mContext, it, callback)
}
}

View File

@@ -9,11 +9,11 @@ package com.mogo.och.bus.passenger.model
* 20 已登出,
*/
enum class OrderStatusEnum(val code: Int) {
NoOrderUnuse( 0 ), //无订单车闲置 m1_order_noorder.xml 无订单页面
OrderNoLine( 10), //订单无线路 m1_order_lineside 选择线路页面
OrdersWithLine( 20), //有订单线路 m1_order_lineside 选择线路页面隐藏掉确定取消
NoOrderUse( 30),; //订单车不闲置 m1_order_end.xml 开门关门页面
Nothing(0),
NoOrderUnuse( 10 ), //订单车闲置 m1_order_noorder.xml 无订单页面
OrderNoLine( 20), //有订单线路 m1_order_lineside 选择线路页面
OrdersWithLine( 30), //订单有线路 m1_order_lineside 选择线路页面隐藏掉确定取消
NoOrderUse( 40),; //无订单车不闲置 m1_order_end.xml 开门关门页面
companion object {
@JvmStatic

View File

@@ -0,0 +1,41 @@
package com.mogo.och.bus.passenger.presenter
import androidx.lifecycle.LifecycleOwner
import com.mogo.eagle.core.data.BaseData
import com.mogo.eagle.core.utilcode.util.ToastUtils
import com.mogo.och.bus.passenger.model.CharterPassengerModel
import com.mogo.och.bus.passenger.ui.M1EarlyEndOrderFragment
import com.mogo.och.common.module.biz.network.OchCommonServiceCallback
class BusPassengerFunctionEarlyEndOrderPresenter(view: M1EarlyEndOrderFragment?) :
BusBasePassengerFunctionDevicePresenter<M1EarlyEndOrderFragment?>(view) {
override fun onCreate(owner: LifecycleOwner) {
super.onCreate(owner)
}
override fun onResume(owner: LifecycleOwner) {
super.onResume(owner)
}
override fun onDestroy(owner: LifecycleOwner) {
super.onDestroy(owner)
}
fun endOrder() {
CharterPassengerModel.endOrder(object : OchCommonServiceCallback<BaseData> {
override fun onSuccess(data: BaseData?) {
if (null != data && 0 == data.code) {
ToastUtils.showShort("结束成功")
mView?.closeDialogContaion()
}
}
override fun onFail(code: Int, msg: String) {
ToastUtils.showShort("$code:$msg")
}
})
}
}

View File

@@ -40,6 +40,7 @@ class BusPassengerPresenter(view: MainFragment?) :
CharterPassengerModel.setiDistanceTimeCallback(this)
CharterPassengerModel.setCarTypeChangeListener(this)
CallerTelematicListenerManager.addListener(TAG, msgReceived)
setCarChangeListener(R.raw.aiqinghao)
//BusPassengerModel.setMoGoAutopilotPlanningListener(this)
}
@@ -156,21 +157,21 @@ class BusPassengerPresenter(view: MainFragment?) :
override fun setCarChangeListener(productType: Int?) {
when (productType) {
OrderInfoResponse.M1_LOVE -> {
CallerMapUIServiceManager.getMapUIController()?.changeCurrentIcon(R.raw.aiqinghao)
HdMapBuildConfig.currentCarVrIconRes = R.raw.aiqinghao
mView?.setCarModle(R.raw.aiqinghao)
}
OrderInfoResponse.M1_FAMILY -> {
CallerMapUIServiceManager.getMapUIController()?.changeCurrentIcon(R.raw.jiatinghao)
HdMapBuildConfig.currentCarVrIconRes = R.raw.jiatinghao
mView?.setCarModle(R.raw.jiatinghao)
}
OrderInfoResponse.M1_FRIENDLY -> {
CallerMapUIServiceManager.getMapUIController()?.changeCurrentIcon(R.raw.pengyouhao)
HdMapBuildConfig.currentCarVrIconRes = R.raw.pengyouhao
mView?.setCarModle(R.raw.pengyouhao)
}
else -> {
CallerMapUIServiceManager.getMapUIController()?.changeCurrentIcon(R.raw.aiqinghao)
HdMapBuildConfig.currentCarVrIconRes = R.raw.aiqinghao
mView?.setCarModle(R.raw.aiqinghao)
}
}
}
fun haveOrder():Boolean {
return CharterPassengerModel.hasOrder()
}
}

View File

@@ -28,6 +28,7 @@ class M1ContainFragment :
var tab: String = VIDEOTAB
var fragmentTag: String = M1VideoFragment.TAG
var fragment: Fragment? = null
var isEarlyClose:Boolean = false
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
@@ -37,6 +38,7 @@ class M1ContainFragment :
savedInstanceState?.let {
tab = it.getString(SELECTTAB, tab)
}
isEarlyClose = tab==SETTINGENDORDERTAB
setStyle(STYLE_NO_TITLE, R.style.DialogFullScreen) //dialog全屏
}
@@ -62,6 +64,15 @@ class M1ContainFragment :
childFragmentManager.findFragmentByTag(M1OrderFragment.TAG)
?: M1OrderFragment.newInstance()
}
SETTINGENDORDERTAB -> {
fragment =
childFragmentManager.findFragmentByTag(M1EarlyEndOrderFragment.TAG)
?: M1EarlyEndOrderFragment.newInstance(object :ContainDismiss{
override fun closeDialog() {
dismissAllowingStateLoss()
}
})
}
else -> {}
}
fragment?.let {
@@ -155,7 +166,11 @@ class M1ContainFragment :
private val settingOrder = CompoundButton.OnCheckedChangeListener { _, isChecked ->
CallerLogger.d(M_BUS_P+TAG, "settingOrder$isChecked")
if (isChecked) {
tab = SETTINGORDERTAB
if(isEarlyClose){
tab = SETTINGENDORDERTAB
}else{
tab = SETTINGORDERTAB
}
fragmentTag = M1OrderFragment.TAG
cb_bp_video_player.isChecked = false
cb_bp_setting_device.isChecked = false
@@ -234,6 +249,7 @@ class M1ContainFragment :
SETTINGDEVICETAB -> cb_bp_setting_device.isChecked = true
SETTINGSOFTTAB -> cb_bp_setting_soft.isChecked = true
SETTINGORDERTAB -> cb_bp_setting_order.isChecked = true
SETTINGENDORDERTAB -> cb_bp_setting_order.isChecked = true
else -> {}
}
super.onViewStateRestored(savedInstanceState)
@@ -246,6 +262,7 @@ class M1ContainFragment :
const val SETTINGSOFTTAB = "SettingSoftTab"
const val SETTINGDEVICETAB = "SettingDeviceTab"
const val SETTINGORDERTAB = "SettingOrderTab"
const val SETTINGENDORDERTAB = "SettingEndOrderTab"
const val SELECTTAB = "SELECTTAB"
@@ -257,4 +274,8 @@ class M1ContainFragment :
return fragment
}
}
interface ContainDismiss{
fun closeDialog()
}
}

View File

@@ -0,0 +1,59 @@
package com.mogo.och.bus.passenger.ui
import android.os.Bundle
import com.mogo.commons.mvp.MvpFragment
import com.mogo.eagle.core.utilcode.kotlin.onClick
import com.mogo.och.bus.passenger.R
import com.mogo.och.bus.passenger.presenter.BusPassengerFunctionEarlyEndOrderPresenter
import kotlinx.android.synthetic.m1.m1_order_early_end.*
/**
* @author: yangyakun
* @date: 2023/1/28
*/
class M1EarlyEndOrderFragment :
MvpFragment<M1EarlyEndOrderFragment?, BusPassengerFunctionEarlyEndOrderPresenter?>() {
private var dismiss: M1ContainFragment.ContainDismiss?=null
override fun getLayoutId(): Int {
return R.layout.m1_order_early_end
}
override fun getTagName(): String {
return TAG
}
override fun initViews() {
tv_early_end_cancle.onClick {
closeDialogContaion()
}
tv_early_end_submit.onClick {
mPresenter?.endOrder()
}
}
fun closeDialogContaion(){
this.dismiss?.closeDialog()
}
override fun createPresenter(): BusPassengerFunctionEarlyEndOrderPresenter {
return BusPassengerFunctionEarlyEndOrderPresenter(this)
}
companion object {
const val TAG = "BusPassengerFunctionOrderFragment"
@JvmStatic
fun newInstance(dismiss: M1ContainFragment.ContainDismiss): M1EarlyEndOrderFragment {
val args = Bundle()
val fragment = M1EarlyEndOrderFragment()
fragment.arguments = args
fragment.setContainDismiss(dismiss)
return fragment
}
}
private fun setContainDismiss(dismiss: M1ContainFragment.ContainDismiss) {
this.dismiss = dismiss
}
}

View File

@@ -6,6 +6,8 @@ import androidx.fragment.app.DialogFragment
import androidx.fragment.app.Fragment
import com.mogo.commons.AbsMogoApplication
import com.mogo.commons.mvp.MvpFragment
import com.mogo.eagle.core.data.config.HdMapBuildConfig
import com.mogo.eagle.core.function.call.map.CallerMapUIServiceManager
import com.mogo.eagle.core.function.hmi.ui.msgbox.MMsgBoxButtonView
import com.mogo.eagle.core.function.hmi.ui.setting.ToggleDebugView
import com.mogo.eagle.core.utilcode.kotlin.onClick
@@ -57,8 +59,11 @@ class MainFragment :
}
iv_end_order.onClick {
if (LoginStatusManager.isLogin()) {
// TODO: 结束订单
CharterPassengerModel.endOrder()
if(mPresenter?.haveOrder()==true){
openSettingPage(M1ContainFragment.SETTINGENDORDERTAB)
}else{
ToastUtils.showShort("没有订单无法结束订单")
}
}else{
ToastUtils.showShort(AbsMogoApplication.getApp().getString(R.string.m1_please_login_driver))
}
@@ -148,6 +153,11 @@ class MainFragment :
tv_distance_arrive_time.text = arrivedTime
}
fun setCarModle(int: Int){
CallerMapUIServiceManager.getMapUIController()?.changeCurrentIcon(R.raw.aiqinghao)
HdMapBuildConfig.currentCarVrIconRes = R.raw.aiqinghao
}
override fun createPresenter(): BusPassengerPresenter {
return BusPassengerPresenter(this)
}

View File

@@ -5,6 +5,16 @@
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:parentTag="androidx.constraintlayout.widget.ConstraintLayout">
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="0dp"
android:layout_height="0dp"
android:clickable="true"
android:background="@drawable/bus_p_function_setting_soft_b_shape"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintDimensionRatio="1031:500"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintWidth_percent="0.53698">
<!--提前结束包车页面-->
<ImageView
android:id="@+id/iv_early_end"
@@ -38,7 +48,7 @@
android:layout_height="@dimen/dp_60"/>
<TextView
android:id="@+id/tv_site_cancle"
android:id="@+id/tv_early_end_cancle"
android:text="取消"
android:textSize="@dimen/dp_20"
app:layout_constraintStart_toStartOf="@+id/iv_site_cancle_submit_bg"
@@ -50,7 +60,7 @@
android:layout_width="0dp"
android:layout_height="0dp"/>
<TextView
android:id="@+id/tv_site_submit"
android:id="@+id/tv_early_end_submit"
android:text="确认"
android:textSize="@dimen/dp_20"
android:gravity="center"
@@ -68,5 +78,6 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical" />
</androidx.constraintlayout.widget.ConstraintLayout>
</androidx.constraintlayout.widget.ConstraintLayout>