diff --git a/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/callback/IBusLinesCallback.java b/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/callback/IBusLinesCallback.java index 74cac63aa3..8250b337c5 100644 --- a/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/callback/IBusLinesCallback.java +++ b/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/callback/IBusLinesCallback.java @@ -10,5 +10,5 @@ import com.mogo.och.bus.bean.BusQueryLinesResponse; public interface IBusLinesCallback { void onBusLinesChange(BusQueryLinesResponse lines); void onChangeLineIdSuccess(); - void onBusLineTasks(BusQueryLineTaskResponse o, int position); + void onBusLineTasks(BusQueryLineTaskResponse o, int position,boolean autoRefresh); } diff --git a/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/model/BusLineModel.java b/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/model/BusLineModel.java index 96e3308475..7110de8026 100644 --- a/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/model/BusLineModel.java +++ b/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/model/BusLineModel.java @@ -71,17 +71,17 @@ public class BusLineModel { * @param lineId * @param position 位置 */ - public void queryBusLineTasksById(int lineId, int position){ + public void queryBusLineTasksById(int lineId, int position,boolean autoRefresh){ BusServiceManager.getInstance().queryBusTaskByLineId(mContext, String.valueOf(lineId),new IBusServiceCallback() { @Override public void onSuccess(BusQueryLineTaskResponse data) { if (null == data && mBusLinesCallback != null) { - mBusLinesCallback.onBusLineTasks(null,position); + mBusLinesCallback.onBusLineTasks(null,position,autoRefresh); return; } if (mBusLinesCallback != null){ - mBusLinesCallback.onBusLineTasks(data,position); + mBusLinesCallback.onBusLineTasks(data,position,autoRefresh); } } diff --git a/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/presenter/BusLinePresenter.java b/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/presenter/BusLinePresenter.java index 90ae07ae4d..512346c064 100644 --- a/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/presenter/BusLinePresenter.java +++ b/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/presenter/BusLinePresenter.java @@ -76,9 +76,9 @@ public class BusLinePresenter extends Presenter implements IB if(close){ return; } - BusLineModel.getInstance().queryBusLineTasksById(lineId,position); + BusLineModel.getInstance().queryBusLineTasksById(lineId,position,false); subscribe = Observable.interval(3, TimeUnit.MINUTES).subscribe(aLong -> { - BusLineModel.getInstance().queryBusLineTasksById(lineId,position); + BusLineModel.getInstance().queryBusLineTasksById(lineId,position,true); }); } @@ -104,7 +104,7 @@ public class BusLinePresenter extends Presenter implements IB @Override - public void onBusLineTasks(BusQueryLineTaskResponse o, int position) { - mView.onBusLineTasks(o,position); + public void onBusLineTasks(BusQueryLineTaskResponse o, int position,boolean autoRefresh) { + mView.onBusLineTasks(o,position,autoRefresh); } } diff --git a/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/ui/BusSwitchLineActivity.kt b/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/ui/BusSwitchLineActivity.kt index 7251642f32..bc2ebdf0c3 100644 --- a/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/ui/BusSwitchLineActivity.kt +++ b/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/ui/BusSwitchLineActivity.kt @@ -71,7 +71,6 @@ class BusSwitchLineActivity : MvpActivity mLineCommitBtn.setOnClickListener(this) mLinesListView = findViewById(R.id.switch_line_rv) linearLayoutManager = LinearLayoutManager(this) - PagerSnapHelper().attachToRecyclerView(mLinesListView) mLinesListView.setLayoutManager(linearLayoutManager) mLinesListView.setItemAnimator(OpenItemAnimator()) mAdapter = SwitchLineAdapter(applicationContext, mData) @@ -144,7 +143,7 @@ class BusSwitchLineActivity : MvpActivity finish() } - override fun onBusLineTasks(lineTaskInfo: BusQueryLineTaskResponse?, position: Int) { + override fun onBusLineTasks(lineTaskInfo: BusQueryLineTaskResponse?, position: Int,autoRefresh:Boolean) { val result = mData[position] if (result.taskList == null) { result.taskList = ArrayList() @@ -161,10 +160,20 @@ class BusSwitchLineActivity : MvpActivity 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.scrollToPosition(position) + mLinesListView.smoothScrollToPosition(position) }else if(lineTaskInfo.data.isEmpty()){ mAdapter.notifyItemChanged(position) } @@ -198,7 +207,7 @@ class BusSwitchLineActivity : MvpActivity if(mAdapter.checkLineId!=-1&&mAdapter.checkTaskId!=-1){ mPresenter?.commitSwitchLineId(mAdapter.checkTaskId,mAdapter.checkLineId) }else{ - ToastUtils.showLong("请选择时间") + ToastUtils.showLong("请选择任务") } } } diff --git a/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/ui/BusSwitchLineView.java b/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/ui/BusSwitchLineView.java index e71474dcc7..6646068909 100644 --- a/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/ui/BusSwitchLineView.java +++ b/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/ui/BusSwitchLineView.java @@ -13,6 +13,6 @@ public interface BusSwitchLineView extends IView { void onBusLinesChange(BusQueryLinesResponse data); void onChangeLineIdSuccess(); - void onBusLineTasks(BusQueryLineTaskResponse o, int position); + void onBusLineTasks(BusQueryLineTaskResponse o, int position,boolean autoRefresh); }