From 95ae7445e2cdc181839a4b61becbb480447ef49a Mon Sep 17 00:00:00 2001 From: yangyakun Date: Fri, 16 Aug 2024 15:29:58 +0800 Subject: [PATCH] =?UTF-8?q?[6.6.0]=20[=E6=89=8B=E5=8A=A8=E5=88=B7=E6=96=B0?= =?UTF-8?q?]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../weaknet/callback/IBusLinesCallback.java | 2 + .../mogo/och/weaknet/model/BusLineModel.kt | 40 +++++++++++++--- .../och/weaknet/presenter/BusLinePresenter.kt | 25 +++++++++- .../och/weaknet/ui/BusSwitchLineActivity.kt | 43 +++++++++++++++--- .../och/weaknet/ui/BusSwitchLineView.java | 4 ++ .../drawable-nodpi/shuttle_refresh_task.png | Bin 0 -> 4386 bytes .../res/layout/shuttle_weak_switch_line.xml | 25 +++++++++- .../src/main/res/values/colors.xml | 1 + .../src/main/res/values/strings.xml | 2 + 9 files changed, 125 insertions(+), 17 deletions(-) create mode 100644 OCH/shuttle/driver_weaknet/src/main/res/drawable-nodpi/shuttle_refresh_task.png diff --git a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/callback/IBusLinesCallback.java b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/callback/IBusLinesCallback.java index c6f24f10ad..e577d2910f 100644 --- a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/callback/IBusLinesCallback.java +++ b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/callback/IBusLinesCallback.java @@ -13,4 +13,6 @@ public interface IBusLinesCallback { void onBusLinesChange(List data); void onChangeLineIdSuccess(); void onBusLineTasks(List o, int position,boolean autoRefresh); + + void onRefreshSuccess(long currentTimeStamp); } diff --git a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/model/BusLineModel.kt b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/model/BusLineModel.kt index aa5ac21dc6..5436035600 100644 --- a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/model/BusLineModel.kt +++ b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/model/BusLineModel.kt @@ -10,6 +10,7 @@ import com.mogo.eagle.core.network.utils.digest.DigestUtils import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger.d import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_BUS +import com.mogo.eagle.core.utilcode.util.NetworkUtils import com.mogo.eagle.core.utilcode.util.ToastUtils import com.mogo.och.common.module.manager.autopilot.line.LineManager import com.mogo.och.common.module.manager.logchainanalytic.OchChainLogManager @@ -17,7 +18,9 @@ import com.mogo.och.common.module.manager.loop.BizLoopManager import com.mogo.och.common.module.manager.loop.LoopInfo import com.mogo.och.common.module.network.OchCommonServiceCallback import com.mogo.och.common.module.utils.DateTimeUtil +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.bean.BusQueryLineTaskResponse import com.mogo.och.weaknet.bean.BusQueryLinesResponse import com.mogo.och.weaknet.bean.BusRoutesResponse @@ -55,7 +58,7 @@ object BusLineModel { private const val executableChangeMd5 = "EXECUTABLECHANGEMD5" // 展示上一次刷新时间 - private const val executableChangeTime = "executablechangetime" + const val executableChangeTime = "executablechangetime" var currentTask: TaskDataBean?=null @@ -71,7 +74,7 @@ object BusLineModel { EventModel.load() BizLoopManager.setLoopFunction( "${TAG}_${LoopCarInfo}", - LoopInfo(60, ::queryCarExecutableTaskList, immediately = true) + LoopInfo(60, ::backRefreshTask, immediately = true) ) } @@ -88,10 +91,18 @@ object BusLineModel { mBusLinesCallback = callback } + fun refreshTask() { + queryCarExecutableTaskList(true) + } + + fun backRefreshTask(){ + queryCarExecutableTaskList(false) + } + /** * 同步基础信息 */ - private fun queryCarExecutableTaskList() { + private fun queryCarExecutableTaskList(showError:Boolean) { mContext?.let { OrderServiceManager.queryCarExecutableTaskList( it, @@ -106,8 +117,11 @@ object BusLineModel { SharedPrefsMgr.getInstance().putLong(executableChangeTime, currentTimeStamp) val sameDay = DateTimeUtil.isSameDay(currentTimeStamp, lastUpdateTime) - if (currentRequest == lastChangeMd5 && sameDay) { - return + mBusLinesCallback?.onRefreshSuccess(currentTimeStamp) + if(!showError){ + if (currentRequest == lastChangeMd5 && sameDay) { + return + } } SharedPrefsMgr.getInstance().putString(executableChangeMd5, currentRequest) OchChainLogManager.writeChainLog( @@ -118,11 +132,24 @@ object BusLineModel { } override fun onError() { + if(showError){ + if (!NetworkUtils.isConnected(mContext)) { + ToastUtils.showShort(ResourcesUtils.getString(R.string.network_error_tip)); + } else { + ToastUtils.showShort(ResourcesUtils.getString(R.string.request_error_tip)); + } + } } override fun onFail(code: Int, failMsg: String) { - + if(showError){ + if (!NetworkUtils.isConnected(mContext)) { + ToastUtils.showShort("网络异常,请稍后重试"); + }else { + ToastUtils.showShort(failMsg); + } + } } }) } @@ -368,5 +395,4 @@ object BusLineModel { } - } diff --git a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/presenter/BusLinePresenter.kt b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/presenter/BusLinePresenter.kt index bcf7bb3cbc..2a6bd1ca08 100644 --- a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/presenter/BusLinePresenter.kt +++ b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/presenter/BusLinePresenter.kt @@ -2,11 +2,14 @@ package com.mogo.och.weaknet.presenter import androidx.lifecycle.LifecycleOwner import com.mogo.commons.mvp.Presenter +import com.mogo.commons.storage.SharedPrefsMgr import com.mogo.eagle.core.utilcode.util.UiThreadHandler +import com.mogo.och.common.module.utils.DateTimeUtil import com.mogo.och.weaknet.bean.BusQueryLineTaskResponse import com.mogo.och.weaknet.bean.BusQueryLinesResponse import com.mogo.och.weaknet.callback.IBusLinesCallback import com.mogo.och.weaknet.model.BusLineModel +import com.mogo.och.weaknet.model.BusLineModel.executableChangeTime import com.mogo.och.weaknet.model.BusLineModel.queryBusLineTasksById import com.mogo.och.weaknet.model.BusLineModel.setBusLinesCallback import com.mogo.och.weaknet.model.OrderModel @@ -32,6 +35,11 @@ class BusLinePresenter(view: BusSwitchLineView?) : Presenter override fun onCreate(owner: LifecycleOwner) { super.onCreate(owner) initListener() + initData() + } + + private fun initData() { + BusLineModel.refreshTask() } private fun initListener() { @@ -93,8 +101,21 @@ class BusLinePresenter(view: BusSwitchLineView?) : Presenter position: Int, autoRefresh: Boolean ) { - if (mView != null) { - mView!!.onBusLineTasks(o, position, autoRefresh) + mView?.onBusLineTasks(o, position, autoRefresh) + } + + override fun onRefreshSuccess(currentTimeStamp: Long) { + mView?.refreshDate(DateTimeUtil.formatLongToString(currentTimeStamp,DateTimeUtil.yyyy_MM_dd_HH_mm_ss)) + } + + fun refreshTask() { + BusLineModel.refreshTask() + } + + fun setRefreshTime() { + val lastUpdateTime = SharedPrefsMgr.getInstance().getLong(executableChangeTime, -1) + if(lastUpdateTime>0){ + onRefreshSuccess(lastUpdateTime) } } } diff --git a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/ui/BusSwitchLineActivity.kt b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/ui/BusSwitchLineActivity.kt index fb40e23909..95d3d50449 100644 --- a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/ui/BusSwitchLineActivity.kt +++ b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/ui/BusSwitchLineActivity.kt @@ -1,5 +1,8 @@ package com.mogo.och.weaknet.ui +import android.animation.Animator +import android.animation.ObjectAnimator +import android.animation.ValueAnimator import android.graphics.Point import android.os.Bundle import android.view.Gravity @@ -13,15 +16,20 @@ import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.RecyclerView import com.mogo.commons.mvp.MvpActivity import com.mogo.commons.storage.SharedPrefsMgr -import com.mogo.och.weaknet.presenter.BusLinePresenter -import com.mogo.och.weaknet.ui.adapter.SwitchLineAdapter -import com.mogo.och.weaknet.bean.BusQueryLinesResponse -import com.mogo.och.weaknet.ui.adapter.OpenItemAnimator +import com.mogo.eagle.core.utilcode.kotlin.onClick import com.mogo.eagle.core.utilcode.mogo.view.SpacesItemDecoration import com.mogo.eagle.core.utilcode.util.ToastUtils -import com.mogo.och.weaknet.bean.BusQueryLineTaskResponse +import com.mogo.eagle.core.utilcode.util.UiThreadHandler +import com.mogo.och.common.module.utils.ResourcesUtils import com.mogo.och.shuttle.weaknet.R -import java.util.ArrayList +import com.mogo.och.weaknet.bean.BusQueryLineTaskResponse +import com.mogo.och.weaknet.bean.BusQueryLinesResponse +import com.mogo.och.weaknet.presenter.BusLinePresenter +import com.mogo.och.weaknet.ui.adapter.OpenItemAnimator +import com.mogo.och.weaknet.ui.adapter.SwitchLineAdapter +import kotlinx.android.synthetic.main.shuttle_weak_switch_line.aciv_refresh_task +import kotlinx.android.synthetic.main.shuttle_weak_switch_line.actv_last_refresh_date + /** * @author: wangmingjun @@ -41,6 +49,8 @@ class BusSwitchLineActivity : MvpActivity private lateinit var mAdapter: SwitchLineAdapter private lateinit var linearLayoutManager:LinearLayoutManager private val mData: MutableList = ArrayList() + private var animator:ObjectAnimator?=null + override fun getLayoutId(): Int { return R.layout.shuttle_weak_switch_line } @@ -85,6 +95,17 @@ class BusSwitchLineActivity : MvpActivity mPresenter?.queryBusLineTasks(mData[position].lineId, position, close) } }) + aciv_refresh_task.onClick { + mPresenter?.refreshTask() + if(animator==null) { + animator = ObjectAnimator.ofFloat(aciv_refresh_task, "rotation", 0f, 360f) + animator?.setDuration(1000) // 设置动画持续时间 + animator?.repeatCount = ValueAnimator.INFINITE // 设置动画无限重复 + animator?.repeatMode = ValueAnimator.RESTART // 设置重复模式 + } + animator?.start() + } + mPresenter?.setRefreshTime() } /** @@ -182,6 +203,16 @@ class BusSwitchLineActivity : MvpActivity } } + override fun refreshDate(formatLongToString: String?) { + UiThreadHandler.post({ + formatLongToString?.let { + actv_last_refresh_date.text = ResourcesUtils.getString(R.string.bus_refresh_time,it) + animator?.cancel() + } + },UiThreadHandler.MODE.QUEUE) + + } + /** * 有无数据UI显示 * @param b diff --git a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/ui/BusSwitchLineView.java b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/ui/BusSwitchLineView.java index 67d38ef134..a193cf0832 100644 --- a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/ui/BusSwitchLineView.java +++ b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/ui/BusSwitchLineView.java @@ -4,6 +4,8 @@ import com.mogo.commons.mvp.IView; import com.mogo.och.weaknet.bean.BusQueryLineTaskResponse; import com.mogo.och.weaknet.bean.BusQueryLinesResponse; +import org.jetbrains.annotations.Nullable; + import java.util.List; /** @@ -16,5 +18,7 @@ public interface BusSwitchLineView extends IView { void onChangeLineIdSuccess(); void onBusLineTasks(List o, int position,boolean autoRefresh); + + void refreshDate(@Nullable String formatLongToString); } diff --git a/OCH/shuttle/driver_weaknet/src/main/res/drawable-nodpi/shuttle_refresh_task.png b/OCH/shuttle/driver_weaknet/src/main/res/drawable-nodpi/shuttle_refresh_task.png new file mode 100644 index 0000000000000000000000000000000000000000..74006bcc6cb8ab865d88ec41033a4b9d3c172acf GIT binary patch literal 4386 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 literal 0 HcmV?d00001 diff --git a/OCH/shuttle/driver_weaknet/src/main/res/layout/shuttle_weak_switch_line.xml b/OCH/shuttle/driver_weaknet/src/main/res/layout/shuttle_weak_switch_line.xml index da817b76de..65b2569b08 100644 --- a/OCH/shuttle/driver_weaknet/src/main/res/layout/shuttle_weak_switch_line.xml +++ b/OCH/shuttle/driver_weaknet/src/main/res/layout/shuttle_weak_switch_line.xml @@ -20,7 +20,7 @@ android:id="@+id/bus_lint_title" android:layout_width="wrap_content" android:layout_height="wrap_content" - android:textSize="@dimen/bus_switch_line_title" + android:textSize="@dimen/dp_42" android:layout_marginLeft="@dimen/dp_113" app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintTop_toTopOf="parent" @@ -28,6 +28,16 @@ android:textColor="@android:color/white" android:text="@string/bus_switch_line_title"/> + + + + diff --git a/OCH/shuttle/driver_weaknet/src/main/res/values/colors.xml b/OCH/shuttle/driver_weaknet/src/main/res/values/colors.xml index 90c817402c..ab583fa38a 100644 --- a/OCH/shuttle/driver_weaknet/src/main/res/values/colors.xml +++ b/OCH/shuttle/driver_weaknet/src/main/res/values/colors.xml @@ -60,4 +60,5 @@ #CAD6FF #BF0E3DBC #BF1E2E89 + #D4D4D4 \ No newline at end of file diff --git a/OCH/shuttle/driver_weaknet/src/main/res/values/strings.xml b/OCH/shuttle/driver_weaknet/src/main/res/values/strings.xml index 7558acbeec..9edcc82ff7 100644 --- a/OCH/shuttle/driver_weaknet/src/main/res/values/strings.xml +++ b/OCH/shuttle/driver_weaknet/src/main/res/values/strings.xml @@ -33,6 +33,8 @@ 班次: + 更新时间:%1$s + 提示 您确认要结束任务吗? 确认