diff --git a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/model/TicketModel.kt b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/model/TicketModel.kt index 8bcfdb3a8f..1f7aa2e638 100644 --- a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/model/TicketModel.kt +++ b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/model/TicketModel.kt @@ -38,9 +38,9 @@ object TicketModel : IOchOnMessageListener{ private const val SELECTWRITEOFFCOUNT = "SELECTWRITEOFFCOUNT" - private var emitterMain: ObservableEmitter?=null + private var emitterMain: ObservableEmitter>?=null - private val observable = Observable.create(ObservableOnSubscribe { emitter -> emitterMain = emitter }) + private val observable = Observable.create(ObservableOnSubscribe> { emitter -> emitterMain = emitter }) private val writeOffMsg = object : ILanMessageListener { override fun targetLan(): Class = WriteOffMsg::class.java @@ -106,7 +106,7 @@ object TicketModel : IOchOnMessageListener{ object : OchCommonServiceCallback { override fun onSuccess(data: WriteOffCountResponse?) { data?.data?.let { - emitterMain?.onNext(it) + emitterMain?.onNext(Pair(firstStation.siteId,it)) d(SceneConstant.M_BUS + TAG, "${firstStation.name}核销人数:${it}") OchChainLogManager.writeChainLog("核销人数","任务:${currentTask.taskId} zhan'dian") } @@ -120,11 +120,11 @@ object TicketModel : IOchOnMessageListener{ } } - emitterMain?.onNext(0) + emitterMain?.onNext(Pair(0,0)) d(SceneConstant.M_BUS + TAG, "线路或者站点未空") } - fun getWriteOffCountObservable():Observable{ + fun getWriteOffCountObservable():Observable>{ return observable } diff --git a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/ui/taskrunning/TaskRunningAdapter.kt b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/ui/taskrunning/TaskRunningAdapter.kt index cb1404fe9c..f0b932e176 100644 --- a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/ui/taskrunning/TaskRunningAdapter.kt +++ b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/ui/taskrunning/TaskRunningAdapter.kt @@ -14,6 +14,7 @@ import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger import com.mogo.och.common.module.utils.ResourcesUtils import com.mogo.och.data.bean.BusStationBean import com.mogo.och.shuttle.weaknet.R +import com.mogo.och.weaknet.model.LineModel import com.mogo.och.weaknet.ui.writeoff.WriteOffView import me.jessyan.autosize.utils.AutoSizeUtils @@ -28,7 +29,6 @@ class TaskRunningAdapter( companion object{ const val TAG = "TaskRunningAdapter" } - private var startStationIndex:Int = -1 private val argbEvaluator: ArgbEvaluator = ArgbEvaluator() private val startColor = ResourcesUtils.getColor(R.color.shuttle_driver_1970FF) @@ -37,14 +37,13 @@ class TaskRunningAdapter( private val halfHeight = 16.5f private var totalHeight = 0f - fun setDataList(dataList: List, startStationIndex:Int) { - this.startStationIndex = startStationIndex + fun setDataList(dataList: List) { this.mData.clear() this.mData.addAll(dataList) - if(startStationIndex==0){ + if(LineModel.startStationIndex==0){ totalHeight = 33 + (dataList.size-2)*heightItem }else{ - totalHeight = (halfHeight+(dataList.size-1-startStationIndex)*heightItem).toFloat() + totalHeight = (halfHeight+(dataList.size-1-LineModel.startStationIndex)*heightItem).toFloat() } notifyItemRangeChanged(0,dataList.size,true) } @@ -63,6 +62,8 @@ class TaskRunningAdapter( val currentPosition = holder.bindingAdapterPosition val line = mData[currentPosition] holder.actvStationName.text = line.name + holder.actvWriteOffCount.setSiteId(line.siteId) + val startStationIndex = LineModel.startStationIndex if (startStationIndex>0) { CallerLogger.d(TAG, "位置:$currentPosition 当前站${mData[startStationIndex]} ") } @@ -70,14 +71,16 @@ class TaskRunningAdapter( if(currentPosition=2 }?.let { actv_running_task_last_station.text = "往${it.last().name ?: ""}" - mAdapter.setDataList(it,LineModel.startStationIndex) + mAdapter.setDataList(it) CallerLogger.d(TAG,"BusLineModel.startStationIndex:${LineModel.startStationIndex}___$it") val currentStation = it.get(LineModel.startStationIndex) if(currentStation.isLeaving){ diff --git a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/ui/writeoff/WriteOffView.kt b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/ui/writeoff/WriteOffView.kt index f81be538fb..a1d8b41958 100644 --- a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/ui/writeoff/WriteOffView.kt +++ b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/ui/writeoff/WriteOffView.kt @@ -2,13 +2,14 @@ package com.mogo.och.weaknet.ui.writeoff import android.content.Context import android.util.AttributeSet -import android.view.LayoutInflater import androidx.appcompat.widget.AppCompatTextView -import androidx.constraintlayout.widget.ConstraintLayout import androidx.lifecycle.ViewModelProvider import androidx.lifecycle.findViewTreeViewModelStoreOwner +import com.mogo.commons.AbsMogoApplication +import com.mogo.commons.env.ProjectUtils +import com.mogo.eagle.core.data.config.FunctionBuildConfig +import com.mogo.eagle.core.utilcode.mogo.AppIdentityModeUtils import com.mogo.och.shuttle.weaknet.R -import kotlinx.android.synthetic.main.shuttle_weak_wirte_off_view.view.tv_write_off_count class WriteOffView : AppCompatTextView, WriteOffViewModel.IwriteOffViewCallback { @@ -22,10 +23,16 @@ class WriteOffView : AppCompatTextView, WriteOffViewModel.IwriteOffViewCallback private var viewModel:WriteOffViewModel? = null + private var siteId:Int = 0 + override fun onAttachedToWindow() { super.onAttachedToWindow() - + if(ProjectUtils.isDali()&& AppIdentityModeUtils.isShuttleDriver(FunctionBuildConfig.appIdentityMode)) { + val showText = + AbsMogoApplication.getApp().getString(R.string.shuttle_write_off_count,0) + text = showText + } viewModel = findViewTreeViewModelStoreOwner()?.let { ViewModelProvider(it).get(WriteOffViewModel::class.java) } @@ -38,6 +45,11 @@ class WriteOffView : AppCompatTextView, WriteOffViewModel.IwriteOffViewCallback private fun stopListenerWriteOff(){ viewModel?.setWriteOffCallback(null) visibility = GONE + if(ProjectUtils.isDali()&& AppIdentityModeUtils.isShuttleDriver(FunctionBuildConfig.appIdentityMode)) { + val showText = + AbsMogoApplication.getApp().getString(R.string.shuttle_write_off_count, 0) + text = showText + } } override fun onVisibilityAggregated(isVisible: Boolean) { @@ -57,8 +69,14 @@ class WriteOffView : AppCompatTextView, WriteOffViewModel.IwriteOffViewCallback } } - override fun setWriteOffCount(showText: String) { - text = showText + override fun setWriteOffCount(showText: String,siteId: Int) { + if(this.siteId==siteId) { + text = showText + } + } + + fun setSiteId(siteId: Int) { + this.siteId = siteId } diff --git a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/ui/writeoff/WriteOffViewModel.kt b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/ui/writeoff/WriteOffViewModel.kt index 4eafb93ba8..5f75e85334 100644 --- a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/ui/writeoff/WriteOffViewModel.kt +++ b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/ui/writeoff/WriteOffViewModel.kt @@ -24,7 +24,7 @@ class WriteOffViewModel : ViewModel() { private var disposable: Disposable? = null - private val observer = object : Observer { + private val observer = object : Observer> { override fun onSubscribe(d: Disposable) { disposable = d } @@ -37,21 +37,24 @@ class WriteOffViewModel : ViewModel() { } - override fun onNext(countInfo: String) { - viewCallback?.setWriteOffCount(countInfo) + override fun onNext(countInfo: Pair) { + viewCallback?.setWriteOffCount(countInfo.first,countInfo.second) } } fun setWriteOffCallback(viewCallback: IwriteOffViewCallback?) { this.viewCallback = viewCallback + if(viewCallback==null){ + RxUtils.disposeSubscribe(disposable) + } TicketModel .getWriteOffCountObservable() .flatMap { t -> val showText = - AbsMogoApplication.getApp().getString(R.string.shuttle_write_off_count, t) + AbsMogoApplication.getApp().getString(R.string.shuttle_write_off_count, t.second) CallerLogger.d(SceneConstant.M_BUS + TAG, "显示文案:${showText}") - Observable.just(showText) + Observable.just(Pair(showText,t.first)) } .observeOn(AndroidSchedulers.mainThread()) .subscribe(observer) @@ -64,7 +67,7 @@ class WriteOffViewModel : ViewModel() { } interface IwriteOffViewCallback { - fun setWriteOffCount(count:String) + fun setWriteOffCount(count:String,siteId: Int) } } \ No newline at end of file