From 6186672fad5f927297b2bbf24b8dd6eed67dfc75 Mon Sep 17 00:00:00 2001 From: yangyakun Date: Fri, 18 Aug 2023 15:26:23 +0800 Subject: [PATCH] =?UTF-8?q?[5.0.0]=20[=E5=88=A0=E9=99=A4fragment]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mogo/och/charter/model/DriverM1Model.kt | 58 +- .../BusPassengerFunctionOrderPresenter.kt | 385 --------- .../BusPassengerFunctionPresenter.kt | 23 - .../BusPassengerFunctionSoftPresenter.kt | 245 ------ .../BusPassengerFunctionVideoPresenter.kt | 6 - ...CharterPassengerNoviceGuidancePresenter.kt | 2 - .../passenger/presenter/OrderInfoPresenter.kt | 79 -- .../ui/dialogfragment/M1ContainFragment.kt | 322 -------- .../ui/orderinfo/OrderInfoFragment.kt | 82 -- .../ui/selectline/M1OrderLineFragment.kt | 268 ------- .../ui/selectline/SelectLineViewModel.kt | 5 - .../ui/softcontrol/M1SoftFragment.kt | 735 ------------------ .../ui/softcontrol/SoftControlView.kt | 20 +- .../bus/passenger/ui/video/M1VideoFragment.kt | 163 ---- 14 files changed, 22 insertions(+), 2371 deletions(-) delete mode 100644 OCH/charter/passenger/src/main/java/com/mogo/och/bus/passenger/presenter/BusPassengerFunctionOrderPresenter.kt delete mode 100644 OCH/charter/passenger/src/main/java/com/mogo/och/bus/passenger/presenter/BusPassengerFunctionPresenter.kt delete mode 100644 OCH/charter/passenger/src/main/java/com/mogo/och/bus/passenger/presenter/BusPassengerFunctionSoftPresenter.kt delete mode 100644 OCH/charter/passenger/src/main/java/com/mogo/och/bus/passenger/presenter/BusPassengerFunctionVideoPresenter.kt delete mode 100644 OCH/charter/passenger/src/main/java/com/mogo/och/bus/passenger/presenter/OrderInfoPresenter.kt delete mode 100644 OCH/charter/passenger/src/main/java/com/mogo/och/bus/passenger/ui/dialogfragment/M1ContainFragment.kt delete mode 100644 OCH/charter/passenger/src/main/java/com/mogo/och/bus/passenger/ui/orderinfo/OrderInfoFragment.kt delete mode 100644 OCH/charter/passenger/src/main/java/com/mogo/och/bus/passenger/ui/selectline/M1OrderLineFragment.kt delete mode 100644 OCH/charter/passenger/src/main/java/com/mogo/och/bus/passenger/ui/softcontrol/M1SoftFragment.kt delete mode 100644 OCH/charter/passenger/src/main/java/com/mogo/och/bus/passenger/ui/video/M1VideoFragment.kt diff --git a/OCH/charter/driver/src/driverm1/java/com/magic/mogo/och/charter/model/DriverM1Model.kt b/OCH/charter/driver/src/driverm1/java/com/magic/mogo/och/charter/model/DriverM1Model.kt index ab9161791e..7e5b56e08a 100644 --- a/OCH/charter/driver/src/driverm1/java/com/magic/mogo/och/charter/model/DriverM1Model.kt +++ b/OCH/charter/driver/src/driverm1/java/com/magic/mogo/och/charter/model/DriverM1Model.kt @@ -76,8 +76,8 @@ class DriverM1Model { // 运营类型 private val VEHICLE_TYPE : Int = 10 - private var mControllerStatusCallback //Model->Presenter:VR mode等 - : IDriverM1ControllerStatusCallback? = null + //Model->Presenter:VR mode等 + private var mControllerStatusCallback: IDriverM1ControllerStatusCallback? = null private var mOrderCallback: DriverM1OrderCallback? = null @@ -110,7 +110,7 @@ class DriverM1Model { fun init(context: Context) { mContext = context // 定位监听 - CallerChassisLocationGCJ02ListenerManager.addListener(TAG, 10,mMapLocationListener) + CallerChassisLocationGCJ02ListenerManager.addListener(TAG, 10, mMapLocationListener) //开启自驾后 异常信息返回 OCHAdasAbilityManager.getInstance().setAdasStartFailureCallback(mAdasStartFailureListener) @@ -118,18 +118,20 @@ class DriverM1Model { // 监听运营信息 registerSocketMessageListener( OCHSocketMessageManager.msgMonitorType, - mOnSystemMessageListener) + mOnSystemMessageListener + ) //监听开门 registerSocketMessageListener( OCHSocketMessageManager.msgOperateDoorType, - mOnDoorMessageListener) + mOnDoorMessageListener + ) //监听订单结束 registerSocketMessageListener( OCHSocketMessageManager.msgOrderClosedType, - mOnOrderClosedMessageListener) - + mOnOrderClosedMessageListener + ) //监听核销乘客 - registerSocketMessageListener( //监听核销乘客 + registerSocketMessageListener( OCHSocketMessageManager.msgWriteOffPassengerType, mWriteOffPassengerOnMessageListener ) @@ -149,45 +151,7 @@ class DriverM1Model { // 调用Disposable.dispose() 时候会出现InterruptedException 导致出现崩溃 // The exception could not be delivered to the consumer because it has already canceled/disposed // the flow or the excTeption has nowhere to go to begin with - RxJavaPlugins.setErrorHandler(object : Consumer { - override fun accept(e: Throwable?) { - var e = e - if (e is UndeliverableException) { - e = e.cause!! - d(SceneConstant.M_CHARTER_D + TAG, "UndeliverableException") - } - if (e is IOException) { // - // fine, irrelevant network problem or API that throws on cancellation - d(SceneConstant.M_CHARTER_D + TAG, "IOException") - return - } - if (e is InterruptedException) { - // fine, some blocking code was interrupted by a dispose call - d(SceneConstant.M_CHARTER_D + TAG, "InterruptedException") - return - } - if (e is NullPointerException || e is IllegalArgumentException) { - // that's likely a bug in the application - d(SceneConstant.M_CHARTER_D + TAG, "NullPointerException or IllegalArgumentException") - Thread.currentThread().uncaughtExceptionHandler.uncaughtException( - Thread.currentThread(), - e - ) - return - } - if (e is IllegalStateException) { - // that's a bug in RxJava or in a custom operator - d(SceneConstant.M_CHARTER_D + TAG, "IllegalStateException") - Thread.currentThread().uncaughtExceptionHandler.uncaughtException( - Thread.currentThread(), - e - ) - return - } - d(SceneConstant.M_CHARTER_D + TAG, "Undeliverable exception") - } - - }) + RxUtils.errCatch() } fun setChangeDestCallback(callback: ChangeDestCallback?){ diff --git a/OCH/charter/passenger/src/main/java/com/mogo/och/bus/passenger/presenter/BusPassengerFunctionOrderPresenter.kt b/OCH/charter/passenger/src/main/java/com/mogo/och/bus/passenger/presenter/BusPassengerFunctionOrderPresenter.kt deleted file mode 100644 index c21f7a0707..0000000000 --- a/OCH/charter/passenger/src/main/java/com/mogo/och/bus/passenger/presenter/BusPassengerFunctionOrderPresenter.kt +++ /dev/null @@ -1,385 +0,0 @@ -package com.mogo.och.bus.passenger.presenter - -import androidx.lifecycle.LifecycleOwner -import com.elegant.utils.UiThreadHandler -import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotStatusListener -import com.mogo.eagle.core.function.api.telematic.IReceivedMsgListener -import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListenerManager -import com.mogo.eagle.core.function.call.autopilot.CallerChassisLocationGCJ02ListenerManager -import com.mogo.eagle.core.function.call.telematic.CallerTelematicListenerManager -import com.mogo.eagle.core.function.call.telematic.CallerTelematicManager -import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger -import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_BUS_P -import com.mogo.eagle.core.utilcode.util.GsonUtils -import com.mogo.och.bus.passenger.utils.ToastCharterUtils -import com.mogo.och.common.module.manager.loopmanager.LoopInfo -import com.mogo.och.bus.passenger.bean.event.EventLineSites -import com.mogo.och.bus.passenger.bean.response.LineInfoListResponse -import com.mogo.och.bus.passenger.bean.response.LineInfoResponse -import com.mogo.och.bus.passenger.bean.response.SiteInfoResponse -import com.mogo.och.bus.passenger.model.CharterPassengerModel -import com.mogo.och.bus.passenger.model.IOrderStatusChangeListener -import com.mogo.och.bus.passenger.model.OrderStatusEnum -import com.mogo.och.common.module.manager.loopmanager.BizLoopManager -import com.mogo.och.bus.passenger.net.BusPassengerServiceManager -import com.mogo.och.bus.passenger.ui.selectline.M1OrderLineFragment -import com.mogo.och.common.module.bean.dpmsg.BaseDPMsg -import com.mogo.och.common.module.bean.dpmsg.ChangeDestMsg -import com.mogo.och.common.module.bean.dpmsg.DPMsgType -import com.mogo.och.common.module.bean.dpmsg.LineSite -import com.mogo.och.common.module.biz.constant.OchCommonConst -import com.mogo.och.common.module.biz.network.OchCommonServiceCallback -import com.mogo.och.common.module.manager.StopSideStatusManager -import com.mogo.och.common.module.utils.RxUtils -import io.reactivex.disposables.Disposable -import org.greenrobot.eventbus.EventBus - -class BusPassengerFunctionOrderPresenter(view: M1OrderLineFragment?) : - BusBasePassengerFunctionDevicePresenter(view), IOrderStatusChangeListener { - - companion object{ - const val TAGLINELOOP = "LineSiteViewLineLoop" - const val TAG = "BusPassengerFunctionOrderPresenter" - } - - // 成功提交给后台得线路 - private var checkLine: LineInfoResponse.LineInfo? = null - - // 成功提交给后台得终点站点 - private var checkSite: SiteInfoResponse.SiteInfo? = null - - // 下一个站点 - private var currentSite: SiteInfoResponse.SiteInfo? = null - - // 向司机端端提交的临时线路 - private var tempCheckLine: LineInfoResponse.LineInfo? = null - - // 向司机端临时提交的终点站点 - private var tempCheckSite: SiteInfoResponse.SiteInfo? = null - - private var subscribeSelectSite: Disposable? = null - - override fun onCreate(owner: LifecycleOwner) { - super.onCreate(owner) - CharterPassengerModel.setStatusChangeListener(TAG,this) - CallerTelematicListenerManager.addListener(TAG, msgReceived) - val currentOrderStatus = CharterPassengerModel.getCurrentOrderStatus() - needRunUI(currentOrderStatus) - extracted() - } - - private fun extracted() { - val currentOrderStatus = CharterPassengerModel.getCurrentOrderStatus() - if (currentOrderStatus == OrderStatusEnum.OrderNoLine || currentOrderStatus == OrderStatusEnum.OrdersWithLine) { - val hasSetLineAndSite = CharterPassengerModel.hasSetLineAndSite() - if (hasSetLineAndSite != null) {// 已经设置了线路和站点 - checkLine = hasSetLineAndSite.first - checkSite = hasSetLineAndSite.second - } - mView?.setEnableSiteStatus(false) - queryLineList() - } - } - - /** - * 重置数据 - */ - fun resetData() { - tempCheckLine = null - tempCheckSite = null - if(checkLine==null){// 没有提交线路 - queryLineList() - mView?.setEnableSiteStatus(true) - }else{ - checkLine?.let { - mView?.setEnableSiteStatus(false) - mView?.lineAdapterSubmit(it) - querySitesByLineId(it) - } - } - } - - private fun querySitesByLineId(checkLine: LineInfoResponse.LineInfo) { - context?.let { - BusPassengerServiceManager.queryLineSiteList( - context, - checkLine.lineId.toString(), - object : OchCommonServiceCallback { - override fun onSuccess(data: SiteInfoResponse?) { - if (data?.data == null) return - val siteInfos = data.data - EventBus.getDefault().post(EventLineSites(checkLine,siteInfos,false)) - if (siteInfos.isNotEmpty()) { - // 计算当前站点是那个 - val calculateCurrentSite = - CharterPassengerModel.calculateCurrentSite(siteInfos) - val first = calculateCurrentSite.first// 可用站点 - if(first<0){ - // 所有站点不可用 - currentSite = siteInfos[siteInfos.size-1] - currentSite!!.isNear = calculateCurrentSite.second - mView?.siteAdapterEnableIndex(siteInfos.size-1) - }else{ - // - val index = if(first==0) { - 0 - }else if (first <= siteInfos.size-1) { - first-1 - } else { - siteInfos.size - 1 - } - currentSite = siteInfos[index] - currentSite!!.isNear = calculateCurrentSite.second - mView?.siteAdapterEnableIndex(index) - } - siteInfos.forEach { - if (it.siteId == checkSite?.siteId) { - it.isCheck = true - return@forEach - } - } - } - mView?.siteAdapterSetData(siteInfos) - } - - override fun onFail(code: Int, msg: String?) { - ToastCharterUtils.showShort("查询站点失败") - mView?.setVisableByTrun(showNetError = true) - } - - override fun onError() { - super.onError() - ToastCharterUtils.showShort("查询站点失败") - mView?.setVisableByTrun(showNetError = true) - } - }) - } - } - - private fun queryLineList() { - mView?.setVisableByTrun(showLoading = true) - context?.let { - BusPassengerServiceManager.queryLineList(it, object : - OchCommonServiceCallback { - override fun onSuccess(data: LineInfoListResponse?) { - if (data?.data == null) return - mView?.setVisableByTrun(showBiz = true) - mView?.lineAdapterSetData(data.data,checkLine) - } - - override fun onFail(code: Int, msg: String) { - ToastCharterUtils.showShort("查询线路失败") - mView?.setVisableByTrun(showNetError = true) - } - - override fun onError() { - super.onError() - mView?.setVisableByTrun(showNetError = true) - } - }) - } - } - - override fun onResume(owner: LifecycleOwner) { - super.onResume(owner) - } - - override fun onDestroy(owner: LifecycleOwner) { - super.onDestroy(owner) - CallerLogger.d(M_BUS_P + TAG, "onDestroy") - RxUtils.disposeSubscribe(subscribeSelectSite) - BizLoopManager.removeLoopFunction(TAGLINELOOP) - CharterPassengerModel.setStatusChangeListener(TAG,null) - CallerTelematicListenerManager.removeListener(TAG) - } - - /** - * 接收司机屏反馈信息 - */ - private val msgReceived = object : IReceivedMsgListener { - override fun onReceivedMsg(type: Int, byteArray: ByteArray) { - UiThreadHandler.post { - if (type == OchCommonConst.BUSINESS_STRING) { - val msg = GsonUtils.fromJson( - String(byteArray), - BaseDPMsg::class.java - ) as BaseDPMsg - if (msg.type == DPMsgType.TYPE_CHANGE_DEST.type) { - val msg = GsonUtils.fromJson( - String(byteArray), - ChangeDestMsg::class.java - ) as ChangeDestMsg - CallerLogger.d(M_BUS_P + BaseDPMsg.TAG, "接受数据:切换站点${msg}") - if (msg.isConfirmed) { - if(msg.arriveStatus==2){ - return@post - } - ToastCharterUtils.showShort("站点确定") - mView?.setEnableSiteStatus(true) - checkLine = tempCheckLine - checkSite = tempCheckSite - tempCheckLine = null - tempCheckSite = null - checkLine?.let { - mView?.lineAdapterSubmit(it) - } - mView?.hideDataDriverAgree() - CharterPassengerModel.cleanbroadcastListInfo(checkSite) - CharterPassengerModel.queryOrder() - } else { - ToastCharterUtils.showShort("司机端拒绝请重新选择") - mView?.hideDataDriverRefuse() - } - RxUtils.disposeSubscribe(subscribeSelectSite) - BizLoopManager.removeLoopFunction(TAGLINELOOP) - } - } - } - } - } - - fun changeSites(siteList: MutableList){ - if (!CallerTelematicManager.getClientConnStatus()) { - ToastCharterUtils.showLong("乘客屏无法连接司机屏请联系安全员") - return - } - val sentDataSite: MutableList = mutableListOf() - siteList.forEach { - sentDataSite.add(it.copy2Mas()) - } - - tempCheckSite?.let { siteInfo -> - val orderNo = CharterPassengerModel.getCurrentOrderInfo()?.orderNo ?: "" - val msg = ChangeDestMsg( - orderNo, - siteInfo.lineId!!.toInt(), - siteInfo.lineName!!, - currentSite!!.siteId!!.toInt(), - currentSite!!.siteName!!, - siteInfo.siteId!!.toInt(), - siteInfo.siteName!!, - false, - 1, - 0, - sentDataSite - ) - CallerTelematicManager.sendMsgToServer( - OchCommonConst.BUSINESS_STRING, - GsonUtils.toJson(msg).toByteArray() - ) - CallerLogger.d(M_BUS_P + BaseDPMsg.TAG, "发送数据:切换站点${msg}") - } - mView?.hideDataWaitDriverMsg() - // 启动查看和司机端链接 - BizLoopManager.setLoopFunction( - TAGLINELOOP, - LoopInfo(3, ::checkServerStatus) - ) - - RxUtils.disposeSubscribe(subscribeSelectSite) - subscribeSelectSite = RxUtils.createSubscribe(120_000){ - ToastCharterUtils.showShort("请联系安全员确认") - mView?.hideDataDriverRefuse() - } - } - private fun checkServerStatus() { - if (!CallerTelematicManager.getClientConnStatus()) { - ToastCharterUtils.showShort("断开和司机端连接、请联系安全员") - BizLoopManager.removeLoopFunction(TAGLINELOOP) - mView?.hideDataDriverRefuse() - CallerLogger.d(M_BUS_P + TAG, "endAni666") - } - } - - override fun onStatusChange(currentStatus: OrderStatusEnum) { - UiThreadHandler.post { - needRunUI(currentStatus) - } - } - - private fun needRunUI(currentStatus: OrderStatusEnum){ - when (currentStatus) { - OrderStatusEnum.OrderNoLine -> { - mView?.setVisableByTrun(showBiz = true) - extracted() - } - OrderStatusEnum.OrdersWithLine ->{ - mView?.setVisableByTrun(showBiz = true) - } - else ->{ - mView?.setVisableByTrun(showNorOrder = true) - } - } - } - - fun canSwitchLine():Boolean { - val gnssSpeed = - CallerChassisLocationGCJ02ListenerManager.getChassisLocationGCJ02().gnssSpeed - if (gnssSpeed < 0.5) { - when (CallerAutoPilotStatusListenerManager.getState()) { - IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_DISABLE -> {// 不可自动驾驶 - return true - } - IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_ENABLE -> {// - return true - } - IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING -> { - // 自动驾驶中 - return when (StopSideStatusManager.stopSiteStatus) { - StopSideStatusManager.Status.EndingSuccess -> { - true - } - else ->{ - ToastCharterUtils.showShort("自动驾驶中无法切换线路") - false - } - } - } - IMoGoAutopilotStatusListener.STATUS_PARALLEL_DRIVING -> { - ToastCharterUtils.showShort("因车辆正在平行驾驶中无法切换线路") - return false - } - else -> {} - } - } else { - ToastCharterUtils.showShort("请停车后再修改目的地~") - return false - } - return true - } - - fun checkLineClick(lineInfo: LineInfoResponse.LineInfo) { - checkLine4View() - tempCheckLine = lineInfo - querySitesByLineId(lineInfo) - } - - private fun checkLine4View(){ - tempCheckSite = null - mView?.setEnableSiteStatus(false) - } - - fun checkSiteClick(siteInfo: SiteInfoResponse.SiteInfo?) { - tempCheckSite = siteInfo - if(checkSite!=null){ - checkSite?.let { - if (it.siteId == siteInfo?.siteId) {// 站点相同 隐藏所有提交按钮 - mView?.setEnableSiteStatus(false) - } else { - if(it.lineId == siteInfo?.lineId){// 线路相同显示单独提交 - mView?.setEnableSiteStatus(true) - }else{ - if(siteInfo==null){//没有选站点隐藏所有提交 - mView?.setEnableSiteStatus(false) - }else { - mView?.setEnableSiteStatus(true) - } - } - } - } - }else{ - mView?.setEnableSiteStatus(true) - } - } - -} \ No newline at end of file diff --git a/OCH/charter/passenger/src/main/java/com/mogo/och/bus/passenger/presenter/BusPassengerFunctionPresenter.kt b/OCH/charter/passenger/src/main/java/com/mogo/och/bus/passenger/presenter/BusPassengerFunctionPresenter.kt deleted file mode 100644 index a1668f7b62..0000000000 --- a/OCH/charter/passenger/src/main/java/com/mogo/och/bus/passenger/presenter/BusPassengerFunctionPresenter.kt +++ /dev/null @@ -1,23 +0,0 @@ -package com.mogo.och.bus.passenger.presenter - -import androidx.lifecycle.LifecycleOwner -import com.mogo.och.bus.passenger.model.CharterPassengerModel -import com.mogo.och.bus.passenger.ui.dialogfragment.M1ContainFragment - -class BusPassengerFunctionPresenter(view: M1ContainFragment?) : - BusBasePassengerFunctionDevicePresenter(view) { - companion object{ - private const val TAG = "BusPassengerFunctionPresenter" - } - override fun onCreate(owner: LifecycleOwner) { - super.onCreate(owner) - } - - override fun onDestroy(owner: LifecycleOwner) { - super.onDestroy(owner) - } - - fun haveOrder(): Boolean { - return CharterPassengerModel.hasOrder() - } -} \ No newline at end of file diff --git a/OCH/charter/passenger/src/main/java/com/mogo/och/bus/passenger/presenter/BusPassengerFunctionSoftPresenter.kt b/OCH/charter/passenger/src/main/java/com/mogo/och/bus/passenger/presenter/BusPassengerFunctionSoftPresenter.kt deleted file mode 100644 index 02c063dd99..0000000000 --- a/OCH/charter/passenger/src/main/java/com/mogo/och/bus/passenger/presenter/BusPassengerFunctionSoftPresenter.kt +++ /dev/null @@ -1,245 +0,0 @@ -package com.mogo.och.bus.passenger.presenter - -import androidx.lifecycle.LifecycleOwner -import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotControlManager -import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger -import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant -import com.mogo.eagle.core.utilcode.util.UiThreadHandler -import com.mogo.och.bus.passenger.ui.softcontrol.M1SoftFragment -import com.mogo.och.bus.passenger.utils.ToastCharterUtils -import com.mogo.och.common.module.manager.devicemanage.LightAirconditionDoorCallback -import com.mogo.och.common.module.manager.devicemanage.LightAirconditionDoorStatusManager -import com.mogo.och.common.module.manager.devicemanage.data.AirconditionStatus -import com.mogo.och.common.module.manager.devicemanage.data.HeaterStatue -import com.mogo.och.common.module.manager.devicemanage.data.LightStatus -import io.reactivex.disposables.Disposable - -class BusPassengerFunctionSoftPresenter(view: M1SoftFragment?) : - BusBasePassengerFunctionDevicePresenter(view), - LightAirconditionDoorCallback { - companion object { - private const val TAG = "BusPassengerFunctionSoftPresenter" - } - - private var subscribeLightTop1: Disposable?=null - private var subscribeLightTop2: Disposable?=null - private var subscribeLightAtmosphere: Disposable?=null - - private var airconditionDisposable: Disposable?=null - private var heaterDisposable: Disposable?=null - - override fun onCreate(owner: LifecycleOwner) { - super.onCreate(owner) - LightAirconditionDoorStatusManager.addListener(TAG, this) - } - - override fun onDestroy(owner: LifecycleOwner) { - super.onDestroy(owner) - LightAirconditionDoorStatusManager.removeListener(TAG) - } - - /** - * 空调状态变化 - */ - override fun onAirconditionStatusCallback(heaterIsOpen: Boolean, airconditionStatus: AirconditionStatus, isFirst: Boolean) { - CallerLogger.d(SceneConstant.M_BUS_P + TAG, - "回写--空调开关:${LightAirconditionDoorStatusManager.airconditionStatus.isOpen}、" + - "空调温度:${LightAirconditionDoorStatusManager.airconditionStatus.temperature}" + - "空调模式:${LightAirconditionDoorStatusManager.airconditionStatus.pattert}" + - "空调风速:${LightAirconditionDoorStatusManager.airconditionStatus.windSpeed}") - UiThreadHandler.post { - if(airconditionStatus.isOpen){ - mView?.setAirconditionHeaterView( - airconditionStatus.isOpen, - heaterIsOpen, - airconditionStatus.temperature, - airconditionStatus.pattert, - airconditionStatus.windSpeed - ) - }else{ - mView?.setAirconditionHeaterView( - airconditionStatus.isOpen, - heaterIsOpen, - airconditionStatus.temperature, - 0, - 0 - ) - } - } - } - /** - * 暖风机状态变化 - */ - override fun onHeaterStatusCallback(airconditionIsOpen:Boolean, heaterStatue: HeaterStatue, isFirst: Boolean) { - CallerLogger.d(SceneConstant.M_BUS_P + TAG, - "回写--暖风机开关:${heaterStatue.isOpen}、" + - "风速:${heaterStatue.windSpeed}") - UiThreadHandler.post { - if(heaterStatue.isOpen) { - mView?.setAirconditionHeaterView( - airconditionIsOpen, - heaterStatue.isOpen, - 0, - 0, - heaterStatue.windSpeed - ) - }else{ - mView?.setAirconditionHeaterView( - airconditionIsOpen, - heaterStatue.isOpen, - 0, - 0, - 0 - ) - } - } - } - /** - * 灯状态变化 - */ - override fun onLightTop1Callback(lightStatus: LightStatus, isFirst: Boolean) { - CallerLogger.d(SceneConstant.M_BUS_P + TAG, - "回写--顶灯1开关:${lightStatus.isOpenLight1}、" + - "顶灯2开关:${lightStatus.isOpenLight2}、" + - "氛围灯开关:${lightStatus.isOpenatmosphere}、") - UiThreadHandler.post { - mView?.setLightTop1View(lightStatus.isOpenLight1,isFirst) - } - } - /** - * 灯状态变化 - */ - override fun onLightTop2Callback(lightStatus: LightStatus, isFirst: Boolean) { - CallerLogger.d(SceneConstant.M_BUS_P + TAG, - "回写--顶灯1开关:${lightStatus.isOpenLight1}、" + - "顶灯2开关:${lightStatus.isOpenLight2}、" + - "氛围灯开关:${lightStatus.isOpenatmosphere}、") - UiThreadHandler.post { - mView?.setLightTop2View(lightStatus.isOpenLight2,isFirst) - mView?.setLightView(lightStatus.isOpenLight1,lightStatus.isOpenLight2) - } - } - /** - * 灯状态变化 - */ - override fun onLightAtmosphereCallback(lightStatus: LightStatus, isFirst: Boolean) { - CallerLogger.d(SceneConstant.M_BUS_P + TAG, - "回写--顶灯1开关:${lightStatus.isOpenLight1}、" + - "顶灯2开关:${lightStatus.isOpenLight2}、" + - "氛围灯开关:${lightStatus.isOpenatmosphere}、") - UiThreadHandler.post { - mView?.setLightAtmosphereView(lightStatus.isOpenatmosphere,isFirst) - } - } - - /** - * 设置空调 - */ - fun openAndSetAircondition(modeCmd: Int, windSpeedCmd: Int, temperatureCmd: Int) { - CallerLogger.d(SceneConstant.M_BUS_P + TAG, "" + - "打开空调,模式$modeCmd--档位${windSpeedCmd}--温度:$temperatureCmd") - CallerAutoPilotControlManager.sendRoboBusJinlvM1AirConditionerCmd(1,modeCmd,windSpeedCmd,temperatureCmd) - disposeSubscribe(airconditionDisposable) - airconditionDisposable = createSubscribe(10000){ - if (!LightAirconditionDoorStatusManager.airconditionStatus.isOpen&& - LightAirconditionDoorStatusManager.airconditionStatus.windSpeed!=windSpeedCmd&& - LightAirconditionDoorStatusManager.airconditionStatus.temperature!=temperatureCmd&& - LightAirconditionDoorStatusManager.airconditionStatus.pattert!=modeCmd) { - ToastCharterUtils.showShort("控制系统繁忙,请稍后再试") - } - } - } - fun closeAircondition(modeCmd: Int, windSpeedCmd: Int, temperatureCmd: Int) { - CallerLogger.d(SceneConstant.M_BUS_P + TAG, "关闭空调") - CallerAutoPilotControlManager.sendRoboBusJinlvM1AirConditionerCmd(2,modeCmd,windSpeedCmd,temperatureCmd) - disposeSubscribe(airconditionDisposable) - airconditionDisposable = createSubscribe(10000){ - if (LightAirconditionDoorStatusManager.airconditionStatus.isOpen) { - ToastCharterUtils.showShort("控制系统繁忙,请稍后再试") - } - } - } - /** - * 设置暖风 - */ - fun openAndSetHeader(windSpeedCmd: Int) { - CallerLogger.d(SceneConstant.M_BUS_P + TAG, "打开暖风机、档位${windSpeedCmd}") - CallerAutoPilotControlManager.sendRoboBusJinlvM1HeaderCmd(1,windSpeedCmd) - disposeSubscribe(heaterDisposable) - heaterDisposable = createSubscribe(10000){ - if (!LightAirconditionDoorStatusManager.heaterStatue.isOpen&& - LightAirconditionDoorStatusManager.heaterStatue.windSpeed!=windSpeedCmd) { - ToastCharterUtils.showShort("暖风机操作未生效,请稍后重试吧~") - } - } - } - - fun closeHeader(){ - CallerLogger.d(SceneConstant.M_BUS_P + TAG, "关闭暖风机") - CallerAutoPilotControlManager.sendRoboBusJinlvM1HeaderCmd(2,0) - disposeSubscribe(heaterDisposable) - heaterDisposable = createSubscribe(10000){ - if (LightAirconditionDoorStatusManager.heaterStatue.isOpen) { - ToastCharterUtils.showShort("暖风机操作未生效,请稍后重试吧~")//还是开着的 - } - } - } - - fun setLightData1(leftLight: Boolean){ - CallerLogger.d(SceneConstant.M_BUS_P + TAG, "顶灯2:$leftLight") - disposeSubscribe(subscribeLightTop1) - if(leftLight){ - CallerAutoPilotControlManager.sendRoboBusJinlvM1MainLamp1Cmd(1) - subscribeLightTop1 = createSubscribe{ - if (!LightAirconditionDoorStatusManager.lightStatus.isOpenLight1) { - ToastCharterUtils.showShort("控制系统繁忙,请稍后再试") - } - } - }else{ - CallerAutoPilotControlManager.sendRoboBusJinlvM1MainLamp1Cmd(2) - subscribeLightTop1 = createSubscribe{ - if (LightAirconditionDoorStatusManager.lightStatus.isOpenLight1) { - ToastCharterUtils.showShort("控制系统繁忙,请稍后再试") - } - } - } - } - fun setLightData2(rightLight: Boolean){ - CallerLogger.d(SceneConstant.M_BUS_P + TAG, "顶灯1:$rightLight") - disposeSubscribe(subscribeLightTop2) - if(rightLight){ - CallerAutoPilotControlManager.sendRoboBusJinlvM1MainLamp2Cmd(1) - subscribeLightTop2 = createSubscribe{ - if (!LightAirconditionDoorStatusManager.lightStatus.isOpenLight2) { - ToastCharterUtils.showShort("控制系统繁忙,请稍后再试") - } - } - }else{ - CallerAutoPilotControlManager.sendRoboBusJinlvM1MainLamp2Cmd(2) - subscribeLightTop2 = createSubscribe{ - if (LightAirconditionDoorStatusManager.lightStatus.isOpenLight2) { - ToastCharterUtils.showShort("控制系统繁忙,请稍后再试") - } - } - } - } - fun setAtmosphereLightData2(atmosphereLight: Boolean){ - CallerLogger.d(SceneConstant.M_BUS_P + TAG, "氛围灯:$atmosphereLight") - disposeSubscribe(subscribeLightAtmosphere) - if (atmosphereLight) { - CallerAutoPilotControlManager.sendRoboBusJinlvM1SmallLampCmd(1) - subscribeLightAtmosphere = createSubscribe{ - if (!LightAirconditionDoorStatusManager.lightStatus.isOpenatmosphere) { - ToastCharterUtils.showShort("控制系统繁忙,请稍后再试") - } - } - } else { - CallerAutoPilotControlManager.sendRoboBusJinlvM1SmallLampCmd(2) - subscribeLightAtmosphere = createSubscribe{ - if (LightAirconditionDoorStatusManager.lightStatus.isOpenatmosphere) { - ToastCharterUtils.showShort("控制系统繁忙,请稍后再试") - } - } - } - } -} \ No newline at end of file diff --git a/OCH/charter/passenger/src/main/java/com/mogo/och/bus/passenger/presenter/BusPassengerFunctionVideoPresenter.kt b/OCH/charter/passenger/src/main/java/com/mogo/och/bus/passenger/presenter/BusPassengerFunctionVideoPresenter.kt deleted file mode 100644 index 48a1e275b9..0000000000 --- a/OCH/charter/passenger/src/main/java/com/mogo/och/bus/passenger/presenter/BusPassengerFunctionVideoPresenter.kt +++ /dev/null @@ -1,6 +0,0 @@ -package com.mogo.och.bus.passenger.presenter - -import com.mogo.och.bus.passenger.ui.video.M1VideoFragment - -class BusPassengerFunctionVideoPresenter(view: M1VideoFragment?) : - BusBasePassengerFunctionDevicePresenter(view) \ No newline at end of file diff --git a/OCH/charter/passenger/src/main/java/com/mogo/och/bus/passenger/presenter/CharterPassengerNoviceGuidancePresenter.kt b/OCH/charter/passenger/src/main/java/com/mogo/och/bus/passenger/presenter/CharterPassengerNoviceGuidancePresenter.kt index c29775333b..da3e5d9d26 100644 --- a/OCH/charter/passenger/src/main/java/com/mogo/och/bus/passenger/presenter/CharterPassengerNoviceGuidancePresenter.kt +++ b/OCH/charter/passenger/src/main/java/com/mogo/och/bus/passenger/presenter/CharterPassengerNoviceGuidancePresenter.kt @@ -1,10 +1,8 @@ package com.mogo.och.bus.passenger.presenter import androidx.lifecycle.LifecycleOwner -import com.mogo.och.bus.passenger.R import com.mogo.och.bus.passenger.bean.response.OrderInfoResponse import com.mogo.och.bus.passenger.model.CharterPassengerModel -import com.mogo.och.bus.passenger.ui.dialogfragment.M1ContainFragment import com.mogo.och.bus.passenger.ui.dialogfragment.NoviceGuidanceFragment import com.mogo.och.common.module.utils.DateTimeUtil import com.mogo.och.common.module.utils.RxUtils diff --git a/OCH/charter/passenger/src/main/java/com/mogo/och/bus/passenger/presenter/OrderInfoPresenter.kt b/OCH/charter/passenger/src/main/java/com/mogo/och/bus/passenger/presenter/OrderInfoPresenter.kt deleted file mode 100644 index b17d1dd43d..0000000000 --- a/OCH/charter/passenger/src/main/java/com/mogo/och/bus/passenger/presenter/OrderInfoPresenter.kt +++ /dev/null @@ -1,79 +0,0 @@ -package com.mogo.och.bus.passenger.presenter - -import androidx.lifecycle.LifecycleOwner -import com.mogo.eagle.core.data.BaseData -import com.mogo.eagle.core.function.call.telematic.CallerTelematicManager -import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger -import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_BUS_P -import com.mogo.eagle.core.utilcode.util.GsonUtils -import com.mogo.och.bus.passenger.utils.ToastCharterUtils -import com.mogo.och.bus.passenger.callback.ITimeCallback -import com.mogo.och.bus.passenger.model.CharterPassengerModel -import com.mogo.och.bus.passenger.ui.orderinfo.OrderInfoFragment -import com.mogo.och.common.module.bean.dpmsg.BaseDPMsg -import com.mogo.och.common.module.bean.dpmsg.EndOrderMsg -import com.mogo.och.common.module.biz.constant.OchCommonConst -import com.mogo.och.common.module.biz.network.OchCommonServiceCallback -import com.mogo.och.common.module.utils.DateTimeUtil - -class OrderInfoPresenter(view: OrderInfoFragment?) : - BusBasePassengerFunctionDevicePresenter(view), ITimeCallback { - companion object{ - private const val TAG = "OrderInfoPresenter" - } - override fun onCreate(owner: LifecycleOwner) { - super.onCreate(owner) - CharterPassengerModel.setOrderLeftTimeListeners(TAG,this) - getDataInfo() - } - - private fun getDataInfo() { - val currentOrderInfo = CharterPassengerModel.getCurrentOrderInfo() - currentOrderInfo?.let { - mView?.setPhone(it.passengerPhone?:"") - try { - mView?.setStartTimeAndEndTime( - DateTimeUtil.formatLongToString(it.startTime!!, DateTimeUtil.HH_mm), - DateTimeUtil.formatLongToString(it.endTime!!, DateTimeUtil.HH_mm)) - }catch (e:Exception){ - e.printStackTrace() - } - } - } - - override fun onDestroy(owner: LifecycleOwner) { - super.onDestroy(owner) - CharterPassengerModel.setOrderLeftTimeListeners(TAG,null) - } - - override fun setOrderTimeCallBack(timeInSecond: Long) { - val leftTime = DateTimeUtil.second2Time(timeInSecond) - mView?.setLeftTime(leftTime) - } - - fun endOrder() { - CharterPassengerModel.endOrder(object : OchCommonServiceCallback { - override fun onSuccess(data: BaseData?) { - if (null != data && 0 == data.code) { - ToastCharterUtils.showShort("结束成功") - CharterPassengerModel.setEndOrderStatus() - mView?.closeDialogContaion() - val msg = EndOrderMsg( - CharterPassengerModel.getCurrentOrderInfo()?.orderNo?:"", - ) - CallerTelematicManager.sendMsgToServer( - OchCommonConst.BUSINESS_STRING, - GsonUtils.toJson(msg).toByteArray() - ) - CallerLogger.d(M_BUS_P + BaseDPMsg.TAG, "发送数据:结束订单${msg}") - } - } - - override fun onFail(code: Int, msg: String) { - ToastCharterUtils.showShort("$code:$msg") - } - }) - } - - -} \ No newline at end of file diff --git a/OCH/charter/passenger/src/main/java/com/mogo/och/bus/passenger/ui/dialogfragment/M1ContainFragment.kt b/OCH/charter/passenger/src/main/java/com/mogo/och/bus/passenger/ui/dialogfragment/M1ContainFragment.kt deleted file mode 100644 index 08d9af1fe0..0000000000 --- a/OCH/charter/passenger/src/main/java/com/mogo/och/bus/passenger/ui/dialogfragment/M1ContainFragment.kt +++ /dev/null @@ -1,322 +0,0 @@ -package com.mogo.och.bus.passenger.ui.dialogfragment - -import android.content.DialogInterface -import android.os.Bundle -import android.util.Log -import android.view.View -import android.view.WindowManager -import androidx.fragment.app.DialogFragment -import androidx.fragment.app.Fragment -import androidx.fragment.app.FragmentManager -import androidx.fragment.app.FragmentTransaction -import com.mogo.commons.AbsMogoApplication -import com.mogo.commons.mvp.MvpDialogFragment -import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger -import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_BUS_P -import com.mogo.eagle.core.utilcode.util.* -import com.mogo.och.bus.passenger.R -import com.mogo.och.bus.passenger.bean.event.EventLineSites -import com.mogo.och.bus.passenger.presenter.BusPassengerFunctionPresenter -import com.mogo.och.bus.passenger.ui.selectline.M1OrderLineFragment -import com.mogo.och.bus.passenger.ui.softcontrol.M1SoftFragment -import com.mogo.och.bus.passenger.ui.video.M1VideoFragment -import com.mogo.och.bus.passenger.ui.orderinfo.OrderInfoFragment -import com.mogo.och.bus.passenger.ui.bottom.BottomBar -import com.mogo.och.bus.passenger.ui.bottom.BottomClickView -import com.mogo.och.bus.passenger.utils.ToastCharterUtils -import com.mogo.och.common.module.biz.constant.LoginStatusManager -import com.mogo.och.common.module.manager.debug.DebugViewWatchDogFragment -import kotlinx.android.synthetic.main.m1_contain_fragment.* -import org.greenrobot.eventbus.EventBus - -/** - * @author: yangyakun - * @date: 2023/1/28 - */ -class M1ContainFragment : - MvpDialogFragment() { - - var tab: String = VIDEOTAB - var fragmentTag: String = M1VideoFragment.TAG - var fragment: Fragment? = null - - var closeThis:ContainDismiss = object :ContainDismiss{ - override fun closeDialog() { - dismissAllowingStateLoss() - } - } - - override fun onCreate(savedInstanceState: Bundle?) { - CallerLogger.d(M_BUS_P+ TAG, "onCreate") - super.onCreate(savedInstanceState) - arguments?.let { - tab = it.getString(SELECTTAB, VIDEOTAB) - } - savedInstanceState?.let { - tab = it.getString(SELECTTAB, tab) - } - setStyle(STYLE_NO_TITLE, R.style.DialogFullScreen) //dialog全屏 - } - - private fun setCheckView() { //todo yakun 优化 - CallerLogger.d(M_BUS_P+ TAG, "setCheckView") - when (tab) { - VIDEOTAB -> { - fragment =childFragmentManager.findFragmentByTag(M1VideoFragment.TAG) - ?: M1VideoFragment.newInstance() - bb_bottom_bar.setCheckIndex(BottomBar.SelectView.VIDEO) - cl_container.setBackgroundResource(R.drawable.m1_function_bg) - fragmentTag = M1VideoFragment.TAG - } - SETTINGSOFTTAB -> { - fragment =childFragmentManager.findFragmentByTag(M1SoftFragment.TAG) - ?: M1SoftFragment.newInstance() - bb_bottom_bar.setCheckIndex(BottomBar.SelectView.SETTING) - cl_container.setBackgroundResource(R.drawable.m1_function_bg) - fragmentTag = M1SoftFragment.TAG - } - ORDERINFO -> { - fragment =childFragmentManager.findFragmentByTag(OrderInfoFragment.TAG) - ?: OrderInfoFragment.newInstance(closeThis) - bb_bottom_bar.setCheckIndex(BottomBar.SelectView.ORDERINFO) - cl_container.background = null - fragmentTag = OrderInfoFragment.TAG - } - SELECTLINE ->{ - fragment =childFragmentManager.findFragmentByTag(M1OrderLineFragment.TAG) - ?: M1OrderLineFragment.newInstance(closeThis) - bb_bottom_bar.setCheckIndex(BottomBar.SelectView.LINE) - cl_container.background = null - fragmentTag = M1OrderLineFragment.TAG - } - else -> {} - } - CallerLogger.d(M_BUS_P+ TAG, "fragment:$fragment") - - fragment?.let { - val beginTransaction = childFragmentManager.beginTransaction() - beginTransaction - .replace(R.id.fl_function_group, it, fragmentTag) - .commitNow() - } - - } - - override fun getLayoutId(): Int = R.layout.m1_contain_fragment - - override fun getTagName(): String = TAG - - override fun initViews() { - - //dialog?.setCancelable(false) - CallerLogger.d(M_BUS_P+ TAG, "initViews") - setCheckView() - cl_container.setOnClickListener { - dismissAllowingStateLoss() - } -// bb_bottom_bar.setSettingClickListener{ -// CallerLogger.d(M_BUS_P+ TAG, "initViews---$tab") -// if(tab==SETTINGSOFTTAB) { -// dismissAllowingStateLoss() -// }else{ -// tab = SETTINGSOFTTAB -// setCheckView() -// } -// } -// bb_bottom_bar.setLineClickListener{ -// CallerLogger.d(M_BUS_P+ TAG, "initViews---$tab") -// if(tab==SELECTLINE) { -// dismissAllowingStateLoss() -// }else{ -// tab = SELECTLINE -// setCheckView() -// } -// } -// bb_bottom_bar.setOrderInfoClickListener{ -// if (LoginStatusManager.isLogin()) { -// if(mPresenter?.haveOrder()==true){ -// -// }else{ -// ToastCharterUtils.showShort("请确认订单") -// return@setOrderInfoClickListener -// } -// }else{ -// ToastCharterUtils.showShort(AbsMogoApplication.getApp().getString(R.string.m1_please_login_driver)) -// return@setOrderInfoClickListener -// } -// -// CallerLogger.d(M_BUS_P+ TAG, "initViews---$tab") -// if(tab==ORDERINFO) { -// dismissAllowingStateLoss() -// }else{ -// tab = ORDERINFO -// setCheckView() -// } -// } - bb_bottom_bar.setApplyClickListener(object : BottomClickView.ApplyClickLintener{ - override fun onApplyClick() { - dismissAllowingStateLoss() - } - }) - } - - - override fun onViewCreated(view: View, savedInstanceState: Bundle?) { - super.onViewCreated(view, savedInstanceState) - CallerLogger.d(M_BUS_P+ TAG, "onViewCreated") - dialog?.window?.let { - BarUtils.hideStatusBarAndSticky(it) - it.addFlags(WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE) - dialog?.setOnShowListener { _ -> - it.clearFlags(WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE) - BarUtils.hideStatusBarAndSticky(it) - } - } - } - - override fun onDismiss(dialog: DialogInterface) { - super.onDismiss(dialog) - EventBus.getDefault().post(EventLineSites(null,null,true)) - } - - override fun onSaveInstanceState(outState: Bundle) { - super.onSaveInstanceState(outState) - CallerLogger.d(M_BUS_P+ TAG, "onSaveInstanceState") - context?.let { - SharedPrefs.getInstance(it).putString(SELECTTAB, tab) - } - } - - override fun createPresenter(): BusPassengerFunctionPresenter = - BusPassengerFunctionPresenter(this) - - /** - * 重写父类show()方法 - * 避免出现java.lang.IllegalStateException: Can not perform this action after onSaveInstanceState - */ - override fun show(manager: FragmentManager, tag: String?) { - try { - var cls = this.javaClass.superclass ?: return - while (true) { - if (cls.name == "java.lang.Object") { - break - } - cls = cls.superclass!! - if (cls == DialogFragment::class.java) { - break - } - } - val mDismissed = cls.getDeclaredField("mDismissed") - val mShownByMe = cls.getDeclaredField("mShownByMe") - mDismissed.isAccessible = true - mShownByMe.isAccessible = true - mDismissed.setBoolean(this, false) - mShownByMe.setBoolean(this, true) - if (isAdded) { - return - } - val ft: FragmentTransaction = manager.beginTransaction() - ft.add(this, tag) - ft.commitAllowingStateLoss() - } catch (e: Exception) { - Log.e("DialogFragment", "show", e.fillInStackTrace()) - } - } - - override fun onViewStateRestored(savedInstanceState: Bundle?) { - CallerLogger.d(M_BUS_P+ TAG, "onViewStateRestored") - when (tab) { - VIDEOTAB -> { - - } - SETTINGSOFTTAB -> {} - ORDERINFO -> {} - SELECTLINE -> {} - else -> {} - } - super.onViewStateRestored(savedInstanceState) - } - - companion object { - const val TAG = "M1ContainFragment" - - /** - * 娱乐视频 - */ - const val VIDEOTAB = "VideoTab" - - /** - * 空调、暖风、灯和剩余设置 - */ - const val SETTINGSOFTTAB = "SettingSoftTab" - - /** - * 订单信息 - */ - const val ORDERINFO = "OrderInfo" - - /** - * 选择线路 - */ - const val SELECTLINE = "SelectLine" - - - - const val SELECTTAB = "SELECTTAB" - - @JvmStatic - fun newInstance(): M1ContainFragment { - val args = Bundle() - val fragment = M1ContainFragment() - CallerLogger.d(M_BUS_P + TAG, "创建新的Fragment") - fragment.arguments = args - return fragment - } - - - fun openSettingPage( - childFragmentManager: FragmentManager, - parentFragmentManager: FragmentManager, - bpFunctionGroup: M1ContainFragment?, - tab: String - ) { - val fragmentByTag: Fragment? = childFragmentManager.findFragmentByTag(TAG) - if (fragmentByTag is DialogFragment) { - if (fragmentByTag.dialog != null && fragmentByTag.dialog!!.isShowing) { - CallerLogger.d(M_BUS_P + TAG, "正在展示") - return - } - if (fragmentByTag.dialog != null && fragmentByTag.isAdded) { - if (AppStateManager.currentActivity() == null) { // 没有在当前应用内 在启动页面关闭应用 - CallerLogger.d(M_BUS_P + TAG, "权限验证") - return - } - } - } - bpFunctionGroup?.arguments?.putString(SELECTTAB, tab) - if (bpFunctionGroup != null) { - if (bpFunctionGroup.dialog != null && bpFunctionGroup.dialog!!.isShowing) { - CallerLogger.d(M_BUS_P + DebugViewWatchDogFragment.TAG, "正在展示") - return - } - if (ClickUtils.isFastClick()) { - if (bpFunctionGroup.isAdded) { - CallerLogger.d(M_BUS_P + DebugViewWatchDogFragment.TAG, "已经添加") - return - } - bpFunctionGroup.show(parentFragmentManager, TAG) - CallerLogger.d(M_BUS_P + TAG, "展示$tab---$bpFunctionGroup") - } else { - CallerLogger.d(M_BUS_P + TAG, "dialog 1s内执行一次") - } - } - } - } - - interface ContainDismiss{ - fun closeDialog() - } - interface ChangeCheck{ - fun changeChange() - } -} \ No newline at end of file diff --git a/OCH/charter/passenger/src/main/java/com/mogo/och/bus/passenger/ui/orderinfo/OrderInfoFragment.kt b/OCH/charter/passenger/src/main/java/com/mogo/och/bus/passenger/ui/orderinfo/OrderInfoFragment.kt deleted file mode 100644 index 6985d281ee..0000000000 --- a/OCH/charter/passenger/src/main/java/com/mogo/och/bus/passenger/ui/orderinfo/OrderInfoFragment.kt +++ /dev/null @@ -1,82 +0,0 @@ -package com.mogo.och.bus.passenger.ui.orderinfo - -import android.os.Bundle -import android.view.View -import com.mogo.commons.mvp.MvpFragment -import com.mogo.och.bus.passenger.R -import com.mogo.och.bus.passenger.presenter.OrderInfoPresenter -import com.mogo.och.bus.passenger.ui.dialogfragment.M1ContainFragment -import kotlinx.android.synthetic.main.m1_devices_fragment.* - -/** - * @author: yangyakun - * @date: 2023/1/28 - */ -class OrderInfoFragment : - MvpFragment() { - - private var dismiss: M1ContainFragment.ContainDismiss?=null - - override fun getLayoutId(): Int = R.layout.m1_devices_fragment - - override fun getTagName(): String = TAG - - override fun initViews() { - initListener() - } - - private fun initListener() { - actv_end_order_submit.setOnClickListener { - mPresenter?.endOrder() - } - actv_contain_order.setOnClickListener { - this.dismiss?.closeDialog() - } - actv_end_order.setOnClickListener { - cl_order_info.visibility = View.GONE - cl_order_info_endorder_comfit.visibility = View.VISIBLE - } - } - - fun setStartTimeAndEndTime(startTime:String,endTime:String){ - actv_order_times.text = "$startTime-$endTime" - } - fun setPhone(phone:String){ - if(phone.length>8) { - //截取电话号码前三位 - val phoneNumPre = phone.substring(0, 3); - //截取电话号码后四位 - val phoneNumFix = phone.substring(7); - actv_order_phone.text = "$phoneNumPre****$phoneNumFix" - }else{ - actv_order_phone.text = phone - } - } - - fun setLeftTime(leftTime:String){ - actv_left_time.text = "剩余时间 $leftTime" - } - - fun setContainDismiss(dismiss: M1ContainFragment.ContainDismiss) { - this.dismiss = dismiss - } - - fun closeDialogContaion(){ - this.dismiss?.closeDialog() - } - - override fun createPresenter(): OrderInfoPresenter = - OrderInfoPresenter(this) - - companion object { - const val TAG = "OrderInfoFragment" - @JvmStatic - fun newInstance(dismiss: M1ContainFragment.ContainDismiss): OrderInfoFragment { - val args = Bundle() - val fragment = OrderInfoFragment() - fragment.arguments = args - fragment.setContainDismiss(dismiss) - return fragment - } - } -} \ No newline at end of file diff --git a/OCH/charter/passenger/src/main/java/com/mogo/och/bus/passenger/ui/selectline/M1OrderLineFragment.kt b/OCH/charter/passenger/src/main/java/com/mogo/och/bus/passenger/ui/selectline/M1OrderLineFragment.kt deleted file mode 100644 index 31a90cb044..0000000000 --- a/OCH/charter/passenger/src/main/java/com/mogo/och/bus/passenger/ui/selectline/M1OrderLineFragment.kt +++ /dev/null @@ -1,268 +0,0 @@ -package com.mogo.och.bus.passenger.ui.selectline - -import android.animation.ObjectAnimator -import android.graphics.drawable.AnimationDrawable -import android.os.Bundle -import android.view.View -import android.view.animation.LinearInterpolator -import androidx.recyclerview.widget.LinearLayoutManager -import com.elegant.utils.UiThreadHandler -import com.mogo.commons.mvp.MvpFragment -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 -import com.mogo.och.bus.passenger.utils.ToastCharterUtils -import com.mogo.och.bus.passenger.R -import com.mogo.och.bus.passenger.bean.response.LineInfoResponse -import com.mogo.och.bus.passenger.bean.response.SiteInfoResponse -import com.mogo.och.bus.passenger.model.CharterPassengerModel -import com.mogo.och.bus.passenger.presenter.BusPassengerFunctionOrderPresenter -import com.mogo.och.bus.passenger.ui.selectline.adapter.OrderLineItemAdapter -import com.mogo.och.bus.passenger.ui.selectline.adapter.OrderSiteItemAdapter -import com.mogo.och.bus.passenger.ui.dialogfragment.M1ContainFragment -import com.mogo.och.bus.passenger.ui.selectline.layoutmanage.BottomDecoration -import com.mogo.och.common.module.utils.RxUtils -import io.reactivex.disposables.Disposable -import kotlinx.android.synthetic.main.m1_order_fragment.* -import kotlinx.android.synthetic.main.m1_order_loading.iv_loading_wait_ent -import me.jessyan.autosize.utils.AutoSizeUtils - -/** - * @author: yangyakun - * @date: 2023/1/28 - */ -class M1OrderLineFragment : - MvpFragment() { - - private var dismiss: M1ContainFragment.ContainDismiss? = null - - - private lateinit var lineAdapter: OrderLineItemAdapter - private lateinit var siteAdapter: OrderSiteItemAdapter - - val lineList = mutableListOf() - val siteList = mutableListOf() - - private var subscribeDirverAgree: Disposable? = null - private var subscribeDirverRefuse: Disposable? = null - - private val loadingAni = - ObjectAnimator.ofFloat(iv_loading_wait_ent, "rotation", 0f, 90f, 180f, 270f, 360f) - .apply { - repeatCount = -1 - interpolator = LinearInterpolator() - duration = 1000 - } - - - override fun getLayoutId(): Int { - return R.layout.m1_order_fragment - } - - override fun getTagName(): String { - return TAG - } - - override fun initViews() { - CallerLogger.d(SceneConstant.M_BUS_P + TAG, "initViews") - lineAdapter = OrderLineItemAdapter(requireContext(), lineList) - siteAdapter = OrderSiteItemAdapter(requireContext(), siteList) - loadingAni.target = iv_loading_wait_ent - rlv_line_list.layoutManager = - LinearLayoutManager(context, LinearLayoutManager.VERTICAL, false) - rlv_line_list.addItemDecoration( - BottomDecoration( - AutoSizeUtils.dp2px(context, 60f) - ) - ) - rlv_line_list.adapter = lineAdapter - - rv_site_list.layoutManager = - LinearLayoutManager(context, LinearLayoutManager.VERTICAL, false) - rv_site_list.addItemDecoration( - BottomDecoration( - AutoSizeUtils.dp2px(context, 90f) - ) - ) - rv_site_list.adapter = siteAdapter - - initListener() - - } - - private fun initListener() { - lineAdapter.checkChangeListener = object : OrderLineItemAdapter.CheckListener { - override fun canSwitchLine(): Boolean { - return true - } - - override fun onCheckListener(lineInfo: LineInfoResponse.LineInfo) { - mPresenter?.checkLineClick(lineInfo) - siteAdapter.clearCheck() - } - } - siteAdapter.checkChangeListener = object : OrderSiteItemAdapter.CheckListener { - override fun canSwitchLine(): Boolean { - return mPresenter?.canSwitchLine()?:true - } - - override fun onCheckListener(siteInfo: SiteInfoResponse.SiteInfo?) { - // 设置临时选中的 - mPresenter?.checkSiteClick(siteInfo) - } - - } - tv_site_cancle.onClick { - mPresenter?.resetData() - } - tv_site_submit.onClick { - mPresenter?.changeSites(siteList) - } - - } - - - /** - * 设置是否可用选择站点 - */ - fun setEnableSiteStatus(cancleAndSubmit: Boolean) { - if (cancleAndSubmit) { - g_side_cancle_submit_group?.visibility = View.VISIBLE - } else { - g_side_cancle_submit_group?.visibility = View.GONE - } - } - - fun hideDataWaitDriverMsg() { - g_lines_sites_data?.visibility = View.GONE - g_loading_group?.visibility = View.VISIBLE - iv_loading_wait_driver?.let { - val animationDrawable = it.drawable as AnimationDrawable - animationDrawable.start() - } - } - - fun showSelectData() { - UiThreadHandler.post { - g_lines_sites_data?.visibility = View.VISIBLE - g_loading_group?.visibility = View.GONE - group_driver_agrenn_line?.visibility = View.GONE - aciv_driver_refuse_group?.visibility = View.GONE - } - } - - fun hideDataDriverAgree(){ - group_driver_agrenn_line?.visibility = View.VISIBLE - aciv_driver_refuse_group?.visibility = View.GONE - g_loading_group?.visibility = View.GONE - g_lines_sites_data?.let { - it.visibility = View.GONE - subscribeDirverAgree = RxUtils.createSubscribe(3_000) { - dismiss?.closeDialog() - } - } - } - fun hideDataDriverRefuse(){ - group_driver_agrenn_line?.visibility = View.GONE - aciv_driver_refuse_group?.visibility = View.VISIBLE - g_loading_group?.visibility = View.GONE - g_lines_sites_data?.let { - it.visibility = View.GONE - subscribeDirverRefuse = RxUtils.createSubscribe(3_000) { - showSelectData() - } - } - } - - fun setVisableByTrun( - showBiz: Boolean = false, - showNetError: Boolean = false, - showNorOrder: Boolean = false, - showLoading: Boolean = false - ) { - if(showBiz){ - // 选择线路页面 - m1_order_noorder?.visibility = View.GONE - m1_order_neterror?.visibility = View.GONE - lsv_line_site?.visibility = View.VISIBLE - m1_order_loading?.visibility = View.GONE - return - } - if(showNetError){ - m1_order_noorder?.visibility = View.GONE - m1_order_neterror?.visibility = View.VISIBLE - lsv_line_site?.visibility = View.GONE - m1_order_loading?.visibility = View.GONE - return - } - if(showNorOrder){ - m1_order_noorder?.visibility = View.VISIBLE - m1_order_neterror?.visibility = View.GONE - lsv_line_site?.visibility = View.GONE - m1_order_loading?.visibility = View.GONE - return - } - if(showLoading){ - m1_order_noorder?.visibility = View.GONE - m1_order_neterror?.visibility = View.GONE - lsv_line_site?.visibility = View.GONE - m1_order_loading?.visibility = View.VISIBLE - if (!loadingAni.isRunning) { - loadingAni.start() - } - } - } - - - fun go2StartCar() { - dismiss?.closeDialog() - } - - override fun createPresenter(): BusPassengerFunctionOrderPresenter { - CallerLogger.d(SceneConstant.M_BUS_P + TAG, "createPresenter") - return BusPassengerFunctionOrderPresenter(this) - } - - override fun onDestroyView() { - super.onDestroyView() - loadingAni.cancel() - CallerLogger.d(SceneConstant.M_BUS_P + TAG, "onDestroyView") - RxUtils.disposeSubscribe(subscribeDirverAgree) - RxUtils.disposeSubscribe(subscribeDirverRefuse) - } - - fun lineAdapterSubmit(lineInfo: LineInfoResponse.LineInfo) { - lineAdapter.submitLine(lineInfo) - } - - fun lineAdapterSetData( - lineInfo: List, - checkLine: LineInfoResponse.LineInfo? - ) { - lineAdapter.setDataList(lineInfo,checkLine) - } - - fun siteAdapterSetData(siteInfo: List) { - siteAdapter.setDataList(siteInfo) - } - fun siteAdapterEnableIndex(index: Int) { - siteAdapter.setEnableIndex(index) - } - - fun setContainDismiss(dismiss: M1ContainFragment.ContainDismiss) { - this.dismiss = dismiss - } - - companion object { - const val TAG = "M1OrderLineFragment" - - @JvmStatic - fun newInstance(dismiss: M1ContainFragment.ContainDismiss): M1OrderLineFragment { - val args = Bundle() - val fragment = M1OrderLineFragment() - fragment.arguments = args - fragment.setContainDismiss(dismiss) - return fragment - } - } -} \ No newline at end of file diff --git a/OCH/charter/passenger/src/main/java/com/mogo/och/bus/passenger/ui/selectline/SelectLineViewModel.kt b/OCH/charter/passenger/src/main/java/com/mogo/och/bus/passenger/ui/selectline/SelectLineViewModel.kt index 54024fc9d1..c6c318859e 100644 --- a/OCH/charter/passenger/src/main/java/com/mogo/och/bus/passenger/ui/selectline/SelectLineViewModel.kt +++ b/OCH/charter/passenger/src/main/java/com/mogo/och/bus/passenger/ui/selectline/SelectLineViewModel.kt @@ -3,7 +3,6 @@ package com.mogo.och.bus.passenger.ui.selectline import androidx.lifecycle.ViewModel import com.elegant.utils.UiThreadHandler import com.mogo.commons.AbsMogoApplication -import com.mogo.eagle.core.data.BaseData import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotStatusListener import com.mogo.eagle.core.function.api.telematic.IReceivedMsgListener import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListenerManager @@ -17,24 +16,20 @@ import com.mogo.och.bus.passenger.bean.event.EventLineSites import com.mogo.och.bus.passenger.bean.response.LineInfoListResponse import com.mogo.och.bus.passenger.bean.response.LineInfoResponse import com.mogo.och.bus.passenger.bean.response.SiteInfoResponse -import com.mogo.och.bus.passenger.callback.ITimeCallback import com.mogo.och.bus.passenger.model.CharterPassengerModel import com.mogo.och.bus.passenger.model.IOrderStatusChangeListener import com.mogo.och.bus.passenger.model.OrderStatusEnum import com.mogo.och.bus.passenger.net.BusPassengerServiceManager -import com.mogo.och.bus.passenger.presenter.BusPassengerFunctionOrderPresenter import com.mogo.och.bus.passenger.utils.ToastCharterUtils import com.mogo.och.common.module.bean.dpmsg.BaseDPMsg import com.mogo.och.common.module.bean.dpmsg.ChangeDestMsg import com.mogo.och.common.module.bean.dpmsg.DPMsgType -import com.mogo.och.common.module.bean.dpmsg.EndOrderMsg import com.mogo.och.common.module.bean.dpmsg.LineSite import com.mogo.och.common.module.biz.constant.OchCommonConst import com.mogo.och.common.module.biz.network.OchCommonServiceCallback import com.mogo.och.common.module.manager.StopSideStatusManager import com.mogo.och.common.module.manager.loopmanager.BizLoopManager import com.mogo.och.common.module.manager.loopmanager.LoopInfo -import com.mogo.och.common.module.utils.DateTimeUtil import com.mogo.och.common.module.utils.RxUtils import io.reactivex.disposables.Disposable import org.greenrobot.eventbus.EventBus diff --git a/OCH/charter/passenger/src/main/java/com/mogo/och/bus/passenger/ui/softcontrol/M1SoftFragment.kt b/OCH/charter/passenger/src/main/java/com/mogo/och/bus/passenger/ui/softcontrol/M1SoftFragment.kt deleted file mode 100644 index 29b352dc9e..0000000000 --- a/OCH/charter/passenger/src/main/java/com/mogo/och/bus/passenger/ui/softcontrol/M1SoftFragment.kt +++ /dev/null @@ -1,735 +0,0 @@ -package com.mogo.och.bus.passenger.ui.softcontrol - -import android.animation.ObjectAnimator -import android.animation.ValueAnimator -import android.annotation.SuppressLint -import android.content.Context -import android.graphics.BitmapFactory -import android.graphics.drawable.ClipDrawable -import android.graphics.drawable.LayerDrawable -import android.media.AudioManager -import android.os.Bundle -import android.view.Gravity -import android.view.View -import android.view.animation.LinearInterpolator -import android.widget.RadioButton -import android.widget.SeekBar -import android.widget.SeekBar.OnSeekBarChangeListener -import android.widget.TextView -import androidx.core.content.ContextCompat -import com.mogo.commons.mvp.MvpFragment -import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger -import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant -import com.mogo.eagle.core.utilcode.mogo.storage.SharedPrefsMgr -import com.mogo.eagle.core.utilcode.util.ClickUtils -import com.mogo.och.bus.passenger.utils.ToastCharterUtils -import com.mogo.eagle.core.utilcode.util.UiThreadHandler -import com.mogo.och.bus.passenger.R -import com.mogo.och.bus.passenger.bean.Temperature -import com.mogo.och.bus.passenger.presenter.BusPassengerFunctionSoftPresenter -import com.mogo.och.bus.passenger.ui.softcontrol.adapter.TemperatureAdapter -import com.mogo.och.bus.passenger.ui.softcontrol.layoutmanage.PagerCenterSnapHelper -import com.mogo.och.bus.passenger.ui.softcontrol.layoutmanage.HorizontalDecoration -import com.mogo.och.bus.passenger.ui.selectline.layoutmanage.PickerLayoutManager -import com.mogo.och.common.module.utils.SoundPoolHelper -import com.mogo.och.common.module.wigets.MineGradientDrawable -import io.reactivex.Observable -import io.reactivex.android.schedulers.AndroidSchedulers -import io.reactivex.disposables.Disposable -import kotlinx.android.synthetic.main.m1_soft_fragment.* -import me.jessyan.autosize.utils.AutoSizeUtils -import java.util.concurrent.TimeUnit - - -/** - * @author: yangyakun - * @date: 2023/1/28 - */ -class M1SoftFragment : - MvpFragment() { - - override fun getLayoutId(): Int = R.layout.m1_soft_fragment - - override fun getTagName(): String = TAG - - private var currentTemperature: Temperature? = null - - private var subscribeAir: Disposable? = null - private var subscribeLightTop1: Disposable? = null - private var subscribeLightTop2: Disposable? = null - private var subscribeAtmosphere: Disposable? = null - private var subscribeAnimator: Disposable? = null - - private var animator1: ObjectAnimator? = null - private val loadingAni = ObjectAnimator.ofFloat(iv_loading, "rotation", 0f, 90f ,180f, 270f, 360f).apply { - repeatCount = -1 - interpolator = LinearInterpolator() - duration = 1000 - } - - - override fun initViews() { - rg_select_function.setOnCheckedChangeListener { group, checkedId -> - when (checkedId) { - R.id.tv_setting_aircondition -> { - g_light_setting.visibility = View.GONE - g_voice_setting.visibility = View.GONE - if(loadingAni.isRunning){ - iv_loading.visibility = View.VISIBLE - g_aircondition_setting.visibility = View.GONE - }else{ - g_aircondition_setting.visibility = View.VISIBLE - } - } - R.id.tv_setting_lighting -> { - g_light_setting.visibility = View.VISIBLE - g_voice_setting.visibility = View.GONE - g_aircondition_setting.visibility = View.GONE - iv_loading.visibility = View.GONE - } - R.id.tv_setting_voice -> { - g_voice_setting.visibility = View.VISIBLE - g_aircondition_setting.visibility = View.GONE - g_light_setting.visibility = View.GONE - iv_loading.visibility = View.GONE - } - else -> {} - } - if(rb_pattern_heating.isChecked){ - iv_temperature_select.visibility = View.GONE - } - } - rg_select_function.check(R.id.tv_setting_aircondition) - setAirconditionListener() - setAirConditionAni() - setLightListener() - setVoiceInfo() - } - - private fun setAirConditionAni() { - dbv_wind.post { - dbv_wind?.let { - val measuredHeight = it.measuredHeight - animator1 = ObjectAnimator.ofInt(it, "showHeight", 0, measuredHeight).apply { - duration = 1000 - repeatCount = ValueAnimator.INFINITE - if(rg_setting_windspeed.checkedRadioButtonId!=0&&tv_aircondition_switch.isChecked){ - start() - } - } - } - } - } - - fun showAni(){ - iv_loading.visibility = View.VISIBLE - loadingAni.target = iv_loading - loadingAni.start() - g_aircondition_setting.visibility = View.GONE - subscribeAnimator = Observable.timer(10000, TimeUnit.MILLISECONDS) - .observeOn(AndroidSchedulers.mainThread()) - .subscribe { - loadingAni.cancel() - iv_loading.visibility = View.GONE - if(tv_setting_aircondition.isChecked){ - g_aircondition_setting.visibility = View.VISIBLE - if(rb_pattern_heating.isChecked){ - iv_temperature_select.visibility = View.GONE - } - } - } - } - private fun setAirconditionListener() { - // 开关空调或暖风机 - tv_aircondition_switch.setOnCheckedChangeListener { buttonView, isChecked -> - if(!buttonView.isPressed){ - return@setOnCheckedChangeListener - } - SoundPoolHelper.getSoundPoolHelper().playSoundWithRedId(context, R.raw.bus_di) - if(isChecked){//打开 - tv_aircondition_switch.setText("关闭空调") - if (rg_setting_pattern.checkedRadioButtonId == R.id.rb_pattern_heating) { - openHeater()// 打开暖风机 - } else { - openAircondition()// 打开空调 - } - showAni() - }else{// 关闭 - tv_aircondition_switch.setText("打开空调") - closeHeater()// 关闭暖风机 - closeAircondition()//关闭空调 - } - } - // 模式调节 - rg_setting_pattern.setOnCheckedChangeListener { group, checkedId -> - CallerLogger.d(SceneConstant.M_BUS_P + TAG, "调节模式") - when (checkedId) { - R.id.rb_pattern_heating -> { - if(!rb_pattern_heating.isPressed){ - return@setOnCheckedChangeListener - } - SoundPoolHelper.getSoundPoolHelper().playSoundWithRedId(context, R.raw.bus_di) - openHeater() - } - R.id.rb_pattern_automatic->{ - if(!rb_pattern_automatic.isPressed){ - return@setOnCheckedChangeListener - } - SoundPoolHelper.getSoundPoolHelper().playSoundWithRedId(context, R.raw.bus_di) - openAircondition() - } - R.id.rb_pattern_refrigeration->{ - if(!rb_pattern_refrigeration.isPressed){ - return@setOnCheckedChangeListener - } - SoundPoolHelper.getSoundPoolHelper().playSoundWithRedId(context, R.raw.bus_di) - openAircondition() - } - R.id.rb_pattern_ventilate->{ - if(!rb_pattern_ventilate.isPressed){ - return@setOnCheckedChangeListener - } - SoundPoolHelper.getSoundPoolHelper().playSoundWithRedId(context, R.raw.bus_di) - openAircondition() - } - else -> { - openAircondition() - } - } - if(tv_aircondition_switch.isChecked) { - showAni() - } - } - - // 风速调节 - rg_setting_windspeed.setOnCheckedChangeListener { group, checkedId -> - when (checkedId) { - R.id.rb_wind_speed_low-> { - if(!rb_wind_speed_low.isPressed){ - return@setOnCheckedChangeListener - } - } - R.id.rb_wind_speed_middle-> { - if(!rb_wind_speed_middle.isPressed){ - return@setOnCheckedChangeListener - } - } - R.id.rb_wind_speed_high-> { - if(!rb_wind_speed_high.isPressed){ - return@setOnCheckedChangeListener - } - } - else -> {} - } - SoundPoolHelper.getSoundPoolHelper().playSoundWithRedId(context, R.raw.bus_di) - if (rg_setting_pattern.checkedRadioButtonId == R.id.rb_pattern_heating) {//暖风机 - openHeater() - } else { - openAircondition() - } - } - val pickerLayoutManager = - PickerLayoutManager( - requireContext(), - PickerLayoutManager.HORIZONTAL, - false - ) - pickerLayoutManager.isChangeAlpha = true - pickerLayoutManager.scaleDownBy = 0.29f - pickerLayoutManager.scaleDownDistance = 0.8f - - val data = getData() - val adapter = TemperatureAdapter(requireContext(), data, rv_aircondition_temperature) - val snapHelper = PagerCenterSnapHelper() - snapHelper.attachToRecyclerView(rv_aircondition_temperature) - rv_aircondition_temperature.layoutManager = pickerLayoutManager - rv_aircondition_temperature.adapter = adapter - HorizontalDecoration.distance = SharedPrefsMgr.getInstance(requireContext()).getInt( - HorizontalDecoration.distancekey,0) - val space = AutoSizeUtils.dp2px(context, 15f) - rv_aircondition_temperature.addItemDecoration( - HorizontalDecoration( - space, - data.size - 1 - ) - ) - - pickerLayoutManager.setOnScrollStopListener { view -> - if (view is TextView) { - // 未拖到中点、自动滚动到中点会短时间触发两次 - val tag = view.tag - if (tag is Temperature) { - mPresenter?.disposeSubscribe(subscribeAir) - if(tag.index==0||tag.index==adapter.data.size-1){ - subscribeAir = Observable.timer(200, TimeUnit.MILLISECONDS) - .observeOn(AndroidSchedulers.mainThread()) - .subscribe { - setCheckAir(adapter,tag) - } - }else { - if (ClickUtils.isClickTooFrequent(rv_aircondition_temperature)) { - return@setOnScrollStopListener - } - setCheckAir(adapter,tag) - } - } - - } - } - if(HorizontalDecoration.distance!=0){ - rv_aircondition_temperature.scrollToPosition(data.size-1) - adapter.setCheckIndex(data.size-1) - } - } - - private fun setCheckAir(adapter: TemperatureAdapter, tag:Temperature){ - adapter.setCheckIndex(tag.index) - currentTemperature = tag - if (rv_aircondition_temperature.tag == touchTag) { - rv_aircondition_temperature.tag = null - return - } else { - SoundPoolHelper.getSoundPoolHelper() - .playSoundWithRedId(context, R.raw.bus_di) - } - openAircondition() - } - - private fun getData(): MutableList { - val mutableListOf = mutableListOf() - mutableListOf.add(Temperature(0, 16, "16°")) - mutableListOf.add(Temperature(1, 17, "17°")) - mutableListOf.add(Temperature(2, 18, "18°")) - mutableListOf.add(Temperature(3, 19, "19°")) - mutableListOf.add(Temperature(4, 20, "20°")) - mutableListOf.add(Temperature(5, 21, "21°")) - mutableListOf.add(Temperature(6, 22, "22°")) - mutableListOf.add(Temperature(7, 23, "23°")) - mutableListOf.add(Temperature(8, 24, "24°")) - mutableListOf.add(Temperature(9, 25, "25°")) - mutableListOf.add(Temperature(10, 26, "26°")) - return mutableListOf - } - - /** - * 关闭空调 - */ - private fun closeAircondition() { - CallerLogger.d(SceneConstant.M_BUS_P + TAG, "关闭空调") - var modeCmd = 0 - var windSpeedCmd = 0 - val temperatureCmd = currentTemperature?.value ?: 26 - closeHeater()//关闭暖风 - when (rg_setting_pattern.checkedRadioButtonId) { - R.id.rb_pattern_automatic -> modeCmd = 1 // 自动 - R.id.rb_pattern_refrigeration -> modeCmd = 2 // 制冷 - R.id.rb_pattern_ventilate -> modeCmd = 3 // 通风 - else -> {} - } - when (rg_setting_windspeed.checkedRadioButtonId) { - R.id.rb_wind_speed_low -> windSpeedCmd = 1 // 1档 - R.id.rb_wind_speed_middle -> windSpeedCmd = 2 // 2档 - R.id.rb_wind_speed_high -> windSpeedCmd = 3 // 3档 - else -> {} - } - mPresenter?.closeAircondition(modeCmd, windSpeedCmd, temperatureCmd) - } - - /** - * 开启空调 - */ - private fun openAircondition() { - CallerLogger.d(SceneConstant.M_BUS_P + TAG, "打开空调") - var modeCmd = 0 - var windSpeedCmd = 0 - val temperatureCmd = currentTemperature?.value ?: 26 - closeHeater()//关闭暖风 - when (rg_setting_pattern.checkedRadioButtonId) { - R.id.rb_pattern_automatic -> modeCmd = 1 // 自动 - R.id.rb_pattern_refrigeration -> modeCmd = 2 // 制冷 - R.id.rb_pattern_ventilate -> modeCmd = 3 // 通风 - else -> {} - } - when (rg_setting_windspeed.checkedRadioButtonId) { - R.id.rb_wind_speed_low -> windSpeedCmd = 1 // 1档 - R.id.rb_wind_speed_middle -> windSpeedCmd = 2 // 2档 - R.id.rb_wind_speed_high -> windSpeedCmd = 3 // 3档 - else -> {} - } - if (!tv_aircondition_switch.isChecked) { - return - } - mPresenter?.openAndSetAircondition(modeCmd, windSpeedCmd, temperatureCmd) - } - - /** - * 根据车的状态会写页面状态 - */ - fun setAirconditionHeaterView( - airIsOpen: Boolean, - heaterIsOpen: Boolean, - temperatureCmd: Int, - pattern: Int, - windSpeed: Int - ) { - tv_aircondition_switch?.let { - if (!airIsOpen && !heaterIsOpen) { - tv_aircondition_switch.text = "打开空调" - tv_aircondition_switch.isChecked = false - dbv_wind.visibility = View.GONE - } else { - tv_aircondition_switch.text = "关闭空调" - tv_aircondition_switch.isChecked = true - dbv_wind.visibility = View.VISIBLE - } - if (airIsOpen) { - val adapter = rv_aircondition_temperature.adapter - if (adapter is TemperatureAdapter) { - adapter.data.forEach { - if (it.value == temperatureCmd) { - rv_aircondition_temperature.tag = touchTag - UiThreadHandler.postDelayed({ - rv_aircondition_temperature?.smoothScrollToPosition(it.index) - },500) - } - } - } - when (pattern) {//1: 自动模式, 2: 制冷模式, 3: 通风模式(仅送风,无温度) - 1 -> {rb_pattern_automatic.isChecked = true} - 2 -> {rb_pattern_refrigeration.isChecked = true} - 3 -> {rb_pattern_ventilate.isChecked = true} - else -> {} - } - heaterAirEnable(true) - when (windSpeed) {//1: 1档,2: 2档,3:3档 - 1 -> { - setWind(rb_wind_speed_low,R.drawable.bus_pm1_aircondition_wind_low) - } - 2 -> { - setWind(rb_wind_speed_middle,R.drawable.bus_pm1_aircondition_wind_middle) - } - 3 -> { - setWind(rb_wind_speed_high,R.drawable.bus_pm1_aircondition_wind_high) - } - else -> {} - } - } - if (heaterIsOpen) { - rb_pattern_heating.isChecked = true - heaterAirEnable(false) - when (windSpeed) {//1: 1档,2: 2档 - 1 -> { - setWind(rb_wind_speed_middle,R.drawable.bus_pm1_warm_wind_middle) - } - 2 -> { - setWind(rb_wind_speed_high,R.drawable.bus_pm1_warm_wind_high) - } - else -> {} - } - } - } - } - fun setWind(check: RadioButton,resource:Int){ - check.isChecked = true - dbv_wind.setDrawableImage(BitmapFactory.decodeResource(resources,resource)) - } - - /** - * 关闭暖风机 - */ - private fun closeHeater() { - CallerLogger.d(SceneConstant.M_BUS_P + TAG, "关闭暖风") - heaterAirEnable(true) - mPresenter?.closeHeader() - } - - private fun heaterAirEnable(enable: Boolean) { - tv_temperature_title.isEnabled = enable - rv_aircondition_temperature.isEnabled = enable - val layoutManager = rv_aircondition_temperature.layoutManager - if (layoutManager is PickerLayoutManager) { - layoutManager.setHorizontallyScroll(enable) - } - val adapter = rv_aircondition_temperature.adapter as TemperatureAdapter - if(enable){ - adapter.setEnable(true) - if(tv_setting_aircondition.isChecked) { - if(iv_loading.visibility==View.GONE){ - iv_temperature_select.visibility = View.VISIBLE - } - } - rb_wind_speed_low.setTextColor(ContextCompat.getColorStateList(requireContext(),R.color.bus_p_function_airconditon_pattern_text_color_selector)) - }else{ - adapter.setEnable(false) - iv_temperature_select.visibility = View.GONE - rb_wind_speed_low.setTextColor(ContextCompat.getColor(requireContext(),R.color.bus_p_m1_6647576e)) - } - } - - /** - * 开启暖风机 - */ - private fun openHeater() { - CallerLogger.d(SceneConstant.M_BUS_P + TAG, "打开暖风") - heaterAirEnable(false) - closeAircondition()//关闭空调 - val switch: Int - when (rg_setting_windspeed.checkedRadioButtonId) { - R.id.rb_wind_speed_low -> { - rb_wind_speed_middle.tag = touchTag - rb_wind_speed_middle.toggle() - switch = 1 - } - R.id.rb_wind_speed_middle -> { - switch = 1 - } - R.id.rb_wind_speed_high -> { - switch = 2 - } - else -> { - rb_wind_speed_middle.tag = touchTag - rb_wind_speed_middle.toggle() - switch = 1 - } - } - if (!tv_aircondition_switch.isChecked) { - return - } - mPresenter?.openAndSetHeader(switch) - } - - - // region 灯 - private fun setLightListener() { - tv_light_top_01.setOnCheckedChangeListener { buttonView, isChecked -> - if(!buttonView.isPressed){ - return@setOnCheckedChangeListener - } - tv_light_top_01.isEnabled = false - subscribeLightTop1 = Observable.timer(2000, TimeUnit.MILLISECONDS) - .observeOn(AndroidSchedulers.mainThread()) - .subscribe { - tv_light_top_01.isEnabled = true - } - SoundPoolHelper.getSoundPoolHelper().playSoundWithRedId(context, R.raw.bus_di) - mPresenter?.setLightData1(isChecked) - setLightTop1View(isChecked,true) - setLightView(isChecked,tv_light_top_02.isChecked) - } - tv_light_top_02.setOnCheckedChangeListener { buttonView, isChecked -> - if(!buttonView.isPressed){ - return@setOnCheckedChangeListener - } - tv_light_top_02.isEnabled = false - subscribeLightTop2 = Observable.timer(2000, TimeUnit.MILLISECONDS) - .observeOn(AndroidSchedulers.mainThread()) - .subscribe { - tv_light_top_02.isEnabled = true - } - SoundPoolHelper.getSoundPoolHelper().playSoundWithRedId(context, R.raw.bus_di) - mPresenter?.setLightData2(isChecked) - setLightTop2View(isChecked,true) - setLightView(tv_light_top_01.isChecked,isChecked) - } - tv_light_atmosphere.setOnCheckedChangeListener { buttonView, isChecked -> - if(!buttonView.isPressed){ - return@setOnCheckedChangeListener - } - tv_light_atmosphere.isEnabled = false - subscribeAtmosphere = Observable.timer(2000, TimeUnit.MILLISECONDS) - .observeOn(AndroidSchedulers.mainThread()) - .subscribe { - tv_light_atmosphere.isEnabled = true - } - SoundPoolHelper.getSoundPoolHelper().playSoundWithRedId(context, R.raw.bus_di) - mPresenter?.setAtmosphereLightData2(isChecked) - setLightAtmosphereView(isChecked,true) - } - } - - fun setLightTop1View(leftLight: Boolean, isFirst: Boolean){ - tv_light_top_01?.let { - if (leftLight) { - tv_light_top_01.text = requireContext().getString(R.string.bus_p_m1_close_light1) - tv_light_top_01.isChecked = true - if(!isFirst) ToastCharterUtils.showShort("打开顶灯1") - } else { - tv_light_top_01.text = requireContext().getString(R.string.bus_p_m1_open_light1) - tv_light_top_01.isChecked = false - if(!isFirst) ToastCharterUtils.showShort("关闭顶灯1") - } - } - } - fun setLightTop2View(rightLight: Boolean, isFirst: Boolean){ - tv_light_top_02?.let { - if (rightLight) { - tv_light_top_02.text = requireContext().getString(R.string.bus_p_m1_close_light2) - tv_light_top_02.isChecked = true - if(!isFirst) ToastCharterUtils.showShort("打开顶灯2") - } else { - tv_light_top_02.text = requireContext().getString(R.string.bus_p_m1_open_light2) - tv_light_top_02.isChecked = false - if(!isFirst) ToastCharterUtils.showShort("关闭顶灯2") - } - } - } - fun setLightAtmosphereView(atmosphereLight: Boolean, isFirst: Boolean){ - tv_light_atmosphere?.let { - if (atmosphereLight) { - tv_light_atmosphere.text = requireContext().getString(R.string.bus_p_m1_close_atmosphere) - tv_light_atmosphere.isChecked = true - iv_bottom_light_setting.setImageResource(R.drawable.bus_p_function_atmosphere_select) - if(!isFirst) ToastCharterUtils.showShort("打开氛围灯") - } else { - tv_light_atmosphere.text = requireContext().getString(R.string.bus_p_m1_open_atmosphere) - tv_light_atmosphere.isChecked = false - iv_bottom_light_setting.setImageResource(R.drawable.bus_p_function_atmosphere_nor) - if(!isFirst) ToastCharterUtils.showShort("关闭氛围灯") - } - } - } - - /** - * 灯的UI发生变化 - */ - fun setLightView(leftLight: Boolean, rightLight: Boolean) { - iv_top_light_setting?.let { - if (leftLight && rightLight) { - iv_top_light_setting.setImageResource(R.drawable.bus_p_function_light_middle_selected)// 都打开 - } else if (!leftLight && !rightLight) { - iv_top_light_setting.setImageResource(R.drawable.bus_p_function_light_nor)// 都关闭 - } else { - if (leftLight) { - iv_top_light_setting.setImageResource(R.drawable.bus_p_function_light_select_left)// 左面开 - } - if (rightLight) { - iv_top_light_setting.setImageResource(R.drawable.bus_p_function_light_select_right)// 左面开 - } - } - } - } - // endregion - - // region 声音 - private var mAudioManager: AudioManager? = null - private var mMaxVolume: Int? = 100 - - - @SuppressLint("NewApi") - private fun setVoiceInfo() { - val dp2px = AutoSizeUtils.dp2px(context, 26f)//进度条高度 - val color2CBFFC = ContextCompat.getColor(requireContext(), R.color.bus_p_m1_2cbffc) - val color1060FF = ContextCompat.getColor(requireContext(), R.color.bus_p_m1_1060ff) - val color96A5C2 = ContextCompat.getColor(requireContext(), R.color.bus_p_m1_96a5c2) - val temp03 = MineGradientDrawable(color2CBFFC, color1060FF, dp2px) - val scaleDrawable3 = ClipDrawable(temp03, Gravity.START, ClipDrawable.HORIZONTAL) - val temp01 = MineGradientDrawable(color96A5C2, color96A5C2, dp2px) - val arr = arrayOf(temp01, scaleDrawable3) - val ld = LayerDrawable(arr) - ld.setDrawableByLayerId(android.R.id.background, temp01) - ld.setDrawableByLayerId(android.R.id.progress, scaleDrawable3) - sb_voice_bar.setProgressDrawableTiled(ld) - sb_voice_bar.max = 100 - sb_voice_bar.min = 5 - sb_voice_bar.setOnSeekBarChangeListener(object : OnSeekBarChangeListener { - override fun onProgressChanged(seekBar: SeekBar?, progress: Int, fromUser: Boolean) { - tv_current_voice_value.text = "$progress%" - if (fromUser) { - mMaxVolume?.let { - var currnetValue = ((progress.toFloat() / 100) * it).toInt() - if (currnetValue <= 0) { - currnetValue = 1 - } - mAudioManager?.setStreamVolume( - AudioManager.STREAM_MUSIC, - currnetValue, - AudioManager.FLAG_REMOVE_SOUND_AND_VIBRATE - ) - } - } - if (progress == 0) { - iv_voice.setImageResource(R.drawable.bus_p_function_voice_middle_select) - iv_end_voice.setImageResource(R.drawable.bus_p_function_voice_min) - } else { - iv_voice.setImageResource(R.drawable.bus_p_function_voice_middle_selected) - iv_end_voice.setImageResource(R.drawable.bus_p_function_voice_max) - } - - } - - override fun onStartTrackingTouch(seekBar: SeekBar?) {} - override fun onStopTrackingTouch(seekBar: SeekBar?) {} - }) - - context?.let { - mAudioManager = it.getSystemService(Context.AUDIO_SERVICE) as AudioManager - mMaxVolume = mAudioManager?.getStreamMaxVolume(AudioManager.STREAM_MUSIC) - val mCurrentVolume = mAudioManager?.getStreamVolume(AudioManager.STREAM_MUSIC) - mMaxVolume?.let { max -> - mCurrentVolume?.let { current -> - if (current == 1) { - sb_voice_bar.progress = 5 - tv_current_voice_value.text = "5%" - } else { - val fl = current.toFloat() / max * 100 - sb_voice_bar.progress = fl.toInt() - tv_current_voice_value.text = "${fl.toInt()}%" - } - } - } - - } - } - // endregion - - override fun createPresenter(): BusPassengerFunctionSoftPresenter = - BusPassengerFunctionSoftPresenter(this) - - override fun onDestroy() { - mPresenter?.disposeSubscribe(subscribeLightTop1) - mPresenter?.disposeSubscribe(subscribeLightTop2) - mPresenter?.disposeSubscribe(subscribeAtmosphere) - mPresenter?.disposeSubscribe(subscribeAnimator) - - super.onDestroy() - } - - override fun onResume() { - super.onResume() - if(rg_setting_windspeed.checkedRadioButtonId!=0&&tv_aircondition_switch.isChecked){ - animator1?.start() - } - } - - override fun onPause() { - super.onPause() - animator1?.let { - if(it.isRunning){ - it.pause() - } - } - } - - override fun onDetach() { - super.onDetach() - animator1?.let { - if(it.isRunning){ - it.end() - } - } - } - - companion object { - const val TAG = "M1SoftFragment" - const val touchTagKey = 2 - const val touchTag = 2 - - @JvmStatic - fun newInstance(): M1SoftFragment { - val args = Bundle() - val fragment = M1SoftFragment() - fragment.arguments = args - return fragment - } - } -} \ No newline at end of file diff --git a/OCH/charter/passenger/src/main/java/com/mogo/och/bus/passenger/ui/softcontrol/SoftControlView.kt b/OCH/charter/passenger/src/main/java/com/mogo/och/bus/passenger/ui/softcontrol/SoftControlView.kt index bd297fb31b..2cde65d6b2 100644 --- a/OCH/charter/passenger/src/main/java/com/mogo/och/bus/passenger/ui/softcontrol/SoftControlView.kt +++ b/OCH/charter/passenger/src/main/java/com/mogo/och/bus/passenger/ui/softcontrol/SoftControlView.kt @@ -76,6 +76,8 @@ class SoftControlView : ConstraintLayout, SoftControlViewModel.SoftControlCallba private val TAG = "OrderInfoView" + private val touchTag = 2 + private var viewModel: SoftControlViewModel? = null constructor(context: Context) : super(context) @@ -177,7 +179,7 @@ class SoftControlView : ConstraintLayout, SoftControlViewModel.SoftControlCallba * 关闭暖风机 */ private fun closeHeater() { - CallerLogger.d(SceneConstant.M_BUS_P + M1SoftFragment.TAG, "关闭暖风") + CallerLogger.d(SceneConstant.M_BUS_P + TAG, "关闭暖风") heaterAirEnable(true) viewModel?.closeHeader() } @@ -219,13 +221,13 @@ class SoftControlView : ConstraintLayout, SoftControlViewModel.SoftControlCallba * 开启暖风机 */ private fun openHeater() { - CallerLogger.d(SceneConstant.M_BUS_P + M1SoftFragment.TAG, "打开暖风") + CallerLogger.d(SceneConstant.M_BUS_P + TAG, "打开暖风") heaterAirEnable(false) closeAircondition()//关闭空调 val switch: Int when (rg_setting_windspeed.checkedRadioButtonId) { R.id.rb_wind_speed_low -> { - rb_wind_speed_middle.tag = M1SoftFragment.touchTag + rb_wind_speed_middle.tag = touchTag rb_wind_speed_middle.toggle() switch = 1 } @@ -239,7 +241,7 @@ class SoftControlView : ConstraintLayout, SoftControlViewModel.SoftControlCallba } else -> { - rb_wind_speed_middle.tag = M1SoftFragment.touchTag + rb_wind_speed_middle.tag = touchTag rb_wind_speed_middle.toggle() switch = 1 } @@ -254,7 +256,7 @@ class SoftControlView : ConstraintLayout, SoftControlViewModel.SoftControlCallba * 关闭空调 */ private fun closeAircondition() { - CallerLogger.d(SceneConstant.M_BUS_P + M1SoftFragment.TAG, "关闭空调") + CallerLogger.d(SceneConstant.M_BUS_P + TAG, "关闭空调") var modeCmd = 0 var windSpeedCmd = 0 val temperatureCmd = currentTemperature?.value ?: 26 @@ -297,7 +299,7 @@ class SoftControlView : ConstraintLayout, SoftControlViewModel.SoftControlCallba * 开启空调 */ private fun openAircondition() { - CallerLogger.d(SceneConstant.M_BUS_P + M1SoftFragment.TAG, "打开空调") + CallerLogger.d(SceneConstant.M_BUS_P + TAG, "打开空调") var modeCmd = 0 var windSpeedCmd = 0 val temperatureCmd = currentTemperature?.value ?: 26 @@ -323,7 +325,7 @@ class SoftControlView : ConstraintLayout, SoftControlViewModel.SoftControlCallba private fun setCheckAir(adapter: TemperatureAdapter, tag: Temperature) { adapter.setCheckIndex(tag.index) currentTemperature = tag - if (rv_aircondition_temperature.tag == M1SoftFragment.touchTag) { + if (rv_aircondition_temperature.tag == touchTag) { rv_aircondition_temperature.tag = null return } else { @@ -554,7 +556,7 @@ class SoftControlView : ConstraintLayout, SoftControlViewModel.SoftControlCallba } // 模式调节 rg_setting_pattern.setOnCheckedChangeListener { group, checkedId -> - CallerLogger.d(SceneConstant.M_BUS_P + M1SoftFragment.TAG, "调节模式") + CallerLogger.d(SceneConstant.M_BUS_P + TAG, "调节模式") when (checkedId) { R.id.rb_pattern_heating -> { if (!rb_pattern_heating.isPressed) { @@ -723,7 +725,7 @@ class SoftControlView : ConstraintLayout, SoftControlViewModel.SoftControlCallba if (adapter is TemperatureAdapter) { adapter.data.forEach { if (it.value == temperatureCmd) { - rv_aircondition_temperature.tag = M1SoftFragment.touchTag + rv_aircondition_temperature.tag = touchTag UiThreadHandler.postDelayed({ rv_aircondition_temperature?.smoothScrollToPosition(it.index) }, 500) diff --git a/OCH/charter/passenger/src/main/java/com/mogo/och/bus/passenger/ui/video/M1VideoFragment.kt b/OCH/charter/passenger/src/main/java/com/mogo/och/bus/passenger/ui/video/M1VideoFragment.kt deleted file mode 100644 index 746548ad23..0000000000 --- a/OCH/charter/passenger/src/main/java/com/mogo/och/bus/passenger/ui/video/M1VideoFragment.kt +++ /dev/null @@ -1,163 +0,0 @@ -package com.mogo.och.bus.passenger.ui.video - -import android.os.Bundle -import android.view.View -import androidx.recyclerview.widget.RecyclerView -import com.mogo.commons.mvp.MvpFragment -import com.mogo.och.bus.passenger.R -import com.mogo.och.bus.passenger.bean.TaxiPassengerVideoPlay -import com.mogo.och.bus.passenger.presenter.BusPassengerFunctionVideoPresenter -import com.mogo.och.bus.passenger.ui.video.adapter.RecyclerVideoAdapter -import com.mogo.och.bus.passenger.ui.softcontrol.layoutmanage.CarouselLayoutManager -import com.mogo.och.bus.passenger.ui.softcontrol.layoutmanage.CarouselZoomPostLayoutListener -import com.mogo.och.bus.passenger.ui.softcontrol.layoutmanage.CenterScrollListener -import com.shuyu.gsyvideoplayer.video.base.GSYVideoView -import kotlinx.android.synthetic.main.m1_video_fragment.* -import kotlin.math.floor - -/** - * @author: yangyakun - * @date: 2023/1/28 - */ -class M1VideoFragment : - MvpFragment() { - - private val arrayListOf = ArrayList() - - override fun getLayoutId(): Int { - return R.layout.m1_video_fragment - } - - override fun getTagName(): String { - return TAG - } - - override fun initViews() { - initConsultData() - val carouselLayoutManager = - CarouselLayoutManager( - CarouselLayoutManager.HORIZONTAL, - true - ) - carouselLayoutManager.setPostLayoutListener(CarouselZoomPostLayoutListener()) - carouselLayoutManager.maxVisibleItems = 1 - rvVideoPlaylist.addOnScrollListener(object : CenterScrollListener() { - var prePlayerPosition = 0 - override fun pageSelect(recyclerView: RecyclerView?, newState: Int) { - //播放视频 - val (centerItemPosition: kotlin.Int, player) = getPlayer(carouselLayoutManager) - if (player is ConsultVideoPlayer) { - if (prePlayerPosition != centerItemPosition) { - if (player.currentState == GSYVideoView.CURRENT_STATE_PAUSE) { - player.onVideoReset() - } - val playerHolder = - carouselLayoutManager.findViewByPosition(prePlayerPosition) - val prePlayer = - playerHolder?.findViewById(R.id.video_item_player) - prePlayer?.onVideoReset() - val taxiPassengerVideoPlay = arrayListOf[centerItemPosition] - setBackageAndPlayNext(taxiPassengerVideoPlay) - } else { - player.onVideoResume(false) - } - } - prePlayerPosition = centerItemPosition - } - - override fun pageStop() { - val (_, player) = getPlayer(carouselLayoutManager) - if (player is ConsultVideoPlayer) { - player.onVideoPause() - } - } - - }) - carouselLayoutManager.addOnDargAutoDiffListener { adapterPosition, currentPosition -> - val fl = adapterPosition - floor(adapterPosition) - var currentIndex = currentPosition - if (fl > 0.5) { - if (currentPosition == 0) { - currentIndex = rvVideoPlaylist?.adapter!!.itemCount - 1 - } else { - currentIndex -= 1 - } - } - } - val recyclerVideoAdapter = - RecyclerVideoAdapter( - requireContext(), - arrayListOf, - rvVideoPlaylist - ) - recyclerVideoAdapter.setOnThumbImageClilckListener { - val (_, player) = getPlayer(carouselLayoutManager) - if (player is ConsultVideoPlayer) { - player.onVideoReset() - player.thumbImageViewLayout.visibility = View.VISIBLE - } - rvVideoPlaylist?.smoothScrollToPosition(it) - } - rvVideoPlaylist?.layoutManager = carouselLayoutManager - rvVideoPlaylist?.setHasFixedSize(true) - rvVideoPlaylist?.adapter = recyclerVideoAdapter - } - - private fun getPlayer(carouselLayoutManager: CarouselLayoutManager): Pair { - val centerItemPosition: Int = carouselLayoutManager.centerItemPosition - val playerHolder = carouselLayoutManager.findViewByPosition(centerItemPosition) - val player = playerHolder?.findViewById(R.id.video_item_player) - return Pair(centerItemPosition, player) - } - - private fun setBackageAndPlayNext(taxiPassengerVideoPlay: TaxiPassengerVideoPlay) { - // 设置背景图片 - } - - private fun initConsultData() { - arrayListOf.clear() - arrayListOf.add( - TaxiPassengerVideoPlay( - "https://img.zhidaohulian.com/fileServer/online_car_hailing/1655708596763/全车型混剪增加红旗车队.m4v", - "https://img.zhidaohulian.com/fileServer/online_car_hailing/1655969511280/车队.png", - "蘑菇车联覆盖生活的方方面面" - ) - ) - arrayListOf.add( - TaxiPassengerVideoPlay( - "https://img.zhidaohulian.com/fileServer/online_car_hailing/1655708554279/红旗车队.m4v", - "https://img.zhidaohulian.com/fileServer/online_car_hailing/1655969553174/红旗重新排版.png", - "蘑菇车联之红旗车队" - ) - ) - arrayListOf.add( - TaxiPassengerVideoPlay( - "https://img.zhidaohulian.com/fileServer/online_car_hailing/1655708499497/大运会合作解说版.m4v", - "https://img.zhidaohulian.com/fileServer/online_car_hailing/1655969536177/大运会.png", - "蘑菇车联牵手成都大运会" - ) - ) - arrayListOf.add( - TaxiPassengerVideoPlay( - "https://img.zhidaohulian.com/fileServer/online_car_hailing/1655708409810/20210610重新排版3屏.m4v", - "https://img.zhidaohulian.com/fileServer/online_car_hailing/1655969579713/三屏.png", - "多视角体验蘑菇车联自动驾驶" - ) - ) - } - - override fun createPresenter(): BusPassengerFunctionVideoPresenter { - return BusPassengerFunctionVideoPresenter(this) - } - - companion object { - const val TAG = "M1VideoFragment" - @JvmStatic - fun newInstance(): M1VideoFragment { - val args = Bundle() - val fragment = M1VideoFragment() - fragment.arguments = args - return fragment - } - } -} \ No newline at end of file