From d8da838ae2d0f247bd3f9c2adbad6e9fc91fff80 Mon Sep 17 00:00:00 2001 From: yangyakun Date: Tue, 16 Jul 2024 12:42:12 +0800 Subject: [PATCH] =?UTF-8?q?[6.4.5]=20[fea]=20[=E7=BA=BF=E8=B7=AF=E9=80=89?= =?UTF-8?q?=E6=8B=A9]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../och/offline/bean/BindLineListResponse.kt | 22 ++- .../offline/callback/IBusLinesCallback.java | 8 +- .../mogo/och/offline/model/BusLineModel.java | 75 +--------- .../mogo/och/offline/model/OrderModel.java | 2 +- .../offline/presenter/BusLinePresenter.java | 42 +----- .../och/offline/ui/BusSwitchLineActivity.kt | 65 ++------- .../och/offline/ui/BusSwitchLineView.java | 6 +- .../offline/ui/adapter/SwitchLineAdapter.kt | 134 ++++-------------- .../ui/adapter/SwitchLineTaskAdapter.kt | 76 ---------- .../layout/shuttle_switch_line_list_item.xml | 15 -- 10 files changed, 66 insertions(+), 379 deletions(-) delete mode 100644 OCH/offline/driver/src/main/java/com/mogo/och/offline/ui/adapter/SwitchLineTaskAdapter.kt diff --git a/OCH/offline/driver/src/main/java/com/mogo/och/offline/bean/BindLineListResponse.kt b/OCH/offline/driver/src/main/java/com/mogo/och/offline/bean/BindLineListResponse.kt index 2b9193b838..201f1a9de4 100644 --- a/OCH/offline/driver/src/main/java/com/mogo/och/offline/bean/BindLineListResponse.kt +++ b/OCH/offline/driver/src/main/java/com/mogo/och/offline/bean/BindLineListResponse.kt @@ -1,29 +1,25 @@ package com.mogo.och.offline.bean import com.mogo.eagle.core.data.BaseData +import com.mogo.och.data.bean.BusStationBean import java.util.* /** * */ -data class BindLineListResponse(val data: List?) : BaseData(){ +data class BindLineListResponse(val data: List?) : BaseData(){ - data class LineInfo( - val lineId:Long?, - val lineName:String?, - val siteList: List?,//站点名称 + data class Result( + val line:LineInfo?, + val siteList: List?,//站点名称 val contrail: Contrail?,//站点名称 ) - data class SiteInfo( - val siteId:Long?, - val name:String?, - val seq:Double?, - val gcjLon:Double?, - val gcjLat:Double?, - val lon:Double?, - val lat:Double?, + data class LineInfo( + val lineId:Long?, + var lineName:String?, ) + data class Contrail( val csvFileUrl:String?, val csvFileMd5:String?, diff --git a/OCH/offline/driver/src/main/java/com/mogo/och/offline/callback/IBusLinesCallback.java b/OCH/offline/driver/src/main/java/com/mogo/och/offline/callback/IBusLinesCallback.java index 96a290129c..52a93606d1 100644 --- a/OCH/offline/driver/src/main/java/com/mogo/och/offline/callback/IBusLinesCallback.java +++ b/OCH/offline/driver/src/main/java/com/mogo/och/offline/callback/IBusLinesCallback.java @@ -1,14 +1,12 @@ package com.mogo.och.offline.callback; -import com.mogo.och.offline.bean.BusQueryLineTaskResponse; -import com.mogo.och.offline.bean.BusQueryLinesResponse; +import com.mogo.och.offline.bean.BindLineListResponse; /** * @author: wangmingjun * @date: 2022/2/9 */ public interface IBusLinesCallback { - void onBusLinesChange(BusQueryLinesResponse lines); - void onChangeLineIdSuccess(); - void onBusLineTasks(BusQueryLineTaskResponse o, int position,boolean autoRefresh); + void onBusLinesChange(BindLineListResponse lines); + void onChangeLineIdSuccess(BindLineListResponse.Result checkLineInfo); } diff --git a/OCH/offline/driver/src/main/java/com/mogo/och/offline/model/BusLineModel.java b/OCH/offline/driver/src/main/java/com/mogo/och/offline/model/BusLineModel.java index 2b41c2838e..4c38a2d1a9 100644 --- a/OCH/offline/driver/src/main/java/com/mogo/och/offline/model/BusLineModel.java +++ b/OCH/offline/driver/src/main/java/com/mogo/och/offline/model/BusLineModel.java @@ -7,6 +7,7 @@ import com.mogo.commons.storage.SharedPrefsMgr; import com.mogo.eagle.core.utilcode.util.NetworkUtils; import com.mogo.eagle.core.utilcode.util.ToastUtils; import com.mogo.och.offline.R; +import com.mogo.och.offline.bean.BindLineListResponse; import com.mogo.och.offline.bean.BusRoutesResponse; import com.mogo.och.offline.callback.IBusLinesCallback; import com.mogo.och.offline.net.OrderServiceManager; @@ -43,9 +44,9 @@ public class BusLineModel { mBusLinesCallback = callback; } public void queryBusLines(){ - OrderServiceManager.queryBusLines(mContext, new OchCommonServiceCallback() { + OrderServiceManager.queryBindLineListBySn(new OchCommonServiceCallback() { @Override - public void onSuccess(BusQueryLinesResponse data) { + public void onSuccess(BindLineListResponse data) { if (null == data && mBusLinesCallback != null) { mBusLinesCallback.onBusLinesChange(null); return; @@ -76,73 +77,11 @@ public class BusLineModel { }); } - /** - * 通过线路id 查询线路排班表 - * @param lineId 线路ID - * @param position 位置 - */ - public void queryBusLineTasksById(int lineId, int position,boolean autoRefresh){ - OrderServiceManager.queryBusTaskByLineId(mContext, String.valueOf(lineId),new OchCommonServiceCallback() { - @Override - public void onSuccess(BusQueryLineTaskResponse data) { - if (null == data && mBusLinesCallback != null) { - mBusLinesCallback.onBusLineTasks(null,position,autoRefresh); - return; - } - if (mBusLinesCallback != null){ - mBusLinesCallback.onBusLineTasks(data,position,autoRefresh); - } - } - - @Override - public void onError() { - if (!NetworkUtils.isConnected(mContext)) { - ToastUtils.showShort(mContext.getString(R.string.network_error_tip)); - } else { - ToastUtils.showShort(mContext.getString(R.string.request_error_tip)); - } - } - - @Override - public void onFail(int code, String failMsg) { - if (!NetworkUtils.isConnected(mContext)) { - ToastUtils.showShort("网络异常,请稍后重试"); - }else { - ToastUtils.showShort("查询所有绑定路线失败:"+failMsg); - } - } - }); - } - - public void commitSwitchLineId(int taskId,int lineId){ - OrderServiceManager.switchLine(mContext,taskId, new OchCommonServiceCallback() { - @Override - public void onSuccess(BusRoutesResponse o) { - SharedPrefsMgr.getInstance().putInt(BusSwitchLineActivity.LASTCOMMITLINEID,lineId); - if (mBusLinesCallback != null){ - mBusLinesCallback.onChangeLineIdSuccess(); - } - } - - @Override - public void onError() { - if (!NetworkUtils.isConnected(mContext)) { - ToastUtils.showShort(mContext.getString(R.string.network_error_tip)); - } else { - ToastUtils.showShort(mContext.getString(R.string.request_error_tip)); - } - } - - @Override - public void onFail(int code, String failMsg) { - if (!NetworkUtils.isConnected(mContext)) { - ToastUtils.showShort("网络异常,请稍后重试"); - }else { - ToastUtils.showShort("选择任务失败:"+failMsg); - } - } - }); + public void commitSwitchLineId(BindLineListResponse.Result checkLineInfo){ + if (mBusLinesCallback != null){ + mBusLinesCallback.onChangeLineIdSuccess(checkLineInfo); + } } } diff --git a/OCH/offline/driver/src/main/java/com/mogo/och/offline/model/OrderModel.java b/OCH/offline/driver/src/main/java/com/mogo/och/offline/model/OrderModel.java index dd245baa8f..602c7327b5 100644 --- a/OCH/offline/driver/src/main/java/com/mogo/och/offline/model/OrderModel.java +++ b/OCH/offline/driver/src/main/java/com/mogo/och/offline/model/OrderModel.java @@ -28,6 +28,7 @@ import com.mogo.och.common.module.manager.socket.lan.LanSocketManager; import com.mogo.och.common.module.manager.socket.lan.bean.BusinessType; import com.mogo.och.common.module.voice.VoiceNotice; import com.mogo.och.offline.R; +import com.mogo.och.offline.bean.BindLineListResponse; import com.mogo.och.offline.bean.BusRoutesResponse; import com.mogo.och.offline.callback.IBusADASStatusCallback; import com.mogo.och.offline.net.OrderServiceManager; @@ -35,7 +36,6 @@ import com.mogo.och.offline.util.ShuttleVoiceManager; import com.mogo.och.common.module.manager.socket.lan.bean.AppConnectMsg; import com.mogo.och.common.module.manager.socket.lan.bean.BaseDPMsg; import com.mogo.och.common.module.manager.socket.lan.bean.DPMsgType; -import com.mogo.och.common.module.manager.socket.lan.bean.LoginCacheStatus; import com.mogo.och.common.module.manager.socket.lan.bean.TaskDetailsMsg; import com.mogo.och.common.module.biz.login.LoginStatusManager; import com.mogo.och.common.module.manager.autopilot.autopilot.ArrivedStation; diff --git a/OCH/offline/driver/src/main/java/com/mogo/och/offline/presenter/BusLinePresenter.java b/OCH/offline/driver/src/main/java/com/mogo/och/offline/presenter/BusLinePresenter.java index aa072e24ef..0e378e49fa 100644 --- a/OCH/offline/driver/src/main/java/com/mogo/och/offline/presenter/BusLinePresenter.java +++ b/OCH/offline/driver/src/main/java/com/mogo/och/offline/presenter/BusLinePresenter.java @@ -5,26 +5,18 @@ import androidx.lifecycle.LifecycleOwner; import com.mogo.commons.mvp.Presenter; import com.mogo.eagle.core.utilcode.util.UiThreadHandler; +import com.mogo.och.offline.bean.BindLineListResponse; import com.mogo.och.offline.ui.BusSwitchLineView; -import com.mogo.och.offline.bean.BusQueryLineTaskResponse; -import com.mogo.och.offline.bean.BusQueryLinesResponse; import com.mogo.och.offline.callback.IBusLinesCallback; import com.mogo.och.offline.model.BusLineModel; import com.mogo.och.offline.model.OrderModel; -import java.util.concurrent.TimeUnit; - -import io.reactivex.Observable; -import io.reactivex.disposables.Disposable; - /** * @author: wangmingjun * @date: 2022/2/9 */ public class BusLinePresenter extends Presenter implements IBusLinesCallback { - private Disposable subscribe; - public BusLinePresenter(BusSwitchLineView view) { super(view); BusLineModel.getInstance().init(); @@ -42,7 +34,7 @@ public class BusLinePresenter extends Presenter implements IB } @Override - public void onBusLinesChange(BusQueryLinesResponse lines) { + public void onBusLinesChange(BindLineListResponse lines) { UiThreadHandler.post(new Runnable() { @Override public void run() { @@ -54,7 +46,7 @@ public class BusLinePresenter extends Presenter implements IB } @Override - public void onChangeLineIdSuccess() { + public void onChangeLineIdSuccess(BindLineListResponse.Result checkLineInfo) { OrderModel.getInstance().clearBusStationDatas(); UiThreadHandler.post(new Runnable() { @Override @@ -70,21 +62,8 @@ public class BusLinePresenter extends Presenter implements IB BusLineModel.getInstance().queryBusLines(); } - public void queryBusLineTasks(int lineId, int position,boolean close){ - if(subscribe!=null&&!subscribe.isDisposed()){ - subscribe.dispose(); - } - if(close){ - return; - } - BusLineModel.getInstance().queryBusLineTasksById(lineId,position,false); - subscribe = Observable.interval(3, TimeUnit.MINUTES).subscribe(aLong -> { - BusLineModel.getInstance().queryBusLineTasksById(lineId,position,true); - }); - } - - public void commitSwitchLineId(int taskId,int lineId){ - BusLineModel.getInstance().commitSwitchLineId(taskId,lineId); + public void commitSwitchLineId(BindLineListResponse.Result checkLineInfo){ + BusLineModel.getInstance().commitSwitchLineId(checkLineInfo); } public void removeListener(){ @@ -98,16 +77,7 @@ public class BusLinePresenter extends Presenter implements IB @Override public void onDestroy(@NonNull LifecycleOwner owner) { super.onDestroy(owner); - if(subscribe!=null&&!subscribe.isDisposed()){ - subscribe.dispose(); - } + } - - @Override - public void onBusLineTasks(BusQueryLineTaskResponse o, int position,boolean autoRefresh) { - if(mView!=null) { - mView.onBusLineTasks(o,position,autoRefresh); - } - } } diff --git a/OCH/offline/driver/src/main/java/com/mogo/och/offline/ui/BusSwitchLineActivity.kt b/OCH/offline/driver/src/main/java/com/mogo/och/offline/ui/BusSwitchLineActivity.kt index be9e02dd41..a2c14a3140 100644 --- a/OCH/offline/driver/src/main/java/com/mogo/och/offline/ui/BusSwitchLineActivity.kt +++ b/OCH/offline/driver/src/main/java/com/mogo/och/offline/ui/BusSwitchLineActivity.kt @@ -15,12 +15,11 @@ import com.mogo.commons.mvp.MvpActivity import com.mogo.commons.storage.SharedPrefsMgr import com.mogo.och.offline.presenter.BusLinePresenter import com.mogo.och.offline.ui.adapter.SwitchLineAdapter -import com.mogo.och.offline.bean.BusQueryLinesResponse import com.mogo.och.offline.ui.adapter.OpenItemAnimator import com.mogo.eagle.core.utilcode.mogo.view.SpacesItemDecoration import com.mogo.eagle.core.utilcode.util.ToastUtils import com.mogo.och.offline.R -import com.mogo.och.offline.bean.BusQueryLineTaskResponse +import com.mogo.och.offline.bean.BindLineListResponse import java.util.ArrayList /** @@ -40,7 +39,8 @@ class BusSwitchLineActivity : MvpActivity private lateinit var mLineCommitBtn: TextView private lateinit var mAdapter: SwitchLineAdapter private lateinit var linearLayoutManager:LinearLayoutManager - private val mData: MutableList = ArrayList() + private val mData: MutableList = ArrayList() + private var checkLineInfo:BindLineListResponse.Result? = null override fun getLayoutId(): Int { return R.layout.shuttle_switch_line } @@ -81,8 +81,9 @@ class BusSwitchLineActivity : MvpActivity mLinesListView.setAdapter(mAdapter) //设置item 点击事件 mAdapter.setOnLineItemClickListener(object : SwitchLineAdapter.LineItemClickListener{ - override fun onItemClick(position: Int, close: Boolean) { - mPresenter?.queryBusLineTasks(mData[position].lineId, position, close) + override fun onItemClick(lineInfo: BindLineListResponse.Result) { + // 选中的线路 + checkLineInfo = lineInfo } }) } @@ -113,7 +114,7 @@ class BusSwitchLineActivity : MvpActivity * 查询返回绑定路线集合 * @param data */ - override fun onBusLinesChange(data: BusQueryLinesResponse?) { + override fun onBusLinesChange(data: BindLineListResponse?) { if (null == data) { showNoData(true) return @@ -124,15 +125,6 @@ class BusSwitchLineActivity : MvpActivity mData.clear() mData.addAll(data.data) mAdapter.notifyDataSetChanged() - if(lastCommitLineid>0){ - mData.forEachIndexed { index, line -> - if(line.lineId==lastCommitLineid){ - line.open = true - mPresenter?.queryBusLineTasks(line.lineId,index,false) - return - } - } - } } else { showNoData(true) } @@ -146,43 +138,6 @@ class BusSwitchLineActivity : MvpActivity finish() } - override fun onBusLineTasks(lineTaskInfo: BusQueryLineTaskResponse?, position: Int, autoRefresh:Boolean) { - val result = mData[position] - if (result.taskList == null) { - result.taskList = ArrayList() - } - if (lineTaskInfo == null) { - result.haveTask = true - // 打开操作 - mAdapter.notifyItemChanged(position) - } else { - if (lineTaskInfo.data == null || lineTaskInfo.data.isEmpty()) { - result.haveTask = true - lineTaskInfo.data = ArrayList() - } - if (lineTaskInfo.data.size != result.taskList.size) { // 不相等有变动 重新赋值 - result.taskList.clear() - result.taskList.addAll(lineTaskInfo.data) - if(autoRefresh) { - mAdapter.checkTaskId = -1 - mAdapter.checkLineId = -1 - lineTaskInfo.data.forEach { - if (it.id == mAdapter.checkTaskId) { - mAdapter.checkTaskId = it.id - mAdapter.checkLineId = result.lineId - } - } - } - // 打开操作 - mAdapter.notifyItemChanged(position) - linearLayoutManager.stackFromEnd = (position==mData.size-1||position==mData.size-2)&&mData.size>6 - mLinesListView.smoothScrollToPosition(position) - }else if(lineTaskInfo.data.isEmpty()){ - mAdapter.notifyItemChanged(position) - } - } - } - /** * 有无数据UI显示 * @param b @@ -207,10 +162,10 @@ class BusSwitchLineActivity : MvpActivity } //切换路线提交 if (v.id == R.id.switch_line_btn_commit) { - if(mAdapter.checkLineId!=-1&&mAdapter.checkTaskId!=-1){ - mPresenter?.commitSwitchLineId(mAdapter.checkTaskId,mAdapter.checkLineId) - }else{ + if (checkLineInfo==null) { ToastUtils.showLong("请选择任务") + }else{ + mPresenter?.commitSwitchLineId(checkLineInfo) } } } diff --git a/OCH/offline/driver/src/main/java/com/mogo/och/offline/ui/BusSwitchLineView.java b/OCH/offline/driver/src/main/java/com/mogo/och/offline/ui/BusSwitchLineView.java index 7882d71346..e49d76f67e 100644 --- a/OCH/offline/driver/src/main/java/com/mogo/och/offline/ui/BusSwitchLineView.java +++ b/OCH/offline/driver/src/main/java/com/mogo/och/offline/ui/BusSwitchLineView.java @@ -1,8 +1,7 @@ package com.mogo.och.offline.ui; import com.mogo.commons.mvp.IView; -import com.mogo.och.offline.bean.BusQueryLineTaskResponse; -import com.mogo.och.offline.bean.BusQueryLinesResponse; +import com.mogo.och.offline.bean.BindLineListResponse; /** * @author: wangmingjun @@ -10,9 +9,8 @@ import com.mogo.och.offline.bean.BusQueryLinesResponse; */ public interface BusSwitchLineView extends IView { - void onBusLinesChange(BusQueryLinesResponse data); + void onBusLinesChange(BindLineListResponse data); void onChangeLineIdSuccess(); - void onBusLineTasks(BusQueryLineTaskResponse o, int position,boolean autoRefresh); } diff --git a/OCH/offline/driver/src/main/java/com/mogo/och/offline/ui/adapter/SwitchLineAdapter.kt b/OCH/offline/driver/src/main/java/com/mogo/och/offline/ui/adapter/SwitchLineAdapter.kt index 7dc21fafb7..4b48bb6f63 100644 --- a/OCH/offline/driver/src/main/java/com/mogo/och/offline/ui/adapter/SwitchLineAdapter.kt +++ b/OCH/offline/driver/src/main/java/com/mogo/och/offline/ui/adapter/SwitchLineAdapter.kt @@ -10,6 +10,7 @@ import androidx.core.content.ContextCompat import androidx.recyclerview.widget.GridLayoutManager import androidx.recyclerview.widget.RecyclerView import com.mogo.och.offline.R +import com.mogo.och.offline.bean.BindLineListResponse import com.mogo.och.offline.bean.BusQueryLinesResponse import com.mogo.och.offline.ui.adapter.SwitchLineAdapter.SwitchLineViewHolder import kotlin.text.StringBuilder @@ -19,7 +20,7 @@ import kotlin.text.StringBuilder */ class SwitchLineAdapter( private val mContext: Context, - private val mData: List + private val mData: List ) : RecyclerView.Adapter() { companion object{ const val TAG = "SwitchLineAdapter" @@ -40,112 +41,35 @@ class SwitchLineAdapter( override fun onBindViewHolder(holder: SwitchLineViewHolder, position: Int) { val currentPosition = holder.bindingAdapterPosition - val line = mData[currentPosition] - if(line.name!=null&&line.name.length>10){ - line.name = line.name.substring(0,10)+"…" - } - holder.lineName.text = line.name - val sb = StringBuilder() - if (line.endSiteName!=null&&line.endSiteName.length>10) { - sb.append(line.endSiteName.substring(0,5)) - sb.append("…") - sb.append(line.endSiteName.substring(line.endSiteName.length-5,line.endSiteName.length)) - }else{ - sb.append(line.endSiteName) - } - val string = mContext.getString(R.string.bus_line_goto_end, sb.toString()) - holder.lineEndName.text = string - holder.rvLineTask.layoutManager = GridLayoutManager(mContext, 3) - val switchLineTaskAdapter = SwitchLineTaskAdapter( - mContext, - checkTaskId, - line.taskList, - object : SwitchLineTaskAdapter.TaskItemClickListener { - override fun onItemClick(position: Int,isCheck:Boolean) { - try { - if(isCheck) { - checkLineId = line.lineId - checkTaskId = line.taskList[position].id - }else{ - checkLineId=-1 - checkTaskId=-1 - } - }catch (e:Exception){ - e.printStackTrace() - checkLineId=-1 - checkTaskId=-1 - } - } - }) - holder.rvLineTask.adapter = switchLineTaskAdapter - holder.rvLineTask.isFocusableInTouchMode = false - holder.actvShowMore.visibility = View.VISIBLE - - if(line.open){ - if(line.taskList==null||line.taskList.isEmpty()){ - holder.actvShowMore.text = mContext.getString(R.string.bus_switch_line_no_task) - holder.actvShowMore.setTextColor(ContextCompat.getColor(mContext,R.color.bus_color_4dffffff)) - holder.vLineTask.visibility = View.GONE - holder.rvLineTask.visibility = View.GONE - holder.selectIv.visibility = View.INVISIBLE - holder.itemView.setBackgroundResource(R.drawable.bus_shape_select_line_item_bg_normal) - }else { - holder.actvShowMore.text = mContext.getString(R.string.bus_switch_line_select_task) - holder.actvShowMore.setTextColor(ContextCompat.getColor(mContext,android.R.color.white)) - holder.vLineTask.visibility = View.VISIBLE - holder.rvLineTask.visibility = View.VISIBLE - holder.selectIv.visibility = View.VISIBLE - holder.itemView.setBackgroundResource(R.drawable.bus_shape_select_line_item_bg_selected) - holder.selectIv.apply { - pivotX = 9.5f - pivotY = 17f - rotation = 90f + val lineInfo = mData[currentPosition] + lineInfo.line?.let {line-> + line.lineName?.let { + if(it.length>10){ + line.lineName = it.substring(0,10)+"…" } } - }else{ - if(line.haveTask){ - holder.actvShowMore.text = mContext.getString(R.string.bus_switch_line_no_task) - holder.actvShowMore.setTextColor(ContextCompat.getColor(mContext,R.color.bus_color_4dffffff)) - holder.vLineTask.visibility = View.GONE - holder.rvLineTask.visibility = View.GONE - holder.selectIv.visibility = View.INVISIBLE - holder.itemView.setBackgroundResource(R.drawable.bus_shape_select_line_item_bg_normal) - }else { - holder.actvShowMore.text = mContext.getString(R.string.bus_switch_line_select_task) - holder.actvShowMore.setTextColor(ContextCompat.getColor(mContext,android.R.color.white)) - holder.vLineTask.visibility = View.GONE - holder.rvLineTask.visibility = View.GONE - holder.selectIv.visibility = View.VISIBLE - holder.itemView.setBackgroundResource(R.drawable.bus_shape_select_line_item_bg_normal) - holder.selectIv.apply { - pivotX = 9.5f - pivotY = 17f - rotation = 0f + + } + holder.linelineName.text = lineInfo.line?.lineName + lineInfo.siteList?.let { + val last = it.last() + last.name?.let {siteName-> + val sb = StringBuilder() + if (siteName.length>10) { + sb.append(siteName.substring(0,5)) + sb.append("…") + sb.append(siteName.substring(siteName.length-5,siteName.length)) + }else{ + sb.append(siteName) } + val string = mContext.getString(R.string.bus_line_goto_end, sb.toString()) + holder.lineEndlineName.text = string } } - //设置item点击事件 holder.itemView.setOnClickListener { - if(holder.actvShowMore.text==mContext.getString(R.string.bus_switch_line_no_task)){ - return@setOnClickListener - } - mData.forEachIndexed { index, result -> - if(result.open){ - result.open = false; - notifyItemChanged(index) - if(result.taskList!=null) { - result.taskList.clear() - } - if(index==currentPosition){// 点击当前已经打开的item 去关闭定时网络请求 - mItemClickListener?.onItemClick(currentPosition,true) - return@setOnClickListener - } - } - } - mItemClickListener?.onItemClick(currentPosition,false) - line.open = holder.rvLineTask.visibility == View.GONE + mItemClickListener?.onItemClick(lineInfo) } } @@ -159,23 +83,21 @@ class SwitchLineAdapter( class SwitchLineViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) { val selectIv: ImageView - val lineName: AppCompatTextView//线路名称 - val lineEndName: AppCompatTextView //终点 + val linelineName: AppCompatTextView//线路名称 + val lineEndlineName: AppCompatTextView //终点 val actvShowMore: AppCompatTextView //选择时间 - val rvLineTask: RecyclerView// 排班时间 val vLineTask: View// 白色分割线 init { selectIv = itemView.findViewById(R.id.switch_line_item_select_iv) - lineName = itemView.findViewById(R.id.switch_line_name) - lineEndName = itemView.findViewById(R.id.switch_line_end_station) - rvLineTask = itemView.findViewById(R.id.rv_line_task_list) + linelineName = itemView.findViewById(R.id.switch_line_name) + lineEndlineName = itemView.findViewById(R.id.switch_line_end_station) vLineTask = itemView.findViewById(R.id.v_line_task) actvShowMore = itemView.findViewById(R.id.actv_show_more) } } interface LineItemClickListener { - fun onItemClick(position: Int,close:Boolean) + fun onItemClick(lineInfo: BindLineListResponse.Result) } } \ No newline at end of file diff --git a/OCH/offline/driver/src/main/java/com/mogo/och/offline/ui/adapter/SwitchLineTaskAdapter.kt b/OCH/offline/driver/src/main/java/com/mogo/och/offline/ui/adapter/SwitchLineTaskAdapter.kt deleted file mode 100644 index 881c6bc263..0000000000 --- a/OCH/offline/driver/src/main/java/com/mogo/och/offline/ui/adapter/SwitchLineTaskAdapter.kt +++ /dev/null @@ -1,76 +0,0 @@ -package com.mogo.och.offline.ui.adapter - -import android.content.Context -import android.view.LayoutInflater -import android.view.View -import android.view.ViewGroup -import android.widget.TextView -import androidx.recyclerview.widget.RecyclerView -import com.mogo.eagle.core.utilcode.util.TimeUtils -import com.mogo.och.offline.R -import com.mogo.och.offline.bean.BusQueryLineTaskResponse -import com.mogo.och.offline.ui.adapter.SwitchLineTaskAdapter.SwitchLineTaskViewHolder - -/** - * 路线列表adapter - */ -class SwitchLineTaskAdapter( - private val mContext: Context, - private var checkTaskId:Int, - private val mData: List?, - private val mTaskItemClickListener: TaskItemClickListener? -) : RecyclerView.Adapter() { - override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): SwitchLineTaskViewHolder { - val view = LayoutInflater.from(mContext).inflate( - R.layout.shuttle_switch_line_list_task_item, parent, false - ) - return SwitchLineTaskViewHolder(view) - } - - override fun onBindViewHolder(holder: SwitchLineTaskViewHolder, position: Int) { - val currentPosition = holder.bindingAdapterPosition - val task = mData!![currentPosition] - val taskStartTime = TimeUtils.millis2String(task.taskStartTime, "HH:mm") - holder.lineTask.text = taskStartTime - if(checkTaskId==task.id){ - holder.lineTask.setBackgroundResource(R.drawable.bus_shape_select_line_item_time_bg_selected) - }else{ - holder.lineTask.setBackgroundResource(R.drawable.bus_shape_select_line_item_time_bg) - } - holder.lineTask.setOnClickListener { - if(checkTaskId==task.id){ - checkTaskId = -1 - mTaskItemClickListener?.onItemClick(currentPosition,false) - }else { - resetOther() - checkTaskId = task.id - mTaskItemClickListener?.onItemClick(currentPosition,true) - } - notifyItemChanged(currentPosition) - } - } - - private fun resetOther() { - mData?.forEachIndexed { index, result -> - if(result.id==checkTaskId){ - checkTaskId = -1 - notifyItemChanged(index) - } - } - } - - override fun getItemCount(): Int { - return mData?.size ?: 0 - } - - class SwitchLineTaskViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) { - val lineTask: TextView // 时间 - init { - lineTask = itemView.findViewById(R.id.actv_line_task) - } - } - - interface TaskItemClickListener { - fun onItemClick(position: Int,isCheck:Boolean) - } -} \ No newline at end of file diff --git a/OCH/offline/driver/src/main/res/layout/shuttle_switch_line_list_item.xml b/OCH/offline/driver/src/main/res/layout/shuttle_switch_line_list_item.xml index ec0a05030b..f9b02a3244 100644 --- a/OCH/offline/driver/src/main/res/layout/shuttle_switch_line_list_item.xml +++ b/OCH/offline/driver/src/main/res/layout/shuttle_switch_line_list_item.xml @@ -66,23 +66,8 @@ android:layout_marginEnd="@dimen/dp_80" android:background="#63ffffff" android:visibility="gone" - app:layout_constraintBottom_toTopOf="@+id/rv_line_task_list" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@+id/switch_line_end_station" /> - - \ No newline at end of file