From 85d510e57866ff6e9a2d205103cffe3d71db8be8 Mon Sep 17 00:00:00 2001 From: EmArrow Date: Wed, 18 Sep 2024 10:52:48 +0800 Subject: [PATCH 1/7] [6.7.0] close the callbiz and update tab notice io --- .../core/function/hmi/bone/BoneTabLayout.kt | 28 +++++++++++++++---- .../core/function/hmi/bone/TabSwitchView.kt | 5 ++++ .../function/main/MainMoGoApplication.java | 2 +- 3 files changed, 28 insertions(+), 7 deletions(-) diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/bone/BoneTabLayout.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/bone/BoneTabLayout.kt index e95f39037b..bc72f6f66c 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/bone/BoneTabLayout.kt +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/bone/BoneTabLayout.kt @@ -4,6 +4,8 @@ import android.content.Context import android.util.AttributeSet import android.view.LayoutInflater import androidx.constraintlayout.widget.ConstraintLayout +import com.mogo.eagle.core.function.api.datacenter.msgbox.IMsgBoxEventListener +import com.mogo.eagle.core.function.call.msgbox.CallerMsgBoxEventListenerManager import com.mogo.eagle.core.function.hmi.R import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_HMI @@ -18,9 +20,9 @@ class BoneTabLayout @JvmOverloads constructor( context: Context, attrs: AttributeSet? = null, defStyleAttr: Int = 0 -) : ConstraintLayout(context, attrs, defStyleAttr) { +) : ConstraintLayout(context, attrs, defStyleAttr), IMsgBoxEventListener { - companion object{ + companion object { private const val TAG = "BoneTabLayout" } @@ -42,13 +44,23 @@ class BoneTabLayout @JvmOverloads constructor( } } - private var logOut:(() -> Unit)? = null + private var logOut: (() -> Unit)? = null init { LayoutInflater.from(context).inflate(R.layout.view_bone_tab, this, true) initView() } + override fun onAttachedToWindow() { + super.onAttachedToWindow() + CallerMsgBoxEventListenerManager.addListener(TAG, this) + } + + override fun onDetachedFromWindow() { + super.onDetachedFromWindow() + CallerMsgBoxEventListenerManager.removeListener(TAG) + } + private fun initView() { tabSwitchCarInfo.setOnClickListener { updateTabType(TabType.CAR_INFO) @@ -69,15 +81,15 @@ class BoneTabLayout @JvmOverloads constructor( } - fun setCarNo(carNo: String){ + fun setCarNo(carNo: String) { carInfoTabView.setCarNo(carNo) } - fun setLoginInfo(loginNo: String){ + fun setLoginInfo(loginNo: String) { carInfoTabView.setLoginInfo(loginNo) } - fun loginOut(logOut:(() -> Unit)){ + fun loginOut(logOut: (() -> Unit)) { this.logOut = logOut } @@ -128,4 +140,8 @@ class BoneTabLayout @JvmOverloads constructor( } } + override fun onUpdateTipEvent(isShow: Boolean) { + super.onUpdateTipEvent(isShow) + tabSwitchMsgBox.updateNotice(isShow) + } } \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/bone/TabSwitchView.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/bone/TabSwitchView.kt index 0e093691ce..58f1c24e6b 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/bone/TabSwitchView.kt +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/bone/TabSwitchView.kt @@ -9,6 +9,7 @@ import com.mogo.eagle.core.function.hmi.R import kotlinx.android.synthetic.main.view_tab_switch.view.ivTabClick import kotlinx.android.synthetic.main.view_tab_switch.view.ivTabClickBg import kotlinx.android.synthetic.main.view_tab_switch.view.ivTabDefault +import kotlinx.android.synthetic.main.view_tab_switch.view.vTabNotice class TabSwitchView @JvmOverloads constructor( context: Context, @@ -55,4 +56,8 @@ class TabSwitchView @JvmOverloads constructor( } } + + fun updateNotice(check: Boolean) { + vTabNotice.visibility = if (check) View.VISIBLE else View.GONE + } } \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/main/MainMoGoApplication.java b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/main/MainMoGoApplication.java index 6d29fa4878..06f18ce8cf 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/main/MainMoGoApplication.java +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/main/MainMoGoApplication.java @@ -81,7 +81,7 @@ public abstract class MainMoGoApplication extends AbsMogoApplication { // BIZ MogoModulePaths.addModuleFunctionServer(new MogoModule(MogoServicePaths.PATH_FUNC_BIZ, "IMoGoNoticeProvider")); // 后置 车聊聊,IM - MogoModulePaths.addModuleFunctionServer(new MogoModule(ChatConsts.CHAT_PROVIDER_PATH, ChatConsts.CHAT_MODULE_NAME)); +// MogoModulePaths.addModuleFunctionServer(new MogoModule(ChatConsts.CHAT_PROVIDER_PATH, ChatConsts.CHAT_MODULE_NAME)); // 司机身份专属 if (AppIdentityModeUtils.isDriver(FunctionBuildConfig.appIdentityMode)) { // 后置 地图数据收集模块 From 9fe24a942b5f960e9453ed2d67bfe0c9fe45aa2c Mon Sep 17 00:00:00 2001 From: aibingbing Date: Wed, 18 Sep 2024 11:25:25 +0800 Subject: [PATCH 2/7] =?UTF-8?q?[6.7.0][FSM]=20feat:=20=E8=B0=83=E6=95=B4?= =?UTF-8?q?=E5=BC=82=E5=B8=B8=E5=BC=B9=E6=A1=86=E6=A0=B7=E5=BC=8F=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../hmi/bone/status/fsm/FSMStatusDetailView.kt | 11 ++++++----- .../icon_fsm_error_green_arrow.png | Bin 0 -> 277 bytes .../icon_fsm_error_red_arrow.png | Bin 1173 -> 265 bytes .../drawable/bg_fsm_status_detail_close.xml | 2 +- .../status_dialog_fsm_status_background.xml | 8 ++++---- .../res/layout/view_status_fsm_item_layout.xml | 3 ++- 6 files changed, 13 insertions(+), 11 deletions(-) create mode 100644 core/function-impl/mogo-core-function-hmi/src/main/res/drawable-xhdpi/icon_fsm_error_green_arrow.png diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/bone/status/fsm/FSMStatusDetailView.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/bone/status/fsm/FSMStatusDetailView.kt index 47115ebe99..dcf5bd1f5e 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/bone/status/fsm/FSMStatusDetailView.kt +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/bone/status/fsm/FSMStatusDetailView.kt @@ -60,7 +60,7 @@ class FSMStatusDetailView @JvmOverloads constructor( val c = Color.parseColor("#FF4E41") tvTitle?.setTextColor(c) } - addFsmMsgItemView(msgArray) + addFsmMsgItemView(msgArray, true) //监听最新 FSM 状态 StatusManager.addListener(TAG, this) @@ -69,16 +69,16 @@ class FSMStatusDetailView @JvmOverloads constructor( private fun setFsmNormalStatus() { tvTitle?.text = "FSM正常" runCatching { - val c = Color.parseColor("#2EACFF") + val c = Color.parseColor("#26C14F") tvTitle?.setTextColor(c) } - removeFsmMsgItemView() + addFsmMsgItemView(ArrayList().also { it += "FSM异常状态已恢复" }, false) } private fun setFsmUnknownStatus() { tvTitle?.text = "FSM状态未知" runCatching { - val c = Color.parseColor("#FFFFFF") + val c = Color.parseColor("#FFCD3D") tvTitle?.setTextColor(c) } removeFsmMsgItemView() @@ -93,7 +93,7 @@ class FSMStatusDetailView @JvmOverloads constructor( removeFsmMsgItemView() } - private fun addFsmMsgItemView(msgArray: ArrayList) { + private fun addFsmMsgItemView(msgArray: ArrayList, isError: Boolean) { if (llFsmMsgContainerLayout == null) { Logger.e(TAG, "addFsmMsmItemView llFsmMsgContainerLayout is null") return @@ -104,6 +104,7 @@ class FSMStatusDetailView @JvmOverloads constructor( val itemView: View = LayoutInflater.from(context) .inflate(R.layout.view_status_fsm_item_layout, llFsmMsgContainerLayout, false) val leftImageView: ImageView = itemView.findViewById(R.id.leftImageView) + leftImageView.setImageResource(if (isError) R.drawable.icon_fsm_error_red_arrow else R.drawable.icon_fsm_error_green_arrow) val rightTextView: TextView = itemView.findViewById(R.id.rightTextView) rightTextView.text = it llFsmMsgContainerLayout?.addView(itemView) diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/drawable-xhdpi/icon_fsm_error_green_arrow.png b/core/function-impl/mogo-core-function-hmi/src/main/res/drawable-xhdpi/icon_fsm_error_green_arrow.png new file mode 100644 index 0000000000000000000000000000000000000000..2247e49b854330ce82d47325b3723f9f5be3d0a7 GIT binary patch literal 277 zcmeAS@N?(olHy`uVBq!ia0vp^LLkh+1|-AI^@Rf|#^NA%Cx&(BWL^R}E~ycoX}-P; zT0k}j17mw80}DtA5K93u0|WB{Mh0de%?J`(zyy~STEL88gA~qMxhWJ#)qA=)hFAzL zy>ynhL4k)gLE+q@zJ=T?lr1OuG2}cnNwN?T_P8uxmHBB>U1j?$&Ah~K$CIp%_Z9lz z+@R+Ad)Md4^$QHSS&m0-XxyT}<>@H&s41s|>8JqPs)bS|0$<)aa{u{X)}GU`P^v*G shlBZs0P6$+aR)`s3l32W9QHCe$Y1x*&;PhCTnywSPgg&ebxsLQ0BR0QC;$Ke literal 0 HcmV?d00001 diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/drawable-xhdpi/icon_fsm_error_red_arrow.png b/core/function-impl/mogo-core-function-hmi/src/main/res/drawable-xhdpi/icon_fsm_error_red_arrow.png index e30e3b9265a43861a69321715ccb8e4d7ce71452..fba55f99d131b30f06997e61c4e4fc26aa40a1dd 100644 GIT binary patch literal 265 zcmeAS@N?(olHy`uVBq!ia0vp^LLkh+1|-AI^@Rf|#^NA%Cx&(BWL^R}E~ycoX}-P; zT0k}j17mw80}DtA5K93u0|WB{Mh0de%?J`(zyy~STEL88gA~qMxhWJ#6??ikhFAzL zy>yWCfB^^V1(lKwC5@LRS_Qdpn0!-C%SGVgdhws^^8XVaC#%~%&pG;1{>c81TMmZr z?-VF*eIm!C%fV!;!Rod^U`At%K%>tFCd~qmRqxg^tf+TZVD*^DlfookMi4Tx04R}lkUdL6VHk!l(}?VYiUJ1*w+bvwZK$p66C5Oq%I$bMYGC$qJP{2+ zLq8xW8u|gzKX7Sis67Y@9HOzMDRAlI^c=0UqW9(DzPNer_kDPvsa;bl?*TRnmboxH z8CY3O1zH|yr4uiHf|_1b6NyAzTKLkRr*ezS(VHRXt*3!h`Q&~)W%YF|zZ-7*Z~u?u zT{DWh=&MvzSEdE7kZ@w#QV#D4_nI=4@R7sW8lO3wuJL)bXK^7Wd@bCi=d?B92jO74 z!Ou4EMt)2GoWYsC-6$+2MSW6!rkEx!H$ajw5k?qej^sa?Xf+dK6U7cD>txAcNqRyY zMIJ+Vo&q|<1ck$dq@vEQfA6sF<*s1#Qoi!lz04t$D$u=O_xg9CX9g|~lxAw*n{`z@ z#Y`kz7|L_P1n**Q-At436a!6u0193hA+#~sjk{kuB zK>V87R8{X7D+SzC&qh9w*^HP*IfIj_v{ z4%77r>zP>$4g90UO#@n2Bf9!QFF<3Vt_hWn8_s}&fm=jTsH>fq>`6^ddJ>-yBH8j(vLm$lhVzSbSc60nw4m&is5^+>f_7QHzIY~ZCRFlnXw3MD zqq=tSw}JKVP;-J$M$mka#8wQEc|xkR+|>2)`F7V@Et4U@#T@BG(ip|&1M1`F=-u1u8^ zZUi+aCW;-155F5H2ygtIU>P0Dw;=810b*#&h}7lN74yUnbQe>Gc|c}J009~pvsq-d zH*QmPRtpWP2L|kP1n0pm(JebyGW&o8TrRU58~k3FOlikG-+`}NVWu62N6Ra^0PTV? zn+MY?JHKA2Imd{wG(0paltV$dY}|OKiXnujYE!}Ra`!b>&|N^E3E)po9b9{v->2px ns2>|2c+`eXNoYmp`~=4hO43!a9{ezQ00000NkvXXu0mjfbqoR& diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/drawable/bg_fsm_status_detail_close.xml b/core/function-impl/mogo-core-function-hmi/src/main/res/drawable/bg_fsm_status_detail_close.xml index 49c0646059..1d9b7398e3 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/res/drawable/bg_fsm_status_detail_close.xml +++ b/core/function-impl/mogo-core-function-hmi/src/main/res/drawable/bg_fsm_status_detail_close.xml @@ -1,6 +1,6 @@ - + \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/drawable/status_dialog_fsm_status_background.xml b/core/function-impl/mogo-core-function-hmi/src/main/res/drawable/status_dialog_fsm_status_background.xml index 7e234745fd..f2042b04ad 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/res/drawable/status_dialog_fsm_status_background.xml +++ b/core/function-impl/mogo-core-function-hmi/src/main/res/drawable/status_dialog_fsm_status_background.xml @@ -3,18 +3,18 @@ android:shape="rectangle"> + android:endColor="#996C6C6C" + android:startColor="#40FFFFFF" /> diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/layout/view_status_fsm_item_layout.xml b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/view_status_fsm_item_layout.xml index 995b38abe8..ad87fa36f5 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/res/layout/view_status_fsm_item_layout.xml +++ b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/view_status_fsm_item_layout.xml @@ -4,13 +4,14 @@ xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="wrap_content" + android:gravity="top" android:orientation="horizontal"> From 30203647dcddf5e6e482298335fe0960e36274a0 Mon Sep 17 00:00:00 2001 From: EmArrow Date: Wed, 18 Sep 2024 13:53:59 +0800 Subject: [PATCH 3/7] [6.7.0] fix ui --- app/build.gradle | 2 +- .../mogo/eagle/core/function/hmi/bone/BoneTabLayout.kt | 2 +- .../src/main/res/layout/view_bone_tab.xml | 1 - .../src/main/res/layout/view_tab_switch.xml | 9 ++++++--- 4 files changed, 8 insertions(+), 6 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index d356c96e47..101a12d2e0 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -8,7 +8,7 @@ apply plugin: 'kotlin-android' apply plugin: 'kotlin-android-extensions' apply plugin: 'kotlin-kapt' -//apply from: rootProject.file('gradle/bytex/bytex.gradle') +apply from: rootProject.file('gradle/bytex/bytex.gradle') Properties properties = new Properties() properties.load(project.rootProject.file("gradle.properties").newDataInputStream()) diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/bone/BoneTabLayout.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/bone/BoneTabLayout.kt index bc72f6f66c..e5d0a1d665 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/bone/BoneTabLayout.kt +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/bone/BoneTabLayout.kt @@ -112,7 +112,7 @@ class BoneTabLayout @JvmOverloads constructor( TabType.MSG_INFO -> { tabSwitchMsgBox.switchTab(check) if (check) { - + tabSwitchMsgBox.updateNotice(false) } else { } diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/layout/view_bone_tab.xml b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/view_bone_tab.xml index 6c5b992bef..63bb5539dc 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/res/layout/view_bone_tab.xml +++ b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/view_bone_tab.xml @@ -26,7 +26,6 @@ \ No newline at end of file From 1b77f4ef5d85e83a9bed4294db067842a05896d7 Mon Sep 17 00:00:00 2001 From: yangyakun Date: Wed, 18 Sep 2024 15:16:02 +0800 Subject: [PATCH 4/7] =?UTF-8?q?[6.7.0]=20[fea]=20[db=20=E8=BF=81=E7=A7=BB?= =?UTF-8?q?=E5=8C=85]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../1.json | 571 ------------------ .../2.json | 0 .../mogo/och/weaknet/ShuttleDriverProvider.kt | 8 +- .../bean/BusQueryLineTaskResponse.java | 7 - .../weaknet/bean/BusQueryLinesResponse.java | 5 - .../och/weaknet/bean/BusRoutesResponse.kt | 4 +- .../weaknet/bean/CarExecutableTaskResponse.kt | 16 +- .../och/weaknet/bean/ShuttleEventRequest.kt | 3 +- .../weaknet/callback/IBusLinesCallback.java | 5 - .../mogo/och/weaknet/model/BusLineModel.kt | 39 +- .../com/mogo/och/weaknet/model/EventModel.kt | 5 +- .../{database => repository/db}/MyDataBase.kt | 26 +- .../db}/bean/ContrailDataBean.kt | 2 +- .../db}/bean/EventDataBean.kt | 2 +- .../db}/bean/LineDataBean.kt | 2 +- .../db}/bean/SiteDataBean.kt | 2 +- .../db}/bean/TaskDataBean.kt | 2 +- .../db}/bean/TaskSiteDataBean.kt | 2 +- .../db}/dao/ContrailDataDao.kt | 4 +- .../db}/dao/EventDataDao.kt | 4 +- .../db}/dao/LineDataDao.kt | 4 +- .../db}/dao/SiteDataDao.kt | 4 +- .../db}/dao/TaskDataDao.kt | 5 +- .../db}/dao/TaskSiteDataDao.kt | 4 +- .../db}/exception/DataException.kt | 2 +- .../db}/repository/ContraiRepository.kt | 9 +- .../db}/repository/DbThreadUtils.kt | 2 +- .../db}/repository/EventRepository.kt | 8 +- .../db}/repository/LineRepository.kt | 8 +- .../db}/repository/SiteRepository.kt | 9 +- .../db}/repository/TaskRepository.kt | 10 +- .../db}/repository/TaskSiteRepository.kt | 10 +- .../db}/transform/DataBaseTransform.kt | 15 +- .../weaknet/ui/bizswitch/SwtichBizeModel.kt | 2 - 34 files changed, 94 insertions(+), 707 deletions(-) delete mode 100644 OCH/shuttle/driver_weaknet/schemas/com.mogo.och.weaknet.database.MyDataBase/1.json rename OCH/shuttle/driver_weaknet/schemas/{com.mogo.och.weaknet.database.MyDataBase => com.mogo.och.weaknet.repository.db.MyDataBase}/2.json (100%) rename OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/{database => repository/db}/MyDataBase.kt (73%) rename OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/{database => repository/db}/bean/ContrailDataBean.kt (98%) rename OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/{database => repository/db}/bean/EventDataBean.kt (98%) rename OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/{database => repository/db}/bean/LineDataBean.kt (96%) rename OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/{database => repository/db}/bean/SiteDataBean.kt (97%) rename OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/{database => repository/db}/bean/TaskDataBean.kt (97%) rename OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/{database => repository/db}/bean/TaskSiteDataBean.kt (98%) rename OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/{database => repository/db}/dao/ContrailDataDao.kt (91%) rename OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/{database => repository/db}/dao/EventDataDao.kt (93%) rename OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/{database => repository/db}/dao/LineDataDao.kt (93%) rename OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/{database => repository/db}/dao/SiteDataDao.kt (92%) rename OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/{database => repository/db}/dao/TaskDataDao.kt (95%) rename OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/{database => repository/db}/dao/TaskSiteDataDao.kt (92%) rename OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/{database => repository/db}/exception/DataException.kt (69%) rename OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/{database => repository/db}/repository/ContraiRepository.kt (87%) rename OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/{database => repository/db}/repository/DbThreadUtils.kt (83%) rename OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/{database => repository/db}/repository/EventRepository.kt (95%) rename OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/{database => repository/db}/repository/LineRepository.kt (93%) rename OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/{database => repository/db}/repository/SiteRepository.kt (84%) rename OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/{database => repository/db}/repository/TaskRepository.kt (95%) rename OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/{database => repository/db}/repository/TaskSiteRepository.kt (90%) rename OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/{database => repository/db}/transform/DataBaseTransform.kt (71%) diff --git a/OCH/shuttle/driver_weaknet/schemas/com.mogo.och.weaknet.database.MyDataBase/1.json b/OCH/shuttle/driver_weaknet/schemas/com.mogo.och.weaknet.database.MyDataBase/1.json deleted file mode 100644 index e8140c506b..0000000000 --- a/OCH/shuttle/driver_weaknet/schemas/com.mogo.och.weaknet.database.MyDataBase/1.json +++ /dev/null @@ -1,571 +0,0 @@ -{ - "formatVersion": 1, - "database": { - "version": 1, - "identityHash": "2a452358f8c0aca67794fd0de6b4af1c", - "entities": [ - { - "tableName": "contrail_data_table", - "createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`id` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, `line_id` INTEGER, `csv_file_url` TEXT, `csv_file_md5` TEXT, `txt_file_url` TEXT, `txt_file_md5` TEXT, `contrail_save_time` INTEGER, `md5` TEXT)", - "fields": [ - { - "fieldPath": "id", - "columnName": "id", - "affinity": "INTEGER", - "notNull": true - }, - { - "fieldPath": "lineId", - "columnName": "line_id", - "affinity": "INTEGER", - "notNull": false - }, - { - "fieldPath": "csvFileUrl", - "columnName": "csv_file_url", - "affinity": "TEXT", - "notNull": false - }, - { - "fieldPath": "csvFileMd5", - "columnName": "csv_file_md5", - "affinity": "TEXT", - "notNull": false - }, - { - "fieldPath": "txtFileUrl", - "columnName": "txt_file_url", - "affinity": "TEXT", - "notNull": false - }, - { - "fieldPath": "txtFileMd5", - "columnName": "txt_file_md5", - "affinity": "TEXT", - "notNull": false - }, - { - "fieldPath": "contrailSaveTime", - "columnName": "contrail_save_time", - "affinity": "INTEGER", - "notNull": false - }, - { - "fieldPath": "md5", - "columnName": "md5", - "affinity": "TEXT", - "notNull": false - } - ], - "primaryKey": { - "columnNames": [ - "id" - ], - "autoGenerate": true - }, - "indices": [ - { - "name": "index_contrail_data_table_line_id", - "unique": false, - "columnNames": [ - "line_id" - ], - "orders": [], - "createSql": "CREATE INDEX IF NOT EXISTS `index_contrail_data_table_line_id` ON `${TABLE_NAME}` (`line_id`)" - }, - { - "name": "index_contrail_data_table_md5", - "unique": false, - "columnNames": [ - "md5" - ], - "orders": [], - "createSql": "CREATE INDEX IF NOT EXISTS `index_contrail_data_table_md5` ON `${TABLE_NAME}` (`md5`)" - } - ], - "foreignKeys": [] - }, - { - "tableName": "line_data_table", - "createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`id` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, `line_id` INTEGER, `line_name` TEXT, `end_station_name` TEXT, `line_get_time` INTEGER NOT NULL)", - "fields": [ - { - "fieldPath": "id", - "columnName": "id", - "affinity": "INTEGER", - "notNull": true - }, - { - "fieldPath": "lineId", - "columnName": "line_id", - "affinity": "INTEGER", - "notNull": false - }, - { - "fieldPath": "lineName", - "columnName": "line_name", - "affinity": "TEXT", - "notNull": false - }, - { - "fieldPath": "endStationName", - "columnName": "end_station_name", - "affinity": "TEXT", - "notNull": false - }, - { - "fieldPath": "linegetTime", - "columnName": "line_get_time", - "affinity": "INTEGER", - "notNull": true - } - ], - "primaryKey": { - "columnNames": [ - "id" - ], - "autoGenerate": true - }, - "indices": [ - { - "name": "index_line_data_table_line_id", - "unique": false, - "columnNames": [ - "line_id" - ], - "orders": [], - "createSql": "CREATE INDEX IF NOT EXISTS `index_line_data_table_line_id` ON `${TABLE_NAME}` (`line_id`)" - } - ], - "foreignKeys": [] - }, - { - "tableName": "site_data_table", - "createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`id` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, `site_id` INTEGER, `line_id` INTEGER, `name` TEXT, `name_kr` TEXT, `seq` INTEGER, `gcj_lon` REAL, `gcj_lat` REAL, `lon` REAL, `lat` REAL, `introduction` TEXT, `is_play_tts` INTEGER, `md5` TEXT)", - "fields": [ - { - "fieldPath": "id", - "columnName": "id", - "affinity": "INTEGER", - "notNull": true - }, - { - "fieldPath": "siteId", - "columnName": "site_id", - "affinity": "INTEGER", - "notNull": false - }, - { - "fieldPath": "lineId", - "columnName": "line_id", - "affinity": "INTEGER", - "notNull": false - }, - { - "fieldPath": "name", - "columnName": "name", - "affinity": "TEXT", - "notNull": false - }, - { - "fieldPath": "nameKr", - "columnName": "name_kr", - "affinity": "TEXT", - "notNull": false - }, - { - "fieldPath": "seq", - "columnName": "seq", - "affinity": "INTEGER", - "notNull": false - }, - { - "fieldPath": "gcjLon", - "columnName": "gcj_lon", - "affinity": "REAL", - "notNull": false - }, - { - "fieldPath": "gcjLat", - "columnName": "gcj_lat", - "affinity": "REAL", - "notNull": false - }, - { - "fieldPath": "lon", - "columnName": "lon", - "affinity": "REAL", - "notNull": false - }, - { - "fieldPath": "lat", - "columnName": "lat", - "affinity": "REAL", - "notNull": false - }, - { - "fieldPath": "introduction", - "columnName": "introduction", - "affinity": "TEXT", - "notNull": false - }, - { - "fieldPath": "isPlayTts", - "columnName": "is_play_tts", - "affinity": "INTEGER", - "notNull": false - }, - { - "fieldPath": "md5", - "columnName": "md5", - "affinity": "TEXT", - "notNull": false - } - ], - "primaryKey": { - "columnNames": [ - "id" - ], - "autoGenerate": true - }, - "indices": [ - { - "name": "index_site_data_table_site_id", - "unique": false, - "columnNames": [ - "site_id" - ], - "orders": [], - "createSql": "CREATE INDEX IF NOT EXISTS `index_site_data_table_site_id` ON `${TABLE_NAME}` (`site_id`)" - }, - { - "name": "index_site_data_table_line_id", - "unique": false, - "columnNames": [ - "line_id" - ], - "orders": [], - "createSql": "CREATE INDEX IF NOT EXISTS `index_site_data_table_line_id` ON `${TABLE_NAME}` (`line_id`)" - } - ], - "foreignKeys": [] - }, - { - "tableName": "task_data_table", - "createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`id` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, `task_id` INTEGER, `line_id` INTEGER, `task_data` INTEGER, `task_start_time` INTEGER, `start_time` INTEGER, `end_time` INTEGER, `task_get_time` INTEGER NOT NULL, `status` INTEGER)", - "fields": [ - { - "fieldPath": "id", - "columnName": "id", - "affinity": "INTEGER", - "notNull": true - }, - { - "fieldPath": "taskId", - "columnName": "task_id", - "affinity": "INTEGER", - "notNull": false - }, - { - "fieldPath": "lineId", - "columnName": "line_id", - "affinity": "INTEGER", - "notNull": false - }, - { - "fieldPath": "taskDate", - "columnName": "task_data", - "affinity": "INTEGER", - "notNull": false - }, - { - "fieldPath": "taskStartTime", - "columnName": "task_start_time", - "affinity": "INTEGER", - "notNull": false - }, - { - "fieldPath": "startTime", - "columnName": "start_time", - "affinity": "INTEGER", - "notNull": false - }, - { - "fieldPath": "endtime", - "columnName": "end_time", - "affinity": "INTEGER", - "notNull": false - }, - { - "fieldPath": "taskgetTime", - "columnName": "task_get_time", - "affinity": "INTEGER", - "notNull": true - }, - { - "fieldPath": "status", - "columnName": "status", - "affinity": "INTEGER", - "notNull": false - } - ], - "primaryKey": { - "columnNames": [ - "id" - ], - "autoGenerate": true - }, - "indices": [ - { - "name": "index_task_data_table_task_id", - "unique": false, - "columnNames": [ - "task_id" - ], - "orders": [], - "createSql": "CREATE INDEX IF NOT EXISTS `index_task_data_table_task_id` ON `${TABLE_NAME}` (`task_id`)" - }, - { - "name": "index_task_data_table_line_id", - "unique": false, - "columnNames": [ - "line_id" - ], - "orders": [], - "createSql": "CREATE INDEX IF NOT EXISTS `index_task_data_table_line_id` ON `${TABLE_NAME}` (`line_id`)" - } - ], - "foreignKeys": [] - }, - { - "tableName": "used_task_data_table", - "createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`id` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, `task_id` INTEGER, `line_id` INTEGER, `site_id` INTEGER, `line_name` TEXT, `name` TEXT, `name_kr` TEXT, `seq` INTEGER, `gcj_lon` REAL, `gcj_lat` REAL, `lon` REAL, `lat` REAL, `driving_status` INTEGER, `leaving` INTEGER, `arrived_time` INTEGER, `leave_time` INTEGER, `introduction` TEXT, `is_play_tts` INTEGER, `event_save_time` INTEGER NOT NULL)", - "fields": [ - { - "fieldPath": "id", - "columnName": "id", - "affinity": "INTEGER", - "notNull": true - }, - { - "fieldPath": "taskId", - "columnName": "task_id", - "affinity": "INTEGER", - "notNull": false - }, - { - "fieldPath": "lineId", - "columnName": "line_id", - "affinity": "INTEGER", - "notNull": false - }, - { - "fieldPath": "siteId", - "columnName": "site_id", - "affinity": "INTEGER", - "notNull": false - }, - { - "fieldPath": "lineName", - "columnName": "line_name", - "affinity": "TEXT", - "notNull": false - }, - { - "fieldPath": "name", - "columnName": "name", - "affinity": "TEXT", - "notNull": false - }, - { - "fieldPath": "nameKr", - "columnName": "name_kr", - "affinity": "TEXT", - "notNull": false - }, - { - "fieldPath": "seq", - "columnName": "seq", - "affinity": "INTEGER", - "notNull": false - }, - { - "fieldPath": "gcjLon", - "columnName": "gcj_lon", - "affinity": "REAL", - "notNull": false - }, - { - "fieldPath": "gcjLat", - "columnName": "gcj_lat", - "affinity": "REAL", - "notNull": false - }, - { - "fieldPath": "lon", - "columnName": "lon", - "affinity": "REAL", - "notNull": false - }, - { - "fieldPath": "lat", - "columnName": "lat", - "affinity": "REAL", - "notNull": false - }, - { - "fieldPath": "drivingStatus", - "columnName": "driving_status", - "affinity": "INTEGER", - "notNull": false - }, - { - "fieldPath": "leaving", - "columnName": "leaving", - "affinity": "INTEGER", - "notNull": false - }, - { - "fieldPath": "arrivedTime", - "columnName": "arrived_time", - "affinity": "INTEGER", - "notNull": false - }, - { - "fieldPath": "leaveTime", - "columnName": "leave_time", - "affinity": "INTEGER", - "notNull": false - }, - { - "fieldPath": "introduction", - "columnName": "introduction", - "affinity": "TEXT", - "notNull": false - }, - { - "fieldPath": "isPlayTts", - "columnName": "is_play_tts", - "affinity": "INTEGER", - "notNull": false - }, - { - "fieldPath": "eventSaveTime", - "columnName": "event_save_time", - "affinity": "INTEGER", - "notNull": true - } - ], - "primaryKey": { - "columnNames": [ - "id" - ], - "autoGenerate": true - }, - "indices": [], - "foreignKeys": [] - }, - { - "tableName": "event_data_table", - "createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`id` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, `event_type` TEXT, `lineId` INTEGER, `lineName` TEXT, `task_id` INTEGER, `task_start_time` INTEGER, `business_time` INTEGER, `write_version` INTEGER, `site_id` INTEGER, `seq` INTEGER, `event_save_time` INTEGER NOT NULL, `update_status` INTEGER NOT NULL)", - "fields": [ - { - "fieldPath": "id", - "columnName": "id", - "affinity": "INTEGER", - "notNull": true - }, - { - "fieldPath": "eventType", - "columnName": "event_type", - "affinity": "TEXT", - "notNull": false - }, - { - "fieldPath": "lineId", - "columnName": "lineId", - "affinity": "INTEGER", - "notNull": false - }, - { - "fieldPath": "lineName", - "columnName": "lineName", - "affinity": "TEXT", - "notNull": false - }, - { - "fieldPath": "taskId", - "columnName": "task_id", - "affinity": "INTEGER", - "notNull": false - }, - { - "fieldPath": "taskStartTime", - "columnName": "task_start_time", - "affinity": "INTEGER", - "notNull": false - }, - { - "fieldPath": "businessTime", - "columnName": "business_time", - "affinity": "INTEGER", - "notNull": false - }, - { - "fieldPath": "writeVersion", - "columnName": "write_version", - "affinity": "INTEGER", - "notNull": false - }, - { - "fieldPath": "siteId", - "columnName": "site_id", - "affinity": "INTEGER", - "notNull": false - }, - { - "fieldPath": "seq", - "columnName": "seq", - "affinity": "INTEGER", - "notNull": false - }, - { - "fieldPath": "eventSaveTime", - "columnName": "event_save_time", - "affinity": "INTEGER", - "notNull": true - }, - { - "fieldPath": "updateStatus", - "columnName": "update_status", - "affinity": "INTEGER", - "notNull": true - } - ], - "primaryKey": { - "columnNames": [ - "id" - ], - "autoGenerate": true - }, - "indices": [ - { - "name": "index_event_data_table_event_save_time", - "unique": false, - "columnNames": [ - "event_save_time" - ], - "orders": [], - "createSql": "CREATE INDEX IF NOT EXISTS `index_event_data_table_event_save_time` ON `${TABLE_NAME}` (`event_save_time`)" - } - ], - "foreignKeys": [] - } - ], - "views": [], - "setupQueries": [ - "CREATE TABLE IF NOT EXISTS room_master_table (id INTEGER PRIMARY KEY,identity_hash TEXT)", - "INSERT OR REPLACE INTO room_master_table (id,identity_hash) VALUES(42, '2a452358f8c0aca67794fd0de6b4af1c')" - ] - } -} \ No newline at end of file diff --git a/OCH/shuttle/driver_weaknet/schemas/com.mogo.och.weaknet.database.MyDataBase/2.json b/OCH/shuttle/driver_weaknet/schemas/com.mogo.och.weaknet.repository.db.MyDataBase/2.json similarity index 100% rename from OCH/shuttle/driver_weaknet/schemas/com.mogo.och.weaknet.database.MyDataBase/2.json rename to OCH/shuttle/driver_weaknet/schemas/com.mogo.och.weaknet.repository.db.MyDataBase/2.json diff --git a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/ShuttleDriverProvider.kt b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/ShuttleDriverProvider.kt index d86abf8bd9..41643c923d 100644 --- a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/ShuttleDriverProvider.kt +++ b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/ShuttleDriverProvider.kt @@ -9,10 +9,10 @@ import com.mogo.eagle.core.utilcode.util.ThreadUtils import com.mogo.och.common.module.constant.OchCommonConst import com.mogo.och.common.module.biz.provider.CommonServiceImpl import com.mogo.och.common.module.manager.autopilot.autopilot.OchAutopilotAnalytics -import com.mogo.och.weaknet.database.repository.EventRepository -import com.mogo.och.weaknet.database.repository.LineRepository -import com.mogo.och.weaknet.database.repository.TaskRepository -import com.mogo.och.weaknet.database.repository.TaskSiteRepository +import com.mogo.och.weaknet.repository.db.repository.EventRepository +import com.mogo.och.weaknet.repository.db.repository.LineRepository +import com.mogo.och.weaknet.repository.db.repository.TaskRepository +import com.mogo.och.weaknet.repository.db.repository.TaskSiteRepository import com.mogo.och.weaknet.fragment.ShuttleFragment import com.mogo.och.weaknet.model.BusLineModel import com.mogo.och.weaknet.util.BusAnalyticsManager diff --git a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/bean/BusQueryLineTaskResponse.java b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/bean/BusQueryLineTaskResponse.java index 3e4124a352..695944d33b 100644 --- a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/bean/BusQueryLineTaskResponse.java +++ b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/bean/BusQueryLineTaskResponse.java @@ -1,14 +1,7 @@ package com.mogo.och.weaknet.bean; import com.mogo.eagle.core.data.BaseData; -import com.mogo.och.common.module.utils.DateTimeUtil; -import com.mogo.och.weaknet.database.bean.LineDataBean; -import com.mogo.och.weaknet.database.bean.TaskDataBean; -import com.mogo.och.weaknet.database.repository.TaskRepository; -import org.jetbrains.annotations.NotNull; - -import java.util.ArrayList; import java.util.List; /** diff --git a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/bean/BusQueryLinesResponse.java b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/bean/BusQueryLinesResponse.java index b6ae1fd77c..64de48c1e3 100644 --- a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/bean/BusQueryLinesResponse.java +++ b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/bean/BusQueryLinesResponse.java @@ -1,12 +1,7 @@ package com.mogo.och.weaknet.bean; import com.mogo.eagle.core.data.BaseData; -import com.mogo.och.weaknet.database.bean.LineDataBean; -import com.mogo.och.weaknet.database.repository.LineRepository; -import org.jetbrains.annotations.NotNull; - -import java.util.ArrayList; import java.util.List; /** diff --git a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/bean/BusRoutesResponse.kt b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/bean/BusRoutesResponse.kt index 87a0e988fa..92f55a4742 100644 --- a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/bean/BusRoutesResponse.kt +++ b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/bean/BusRoutesResponse.kt @@ -5,9 +5,9 @@ import com.mogo.och.common.module.manager.autopilot.line.LineManager import com.mogo.och.data.bean.BusRoutesResult import com.mogo.och.data.bean.BusStationBean import com.mogo.och.data.bean.LineInfo -import com.mogo.och.weaknet.database.bean.TaskSiteDataBean -import com.mogo.och.weaknet.database.repository.TaskSiteRepository import com.mogo.och.weaknet.model.BusLineModel +import com.mogo.och.weaknet.repository.db.bean.TaskSiteDataBean +import com.mogo.och.weaknet.repository.db.repository.TaskSiteRepository import java.lang.Boolean import kotlin.String diff --git a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/bean/CarExecutableTaskResponse.kt b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/bean/CarExecutableTaskResponse.kt index c6f233a517..b7c0609323 100644 --- a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/bean/CarExecutableTaskResponse.kt +++ b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/bean/CarExecutableTaskResponse.kt @@ -1,14 +1,14 @@ package com.mogo.och.weaknet.bean import com.mogo.eagle.core.data.BaseData -import com.mogo.och.weaknet.database.bean.ContrailDataBean -import com.mogo.och.weaknet.database.bean.LineDataBean -import com.mogo.och.weaknet.database.bean.SiteDataBean -import com.mogo.och.weaknet.database.bean.TaskDataBean -import com.mogo.och.weaknet.database.repository.ContraiRepository -import com.mogo.och.weaknet.database.repository.LineRepository -import com.mogo.och.weaknet.database.repository.SiteRepository -import com.mogo.och.weaknet.database.repository.TaskRepository +import com.mogo.och.weaknet.repository.db.bean.ContrailDataBean +import com.mogo.och.weaknet.repository.db.bean.LineDataBean +import com.mogo.och.weaknet.repository.db.bean.SiteDataBean +import com.mogo.och.weaknet.repository.db.bean.TaskDataBean +import com.mogo.och.weaknet.repository.db.repository.ContraiRepository +import com.mogo.och.weaknet.repository.db.repository.LineRepository +import com.mogo.och.weaknet.repository.db.repository.SiteRepository +import com.mogo.och.weaknet.repository.db.repository.TaskRepository /** * diff --git a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/bean/ShuttleEventRequest.kt b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/bean/ShuttleEventRequest.kt index 1ea029ba2e..89371fdf3c 100644 --- a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/bean/ShuttleEventRequest.kt +++ b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/bean/ShuttleEventRequest.kt @@ -2,8 +2,7 @@ package com.mogo.och.weaknet.bean import com.mogo.commons.storage.SharedPrefsMgr import com.mogo.eagle.core.network.utils.digest.DigestUtils -import com.mogo.och.common.module.biz.login.LoginStatusManager -import com.mogo.och.weaknet.database.bean.EventDataBean +import com.mogo.och.weaknet.repository.db.bean.EventDataBean /** * @author congtaowang 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 7c8303e725..704e84deef 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 @@ -1,12 +1,7 @@ package com.mogo.och.weaknet.callback; -import com.mogo.och.data.bean.BusStationBean; import com.mogo.och.weaknet.bean.BusQueryLineTaskResponse; import com.mogo.och.weaknet.bean.BusQueryLinesResponse; -import com.mogo.och.weaknet.database.bean.TaskDataBean; - -import org.jetbrains.annotations.NotNull; -import org.jetbrains.annotations.Nullable; import java.util.List; 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 c5f593e5d5..6ac839d90b 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 @@ -6,27 +6,19 @@ import com.mogo.commons.AbsMogoApplication import com.mogo.commons.storage.SharedPrefsMgr import com.mogo.eagle.core.data.config.FunctionBuildConfig import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotControlManager -import com.mogo.eagle.core.function.call.order.CallerOrderListenerManager 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.GsonUtils import com.mogo.eagle.core.utilcode.util.NetworkUtils import com.mogo.eagle.core.utilcode.util.ToastUtils -import com.mogo.och.common.module.biz.login.LoginStatusManager import com.mogo.och.common.module.manager.autopilot.line.LineManager import com.mogo.och.common.module.manager.logchainanalytic.OchChainLogManager import com.mogo.och.common.module.manager.loop.BizLoopManager -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.manager.socket.lan.bean.TaskDetailsMsg 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.BusRoutesResult import com.mogo.och.data.bean.BusStationBean -import com.mogo.och.data.bean.BusTransferData import com.mogo.och.shuttle.weaknet.R import com.mogo.och.weaknet.bean.BusQueryLineTaskResponse import com.mogo.och.weaknet.bean.BusQueryLinesResponse @@ -34,18 +26,17 @@ import com.mogo.och.weaknet.bean.BusRoutesResponse import com.mogo.och.weaknet.bean.CarExecutableTaskResponse import com.mogo.och.weaknet.callback.IBusLinesCallback import com.mogo.och.weaknet.constant.BusConst -import com.mogo.och.weaknet.database.bean.ContrailDataBean -import com.mogo.och.weaknet.database.bean.TaskDataBean -import com.mogo.och.weaknet.database.bean.TaskSiteDataBean -import com.mogo.och.weaknet.database.repository.ContraiRepository -import com.mogo.och.weaknet.database.repository.EventRepository -import com.mogo.och.weaknet.database.repository.LineRepository -import com.mogo.och.weaknet.database.repository.TaskRepository -import com.mogo.och.weaknet.database.repository.TaskSiteRepository -import com.mogo.och.weaknet.database.transform.FRetryWithTime11 -import com.mogo.och.weaknet.database.transform.TransformTask -import com.mogo.och.weaknet.database.transform.transform4DataBase import com.mogo.och.weaknet.net.OrderServiceManager +import com.mogo.och.weaknet.repository.db.bean.ContrailDataBean +import com.mogo.och.weaknet.repository.db.bean.TaskDataBean +import com.mogo.och.weaknet.repository.db.bean.TaskSiteDataBean +import com.mogo.och.weaknet.repository.db.repository.ContraiRepository +import com.mogo.och.weaknet.repository.db.repository.LineRepository +import com.mogo.och.weaknet.repository.db.repository.TaskRepository +import com.mogo.och.weaknet.repository.db.repository.TaskSiteRepository +import com.mogo.och.weaknet.repository.db.transform.FRetryWithTime11 +import com.mogo.och.weaknet.repository.db.transform.TransformTask +import com.mogo.och.weaknet.repository.db.transform.transform4DataBase import io.reactivex.Observer import io.reactivex.disposables.Disposable import java.util.concurrent.ConcurrentHashMap @@ -258,7 +249,7 @@ object BusLineModel { line.name, object : TaskRepository.TaskStatusCallback { override fun startSuccess() { - EventRepository.saveEventTaskStart(task.id,line.lineId,task.taskStartTime,line.name) + com.mogo.och.weaknet.repository.db.repository.EventRepository.saveEventTaskStart(task.id,line.lineId,task.taskStartTime,line.name) OrderModel.queryBusRoutes() mBusLinesCallbackMap.forEach { it.value.onChangeLineIdSuccess() @@ -330,7 +321,7 @@ object BusLineModel { } val tempList = sorted.toMutableList() val possible = tempList.removeFirst() - val queryLastData = EventRepository.queryLastData() + val queryLastData = com.mogo.och.weaknet.repository.db.repository.EventRepository.queryLastData() if(queryLastData!=null){ if(possible.taskId==queryLastData.taskId){ // 最后一个事件和最新的task一直 恢复数据 @@ -434,7 +425,7 @@ object BusLineModel { OchChainLogManager.writeChainLogDb("滑动出发", "task:${currentTask}__taskId:${currentTask?.taskId}") // 设置滑动出发任务 LineManager.lineInfos?.lineName?.let { lineName-> - EventRepository.saveEventTaskLeaveSite( + com.mogo.och.weaknet.repository.db.repository.EventRepository.saveEventTaskLeaveSite( task.taskId!!, task.lineId!!, it.siteId.toLong(), @@ -471,7 +462,7 @@ object BusLineModel { TaskSiteRepository.updateDrivingStatusAndLeave(task.taskId!!,start.siteId.toLong(),TaskSiteDataBean.drivingStatusPassed,false) // 设置到站任务 LineManager.lineInfos?.let {lineInfo -> - EventRepository.saveEventTaskArriveSite(task.taskId!!,task.lineId!!,start.siteId.toLong(),start.seq,task.taskStartTime,lineInfo.lineName) + com.mogo.och.weaknet.repository.db.repository.EventRepository.saveEventTaskArriveSite(task.taskId!!,task.lineId!!,start.siteId.toLong(),start.seq,task.taskStartTime,lineInfo.lineName) } } } @@ -526,7 +517,7 @@ object BusLineModel { if (task.taskId!=null&&task.lineId!=null) { TaskRepository.endTask(task.taskId!!) LineManager.lineInfos?.lineName?.let {lineName-> - EventRepository.saveEventTaskEnd(task.taskId!!,task.lineId!!,task.taskStartTime,lineName) + com.mogo.och.weaknet.repository.db.repository.EventRepository.saveEventTaskEnd(task.taskId!!,task.lineId!!,task.taskStartTime,lineName) } } } diff --git a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/model/EventModel.kt b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/model/EventModel.kt index d902d53bfc..79091b7d46 100644 --- a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/model/EventModel.kt +++ b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/model/EventModel.kt @@ -3,16 +3,15 @@ package com.mogo.och.weaknet.model import com.mogo.commons.AbsMogoApplication import com.mogo.eagle.core.data.BaseData import com.mogo.eagle.core.utilcode.util.ThreadUtils -import com.mogo.och.common.module.biz.login.LoginStatusManager import com.mogo.och.common.module.manager.logchainanalytic.OchChainLogManager import com.mogo.och.common.module.manager.loop.BizLoopManager import com.mogo.och.common.module.network.OchCommonServiceCallback import com.mogo.och.weaknet.bean.ShuttleEventRequest import com.mogo.och.weaknet.bean.WaitUploadLine import com.mogo.och.weaknet.bean.WaitUploadTask -import com.mogo.och.weaknet.database.bean.EventDataBean -import com.mogo.och.weaknet.database.repository.EventRepository import com.mogo.och.weaknet.net.OrderServiceManager +import com.mogo.och.weaknet.repository.db.bean.EventDataBean +import com.mogo.och.weaknet.repository.db.repository.EventRepository import io.reactivex.Observable import io.reactivex.android.schedulers.AndroidSchedulers import io.reactivex.schedulers.Schedulers diff --git a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/database/MyDataBase.kt b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/db/MyDataBase.kt similarity index 73% rename from OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/database/MyDataBase.kt rename to OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/db/MyDataBase.kt index f525b824dc..0842f7b2cf 100644 --- a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/database/MyDataBase.kt +++ b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/db/MyDataBase.kt @@ -1,4 +1,4 @@ -package com.mogo.och.weaknet.database +package com.mogo.och.weaknet.repository.db import android.os.Environment import androidx.room.Database @@ -8,18 +8,18 @@ import androidx.room.migration.Migration import androidx.sqlite.db.SupportSQLiteDatabase import androidx.sqlite.db.SupportSQLiteOpenHelper import com.mogo.commons.AbsMogoApplication -import com.mogo.och.weaknet.database.bean.ContrailDataBean -import com.mogo.och.weaknet.database.bean.EventDataBean -import com.mogo.och.weaknet.database.bean.LineDataBean -import com.mogo.och.weaknet.database.bean.SiteDataBean -import com.mogo.och.weaknet.database.bean.TaskDataBean -import com.mogo.och.weaknet.database.bean.TaskSiteDataBean -import com.mogo.och.weaknet.database.dao.ContrailDataDao -import com.mogo.och.weaknet.database.dao.EventDataDao -import com.mogo.och.weaknet.database.dao.LineDataDao -import com.mogo.och.weaknet.database.dao.SiteDataDao -import com.mogo.och.weaknet.database.dao.TaskDataDao -import com.mogo.och.weaknet.database.dao.TaskSiteDataDao +import com.mogo.och.weaknet.repository.db.bean.ContrailDataBean +import com.mogo.och.weaknet.repository.db.bean.EventDataBean +import com.mogo.och.weaknet.repository.db.bean.LineDataBean +import com.mogo.och.weaknet.repository.db.bean.SiteDataBean +import com.mogo.och.weaknet.repository.db.bean.TaskDataBean +import com.mogo.och.weaknet.repository.db.bean.TaskSiteDataBean +import com.mogo.och.weaknet.repository.db.dao.ContrailDataDao +import com.mogo.och.weaknet.repository.db.dao.EventDataDao +import com.mogo.och.weaknet.repository.db.dao.LineDataDao +import com.mogo.och.weaknet.repository.db.dao.SiteDataDao +import com.mogo.och.weaknet.repository.db.dao.TaskDataDao +import com.mogo.och.weaknet.repository.db.dao.TaskSiteDataDao import java.io.File //注解Database告诉系统这是Room数据库对象 diff --git a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/database/bean/ContrailDataBean.kt b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/db/bean/ContrailDataBean.kt similarity index 98% rename from OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/database/bean/ContrailDataBean.kt rename to OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/db/bean/ContrailDataBean.kt index 4ddfdf1eeb..970e564282 100644 --- a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/database/bean/ContrailDataBean.kt +++ b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/db/bean/ContrailDataBean.kt @@ -1,4 +1,4 @@ -package com.mogo.och.weaknet.database.bean +package com.mogo.och.weaknet.repository.db.bean import androidx.room.ColumnInfo import androidx.room.Entity diff --git a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/database/bean/EventDataBean.kt b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/db/bean/EventDataBean.kt similarity index 98% rename from OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/database/bean/EventDataBean.kt rename to OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/db/bean/EventDataBean.kt index 74f548ee28..9481b8222c 100644 --- a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/database/bean/EventDataBean.kt +++ b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/db/bean/EventDataBean.kt @@ -1,4 +1,4 @@ -package com.mogo.och.weaknet.database.bean +package com.mogo.och.weaknet.repository.db.bean import androidx.room.ColumnInfo import androidx.room.Entity diff --git a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/database/bean/LineDataBean.kt b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/db/bean/LineDataBean.kt similarity index 96% rename from OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/database/bean/LineDataBean.kt rename to OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/db/bean/LineDataBean.kt index 6414cb34ee..40ad7b8502 100644 --- a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/database/bean/LineDataBean.kt +++ b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/db/bean/LineDataBean.kt @@ -1,4 +1,4 @@ -package com.mogo.och.weaknet.database.bean +package com.mogo.och.weaknet.repository.db.bean import androidx.room.ColumnInfo import androidx.room.Entity diff --git a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/database/bean/SiteDataBean.kt b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/db/bean/SiteDataBean.kt similarity index 97% rename from OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/database/bean/SiteDataBean.kt rename to OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/db/bean/SiteDataBean.kt index d63fdc2aa1..2cb9f5cff1 100644 --- a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/database/bean/SiteDataBean.kt +++ b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/db/bean/SiteDataBean.kt @@ -1,4 +1,4 @@ -package com.mogo.och.weaknet.database.bean +package com.mogo.och.weaknet.repository.db.bean import androidx.room.ColumnInfo import androidx.room.Entity diff --git a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/database/bean/TaskDataBean.kt b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/db/bean/TaskDataBean.kt similarity index 97% rename from OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/database/bean/TaskDataBean.kt rename to OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/db/bean/TaskDataBean.kt index 118df452bb..8df958cd8d 100644 --- a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/database/bean/TaskDataBean.kt +++ b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/db/bean/TaskDataBean.kt @@ -1,4 +1,4 @@ -package com.mogo.och.weaknet.database.bean +package com.mogo.och.weaknet.repository.db.bean import androidx.room.ColumnInfo import androidx.room.Entity diff --git a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/database/bean/TaskSiteDataBean.kt b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/db/bean/TaskSiteDataBean.kt similarity index 98% rename from OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/database/bean/TaskSiteDataBean.kt rename to OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/db/bean/TaskSiteDataBean.kt index 2ff89f8421..0b8c408a47 100644 --- a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/database/bean/TaskSiteDataBean.kt +++ b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/db/bean/TaskSiteDataBean.kt @@ -1,4 +1,4 @@ -package com.mogo.och.weaknet.database.bean +package com.mogo.och.weaknet.repository.db.bean import androidx.room.ColumnInfo import androidx.room.Entity diff --git a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/database/dao/ContrailDataDao.kt b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/db/dao/ContrailDataDao.kt similarity index 91% rename from OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/database/dao/ContrailDataDao.kt rename to OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/db/dao/ContrailDataDao.kt index 9b0da697e6..63a94fff6e 100644 --- a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/database/dao/ContrailDataDao.kt +++ b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/db/dao/ContrailDataDao.kt @@ -1,10 +1,10 @@ -package com.mogo.och.weaknet.database.dao +package com.mogo.och.weaknet.repository.db.dao import androidx.room.Dao import androidx.room.Insert import androidx.room.OnConflictStrategy import androidx.room.Query -import com.mogo.och.weaknet.database.bean.ContrailDataBean +import com.mogo.och.weaknet.repository.db.bean.ContrailDataBean @Dao interface ContrailDataDao { diff --git a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/database/dao/EventDataDao.kt b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/db/dao/EventDataDao.kt similarity index 93% rename from OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/database/dao/EventDataDao.kt rename to OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/db/dao/EventDataDao.kt index dd49389774..d598068e2c 100644 --- a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/database/dao/EventDataDao.kt +++ b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/db/dao/EventDataDao.kt @@ -1,4 +1,4 @@ -package com.mogo.och.weaknet.database.dao +package com.mogo.och.weaknet.repository.db.dao import androidx.room.Dao import androidx.room.Delete @@ -6,7 +6,7 @@ import androidx.room.Insert import androidx.room.OnConflictStrategy import androidx.room.Query import com.mogo.och.common.module.utils.DateTimeUtil -import com.mogo.och.weaknet.database.bean.EventDataBean +import com.mogo.och.weaknet.repository.db.bean.EventDataBean import io.reactivex.Observable @Dao diff --git a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/database/dao/LineDataDao.kt b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/db/dao/LineDataDao.kt similarity index 93% rename from OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/database/dao/LineDataDao.kt rename to OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/db/dao/LineDataDao.kt index b23de5324d..d34d6a988a 100644 --- a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/database/dao/LineDataDao.kt +++ b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/db/dao/LineDataDao.kt @@ -1,4 +1,4 @@ -package com.mogo.och.weaknet.database.dao +package com.mogo.och.weaknet.repository.db.dao import androidx.room.Dao import androidx.room.Delete @@ -6,7 +6,7 @@ import androidx.room.Insert import androidx.room.OnConflictStrategy import androidx.room.Query import com.mogo.och.common.module.utils.DateTimeUtil -import com.mogo.och.weaknet.database.bean.LineDataBean +import com.mogo.och.weaknet.repository.db.bean.LineDataBean import io.reactivex.Observable @Dao diff --git a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/database/dao/SiteDataDao.kt b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/db/dao/SiteDataDao.kt similarity index 92% rename from OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/database/dao/SiteDataDao.kt rename to OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/db/dao/SiteDataDao.kt index 32f9cc8fe4..4860806608 100644 --- a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/database/dao/SiteDataDao.kt +++ b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/db/dao/SiteDataDao.kt @@ -1,10 +1,10 @@ -package com.mogo.och.weaknet.database.dao +package com.mogo.och.weaknet.repository.db.dao import androidx.room.Dao import androidx.room.Insert import androidx.room.OnConflictStrategy import androidx.room.Query -import com.mogo.och.weaknet.database.bean.SiteDataBean +import com.mogo.och.weaknet.repository.db.bean.SiteDataBean @Dao interface SiteDataDao { diff --git a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/database/dao/TaskDataDao.kt b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/db/dao/TaskDataDao.kt similarity index 95% rename from OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/database/dao/TaskDataDao.kt rename to OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/db/dao/TaskDataDao.kt index 6b5b7a3629..752574ad4b 100644 --- a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/database/dao/TaskDataDao.kt +++ b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/db/dao/TaskDataDao.kt @@ -1,4 +1,4 @@ -package com.mogo.och.weaknet.database.dao +package com.mogo.och.weaknet.repository.db.dao import androidx.room.Dao import androidx.room.Delete @@ -6,8 +6,7 @@ import androidx.room.Insert import androidx.room.OnConflictStrategy import androidx.room.Query import com.mogo.och.common.module.utils.DateTimeUtil -import com.mogo.och.weaknet.database.bean.TaskDataBean -import com.mogo.och.weaknet.database.bean.TaskSiteDataBean +import com.mogo.och.weaknet.repository.db.bean.TaskDataBean import io.reactivex.Observable @Dao diff --git a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/database/dao/TaskSiteDataDao.kt b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/db/dao/TaskSiteDataDao.kt similarity index 92% rename from OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/database/dao/TaskSiteDataDao.kt rename to OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/db/dao/TaskSiteDataDao.kt index cd81fe13b2..2823bbc741 100644 --- a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/database/dao/TaskSiteDataDao.kt +++ b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/db/dao/TaskSiteDataDao.kt @@ -1,11 +1,11 @@ -package com.mogo.och.weaknet.database.dao +package com.mogo.och.weaknet.repository.db.dao import androidx.room.Dao import androidx.room.Insert import androidx.room.OnConflictStrategy import androidx.room.Query import com.mogo.och.common.module.utils.DateTimeUtil -import com.mogo.och.weaknet.database.bean.TaskSiteDataBean +import com.mogo.och.weaknet.repository.db.bean.TaskSiteDataBean @Dao interface TaskSiteDataDao { diff --git a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/database/exception/DataException.kt b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/db/exception/DataException.kt similarity index 69% rename from OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/database/exception/DataException.kt rename to OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/db/exception/DataException.kt index 953b28b9af..a9a6e637c4 100644 --- a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/database/exception/DataException.kt +++ b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/db/exception/DataException.kt @@ -1,4 +1,4 @@ -package com.mogo.och.weaknet.database.exception +package com.mogo.och.weaknet.repository.db.exception class DataException: RuntimeException { constructor() : super() diff --git a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/database/repository/ContraiRepository.kt b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/db/repository/ContraiRepository.kt similarity index 87% rename from OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/database/repository/ContraiRepository.kt rename to OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/db/repository/ContraiRepository.kt index 0d76bb1510..eebe434368 100644 --- a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/database/repository/ContraiRepository.kt +++ b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/db/repository/ContraiRepository.kt @@ -1,10 +1,9 @@ -package com.mogo.och.weaknet.database.repository +package com.mogo.och.weaknet.repository.db.repository import com.mogo.eagle.core.network.utils.digest.DigestUtils -import com.mogo.eagle.core.utilcode.util.ThreadUtils -import com.mogo.och.weaknet.database.MyDataBase -import com.mogo.och.weaknet.database.bean.ContrailDataBean -import com.mogo.och.weaknet.database.dao.ContrailDataDao +import com.mogo.och.weaknet.repository.db.MyDataBase +import com.mogo.och.weaknet.repository.db.bean.ContrailDataBean +import com.mogo.och.weaknet.repository.db.dao.ContrailDataDao object ContraiRepository { diff --git a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/database/repository/DbThreadUtils.kt b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/db/repository/DbThreadUtils.kt similarity index 83% rename from OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/database/repository/DbThreadUtils.kt rename to OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/db/repository/DbThreadUtils.kt index f84869af13..ca65daada8 100644 --- a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/database/repository/DbThreadUtils.kt +++ b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/db/repository/DbThreadUtils.kt @@ -1,4 +1,4 @@ -package com.mogo.och.weaknet.database.repository +package com.mogo.och.weaknet.repository.db.repository import com.mogo.eagle.core.utilcode.util.ThreadUtils diff --git a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/database/repository/EventRepository.kt b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/db/repository/EventRepository.kt similarity index 95% rename from OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/database/repository/EventRepository.kt rename to OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/db/repository/EventRepository.kt index a1c26b39f6..502553854e 100644 --- a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/database/repository/EventRepository.kt +++ b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/db/repository/EventRepository.kt @@ -1,11 +1,11 @@ -package com.mogo.och.weaknet.database.repository +package com.mogo.och.weaknet.repository.db.repository import com.mogo.och.common.module.biz.login.LoginStatusManager import com.mogo.och.common.module.manager.logchainanalytic.OchChainLogManager import com.mogo.och.common.module.utils.DateTimeUtil -import com.mogo.och.weaknet.database.MyDataBase -import com.mogo.och.weaknet.database.bean.EventDataBean -import com.mogo.och.weaknet.database.dao.EventDataDao +import com.mogo.och.weaknet.repository.db.MyDataBase +import com.mogo.och.weaknet.repository.db.bean.EventDataBean +import com.mogo.och.weaknet.repository.db.dao.EventDataDao import io.reactivex.Observable diff --git a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/database/repository/LineRepository.kt b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/db/repository/LineRepository.kt similarity index 93% rename from OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/database/repository/LineRepository.kt rename to OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/db/repository/LineRepository.kt index e60cd8a156..7d6024c8fa 100644 --- a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/database/repository/LineRepository.kt +++ b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/db/repository/LineRepository.kt @@ -1,9 +1,9 @@ -package com.mogo.och.weaknet.database.repository +package com.mogo.och.weaknet.repository.db.repository import com.mogo.och.common.module.manager.logchainanalytic.OchChainLogManager -import com.mogo.och.weaknet.database.MyDataBase -import com.mogo.och.weaknet.database.bean.LineDataBean -import com.mogo.och.weaknet.database.dao.LineDataDao +import com.mogo.och.weaknet.repository.db.MyDataBase +import com.mogo.och.weaknet.repository.db.bean.LineDataBean +import com.mogo.och.weaknet.repository.db.dao.LineDataDao import io.reactivex.Observable object LineRepository { diff --git a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/database/repository/SiteRepository.kt b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/db/repository/SiteRepository.kt similarity index 84% rename from OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/database/repository/SiteRepository.kt rename to OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/db/repository/SiteRepository.kt index 2e205feebb..7891d7a57b 100644 --- a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/database/repository/SiteRepository.kt +++ b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/db/repository/SiteRepository.kt @@ -1,10 +1,9 @@ -package com.mogo.och.weaknet.database.repository +package com.mogo.och.weaknet.repository.db.repository import com.mogo.eagle.core.network.utils.digest.DigestUtils -import com.mogo.eagle.core.utilcode.util.ThreadUtils -import com.mogo.och.weaknet.database.MyDataBase -import com.mogo.och.weaknet.database.bean.SiteDataBean -import com.mogo.och.weaknet.database.dao.SiteDataDao +import com.mogo.och.weaknet.repository.db.MyDataBase +import com.mogo.och.weaknet.repository.db.bean.SiteDataBean +import com.mogo.och.weaknet.repository.db.dao.SiteDataDao object SiteRepository { diff --git a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/database/repository/TaskRepository.kt b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/db/repository/TaskRepository.kt similarity index 95% rename from OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/database/repository/TaskRepository.kt rename to OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/db/repository/TaskRepository.kt index 89ad00b521..494d10e2cf 100644 --- a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/database/repository/TaskRepository.kt +++ b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/db/repository/TaskRepository.kt @@ -1,4 +1,4 @@ -package com.mogo.och.weaknet.database.repository +package com.mogo.och.weaknet.repository.db.repository import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger @@ -6,10 +6,10 @@ import com.mogo.eagle.core.utilcode.util.TAG import com.mogo.och.common.module.manager.logchainanalytic.OchChainLogManager import com.mogo.och.common.module.manager.loop.BizLoopManager import com.mogo.och.common.module.utils.DateTimeUtil -import com.mogo.och.weaknet.database.MyDataBase -import com.mogo.och.weaknet.database.bean.TaskDataBean -import com.mogo.och.weaknet.database.dao.TaskDataDao -import com.mogo.och.weaknet.database.exception.DataException +import com.mogo.och.weaknet.repository.db.MyDataBase +import com.mogo.och.weaknet.repository.db.bean.TaskDataBean +import com.mogo.och.weaknet.repository.db.dao.TaskDataDao +import com.mogo.och.weaknet.repository.db.exception.DataException import io.reactivex.Observable object TaskRepository { diff --git a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/database/repository/TaskSiteRepository.kt b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/db/repository/TaskSiteRepository.kt similarity index 90% rename from OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/database/repository/TaskSiteRepository.kt rename to OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/db/repository/TaskSiteRepository.kt index 1437e42c87..9c7085cc2a 100644 --- a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/database/repository/TaskSiteRepository.kt +++ b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/db/repository/TaskSiteRepository.kt @@ -1,12 +1,12 @@ -package com.mogo.och.weaknet.database.repository +package com.mogo.och.weaknet.repository.db.repository import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger import com.mogo.eagle.core.utilcode.util.TAG import com.mogo.och.common.module.manager.logchainanalytic.OchChainLogManager -import com.mogo.och.weaknet.database.MyDataBase -import com.mogo.och.weaknet.database.bean.TaskSiteDataBean -import com.mogo.och.weaknet.database.dao.TaskSiteDataDao -import com.mogo.och.weaknet.database.exception.DataException +import com.mogo.och.weaknet.repository.db.MyDataBase +import com.mogo.och.weaknet.repository.db.bean.TaskSiteDataBean +import com.mogo.och.weaknet.repository.db.dao.TaskSiteDataDao +import com.mogo.och.weaknet.repository.db.exception.DataException object TaskSiteRepository { diff --git a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/database/transform/DataBaseTransform.kt b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/db/transform/DataBaseTransform.kt similarity index 71% rename from OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/database/transform/DataBaseTransform.kt rename to OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/db/transform/DataBaseTransform.kt index 7bebd1c72b..24aec899ad 100644 --- a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/database/transform/DataBaseTransform.kt +++ b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/db/transform/DataBaseTransform.kt @@ -1,18 +1,9 @@ -package com.mogo.och.weaknet.database.transform +package com.mogo.och.weaknet.repository.db.transform -import com.mogo.cloud.passport.MoGoAiCloudClient -import com.mogo.eagle.core.data.BaseData -import com.mogo.eagle.core.data.config.FunctionBuildConfig -import com.mogo.eagle.core.utilcode.mogo.AppIdentityModeUtils -import com.mogo.och.common.module.biz.login.LoginStatusEnum -import com.mogo.och.common.module.biz.login.LoginStatusManager -import com.mogo.och.common.module.network.interceptor.FRetryWithTime -import com.mogo.och.common.module.network.interceptor.OchCommonRetryException -import com.mogo.och.common.module.network.interceptor.RetryWithTime import com.mogo.och.weaknet.bean.BusQueryLineTaskResponse import com.mogo.och.weaknet.bean.BusQueryLinesResponse -import com.mogo.och.weaknet.database.bean.LineDataBean -import com.mogo.och.weaknet.database.bean.TaskDataBean +import com.mogo.och.weaknet.repository.db.bean.LineDataBean +import com.mogo.och.weaknet.repository.db.bean.TaskDataBean import io.reactivex.Observable import io.reactivex.ObservableSource import io.reactivex.android.schedulers.AndroidSchedulers diff --git a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/ui/bizswitch/SwtichBizeModel.kt b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/ui/bizswitch/SwtichBizeModel.kt index 373f0a2b50..c4808b875c 100644 --- a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/ui/bizswitch/SwtichBizeModel.kt +++ b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/ui/bizswitch/SwtichBizeModel.kt @@ -3,10 +3,8 @@ package com.mogo.och.weaknet.ui.bizswitch import androidx.lifecycle.ViewModel import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger import com.mogo.eagle.core.utilcode.util.ThreadUtils -import com.mogo.och.data.bean.BusStationBean import com.mogo.och.weaknet.bean.BusQueryLinesResponse import com.mogo.och.weaknet.callback.IBusLinesCallback -import com.mogo.och.weaknet.database.bean.TaskDataBean import com.mogo.och.weaknet.model.BusLineModel /** From 3963078e72adb553936daeaa48f6db2ca5b38b10 Mon Sep 17 00:00:00 2001 From: EmArrow Date: Wed, 18 Sep 2024 15:23:49 +0800 Subject: [PATCH 5/7] [6.7.0] wait to finish --- app/build.gradle | 2 +- .../function/hmi/ui/tools/OfflineMapDialog.kt | 25 +--- .../drawable-nodpi/icon_map_cache_failed.png | Bin 0 -> 18459 bytes .../drawable-nodpi/icon_map_cache_success.png | Bin 0 -> 18389 bytes .../res/drawable-nodpi/icon_map_update.png | Bin 0 -> 17686 bytes .../main/res/drawable/bg_map_offline_btn.xml | 6 + .../res/drawable/bg_map_offline_cache.xml | 7 ++ .../main/res/layout/dialog_offline_map.xml | 108 +++++++----------- .../src/main/res/values/color.xml | 3 + 9 files changed, 64 insertions(+), 87 deletions(-) create mode 100644 core/function-impl/mogo-core-function-hmi/src/main/res/drawable-nodpi/icon_map_cache_failed.png create mode 100644 core/function-impl/mogo-core-function-hmi/src/main/res/drawable-nodpi/icon_map_cache_success.png create mode 100644 core/function-impl/mogo-core-function-hmi/src/main/res/drawable-nodpi/icon_map_update.png create mode 100644 core/function-impl/mogo-core-function-hmi/src/main/res/drawable/bg_map_offline_btn.xml create mode 100644 core/function-impl/mogo-core-function-hmi/src/main/res/drawable/bg_map_offline_cache.xml diff --git a/app/build.gradle b/app/build.gradle index 101a12d2e0..d356c96e47 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -8,7 +8,7 @@ apply plugin: 'kotlin-android' apply plugin: 'kotlin-android-extensions' apply plugin: 'kotlin-kapt' -apply from: rootProject.file('gradle/bytex/bytex.gradle') +//apply from: rootProject.file('gradle/bytex/bytex.gradle') Properties properties = new Properties() properties.load(project.rootProject.file("gradle.properties").newDataInputStream()) diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/tools/OfflineMapDialog.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/tools/OfflineMapDialog.kt index 368d5fb89a..b01366a634 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/tools/OfflineMapDialog.kt +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/tools/OfflineMapDialog.kt @@ -26,13 +26,10 @@ class OfflineMapDialog(context: Context) : BaseFloatDialog(context) { private const val TAG = "OfflineMapDialog" } - private var roundRootLayout: ConstraintLayout? = null private var offlineTitleView: TextView? = null private var leftView: TextView? = null private var rightView: TextView? = null private var okView: TextView? = null - private var vertLineView: View? = null - private var horizontalLineView: View? = null private var cacheTipView: TextView? = null private var progressBar: ProgressBar? = null @@ -48,22 +45,18 @@ class OfflineMapDialog(context: Context) : BaseFloatDialog(context) { init { setContentView(R.layout.dialog_offline_map) setCanceledOnTouchOutside(true) - initView() } private fun initView() { - roundRootLayout = findViewById(R.id.roundRootLayout) offlineTitleView = findViewById(R.id.tv_cache_title) progressBar = findViewById(R.id.progressBar) downloadPercentView = findViewById(R.id.tvDownloadProgress) leftView = findViewById(R.id.tv_cache_confirm) rightView = findViewById(R.id.tv_cache_cancel) okView = findViewById(R.id.tv_cache_ok) - vertLineView = findViewById(R.id.view_vertical_line) - horizontalLineView = findViewById(R.id.view_horizontal_line) cacheTipView = findViewById(R.id.tv_cache_tips) - downloadResultImg = findViewById(R.id.iv_download_Status) + downloadResultImg = findViewById(R.id.ivDownLoadStatus) leftView?.setOnClickListener { when { @@ -142,20 +135,13 @@ class OfflineMapDialog(context: Context) : BaseFloatDialog(context) { } private fun change2NewStyle() { - roundRootLayout?.layoutParams?.width = AutoSizeUtils.dp2px(context, 1110f) - roundRootLayout?.layoutParams?.height = AutoSizeUtils.dp2px(context, 668f) - val titleParams = offlineTitleView?.layoutParams as ConstraintLayout.LayoutParams - titleParams.topMargin = AutoSizeUtils.dp2px(context, 51f) - - val horizontalLineParams = horizontalLineView?.layoutParams as ConstraintLayout.LayoutParams - horizontalLineParams.topMargin = AutoSizeUtils.dp2px(context, 374f) + titleParams.topMargin = AutoSizeUtils.dp2px(context, 52f) progressBar?.visibility = View.VISIBLE downloadPercentView?.visibility = View.VISIBLE okView?.visibility = View.VISIBLE - vertLineView?.visibility = View.GONE leftView?.visibility = View.GONE rightView?.visibility = View.GONE cacheTipView?.visibility = View.INVISIBLE @@ -169,10 +155,8 @@ class OfflineMapDialog(context: Context) : BaseFloatDialog(context) { isLoading -> { okView?.text = context.resources.getString(R.string.cancel) offlineTitleView?.text = context.resources.getString(R.string.offline_downloading) - downloadResultImg?.visibility = View.GONE } else -> { - downloadResultImg?.visibility = View.VISIBLE when { isSuccess -> { okView?.visibility = View.VISIBLE @@ -182,7 +166,7 @@ class OfflineMapDialog(context: Context) : BaseFloatDialog(context) { progressBar?.visibility = View.GONE downloadPercentView?.visibility = View.GONE downloadResultImg?.background = - ContextCompat.getDrawable(context, R.drawable.download_success_icon) + ContextCompat.getDrawable(context, R.drawable.icon_map_cache_success) hmiAction("$M_HMI$TAG", mapOf("cacheMap" to true)) } else -> { @@ -196,10 +180,9 @@ class OfflineMapDialog(context: Context) : BaseFloatDialog(context) { leftView?.visibility = View.VISIBLE leftView?.text = context.resources.getString(R.string.ok_tip) rightView?.visibility = View.VISIBLE - vertLineView?.visibility = View.VISIBLE rightView?.text = context.resources.getString(R.string.retry) downloadResultImg?.background = - ContextCompat.getDrawable(context, R.drawable.download_fail_icon) + ContextCompat.getDrawable(context, R.drawable.icon_map_cache_failed) hmiAction("$M_HMI$TAG", mapOf("cacheMap" to false)) } } diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/drawable-nodpi/icon_map_cache_failed.png b/core/function-impl/mogo-core-function-hmi/src/main/res/drawable-nodpi/icon_map_cache_failed.png new file mode 100644 index 0000000000000000000000000000000000000000..162e8d55cab4be30e6eb3692c44e4f0e7909df5e GIT binary patch literal 18459 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 z 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 literal 0 HcmV?d00001 diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/drawable-nodpi/icon_map_update.png b/core/function-impl/mogo-core-function-hmi/src/main/res/drawable-nodpi/icon_map_update.png new file mode 100644 index 0000000000000000000000000000000000000000..b493e772f5da06538ad5e931810a70c3db534e9b GIT binary patch literal 17686 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 VgyO#~q&xrs002ovPDHLkV1gEKIz0dY literal 0 HcmV?d00001 diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/drawable/bg_map_offline_btn.xml b/core/function-impl/mogo-core-function-hmi/src/main/res/drawable/bg_map_offline_btn.xml new file mode 100644 index 0000000000..e4d8d1c248 --- /dev/null +++ b/core/function-impl/mogo-core-function-hmi/src/main/res/drawable/bg_map_offline_btn.xml @@ -0,0 +1,6 @@ + + + + + + diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/drawable/bg_map_offline_cache.xml b/core/function-impl/mogo-core-function-hmi/src/main/res/drawable/bg_map_offline_cache.xml new file mode 100644 index 0000000000..f6bce26ddf --- /dev/null +++ b/core/function-impl/mogo-core-function-hmi/src/main/res/drawable/bg_map_offline_cache.xml @@ -0,0 +1,7 @@ + + + + + + + diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/layout/dialog_offline_map.xml b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/dialog_offline_map.xml index 6ae72b0a13..8309758064 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/res/layout/dialog_offline_map.xml +++ b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/dialog_offline_map.xml @@ -2,121 +2,99 @@ + + + app:layout_constraintTop_toBottomOf="@+id/ivDownLoadStatus" /> + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toBottomOf="@id/tv_cache_title" /> - - - - - - + app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintStart_toStartOf="parent" + app:layout_constraintTop_toBottomOf="@id/progressBar" /> + app:layout_constraintLeft_toLeftOf="parent" /> + android:layout_marginEnd="@dimen/dp_65" + android:layout_marginBottom="@dimen/dp_62" + app:layout_constraintRight_toRightOf="parent"/> #131415 #B2BED9 #FF1943 + #3B3D44 + #2E323A + #996C6C6C #27FFFFFF #1E111111 #FF213757 From dbf2f160a1e5886721d6ac03bb6d5ef8f6a76854 Mon Sep 17 00:00:00 2001 From: yangyakun Date: Wed, 18 Sep 2024 15:41:11 +0800 Subject: [PATCH 6/7] =?UTF-8?q?[6.7.0]=20[fea]=20[fragment=20net=20?= =?UTF-8?q?=E8=BF=81=E7=A7=BB]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/mogo/och/weaknet/ShuttleDriverProvider.kt | 2 +- .../main/java/com/mogo/och/weaknet/model/BusLineModel.kt | 7 +++---- .../src/main/java/com/mogo/och/weaknet/model/EventModel.kt | 2 +- .../main/java/com/mogo/och/weaknet/model/TicketModel.kt | 2 +- .../och/weaknet/{ => repository}/net/IBascApiService.java | 2 +- .../weaknet/{ => repository}/net/OrderServiceManager.kt | 3 +-- .../och/weaknet/{presenter => ui/fragment}/BusPresenter.kt | 3 +-- .../mogo/och/weaknet/{ => ui}/fragment/ShuttleFragment.kt | 3 +-- 8 files changed, 10 insertions(+), 14 deletions(-) rename OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/{ => repository}/net/IBascApiService.java (98%) rename OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/{ => repository}/net/OrderServiceManager.kt (97%) rename OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/{presenter => ui/fragment}/BusPresenter.kt (98%) rename OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/{ => ui}/fragment/ShuttleFragment.kt (99%) diff --git a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/ShuttleDriverProvider.kt b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/ShuttleDriverProvider.kt index 41643c923d..e7823695b4 100644 --- a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/ShuttleDriverProvider.kt +++ b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/ShuttleDriverProvider.kt @@ -13,7 +13,7 @@ import com.mogo.och.weaknet.repository.db.repository.EventRepository import com.mogo.och.weaknet.repository.db.repository.LineRepository import com.mogo.och.weaknet.repository.db.repository.TaskRepository import com.mogo.och.weaknet.repository.db.repository.TaskSiteRepository -import com.mogo.och.weaknet.fragment.ShuttleFragment +import com.mogo.och.weaknet.ui.fragment.ShuttleFragment import com.mogo.och.weaknet.model.BusLineModel import com.mogo.och.weaknet.util.BusAnalyticsManager 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 6ac839d90b..3d77a547bd 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 @@ -26,7 +26,7 @@ import com.mogo.och.weaknet.bean.BusRoutesResponse import com.mogo.och.weaknet.bean.CarExecutableTaskResponse import com.mogo.och.weaknet.callback.IBusLinesCallback import com.mogo.och.weaknet.constant.BusConst -import com.mogo.och.weaknet.net.OrderServiceManager +import com.mogo.och.weaknet.repository.net.OrderServiceManager import com.mogo.och.weaknet.repository.db.bean.ContrailDataBean import com.mogo.och.weaknet.repository.db.bean.TaskDataBean import com.mogo.och.weaknet.repository.db.bean.TaskSiteDataBean @@ -53,7 +53,6 @@ object BusLineModel { private val mBusLinesCallbackMap: MutableMap = ConcurrentHashMap() private const val TAG = "BusLineModel" - private const val LoopCarInfo = "LoopCarInfo" // 判断接口是否变化 private const val executableChangeMd5 = "EXECUTABLECHANGEMD5" @@ -64,7 +63,7 @@ object BusLineModel { var currentTask: TaskDataBean?=null // 当前任务的站点列表 - var stationList:MutableList? = mutableListOf() + var stationList:MutableList? = mutableListOf() private val isRequesting = AtomicBoolean(false) @@ -95,7 +94,7 @@ object BusLineModel { } @JvmStatic - fun setBusLinesCallback(tag:String,callback: IBusLinesCallback?) { + fun setBusLinesCallback(tag:String?,callback: IBusLinesCallback?) { if (tag == null || "" == tag) return if (callback == null) { mBusLinesCallbackMap.remove(tag) diff --git a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/model/EventModel.kt b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/model/EventModel.kt index 79091b7d46..b2226cd69e 100644 --- a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/model/EventModel.kt +++ b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/model/EventModel.kt @@ -9,7 +9,7 @@ import com.mogo.och.common.module.network.OchCommonServiceCallback import com.mogo.och.weaknet.bean.ShuttleEventRequest import com.mogo.och.weaknet.bean.WaitUploadLine import com.mogo.och.weaknet.bean.WaitUploadTask -import com.mogo.och.weaknet.net.OrderServiceManager +import com.mogo.och.weaknet.repository.net.OrderServiceManager import com.mogo.och.weaknet.repository.db.bean.EventDataBean import com.mogo.och.weaknet.repository.db.repository.EventRepository import io.reactivex.Observable 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 ec9ec79a11..68411ac2ca 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 @@ -24,7 +24,7 @@ import com.mogo.och.common.module.manager.socket.lan.bean.WriteOffMsg import com.mogo.och.common.module.network.OchCommonServiceCallback import com.mogo.och.weaknet.bean.WriteOffCountResponse import com.mogo.och.weaknet.bean.WriteOffPassenger -import com.mogo.och.weaknet.net.OrderServiceManager +import com.mogo.och.weaknet.repository.net.OrderServiceManager import com.mogo.och.weaknet.util.ShuttleVoiceManager import io.reactivex.Observable import io.reactivex.ObservableEmitter diff --git a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/net/IBascApiService.java b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/net/IBascApiService.java similarity index 98% rename from OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/net/IBascApiService.java rename to OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/net/IBascApiService.java index fd0ae91808..b5ede161d0 100644 --- a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/net/IBascApiService.java +++ b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/net/IBascApiService.java @@ -1,4 +1,4 @@ -package com.mogo.och.weaknet.net; +package com.mogo.och.weaknet.repository.net; import com.mogo.eagle.core.data.BaseData; import com.mogo.och.weaknet.bean.BusQueryLineStationsRequest; diff --git a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/net/OrderServiceManager.kt b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/net/OrderServiceManager.kt similarity index 97% rename from OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/net/OrderServiceManager.kt rename to OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/net/OrderServiceManager.kt index be3910d726..74d4e24810 100644 --- a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/net/OrderServiceManager.kt +++ b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/repository/net/OrderServiceManager.kt @@ -1,4 +1,4 @@ -package com.mogo.och.weaknet.net +package com.mogo.och.weaknet.repository.net import android.content.Context import com.mogo.cloud.passport.MoGoAiCloudClientConfig @@ -9,7 +9,6 @@ import com.mogo.och.common.module.constant.OchCommonConst import com.mogo.och.common.module.network.OchCommonServiceCallback import com.mogo.och.common.module.network.OchCommonSubscribeImpl import com.mogo.och.common.module.network.interceptor.transformIoTry -import com.mogo.och.common.module.network.interceptor.transformTry import com.mogo.och.weaknet.bean.BusQueryLineStationsRequest import com.mogo.och.weaknet.bean.BusRoutesResponse import com.mogo.och.weaknet.bean.CarExecutableTaskResponse diff --git a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/presenter/BusPresenter.kt b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/ui/fragment/BusPresenter.kt similarity index 98% rename from OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/presenter/BusPresenter.kt rename to OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/ui/fragment/BusPresenter.kt index 2a7bd1a0c1..333d1fc8fc 100644 --- a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/presenter/BusPresenter.kt +++ b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/ui/fragment/BusPresenter.kt @@ -1,4 +1,4 @@ -package com.mogo.och.weaknet.presenter +package com.mogo.och.weaknet.ui.fragment import androidx.lifecycle.LifecycleOwner import com.mogo.commons.AbsMogoApplication @@ -21,7 +21,6 @@ import com.mogo.och.common.module.manager.autopilot.autopilot.IOchAutopilotStatu import com.mogo.och.common.module.manager.autopilot.autopilot.OchAutoPilotStatusListenerManager import com.mogo.och.data.bean.BusStationBean import com.mogo.och.weaknet.callback.IBusADASStatusCallback -import com.mogo.och.weaknet.fragment.ShuttleFragment import com.mogo.och.weaknet.model.BusLineModel import com.mogo.och.weaknet.model.OrderModel import com.mogo.och.weaknet.util.BusTrajectoryManager diff --git a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/fragment/ShuttleFragment.kt b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/ui/fragment/ShuttleFragment.kt similarity index 99% rename from OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/fragment/ShuttleFragment.kt rename to OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/ui/fragment/ShuttleFragment.kt index 842c037818..f0369d4ebc 100644 --- a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/fragment/ShuttleFragment.kt +++ b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/ui/fragment/ShuttleFragment.kt @@ -1,4 +1,4 @@ -package com.mogo.och.weaknet.fragment +package com.mogo.och.weaknet.ui.fragment import android.animation.ObjectAnimator import android.graphics.BitmapFactory @@ -41,7 +41,6 @@ import com.mogo.och.common.module.utils.createQRCodeWithPicture import com.mogo.och.common.module.wigets.BindQRCodeDialog import com.mogo.och.shuttle.weaknet.R import com.mogo.och.weaknet.constant.BusConst -import com.mogo.och.weaknet.presenter.BusPresenter import com.mogo.och.weaknet.ui.taskrunned.RunningTaskManager import com.mogo.och.weaknet.view.BizMapView import me.jessyan.autosize.utils.AutoSizeUtils From d159d9f9759df3df0be1f5412fb9e30bbb3ccc29 Mon Sep 17 00:00:00 2001 From: yangyakun Date: Wed, 18 Sep 2024 16:00:30 +0800 Subject: [PATCH 7/7] [6.7.0] [fea] --- .../mogo/och/weaknet/model/BusLineModel.kt | 66 +++++++++---------- .../com/mogo/och/weaknet/model/EventModel.kt | 8 +-- .../com/mogo/och/weaknet/model/OrderModel.kt | 38 ++++------- .../weaknet/ui/switchline/SwtichLineModel.kt | 7 +- .../ui/taskrunning/TaskRunningModel.kt | 5 -- 5 files changed, 45 insertions(+), 79 deletions(-) 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 3d77a547bd..bc8d33adfd 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 @@ -7,7 +7,6 @@ import com.mogo.commons.storage.SharedPrefsMgr import com.mogo.eagle.core.data.config.FunctionBuildConfig import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotControlManager 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 @@ -55,10 +54,10 @@ object BusLineModel { private const val TAG = "BusLineModel" // 判断接口是否变化 - private const val executableChangeMd5 = "EXECUTABLECHANGEMD5" + private const val EXECUTABLECHANGEMD5 = "EXECUTABLECHANGEMD5" // 展示上一次刷新时间 - const val executableChangeTime = "executablechangetime" + const val EXECUTABLECHANGETIME = "executablechangetime" var currentTask: TaskDataBean?=null @@ -67,11 +66,7 @@ object BusLineModel { private val isRequesting = AtomicBoolean(false) - private val loopQueryInfo = object :Runnable{ - override fun run() { - queryCarExecutableTaskList(true) - } - } + private val loopQueryInfo = Runnable { queryCarExecutableTaskList(true) } // 当前站点 @JvmStatic @@ -126,24 +121,24 @@ object BusLineModel { // 第一次过滤 请求返回值的md5 val currentRequest = DigestUtils.md5Hex(data.data.toString()) val lastChangeMd5 = - SharedPrefsMgr.getInstance().getString(executableChangeMd5) - val lastUpdateTime = SharedPrefsMgr.getInstance().getLong(executableChangeTime, 0) + SharedPrefsMgr.getInstance().getString(EXECUTABLECHANGEMD5) + val lastUpdateTime = SharedPrefsMgr.getInstance().getLong(EXECUTABLECHANGETIME, 0) val currentTimeStamp = DateTimeUtil.getCurrentTimeStamp() - SharedPrefsMgr.getInstance().putLong(executableChangeTime, currentTimeStamp) + SharedPrefsMgr.getInstance().putLong(EXECUTABLECHANGETIME, currentTimeStamp) val sameDay = DateTimeUtil.isSameDay(currentTimeStamp, lastUpdateTime) - mBusLinesCallbackMap.forEach { - it.value.onRefreshSuccess(currentTimeStamp) + mBusLinesCallbackMap.forEach {callback-> + callback.value.onRefreshSuccess(currentTimeStamp) } if(isBackground){ if (currentRequest == lastChangeMd5 && sameDay) { return } } - SharedPrefsMgr.getInstance().putString(executableChangeMd5, currentRequest) + SharedPrefsMgr.getInstance().putString(EXECUTABLECHANGEMD5, currentRequest) OchChainLogManager.writeChainLog( "数据发生变化", - "接口信息发生变化 ${lastChangeMd5} new md5${currentRequest}" + "接口信息发生变化 $lastChangeMd5 new md5${currentRequest}" ) CarExecutableTaskResponse.save2Db(data) } @@ -153,9 +148,9 @@ object BusLineModel { BizLoopManager.postDelayed(loopQueryInfo,60_000) if(!isBackground){ if (!NetworkUtils.isConnected(mContext)) { - ToastUtils.showShort(ResourcesUtils.getString(R.string.network_error_tip)); + ToastUtils.showShort(ResourcesUtils.getString(R.string.network_error_tip)) } else { - ToastUtils.showShort(ResourcesUtils.getString(R.string.request_error_tip)); + ToastUtils.showShort(ResourcesUtils.getString(R.string.request_error_tip)) } } } @@ -165,9 +160,9 @@ object BusLineModel { BizLoopManager.postDelayed(loopQueryInfo,60_000) if(!isBackground){ if (!NetworkUtils.isConnected(mContext)) { - ToastUtils.showShort("网络异常,请稍后重试"); + ToastUtils.showShort("网络异常,请稍后重试") }else { - ToastUtils.showShort(failMsg); + ToastUtils.showShort(failMsg) } } @@ -186,15 +181,15 @@ object BusLineModel { ?.transform4DataBase(FRetryWithTime11()) ?.subscribe(object : Observer> { override fun onSubscribe(d: Disposable) { - CallerLogger.d(TAG, "onSubscribe") + d(TAG, "onSubscribe") } override fun onError(e: Throwable) { - CallerLogger.d(TAG, "onError${e.printStackTrace()}") + d(TAG, "onError${e.printStackTrace()}") } override fun onComplete() { - CallerLogger.d(TAG, "onComplete") + d(TAG, "onComplete") } override fun onNext(data: List) { @@ -209,7 +204,6 @@ object BusLineModel { /** * 通过线路id 查询线路排班表 * @param lineId 线路ID - * @param position 位置 */ @JvmStatic fun queryBusLineTasksById(lineId: Long) { @@ -217,15 +211,15 @@ object BusLineModel { ?.transform4DataBase(TransformTask()) ?.subscribe(object : Observer> { override fun onSubscribe(d: Disposable) { - CallerLogger.d(TAG, "onSubscribe") + d(TAG, "onSubscribe") } override fun onError(e: Throwable) { - CallerLogger.d(TAG, "onError${e.printStackTrace()}") + d(TAG, "onError${e.printStackTrace()}") } override fun onComplete() { - CallerLogger.d(TAG, "onComplete") + d(TAG, "onComplete") } override fun onNext(data: List) { @@ -273,7 +267,7 @@ object BusLineModel { if (runningTaskInfo.isNullOrEmpty()) { // 本地没有进行中的任务 - CallerLogger.d(TAG,"没有查询到正在运行的任务") + d(TAG,"没有查询到正在运行的任务") loadServerRuningTask() } else if (runningTaskInfo.size > 1) { // 本地有多条正在进行的任务 需要check event @@ -391,17 +385,17 @@ object BusLineModel { override fun onError() { if (!NetworkUtils.isConnected(mContext)) { - ToastUtils.showShort(ResourcesUtils.getString(R.string.network_error_tip)); + ToastUtils.showShort(ResourcesUtils.getString(R.string.network_error_tip)) } else { - ToastUtils.showShort(ResourcesUtils.getString(R.string.request_error_tip)); + ToastUtils.showShort(ResourcesUtils.getString(R.string.request_error_tip)) } } override fun onFail(code: Int, msg: String?) { if (!NetworkUtils.isConnected(mContext)) { - ToastUtils.showShort("网络异常,请稍后重试"); + ToastUtils.showShort("网络异常,请稍后重试") }else { - ToastUtils.showShort(msg); + ToastUtils.showShort(msg) } } }) @@ -484,8 +478,8 @@ object BusLineModel { stationList?.let { startStationIndex+=1 - mBusLinesCallbackMap.forEach { - it.value.onArriveStationSuccess() + mBusLinesCallbackMap.forEach {callback-> + callback.value.onArriveStationSuccess() } val startStation = LineManager.endStation if(startStationIndex+1< it.size){ @@ -496,10 +490,10 @@ object BusLineModel { } fun isLastStation():Boolean?{ - if (stationList.isNullOrEmpty()) { - return null + return if (stationList.isNullOrEmpty()) { + null }else{ - return startStationIndex == stationList!!.size - 1 + startStationIndex == stationList!!.size - 1 } } diff --git a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/model/EventModel.kt b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/model/EventModel.kt index b2226cd69e..9e23939a54 100644 --- a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/model/EventModel.kt +++ b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/model/EventModel.kt @@ -34,11 +34,7 @@ object EventModel : EventRepository.EventCallback { EventRepository.eventCallback = null } - private val loopUpdateInfo = object :Runnable{ - override fun run() { - updateEvent() - } - } + private val loopUpdateInfo = Runnable { updateEvent() } override fun notifySyn() { BizLoopManager.removeCallback(loopUpdateInfo) @@ -114,7 +110,7 @@ object EventModel : EventRepository.EventCallback { val haveSave = result.filter { it.lineId==tempLine.lineId } - if(haveSave.isNullOrEmpty()){ + if(haveSave.isEmpty()){ result.add(tempLine) }else{ haveSave.first().task.add(tempTask) diff --git a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/model/OrderModel.kt b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/model/OrderModel.kt index 35af2dea0f..da566bab0f 100644 --- a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/model/OrderModel.kt +++ b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/model/OrderModel.kt @@ -5,9 +5,6 @@ import android.content.Context import android.text.TextUtils import com.elegant.network.utils.GsonUtil import com.mogo.commons.AbsMogoApplication -import com.mogo.eagle.core.data.autopilot.AutopilotControlParameters -import com.mogo.eagle.core.data.autopilot.AutopilotControlParameters.AutoPilotLine -import com.mogo.eagle.core.data.autopilot.AutopilotControlParameters.AutoPilotLonLat import com.mogo.eagle.core.data.config.FunctionBuildConfig import com.mogo.eagle.core.data.map.MogoLocation import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotStatusListener @@ -53,7 +50,6 @@ import com.mogo.och.common.module.voice.VoiceNotice.showNotice import com.mogo.och.shuttle.weaknet.R import com.mogo.och.weaknet.callback.IBusADASStatusCallback import com.mogo.och.weaknet.constant.BusConst -import com.mogo.och.weaknet.util.BusAnalyticsManager import com.mogo.och.weaknet.util.BusTrajectoryManager import com.mogo.och.weaknet.util.ShuttleVoiceManager @@ -211,7 +207,7 @@ object OrderModel { BusLineModel.loadStartedTaskAndDefaultInfo() if(BusLineModel.stationList.isNullOrEmpty()){ d(M_BUS + TAG, "获取到小巴路线数据:空 ") - LineManager.setLineInfo(null); + LineManager.setLineInfo(null) updateBusStatus() closeBeautificationMode() clearStartAutopilotTag() @@ -239,7 +235,7 @@ object OrderModel { if (station.drivingStatus == BusConst.STATION_STATUS_STOPPED && !station.isLeaving ) { //到达第一站 - arrivingOrArrivedStationIndex = i + arrivingOrArrivedStationIndex = 0 break } } else { @@ -319,7 +315,7 @@ object OrderModel { * 存在Session */ if (!OchAutoPilotManager.canStartAutopilotBySessionId()) { - return; + return } OchAutopilotAnalytics.triggerClickStartAutopilotTime(System.currentTimeMillis()) @@ -371,7 +367,7 @@ object OrderModel { val parameters = LineManager.initAutopilotControlParameters() if (null == parameters) { - e(SceneConstant.M_BUS + TAG, "行程日志-AutopilotControlParameters is empty.") + e(M_BUS + TAG, "行程日志-AutopilotControlParameters is empty.") return } @@ -379,7 +375,7 @@ object OrderModel { triggerUpdateStartAutoPilotSessionId(sessionId) d( - SceneConstant.M_BUS + TAG, + M_BUS + TAG, "行程日志-开启自动驾驶====" + GsonUtil.jsonFromObject(parameters) + " startLatLon=" + parameters.startName + ",endLatLon=" + parameters.endName + "isRestart = " + isRestart @@ -405,7 +401,7 @@ object OrderModel { FunctionBuildConfig.isIgnoreConditionsDrawAutopilotTrajectoryData = false //是否强制绘制引导线 CallerAutoPilotControlManager.setIgnoreConditionDraw(false) // 同步给乘客屏 CallerAutoPilotControlManager.setIPCDemoMode(false) //是否自动启动自驾 - d(SceneConstant.M_BUS + TAG, "美化模式-ignore:置为false") + d(M_BUS + TAG, "美化模式-ignore:置为false") } } @@ -437,8 +433,6 @@ object OrderModel { * 渲染站点信息 * 服务端返回的OchBusRoutesResult逻辑, 离开站为当前站, 到达下一站后才会将下一站置为当前站, * 车机端展示 三站: 中间为即将到到达或者刚到达的站 - * - * @param result */ private fun updateBusStatus() { BusLineModel.stationList?.let { @@ -459,11 +453,7 @@ object OrderModel { BusLineModel.setDemoMode() LineManager.getStartStation { - if (it.isLeaving) { - isGoingToNextStation = true - }else{ - isGoingToNextStation = false - } + isGoingToNextStation = it.isLeaving } ThirdDeviceData.sendTaskDetailsToClients() @@ -523,7 +513,7 @@ object OrderModel { - fun removeTipRunnables() { + private fun removeTipRunnables() { UiThreadHandler.removeCallbacks(tip3Runnable) UiThreadHandler.removeCallbacks(tip1Runnable) } @@ -614,11 +604,11 @@ object OrderModel { } } - fun triggerUpdateStartAutoPilotSessionId(sessionId: Long) { + private fun triggerUpdateStartAutoPilotSessionId(sessionId: Long) { OchAutopilotAnalytics.triggerUpdateStartAutoPilotSessionId(sessionId) } - fun triggerUnableStartAPReasonEvent() { + private fun triggerUnableStartAPReasonEvent() { LineManager.getStationsWithLine { start, end, line -> OchAutopilotAnalytics.triggerUnableStartAPReasonEvent( start.name, end.name,line.lineId.toString() , "", @@ -627,14 +617,8 @@ object OrderModel { } } - private fun clearAutopilotControlParameters() { - d(M_BUS + TAG, "AutopilotControlParameters is clear.") - CallerAutoPilotStatusListenerManager.updateAutopilotControlParameters(null) - } - - - fun setTrajectoryStation(isClean:Boolean) { + private fun setTrajectoryStation(isClean:Boolean) { if(isClean){ TrajectoryAndDistanceManager.setStationPoint(null, null, null) return diff --git a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/ui/switchline/SwtichLineModel.kt b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/ui/switchline/SwtichLineModel.kt index fb99a60e34..9d8bcce85f 100644 --- a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/ui/switchline/SwtichLineModel.kt +++ b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/ui/switchline/SwtichLineModel.kt @@ -2,14 +2,11 @@ package com.mogo.och.weaknet.ui.switchline import androidx.lifecycle.ViewModel import com.mogo.commons.storage.SharedPrefsMgr -import com.mogo.eagle.core.utilcode.util.ThreadUtils 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.OrderModel +import com.mogo.och.weaknet.model.BusLineModel.EXECUTABLECHANGETIME /** * @author XuXinChao @@ -37,7 +34,7 @@ class SwtichLineModel : ViewModel(), IBusLinesCallback { } fun setRefreshTime() { - val lastUpdateTime = SharedPrefsMgr.getInstance().getLong(executableChangeTime, -1) + val lastUpdateTime = SharedPrefsMgr.getInstance().getLong(EXECUTABLECHANGETIME, -1) if(lastUpdateTime>0){ this.onRefreshSuccess(lastUpdateTime) } diff --git a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/ui/taskrunning/TaskRunningModel.kt b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/ui/taskrunning/TaskRunningModel.kt index 57fdf43f32..3205996963 100644 --- a/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/ui/taskrunning/TaskRunningModel.kt +++ b/OCH/shuttle/driver_weaknet/src/main/java/com/mogo/och/weaknet/ui/taskrunning/TaskRunningModel.kt @@ -1,14 +1,9 @@ package com.mogo.och.weaknet.ui.taskrunning import androidx.lifecycle.ViewModel -import com.mogo.commons.storage.SharedPrefsMgr -import com.mogo.eagle.core.utilcode.util.ThreadUtils import com.mogo.och.common.module.manager.loop.BizLoopManager -import com.mogo.och.common.module.utils.DateTimeUtil -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.OrderModel /**