From 2c2fb65d1e408fef5aadb5caed56f36c200dde8b Mon Sep 17 00:00:00 2001 From: wangmingjun Date: Thu, 30 Mar 2023 10:54:59 +0800 Subject: [PATCH 01/14] =?UTF-8?q?[opt]=20=E5=8F=B8=E4=B9=98=E5=BC=B1?= =?UTF-8?q?=E7=BD=91=E7=BC=93=E5=AD=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- OCH/mogo-och-common-module/build.gradle | 2 + .../och/common/module/bean/AppConnectMsg.kt | 6 +- .../och/common/module/bean/dpmsg/DPMsgType.kt | 3 +- .../och/common/module/utils/DateTimeUtil.java | 9 + OCH/mogo-och-data/.gitignore | 1 + OCH/mogo-och-data/build.gradle | 46 ++++ OCH/mogo-och-data/consumer-rules.pro | 0 OCH/mogo-och-data/proguard-rules.pro | 21 ++ .../mogo/och/data/ExampleInstrumentedTest.kt | 24 +++ .../src/main/AndroidManifest.xml | 5 + .../com/mogo/och/data/bean/BusCacheData.kt | 12 ++ .../mogo/och/data}/bean/BusRoutesResult.java | 24 ++- .../mogo/och/data}/bean/BusStationBean.java | 2 +- .../data/manager/cache/CacheDataManager.kt | 28 +++ .../java/com/mogo/och/data/ExampleUnitTest.kt | 17 ++ OCH/mogo-och-shuttle-passenger/build.gradle | 1 + .../BusPassengerLineStationsAdapter.java | 9 +- .../bean/BusPassengerRoutesResponse.java | 7 +- .../bean/BusPassengerRoutesResult.java | 6 + .../IBusPassengerRouteLineInfoCallback.java | 4 +- .../passenger/model/BusPassengerModel.java | 97 +++++++-- .../presenter/BaseBusPassengerPresenter.java | 3 +- .../ui/BusPassengerRouteFragment.java | 7 +- OCH/mogo-och-shuttle/build.gradle | 1 + .../och/bus/bean/BusCloseTaskRequest.java | 3 + .../bus/bean/BusResetDrivingLineRequest.java | 3 + .../mogo/och/bus/bean/BusRoutesResponse.java | 1 + .../bus/bean/BusUpdateSiteStatusRequest.java | 3 + .../callback/IRefreshBusStationsCallback.java | 2 +- .../och/bus/fragment/BaseBusTabFragment.java | 4 +- .../mogo/och/bus/fragment/BusFragment.java | 2 +- .../com/mogo/och/bus/model/OrderModel.java | 200 +++++++++++++----- .../mogo/och/bus/presenter/BusPresenter.java | 5 +- .../och/bus/util/BusTrajectoryManager.java | 3 +- settings.gradle | 1 + 35 files changed, 455 insertions(+), 107 deletions(-) create mode 100644 OCH/mogo-och-data/.gitignore create mode 100644 OCH/mogo-och-data/build.gradle create mode 100644 OCH/mogo-och-data/consumer-rules.pro create mode 100644 OCH/mogo-och-data/proguard-rules.pro create mode 100644 OCH/mogo-och-data/src/androidTest/java/com/mogo/och/data/ExampleInstrumentedTest.kt create mode 100644 OCH/mogo-och-data/src/main/AndroidManifest.xml create mode 100644 OCH/mogo-och-data/src/main/java/com/mogo/och/data/bean/BusCacheData.kt rename OCH/{mogo-och-shuttle/src/main/java/com/mogo/och/bus => mogo-och-data/src/main/java/com/mogo/och/data}/bean/BusRoutesResult.java (82%) rename OCH/{mogo-och-shuttle/src/main/java/com/mogo/och/bus => mogo-och-data/src/main/java/com/mogo/och/data}/bean/BusStationBean.java (98%) create mode 100644 OCH/mogo-och-data/src/main/java/com/mogo/och/data/manager/cache/CacheDataManager.kt create mode 100644 OCH/mogo-och-data/src/test/java/com/mogo/och/data/ExampleUnitTest.kt diff --git a/OCH/mogo-och-common-module/build.gradle b/OCH/mogo-och-common-module/build.gradle index 24b27d9db3..7459240da0 100644 --- a/OCH/mogo-och-common-module/build.gradle +++ b/OCH/mogo-och-common-module/build.gradle @@ -57,6 +57,8 @@ dependencies { implementation rootProject.ext.dependencies.arouter kapt rootProject.ext.dependencies.aroutercompiler + api project(":OCH:mogo-och-data") + if (Boolean.valueOf(USE_MAVEN_PACKAGE)) { api rootProject.ext.dependencies.mogoutils api rootProject.ext.dependencies.mogocommons diff --git a/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/bean/AppConnectMsg.kt b/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/bean/AppConnectMsg.kt index 402557066e..2f01265325 100644 --- a/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/bean/AppConnectMsg.kt +++ b/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/bean/AppConnectMsg.kt @@ -1,7 +1,11 @@ package com.mogo.och.common.module.bean +import com.mogo.och.common.module.bean.dpmsg.DPMsgType + /** * @author: wangmingjun * @date: 2023/2/14 */ -data class AppConnectMsg(var isViewShow: Boolean,var isPlay: Boolean,var msg: String) +data class AppConnectMsg(var isViewShow: Boolean,var isPlay: Boolean,var msg: String + ,var type:Int = DPMsgType.TYPE_COMMON.type +) diff --git a/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/bean/dpmsg/DPMsgType.kt b/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/bean/dpmsg/DPMsgType.kt index 40f54f7cad..aff4fe49c2 100644 --- a/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/bean/dpmsg/DPMsgType.kt +++ b/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/bean/dpmsg/DPMsgType.kt @@ -8,5 +8,6 @@ enum class DPMsgType(val type: Int) { TYPE_COMMON(0), //常规 TYPE_CHANGE_DEST(1),// 变更目的地确认 TYPE_OPEN_CLOSE_DOOR(2),//开关门 - TYPE_ORDER_CLOSED(3) // 订单结束 + TYPE_ORDER_CLOSED(3), // 订单结束 + TYPE_TASK_DETAILS(4) //路线任务详情 } \ No newline at end of file diff --git a/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/utils/DateTimeUtil.java b/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/utils/DateTimeUtil.java index 5b167a38e8..37550ad892 100644 --- a/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/utils/DateTimeUtil.java +++ b/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/utils/DateTimeUtil.java @@ -5,6 +5,7 @@ import com.mogo.eagle.core.utilcode.util.DateTimeUtils; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; +import java.util.TimeZone; /** * @author: wangmingjun @@ -101,4 +102,12 @@ public class DateTimeUtil { public static long getCurrentTimeStamp(){ return System.currentTimeMillis(); } + + public static long getTodayStartTime(){ + Calendar calendar = Calendar.getInstance(TimeZone.getTimeZone("GMT+8")); + calendar.set(Calendar.HOUR_OF_DAY,0); + calendar.set(Calendar.MINUTE,0); + calendar.set(Calendar.SECOND,0); + return calendar.getTimeInMillis(); + } } diff --git a/OCH/mogo-och-data/.gitignore b/OCH/mogo-och-data/.gitignore new file mode 100644 index 0000000000..42afabfd2a --- /dev/null +++ b/OCH/mogo-och-data/.gitignore @@ -0,0 +1 @@ +/build \ No newline at end of file diff --git a/OCH/mogo-och-data/build.gradle b/OCH/mogo-och-data/build.gradle new file mode 100644 index 0000000000..7dfccbfa8d --- /dev/null +++ b/OCH/mogo-och-data/build.gradle @@ -0,0 +1,46 @@ +plugins { + id 'com.android.library' + id 'org.jetbrains.kotlin.android' +} + +android { + compileSdkVersion 31 + + defaultConfig { + minSdkVersion 23 + targetSdkVersion 31 + + testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" + consumerProguardFiles "consumer-rules.pro" + } + + buildTypes { + release { + minifyEnabled false + proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' + } + } + compileOptions { + sourceCompatibility JavaVersion.VERSION_1_8 + targetCompatibility JavaVersion.VERSION_1_8 + } + kotlinOptions { + jvmTarget = '1.8' + } +} + +dependencies { + + implementation 'androidx.core:core-ktx:1.7.0' + implementation 'androidx.appcompat:appcompat:1.3.0' + implementation 'com.google.android.material:material:1.4.0' + testImplementation 'junit:junit:4.13.2' + androidTestImplementation 'androidx.test.ext:junit:1.1.3' + androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.0' + + if (Boolean.valueOf(USE_MAVEN_PACKAGE)) { + api rootProject.ext.dependencies.mogoutils + }else { + api project(":core:mogo-core-utils") + } +} \ No newline at end of file diff --git a/OCH/mogo-och-data/consumer-rules.pro b/OCH/mogo-och-data/consumer-rules.pro new file mode 100644 index 0000000000..e69de29bb2 diff --git a/OCH/mogo-och-data/proguard-rules.pro b/OCH/mogo-och-data/proguard-rules.pro new file mode 100644 index 0000000000..481bb43481 --- /dev/null +++ b/OCH/mogo-och-data/proguard-rules.pro @@ -0,0 +1,21 @@ +# Add project specific ProGuard rules here. +# You can control the set of applied configuration files using the +# proguardFiles setting in build.gradle. +# +# For more details, see +# http://developer.android.com/guide/developing/tools/proguard.html + +# If your project uses WebView with JS, uncomment the following +# and specify the fully qualified class name to the JavaScript interface +# class: +#-keepclassmembers class fqcn.of.javascript.interface.for.webview { +# public *; +#} + +# Uncomment this to preserve the line number information for +# debugging stack traces. +#-keepattributes SourceFile,LineNumberTable + +# If you keep the line number information, uncomment this to +# hide the original source file name. +#-renamesourcefileattribute SourceFile \ No newline at end of file diff --git a/OCH/mogo-och-data/src/androidTest/java/com/mogo/och/data/ExampleInstrumentedTest.kt b/OCH/mogo-och-data/src/androidTest/java/com/mogo/och/data/ExampleInstrumentedTest.kt new file mode 100644 index 0000000000..673a5dcfd3 --- /dev/null +++ b/OCH/mogo-och-data/src/androidTest/java/com/mogo/och/data/ExampleInstrumentedTest.kt @@ -0,0 +1,24 @@ +package com.mogo.och.data + +import androidx.test.platform.app.InstrumentationRegistry +import androidx.test.ext.junit.runners.AndroidJUnit4 + +import org.junit.Test +import org.junit.runner.RunWith + +import org.junit.Assert.* + +/** + * Instrumented test, which will execute on an Android device. + * + * See [testing documentation](http://d.android.com/tools/testing). + */ +@RunWith(AndroidJUnit4::class) +class ExampleInstrumentedTest { + @Test + fun useAppContext() { + // Context of the app under test. + val appContext = InstrumentationRegistry.getInstrumentation().targetContext + assertEquals("com.mogo.och.data.test", appContext.packageName) + } +} \ No newline at end of file diff --git a/OCH/mogo-och-data/src/main/AndroidManifest.xml b/OCH/mogo-och-data/src/main/AndroidManifest.xml new file mode 100644 index 0000000000..28c226d0dd --- /dev/null +++ b/OCH/mogo-och-data/src/main/AndroidManifest.xml @@ -0,0 +1,5 @@ + + + + \ No newline at end of file diff --git a/OCH/mogo-och-data/src/main/java/com/mogo/och/data/bean/BusCacheData.kt b/OCH/mogo-och-data/src/main/java/com/mogo/och/data/bean/BusCacheData.kt new file mode 100644 index 0000000000..eee7b42d53 --- /dev/null +++ b/OCH/mogo-och-data/src/main/java/com/mogo/och/data/bean/BusCacheData.kt @@ -0,0 +1,12 @@ +package com.mogo.och.data.bean + +/** + * @author: wangmingjun + * @date: 2023/3/27 + */ + +object BusCacheKey{ + const val BUS_LINE_CACHE = "bus_line_cache" +} + +data class LoginCacheStatus(var login: Boolean,var updateTime: Long) \ No newline at end of file diff --git a/OCH/mogo-och-shuttle/src/main/java/com/mogo/och/bus/bean/BusRoutesResult.java b/OCH/mogo-och-data/src/main/java/com/mogo/och/data/bean/BusRoutesResult.java similarity index 82% rename from OCH/mogo-och-shuttle/src/main/java/com/mogo/och/bus/bean/BusRoutesResult.java rename to OCH/mogo-och-data/src/main/java/com/mogo/och/data/bean/BusRoutesResult.java index 4b652d30df..b8aa437b06 100644 --- a/OCH/mogo-och-shuttle/src/main/java/com/mogo/och/bus/bean/BusRoutesResult.java +++ b/OCH/mogo-och-data/src/main/java/com/mogo/och/data/bean/BusRoutesResult.java @@ -1,4 +1,4 @@ -package com.mogo.och.bus.bean; +package com.mogo.och.data.bean; import java.util.List; @@ -16,6 +16,8 @@ public class BusRoutesResult { private int status; private long taskTime; //线路时间班次 private int taskId;// 线路班次id + private String runningDur; //运营时间 + private long writeVersion; //更新时间戳 //线路轨迹相关字段 public String csvFileUrl = ""; //轨迹文件下载的cos url,默认“” @@ -30,6 +32,14 @@ public class BusRoutesResult { public String txtFileMd5DPQP = ""; //轨迹文件md5,默认“” public long contrailSaveTimeDPQP; //上传轨迹完成时间戳ms:用于MEC本地手动导入轨迹验证时不会被云端轨迹覆盖 + public String getRunningDur() { + return runningDur; + } + + public void setRunningDur(String runningDur) { + this.runningDur = runningDur; + } + public int getLineId() { return lineId; } @@ -54,16 +64,26 @@ public class BusRoutesResult { return taskTime; } + public long getWriteVersion() { + return writeVersion; + } + + public void setWriteVersion(long writeVersion) { + this.writeVersion = writeVersion; + } + @Override public String toString() { return "BusRoutesResult{" + "sites=" + sites + ", lineId=" + lineId + ", name='" + name + '\'' + - ", taskTime='" + taskTime + '\'' + ", lineType=" + lineType + ", description='" + description + '\'' + ", status=" + status + + ", taskTime=" + taskTime + + ", taskId=" + taskId + + ", writeVersion=" + writeVersion + ", csvFileUrl='" + csvFileUrl + '\'' + ", csvFileMd5='" + csvFileMd5 + '\'' + ", txtFileUrl='" + txtFileUrl + '\'' + diff --git a/OCH/mogo-och-shuttle/src/main/java/com/mogo/och/bus/bean/BusStationBean.java b/OCH/mogo-och-data/src/main/java/com/mogo/och/data/bean/BusStationBean.java similarity index 98% rename from OCH/mogo-och-shuttle/src/main/java/com/mogo/och/bus/bean/BusStationBean.java rename to OCH/mogo-och-data/src/main/java/com/mogo/och/data/bean/BusStationBean.java index 304e99b5c3..3e04f4183d 100644 --- a/OCH/mogo-och-shuttle/src/main/java/com/mogo/och/bus/bean/BusStationBean.java +++ b/OCH/mogo-och-data/src/main/java/com/mogo/och/data/bean/BusStationBean.java @@ -1,4 +1,4 @@ -package com.mogo.och.bus.bean; +package com.mogo.och.data.bean; /** * 单个网约车小巴车站信息 diff --git a/OCH/mogo-och-data/src/main/java/com/mogo/och/data/manager/cache/CacheDataManager.kt b/OCH/mogo-och-data/src/main/java/com/mogo/och/data/manager/cache/CacheDataManager.kt new file mode 100644 index 0000000000..ee6df51dd7 --- /dev/null +++ b/OCH/mogo-och-data/src/main/java/com/mogo/och/data/manager/cache/CacheDataManager.kt @@ -0,0 +1,28 @@ +package com.mogo.och.data.manager.cache + +import android.content.Context +import com.mogo.eagle.core.utilcode.mogo.storage.SharedPrefsMgr + +/** + * @author: wangmingjun + * @date: 2023/3/27 + */ +class CacheDataManager private constructor(){ + companion object{ + val instance: CacheDataManager by lazy (mode = LazyThreadSafetyMode.SYNCHRONIZED) { + CacheDataManager() + } + } + + fun putCacheData(context: Context, key:String, jsonStr: String){ + SharedPrefsMgr.getInstance(context).putString(key,jsonStr) + } + + fun getCacheData(context: Context, key: String) : String{ + return SharedPrefsMgr.getInstance(context).getString(key) + } + + fun clearCacheData(context: Context, key: String){ + SharedPrefsMgr.getInstance(context).remove(key) + } +} \ No newline at end of file diff --git a/OCH/mogo-och-data/src/test/java/com/mogo/och/data/ExampleUnitTest.kt b/OCH/mogo-och-data/src/test/java/com/mogo/och/data/ExampleUnitTest.kt new file mode 100644 index 0000000000..294d55ae21 --- /dev/null +++ b/OCH/mogo-och-data/src/test/java/com/mogo/och/data/ExampleUnitTest.kt @@ -0,0 +1,17 @@ +package com.mogo.och.data + +import org.junit.Test + +import org.junit.Assert.* + +/** + * Example local unit test, which will execute on the development machine (host). + * + * See [testing documentation](http://d.android.com/tools/testing). + */ +class ExampleUnitTest { + @Test + fun addition_isCorrect() { + assertEquals(4, 2 + 2) + } +} \ No newline at end of file diff --git a/OCH/mogo-och-shuttle-passenger/build.gradle b/OCH/mogo-och-shuttle-passenger/build.gradle index 0818ec952e..89f40de4af 100644 --- a/OCH/mogo-och-shuttle-passenger/build.gradle +++ b/OCH/mogo-och-shuttle-passenger/build.gradle @@ -74,6 +74,7 @@ dependencies { implementation rootProject.ext.dependencies.androidxconstraintlayout implementation rootProject.ext.dependencies.amapnavi3dmap implementation project(":OCH:mogo-och-common-module") +// implementation project(":OCH:mogo-och-data") compileOnly project(":libraries:mogo-map") implementation project(':core:mogo-core-res') testImplementation 'junit:junit:4.12' diff --git a/OCH/mogo-och-shuttle-passenger/src/jinlvvan/java/com/mogo/och/bus/passenger/adapter/BusPassengerLineStationsAdapter.java b/OCH/mogo-och-shuttle-passenger/src/jinlvvan/java/com/mogo/och/bus/passenger/adapter/BusPassengerLineStationsAdapter.java index 565372b4a9..7d462c954d 100644 --- a/OCH/mogo-och-shuttle-passenger/src/jinlvvan/java/com/mogo/och/bus/passenger/adapter/BusPassengerLineStationsAdapter.java +++ b/OCH/mogo-och-shuttle-passenger/src/jinlvvan/java/com/mogo/och/bus/passenger/adapter/BusPassengerLineStationsAdapter.java @@ -16,6 +16,7 @@ import com.mogo.och.bus.passenger.R; import com.mogo.och.bus.passenger.bean.BusPassengerStation; import com.mogo.och.common.module.utils.BlinkAnimationUtil; import com.mogo.och.common.module.wigets.MarqueeTextView; +import com.mogo.och.data.bean.BusStationBean; import java.util.List; @@ -30,9 +31,9 @@ import static com.mogo.och.bus.passenger.constant.BusPassengerConst.STATION_STAT public class BusPassengerLineStationsAdapter extends RecyclerView.Adapter { private Context mContext; - private List mStations; + private List mStations; - public BusPassengerLineStationsAdapter(Context context, List stations){ + public BusPassengerLineStationsAdapter(Context context, List stations){ this.mContext = context; this.mStations = stations; } @@ -47,7 +48,7 @@ public class BusPassengerLineStationsAdapter extends RecyclerView.Adapter getSites() { return sites; @@ -46,6 +47,10 @@ public class BusPassengerRoutesResult { return runningDur; } + public long getWriteVersion() { + return writeVersion; + } + @Override public String toString() { return "BusPassengerRoutesResult{" + @@ -55,6 +60,7 @@ public class BusPassengerRoutesResult { ", lineType=" + lineType + ", description='" + description + '\'' + ", status=" + status + + ", writeVersion="+ writeVersion+ ", runningDur='" + runningDur + '\'' + '}'; } diff --git a/OCH/mogo-och-shuttle-passenger/src/jinlvvan/java/com/mogo/och/bus/passenger/callback/IBusPassengerRouteLineInfoCallback.java b/OCH/mogo-och-shuttle-passenger/src/jinlvvan/java/com/mogo/och/bus/passenger/callback/IBusPassengerRouteLineInfoCallback.java index b7d348a2b2..caf252a64e 100644 --- a/OCH/mogo-och-shuttle-passenger/src/jinlvvan/java/com/mogo/och/bus/passenger/callback/IBusPassengerRouteLineInfoCallback.java +++ b/OCH/mogo-och-shuttle-passenger/src/jinlvvan/java/com/mogo/och/bus/passenger/callback/IBusPassengerRouteLineInfoCallback.java @@ -1,6 +1,6 @@ package com.mogo.och.bus.passenger.callback; -import com.mogo.och.bus.passenger.bean.BusPassengerStation; +import com.mogo.och.data.bean.BusStationBean; import java.util.List; @@ -10,7 +10,7 @@ import java.util.List; */ public interface IBusPassengerRouteLineInfoCallback { void updateLineInfo(String lineName, String lineDurTime); - void updateStationsInfo(List stations, int currentStationIndex, boolean isArrived); + void updateStationsInfo(List stations, int currentStationIndex, boolean isArrived); void showNoTaskView(); void hideNoTaskView(); } diff --git a/OCH/mogo-och-shuttle-passenger/src/jinlvvan/java/com/mogo/och/bus/passenger/model/BusPassengerModel.java b/OCH/mogo-och-shuttle-passenger/src/jinlvvan/java/com/mogo/och/bus/passenger/model/BusPassengerModel.java index 3e013fef4f..8be336ca13 100644 --- a/OCH/mogo-och-shuttle-passenger/src/jinlvvan/java/com/mogo/och/bus/passenger/model/BusPassengerModel.java +++ b/OCH/mogo-och-shuttle-passenger/src/jinlvvan/java/com/mogo/och/bus/passenger/model/BusPassengerModel.java @@ -20,6 +20,17 @@ import com.mogo.commons.module.intent.IMogoIntentListener; import com.mogo.commons.module.intent.IntentManager; import com.mogo.commons.module.status.IMogoStatusChangedListener; import com.mogo.commons.module.status.MogoStatusManager; +import com.mogo.eagle.core.function.api.telematic.IReceivedMsgListener; +import com.mogo.eagle.core.function.call.telematic.CallerTelematicListenerManager; +import com.mogo.eagle.core.utilcode.mogo.logger.Logger; +import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant; +import com.mogo.eagle.core.utilcode.util.GsonUtils; +import com.mogo.och.bus.passenger.bean.BusPassengerRoutesResponse; +import com.mogo.och.common.module.bean.AppConnectMsg; +import com.mogo.och.common.module.bean.dpmsg.DPMsgType; +import com.mogo.och.common.module.biz.common.socketmessage.OCHSocketMessageManager; +import com.mogo.och.common.module.biz.constant.OchCommonConst; +import com.mogo.och.common.module.utils.DateTimeUtil; import com.mogo.commons.module.status.StatusDescriptor; import com.mogo.eagle.core.data.autopilot.AutopilotStatusInfo; import com.mogo.eagle.core.data.config.FunctionBuildConfig; @@ -39,9 +50,6 @@ import com.mogo.eagle.core.utilcode.util.NetworkUtils; import com.mogo.eagle.core.utilcode.util.ToastUtils; import com.mogo.och.bus.passenger.R; import com.mogo.och.bus.passenger.bean.BusPassengerOperationStatusResponse; -import com.mogo.och.bus.passenger.bean.BusPassengerRoutesResponse; -import com.mogo.och.bus.passenger.bean.BusPassengerRoutesResult; -import com.mogo.och.bus.passenger.bean.BusPassengerStation; import com.mogo.och.bus.passenger.callback.IBusPassegerDriverStatusCallback; import com.mogo.och.bus.passenger.callback.IBusPassengerADASStatusCallback; import com.mogo.och.bus.passenger.callback.IBusPassengerAutopilotPlanningCallback; @@ -53,6 +61,8 @@ import com.mogo.och.bus.passenger.network.BusPassengerServiceManager; import com.mogo.och.common.module.biz.network.OchCommonServiceCallback; import com.mogo.och.common.module.manager.AbnormalFactorsLoopManager; import com.mogo.och.common.module.utils.CoordinateCalculateRouteUtil; +import com.mogo.och.data.bean.BusRoutesResult; +import com.mogo.och.data.bean.BusStationBean; import org.jetbrains.annotations.NotNull; @@ -91,9 +101,9 @@ public class BusPassengerModel { private MogoLocation mLocation = null; - private BusPassengerRoutesResult routesResult = null; + private BusRoutesResult routesResult = null; - List mStations = new ArrayList<>(); + List mStations = new ArrayList<>(); private int mNextStationIndex = 0;// 要到达站的index private List mTwoStationsRouts = new ArrayList<>(); private int mPreRouteIndex = 0; @@ -172,23 +182,19 @@ public class BusPassengerModel { public void onSuccess(BusPassengerRoutesResponse data) { if ( data == null || data.getResult() == null) { CallerLogger.INSTANCE.d( M_BUS_P + TAG, "queryDriverSiteByCoordinate = null"); - if (routesResult != null) { - routesResult = null; - mNextStationIndex = 0; - startOrStopCalculateRouteInfo(false); - if (mRouteLineInfoCallback != null){ - mRouteLineInfoCallback.showNoTaskView(); - } - } - + clearLocalRouteResult(); return; } if (routesResult != null && data.getResult().equals(routesResult)){ CallerLogger.INSTANCE.d( M_BUS_P + TAG, "queryDriverSiteByCoordinate = not update"); return; } - routesResult = data.getResult(); - updatePassengerRouteInfo(data.getResult()); + + if (routesResult != null && + routesResult.getWriteVersion() < data.getResult().getWriteVersion()){ + routesResult = data.getResult(); + } + updatePassengerRouteInfo(routesResult); } @Override @@ -211,16 +217,29 @@ public class BusPassengerModel { }); } - private void updatePassengerRouteInfo(BusPassengerRoutesResult result) { + private void clearLocalRouteResult() { + if (routesResult != null) { + routesResult = null; + mNextStationIndex = 0; + startOrStopCalculateRouteInfo(false); + if (mRouteLineInfoCallback != null){ + mRouteLineInfoCallback.showNoTaskView(); + } + } + } + + private void updatePassengerRouteInfo(BusRoutesResult result) { + if (routesResult == null) return; + if (mRouteLineInfoCallback != null){ mRouteLineInfoCallback.updateLineInfo(result.getName(),result.getRunningDur()); mRouteLineInfoCallback.hideNoTaskView(); if (result.getSites() != null){ - List stations = result.getSites(); + List stations = result.getSites(); mStations.clear(); mStations.addAll(stations); for (int i = 0; i< stations.size(); i++){ - BusPassengerStation station = stations.get(i); + BusStationBean station = stations.get(i); if (station.getDrivingStatus() == STATION_STATUS_STOPPED && station.isLeaving() && i+1 < stations.size()){ mRouteLineInfoCallback.updateStationsInfo(stations,i+1,false); if(mNextStationIndex != i+1){ @@ -283,6 +302,9 @@ public class BusPassengerModel { //2021.11.1 自动驾驶路线规划接口 CallerPlanningRottingListenerManager.INSTANCE.addListener(TAG,moGoAutopilotPlanningListener); + //监听司机端消息 + CallerTelematicListenerManager.INSTANCE.addListener(TAG,mReceivedMsgListener); + AbnormalFactorsLoopManager.INSTANCE.startLoopAbnormalFactors(mContext); } @@ -299,8 +321,39 @@ public class BusPassengerModel { CallerPlanningRottingListenerManager.INSTANCE.removeListener(moGoAutopilotPlanningListener); AbnormalFactorsLoopManager.INSTANCE.stopLoopAbnormalFactors(); + + CallerTelematicListenerManager.INSTANCE.removeListener(TAG); } + private final IReceivedMsgListener mReceivedMsgListener = new IReceivedMsgListener() { + @Override + public void onReceivedMsg(int type, @NonNull byte[] byteArray) { + if (OchCommonConst.BUSINESS_STRING == type){ + + AppConnectMsg msg = GsonUtils.fromJson(new String(byteArray), AppConnectMsg.class); + Logger.d(SceneConstant.M_BUS_P+TAG,"onReceivedMsg = "+GsonUtils.toJson(msg)); + if (msg.getType() == DPMsgType.TYPE_TASK_DETAILS.getType()){ + if (msg.getMsg().isEmpty()){ + clearLocalRouteResult(); + return; + } + BusRoutesResult result = GsonUtils.fromJson(msg.getMsg(),BusRoutesResult.class); + if (result.getWriteVersion() > routesResult.getWriteVersion()){ + routesResult = result; + updatePassengerRouteInfo(routesResult); + } + return; + } + if (msg.isViewShow()){ //消息盒子显示内容 + OCHSocketMessageManager.INSTANCE.pushAppOperationalMsgBox( + DateTimeUtil.getCurrentTimeStamp(),msg.getMsg(), + OCHSocketMessageManager.OPERATION_SYSTEM); + } + } + } + }; + + //监听网络变化,避免启动机器时无网导致无法更新订单信息 private final IMogoIntentListener mNetWorkIntentListener = new IMogoIntentListener() { @Override @@ -437,8 +490,8 @@ public class BusPassengerModel { if (mStations.size() > 1){ //两个站点及以上要计算两个站点间的轨迹路线 if (mNextStationIndex <= mStations.size()-1 && mNextStationIndex - 1 >=0){ mTwoStationsRouts.clear(); - BusPassengerStation stationNext = mStations.get(mNextStationIndex); - BusPassengerStation stationCur = mStations.get(mNextStationIndex - 1); + BusStationBean stationNext = mStations.get(mNextStationIndex); + BusStationBean stationCur = mStations.get(mNextStationIndex - 1); //当前站在轨迹中对应的点 int currentRouteIndex = CoordinateCalculateRouteUtil.getArrivedPointIndexNew(0 ,mRoutePoints @@ -487,7 +540,7 @@ public class BusPassengerModel { float lastSumLength = 0; if (lastPoints.size() == 1){ //只是最后一个点,计算当前位置和最后一个点的距离 if (mNextStationIndex <= mStations.size()-1 && mNextStationIndex >= 0){ - BusPassengerStation stationNext = mStations.get(mNextStationIndex); + BusStationBean stationNext = mStations.get(mNextStationIndex); lastSumLength = CoordinateUtils.calculateLineDistance( stationNext.getGcjLon(), stationNext.getGcjLat(), mLocation.getLongitude(), mLocation.getLatitude()); diff --git a/OCH/mogo-och-shuttle-passenger/src/jinlvvan/java/com/mogo/och/bus/passenger/presenter/BaseBusPassengerPresenter.java b/OCH/mogo-och-shuttle-passenger/src/jinlvvan/java/com/mogo/och/bus/passenger/presenter/BaseBusPassengerPresenter.java index 0373dbc61b..a40cebf641 100644 --- a/OCH/mogo-och-shuttle-passenger/src/jinlvvan/java/com/mogo/och/bus/passenger/presenter/BaseBusPassengerPresenter.java +++ b/OCH/mogo-och-shuttle-passenger/src/jinlvvan/java/com/mogo/och/bus/passenger/presenter/BaseBusPassengerPresenter.java @@ -22,6 +22,7 @@ import com.mogo.och.bus.passenger.callback.IBusPassengerControllerStatusCallback import com.mogo.och.bus.passenger.callback.IBusPassengerRouteLineInfoCallback; import com.mogo.och.bus.passenger.model.BusPassengerModel; import com.mogo.och.bus.passenger.ui.BusPassengerRouteFragment; +import com.mogo.och.data.bean.BusStationBean; import java.util.List; @@ -131,7 +132,7 @@ public class BaseBusPassengerPresenter extends Presenter stations,int currentStationIndex,boolean isArrived) { + public void updateStationsInfo(List stations, int currentStationIndex, boolean isArrived) { runOnUIThread(() -> mView.updateStationsInfo(stations,currentStationIndex, isArrived)); } diff --git a/OCH/mogo-och-shuttle-passenger/src/jinlvvan/java/com/mogo/och/bus/passenger/ui/BusPassengerRouteFragment.java b/OCH/mogo-och-shuttle-passenger/src/jinlvvan/java/com/mogo/och/bus/passenger/ui/BusPassengerRouteFragment.java index 9d7393f968..2a7875dc40 100644 --- a/OCH/mogo-och-shuttle-passenger/src/jinlvvan/java/com/mogo/och/bus/passenger/ui/BusPassengerRouteFragment.java +++ b/OCH/mogo-och-shuttle-passenger/src/jinlvvan/java/com/mogo/och/bus/passenger/ui/BusPassengerRouteFragment.java @@ -28,6 +28,7 @@ import com.mogo.och.bus.passenger.presenter.BaseBusPassengerPresenter; import com.mogo.och.bus.passenger.ui.layoutmanager.CenterLayoutManager; import com.mogo.och.bus.passenger.utils.BPRouteDataTestUtils; import com.mogo.och.common.module.wigets.MarqueeTextView; +import com.mogo.och.data.bean.BusStationBean; import java.util.ArrayList; import java.util.List; @@ -42,7 +43,7 @@ public class BusPassengerRouteFragment extends private final String TAG = "BusPassengerRouteFragment"; - private final List mStationsList = new ArrayList<>(); + private final List mStationsList = new ArrayList<>(); private TextView mSpeedTv; private ConstraintLayout mNoLineInfoView; @@ -236,7 +237,7 @@ public class BusPassengerRouteFragment extends * @param currentStationIndex * @param isArrived 是否到站并离开,true 到达当前站 currentStationIndex 未离开, false 正在前往此站 currentStationIndex */ - public void updateStationsInfo(List stations, int currentStationIndex,boolean isArrived) { + public void updateStationsInfo(List stations, int currentStationIndex, boolean isArrived) { updateArrivedStation(stations.get(currentStationIndex).getName(),currentStationIndex,isArrived); mStationsList.clear(); mStationsList.addAll(stations); @@ -257,7 +258,7 @@ public class BusPassengerRouteFragment extends } } - private void updateWayPointList(List stations,int currentStationIndex) { + private void updateWayPointList(List stations,int currentStationIndex) { List mLineStationsList = new ArrayList<>(); for (int i = 0; i< stations.size(); i++) {//站点集合 // LatLng latLng = CoordinateCalculateRouteUtil.coordinateConverterWgsToGcj(getContext() diff --git a/OCH/mogo-och-shuttle/build.gradle b/OCH/mogo-och-shuttle/build.gradle index 1d06e3b890..f3e7989e2f 100644 --- a/OCH/mogo-och-shuttle/build.gradle +++ b/OCH/mogo-och-shuttle/build.gradle @@ -56,6 +56,7 @@ dependencies { compileOnly rootProject.ext.dependencies.recyclerviewadapterhelper implementation project(":OCH:mogo-och-common-module") + implementation project(":OCH:mogo-och-data") compileOnly project(":libraries:mogo-map") } diff --git a/OCH/mogo-och-shuttle/src/main/java/com/mogo/och/bus/bean/BusCloseTaskRequest.java b/OCH/mogo-och-shuttle/src/main/java/com/mogo/och/bus/bean/BusCloseTaskRequest.java index d8a11924af..010c5812d0 100644 --- a/OCH/mogo-och-shuttle/src/main/java/com/mogo/och/bus/bean/BusCloseTaskRequest.java +++ b/OCH/mogo-och-shuttle/src/main/java/com/mogo/och/bus/bean/BusCloseTaskRequest.java @@ -1,6 +1,7 @@ package com.mogo.och.bus.bean; import com.mogo.cloud.passport.MoGoAiCloudClientConfig; +import com.mogo.och.common.module.utils.DateTimeUtil; /** * 中止/结束任务请求 @@ -9,9 +10,11 @@ public class BusCloseTaskRequest { private String sn; private int taskId; + private long writeVersion; public BusCloseTaskRequest(int taskId) { this.sn = MoGoAiCloudClientConfig.getInstance().getSn(); this.taskId = taskId; + this.writeVersion = DateTimeUtil.getCurrentTimeStamp(); } public String getSn() { diff --git a/OCH/mogo-och-shuttle/src/main/java/com/mogo/och/bus/bean/BusResetDrivingLineRequest.java b/OCH/mogo-och-shuttle/src/main/java/com/mogo/och/bus/bean/BusResetDrivingLineRequest.java index 7de15dae2c..ed3aa1a8e8 100644 --- a/OCH/mogo-och-shuttle/src/main/java/com/mogo/och/bus/bean/BusResetDrivingLineRequest.java +++ b/OCH/mogo-och-shuttle/src/main/java/com/mogo/och/bus/bean/BusResetDrivingLineRequest.java @@ -1,6 +1,7 @@ package com.mogo.och.bus.bean; import com.mogo.cloud.passport.MoGoAiCloudClientConfig; +import com.mogo.och.common.module.utils.DateTimeUtil; /** * @author: wangmingjun @@ -9,9 +10,11 @@ import com.mogo.cloud.passport.MoGoAiCloudClientConfig; public class BusResetDrivingLineRequest { public String sn; public int taskId; //切换到的线路id + public long writeVersion; //更新时间戳 public BusResetDrivingLineRequest(int taskId) { this.sn = MoGoAiCloudClientConfig.getInstance().getSn(); this.taskId = taskId; + this.writeVersion = DateTimeUtil.getCurrentTimeStamp(); } } diff --git a/OCH/mogo-och-shuttle/src/main/java/com/mogo/och/bus/bean/BusRoutesResponse.java b/OCH/mogo-och-shuttle/src/main/java/com/mogo/och/bus/bean/BusRoutesResponse.java index 2c9bad3e3c..39d43217af 100644 --- a/OCH/mogo-och-shuttle/src/main/java/com/mogo/och/bus/bean/BusRoutesResponse.java +++ b/OCH/mogo-och-shuttle/src/main/java/com/mogo/och/bus/bean/BusRoutesResponse.java @@ -1,6 +1,7 @@ package com.mogo.och.bus.bean; import com.mogo.eagle.core.data.BaseData; +import com.mogo.och.data.bean.BusRoutesResult; /** * 网约车小巴路线接口请求响应结果 diff --git a/OCH/mogo-och-shuttle/src/main/java/com/mogo/och/bus/bean/BusUpdateSiteStatusRequest.java b/OCH/mogo-och-shuttle/src/main/java/com/mogo/och/bus/bean/BusUpdateSiteStatusRequest.java index 93ff4b5457..5affa4b9ac 100644 --- a/OCH/mogo-och-shuttle/src/main/java/com/mogo/och/bus/bean/BusUpdateSiteStatusRequest.java +++ b/OCH/mogo-och-shuttle/src/main/java/com/mogo/och/bus/bean/BusUpdateSiteStatusRequest.java @@ -1,6 +1,7 @@ package com.mogo.och.bus.bean; import com.mogo.cloud.passport.MoGoAiCloudClientConfig; +import com.mogo.och.common.module.utils.DateTimeUtil; /** * @author congtaowang @@ -14,11 +15,13 @@ public class BusUpdateSiteStatusRequest { public int taskId; public int seq;//站点序号 public int siteId;//站点id + public long writeVersion; //更新时间戳 public BusUpdateSiteStatusRequest(int taskId,int siteId,int seq) { this.sn = MoGoAiCloudClientConfig.getInstance().getSn(); this.seq = seq; this.siteId = siteId; this.taskId = taskId; + this.writeVersion = DateTimeUtil.getCurrentTimeStamp(); } } diff --git a/OCH/mogo-och-shuttle/src/main/java/com/mogo/och/bus/callback/IRefreshBusStationsCallback.java b/OCH/mogo-och-shuttle/src/main/java/com/mogo/och/bus/callback/IRefreshBusStationsCallback.java index 95292ef6a6..4f28bf76b9 100644 --- a/OCH/mogo-och-shuttle/src/main/java/com/mogo/och/bus/callback/IRefreshBusStationsCallback.java +++ b/OCH/mogo-och-shuttle/src/main/java/com/mogo/och/bus/callback/IRefreshBusStationsCallback.java @@ -1,6 +1,6 @@ package com.mogo.och.bus.callback; -import com.mogo.och.bus.bean.BusStationBean; +import com.mogo.och.data.bean.BusStationBean; import java.util.List; diff --git a/OCH/mogo-och-shuttle/src/main/java/com/mogo/och/bus/fragment/BaseBusTabFragment.java b/OCH/mogo-och-shuttle/src/main/java/com/mogo/och/bus/fragment/BaseBusTabFragment.java index 59820ddffe..6c353544a0 100644 --- a/OCH/mogo-och-shuttle/src/main/java/com/mogo/och/bus/fragment/BaseBusTabFragment.java +++ b/OCH/mogo-och-shuttle/src/main/java/com/mogo/och/bus/fragment/BaseBusTabFragment.java @@ -36,16 +36,14 @@ import com.mogo.eagle.core.function.hmi.ui.msgbox.DriverMsgBoxListView; import com.mogo.eagle.core.function.hmi.ui.widget.TrafficDataView; import com.mogo.eagle.core.function.smp.view.SmallMapView; import com.mogo.eagle.core.function.view.MapBizView; -import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger; import com.mogo.eagle.core.utilcode.mogo.view.OnPreventFastClickListener; import com.mogo.eagle.core.utilcode.util.UiThreadHandler; -import com.mogo.map.MogoMapUIController; import com.mogo.map.listener.IMogoMapListener; import com.mogo.map.listener.MogoMapListenerHandler; import com.mogo.map.uicontroller.IMogoMapUIController; import com.mogo.map.uicontroller.VisualAngleMode; import com.mogo.och.bus.R; -import com.mogo.och.bus.bean.BusRoutesResult; +import com.mogo.och.data.bean.BusRoutesResult; import com.mogo.och.bus.model.OrderModel; import com.mogo.och.bus.util.BDRouteDataTestUtils; import com.mogo.och.bus.view.SlidePanelView; diff --git a/OCH/mogo-och-shuttle/src/main/java/com/mogo/och/bus/fragment/BusFragment.java b/OCH/mogo-och-shuttle/src/main/java/com/mogo/och/bus/fragment/BusFragment.java index cd85e7eaa1..ee7f0674d7 100644 --- a/OCH/mogo-och-shuttle/src/main/java/com/mogo/och/bus/fragment/BusFragment.java +++ b/OCH/mogo-och-shuttle/src/main/java/com/mogo/och/bus/fragment/BusFragment.java @@ -25,7 +25,7 @@ import com.mogo.eagle.core.utilcode.util.ToastUtils; import com.mogo.map.marker.IMogoMarker; import com.mogo.map.marker.MogoMarkerOptions; import com.mogo.och.bus.R; -import com.mogo.och.bus.bean.BusStationBean; +import com.mogo.och.data.bean.BusStationBean; import com.mogo.och.bus.constant.BusConst; import com.mogo.och.bus.net.login.LoginBusImpl; import com.mogo.och.bus.presenter.BusPresenter; diff --git a/OCH/mogo-och-shuttle/src/main/java/com/mogo/och/bus/model/OrderModel.java b/OCH/mogo-och-shuttle/src/main/java/com/mogo/och/bus/model/OrderModel.java index 1eaef27632..4a64951a9a 100644 --- a/OCH/mogo-och-shuttle/src/main/java/com/mogo/och/bus/model/OrderModel.java +++ b/OCH/mogo-och-shuttle/src/main/java/com/mogo/och/bus/model/OrderModel.java @@ -26,7 +26,8 @@ import com.mogo.eagle.core.data.autopilot.AutopilotControlParameters; import com.mogo.eagle.core.data.config.FunctionBuildConfig; import com.mogo.eagle.core.data.map.MogoLocation; import com.mogo.och.bus.bean.BusRoutesResponse; -import com.mogo.och.bus.bean.BusStationBean; +import com.mogo.och.common.module.bean.dpmsg.DPMsgType; +import com.mogo.och.data.bean.BusStationBean; import com.mogo.och.common.module.biz.common.socketmessage.data.SystemMsg; import com.mogo.och.common.module.biz.constant.OchCommonConst; import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotStatusListener; @@ -44,7 +45,7 @@ import com.mogo.eagle.core.utilcode.util.ToastUtils; import com.mogo.eagle.core.utilcode.util.UiThreadHandler; import com.mogo.och.bus.R; import com.mogo.och.bus.bean.BusRoutePlanningUpdateReqBean; -import com.mogo.och.bus.bean.BusRoutesResult; +import com.mogo.och.data.bean.BusRoutesResult; import com.mogo.och.bus.bean.WriteOffPassenger; import com.mogo.och.bus.callback.IBusADASStatusCallback; import com.mogo.och.bus.callback.IBusControllerStatusCallback; @@ -67,9 +68,10 @@ import com.mogo.och.common.module.utils.CoordinateCalculateRouteUtil; import com.mogo.och.common.module.utils.DateTimeUtil; import com.mogo.och.common.module.utils.NumberFormatUtil; import com.mogo.och.common.module.utils.PinYinUtil; -import com.mogo.och.common.module.utils.ToastUtilsOch; import com.mogo.och.common.module.voice.VoiceManager; import com.mogo.och.common.module.voice.VoiceNotice; +import com.mogo.och.data.bean.BusCacheKey; +import com.mogo.och.data.manager.cache.CacheDataManager; import org.jetbrains.annotations.NotNull; @@ -236,7 +238,7 @@ public class OrderModel { } if (list != null && list.contains(2)){ //乘客屏 - AppConnectMsg msg = new AppConnectMsg(true,false,obj.getContext()); + AppConnectMsg msg = new AppConnectMsg(true,false,obj.getContext(),DPMsgType.TYPE_COMMON.getType()); CallerTelematicManager.INSTANCE.sendMsgToAllClients(OchCommonConst.BUSINESS_STRING, GsonUtils.toJson(msg).getBytes()); } @@ -402,6 +404,31 @@ public class OrderModel { } } + public void queryBusCacheRoutes(){ + String cacheData = CacheDataManager.Companion.getInstance().getCacheData(mContext, + BusCacheKey.BUS_LINE_CACHE); + if (cacheData == null || cacheData.isEmpty()){ + queryBusRoutes(); + }else { + BusRoutesResult data = GsonUtils.fromJson(cacheData,BusRoutesResult.class); + getCacheRouteSuccess(data); + } + + } + + private void getCacheRouteSuccess(BusRoutesResult data){ + if (data == null || data.getSites() == null + || data.getSites().isEmpty() + || data.getWriteVersion() < DateTimeUtil.getTodayStartTime()) { + //当为空时,显示无绑定路线图 + queryBusRoutes(); + CacheDataManager.Companion.getInstance().clearCacheData(mContext, BusCacheKey.BUS_LINE_CACHE); + return; + } + CallerLogger.INSTANCE.d(M_BUS + TAG, "获取到小巴路线数据: " + GsonUtils.toJson(data)); + updateBusStatus(data); + } + /** * 查询小巴路线 */ @@ -414,19 +441,27 @@ public class OrderModel { || data.getResult() == null || data.getResult().getSites() == null || data.getResult().getSites().isEmpty()) { - //当为空时,显示无绑定路线图 - CallerLogger.INSTANCE.d(M_BUS + TAG, "获取到小巴路线数据:空 "); - if (refreshBusStationsCallback != null) { - refreshBusStationsCallback.updateEmptyUi(); - } - clearAutopilotControlParameters(); - closeBeautificationMode(); - clearStartAutopilotTag(); - removeTipRunnables(); +// //当为空时,显示无绑定路线图 +// CallerLogger.INSTANCE.d(M_BUS + TAG, "获取到小巴路线数据:空 "); +// if (refreshBusStationsCallback != null) { +// refreshBusStationsCallback.updateEmptyUi(); +// } +// clearAutopilotControlParameters(); +// closeBeautificationMode(); +// clearStartAutopilotTag(); +// removeTipRunnables(); + CacheDataManager.Companion.getInstance().clearCacheData(mContext,BusCacheKey.BUS_LINE_CACHE); return; } - CallerLogger.INSTANCE.d(M_BUS + TAG, "获取到小巴路线数据: " + data); - updateBusStatus(data.getResult()); + + if (busRoutesResult != null && busRoutesResult.getWriteVersion() < data.getResult().getWriteVersion()){ + CallerLogger.INSTANCE.d(M_BUS + TAG, "更新小巴路线数据: " + data); +// updateBusStatus(data.getResult()); + CacheDataManager.Companion.getInstance().putCacheData(mContext, + BusCacheKey.BUS_LINE_CACHE, + GsonUtils.toJson(data.getResult())); + } + } @@ -559,6 +594,11 @@ public class OrderModel { , "" , false); } + + CacheDataManager.Companion.getInstance().clearCacheData(mContext, BusCacheKey.BUS_LINE_CACHE); + busRoutesResult = null; + + sendTaskDetailsToClients(); } /** @@ -586,6 +626,30 @@ public class OrderModel { , nextStation , isLastStop); } + + reBuildCacheRouteData(leaveIndex,BusConst.STATION_STATUS_STOPPED,true); + } + + private void reBuildCacheRouteData(int currentIndex, int currentDrivingStatus, boolean isLeaving) { + if (busRoutesResult != null){ + busRoutesResult.setWriteVersion(DateTimeUtil.getCurrentTimeStamp()); + List sites = busRoutesResult.getSites(); + BusStationBean bean = sites.get(currentIndex); + bean.setDrivingStatus(currentDrivingStatus); + bean.setLeaving(isLeaving); + sites.set(currentIndex,bean); + if (currentDrivingStatus == STATION_STATUS_STOPPED && !isLeaving){ + BusStationBean beanPre = sites.get(currentIndex -1); + beanPre.setDrivingStatus(BusConst.STATION_STATUS_LEAVING); + beanPre.setLeaving(false); + sites.set(currentIndex -1,beanPre); + } + busRoutesResult.setSite(sites); + CacheDataManager.Companion.getInstance().putCacheData(mContext, BusCacheKey.BUS_LINE_CACHE, + GsonUtils.toJson(busRoutesResult)); + + sendTaskDetailsToClients(); + } } private void onStartAutopilot(int leaveIndex) { @@ -647,6 +711,10 @@ public class OrderModel { String departureStopName = stationList.get(backgroundCurrentStationIndex).getName(); CallerLogger.INSTANCE.d(M_BUS + TAG, "arriveSiteStation-currentStationIndex = " + arrivedStationIndex); + isArrivedStation = true; + isGoingToNextStation = false; + arriveStationSuccess(arrivedStationIndex, departureStopName, arriveStation); + OrderServiceManager.arriveSiteStation(mContext, stationList.get(arrivedStationIndex).getSeq(), stationList.get(arrivedStationIndex).getSiteId(), @@ -655,35 +723,35 @@ public class OrderModel { @Override public void onSuccess(BaseData o) { CallerLogger.INSTANCE.d(M_BUS + TAG, "行程日志-arriveSiteStation success"); - if (o != null && o.code == 0){ - queryBusRoutes(); - isArrivedStation = true; - isGoingToNextStation = false; - arriveStationSuccess(arrivedStationIndex, departureStopName, arriveStation); - } +// if (o != null && o.code == 0){ +// queryBusRoutes(); +// isArrivedStation = true; +// isGoingToNextStation = false; +// arriveStationSuccess(arrivedStationIndex, departureStopName, arriveStation); +// } //5s轮询核销乘客 // startOrStopQueryPassengerWriteOff(true); } @Override public void onError() { - if (!NetworkUtils.isConnected(mContext)) { - ToastUtils.showShort(mContext.getString(R.string.network_error_tip)); - } else { - ToastUtils.showShort(mContext.getString(R.string.request_error_tip)); - } +// if (!NetworkUtils.isConnected(mContext)) { +// ToastUtils.showShort(mContext.getString(R.string.network_error_tip)); +// } else { +// ToastUtils.showShort(mContext.getString(R.string.request_error_tip)); +// } } @Override public void onFail(int code, String failMsg) { - if (ToastUtilsOch.isCustomFastClick(5000)) { - if (!NetworkUtils.isConnected(mContext)) { - ToastUtils.showShort("网络异常,请稍后重试"); - } else { - if (isArrivedStation) return; - ToastUtils.showShort(failMsg); - } - } +// if (ToastUtilsOch.isCustomFastClick(5000)) { +// if (!NetworkUtils.isConnected(mContext)) { +// ToastUtils.showShort("网络异常,请稍后重试"); +// } else { +// if (isArrivedStation) return; +// ToastUtils.showShort(failMsg); +// } +// } } }); } @@ -705,12 +773,22 @@ public class OrderModel { VoiceManager.INSTANCE.arrivedStation(arriveStation); sendArrivedStationToClient(arriveStation); + + reBuildCacheRouteData(arrivedStationIndex, BusConst.STATION_STATUS_STOPPED,false); + } + + private void sendTaskDetailsToClients() { + AppConnectMsg arrivedMsg = new AppConnectMsg(false,false,String.format(mContext + .getString(R.string.bus_arrived_station_tip), + GsonUtils.toJson(busRoutesResult)), DPMsgType.TYPE_TASK_DETAILS.getType()); + CallerTelematicManager.INSTANCE.sendMsgToAllClients(OchCommonConst.BUSINESS_STRING, + GsonUtils.toJson(arrivedMsg).getBytes()); } private void sendArrivedStationToClient(String arriveStation) { AppConnectMsg arrivedMsg = new AppConnectMsg(false,true,String.format(mContext .getString(R.string.bus_arrived_station_tip), - arriveStation)); + arriveStation),DPMsgType.TYPE_COMMON.getType()); CallerTelematicManager.INSTANCE.sendMsgToAllClients(OchCommonConst.BUSINESS_STRING, GsonUtils.toJson(arrivedMsg).getBytes()); } @@ -718,23 +796,24 @@ public class OrderModel { private void sendStartStationToClient(String nextStation) { AppConnectMsg arrivedMsg = new AppConnectMsg(false,true,String.format(mContext .getString(R.string.bus_leave_station_tip), - nextStation)); - UiThreadHandler.postDelayed(()->{ - CallerTelematicManager.INSTANCE.sendMsgToAllClients(OchCommonConst.BUSINESS_STRING, - GsonUtils.toJson(arrivedMsg).getBytes()); - },DELAY_10S); + nextStation),DPMsgType.TYPE_COMMON.getType()); + + UiThreadHandler.postDelayed(()-> + CallerTelematicManager.INSTANCE.sendMsgToAllClients(OchCommonConst.BUSINESS_STRING, + GsonUtils.toJson(arrivedMsg).getBytes()),DELAY_10S); } private void sendEndTaskToClient() { AppConnectMsg arrivedMsg = new AppConnectMsg(false,true,mContext - .getString(R.string.bus_end_task_tip)); + .getString(R.string.bus_end_task_tip), + DPMsgType.TYPE_COMMON.getType()); CallerTelematicManager.INSTANCE.sendMsgToAllClients(OchCommonConst.BUSINESS_STRING, GsonUtils.toJson(arrivedMsg).getBytes()); } public void sendWriteOffNumToClient(String msg){ - AppConnectMsg arrivedMsg = new AppConnectMsg(false,true,msg); + AppConnectMsg arrivedMsg = new AppConnectMsg(false,true,msg,DPMsgType.TYPE_COMMON.getType()); CallerTelematicManager.INSTANCE.sendMsgToAllClients(OchCommonConst.BUSINESS_STRING, GsonUtils.toJson(arrivedMsg).getBytes()); @@ -751,6 +830,11 @@ public class OrderModel { } final String currentStationName = stationList.get(backgroundCurrentStationIndex).getName(); String finalNextStationName = nextStationName; + + isArrivedStation = false; + CallerLogger.INSTANCE.d(M_BUS + TAG, "行程日志-离站成功开往下一站===="); + leaveStationSuccess(backgroundCurrentStationIndex, currentStationName, finalNextStationName); + OrderServiceManager.leaveStation(mContext, stationList.get(backgroundCurrentStationIndex).getSeq(), stationList.get(backgroundCurrentStationIndex).getSiteId(), @@ -758,31 +842,31 @@ public class OrderModel { new OchCommonServiceCallback() { @Override public void onSuccess(BaseData o) { - isArrivedStation = false; - CallerLogger.INSTANCE.d(M_BUS + TAG, "行程日志-离站成功开往下一站===="); - //需要更改当前站和下一站的状态 然后渲染 - //startOrStopQueryPassengerWriteOff(false); - queryBusRoutes(); - leaveStationSuccess(backgroundCurrentStationIndex, currentStationName, finalNextStationName); +// isArrivedStation = false; +// CallerLogger.INSTANCE.d(M_BUS + TAG, "行程日志-离站成功开往下一站===="); +// //需要更改当前站和下一站的状态 然后渲染 +// //startOrStopQueryPassengerWriteOff(false); +// queryBusRoutes(); +// leaveStationSuccess(backgroundCurrentStationIndex, currentStationName, finalNextStationName); } @Override public void onError() { - if (!NetworkUtils.isConnected(mContext)) { - ToastUtils.showShort(mContext.getString(R.string.network_error_tip)); - } else { - ToastUtils.showShort(mContext.getString(R.string.request_error_tip)); - } +// if (!NetworkUtils.isConnected(mContext)) { +// ToastUtils.showShort(mContext.getString(R.string.network_error_tip)); +// } else { +// ToastUtils.showShort(mContext.getString(R.string.request_error_tip)); +// } } @Override public void onFail(int code, String failMsg) { - if (!NetworkUtils.isConnected(mContext)) { - ToastUtils.showShort("网络异常,请稍后重试"); - } else { - ToastUtils.showShort("离站上报失败:" + failMsg); - } +// if (!NetworkUtils.isConnected(mContext)) { +// ToastUtils.showShort("网络异常,请稍后重试"); +// } else { +// ToastUtils.showShort("离站上报失败:" + failMsg); +// } } }); } diff --git a/OCH/mogo-och-shuttle/src/main/java/com/mogo/och/bus/presenter/BusPresenter.java b/OCH/mogo-och-shuttle/src/main/java/com/mogo/och/bus/presenter/BusPresenter.java index 3e97df4a91..d1396089b7 100644 --- a/OCH/mogo-och-shuttle/src/main/java/com/mogo/och/bus/presenter/BusPresenter.java +++ b/OCH/mogo-och-shuttle/src/main/java/com/mogo/och/bus/presenter/BusPresenter.java @@ -18,7 +18,7 @@ import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotStatusListener; import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListenerManager; import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger; import com.mogo.eagle.core.utilcode.util.UiThreadHandler; -import com.mogo.och.bus.bean.BusStationBean; +import com.mogo.och.data.bean.BusStationBean; import com.mogo.och.bus.bean.WriteOffPassenger; import com.mogo.och.bus.callback.IBusADASStatusCallback; import com.mogo.och.bus.callback.IBusControllerStatusCallback; @@ -308,7 +308,8 @@ public class BusPresenter extends Presenter CallerLogger.INSTANCE.d(M_BUS + TAG, " loginStatus =" + LoginStatusManager.isLogin()); if(LoginStatusManager.isLogin()){ OrderModel.getInstance().startOrStopOrderLoop(true); - OrderModel.getInstance().queryBusRoutes(); +// OrderModel.getInstance().queryBusRoutes(); + OrderModel.getInstance().queryBusCacheRoutes(); }else { BusTrajectoryManager.getInstance().stopTrajReqLoop(); OrderModel.getInstance().startOrStopOrderLoop(false); diff --git a/OCH/mogo-och-shuttle/src/main/java/com/mogo/och/bus/util/BusTrajectoryManager.java b/OCH/mogo-och-shuttle/src/main/java/com/mogo/och/bus/util/BusTrajectoryManager.java index 6cf6eb90c4..aafcea35ee 100644 --- a/OCH/mogo-och-shuttle/src/main/java/com/mogo/och/bus/util/BusTrajectoryManager.java +++ b/OCH/mogo-och-shuttle/src/main/java/com/mogo/och/bus/util/BusTrajectoryManager.java @@ -6,11 +6,10 @@ import com.mogo.eagle.core.data.autopilot.AutopilotControlParameters; import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotControlManager; import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger; import com.mogo.eagle.core.utilcode.util.GsonUtils; -import com.mogo.och.bus.bean.BusRoutesResult; +import com.mogo.och.data.bean.BusRoutesResult; import com.mogo.och.bus.constant.BusConst; import com.mogo.och.bus.model.OrderModel; import com.mogo.och.common.module.biz.constant.LoginStatusManager; -import com.zhidao.socket.utils.LoginStatusUtil; import java.util.concurrent.TimeUnit; diff --git a/settings.gradle b/settings.gradle index 84bd6f8517..c52260c59e 100644 --- a/settings.gradle +++ b/settings.gradle @@ -68,3 +68,4 @@ include ':OCH:mogo-och-charter' include ':OCH:mogo-och-charter-passenger' include ':OCH:mogo-och-shuttle' include ':OCH:mogo-och-shuttle-passenger' +include ':OCH:mogo-och-data' From dec5d11208fd1cf63797cbdbf086e27c720749f7 Mon Sep 17 00:00:00 2001 From: wangmingjun Date: Thu, 30 Mar 2023 18:02:08 +0800 Subject: [PATCH 02/14] =?UTF-8?q?[opt]=20=E5=BC=B1=E7=BD=91=E7=BC=93?= =?UTF-8?q?=E5=AD=98=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../passenger/model/BusPassengerModel.java | 21 +++-- .../presenter/BusPassengerPresenter.kt | 5 +- .../och/bus/passenger/ui/view/LineSiteView.kt | 3 +- .../mogo/och/charter/model/DriverM1Model.kt | 3 + .../och/common/module/bean/AppConnectMsg.kt | 11 --- .../och/common/module/bean/dpmsg/BaseDPMsg.kt | 7 -- .../common/module/bean/dpmsg/ChangeDestMsg.kt | 15 ---- .../module/bean/dpmsg/DPCommonOperationMsg.kt | 9 -- .../och/common/module/bean/dpmsg/DPMsgType.kt | 3 +- .../module/bean/dpmsg/DPOperateDoorMsg.kt | 9 -- .../module/bean/dpmsg/DPOrderClosedMsg.kt | 9 -- .../och/common/module/bean/dpmsg/DataBean.kt | 47 ++++++++++ OCH/mogo-och-data/build.gradle | 12 +-- .../com/mogo/och/data/bean/BusCacheData.kt | 12 --- .../passenger/model/BusPassengerModel.java | 72 +++++++++++---- .../network/BusPassengerServiceManager.kt | 4 - .../com/mogo/och/bus/model/OrderModel.java | 90 ++++++++++++++----- 17 files changed, 198 insertions(+), 134 deletions(-) delete mode 100644 OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/bean/AppConnectMsg.kt delete mode 100644 OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/bean/dpmsg/BaseDPMsg.kt delete mode 100644 OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/bean/dpmsg/ChangeDestMsg.kt delete mode 100644 OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/bean/dpmsg/DPCommonOperationMsg.kt delete mode 100644 OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/bean/dpmsg/DPOperateDoorMsg.kt delete mode 100644 OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/bean/dpmsg/DPOrderClosedMsg.kt create mode 100644 OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/bean/dpmsg/DataBean.kt delete mode 100644 OCH/mogo-och-data/src/main/java/com/mogo/och/data/bean/BusCacheData.kt diff --git a/OCH/mogo-och-bus-passenger/src/jinlvvan/java/com/mogo/och/bus/passenger/model/BusPassengerModel.java b/OCH/mogo-och-bus-passenger/src/jinlvvan/java/com/mogo/och/bus/passenger/model/BusPassengerModel.java index b1f1b0e000..5eee23fd2e 100644 --- a/OCH/mogo-och-bus-passenger/src/jinlvvan/java/com/mogo/och/bus/passenger/model/BusPassengerModel.java +++ b/OCH/mogo-och-bus-passenger/src/jinlvvan/java/com/mogo/och/bus/passenger/model/BusPassengerModel.java @@ -55,7 +55,10 @@ import com.mogo.och.bus.passenger.callback.IBusPassengerRouteLineInfoCallback; import com.mogo.och.bus.passenger.constant.BusPassengerConst; import com.mogo.och.bus.passenger.network.BusPassengerModelLoopManager; import com.mogo.och.bus.passenger.network.BusPassengerServiceManager; -import com.mogo.och.common.module.bean.AppConnectMsg; +import com.mogo.och.common.module.bean.dpmsg.AppConnectMsg; +import com.mogo.och.common.module.bean.dpmsg.BaseDPMsg; +import com.mogo.och.common.module.bean.dpmsg.DPMsgType; +import com.mogo.och.common.module.bean.dpmsg.LoginCacheStatus; import com.mogo.och.common.module.biz.common.socketmessage.OCHSocketMessageManager; import com.mogo.och.common.module.biz.constant.OchCommonConst; import com.mogo.och.common.module.biz.network.OchCommonServiceCallback; @@ -319,12 +322,16 @@ public class BusPassengerModel { public void onReceivedMsg(int type, @NonNull byte[] byteArray) { if (OchCommonConst.BUSINESS_STRING == type){ - AppConnectMsg msg = GsonUtils.fromJson(new String(byteArray), AppConnectMsg.class); - Logger.d(SceneConstant.M_BUS_P+TAG,"onReceivedMsg = "+GsonUtils.toJson(msg)); - if (msg.isViewShow()){ //消息盒子显示内容 - OCHSocketMessageManager.INSTANCE.pushAppOperationalMsgBox( - DateTimeUtil.getCurrentTimeStamp(),msg.getMsg(), - OCHSocketMessageManager.OPERATION_SYSTEM); + BaseDPMsg baseMsg = GsonUtils.fromJson(new String(byteArray), BaseDPMsg.class); + Logger.d(SceneConstant.M_BUS_P+TAG,"onReceivedMsg = "+GsonUtils.toJson(baseMsg)); + + if (baseMsg != null && baseMsg.getType() == DPMsgType.TYPE_COMMON.getType()){ + AppConnectMsg msg = GsonUtils.fromJson(new String(byteArray), AppConnectMsg.class); + if (msg.isViewShow()){ //消息盒子显示内容 + OCHSocketMessageManager.INSTANCE.pushAppOperationalMsgBox( + DateTimeUtil.getCurrentTimeStamp(),msg.getMsg(), + OCHSocketMessageManager.OPERATION_SYSTEM); + } } } } diff --git a/OCH/mogo-och-charter-passenger/src/m1/java/com/mogo/och/bus/passenger/presenter/BusPassengerPresenter.kt b/OCH/mogo-och-charter-passenger/src/m1/java/com/mogo/och/bus/passenger/presenter/BusPassengerPresenter.kt index 683b36bbff..2fb96ad0f1 100644 --- a/OCH/mogo-och-charter-passenger/src/m1/java/com/mogo/och/bus/passenger/presenter/BusPassengerPresenter.kt +++ b/OCH/mogo-och-charter-passenger/src/m1/java/com/mogo/och/bus/passenger/presenter/BusPassengerPresenter.kt @@ -21,9 +21,6 @@ import com.mogo.och.bus.passenger.model.CharterPassengerModel import com.mogo.och.bus.passenger.model.IOrderStatusChangeListener import com.mogo.och.bus.passenger.model.OrderStatusEnum import com.mogo.och.bus.passenger.ui.MainFragment -import com.mogo.och.common.module.bean.dpmsg.BaseDPMsg -import com.mogo.och.common.module.bean.dpmsg.ChangeDestMsg -import com.mogo.och.common.module.bean.dpmsg.DPCommonOperationMsg import com.mogo.och.common.module.bean.dpmsg.DPMsgType import com.mogo.och.common.module.biz.common.socketmessage.OCHSocketMessageManager import com.mogo.och.common.module.biz.constant.OchCommonConst @@ -33,6 +30,8 @@ import com.mogo.och.common.module.utils.DateTimeUtil import com.mogo.och.common.module.utils.NumberFormatUtil import com.mogo.och.common.module.utils.SoundPoolHelper import com.mogo.och.common.module.voice.VoiceNotice +import com.mogo.och.common.module.bean.dpmsg.BaseDPMsg +import com.mogo.och.common.module.bean.dpmsg.DPCommonOperationMsg import io.reactivex.disposables.Disposable import java.util.* diff --git a/OCH/mogo-och-charter-passenger/src/m1/java/com/mogo/och/bus/passenger/ui/view/LineSiteView.kt b/OCH/mogo-och-charter-passenger/src/m1/java/com/mogo/och/bus/passenger/ui/view/LineSiteView.kt index 138d2c8079..9827035e87 100644 --- a/OCH/mogo-och-charter-passenger/src/m1/java/com/mogo/och/bus/passenger/ui/view/LineSiteView.kt +++ b/OCH/mogo-och-charter-passenger/src/m1/java/com/mogo/och/bus/passenger/ui/view/LineSiteView.kt @@ -25,17 +25,16 @@ import com.mogo.och.bus.passenger.bean.response.SiteInfoResponse import com.mogo.och.bus.passenger.model.CharterPassengerModel import com.mogo.och.bus.passenger.net.BusPassengerModelLoopManager import com.mogo.och.bus.passenger.net.BusPassengerServiceManager -import com.mogo.och.bus.passenger.presenter.BusPassengerFunctionDevicePresenter import com.mogo.och.bus.passenger.ui.M1ContainFragment import com.mogo.och.bus.passenger.ui.adapter.OrderLineItemAdapter import com.mogo.och.bus.passenger.ui.adapter.OrderSiteItemAdapter import com.mogo.och.bus.passenger.utils.RxUtils import com.mogo.och.bus.passenger.view.BottomDecoration -import com.mogo.och.common.module.bean.dpmsg.ChangeDestMsg import com.mogo.och.common.module.bean.dpmsg.DPMsgType import com.mogo.och.common.module.biz.constant.OchCommonConst import com.mogo.och.common.module.biz.network.OchCommonServiceCallback import com.mogo.och.common.module.manager.OCHPlanningStopSideStatusManager +import com.mogo.och.common.module.bean.dpmsg.ChangeDestMsg import io.reactivex.disposables.Disposable import kotlinx.android.synthetic.m1.m1_order_lineside.view.* import me.jessyan.autosize.utils.AutoSizeUtils diff --git a/OCH/mogo-och-charter/src/driverm1/java/com/magic/mogo/och/charter/model/DriverM1Model.kt b/OCH/mogo-och-charter/src/driverm1/java/com/magic/mogo/och/charter/model/DriverM1Model.kt index 3a99ad95a6..a5b304a113 100644 --- a/OCH/mogo-och-charter/src/driverm1/java/com/magic/mogo/och/charter/model/DriverM1Model.kt +++ b/OCH/mogo-och-charter/src/driverm1/java/com/magic/mogo/och/charter/model/DriverM1Model.kt @@ -52,6 +52,7 @@ import com.mogo.och.common.module.manager.CharterSendTripInfoManager.END_TRIP import com.mogo.och.common.module.manager.CharterSendTripInfoManager.START_TRIP import com.mogo.och.common.module.manager.OCHAdasAbilityManager import com.mogo.och.common.module.utils.* +import com.mogo.och.data.bean.* import io.reactivex.exceptions.UndeliverableException import io.reactivex.functions.Consumer import io.reactivex.plugins.RxJavaPlugins @@ -206,6 +207,8 @@ class DriverM1Model { OCHSocketMessageManager.msgWriteOffPassengerType ) stopLoopAbnormalFactors() + + CallerTelematicListenerManager.removeListener(TAG) } /** * 接收乘客屏发来确认信息 diff --git a/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/bean/AppConnectMsg.kt b/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/bean/AppConnectMsg.kt deleted file mode 100644 index 2f01265325..0000000000 --- a/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/bean/AppConnectMsg.kt +++ /dev/null @@ -1,11 +0,0 @@ -package com.mogo.och.common.module.bean - -import com.mogo.och.common.module.bean.dpmsg.DPMsgType - -/** - * @author: wangmingjun - * @date: 2023/2/14 - */ -data class AppConnectMsg(var isViewShow: Boolean,var isPlay: Boolean,var msg: String - ,var type:Int = DPMsgType.TYPE_COMMON.type -) diff --git a/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/bean/dpmsg/BaseDPMsg.kt b/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/bean/dpmsg/BaseDPMsg.kt deleted file mode 100644 index ca7ead50d8..0000000000 --- a/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/bean/dpmsg/BaseDPMsg.kt +++ /dev/null @@ -1,7 +0,0 @@ -package com.mogo.och.common.module.bean.dpmsg - -/** - * @author: wangmingjun - * @date: 2023/2/24 - */ -open class BaseDPMsg(var type: Int) // 0: 常规 1:确认路线/站点 2:开/关车门 3:结束订单 \ No newline at end of file diff --git a/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/bean/dpmsg/ChangeDestMsg.kt b/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/bean/dpmsg/ChangeDestMsg.kt deleted file mode 100644 index d130f49741..0000000000 --- a/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/bean/dpmsg/ChangeDestMsg.kt +++ /dev/null @@ -1,15 +0,0 @@ -package com.mogo.och.common.module.bean.dpmsg - -/** - * @author: wangmingjun - * @date: 2023/2/24 - */ -data class ChangeDestMsg( - var lineId: Int, //线路id - var lineName: String = "", //线路名称 - var startSiteId: Int= 0, //当前站点 - var startSiteName: String = "", - var destSiteId: Int= 0, //目的地 - var destSiteName: String = "", - var isConfirmed: Boolean = false //司机端是否同意 -): BaseDPMsg(DPMsgType.TYPE_CHANGE_DEST.type) diff --git a/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/bean/dpmsg/DPCommonOperationMsg.kt b/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/bean/dpmsg/DPCommonOperationMsg.kt deleted file mode 100644 index af7badf1fa..0000000000 --- a/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/bean/dpmsg/DPCommonOperationMsg.kt +++ /dev/null @@ -1,9 +0,0 @@ -package com.mogo.och.common.module.bean.dpmsg - -/** - * @author: wangmingjun - * @date: 2023/2/24 - */ -data class DPCommonOperationMsg( - var msg: String -): BaseDPMsg(DPMsgType.TYPE_COMMON.type) diff --git a/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/bean/dpmsg/DPMsgType.kt b/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/bean/dpmsg/DPMsgType.kt index aff4fe49c2..e47d5900fd 100644 --- a/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/bean/dpmsg/DPMsgType.kt +++ b/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/bean/dpmsg/DPMsgType.kt @@ -9,5 +9,6 @@ enum class DPMsgType(val type: Int) { TYPE_CHANGE_DEST(1),// 变更目的地确认 TYPE_OPEN_CLOSE_DOOR(2),//开关门 TYPE_ORDER_CLOSED(3), // 订单结束 - TYPE_TASK_DETAILS(4) //路线任务详情 + TYPE_TASK_DETAILS(4), //路线任务详情 + TYPE_LOGIN_STATUS(5) //login status } \ No newline at end of file diff --git a/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/bean/dpmsg/DPOperateDoorMsg.kt b/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/bean/dpmsg/DPOperateDoorMsg.kt deleted file mode 100644 index 30a4f2c3b4..0000000000 --- a/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/bean/dpmsg/DPOperateDoorMsg.kt +++ /dev/null @@ -1,9 +0,0 @@ -package com.mogo.och.common.module.bean.dpmsg - -/** - * @author: wangmingjun - * @date: 2023/2/24 - */ -data class DPOperateDoorMsg( - var open: Boolean = false // true: 开门, false: 关门 -): BaseDPMsg(DPMsgType.TYPE_OPEN_CLOSE_DOOR.type) diff --git a/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/bean/dpmsg/DPOrderClosedMsg.kt b/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/bean/dpmsg/DPOrderClosedMsg.kt deleted file mode 100644 index 5785b9500b..0000000000 --- a/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/bean/dpmsg/DPOrderClosedMsg.kt +++ /dev/null @@ -1,9 +0,0 @@ -package com.mogo.och.common.module.bean.dpmsg - -/** - * @author: wangmingjun - * @date: 2023/2/24 - */ -data class DPOrderClosedMsg( - var closed: Boolean = true // true: 开门, false: 关门 -): BaseDPMsg(DPMsgType.TYPE_ORDER_CLOSED.type) diff --git a/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/bean/dpmsg/DataBean.kt b/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/bean/dpmsg/DataBean.kt new file mode 100644 index 0000000000..959b2ece21 --- /dev/null +++ b/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/bean/dpmsg/DataBean.kt @@ -0,0 +1,47 @@ +package com.mogo.och.common.module.bean.dpmsg +/** + * @author: wangmingjun + * @date: 2023/3/27 + */ + +object BusCacheKey{ + const val BUS_LINE_CACHE = "bus_line_cache" +} + +open class BaseDPMsg(open var type: Int) // 0: 常规 1:确认路线/站点 2:开/关车门 3:结束订单 + +data class LoginCacheStatus( + var loginStatus: Int, + var updateTime: Long + ): BaseDPMsg(DPMsgType.TYPE_LOGIN_STATUS.type) + +data class ChangeDestMsg( + var lineId: Int, //线路id + var lineName: String = "", //线路名称 + var startSiteId: Int= 0, //当前站点 + var startSiteName: String = "", + var destSiteId: Int= 0, //目的地 + var destSiteName: String = "", + var isConfirmed: Boolean = false //司机端是否同意 +): BaseDPMsg(DPMsgType.TYPE_CHANGE_DEST.type) + +data class DPCommonOperationMsg( + var msg: String +): BaseDPMsg(DPMsgType.TYPE_COMMON.type) + +data class DPOperateDoorMsg( + var open: Boolean = false // true: 开门, false: 关门 +): BaseDPMsg(DPMsgType.TYPE_OPEN_CLOSE_DOOR.type) + +data class DPOrderClosedMsg( + var closed: Boolean = true // true: 开门, false: 关门 +): BaseDPMsg(DPMsgType.TYPE_ORDER_CLOSED.type) + +data class AppConnectMsg(var isViewShow: Boolean, var isPlay: Boolean, var msg: String, + override var type: Int +): BaseDPMsg(type) + +data class TaskDetailsMsg( + var msg: String, + override var type: Int +): BaseDPMsg(type) diff --git a/OCH/mogo-och-data/build.gradle b/OCH/mogo-och-data/build.gradle index 7dfccbfa8d..ae2e1b8a34 100644 --- a/OCH/mogo-och-data/build.gradle +++ b/OCH/mogo-och-data/build.gradle @@ -31,12 +31,12 @@ android { dependencies { - implementation 'androidx.core:core-ktx:1.7.0' - implementation 'androidx.appcompat:appcompat:1.3.0' - implementation 'com.google.android.material:material:1.4.0' - testImplementation 'junit:junit:4.13.2' - androidTestImplementation 'androidx.test.ext:junit:1.1.3' - androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.0' + implementation fileTree(dir: "libs", include: ["*.jar"]) + implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version" + implementation rootProject.ext.dependencies.androidxccorektx + implementation rootProject.ext.dependencies.androidxappcompat + implementation rootProject.ext.dependencies.material + implementation rootProject.ext.dependencies.rxandroid if (Boolean.valueOf(USE_MAVEN_PACKAGE)) { api rootProject.ext.dependencies.mogoutils diff --git a/OCH/mogo-och-data/src/main/java/com/mogo/och/data/bean/BusCacheData.kt b/OCH/mogo-och-data/src/main/java/com/mogo/och/data/bean/BusCacheData.kt deleted file mode 100644 index eee7b42d53..0000000000 --- a/OCH/mogo-och-data/src/main/java/com/mogo/och/data/bean/BusCacheData.kt +++ /dev/null @@ -1,12 +0,0 @@ -package com.mogo.och.data.bean - -/** - * @author: wangmingjun - * @date: 2023/3/27 - */ - -object BusCacheKey{ - const val BUS_LINE_CACHE = "bus_line_cache" -} - -data class LoginCacheStatus(var login: Boolean,var updateTime: Long) \ No newline at end of file diff --git a/OCH/mogo-och-shuttle-passenger/src/jinlvvan/java/com/mogo/och/bus/passenger/model/BusPassengerModel.java b/OCH/mogo-och-shuttle-passenger/src/jinlvvan/java/com/mogo/och/bus/passenger/model/BusPassengerModel.java index 8be336ca13..02fa2e6165 100644 --- a/OCH/mogo-och-shuttle-passenger/src/jinlvvan/java/com/mogo/och/bus/passenger/model/BusPassengerModel.java +++ b/OCH/mogo-och-shuttle-passenger/src/jinlvvan/java/com/mogo/och/bus/passenger/model/BusPassengerModel.java @@ -22,12 +22,19 @@ import com.mogo.commons.module.status.IMogoStatusChangedListener; import com.mogo.commons.module.status.MogoStatusManager; import com.mogo.eagle.core.function.api.telematic.IReceivedMsgListener; import com.mogo.eagle.core.function.call.telematic.CallerTelematicListenerManager; +import com.mogo.eagle.core.function.call.telematic.CallerTelematicManager; import com.mogo.eagle.core.utilcode.mogo.logger.Logger; import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant; import com.mogo.eagle.core.utilcode.util.GsonUtils; +import com.mogo.eagle.core.utilcode.util.ToastUtils; +import com.mogo.och.bus.passenger.R; +import com.mogo.och.bus.passenger.bean.BusPassengerOperationStatusResponse; import com.mogo.och.bus.passenger.bean.BusPassengerRoutesResponse; -import com.mogo.och.common.module.bean.AppConnectMsg; +import com.mogo.och.common.module.bean.dpmsg.AppConnectMsg; +import com.mogo.och.common.module.bean.dpmsg.BaseDPMsg; import com.mogo.och.common.module.bean.dpmsg.DPMsgType; +import com.mogo.och.common.module.bean.dpmsg.LoginCacheStatus; +import com.mogo.och.common.module.bean.dpmsg.TaskDetailsMsg; import com.mogo.och.common.module.biz.common.socketmessage.OCHSocketMessageManager; import com.mogo.och.common.module.biz.constant.OchCommonConst; import com.mogo.och.common.module.utils.DateTimeUtil; @@ -47,9 +54,6 @@ import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger; import com.mogo.eagle.core.utilcode.mogo.storage.SharedPrefsMgr; import com.mogo.eagle.core.utilcode.util.CoordinateUtils; import com.mogo.eagle.core.utilcode.util.NetworkUtils; -import com.mogo.eagle.core.utilcode.util.ToastUtils; -import com.mogo.och.bus.passenger.R; -import com.mogo.och.bus.passenger.bean.BusPassengerOperationStatusResponse; import com.mogo.och.bus.passenger.callback.IBusPassegerDriverStatusCallback; import com.mogo.och.bus.passenger.callback.IBusPassengerADASStatusCallback; import com.mogo.och.bus.passenger.callback.IBusPassengerAutopilotPlanningCallback; @@ -127,11 +131,19 @@ public class BusPassengerModel { public void init( Context context ) { mContext = context.getApplicationContext(); initListeners(); - // TODO: 2022/3/31 queryDriverOperationStatus(); + queryDriverByLocalDriver(); startOrStopOrderLoop(true); } + private void queryDriverByLocalDriver() { + //本地去请求司机端 + AppConnectMsg msg = new AppConnectMsg(false,false,"", + DPMsgType.TYPE_TASK_DETAILS.getType()); + + sendMsgToServer(GsonUtils.toJson(msg)); + } + public void setDriverStatusCallback(IBusPassegerDriverStatusCallback callback){ this.mDriverStatusCallback = callback; } @@ -144,6 +156,13 @@ public class BusPassengerModel { handler.sendEmptyMessageDelayed( MSG_QUERY_BUS_P_STATION, QUERY_BUS_P_STATION_DELAY ); } + private void sendMsgToServer(String msg){ + CallerTelematicManager.INSTANCE.sendMsgToServer( + OchCommonConst.BUSINESS_STRING, + GsonUtils.toJson(msg).getBytes() + ); + } + private void queryDriverOperationStatus() { BusPassengerServiceManager.queryDriverOperationStatus(mContext , new OchCommonServiceCallback() { @@ -164,7 +183,7 @@ public class BusPassengerModel { } else { ToastUtils.showShort(mContext.getString(R.string.request_error_tip)); } - queryDriverOperationDelay(); + queryDriverByLocalDriver(); } @Override @@ -194,6 +213,11 @@ public class BusPassengerModel { routesResult.getWriteVersion() < data.getResult().getWriteVersion()){ routesResult = data.getResult(); } + + if (routesResult == null){ + routesResult = data.getResult(); + } + updatePassengerRouteInfo(routesResult); } @@ -323,31 +347,41 @@ public class BusPassengerModel { AbnormalFactorsLoopManager.INSTANCE.stopLoopAbnormalFactors(); CallerTelematicListenerManager.INSTANCE.removeListener(TAG); + CallerTelematicListenerManager.INSTANCE.removeListener(TAG); } private final IReceivedMsgListener mReceivedMsgListener = new IReceivedMsgListener() { @Override public void onReceivedMsg(int type, @NonNull byte[] byteArray) { - if (OchCommonConst.BUSINESS_STRING == type){ + if (OchCommonConst.BUSINESS_STRING == type) { - AppConnectMsg msg = GsonUtils.fromJson(new String(byteArray), AppConnectMsg.class); - Logger.d(SceneConstant.M_BUS_P+TAG,"onReceivedMsg = "+GsonUtils.toJson(msg)); - if (msg.getType() == DPMsgType.TYPE_TASK_DETAILS.getType()){ - if (msg.getMsg().isEmpty()){ + BaseDPMsg baseMsg = GsonUtils.fromJson(new String(byteArray), BaseDPMsg.class); + Logger.d(SceneConstant.M_BUS_P + TAG, "onReceivedMsg = " + GsonUtils.toJson(baseMsg)); + + if (baseMsg != null && baseMsg.getType() == DPMsgType.TYPE_COMMON.getType()) { + AppConnectMsg msg = GsonUtils.fromJson(new String(byteArray), AppConnectMsg.class); + if (msg != null && msg.isViewShow()) { //消息盒子显示内容 + OCHSocketMessageManager.INSTANCE.pushAppOperationalMsgBox( + DateTimeUtil.getCurrentTimeStamp(), msg.getMsg(), + OCHSocketMessageManager.OPERATION_SYSTEM); + } + } else if (baseMsg != null && baseMsg.getType() == DPMsgType.TYPE_LOGIN_STATUS.getType()) { + LoginCacheStatus msg = GsonUtils.fromJson(new String(byteArray), LoginCacheStatus.class); + if (msg != null) { + mDriverStatusCallback.changeOperationStatus(msg.getLoginStatus() == 1); + } + } else if (baseMsg != null && baseMsg.getType() == DPMsgType.TYPE_TASK_DETAILS.getType()) { + TaskDetailsMsg msg = GsonUtils.fromJson(new String(byteArray), TaskDetailsMsg.class); + Logger.d(SceneConstant.M_BUS_P + TAG, "onReceivedMsg = " + GsonUtils.toJson(msg)); + if (msg == null || msg.getMsg().isEmpty()) { clearLocalRouteResult(); return; } - BusRoutesResult result = GsonUtils.fromJson(msg.getMsg(),BusRoutesResult.class); - if (result.getWriteVersion() > routesResult.getWriteVersion()){ + BusRoutesResult result = GsonUtils.fromJson(msg.getMsg(), BusRoutesResult.class); + if (result != null && result.getWriteVersion() > routesResult.getWriteVersion()) { routesResult = result; updatePassengerRouteInfo(routesResult); } - return; - } - if (msg.isViewShow()){ //消息盒子显示内容 - OCHSocketMessageManager.INSTANCE.pushAppOperationalMsgBox( - DateTimeUtil.getCurrentTimeStamp(),msg.getMsg(), - OCHSocketMessageManager.OPERATION_SYSTEM); } } } diff --git a/OCH/mogo-och-shuttle-passenger/src/jinlvvan/java/com/mogo/och/bus/passenger/network/BusPassengerServiceManager.kt b/OCH/mogo-och-shuttle-passenger/src/jinlvvan/java/com/mogo/och/bus/passenger/network/BusPassengerServiceManager.kt index b868bd9994..ee038d1287 100644 --- a/OCH/mogo-och-shuttle-passenger/src/jinlvvan/java/com/mogo/och/bus/passenger/network/BusPassengerServiceManager.kt +++ b/OCH/mogo-och-shuttle-passenger/src/jinlvvan/java/com/mogo/och/bus/passenger/network/BusPassengerServiceManager.kt @@ -4,13 +4,9 @@ import android.content.Context import com.mogo.eagle.core.function.call.telematic.CallerTelematicManager.getServerToken import com.mogo.och.bus.passenger.bean.BusPassengerRoutesResponse import com.mogo.cloud.passport.MoGoAiCloudClientConfig -import com.mogo.eagle.core.data.config.FunctionBuildConfig -import com.mogo.eagle.core.function.call.telematic.CallerTelematicManager import com.mogo.och.bus.passenger.bean.BusPassengerQueryLineRequest import com.mogo.och.bus.passenger.bean.BusPassengerOperationStatusResponse import com.mogo.eagle.core.network.MoGoRetrofitFactory -import com.mogo.eagle.core.utilcode.mogo.AppIdentityModeUtils -import com.mogo.och.bus.passenger.constant.URLConst.Companion.getBaseUrl import com.mogo.och.common.module.biz.constant.OchCommonConst import com.mogo.och.common.module.biz.network.OchCommonServiceCallback import com.mogo.och.common.module.biz.network.OchCommonSubscribeImpl diff --git a/OCH/mogo-och-shuttle/src/main/java/com/mogo/och/bus/model/OrderModel.java b/OCH/mogo-och-shuttle/src/main/java/com/mogo/och/bus/model/OrderModel.java index 10ee534561..54d969edc7 100644 --- a/OCH/mogo-och-shuttle/src/main/java/com/mogo/och/bus/model/OrderModel.java +++ b/OCH/mogo-och-shuttle/src/main/java/com/mogo/och/bus/model/OrderModel.java @@ -16,6 +16,8 @@ import com.alibaba.android.arouter.launcher.ARouter; import com.amap.api.maps.model.LatLng; import com.elegant.network.utils.GsonUtil; import com.mogo.aicloud.services.socket.IMogoOnMessageListener; +import com.mogo.eagle.core.function.api.telematic.IReceivedMsgListener; +import com.mogo.eagle.core.function.call.telematic.CallerTelematicListenerManager; import com.mogo.eagle.core.utilcode.util.CoordinateUtils; import com.mogo.commons.AbsMogoApplication; import com.mogo.commons.module.status.IMogoStatusChangedListener; @@ -26,7 +28,12 @@ import com.mogo.eagle.core.data.autopilot.AutopilotControlParameters; import com.mogo.eagle.core.data.config.FunctionBuildConfig; import com.mogo.eagle.core.data.map.MogoLocation; import com.mogo.och.bus.bean.BusRoutesResponse; +import com.mogo.och.common.module.bean.dpmsg.AppConnectMsg; +import com.mogo.och.common.module.bean.dpmsg.BaseDPMsg; import com.mogo.och.common.module.bean.dpmsg.DPMsgType; +import com.mogo.och.common.module.bean.dpmsg.LoginCacheStatus; +import com.mogo.och.common.module.bean.dpmsg.TaskDetailsMsg; +import com.mogo.och.common.module.biz.constant.LoginStatusManager; import com.mogo.och.data.bean.BusStationBean; import com.mogo.och.common.module.biz.common.socketmessage.data.SystemMsg; import com.mogo.och.common.module.biz.constant.OchCommonConst; @@ -57,7 +64,6 @@ import com.mogo.och.bus.net.OrderServiceManager; import com.mogo.och.bus.util.BusAnalyticsManager; import com.mogo.och.bus.util.BusSendTripInfoManager; import com.mogo.och.bus.util.BusTrajectoryManager; -import com.mogo.och.common.module.bean.AppConnectMsg; import com.mogo.och.common.module.biz.common.socketmessage.OCHSocketMessageManager; import com.mogo.och.common.module.biz.network.OchCommonServiceCallback; import com.mogo.och.common.module.biz.provider.LoginService; @@ -70,8 +76,9 @@ import com.mogo.och.common.module.utils.NumberFormatUtil; import com.mogo.och.common.module.utils.PinYinUtil; import com.mogo.och.common.module.voice.VoiceManager; import com.mogo.och.common.module.voice.VoiceNotice; -import com.mogo.och.data.bean.BusCacheKey; +import com.mogo.och.common.module.bean.dpmsg.BusCacheKey; import com.mogo.och.data.manager.cache.CacheDataManager; +import com.zhidao.socket.utils.LoginStatusUtil; import org.jetbrains.annotations.NotNull; @@ -177,6 +184,9 @@ public class OrderModel { AbnormalFactorsLoopManager.INSTANCE.startLoopAbnormalFactors(mContext); + //监听乘客屏发来的消息 + CallerTelematicListenerManager.INSTANCE.addListener(TAG,mReceivedMsgListener); + //2022.1.28 // 调用Disposable.dispose() 时候会出现InterruptedException 导致出现崩溃 // The exception could not be delivered to the consumer because it has already canceled/disposed @@ -215,6 +225,23 @@ public class OrderModel { }); } + private final IReceivedMsgListener mReceivedMsgListener = + new IReceivedMsgListener() { + @Override + public void onReceivedMsg(int type, @NonNull byte[] byteArray) { + if (OchCommonConst.BUSINESS_STRING == type){ + BaseDPMsg msg = GsonUtils.fromJson(new String(byteArray),BaseDPMsg.class); + if (msg!=null && msg.getType() == DPMsgType.TYPE_TASK_DETAILS.getType()){ + if (LoginStatusUtil.isLogin()){ + sendTaskDetailsToClients(); + }else {// 未登陆 + sendLoginStatusToClient(); + } + } + } + } + }; + private final IMogoOnMessageListener mMogoOnMessageListener = new IMogoOnMessageListener() { @Override @@ -332,6 +359,8 @@ public class OrderModel { OCHSocketMessageManager.msgWriteOffPassengerType); AbnormalFactorsLoopManager.INSTANCE.stopLoopAbnormalFactors(); + //监听乘客屏发来的消息 + CallerTelematicListenerManager.INSTANCE.removeListener(TAG); } private Object readResolve() { @@ -442,14 +471,14 @@ public class OrderModel { || data.getResult().getSites() == null || data.getResult().getSites().isEmpty()) { // //当为空时,显示无绑定路线图 -// CallerLogger.INSTANCE.d(M_BUS + TAG, "获取到小巴路线数据:空 "); -// if (refreshBusStationsCallback != null) { -// refreshBusStationsCallback.updateEmptyUi(); -// } -// clearAutopilotControlParameters(); -// closeBeautificationMode(); -// clearStartAutopilotTag(); -// removeTipRunnables(); + CallerLogger.INSTANCE.d(M_BUS + TAG, "获取到小巴路线数据:空 "); + if (refreshBusStationsCallback != null) { + refreshBusStationsCallback.updateEmptyUi(); + } + clearAutopilotControlParameters(); + closeBeautificationMode(); + clearStartAutopilotTag(); + removeTipRunnables(); CacheDataManager.Companion.getInstance().clearCacheData(mContext,BusCacheKey.BUS_LINE_CACHE); return; } @@ -461,7 +490,12 @@ public class OrderModel { BusCacheKey.BUS_LINE_CACHE, GsonUtils.toJson(data.getResult())); } - + if (busRoutesResult == null){ + CacheDataManager.Companion.getInstance().putCacheData(mContext, + BusCacheKey.BUS_LINE_CACHE, + GsonUtils.toJson(data.getResult())); + updateBusStatus(data.getResult()); + } } @@ -650,6 +684,8 @@ public class OrderModel { GsonUtils.toJson(busRoutesResult)); sendTaskDetailsToClients(); + + updateBusStatus(busRoutesResult); } } @@ -782,9 +818,22 @@ public class OrderModel { } private void sendTaskDetailsToClients() { - AppConnectMsg arrivedMsg = new AppConnectMsg(false,false,String.format(mContext - .getString(R.string.bus_arrived_station_tip), - GsonUtils.toJson(busRoutesResult)), DPMsgType.TYPE_TASK_DETAILS.getType()); + TaskDetailsMsg arrivedMsg = new TaskDetailsMsg(GsonUtils.toJson(busRoutesResult), + DPMsgType.TYPE_TASK_DETAILS.getType()); + + CallerTelematicManager.INSTANCE.sendMsgToAllClients(OchCommonConst.BUSINESS_STRING, + GsonUtils.toJson(arrivedMsg).getBytes()); + } + + private void sendLoginStatusToClient() { + int status = 0; + if (LoginStatusManager.isLogin()){ + status = 1; + }else { + status = 0; + } + LoginCacheStatus arrivedMsg = new LoginCacheStatus(status, DateTimeUtil.getCurrentTimeStamp()); + CallerTelematicManager.INSTANCE.sendMsgToAllClients(OchCommonConst.BUSINESS_STRING, GsonUtils.toJson(arrivedMsg).getBytes()); } @@ -798,29 +847,29 @@ public class OrderModel { } private void sendStartStationToClient(String nextStation) { - AppConnectMsg arrivedMsg = new AppConnectMsg(false,true,String.format(mContext + AppConnectMsg startMsg = new AppConnectMsg(false,true,String.format(mContext .getString(R.string.bus_leave_station_tip), nextStation),DPMsgType.TYPE_COMMON.getType()); UiThreadHandler.postDelayed(()-> CallerTelematicManager.INSTANCE.sendMsgToAllClients(OchCommonConst.BUSINESS_STRING, - GsonUtils.toJson(arrivedMsg).getBytes()),DELAY_10S); + GsonUtils.toJson(startMsg).getBytes()),DELAY_10S); } private void sendEndTaskToClient() { - AppConnectMsg arrivedMsg = new AppConnectMsg(false,true,mContext + AppConnectMsg endMsg = new AppConnectMsg(false,true,mContext .getString(R.string.bus_end_task_tip), DPMsgType.TYPE_COMMON.getType()); CallerTelematicManager.INSTANCE.sendMsgToAllClients(OchCommonConst.BUSINESS_STRING, - GsonUtils.toJson(arrivedMsg).getBytes()); + GsonUtils.toJson(endMsg).getBytes()); } public void sendWriteOffNumToClient(String msg){ - AppConnectMsg arrivedMsg = new AppConnectMsg(false,true,msg,DPMsgType.TYPE_COMMON.getType()); + AppConnectMsg passengerMsg = new AppConnectMsg(false,true,msg,DPMsgType.TYPE_COMMON.getType()); CallerTelematicManager.INSTANCE.sendMsgToAllClients(OchCommonConst.BUSINESS_STRING, - GsonUtils.toJson(arrivedMsg).getBytes()); + GsonUtils.toJson(passengerMsg).getBytes()); } /** @@ -842,6 +891,7 @@ public class OrderModel { CallerLogger.INSTANCE.d(M_BUS + TAG, "行程日志-离站成功开往下一站===="); leaveStationSuccess(backgroundCurrentStationIndex, currentStationName, finalNextStationName,finalNextStationNameKr); + OrderServiceManager.leaveStation(mContext, stationList.get(backgroundCurrentStationIndex).getSeq(), stationList.get(backgroundCurrentStationIndex).getSiteId(), From 8051629a30f51e8263eda781da2503d668299b58 Mon Sep 17 00:00:00 2001 From: wangmingjun Date: Thu, 30 Mar 2023 19:54:04 +0800 Subject: [PATCH 03/14] =?UTF-8?q?[opt]=20=E4=BF=AE=E6=94=B9=E5=AE=9E?= =?UTF-8?q?=E4=BD=93=E7=B1=BB=E9=80=A0=E6=88=90=E7=9A=84=E5=B4=A9=E6=BA=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../och/common/module/bean/dpmsg/DataBean.kt | 6 ++--- .../passenger/model/BusPassengerModel.java | 23 +++++++++++++------ .../com/mogo/och/bus/model/OrderModel.java | 16 ++++++------- 3 files changed, 26 insertions(+), 19 deletions(-) diff --git a/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/bean/dpmsg/DataBean.kt b/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/bean/dpmsg/DataBean.kt index 959b2ece21..774fe20cb9 100644 --- a/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/bean/dpmsg/DataBean.kt +++ b/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/bean/dpmsg/DataBean.kt @@ -38,10 +38,8 @@ data class DPOrderClosedMsg( ): BaseDPMsg(DPMsgType.TYPE_ORDER_CLOSED.type) data class AppConnectMsg(var isViewShow: Boolean, var isPlay: Boolean, var msg: String, - override var type: Int -): BaseDPMsg(type) +): BaseDPMsg(DPMsgType.TYPE_COMMON.type) data class TaskDetailsMsg( var msg: String, - override var type: Int -): BaseDPMsg(type) +): BaseDPMsg(DPMsgType.TYPE_TASK_DETAILS.type) diff --git a/OCH/mogo-och-shuttle-passenger/src/jinlvvan/java/com/mogo/och/bus/passenger/model/BusPassengerModel.java b/OCH/mogo-och-shuttle-passenger/src/jinlvvan/java/com/mogo/och/bus/passenger/model/BusPassengerModel.java index 02fa2e6165..ab399c03ca 100644 --- a/OCH/mogo-och-shuttle-passenger/src/jinlvvan/java/com/mogo/och/bus/passenger/model/BusPassengerModel.java +++ b/OCH/mogo-och-shuttle-passenger/src/jinlvvan/java/com/mogo/och/bus/passenger/model/BusPassengerModel.java @@ -138,8 +138,15 @@ public class BusPassengerModel { private void queryDriverByLocalDriver() { //本地去请求司机端 - AppConnectMsg msg = new AppConnectMsg(false,false,"", - DPMsgType.TYPE_TASK_DETAILS.getType()); + TaskDetailsMsg msg = new TaskDetailsMsg(""); + + sendMsgToServer(GsonUtils.toJson(msg)); + } + + private void queryLoginStatusByLocal() { + //本地去请求司机端 + LoginCacheStatus msg = new LoginCacheStatus(0, + DPMsgType.TYPE_LOGIN_STATUS.getType()); sendMsgToServer(GsonUtils.toJson(msg)); } @@ -244,11 +251,12 @@ public class BusPassengerModel { private void clearLocalRouteResult() { if (routesResult != null) { routesResult = null; - mNextStationIndex = 0; - startOrStopCalculateRouteInfo(false); - if (mRouteLineInfoCallback != null){ - mRouteLineInfoCallback.showNoTaskView(); - } + } + mNextStationIndex = 0; + startOrStopCalculateRouteInfo(false); + + if (mRouteLineInfoCallback != null){ + mRouteLineInfoCallback.showNoTaskView(); } } @@ -378,6 +386,7 @@ public class BusPassengerModel { return; } BusRoutesResult result = GsonUtils.fromJson(msg.getMsg(), BusRoutesResult.class); + if (result != null && result.getWriteVersion() > routesResult.getWriteVersion()) { routesResult = result; updatePassengerRouteInfo(routesResult); diff --git a/OCH/mogo-och-shuttle/src/main/java/com/mogo/och/bus/model/OrderModel.java b/OCH/mogo-och-shuttle/src/main/java/com/mogo/och/bus/model/OrderModel.java index 54d969edc7..a6b0fe9405 100644 --- a/OCH/mogo-och-shuttle/src/main/java/com/mogo/och/bus/model/OrderModel.java +++ b/OCH/mogo-och-shuttle/src/main/java/com/mogo/och/bus/model/OrderModel.java @@ -237,6 +237,8 @@ public class OrderModel { }else {// 未登陆 sendLoginStatusToClient(); } + }else if (msg != null && msg.getType() == DPMsgType.TYPE_LOGIN_STATUS.getType()){ + sendLoginStatusToClient(); } } } @@ -265,7 +267,7 @@ public class OrderModel { } if (list != null && list.contains(2)){ //乘客屏 - AppConnectMsg msg = new AppConnectMsg(true,false,obj.getContext(),DPMsgType.TYPE_COMMON.getType()); + AppConnectMsg msg = new AppConnectMsg(true,false,obj.getContext()); CallerTelematicManager.INSTANCE.sendMsgToAllClients(OchCommonConst.BUSINESS_STRING, GsonUtils.toJson(msg).getBytes()); } @@ -818,8 +820,7 @@ public class OrderModel { } private void sendTaskDetailsToClients() { - TaskDetailsMsg arrivedMsg = new TaskDetailsMsg(GsonUtils.toJson(busRoutesResult), - DPMsgType.TYPE_TASK_DETAILS.getType()); + TaskDetailsMsg arrivedMsg = new TaskDetailsMsg(GsonUtils.toJson(busRoutesResult)); CallerTelematicManager.INSTANCE.sendMsgToAllClients(OchCommonConst.BUSINESS_STRING, GsonUtils.toJson(arrivedMsg).getBytes()); @@ -841,7 +842,7 @@ public class OrderModel { private void sendArrivedStationToClient(String arriveStation) { AppConnectMsg arrivedMsg = new AppConnectMsg(false,true,String.format(mContext .getString(R.string.bus_arrived_station_tip), - arriveStation),DPMsgType.TYPE_COMMON.getType()); + arriveStation)); CallerTelematicManager.INSTANCE.sendMsgToAllClients(OchCommonConst.BUSINESS_STRING, GsonUtils.toJson(arrivedMsg).getBytes()); } @@ -849,7 +850,7 @@ public class OrderModel { private void sendStartStationToClient(String nextStation) { AppConnectMsg startMsg = new AppConnectMsg(false,true,String.format(mContext .getString(R.string.bus_leave_station_tip), - nextStation),DPMsgType.TYPE_COMMON.getType()); + nextStation)); UiThreadHandler.postDelayed(()-> CallerTelematicManager.INSTANCE.sendMsgToAllClients(OchCommonConst.BUSINESS_STRING, @@ -858,15 +859,14 @@ public class OrderModel { private void sendEndTaskToClient() { AppConnectMsg endMsg = new AppConnectMsg(false,true,mContext - .getString(R.string.bus_end_task_tip), - DPMsgType.TYPE_COMMON.getType()); + .getString(R.string.bus_end_task_tip)); CallerTelematicManager.INSTANCE.sendMsgToAllClients(OchCommonConst.BUSINESS_STRING, GsonUtils.toJson(endMsg).getBytes()); } public void sendWriteOffNumToClient(String msg){ - AppConnectMsg passengerMsg = new AppConnectMsg(false,true,msg,DPMsgType.TYPE_COMMON.getType()); + AppConnectMsg passengerMsg = new AppConnectMsg(false,true,msg); CallerTelematicManager.INSTANCE.sendMsgToAllClients(OchCommonConst.BUSINESS_STRING, GsonUtils.toJson(passengerMsg).getBytes()); From 65a83154c7fcc5d6aafeaf5c447394f501198af9 Mon Sep 17 00:00:00 2001 From: wangmingjun Date: Fri, 31 Mar 2023 16:55:05 +0800 Subject: [PATCH 04/14] =?UTF-8?q?[shuttle-B1/B2]=20=E5=BC=B1=E7=BD=91?= =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E7=99=BB=E9=99=86=E7=8A=B6=E6=80=81=E7=BC=93?= =?UTF-8?q?=E5=AD=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../och/common/module/bean/dpmsg/DataBean.kt | 1 + .../model/OchCommonLoginStatusDefaultModel.kt | 22 ++++ .../mogo/och/data/bean/BusRoutesResult.java | 14 +++ .../com/mogo/och/data/bean/BusTransferData.kt | 9 ++ OCH/mogo-och-shuttle-passenger/build.gradle | 3 +- .../passenger/model/BusPassengerModel.java | 32 ++++-- .../bus/passenger/bean/PM2RoutesResponse.java | 7 +- .../passenger/callback/DrivingInfoCallback.kt | 6 +- .../och/bus/passenger/model/PM2ADASModel.kt | 5 +- .../bus/passenger/model/PM2DrivingModel.kt | 105 +++++++++++++----- .../presenter/PM2DrivingPresenter.kt | 5 +- .../passenger/ui/PM2DrivingInfoFragment.kt | 5 +- .../com/mogo/och/bus/model/OrderModel.java | 80 +++++++------ .../mogo/och/bus/presenter/BusPresenter.java | 3 + 14 files changed, 202 insertions(+), 95 deletions(-) create mode 100644 OCH/mogo-och-data/src/main/java/com/mogo/och/data/bean/BusTransferData.kt diff --git a/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/bean/dpmsg/DataBean.kt b/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/bean/dpmsg/DataBean.kt index 774fe20cb9..a73d7e0756 100644 --- a/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/bean/dpmsg/DataBean.kt +++ b/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/bean/dpmsg/DataBean.kt @@ -6,6 +6,7 @@ package com.mogo.och.common.module.bean.dpmsg object BusCacheKey{ const val BUS_LINE_CACHE = "bus_line_cache" + const val BUS_LOGIN_STATUS_CACHE = "bus_login_status_cache" } open class BaseDPMsg(open var type: Int) // 0: 常规 1:确认路线/站点 2:开/关车门 3:结束订单 diff --git a/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/biz/model/OchCommonLoginStatusDefaultModel.kt b/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/biz/model/OchCommonLoginStatusDefaultModel.kt index 10348b6b2b..54a78bfcff 100644 --- a/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/biz/model/OchCommonLoginStatusDefaultModel.kt +++ b/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/biz/model/OchCommonLoginStatusDefaultModel.kt @@ -3,11 +3,18 @@ package com.mogo.och.common.module.biz.model import android.annotation.SuppressLint import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant +import com.mogo.eagle.core.utilcode.util.GsonUtils import com.mogo.eagle.core.utilcode.util.SharedPrefs +import com.mogo.eagle.core.utilcode.util.TimeUtils +import com.mogo.och.common.module.bean.dpmsg.BusCacheKey +import com.mogo.och.common.module.bean.dpmsg.LoginCacheStatus import com.mogo.och.common.module.biz.bean.DriverStatusQueryRespBean import com.mogo.och.common.module.biz.callback.ILoginCallback import com.mogo.och.common.module.biz.callback.ILoginViewCallback import com.mogo.och.common.module.biz.constant.LoginStatusManager +import com.mogo.och.common.module.biz.constant.LoginStatusManager.isLogin +import com.mogo.och.common.module.utils.DateTimeUtil +import com.mogo.och.data.manager.cache.CacheDataManager @SuppressLint("StaticFieldLeak") object OchCommonLoginStatusDefaultModel : OchCommonLoginStatusModel() { @@ -29,6 +36,19 @@ object OchCommonLoginStatusDefaultModel : OchCommonLoginStatusModel() { loginViewCallback?.showLoginDialogFragment() } loginCallback?.loginSuccess(data) + + updateLoginLocalStatus(isLogin()) + + } + + private fun updateLoginLocalStatus(isLogin: Boolean) { + var loginCacheStatus = LoginCacheStatus(if (isLogin){ + 1 + }else { + 0 + },DateTimeUtil.getCurrentTimeStamp()) + CacheDataManager.instance.putCacheData(mContext, BusCacheKey.BUS_LOGIN_STATUS_CACHE, + GsonUtils.toJson(loginCacheStatus)) } override fun loginFail(isLogin: Boolean) { @@ -39,6 +59,8 @@ object OchCommonLoginStatusDefaultModel : OchCommonLoginStatusModel() { loginViewCallback?.showLoginDialogFragment() } loginCallback?.loginFail(isLogin) + + updateLoginLocalStatus(isLogin) } } \ No newline at end of file diff --git a/OCH/mogo-och-data/src/main/java/com/mogo/och/data/bean/BusRoutesResult.java b/OCH/mogo-och-data/src/main/java/com/mogo/och/data/bean/BusRoutesResult.java index b8aa437b06..59b6a1cc87 100644 --- a/OCH/mogo-och-data/src/main/java/com/mogo/och/data/bean/BusRoutesResult.java +++ b/OCH/mogo-och-data/src/main/java/com/mogo/och/data/bean/BusRoutesResult.java @@ -72,6 +72,20 @@ public class BusRoutesResult { this.writeVersion = writeVersion; } + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + BusRoutesResult that = (BusRoutesResult) o; + return lineId == that.lineId + && lineType == that.lineType + && status == that.status + && sites.equals(that.sites) + && name.equals(that.name) + && writeVersion == that.writeVersion + && runningDur.equals(that.runningDur); + } + @Override public String toString() { return "BusRoutesResult{" + diff --git a/OCH/mogo-och-data/src/main/java/com/mogo/och/data/bean/BusTransferData.kt b/OCH/mogo-och-data/src/main/java/com/mogo/och/data/bean/BusTransferData.kt new file mode 100644 index 0000000000..264db19226 --- /dev/null +++ b/OCH/mogo-och-data/src/main/java/com/mogo/och/data/bean/BusTransferData.kt @@ -0,0 +1,9 @@ +package com.mogo.och.data.bean +/** + * @author: wangmingjun + * @date: 2023/3/31 + */ +data class BusTransferData ( + var loginStatus: Int, + var routesResult: BusRoutesResult, +) \ No newline at end of file diff --git a/OCH/mogo-och-shuttle-passenger/build.gradle b/OCH/mogo-och-shuttle-passenger/build.gradle index 89f40de4af..8306815dfc 100644 --- a/OCH/mogo-och-shuttle-passenger/build.gradle +++ b/OCH/mogo-och-shuttle-passenger/build.gradle @@ -73,8 +73,7 @@ dependencies { implementation rootProject.ext.dependencies.rxandroid implementation rootProject.ext.dependencies.androidxconstraintlayout implementation rootProject.ext.dependencies.amapnavi3dmap - implementation project(":OCH:mogo-och-common-module") -// implementation project(":OCH:mogo-och-data") + api project(":OCH:mogo-och-common-module") compileOnly project(":libraries:mogo-map") implementation project(':core:mogo-core-res') testImplementation 'junit:junit:4.12' diff --git a/OCH/mogo-och-shuttle-passenger/src/jinlvvan/java/com/mogo/och/bus/passenger/model/BusPassengerModel.java b/OCH/mogo-och-shuttle-passenger/src/jinlvvan/java/com/mogo/och/bus/passenger/model/BusPassengerModel.java index ab399c03ca..6d35f14118 100644 --- a/OCH/mogo-och-shuttle-passenger/src/jinlvvan/java/com/mogo/och/bus/passenger/model/BusPassengerModel.java +++ b/OCH/mogo-och-shuttle-passenger/src/jinlvvan/java/com/mogo/och/bus/passenger/model/BusPassengerModel.java @@ -67,6 +67,7 @@ import com.mogo.och.common.module.manager.AbnormalFactorsLoopManager; import com.mogo.och.common.module.utils.CoordinateCalculateRouteUtil; import com.mogo.och.data.bean.BusRoutesResult; import com.mogo.och.data.bean.BusStationBean; +import com.mogo.och.data.bean.BusTransferData; import org.jetbrains.annotations.NotNull; @@ -190,7 +191,6 @@ public class BusPassengerModel { } else { ToastUtils.showShort(mContext.getString(R.string.request_error_tip)); } - queryDriverByLocalDriver(); } @Override @@ -228,6 +228,13 @@ public class BusPassengerModel { updatePassengerRouteInfo(routesResult); } + @Override + public void onError() { + CallerLogger.INSTANCE.d( M_BUS_P + TAG, "queryDriverSiteByCoordinate = onError =" + + ", sn = " +BusPassengerServiceManager.INSTANCE.getDriverAppSn()); + queryDriverByLocalDriver(); + } + @Override public void onFail(int code, String msg) { CallerLogger.INSTANCE.d( M_BUS_P + TAG, "queryDriverSiteByCoordinate = %s", msg @@ -244,6 +251,7 @@ public class BusPassengerModel { startOrStopCalculateRouteInfo(false); return; } + queryDriverByLocalDriver(); } }); } @@ -261,8 +269,10 @@ public class BusPassengerModel { } private void updatePassengerRouteInfo(BusRoutesResult result) { - if (routesResult == null) return; - + if (result == null){ + clearLocalRouteResult(); + return; + } if (mRouteLineInfoCallback != null){ mRouteLineInfoCallback.updateLineInfo(result.getName(),result.getRunningDur()); mRouteLineInfoCallback.hideNoTaskView(); @@ -373,22 +383,20 @@ public class BusPassengerModel { DateTimeUtil.getCurrentTimeStamp(), msg.getMsg(), OCHSocketMessageManager.OPERATION_SYSTEM); } - } else if (baseMsg != null && baseMsg.getType() == DPMsgType.TYPE_LOGIN_STATUS.getType()) { - LoginCacheStatus msg = GsonUtils.fromJson(new String(byteArray), LoginCacheStatus.class); - if (msg != null) { - mDriverStatusCallback.changeOperationStatus(msg.getLoginStatus() == 1); - } } else if (baseMsg != null && baseMsg.getType() == DPMsgType.TYPE_TASK_DETAILS.getType()) { TaskDetailsMsg msg = GsonUtils.fromJson(new String(byteArray), TaskDetailsMsg.class); + Logger.d(SceneConstant.M_BUS_P + TAG, "onReceivedMsg = " + GsonUtils.toJson(msg)); if (msg == null || msg.getMsg().isEmpty()) { clearLocalRouteResult(); return; } - BusRoutesResult result = GsonUtils.fromJson(msg.getMsg(), BusRoutesResult.class); - - if (result != null && result.getWriteVersion() > routesResult.getWriteVersion()) { - routesResult = result; + BusTransferData result = GsonUtils.fromJson(msg.getMsg(), BusTransferData.class); + if (msg != null && mDriverStatusCallback != null) { + mDriverStatusCallback.changeOperationStatus(result.getLoginStatus() == 1); + } + if (result != null) { //已司机端传来的为准 + routesResult = result.getRoutesResult(); updatePassengerRouteInfo(routesResult); } } diff --git a/OCH/mogo-och-shuttle-passenger/src/m2/java/com/mogo/och/bus/passenger/bean/PM2RoutesResponse.java b/OCH/mogo-och-shuttle-passenger/src/m2/java/com/mogo/och/bus/passenger/bean/PM2RoutesResponse.java index 207b2d7e7d..32306a33c1 100644 --- a/OCH/mogo-och-shuttle-passenger/src/m2/java/com/mogo/och/bus/passenger/bean/PM2RoutesResponse.java +++ b/OCH/mogo-och-shuttle-passenger/src/m2/java/com/mogo/och/bus/passenger/bean/PM2RoutesResponse.java @@ -1,6 +1,7 @@ package com.mogo.och.bus.passenger.bean; import com.mogo.eagle.core.data.BaseData; +import com.mogo.och.data.bean.BusRoutesResult; /** * 网约车小巴路线接口请求响应结果 返回的是对应司机屏的线路信息 @@ -8,13 +9,13 @@ import com.mogo.eagle.core.data.BaseData; * @author tongchenfei */ public class PM2RoutesResponse extends BaseData { - private PM2RoutesResult data; + private BusRoutesResult data; - public PM2RoutesResult getResult() { + public BusRoutesResult getResult() { return data; } - public void setResult(PM2RoutesResult data) { + public void setResult(BusRoutesResult data) { this.data = data; } diff --git a/OCH/mogo-och-shuttle-passenger/src/m2/java/com/mogo/och/bus/passenger/callback/DrivingInfoCallback.kt b/OCH/mogo-och-shuttle-passenger/src/m2/java/com/mogo/och/bus/passenger/callback/DrivingInfoCallback.kt index 452ffb685a..1b9c77b224 100644 --- a/OCH/mogo-och-shuttle-passenger/src/m2/java/com/mogo/och/bus/passenger/callback/DrivingInfoCallback.kt +++ b/OCH/mogo-och-shuttle-passenger/src/m2/java/com/mogo/och/bus/passenger/callback/DrivingInfoCallback.kt @@ -1,6 +1,6 @@ package com.mogo.och.bus.passenger.callback -import com.mogo.och.bus.passenger.bean.PM2Station +import com.mogo.och.data.bean.BusStationBean /** * @author: wangmingjun @@ -13,6 +13,6 @@ interface DrivingInfoCallback { fun updateRemainMT(meters : Long, timeInSecond : Long) // 米,秒 fun changeOperationStatus(loginStatus : Boolean) fun showNoTaskView(isTrue : Boolean) - fun updateLineStations(stations: MutableList) - fun updateStationsInfo(stations: MutableList, i: Int, isArrived: Boolean) + fun updateLineStations(stations: MutableList) + fun updateStationsInfo(stations: MutableList, i: Int, isArrived: Boolean) } \ No newline at end of file diff --git a/OCH/mogo-och-shuttle-passenger/src/m2/java/com/mogo/och/bus/passenger/model/PM2ADASModel.kt b/OCH/mogo-och-shuttle-passenger/src/m2/java/com/mogo/och/bus/passenger/model/PM2ADASModel.kt index a21f2fd938..87c68dda4f 100644 --- a/OCH/mogo-och-shuttle-passenger/src/m2/java/com/mogo/och/bus/passenger/model/PM2ADASModel.kt +++ b/OCH/mogo-och-shuttle-passenger/src/m2/java/com/mogo/och/bus/passenger/model/PM2ADASModel.kt @@ -1,9 +1,8 @@ package com.mogo.och.bus.passenger.model import android.content.Context -import com.amap.api.maps.model.LatLng -import com.mogo.och.bus.passenger.bean.PM2Station import com.mogo.och.bus.passenger.callback.ADASCallback +import com.mogo.och.data.bean.BusStationBean /** * @author: wangmingjun @@ -29,7 +28,7 @@ class PM2ADASModel private constructor() { this.mAdasCallback = adasCallback } - fun updateHDMapStations(stations: MutableList){ + fun updateHDMapStations(stations: MutableList){ var stationsList = mutableListOf>() for (i in stations.indices){ var listLatLng = mutableListOf() // 0: long 1:lat diff --git a/OCH/mogo-och-shuttle-passenger/src/m2/java/com/mogo/och/bus/passenger/model/PM2DrivingModel.kt b/OCH/mogo-och-shuttle-passenger/src/m2/java/com/mogo/och/bus/passenger/model/PM2DrivingModel.kt index 60f012ba68..11f8af010d 100644 --- a/OCH/mogo-och-shuttle-passenger/src/m2/java/com/mogo/och/bus/passenger/model/PM2DrivingModel.kt +++ b/OCH/mogo-och-shuttle-passenger/src/m2/java/com/mogo/och/bus/passenger/model/PM2DrivingModel.kt @@ -23,6 +23,7 @@ import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListener import com.mogo.eagle.core.function.call.autopilot.CallerChassisLocationGCJ02ListenerManager import com.mogo.eagle.core.function.call.autopilot.CallerPlanningRottingListenerManager import com.mogo.eagle.core.function.call.telematic.CallerTelematicListenerManager +import com.mogo.eagle.core.function.call.telematic.CallerTelematicManager.sendMsgToServer import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger.d import com.mogo.eagle.core.utilcode.mogo.logger.Logger import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant @@ -33,18 +34,19 @@ import com.mogo.eagle.core.utilcode.util.ToastUtils import com.mogo.och.bus.passenger.R import com.mogo.och.bus.passenger.bean.PM2OperationStatusResponse import com.mogo.och.bus.passenger.bean.PM2RoutesResponse -import com.mogo.och.bus.passenger.bean.PM2RoutesResult -import com.mogo.och.bus.passenger.bean.PM2Station import com.mogo.och.bus.passenger.callback.AutoPilotStatusCallback import com.mogo.och.bus.passenger.callback.DrivingInfoCallback import com.mogo.och.bus.passenger.constant.BusPassengerConst import com.mogo.och.bus.passenger.network.PM2ModelLoopManager -import com.mogo.och.common.module.bean.AppConnectMsg -import com.mogo.och.common.module.biz.common.socketmessage.OCHSocketMessageManager -import com.mogo.och.common.module.biz.network.OchCommonServiceCallback +import com.mogo.och.common.module.bean.dpmsg.* +import com.mogo.och.common.module.biz.common.socketmessage.OCHSocketMessageManager.pushAppOperationalMsgBox import com.mogo.och.common.module.biz.constant.OchCommonConst +import com.mogo.och.common.module.biz.network.OchCommonServiceCallback import com.mogo.och.common.module.utils.CoordinateCalculateRouteUtil import com.mogo.och.common.module.utils.DateTimeUtil +import com.mogo.och.data.bean.BusRoutesResult +import com.mogo.och.data.bean.BusStationBean +import com.mogo.och.data.bean.BusTransferData import mogo.telematics.pad.MessagePad import kotlin.math.abs @@ -58,11 +60,11 @@ class PM2DrivingModel private constructor() { private var mLocation: MogoLocation? = null private var mRoutePoints = mutableListOf() - private var routesResult: PM2RoutesResult? = null + private var routesResult: BusRoutesResult? = null private var mCurrentAutoStatus = -1 - var mStations = mutableListOf() + var mStations = mutableListOf() private var mNextStationIndex = 0 // A-B要到达站的index private var isGoingToNextStation = false //是否前往下一站过程中 @@ -94,11 +96,17 @@ class PM2DrivingModel private constructor() { fun init(context : Context){ mContext = context initListener() - // TODO: 2022/3/31 + queryDriverByLocalDriver() queryDriverOperationStatus() startOrStopOrderLoop(true) } + private fun queryDriverByLocalDriver() { + //本地去请求司机端 + val msg = TaskDetailsMsg("") + sendMsgToServer(GsonUtils.toJson(msg)) + } + private fun initListener() { //自动驾驶状态监听 CallerAutoPilotStatusListenerManager.addListener(TAG, mAutoPilotStatusListener) @@ -118,6 +126,13 @@ class PM2DrivingModel private constructor() { } + private fun sendMsgToServer(msg: String) { + sendMsgToServer( + OchCommonConst.BUSINESS_STRING, + GsonUtils.toJson(msg).toByteArray() + ) + } + fun releaseListener(){ //自动驾驶状态监听 CallerAutoPilotStatusListenerManager.removeListener(TAG) @@ -152,14 +167,43 @@ class PM2DrivingModel private constructor() { @RequiresApi(Build.VERSION_CODES.O) override fun onReceivedMsg(type: Int, byteArray: ByteArray) {//接收司机端发来的信息 if (OchCommonConst.BUSINESS_STRING == type){ - val msg = GsonUtils.fromJson(String(byteArray),AppConnectMsg::class.java) as AppConnectMsg - Logger.d(SceneConstant.M_BUS_P+TAG,"onReceivedMsg = "+GsonUtils.toJson(msg)) - if (msg.isPlay){ //播报 - speakTTS(msg.msg) - } - if (msg.isViewShow){ //消息盒子显示内容 - OCHSocketMessageManager.pushAppOperationalMsgBox( - DateTimeUtil.getCurrentTimeStamp(),msg.msg) + val baseMsg = GsonUtils.fromJson(String(byteArray), BaseDPMsg::class.java) + Logger.d( + SceneConstant.M_BUS_P + TAG, "onReceivedMsg = " + GsonUtils.toJson(baseMsg) + ) + + if (baseMsg != null && baseMsg.type == DPMsgType.TYPE_COMMON.type) { + val msg = GsonUtils.fromJson(String(byteArray), AppConnectMsg::class.java) + + if (msg != null && msg.isPlay){ //播报 + speakTTS(msg.msg) + } + + if (msg != null && msg.isViewShow) { //消息盒子显示内容 + pushAppOperationalMsgBox( + DateTimeUtil.getCurrentTimeStamp(),msg.msg) + } + }else if (baseMsg != null && baseMsg.type == DPMsgType.TYPE_TASK_DETAILS.type) { + val msg = GsonUtils.fromJson(String(byteArray), TaskDetailsMsg::class.java) + Logger.d( + SceneConstant.M_BUS_P + TAG, "onReceivedMsg = " + GsonUtils.toJson(msg) + ) + if (msg == null || msg.msg.isEmpty()) { + updateLocalOrder() + return + } + val result = GsonUtils.fromJson(msg.msg, BusTransferData::class.java) + mDrivingInfoCallback?.changeOperationStatus(result.loginStatus == 1) + if (result != null && result.routesResult == null){ + updateLocalOrder() + } + + if (routesResult == null || + (result != null && result.routesResult.writeVersion > routesResult!!.writeVersion)) { + routesResult = result.routesResult + updatePassengerRouteInfo(routesResult!!) + } + } } } @@ -288,7 +332,8 @@ class PM2DrivingModel private constructor() { } else { ToastUtils.showShort(mContext!!.getString(R.string.request_error_tip)) } - queryDriverOperationDelay() +// queryDriverOperationDelay() + queryDriverByLocalDriver() } override fun onFail(code: Int, msg: String) { @@ -319,7 +364,15 @@ class PM2DrivingModel private constructor() { return } - routesResult = data.result + if (routesResult != null && + routesResult!!.writeVersion < data.result.writeVersion + ) { + routesResult = data.result + } + + if (routesResult == null) { + routesResult = data.result + } updatePassengerRouteInfo(data.result) } @@ -351,19 +404,19 @@ class PM2DrivingModel private constructor() { mDrivingInfoCallback?.showNoTaskView(true) } - private fun updatePassengerRouteInfo(result: PM2RoutesResult) { + private fun updatePassengerRouteInfo(result: BusRoutesResult) { mDrivingInfoCallback?.updateLine(result.name, result.runningDur) if (result.sites != null) { mDrivingInfoCallback?.showNoTaskView(false) - val stations: List = result.sites + val stations: List = result.sites mStations.clear() mStations.addAll(stations) mDrivingInfoCallback?.updateLineStations(mStations) for (i in stations.indices) { - val station: PM2Station = stations[i] + val station: BusStationBean = stations[i] if (station.drivingStatus == BusPassengerConst.STATION_STATUS_STOPPED && station.isLeaving && i + 1 < stations.size) { - mDrivingInfoCallback?.updateStationsInfo(stations as MutableList, i + 1, false) + mDrivingInfoCallback?.updateStationsInfo(stations as MutableList, i + 1, false) if (mNextStationIndex != i + 1) { d(SceneConstant.M_BUS_P+TAG,"och-rotting--start ") mTwoStationsRouts.clear() @@ -376,7 +429,7 @@ class PM2DrivingModel private constructor() { mPreRouteIndex = 0 isGoingToNextStation = false startOrStopCalculateRouteInfo(false) - mDrivingInfoCallback?.updateStationsInfo(stations as MutableList, i, true) + mDrivingInfoCallback?.updateStationsInfo(stations as MutableList, i, true) return } } @@ -431,7 +484,7 @@ class PM2DrivingModel private constructor() { var lastSumLength = 0f lastSumLength = if (lastPoints.size == 1) { //只是最后一个点,计算当前位置和最后一个点的距离 if (mNextStationIndex <= mStations.size - 1 && mNextStationIndex >= 0) { - val stationNext: PM2Station = mStations[mNextStationIndex] + val stationNext: BusStationBean = mStations[mNextStationIndex] CoordinateUtils.calculateLineDistance( stationNext.gcjLon, stationNext.gcjLat, mLocation!!.longitude, mLocation!!.latitude @@ -462,8 +515,8 @@ class PM2DrivingModel private constructor() { if (mStations.size > 1) { //两个站点及以上要计算两个站点间的轨迹路线 if (mNextStationIndex <= mStations.size - 1 && mNextStationIndex - 1 >= 0) { mTwoStationsRouts.clear() - val stationNext: PM2Station = mStations[mNextStationIndex] - val stationCur: PM2Station = mStations[mNextStationIndex - 1] + val stationNext: BusStationBean = mStations[mNextStationIndex] + val stationCur: BusStationBean = mStations[mNextStationIndex - 1] //当前站在轨迹中对应的点 val currentRouteIndex = CoordinateCalculateRouteUtil.getArrivedPointIndexNew( 0, mRoutePoints, stationCur.gcjLon, stationCur.gcjLat diff --git a/OCH/mogo-och-shuttle-passenger/src/m2/java/com/mogo/och/bus/passenger/presenter/PM2DrivingPresenter.kt b/OCH/mogo-och-shuttle-passenger/src/m2/java/com/mogo/och/bus/passenger/presenter/PM2DrivingPresenter.kt index b1cba39ddd..e11f742db8 100644 --- a/OCH/mogo-och-shuttle-passenger/src/m2/java/com/mogo/och/bus/passenger/presenter/PM2DrivingPresenter.kt +++ b/OCH/mogo-och-shuttle-passenger/src/m2/java/com/mogo/och/bus/passenger/presenter/PM2DrivingPresenter.kt @@ -11,6 +11,7 @@ import com.mogo.och.bus.passenger.callback.DrivingInfoCallback import com.mogo.och.bus.passenger.model.PM2ADASModel import com.mogo.och.bus.passenger.model.PM2DrivingModel import com.mogo.och.bus.passenger.ui.PM2DrivingInfoFragment +import com.mogo.och.data.bean.BusStationBean class PM2DrivingPresenter(view: PM2DrivingInfoFragment?) : Presenter(view), DrivingInfoCallback, AutoPilotStatusCallback { @@ -80,14 +81,14 @@ class PM2DrivingPresenter(view: PM2DrivingInfoFragment?) : } } - override fun updateLineStations(stations: MutableList) { + override fun updateLineStations(stations: MutableList) { ThreadUtils.runOnUiThread { mView?.updateLineStations(stations) } PM2ADASModel.INSTANCE.updateHDMapStations(stations) } - override fun updateStationsInfo(stations: MutableList, i: Int, isArrived: Boolean) { + override fun updateStationsInfo(stations: MutableList, i: Int, isArrived: Boolean) { ThreadUtils.runOnUiThread { mView?.updateStationsInfo(stations,i,isArrived) } diff --git a/OCH/mogo-och-shuttle-passenger/src/m2/java/com/mogo/och/bus/passenger/ui/PM2DrivingInfoFragment.kt b/OCH/mogo-och-shuttle-passenger/src/m2/java/com/mogo/och/bus/passenger/ui/PM2DrivingInfoFragment.kt index a9abc4ee54..5b0edea261 100644 --- a/OCH/mogo-och-shuttle-passenger/src/m2/java/com/mogo/och/bus/passenger/ui/PM2DrivingInfoFragment.kt +++ b/OCH/mogo-och-shuttle-passenger/src/m2/java/com/mogo/och/bus/passenger/ui/PM2DrivingInfoFragment.kt @@ -18,6 +18,7 @@ import com.mogo.och.bus.passenger.bean.PM2Station import com.mogo.och.bus.passenger.presenter.PM2DrivingPresenter import com.mogo.och.common.module.utils.DateTimeUtil.* import com.mogo.och.common.module.utils.NumberFormatUtil +import com.mogo.och.data.bean.BusStationBean import kotlinx.android.synthetic.m2.p_m2_driving_info_fragment.* import java.lang.ref.WeakReference import kotlin.math.ceil @@ -191,7 +192,7 @@ class PM2DrivingInfoFragment : } } - fun updateLineStations(stations: MutableList){ + fun updateLineStations(stations: MutableList){ var stationsList = mutableListOf() for (i in stations.indices){ val station = stations[i] @@ -204,7 +205,7 @@ class PM2DrivingInfoFragment : } } - fun updateStationsInfo(stations: MutableList, i: Int, isArrived: Boolean){ + fun updateStationsInfo(stations: MutableList, i: Int, isArrived: Boolean){ if (stations.size == 0) return if (0<= i && i DateTimeUtil.getTodayStartTime() && + status.getLoginStatus() == 1){//登陆 + + String cacheData = CacheDataManager.Companion.getInstance().getCacheData(mContext, + BusCacheKey.BUS_LINE_CACHE); + + if (cacheData == null || cacheData.isEmpty()){ + queryBusRoutes(); + }else { + BusTransferData data = GsonUtils.fromJson(cacheData,BusTransferData.class); + getCacheRouteSuccess(data.getRoutesResult()); + } + }else{ // 未登陆 + CacheDataManager.Companion.getInstance().clearCacheData(mContext,BusCacheKey.BUS_LOGIN_STATUS_CACHE); + sendTaskDetailsToClients(); + } + } } private void getCacheRouteSuccess(BusRoutesResult data){ @@ -485,18 +494,10 @@ public class OrderModel { return; } - if (busRoutesResult != null && busRoutesResult.getWriteVersion() < data.getResult().getWriteVersion()){ + if (busRoutesResult == null || busRoutesResult.getWriteVersion() < data.getResult().getWriteVersion()){ CallerLogger.INSTANCE.d(M_BUS + TAG, "更新小巴路线数据: " + data); -// updateBusStatus(data.getResult()); - CacheDataManager.Companion.getInstance().putCacheData(mContext, - BusCacheKey.BUS_LINE_CACHE, - GsonUtils.toJson(data.getResult())); - } - if (busRoutesResult == null){ - CacheDataManager.Companion.getInstance().putCacheData(mContext, - BusCacheKey.BUS_LINE_CACHE, - GsonUtils.toJson(data.getResult())); updateBusStatus(data.getResult()); + pushCacheTransferData(data.getResult()); } } @@ -682,10 +683,8 @@ public class OrderModel { sites.set(currentIndex -1,beanPre); } busRoutesResult.setSite(sites); - CacheDataManager.Companion.getInstance().putCacheData(mContext, BusCacheKey.BUS_LINE_CACHE, - GsonUtils.toJson(busRoutesResult)); - sendTaskDetailsToClients(); + pushCacheTransferData(busRoutesResult); updateBusStatus(busRoutesResult); } @@ -820,23 +819,18 @@ public class OrderModel { } private void sendTaskDetailsToClients() { - TaskDetailsMsg arrivedMsg = new TaskDetailsMsg(GsonUtils.toJson(busRoutesResult)); - + BusTransferData data = new BusTransferData(LoginStatusManager.getLoginStatus().getCode(),busRoutesResult); + TaskDetailsMsg msg = new TaskDetailsMsg(GsonUtils.toJson(data)); + CallerLogger.INSTANCE.d(M_BUS + TAG, "sendTaskDetailsToClients = " + GsonUtils.toJson(msg)); CallerTelematicManager.INSTANCE.sendMsgToAllClients(OchCommonConst.BUSINESS_STRING, - GsonUtils.toJson(arrivedMsg).getBytes()); + GsonUtils.toJson(msg).getBytes()); } - private void sendLoginStatusToClient() { - int status = 0; - if (LoginStatusManager.isLogin()){ - status = 1; - }else { - status = 0; - } - LoginCacheStatus arrivedMsg = new LoginCacheStatus(status, DateTimeUtil.getCurrentTimeStamp()); - - CallerTelematicManager.INSTANCE.sendMsgToAllClients(OchCommonConst.BUSINESS_STRING, - GsonUtils.toJson(arrivedMsg).getBytes()); + private void pushCacheTransferData(BusRoutesResult result) { + BusTransferData data = new BusTransferData(LoginStatusManager.getLoginStatus().getCode(),result); + CacheDataManager.Companion.getInstance().putCacheData(mContext, + BusCacheKey.BUS_LINE_CACHE, + GsonUtils.toJson(data)); } private void sendArrivedStationToClient(String arriveStation) { @@ -1042,6 +1036,8 @@ public class OrderModel { slidePanelHideCallback.hideSlidePanel(); } + sendTaskDetailsToClients(); + //更新bus路线面板 updateBusTaskStatus(stationList); diff --git a/OCH/mogo-och-shuttle/src/main/java/com/mogo/och/bus/presenter/BusPresenter.java b/OCH/mogo-och-shuttle/src/main/java/com/mogo/och/bus/presenter/BusPresenter.java index d1396089b7..0a10e5b41f 100644 --- a/OCH/mogo-och-shuttle/src/main/java/com/mogo/och/bus/presenter/BusPresenter.java +++ b/OCH/mogo-och-shuttle/src/main/java/com/mogo/och/bus/presenter/BusPresenter.java @@ -33,6 +33,7 @@ import com.mogo.och.common.module.biz.callback.ILoginCallback; import com.mogo.och.common.module.biz.constant.LoginStatusManager; import com.mogo.och.common.module.manager.OCHAdasAbilityManager; import com.mogo.och.common.module.voice.VoiceNotice; +import com.mogo.och.data.manager.cache.CacheDataManager; import org.jetbrains.annotations.NotNull; @@ -70,6 +71,8 @@ public class BusPresenter extends Presenter public void onCreate(@NonNull LifecycleOwner owner) { super.onCreate(owner); initModelListener(); + + OrderModel.getInstance().queryBusCacheRoutes(); } @Override From 21ac2f8f4a02980f5b9158f531147346a6f266d0 Mon Sep 17 00:00:00 2001 From: wangmingjun Date: Fri, 31 Mar 2023 20:47:19 +0800 Subject: [PATCH 05/14] =?UTF-8?q?[shuttle-B1/B2]=20=E5=BC=B1=E7=BD=91?= =?UTF-8?q?=E8=B0=83=E8=AF=95=E5=AE=8C=E6=88=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mogo/och/common/module/bean/dpmsg/DataBean.kt | 2 +- .../com/mogo/och/data/bean/BusTransferData.kt | 2 +- .../bus/passenger/model/BusPassengerModel.java | 4 ++-- .../och/bus/passenger/model/PM2DrivingModel.kt | 15 +++++++++++++++ .../java/com/mogo/och/bus/model/OrderModel.java | 5 +++-- 5 files changed, 22 insertions(+), 6 deletions(-) diff --git a/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/bean/dpmsg/DataBean.kt b/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/bean/dpmsg/DataBean.kt index a73d7e0756..2fae88bbb1 100644 --- a/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/bean/dpmsg/DataBean.kt +++ b/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/bean/dpmsg/DataBean.kt @@ -42,5 +42,5 @@ data class AppConnectMsg(var isViewShow: Boolean, var isPlay: Boolean, var msg: ): BaseDPMsg(DPMsgType.TYPE_COMMON.type) data class TaskDetailsMsg( - var msg: String, + var msg: String?, ): BaseDPMsg(DPMsgType.TYPE_TASK_DETAILS.type) diff --git a/OCH/mogo-och-data/src/main/java/com/mogo/och/data/bean/BusTransferData.kt b/OCH/mogo-och-data/src/main/java/com/mogo/och/data/bean/BusTransferData.kt index 264db19226..eca93d7588 100644 --- a/OCH/mogo-och-data/src/main/java/com/mogo/och/data/bean/BusTransferData.kt +++ b/OCH/mogo-och-data/src/main/java/com/mogo/och/data/bean/BusTransferData.kt @@ -5,5 +5,5 @@ package com.mogo.och.data.bean */ data class BusTransferData ( var loginStatus: Int, - var routesResult: BusRoutesResult, + var routesResult: BusRoutesResult?, ) \ No newline at end of file diff --git a/OCH/mogo-och-shuttle-passenger/src/jinlvvan/java/com/mogo/och/bus/passenger/model/BusPassengerModel.java b/OCH/mogo-och-shuttle-passenger/src/jinlvvan/java/com/mogo/och/bus/passenger/model/BusPassengerModel.java index 6d35f14118..d2ddb289c9 100644 --- a/OCH/mogo-och-shuttle-passenger/src/jinlvvan/java/com/mogo/och/bus/passenger/model/BusPassengerModel.java +++ b/OCH/mogo-och-shuttle-passenger/src/jinlvvan/java/com/mogo/och/bus/passenger/model/BusPassengerModel.java @@ -139,7 +139,7 @@ public class BusPassengerModel { private void queryDriverByLocalDriver() { //本地去请求司机端 - TaskDetailsMsg msg = new TaskDetailsMsg(""); + TaskDetailsMsg msg = new TaskDetailsMsg("task"); sendMsgToServer(GsonUtils.toJson(msg)); } @@ -167,7 +167,7 @@ public class BusPassengerModel { private void sendMsgToServer(String msg){ CallerTelematicManager.INSTANCE.sendMsgToServer( OchCommonConst.BUSINESS_STRING, - GsonUtils.toJson(msg).getBytes() + msg.getBytes() ); } diff --git a/OCH/mogo-och-shuttle-passenger/src/m2/java/com/mogo/och/bus/passenger/model/PM2DrivingModel.kt b/OCH/mogo-och-shuttle-passenger/src/m2/java/com/mogo/och/bus/passenger/model/PM2DrivingModel.kt index 11f8af010d..7da2122640 100644 --- a/OCH/mogo-och-shuttle-passenger/src/m2/java/com/mogo/och/bus/passenger/model/PM2DrivingModel.kt +++ b/OCH/mogo-och-shuttle-passenger/src/m2/java/com/mogo/och/bus/passenger/model/PM2DrivingModel.kt @@ -376,6 +376,15 @@ class PM2DrivingModel private constructor() { updatePassengerRouteInfo(data.result) } + fun onError() { + CallerLogger.d( + SceneConstant.Companion.M_BUS_P + TAG, + "queryDriverSiteByCoordinate = onError =" + + ", sn = " + BusPassengerServiceManager.driverAppSn + ) + queryDriverByLocalDriver() + } + override fun onFail(code: Int, msg: String?) { d(SceneConstant.M_BUS_P+TAG, "queryDriverSiteByCoordinate = %s", msg) if (code == 1003){ @@ -405,6 +414,12 @@ class PM2DrivingModel private constructor() { } private fun updatePassengerRouteInfo(result: BusRoutesResult) { + + if (result == null) { + clearLocalRouteResult() + return + } + mDrivingInfoCallback?.updateLine(result.name, result.runningDur) if (result.sites != null) { mDrivingInfoCallback?.showNoTaskView(false) diff --git a/OCH/mogo-och-shuttle/src/main/java/com/mogo/och/bus/model/OrderModel.java b/OCH/mogo-och-shuttle/src/main/java/com/mogo/och/bus/model/OrderModel.java index 454bb0a761..be4cecf5e1 100644 --- a/OCH/mogo-och-shuttle/src/main/java/com/mogo/och/bus/model/OrderModel.java +++ b/OCH/mogo-och-shuttle/src/main/java/com/mogo/och/bus/model/OrderModel.java @@ -819,7 +819,8 @@ public class OrderModel { } private void sendTaskDetailsToClients() { - BusTransferData data = new BusTransferData(LoginStatusManager.getLoginStatus().getCode(),busRoutesResult); + + BusTransferData data = new BusTransferData(LoginStatusManager.isLogin() ? 1:0,busRoutesResult); TaskDetailsMsg msg = new TaskDetailsMsg(GsonUtils.toJson(data)); CallerLogger.INSTANCE.d(M_BUS + TAG, "sendTaskDetailsToClients = " + GsonUtils.toJson(msg)); CallerTelematicManager.INSTANCE.sendMsgToAllClients(OchCommonConst.BUSINESS_STRING, @@ -827,7 +828,7 @@ public class OrderModel { } private void pushCacheTransferData(BusRoutesResult result) { - BusTransferData data = new BusTransferData(LoginStatusManager.getLoginStatus().getCode(),result); + BusTransferData data = new BusTransferData(LoginStatusManager.isLogin() ? 1:0,result); CacheDataManager.Companion.getInstance().putCacheData(mContext, BusCacheKey.BUS_LINE_CACHE, GsonUtils.toJson(data)); From f790a64f2444196a238a5191b475f962fc7f77b9 Mon Sep 17 00:00:00 2001 From: yangyakun Date: Tue, 4 Apr 2023 10:18:18 +0800 Subject: [PATCH 06/14] =?UTF-8?q?[m2]=20[3.0.0]=20[=E9=A1=B5=E9=9D=A2?= =?UTF-8?q?=E6=94=B9=E7=89=88]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../passenger/ui/PM2DrivingInfoFragment.kt | 50 +- .../drawable-nodpi/shuttle_p_card_split.png | Bin 0 -> 32726 bytes .../drawable-nodpi/shuttle_p_line_name.png | Bin 0 -> 38739 bytes .../shuttle_p_line_noselect.png | Bin 0 -> 6341 bytes .../drawable-nodpi/shuttle_p_line_tile.png | Bin 0 -> 818 bytes .../drawable/bg_driving_arrived_notice.xml | 6 + .../drawable/bg_driving_distance_lefttime.xml | 6 + .../src/m2/res/drawable/bg_driving_info.xml | 10 + .../res/layout/p_m2_driving_info_fragment.xml | 553 +++++++++++------- .../src/m2/res/layout/p_m2_fragment.xml | 52 +- .../src/m2/res/values/colors.xml | 10 + .../src/m2/res/values/strings.xml | 8 +- 12 files changed, 430 insertions(+), 265 deletions(-) create mode 100644 OCH/mogo-och-shuttle-passenger/src/m2/res/drawable-nodpi/shuttle_p_card_split.png create mode 100644 OCH/mogo-och-shuttle-passenger/src/m2/res/drawable-nodpi/shuttle_p_line_name.png create mode 100644 OCH/mogo-och-shuttle-passenger/src/m2/res/drawable-nodpi/shuttle_p_line_noselect.png create mode 100644 OCH/mogo-och-shuttle-passenger/src/m2/res/drawable-nodpi/shuttle_p_line_tile.png create mode 100644 OCH/mogo-och-shuttle-passenger/src/m2/res/drawable/bg_driving_arrived_notice.xml create mode 100644 OCH/mogo-och-shuttle-passenger/src/m2/res/drawable/bg_driving_distance_lefttime.xml create mode 100644 OCH/mogo-och-shuttle-passenger/src/m2/res/drawable/bg_driving_info.xml diff --git a/OCH/mogo-och-shuttle-passenger/src/m2/java/com/mogo/och/bus/passenger/ui/PM2DrivingInfoFragment.kt b/OCH/mogo-och-shuttle-passenger/src/m2/java/com/mogo/och/bus/passenger/ui/PM2DrivingInfoFragment.kt index a9abc4ee54..78d9568c90 100644 --- a/OCH/mogo-och-shuttle-passenger/src/m2/java/com/mogo/och/bus/passenger/ui/PM2DrivingInfoFragment.kt +++ b/OCH/mogo-och-shuttle-passenger/src/m2/java/com/mogo/och/bus/passenger/ui/PM2DrivingInfoFragment.kt @@ -13,12 +13,14 @@ import com.mogo.eagle.core.function.hmi.ui.setting.ToggleDebugView import com.mogo.eagle.core.utilcode.kotlin.onClick import com.mogo.eagle.core.utilcode.util.DateTimeUtils import com.mogo.eagle.core.utilcode.util.UiThreadHandler +import com.mogo.eagle.core.widget.media.video.TextureVideoViewOutlineProvider import com.mogo.och.bus.passenger.R import com.mogo.och.bus.passenger.bean.PM2Station import com.mogo.och.bus.passenger.presenter.PM2DrivingPresenter import com.mogo.och.common.module.utils.DateTimeUtil.* import com.mogo.och.common.module.utils.NumberFormatUtil import kotlinx.android.synthetic.m2.p_m2_driving_info_fragment.* +import me.jessyan.autosize.utils.AutoSizeUtils import java.lang.ref.WeakReference import kotlin.math.ceil import kotlin.math.roundToInt @@ -77,13 +79,15 @@ class PM2DrivingInfoFragment : // ) // BPRouteDataTestUtils.converToRouteData() // } - updateCurrentTime() } override fun initViews(savedInstanceState: Bundle?) { super.initViews(savedInstanceState) overMapView?.let { it.onCreateView(savedInstanceState) + val radius = AutoSizeUtils.dp2px(requireContext(), 38f) + it.outlineProvider = TextureVideoViewOutlineProvider(radius.toFloat()) + it.clipToOutline = true } } @@ -125,18 +129,6 @@ class PM2DrivingInfoFragment : line_during_tv.text = time } - private fun updateCurrentTime(){ - current_time_tv.text = formatCalendarToString( - DateTimeUtils.getCurrentDateTime(),HH_mm) - - val date = formatCalendarToString( - DateTimeUtils.getCurrentDateTime(), yy_MM_dd) - val weekDay = DateTimeUtils.getWeekDayFromCalendar1(DateTimeUtils.getCurrentDateTime()) - "$date $weekDay".also { current_weekday_tv.text = it } - - sendUpdateTimeTask() // 每10s更新一次 - } - fun changeOperationStatus(status:Boolean){ if (!status){ updateNoOrderUI() @@ -149,18 +141,14 @@ class PM2DrivingInfoFragment : private fun setLineInfoView(isShow: Boolean){ if (isShow){ - line_name_tv.visibility = View.VISIBLE - line_during_tv.visibility = View.VISIBLE - no_line_tv.visibility = View.GONE + }else{ updateNoOrderUI() } } private fun updateNoOrderUI() { - line_name_tv.visibility = View.GONE - line_during_tv.visibility = View.GONE - no_line_tv.visibility = View.VISIBLE + line_name_tv.text = resources.getString(R.string.m2_p_not_select_line_content) updateNoStationView() overMapView?.let { it.clearSiteMarkers() @@ -172,9 +160,9 @@ class PM2DrivingInfoFragment : private fun updateNoStationView(){ station_name_tv.setTextColor(resources.getColor(R.color.m2_next_tv_color)) - station_name_title_tv.text = resources.getString(R.string.m2_p_station_title_tv) station_name_tv.text = resources.getString(R.string.m2_p_empty_tv) - remain_mt.text = resources.getString(R.string.m2_p_empty_remain_km_minute) + tv_distance.text = resources.getString(R.string.m2_p_empty_remain_km) + tv_left_time.text = resources.getString(R.string.m2_p_empty_remain_minute) } override fun createPresenter(): PM2DrivingPresenter { @@ -211,10 +199,15 @@ class PM2DrivingInfoFragment : station_name_tv.text = stations[i].name } if (isArrived){//到站 - station_name_title_tv.text = resources.getString(R.string.m2_p_station_title_arrived_tv) - remain_mt.text = resources.getString(R.string.m2_p_empty_remain_km_minute) + tv_distance.text = resources.getString(R.string.m2_p_empty_remain_km) + tv_left_time.text = resources.getString(R.string.m2_p_empty_remain_minute) + tv_next_station_title.text = resources.getString(R.string.m2_p_station_title_arrived_tv) + tv_arrived_notice.visibility = View.VISIBLE + clg_distance_left_time.visibility = View.GONE }else{ //前往目的地中 - station_name_title_tv.text = resources.getString(R.string.m2_p_station_title_tv) + tv_next_station_title.text = resources.getString(R.string.shuttle_p_next_station_title) + tv_arrived_notice.visibility = View.GONE + clg_distance_left_time.visibility = View.VISIBLE } } @@ -237,13 +230,8 @@ class PM2DrivingInfoFragment : val time = ceil(timeInSecond / 60f).toInt() - "$remainDis$disUnit | $time 分钟".also { remain_mt.text = it } - } - - private fun sendUpdateTimeTask() { - UiThreadHandler.postDelayed({ - updateCurrentTime() - },LOOP_TIME_TEXT) + "$remainDis$disUnit".also { tv_distance.text = it } + "$time 分钟".also { tv_left_time.text = it } } companion object { diff --git a/OCH/mogo-och-shuttle-passenger/src/m2/res/drawable-nodpi/shuttle_p_card_split.png b/OCH/mogo-och-shuttle-passenger/src/m2/res/drawable-nodpi/shuttle_p_card_split.png new file mode 100644 index 0000000000000000000000000000000000000000..6bd8fb0f60aca6f92fe18b60350f2307e288838c GIT binary patch literal 32726 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 IC21V^KZ6g2&Hw-a literal 0 HcmV?d00001 diff --git a/OCH/mogo-och-shuttle-passenger/src/m2/res/drawable-nodpi/shuttle_p_line_name.png b/OCH/mogo-och-shuttle-passenger/src/m2/res/drawable-nodpi/shuttle_p_line_name.png new file mode 100644 index 0000000000000000000000000000000000000000..e395ed8419a6be0ce229628ab4c240dbe9085cb0 GIT binary patch literal 38739 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 HHbMUf&xL6P literal 0 HcmV?d00001 diff --git a/OCH/mogo-och-shuttle-passenger/src/m2/res/drawable-nodpi/shuttle_p_line_noselect.png b/OCH/mogo-och-shuttle-passenger/src/m2/res/drawable-nodpi/shuttle_p_line_noselect.png new file mode 100644 index 0000000000000000000000000000000000000000..bda5e1d10582b2ee05571b97221cd0054b54ab13 GIT binary patch literal 6341 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 literal 0 HcmV?d00001 diff --git a/OCH/mogo-och-shuttle-passenger/src/m2/res/drawable/bg_driving_arrived_notice.xml b/OCH/mogo-och-shuttle-passenger/src/m2/res/drawable/bg_driving_arrived_notice.xml new file mode 100644 index 0000000000..30d343900d --- /dev/null +++ b/OCH/mogo-och-shuttle-passenger/src/m2/res/drawable/bg_driving_arrived_notice.xml @@ -0,0 +1,6 @@ + + + + + \ No newline at end of file diff --git a/OCH/mogo-och-shuttle-passenger/src/m2/res/drawable/bg_driving_distance_lefttime.xml b/OCH/mogo-och-shuttle-passenger/src/m2/res/drawable/bg_driving_distance_lefttime.xml new file mode 100644 index 0000000000..a7412494a3 --- /dev/null +++ b/OCH/mogo-och-shuttle-passenger/src/m2/res/drawable/bg_driving_distance_lefttime.xml @@ -0,0 +1,6 @@ + + + + + \ No newline at end of file diff --git a/OCH/mogo-och-shuttle-passenger/src/m2/res/drawable/bg_driving_info.xml b/OCH/mogo-och-shuttle-passenger/src/m2/res/drawable/bg_driving_info.xml new file mode 100644 index 0000000000..788c472187 --- /dev/null +++ b/OCH/mogo-och-shuttle-passenger/src/m2/res/drawable/bg_driving_info.xml @@ -0,0 +1,10 @@ + + + + + \ No newline at end of file diff --git a/OCH/mogo-och-shuttle-passenger/src/m2/res/layout/p_m2_driving_info_fragment.xml b/OCH/mogo-och-shuttle-passenger/src/m2/res/layout/p_m2_driving_info_fragment.xml index eb8eed4b1f..dfd6973a86 100644 --- a/OCH/mogo-och-shuttle-passenger/src/m2/res/layout/p_m2_driving_info_fragment.xml +++ b/OCH/mogo-och-shuttle-passenger/src/m2/res/layout/p_m2_driving_info_fragment.xml @@ -2,234 +2,351 @@ + android:layout_width="match_parent" + android:layout_height="match_parent"> - - + + - + - - + - + - + - - - - - - - - - - - - - - - - - - - - - + - + - + - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/OCH/mogo-och-shuttle-passenger/src/m2/res/layout/p_m2_fragment.xml b/OCH/mogo-och-shuttle-passenger/src/m2/res/layout/p_m2_fragment.xml index c4a848c6bd..a6316b0b7c 100644 --- a/OCH/mogo-och-shuttle-passenger/src/m2/res/layout/p_m2_fragment.xml +++ b/OCH/mogo-och-shuttle-passenger/src/m2/res/layout/p_m2_fragment.xml @@ -2,28 +2,48 @@ - - - + + + + + @@ -31,8 +51,10 @@ android:id="@+id/video_fragment" android:layout_width="match_parent" android:layout_height="0dp" + android:paddingBottom="@dimen/dp_40" + android:paddingEnd="@dimen/dp_40" + android:paddingStart="@dimen/dp_40" app:layout_constraintHeight_percent="0.290" - app:layout_constraintTop_toBottomOf="@+id/hd_map_fragment" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintLeft_toLeftOf="parent"/> diff --git a/OCH/mogo-och-shuttle-passenger/src/m2/res/values/colors.xml b/OCH/mogo-och-shuttle-passenger/src/m2/res/values/colors.xml index c752b78caf..a0f8207330 100644 --- a/OCH/mogo-och-shuttle-passenger/src/m2/res/values/colors.xml +++ b/OCH/mogo-och-shuttle-passenger/src/m2/res/values/colors.xml @@ -23,4 +23,14 @@ #FFFF9B00 #59FFFFFF #8895B7 + + + #C8EFFF + #203555 + #99AFC9E7 + #6617417B + #17417B + #2D3E5F + #1F860D + #B9E7C0 \ No newline at end of file diff --git a/OCH/mogo-och-shuttle-passenger/src/m2/res/values/strings.xml b/OCH/mogo-och-shuttle-passenger/src/m2/res/values/strings.xml index e113235a28..9f2f2d5094 100644 --- a/OCH/mogo-och-shuttle-passenger/src/m2/res/values/strings.xml +++ b/OCH/mogo-och-shuttle-passenger/src/m2/res/values/strings.xml @@ -15,9 +15,15 @@ m2_map_style_extra.data Auto 下一站: - 已到站: + 已到站 暂无站点 —公里 | —分钟 + 前方到站 + —公里 + —分钟 + 请按秩序下车 + 路线加载中… + \ No newline at end of file From 6ba6d7233fc0f1da6173b8f2b6cf5287132692e2 Mon Sep 17 00:00:00 2001 From: yangyakun Date: Tue, 4 Apr 2023 16:14:45 +0800 Subject: [PATCH 07/14] =?UTF-8?q?[m2]=20[3.0.0]=20[=E9=A1=B5=E9=9D=A2?= =?UTF-8?q?=E6=94=B9=E7=89=88]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../presenter/PM2DrivingPresenter.kt | 24 +++++++- .../passenger/ui/PM2DrivingInfoFragment.kt | 52 +++++++++++++----- .../m2/res/drawable-nodpi/m2_map_car_icon.png | Bin 4704 -> 1859 bytes .../m2/res/drawable-nodpi/m2_map_end_icon.png | Bin 1892 -> 3558 bytes .../res/drawable-nodpi/m2_map_start_icon.png | Bin 1853 -> 3440 bytes .../m2_map_staton_arrived_icon.png | Bin 0 -> 973 bytes .../res/drawable-nodpi/m2_map_staton_icon.png | Bin 1126 -> 1018 bytes .../res/layout/p_m2_driving_info_fragment.xml | 31 ++++++----- .../src/m2/res/values/colors.xml | 2 + 9 files changed, 81 insertions(+), 28 deletions(-) create mode 100644 OCH/mogo-och-shuttle-passenger/src/m2/res/drawable-nodpi/m2_map_staton_arrived_icon.png diff --git a/OCH/mogo-och-shuttle-passenger/src/m2/java/com/mogo/och/bus/passenger/presenter/PM2DrivingPresenter.kt b/OCH/mogo-och-shuttle-passenger/src/m2/java/com/mogo/och/bus/passenger/presenter/PM2DrivingPresenter.kt index b1cba39ddd..6b1893ecc6 100644 --- a/OCH/mogo-och-shuttle-passenger/src/m2/java/com/mogo/och/bus/passenger/presenter/PM2DrivingPresenter.kt +++ b/OCH/mogo-och-shuttle-passenger/src/m2/java/com/mogo/och/bus/passenger/presenter/PM2DrivingPresenter.kt @@ -1,6 +1,7 @@ package com.mogo.och.bus.passenger.presenter import androidx.lifecycle.LifecycleOwner +import com.amap.api.maps.model.LatLng import com.mogo.commons.mvp.Presenter import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant @@ -81,8 +82,29 @@ class PM2DrivingPresenter(view: PM2DrivingInfoFragment?) : } override fun updateLineStations(stations: MutableList) { + + val stationsList = mutableListOf() + val stationsListPass = mutableListOf() + + for (i in stations.indices){ + val station = stations[i] + val latLng = LatLng(station.gcjLat,station.gcjLon) + if(station.drivingStatus==1){//行驶信息,0初始值;1已经过;2当前站;3未到站 + stationsListPass.add(latLng) + }else if(station.drivingStatus==2){ + if(station.isLeaving){ + stationsListPass.add(latLng) + }else{ + stationsList.add(latLng) + } + }else{ + stationsList.add(latLng) + } + + } + ThreadUtils.runOnUiThread { - mView?.updateLineStations(stations) + mView?.updateLineStations(stationsList,stationsListPass) } PM2ADASModel.INSTANCE.updateHDMapStations(stations) } diff --git a/OCH/mogo-och-shuttle-passenger/src/m2/java/com/mogo/och/bus/passenger/ui/PM2DrivingInfoFragment.kt b/OCH/mogo-och-shuttle-passenger/src/m2/java/com/mogo/och/bus/passenger/ui/PM2DrivingInfoFragment.kt index 78d9568c90..2f5665618b 100644 --- a/OCH/mogo-och-shuttle-passenger/src/m2/java/com/mogo/och/bus/passenger/ui/PM2DrivingInfoFragment.kt +++ b/OCH/mogo-och-shuttle-passenger/src/m2/java/com/mogo/och/bus/passenger/ui/PM2DrivingInfoFragment.kt @@ -55,6 +55,12 @@ class PM2DrivingInfoFragment : line_name_tv.setTextColor(resources.getColor(R.color.m2_line_name_tv_color)) station_name_tv.setTextColor(resources.getColor(R.color.m2_line_name_tv_color)) + speed_tv.setVertrial(true) + val intArrayOf = intArrayOf( + requireContext().resources.getColor(R.color.shuttle_color_43cefe), + requireContext().resources.getColor(R.color.shuttle_color_1466fb) + ) + speed_tv.setmColorList(intArrayOf) // current_time_tv.onClick { @@ -163,6 +169,7 @@ class PM2DrivingInfoFragment : station_name_tv.text = resources.getString(R.string.m2_p_empty_tv) tv_distance.text = resources.getString(R.string.m2_p_empty_remain_km) tv_left_time.text = resources.getString(R.string.m2_p_empty_remain_minute) + noLineShow() } override fun createPresenter(): PM2DrivingPresenter { @@ -179,16 +186,12 @@ class PM2DrivingInfoFragment : } } - fun updateLineStations(stations: MutableList){ - var stationsList = mutableListOf() - for (i in stations.indices){ - val station = stations[i] - var latLng = LatLng(station.gcjLat,station.gcjLon) - stationsList.add(latLng) - } + fun updateLineStations(stations: MutableList,stationsPass: MutableList){ overMapView?.let { - it.drawSiteMarkers(stationsList, - BitmapFactory.decodeResource(resources,R.drawable.m2_map_staton_icon),0.5f,0.9f) + it.drawSiteMarkers(stations, + BitmapFactory.decodeResource(resources,R.drawable.m2_map_staton_icon),0.5f,0.5f) + it.drawSiteMarkers(stationsPass, + BitmapFactory.decodeResource(resources,R.drawable.m2_map_staton_arrived_icon),0.5f,0.5f) } } @@ -202,12 +205,10 @@ class PM2DrivingInfoFragment : tv_distance.text = resources.getString(R.string.m2_p_empty_remain_km) tv_left_time.text = resources.getString(R.string.m2_p_empty_remain_minute) tv_next_station_title.text = resources.getString(R.string.m2_p_station_title_arrived_tv) - tv_arrived_notice.visibility = View.VISIBLE - clg_distance_left_time.visibility = View.GONE + haveLineAndArrivedStation() }else{ //前往目的地中 tv_next_station_title.text = resources.getString(R.string.shuttle_p_next_station_title) - tv_arrived_notice.visibility = View.GONE - clg_distance_left_time.visibility = View.VISIBLE + haveLineAndArriveingStation() } } @@ -234,6 +235,31 @@ class PM2DrivingInfoFragment : "$time 分钟".also { tv_left_time.text = it } } + fun noLineShow(){ + // 没有线路展示 + group_not_select_line.visibility = View.VISIBLE + // 下一个站点 + group_stationinfo.visibility = View.GONE + // 距离和剩余大概时间 + clg_distance_left_time.visibility = View.GONE + // 到达站点 + tv_arrived_notice.visibility = View.GONE + } + // 有线路正在到站点 + fun haveLineAndArriveingStation(){ + group_not_select_line.visibility = View.GONE + group_stationinfo.visibility = View.VISIBLE + clg_distance_left_time.visibility = View.VISIBLE + tv_arrived_notice.visibility = View.GONE + } + // 有线路到达站点 + fun haveLineAndArrivedStation(){ + group_not_select_line.visibility = View.GONE + group_stationinfo.visibility = View.VISIBLE + clg_distance_left_time.visibility = View.GONE + tv_arrived_notice.visibility = View.VISIBLE + } + companion object { private val TAG = PM2DrivingInfoFragment::class.java.simpleName const val LOOP_TIME_TEXT = 10 * 1000L diff --git a/OCH/mogo-och-shuttle-passenger/src/m2/res/drawable-nodpi/m2_map_car_icon.png b/OCH/mogo-och-shuttle-passenger/src/m2/res/drawable-nodpi/m2_map_car_icon.png index 2520ae1c9e77acf65aef38a2e9dc559313a5b32d..b3a0641e346a3dc38b239ad456518be3af370ca2 100644 GIT binary patch literal 1859 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 diff --git a/OCH/mogo-och-shuttle-passenger/src/m2/res/drawable-nodpi/m2_map_start_icon.png b/OCH/mogo-och-shuttle-passenger/src/m2/res/drawable-nodpi/m2_map_start_icon.png index d7ab9231d998cc3e81eecd818e9a5dab3d30f2ba..c970699aacbc2c9fcad76c3d8b5d920a1c6469e9 100644 GIT binary patch delta 3403 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 delta 1803 zcmV+m2lV*x8odr7iBL{Q4GJ0x0000DNk~Le0000M0000U2nGNE04V3~R*@k{e-@wv z00aO40096103HAU001mec$)wK2B%3xK~zW$g;i^8Tt^i?Gjr$O-M#zp+PkbDIIh#g zag){%wFyb7QbL235)coOP?3~KR23k#X)B>h{D1~Ezd))`D5`=4>H|oWmMBmtje@9D zrIaRy(1)ue#;%<-Ze7RwxVyf)e|zV}x!df@4Qm)_HM8fQ`R2@bzH^4aGUGG*U$VGJ z?W9rXZsJ(OEW$c0P8k!XU@1AnwK?p%m8XC4?OXhI5Tu=P^apQ#izfL2XRs@7_osd4 zFbxzv^;K`Jfn2FXqjR3JYyRU4sn;KUcGoVo6ze0vJC7PxIQP~c+%>r^f6h>*Oxe}X zR{>Qx8vuf4DH=;~^IohopP!1<>bL*+p5by6JdC3;j4`BiVf^LP#ub~RYqI6WhY(2_ zXiON73UDn9$Z!tA{{UV*>0iqB^y`l3*@FisoF<;tTzu|F>E$U#T zBtV&w+6F=isG0zcHe}iae}V(CC>T6DFt&InmQ5#D7GFfXts!P3ux$^VTH*A@_c{Y< zAL+x00x%Vi?i(Pftf+8ZtAni6KoyJh8+|gKs8uXouj4@q55f%wNWnyc85Y~{(-Sja zXaQT9)Dy9F-M+%>8oamm>m*(+vDLTmLRJ=OO!pL z>Jo&;8!AJlg}dlk(VsMc!-Uygv0EYPNF|XsbWF)A+r2vJh7O~Bk?5yW^@v$`pY9py zbe}nMc~LDcl0$c9GdIR6j_@l~1iF#TKoOYN_Q0XB*%h>Y?q8c&CV|rYFd0f{U_z2r zU2$Hn272>gr*l&$f3xozj=NebIC1u3&_M(G`gB2jb0pss*DdvchoMi#a8=Xl3We}g+d8M~aXXx|S=`1z&r59+^s`La)_1zU%bkqtu`uB0YL5)*Qa0}_^D z5nE5v?wmRm52`dQQxVdEz{)W5Cb|DCrpYA0AYtSKfq7 zL8I(!!eGl#m-GGKO?%_>Qe+&D?cJPqv6jKMISL0a%`77Ee+W)2tbDBSk&KMyT=hs8 zY$M`ue{taG#Uo=XJvu9R4a=1zAt2>C_5tKui2$xkNlOOGyjN02qiVAm!jkbAdADY3 z<~k%D1NPO`!Nq%r+)v=KrqzUopno?{%>MQ7rNqd)wo~&0ZURaHvxX_RVLH%~A|#|k z8;}wQT?`1}E{84`*p5LlpK*&@35lZ^mqZ-?f5FyC55742=U2;#O%vrvm0&-XNDXL% zLI{&%F#T9ym?Rp(>!YPNCGF9Eaj7R8-}I#{Y4zh)#33+VK_mF~)ZgYFU0YT6z2!M( zvciK#?h&^EjM;YT0UT>rW?=aGkHN8%Z?|ypHdB;Ycb@+FT^Cx$ ztBb~_YmGbiAGHf*c@pid=X}24!-eT9;RC*Oq*0#iy|H62EH#Gfwj4jZe;3viVL5%R zGtzRcDeS?g{>!)=aOh~dQ#-I?4&txSZX;zWy9Jb+!Gf(WEYWlRB{{uN34Y=rtb({bI002ovPDHLkV1n=$YxMvC diff --git a/OCH/mogo-och-shuttle-passenger/src/m2/res/drawable-nodpi/m2_map_staton_arrived_icon.png b/OCH/mogo-och-shuttle-passenger/src/m2/res/drawable-nodpi/m2_map_staton_arrived_icon.png new file mode 100644 index 0000000000000000000000000000000000000000..39be18953c759b81159ad7e79158a4a3cbec2b48 GIT binary patch literal 973 zcmV;;12X)HP)Px#L}ge>W=%~1DgXcg2mk?xX#fNO00031000^Q000001E2u_0{{R30RRC20H6W@ z1ONa40RR917N7$F1ONa40RR91761SM030DRS^xk8H%UZ6R5%fRl)GzGQ4q$@z5B?n zuA68ug$6-L9|(x0Z9=LP!7_?}fSt9qos~^MA%%)%Adpg2QV40a2$*O@*bsI%$-eL2 z>-Rf*=eownz_&B!oSARt%$d7^`?mz?5!!6?PGkVY^k|j-o)2K#h|u8}%on0~43^}t z3FPO+$O>AOcXoDeH=E68gTdf)9LHw>n?26(5%8q|ODywu;UFgzS65fBG#ZWdp(Ki; z1jx)Zwvr6-!Izjc_78Haw79aeGTmym-l?)=9Q}UZuhHW;Jw1I#OiG?rZW-91+ET4n zdpbEed0)1dvwrAm?VM}(N3ItNiJQ4Nbd@4)9*J7>d}e0mp;ldCD8!b5sQl*U=6tnU zUDGuk_}&cNr&`_}p9QYdcOJ*B!0&OEB#HMUhFCZRxB`d~ba8%u{+cB<=&YIo8$U|b`NV&4tgt$dKAT{k1X#K68^A!_AEF39u zV5LKx3&ZdlPDrC2x`8Sibyi=2rZmt3jbJzBWB$2Z?wYoFC%8PZw2${Kpbf}Sq~L!7 z!!LjD>`95i$fVcn{jgS)^F!YX>+yL_pYbt&jo^=rNQMzpW_)yX^nnV%^=ijIl2v|Q zlL#LpCKe9CU)kR#-573fZ@-dbtS`$|C;INjR6Cmj|6r=pD!+NT<1Q6@){2-|@z4)X z?q^O59`S-Oxx2gjWOjD;u52&$PSJfiF1wQsE^;VG?&fsIO_ep+sT>|2zFt^Zc%)@h zXbX`MQ#mtOnVXxty0x|SLPLKm(9_%Fn2ko*$JYPF$K~badwY9(N7_CU$mqX3dIHon z*OfzkadGj%!NI{B1=AVdN7{pp29kJxfB((W($WKBh!x=Qe9WDRB}nS^dbGa2{=QHs zyw!g|QYw`$YECDVXwdC;b@RjRjg5`RYinyS<=YTJOXvw?geRMSvuO#*CWMl}|1Ea* zsmkVYxGqE;fl7@un~G7xbdrko9CBU@LNu_^B$z7$5}>V8U#-@^Rm>VOax`QHD}rFi v4Ot7dmx(!N8)Jr@q0P2qBV(OaX@}^ae6}KScN}WJ00000NkvXXu0mjf`c}B< literal 0 HcmV?d00001 diff --git a/OCH/mogo-och-shuttle-passenger/src/m2/res/drawable-nodpi/m2_map_staton_icon.png b/OCH/mogo-och-shuttle-passenger/src/m2/res/drawable-nodpi/m2_map_staton_icon.png index 13140284340435aa9b665a933aeb23013b4f6c67..d90c5a2b71e4d73392eb177fa55f1526cc9c256e 100644 GIT binary patch delta 962 zcmV;z13moa2>J&hiBL{Q4GJ0x0000DNk~Le0000M0000M2nGNE0K~LxJCPwse-@wv z00aO40096102TlM000~zGg<%u17t}=K~y*qbyQ7D8&MQ}NlZ*NBvfq{;zCNQr5^~E z(xodwt5QO-F17dry6d{@?z-wG(1MG8NGVmY1Xp5t5UUFt8yk1ZDD0rBbQ^vu)cU z5W1c*nlzZhT-LN||00)3L&;>ayHcsFV=~8!dcAJe^j;ht9j&vbMea^6e;xRM(}r`o z+_P9L_7JhLy`okhe_HBCNh=?+`=fq!_i|7TTx3bpAkB+-JpKr)D$oEli3w(fmY0`r zjgF44IgVqhmNGTB-;1FDW+`3T;mW%V|p6(-pe;Y+-cT=(o1X}dVY|pbX(vozrlBQcAt$Nl3%OU4n+#SeQImtf5=VLJ-%)l_eXuM z6u5$i!Xq8%Ii}9%^Pgqv$$<`~&D7KxXz&Crk65GOEwsKYV z{@X8=De&$qmFNkpf8>oWbuAt?YyM=j**C+(!;cY`ffK+MVrtDh7)c}&msVC*UPhzQ z+qn2L5kCSG)6*y!WBgxynV6WE%VaWnJU#~84}?+>Hc&-EacpdC{@~zX5ye!-=ty}O z(-SbgzrVjYK0ZFr8rA~jFnqjsV$#4V7K?T&mHHG62G{T(f8d0};ZEGsb~Li8)hbS& zO)o4gJei%HeTCc-2r57gU`O&8ed%dDBPC(8c7P)C|CX`)sUqf^=W$7N3UE>(b#Fye zFzmEUG$%P07*qoM6N<$f`&Z3pa1{> delta 1071 zcmV+~1kn5X2j&PNiBL{Q4GJ0x0000DNk~Le0000S0000b2nGNE08w~}@sS}&e;l9# z00aO40096103`qb00790E>!>k1JFrCK~z`?y;n_W6G0Syvp>xyZLQk0HV74M5rv}A zBIrSAQK*Us5fl#|#8dSocq$c%KTr`ph#(aa1W^h_@S>mxt%!I~ih?5bprFMnwXL>> zW}9TkH?x_^WH;MpYwJQbZ{E-Mf6X_u^RgkUFCW{Q19}H2T?b2dO%npWqbINTl7>rN zPXTEA(sAXH3DBr+B@7_64k$otVl7Ud>Vjo0e=TmVoq{p@ zk0;9=#v_$bAE^RU*Ew-Io8bXTD5^#V24He%NDO`7vBpMDIGwfO*w8)5I*u=gIdr1I z%`FFDxfv~r%Ow?F8UP^TLU}|pxB}_-7)+t16_!$jeF{ZjzV8Z6hik3-=S%a&eF}XU zi|qLCgbQBM96rUT-#>!Uf0?P0Yfx`h!MT=BFo|9iUohbxd`dq|{Q#%L@nH;;nHl(< zu_0a&o14%|B#IKe1FNBdyJ}1eE^gWj-_z6H6h2;s3cX}3;8VDsl7zXU4kN22K7--qCCO!)Yp@)4DMYRVAmALTvt+3xuY`d}YIHN;JUB}eHs(+@ zkH_3w0HKn>P45KqV-AY8P{eZcwmU^{U7$jRPz6%}r5fhr#N1F;AW!D0_b4pAJPb+_ zsNm9{uan>&)jZF=e|ZSiB~Wda>=~=zJcgv|z6o1SP!Liw=9(ez9-zX6)QKrJo+4c{ zerh@)-MG=8LehmzpGN&XpHE!*p>A4PAk7c1PTk0VJigSK@<|DB%uC3Kvbu8yyBB}A_|^7p zGw5JczpsC%rwkkYvxLyQF*DjXnC!>~@JP3(mr6f3+LKSMEXnl=GUg<+W`;VNqs?kA zIDrcM-9M6=e@!1Qt}Z>Aa}RB>V?@&|_s7%)s2;BU=$JW!WVBo{BrWT0YEFeOle;ER z(*?F{0-Px`Qf69=**6}`H-uK)Qhh=8ynDzBw|76Rvo*34m9}A{kK=>1>Wft2zkTze*gdg07*qo1w^hwV1gJz=Sctn diff --git a/OCH/mogo-och-shuttle-passenger/src/m2/res/layout/p_m2_driving_info_fragment.xml b/OCH/mogo-och-shuttle-passenger/src/m2/res/layout/p_m2_driving_info_fragment.xml index dfd6973a86..791644deff 100644 --- a/OCH/mogo-och-shuttle-passenger/src/m2/res/layout/p_m2_driving_info_fragment.xml +++ b/OCH/mogo-och-shuttle-passenger/src/m2/res/layout/p_m2_driving_info_fragment.xml @@ -62,7 +62,7 @@ android:maxWidth="@dimen/dp_600" android:singleLine="true" android:textColor="@color/m2_line_name_tv_color" - android:textSize="@dimen/dp_20" + android:textSize="@dimen/dp_26" android:textStyle="bold" app:customGap="0.2" app:layout_constraintEnd_toEndOf="@+id/iv_line_name_container" @@ -123,20 +123,21 @@ @@ -152,6 +153,7 @@ android:id="@+id/bg_distance_lefttime" android:layout_width="@dimen/dp_182" android:layout_height="@dimen/dp_48" + android:layout_marginTop="@dimen/dp_22" android:background="@drawable/bg_driving_distance_lefttime" app:layout_constraintStart_toStartOf="@+id/tv_next_station_title" app:layout_constraintTop_toBottomOf="@+id/station_name_tv" /> @@ -200,6 +202,7 @@ android:gravity="center" android:text="@string/m2_p_arrived_station_title" android:textColor="@color/shuttle_color_1f860d" + android:layout_marginTop="@dimen/dp_22" android:textSize="@dimen/dp_18" android:visibility="gone" app:layout_constraintStart_toStartOf="@+id/tv_next_station_title" @@ -219,13 +222,13 @@ - + app:layout_constraintBottom_toBottomOf="parent" /> + android:textSize="@dimen/dp_46" /> #2D3E5F #1F860D #B9E7C0 + #43CEFE + #1466FB \ No newline at end of file From 7c66a3deed78b2e21909354e7bb8b47819110079 Mon Sep 17 00:00:00 2001 From: chenfufeng Date: Tue, 4 Apr 2023 16:24:10 +0800 Subject: [PATCH 08/14] =?UTF-8?q?[m2][3.0.0]=E6=96=B0=E5=A2=9E=E7=94=BB?= =?UTF-8?q?=E7=AB=99=E7=82=B9=E7=9A=84=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../eagle/core/function/view/OverMapView.kt | 19 +++++++++++++++++++ .../core/function/view/SiteMarkerBean.kt | 6 ++++++ 2 files changed, 25 insertions(+) create mode 100644 core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/view/SiteMarkerBean.kt diff --git a/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/view/OverMapView.kt b/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/view/OverMapView.kt index 3cef39a6a1..cbf19c021a 100644 --- a/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/view/OverMapView.kt +++ b/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/view/OverMapView.kt @@ -215,6 +215,25 @@ class OverMapView @JvmOverloads constructor( siteMarkerList = mAMap!!.addMarkers(markerOptionsList, false) } + @MainThread + fun drawSiteMarkers( + siteMarkers: List?, + ) { + if (siteMarkers.isNullOrEmpty()) return + clearSiteMarkers() + val markerOptionsList = ArrayList() + for (siteMarkerBean in siteMarkers) { + val markerOption = MarkerOptions() + markerOption.position(siteMarkerBean.latLng) + markerOption.anchor(siteMarkerBean.anchorX, siteMarkerBean.anchorY) + markerOption.icon( + BitmapDescriptorFactory.fromBitmap(siteMarkerBean.bitmap) + ) + markerOptionsList.add(markerOption) + } + siteMarkerList = mAMap!!.addMarkers(markerOptionsList, false) + } + @MainThread fun clearSiteMarkers() { if (siteMarkerList != null) { diff --git a/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/view/SiteMarkerBean.kt b/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/view/SiteMarkerBean.kt new file mode 100644 index 0000000000..cc6d5592fe --- /dev/null +++ b/core/function-impl/mogo-core-function-map/src/main/java/com/mogo/eagle/core/function/view/SiteMarkerBean.kt @@ -0,0 +1,6 @@ +package com.mogo.eagle.core.function.view + +import android.graphics.Bitmap +import com.amap.api.maps.model.LatLng + +data class SiteMarkerBean(var latLng: LatLng, var bitmap: Bitmap, var anchorX: Float, var anchorY: Float) From 4400b3d9efae93d496a87820aecf39a257586708 Mon Sep 17 00:00:00 2001 From: yangyakun Date: Tue, 4 Apr 2023 17:11:47 +0800 Subject: [PATCH 09/14] =?UTF-8?q?[m2]=20[3.0.0]=20[=E7=AB=99=E7=82=B9?= =?UTF-8?q?=E6=A0=B7=E5=BC=8F=E5=8F=98=E6=9B=B4]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../passenger/ui/PM2DrivingInfoFragment.kt | 22 +++++++++---------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/OCH/mogo-och-shuttle-passenger/src/m2/java/com/mogo/och/bus/passenger/ui/PM2DrivingInfoFragment.kt b/OCH/mogo-och-shuttle-passenger/src/m2/java/com/mogo/och/bus/passenger/ui/PM2DrivingInfoFragment.kt index 2f5665618b..fa8d0ca009 100644 --- a/OCH/mogo-och-shuttle-passenger/src/m2/java/com/mogo/och/bus/passenger/ui/PM2DrivingInfoFragment.kt +++ b/OCH/mogo-och-shuttle-passenger/src/m2/java/com/mogo/och/bus/passenger/ui/PM2DrivingInfoFragment.kt @@ -2,17 +2,12 @@ package com.mogo.och.bus.passenger.ui import android.graphics.BitmapFactory import android.os.Bundle -import android.os.Handler -import android.os.Looper -import android.os.Message import android.view.View import androidx.core.content.ContextCompat import com.amap.api.maps.model.LatLng import com.mogo.commons.mvp.MvpFragment import com.mogo.eagle.core.function.hmi.ui.setting.ToggleDebugView -import com.mogo.eagle.core.utilcode.kotlin.onClick -import com.mogo.eagle.core.utilcode.util.DateTimeUtils -import com.mogo.eagle.core.utilcode.util.UiThreadHandler +import com.mogo.eagle.core.function.view.SiteMarkerBean import com.mogo.eagle.core.widget.media.video.TextureVideoViewOutlineProvider import com.mogo.och.bus.passenger.R import com.mogo.och.bus.passenger.bean.PM2Station @@ -21,7 +16,6 @@ import com.mogo.och.common.module.utils.DateTimeUtil.* import com.mogo.och.common.module.utils.NumberFormatUtil import kotlinx.android.synthetic.m2.p_m2_driving_info_fragment.* import me.jessyan.autosize.utils.AutoSizeUtils -import java.lang.ref.WeakReference import kotlin.math.ceil import kotlin.math.roundToInt @@ -188,10 +182,16 @@ class PM2DrivingInfoFragment : fun updateLineStations(stations: MutableList,stationsPass: MutableList){ overMapView?.let { - it.drawSiteMarkers(stations, - BitmapFactory.decodeResource(resources,R.drawable.m2_map_staton_icon),0.5f,0.5f) - it.drawSiteMarkers(stationsPass, - BitmapFactory.decodeResource(resources,R.drawable.m2_map_staton_arrived_icon),0.5f,0.5f) + val stationsList: MutableList = mutableListOf() + val stationIcon = BitmapFactory.decodeResource(resources, R.drawable.m2_map_staton_icon) + val stationPassIcon = BitmapFactory.decodeResource(resources, R.drawable.m2_map_staton_arrived_icon) + for (stationsPass in stationsPass) { + stationsList.add(SiteMarkerBean(stationsPass,stationPassIcon,0.5f,0.5f)) + } + for (stationsPass in stations) { + stationsList.add(SiteMarkerBean(stationsPass,stationIcon,0.5f,0.5f)) + } + it.drawSiteMarkers(stationsList) } } From 7d4a9c1812025b5e4a7db2a67d16b2c951b453b5 Mon Sep 17 00:00:00 2001 From: yangyakun Date: Thu, 6 Apr 2023 14:52:54 +0800 Subject: [PATCH 10/14] =?UTF-8?q?[m2]=20[3.0.0]=20[=E4=B8=8A=E4=B8=8B?= =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E8=83=8C=E6=99=AF]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../m2/res/drawable-nodpi/m2_bottom_bg.png | Bin 0 -> 49175 bytes .../src/m2/res/drawable-nodpi/m2_sky_bg.png | Bin 0 -> 282855 bytes .../src/m2/res/layout/p_m2_fragment.xml | 22 +++++++++++++++++- 3 files changed, 21 insertions(+), 1 deletion(-) create mode 100644 OCH/mogo-och-shuttle-passenger/src/m2/res/drawable-nodpi/m2_bottom_bg.png create mode 100644 OCH/mogo-och-shuttle-passenger/src/m2/res/drawable-nodpi/m2_sky_bg.png diff --git a/OCH/mogo-och-shuttle-passenger/src/m2/res/drawable-nodpi/m2_bottom_bg.png b/OCH/mogo-och-shuttle-passenger/src/m2/res/drawable-nodpi/m2_bottom_bg.png new file mode 100644 index 0000000000000000000000000000000000000000..722c3a0787ad6ff07944c06473a863a12a149315 GIT binary patch literal 49175 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 U)lG|;G~n-|=4Finb&H_?0n$T@3IG5A literal 0 HcmV?d00001 diff --git a/OCH/mogo-och-shuttle-passenger/src/m2/res/drawable-nodpi/m2_sky_bg.png b/OCH/mogo-och-shuttle-passenger/src/m2/res/drawable-nodpi/m2_sky_bg.png new file mode 100644 index 0000000000000000000000000000000000000000..c28959514e365d5137a731827fb8483ffad22f78 GIT binary patch literal 282855 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ν}23&uqrz$&k>; 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�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 z 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⁣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 qP{-eP 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⁢ge)=weJU6Oo?;;VV&)*`!-Z)O7 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 literal 0 HcmV?d00001 diff --git a/OCH/mogo-och-shuttle-passenger/src/m2/res/layout/p_m2_fragment.xml b/OCH/mogo-och-shuttle-passenger/src/m2/res/layout/p_m2_fragment.xml index a6316b0b7c..9559b7f926 100644 --- a/OCH/mogo-och-shuttle-passenger/src/m2/res/layout/p_m2_fragment.xml +++ b/OCH/mogo-och-shuttle-passenger/src/m2/res/layout/p_m2_fragment.xml @@ -9,10 +9,30 @@ + + + + + Date: Thu, 6 Apr 2023 15:59:18 +0800 Subject: [PATCH 11/14] =?UTF-8?q?[M2]=E4=B9=98=E5=AE=A2=E5=B1=8F=E9=94=99?= =?UTF-8?q?=E8=AF=AF=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mogo/och/bus/passenger/model/PM2DrivingModel.kt | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/OCH/mogo-och-shuttle-passenger/src/m2/java/com/mogo/och/bus/passenger/model/PM2DrivingModel.kt b/OCH/mogo-och-shuttle-passenger/src/m2/java/com/mogo/och/bus/passenger/model/PM2DrivingModel.kt index 7da2122640..441861d081 100644 --- a/OCH/mogo-och-shuttle-passenger/src/m2/java/com/mogo/och/bus/passenger/model/PM2DrivingModel.kt +++ b/OCH/mogo-och-shuttle-passenger/src/m2/java/com/mogo/och/bus/passenger/model/PM2DrivingModel.kt @@ -24,6 +24,7 @@ import com.mogo.eagle.core.function.call.autopilot.CallerChassisLocationGCJ02Lis import com.mogo.eagle.core.function.call.autopilot.CallerPlanningRottingListenerManager import com.mogo.eagle.core.function.call.telematic.CallerTelematicListenerManager import com.mogo.eagle.core.function.call.telematic.CallerTelematicManager.sendMsgToServer +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.Logger import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant @@ -37,6 +38,7 @@ import com.mogo.och.bus.passenger.bean.PM2RoutesResponse import com.mogo.och.bus.passenger.callback.AutoPilotStatusCallback import com.mogo.och.bus.passenger.callback.DrivingInfoCallback import com.mogo.och.bus.passenger.constant.BusPassengerConst +import com.mogo.och.bus.passenger.model.PM2ServiceManager.driverAppSn import com.mogo.och.bus.passenger.network.PM2ModelLoopManager import com.mogo.och.common.module.bean.dpmsg.* import com.mogo.och.common.module.biz.common.socketmessage.OCHSocketMessageManager.pushAppOperationalMsgBox @@ -188,7 +190,7 @@ class PM2DrivingModel private constructor() { Logger.d( SceneConstant.M_BUS_P + TAG, "onReceivedMsg = " + GsonUtils.toJson(msg) ) - if (msg == null || msg.msg.isEmpty()) { + if (msg == null || msg.msg?.isEmpty() == true) { updateLocalOrder() return } @@ -199,7 +201,7 @@ class PM2DrivingModel private constructor() { } if (routesResult == null || - (result != null && result.routesResult.writeVersion > routesResult!!.writeVersion)) { + (result != null && result.routesResult?.writeVersion!! > routesResult!!.writeVersion)) { routesResult = result.routesResult updatePassengerRouteInfo(routesResult!!) } @@ -376,11 +378,11 @@ class PM2DrivingModel private constructor() { updatePassengerRouteInfo(data.result) } - fun onError() { + override fun onError() { CallerLogger.d( SceneConstant.Companion.M_BUS_P + TAG, "queryDriverSiteByCoordinate = onError =" - + ", sn = " + BusPassengerServiceManager.driverAppSn + + ", sn = " + driverAppSn ) queryDriverByLocalDriver() } @@ -416,7 +418,7 @@ class PM2DrivingModel private constructor() { private fun updatePassengerRouteInfo(result: BusRoutesResult) { if (result == null) { - clearLocalRouteResult() + updateLocalOrder() return } From 01fde7ba853bf7b4295bf4f1c5a6dd77e74f1218 Mon Sep 17 00:00:00 2001 From: wangmingjun Date: Thu, 6 Apr 2023 21:02:13 +0800 Subject: [PATCH 12/14] =?UTF-8?q?[B1/B2]=E4=B9=98=E5=AE=A2=E5=B1=8F?= =?UTF-8?q?=E8=B7=AF=E7=BA=BF=E7=8A=B6=E6=80=81=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/mogo/och/bus/passenger/model/BusPassengerModel.java | 3 +++ .../java/com/mogo/och/bus/passenger/model/PM2DrivingModel.kt | 4 +++- .../src/m2/res/layout/p_m2_driving_info_fragment.xml | 2 +- 3 files changed, 7 insertions(+), 2 deletions(-) diff --git a/OCH/mogo-och-shuttle-passenger/src/jinlvvan/java/com/mogo/och/bus/passenger/model/BusPassengerModel.java b/OCH/mogo-och-shuttle-passenger/src/jinlvvan/java/com/mogo/och/bus/passenger/model/BusPassengerModel.java index d2ddb289c9..58ac9e3d17 100644 --- a/OCH/mogo-och-shuttle-passenger/src/jinlvvan/java/com/mogo/och/bus/passenger/model/BusPassengerModel.java +++ b/OCH/mogo-och-shuttle-passenger/src/jinlvvan/java/com/mogo/och/bus/passenger/model/BusPassengerModel.java @@ -273,6 +273,9 @@ public class BusPassengerModel { clearLocalRouteResult(); return; } + + routesResult = result; + if (mRouteLineInfoCallback != null){ mRouteLineInfoCallback.updateLineInfo(result.getName(),result.getRunningDur()); mRouteLineInfoCallback.hideNoTaskView(); diff --git a/OCH/mogo-och-shuttle-passenger/src/m2/java/com/mogo/och/bus/passenger/model/PM2DrivingModel.kt b/OCH/mogo-och-shuttle-passenger/src/m2/java/com/mogo/och/bus/passenger/model/PM2DrivingModel.kt index 441861d081..98a3185650 100644 --- a/OCH/mogo-och-shuttle-passenger/src/m2/java/com/mogo/och/bus/passenger/model/PM2DrivingModel.kt +++ b/OCH/mogo-och-shuttle-passenger/src/m2/java/com/mogo/och/bus/passenger/model/PM2DrivingModel.kt @@ -105,7 +105,7 @@ class PM2DrivingModel private constructor() { private fun queryDriverByLocalDriver() { //本地去请求司机端 - val msg = TaskDetailsMsg("") + val msg = TaskDetailsMsg("task") sendMsgToServer(GsonUtils.toJson(msg)) } @@ -422,6 +422,8 @@ class PM2DrivingModel private constructor() { return } + routesResult = result + mDrivingInfoCallback?.updateLine(result.name, result.runningDur) if (result.sites != null) { mDrivingInfoCallback?.showNoTaskView(false) diff --git a/OCH/mogo-och-shuttle-passenger/src/m2/res/layout/p_m2_driving_info_fragment.xml b/OCH/mogo-och-shuttle-passenger/src/m2/res/layout/p_m2_driving_info_fragment.xml index 791644deff..61a1312d0e 100644 --- a/OCH/mogo-och-shuttle-passenger/src/m2/res/layout/p_m2_driving_info_fragment.xml +++ b/OCH/mogo-och-shuttle-passenger/src/m2/res/layout/p_m2_driving_info_fragment.xml @@ -228,7 +228,7 @@ android:layout_height="wrap_content" android:layout_marginStart="@dimen/dp_50" android:layout_marginTop="@dimen/dp_27" - android:text="60" + android:text="0" android:textColor="@color/m2_p_speed_tv_color" android:textSize="@dimen/dp_60" android:textStyle="bold" From 620344482c2f8d1ad78e963869e444bcc2282b1a Mon Sep 17 00:00:00 2001 From: wangmingjun Date: Fri, 7 Apr 2023 14:01:20 +0800 Subject: [PATCH 13/14] =?UTF-8?q?[shuttle]=20=E9=9F=A9=E8=AF=AD=E6=9B=B4?= =?UTF-8?q?=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/mogo/och/bus/model/OrderModel.java | 6 +- .../och/common/module/voice/VoiceManager.kt | 61 +++++++++++++++++++ .../src/main/res/values/strings.xml | 12 ++++ .../com/mogo/och/bus/model/OrderModel.java | 6 +- 4 files changed, 79 insertions(+), 6 deletions(-) diff --git a/OCH/mogo-och-bus/src/jinlvvan/java/com/mogo/och/bus/model/OrderModel.java b/OCH/mogo-och-bus/src/jinlvvan/java/com/mogo/och/bus/model/OrderModel.java index dba8586d78..98e2f413aa 100644 --- a/OCH/mogo-och-bus/src/jinlvvan/java/com/mogo/och/bus/model/OrderModel.java +++ b/OCH/mogo-och-bus/src/jinlvvan/java/com/mogo/och/bus/model/OrderModel.java @@ -718,7 +718,7 @@ public class OrderModel { , arriveStation , isLastStop); } - VoiceManager.INSTANCE.arrivedStation(arriveStation,arriveStationKr); + VoiceManager.INSTANCE.arrivedStationBus(arriveStation,arriveStationKr); } /** @@ -778,7 +778,7 @@ public class OrderModel { UiThreadHandler.postDelayed(new Runnable() { @Override public void run() { - VoiceManager.INSTANCE.leaveStation(nextStation,nextStationKr); + VoiceManager.INSTANCE.leaveStationBus(nextStation,nextStationKr); } },DELAY_10S); } @@ -1049,7 +1049,7 @@ public class OrderModel { } private void ttsEndTask() { - VoiceManager.INSTANCE.endOrder(); + VoiceManager.INSTANCE.endOrderBus(); } /** diff --git a/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/voice/VoiceManager.kt b/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/voice/VoiceManager.kt index 6566ebb133..bf1bc8d602 100644 --- a/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/voice/VoiceManager.kt +++ b/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/voice/VoiceManager.kt @@ -102,4 +102,65 @@ object VoiceManager { list.add(koreanTTS) VoiceNotice.showNotice(list, AIAssist.LEVEL0,callBack) } + + fun arrivedStationBus(siteNameCN: String?, siteNameKR: String?) { + val context = AbsMogoApplication.getApp() + val list: MutableList = ArrayList() + siteNameCN?.let { + val chineseTTS = LangTtsEntity( + context.getString(R.string.bus_arrived_station_tip, it), + LanguageType.CHINESE + ) + val engTTS = LangTtsEntity( + context.getString(R.string.bus_arrived_station_english_tip, it), + LanguageType.CHINESE + ) + val koreanTTS = LangTtsEntity( + context.getString(R.string.bus_arrived_station_korean_tip, siteNameKR?:it), + LanguageType.KOREAN + ) + list.add(chineseTTS) + list.add(engTTS) + list.add(koreanTTS) + } + + VoiceNotice.showNotice(list, AIAssist.LEVEL1,null) + } + + fun leaveStationBus(siteNameCN: String?, siteNameKR: String?) { + val list: MutableList = ArrayList() + val context = AbsMogoApplication.getApp() + siteNameCN?.let { + val chineseTTS = LangTtsEntity( + context.getString(R.string.bus_leave_station_tip, it), + LanguageType.CHINESE + ) + val engTTS = LangTtsEntity( + context.getString(R.string.bus_leave_station_english_tip, it), + LanguageType.CHINESE + ) + list.add(chineseTTS) + list.add(engTTS) + + val koreanTTS = LangTtsEntity( + context.getString(R.string.bus_leave_station_korean_tip, siteNameKR ?: it), + LanguageType.KOREAN + ) + list.add(koreanTTS) + } + VoiceNotice.showNotice(list, AIAssist.LEVEL1,null) + } + + fun endOrderBus() { + val context = AbsMogoApplication.getApp() + val list: MutableList = ArrayList() + val chineseTTS = LangTtsEntity(context.getString(R.string.bus_end_task_tip), LanguageType.CHINESE) + val engTTS = LangTtsEntity(context.getString(R.string.bus_end_task_english_tip), LanguageType.ENGLISH) + val koreanTTS = LangTtsEntity(context.getString(R.string.bus_end_task_korean_tip), LanguageType.KOREAN) + list.add(chineseTTS) + list.add(engTTS) + list.add(koreanTTS) + VoiceNotice.showNotice(list, AIAssist.LEVEL0,null) + } + } \ No newline at end of file diff --git a/OCH/mogo-och-common-module/src/main/res/values/strings.xml b/OCH/mogo-och-common-module/src/main/res/values/strings.xml index a018b9286c..5aed40ce2e 100644 --- a/OCH/mogo-och-common-module/src/main/res/values/strings.xml +++ b/OCH/mogo-och-common-module/src/main/res/values/strings.xml @@ -31,6 +31,18 @@ Thank you for experiencing the self-driving minibus. See you next time 자율주행 버스를 체험해 주셔서 감사합니다. 다음에 또 뵙겠습니다 + 已到达%1$s,带好随身物品,下车请注意安全。 + We are arriving at %1$s ,get off with your belongings + %1$s 역에 도착했습니다 , 소지품 챙겨서 내리세요 + + 车辆起步,请扶稳坐好,前方到站是%1$s,请下车的乘客做好准备。 + The next station is %1$s ,please get ready for your arrival + 전방에서 역에 도착하는 %1$s ,차에서 내리는 승객은 준비하세요 + + 感谢您体验\'蘑菇车联\'自动驾驶小巴车,我们下次再见。 + Thank you for experiencing the self-driving minibus. See you next time + 자율주행 버스를 체험해 주셔서 감사합니다. 다음에 또 뵙겠습니다 + 取消 扫描二维码完成车辆绑定 \ No newline at end of file diff --git a/OCH/mogo-och-shuttle/src/main/java/com/mogo/och/bus/model/OrderModel.java b/OCH/mogo-och-shuttle/src/main/java/com/mogo/och/bus/model/OrderModel.java index be4cecf5e1..3b8cd646ce 100644 --- a/OCH/mogo-och-shuttle/src/main/java/com/mogo/och/bus/model/OrderModel.java +++ b/OCH/mogo-och-shuttle/src/main/java/com/mogo/och/bus/model/OrderModel.java @@ -811,7 +811,7 @@ public class OrderModel { , isLastStop); } - VoiceManager.INSTANCE.arrivedStation(arriveStation,arriveStationKr); + VoiceManager.INSTANCE.arrivedStationBus(arriveStation,arriveStationKr); sendArrivedStationToClient(arriveStation); @@ -928,7 +928,7 @@ public class OrderModel { UiThreadHandler.postDelayed(new Runnable() { @Override public void run() {//延迟10s播报 - VoiceManager.INSTANCE.leaveStation(nextStation,nextStationKr); + VoiceManager.INSTANCE.leaveStationBus(nextStation,nextStationKr); } },DELAY_10S); @@ -1177,7 +1177,7 @@ public class OrderModel { queryBusRoutes();// 重新获取任务 removeTipRunnables(); // startOrStopQueryPassengerWriteOff(false); - VoiceManager.INSTANCE.endOrder(); + VoiceManager.INSTANCE.endOrderBus(); sendEndTaskToClient(); } } From 918352a0b46bb2ecad89025da08103070ba84d2a Mon Sep 17 00:00:00 2001 From: wangmingjun Date: Fri, 7 Apr 2023 14:38:01 +0800 Subject: [PATCH 14/14] =?UTF-8?q?[=E5=8C=85=E8=BD=A6]=20=E5=8C=85=E8=BD=A6?= =?UTF-8?q?=E7=A1=AE=E8=AE=A4=E8=B7=AF=E7=BA=BFdialog=E6=96=87=E5=AD=97?= =?UTF-8?q?=E8=BF=87=E9=95=BF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/magic/mogo/och/charter/model/DriverM1Model.kt | 2 +- .../src/main/res/layout/dialog_bus_commit.xml | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/OCH/mogo-och-charter/src/driverm1/java/com/magic/mogo/och/charter/model/DriverM1Model.kt b/OCH/mogo-och-charter/src/driverm1/java/com/magic/mogo/och/charter/model/DriverM1Model.kt index a5b304a113..329eb1953f 100644 --- a/OCH/mogo-och-charter/src/driverm1/java/com/magic/mogo/och/charter/model/DriverM1Model.kt +++ b/OCH/mogo-och-charter/src/driverm1/java/com/magic/mogo/och/charter/model/DriverM1Model.kt @@ -258,7 +258,7 @@ class DriverM1Model { val list = obj.screenList d(SceneConstant.M_CHARTER_D + TAG, "onMsgReceived = " + GsonUtils.toJson(list)) if (list != null && list.contains(1)){ // 司机端 - pushOperationalToMsgBox(obj.pushTimeStamp, obj.context) + pushOperationalToMsgBox(DateTimeUtil.getCurrentTimeStamp(), obj.context) } if (list != null && list.contains(2)){ //发送乘客屏 sendMsgToClient(DPCommonOperationMsg(obj.context)) diff --git a/OCH/mogo-och-common-module/src/main/res/layout/dialog_bus_commit.xml b/OCH/mogo-och-common-module/src/main/res/layout/dialog_bus_commit.xml index 03cf6737e0..6eb23e17ce 100644 --- a/OCH/mogo-och-common-module/src/main/res/layout/dialog_bus_commit.xml +++ b/OCH/mogo-och-common-module/src/main/res/layout/dialog_bus_commit.xml @@ -22,6 +22,8 @@ android:id="@+id/common_tips" android:layout_width="wrap_content" android:layout_height="wrap_content" + android:paddingLeft="@dimen/dp_40" + android:paddingRight="@dimen/dp_40" app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintRight_toRightOf="parent" app:layout_constraintTop_toBottomOf="@id/common_title"