From 130d82dd9f059c16c05b59b802180a6dd42096ab Mon Sep 17 00:00:00 2001 From: xuxinchao Date: Tue, 28 Mar 2023 17:43:31 +0800 Subject: [PATCH 1/5] =?UTF-8?q?=E3=80=8Cdev=5Frobobus-d=5F230322=5F3.0.0?= =?UTF-8?q?=E3=80=8D=E6=9B=B4=E6=94=B9=E5=88=B0=E7=AB=99=E6=8F=90=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../eagle/function/biz/dispatch/DispatchAutoPilotManager.kt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/dispatch/DispatchAutoPilotManager.kt b/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/dispatch/DispatchAutoPilotManager.kt index 18ef4a0781..cfd1e51e72 100644 --- a/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/dispatch/DispatchAutoPilotManager.kt +++ b/core/function-impl/mogo-core-function-biz/src/main/java/com/mogo/eagle/function/biz/dispatch/DispatchAutoPilotManager.kt @@ -314,11 +314,11 @@ class DispatchAutoPilotManager private constructor() : receiverBean?.let { //调度完成,同步云端,并且吐司提示 dispatchServiceModel.dispatchResultUpload(DISPATCH_COMPLETED, it.taskId) - ToastUtils.showLong("云调度完成,车辆即将到达${it.endLocAddress}") + ToastUtils.showLong("云调度完成,车辆已到达${it.endLocAddress}") //取消自动驾驶 CallerAutoPilotControlManager.cancelAutoPilot() //语音提示到站 - AIAssist.getInstance(mContext).speakTTSVoice("云调度完成,车辆即将到达${it.endLocAddress}") + AIAssist.getInstance(mContext).speakTTSVoice("云调度完成,车辆已到达${it.endLocAddress}") } } } From 8528eac080e87dba960a673a0894de099d44ff39 Mon Sep 17 00:00:00 2001 From: yangyakun Date: Wed, 29 Mar 2023 15:03:39 +0800 Subject: [PATCH 2/5] =?UTF-8?q?[m1]=20[=E4=B8=8D=E9=9C=80=E8=A6=81?= =?UTF-8?q?=E5=85=BC=E5=AE=B9]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../passenger/model/CharterPassengerModel.kt | 21 ++++--------------- .../bus/passenger/utils/VoiceFocusManager.kt | 2 +- 2 files changed, 5 insertions(+), 18 deletions(-) diff --git a/OCH/mogo-och-charter-passenger/src/m1/java/com/mogo/och/bus/passenger/model/CharterPassengerModel.kt b/OCH/mogo-och-charter-passenger/src/m1/java/com/mogo/och/bus/passenger/model/CharterPassengerModel.kt index f0be5f21dc..6b1d9f2c97 100644 --- a/OCH/mogo-och-charter-passenger/src/m1/java/com/mogo/och/bus/passenger/model/CharterPassengerModel.kt +++ b/OCH/mogo-och-charter-passenger/src/m1/java/com/mogo/och/bus/passenger/model/CharterPassengerModel.kt @@ -548,11 +548,7 @@ object CharterPassengerModel { AbsMogoApplication.getApp() .getString(R.string.m1_end_order_5min), 2 ) - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { - VoiceManager.surplus5min(VoiceFocusManager.getVoiceCmdCallBack()) - }else{ - VoiceManager.surplus5min() - } + VoiceManager.surplus5min(VoiceFocusManager.getVoiceCmdCallBack()) CallerLogger.d(M_BUS_P+ TAG,"倒计时5分钟${it.orderNo}") SharedPrefs.getInstance(mContext).putBoolean("${it.orderNo}$min5Speak",true) } @@ -858,12 +854,7 @@ object CharterPassengerModel { mContext, lindId = it, object : OchCommonServiceCallback { override fun onSuccess(data: BaseData?) { if (null != data && 0 == data.code) { - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { - VoiceManager.arrivedStation(orderInfo!!.siteName!!, - VoiceFocusManager.getVoiceCmdCallBack()) - }else{ - VoiceManager.arrivedStation(orderInfo!!.siteName!!,) - } + VoiceManager.arrivedStation(orderInfo!!.siteName!!, VoiceFocusManager.getVoiceCmdCallBack()) broadcastList["${it}$endKey"] = true // 到站结束自驾 CallerAutoPilotControlManager.cancelAutoPilot() @@ -883,13 +874,9 @@ object CharterPassengerModel { } } - fun leaveStation(){ + fun leaveStation() { orderInfo?.siteName?.let { - if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { - VoiceManager.leaveStation(it,VoiceFocusManager.getVoiceCmdCallBack()) - }else{ - VoiceManager.leaveStation(it) - } + VoiceManager.leaveStation(it, VoiceFocusManager.getVoiceCmdCallBack()) } } diff --git a/OCH/mogo-och-charter-passenger/src/m1/java/com/mogo/och/bus/passenger/utils/VoiceFocusManager.kt b/OCH/mogo-och-charter-passenger/src/m1/java/com/mogo/och/bus/passenger/utils/VoiceFocusManager.kt index 4544adf90a..5e1dad8231 100644 --- a/OCH/mogo-och-charter-passenger/src/m1/java/com/mogo/och/bus/passenger/utils/VoiceFocusManager.kt +++ b/OCH/mogo-och-charter-passenger/src/m1/java/com/mogo/och/bus/passenger/utils/VoiceFocusManager.kt @@ -7,7 +7,7 @@ import com.mogo.eagle.core.utilcode.util.UiThreadHandler import com.shuyu.gsyvideoplayer.GSYVideoManager object VoiceFocusManager { - @RequiresApi(Build.VERSION_CODES.O) + fun getVoiceCmdCallBack():IMogoVoiceCmdCallBack{ UiThreadHandler.post { GSYVideoManager.onPause() From ca1809bed7f98a4925b950400b3b844cd62b88fd Mon Sep 17 00:00:00 2001 From: wangmingjun Date: Wed, 29 Mar 2023 18:16:29 +0800 Subject: [PATCH 3/5] =?UTF-8?q?[3.0.0]=20=E5=8F=B8=E6=9C=BA=E7=AB=AF?= =?UTF-8?q?=E4=BA=8C=E7=BB=B4=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- OCH/mogo-och-common-module/build.gradle | 2 + .../mogo/och/common/module/utils/QRUtils.kt | 117 ++++++++++++++++++ .../common/module/wigets/BindQRCodeDialog.kt | 76 ++++++++++++ .../common/module/wigets/OCHCommitDialog.kt | 7 -- .../drawable-xhdpi/icon_qr_center_logo.png | Bin 0 -> 2254 bytes .../main/res/drawable/bind_driver_qr_bg.xml | 6 + .../main/res/layout/bind_driver_qr_view.xml | 55 ++++++++ .../src/main/res/values/colors.xml | 3 + .../src/main/res/values/strings.xml | 5 +- .../com/mogo/och/bus/constant/URLConst.kt | 12 -- .../mogo/och/bus/fragment/BusFragment.java | 25 +++- app/urlConfig.json | 27 ++-- .../function/hmi/ui/tools/BusOperationView.kt | 13 ++ .../icon_bind_driver_qrcode.png | Bin 0 -> 6481 bytes .../res/layout/view_och_bus_operation.xml | 10 ++ .../com/mogo/eagle/core/data/app/UrlConfig.kt | 4 +- .../eagle/core/data/temp/EventLogout.java | 1 + 17 files changed, 332 insertions(+), 31 deletions(-) create mode 100644 OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/utils/QRUtils.kt create mode 100644 OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/wigets/BindQRCodeDialog.kt create mode 100644 OCH/mogo-och-common-module/src/main/res/drawable-xhdpi/icon_qr_center_logo.png create mode 100644 OCH/mogo-och-common-module/src/main/res/drawable/bind_driver_qr_bg.xml create mode 100644 OCH/mogo-och-common-module/src/main/res/layout/bind_driver_qr_view.xml delete mode 100644 OCH/mogo-och-shuttle/src/main/java/com/mogo/och/bus/constant/URLConst.kt create mode 100755 core/function-impl/mogo-core-function-hmi/src/main/res/drawable-xhdpi/icon_bind_driver_qrcode.png diff --git a/OCH/mogo-och-common-module/build.gradle b/OCH/mogo-och-common-module/build.gradle index 24b27d9db3..3de8cdf00a 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 + implementation rootProject.ext.dependencies.litezxing + 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/utils/QRUtils.kt b/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/utils/QRUtils.kt new file mode 100644 index 0000000000..c6c1b37c5a --- /dev/null +++ b/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/utils/QRUtils.kt @@ -0,0 +1,117 @@ +package com.mogo.och.common.module.utils + +import android.graphics.Bitmap +import android.graphics.Canvas +import com.google.zxing.BarcodeFormat +import com.google.zxing.EncodeHintType +import com.google.zxing.common.BitMatrix +import com.google.zxing.qrcode.QRCodeWriter +import com.google.zxing.qrcode.decoder.ErrorCorrectionLevel +import java.util.* + + +/** + * isDeleteWhite 是否删除白边 + */ +fun createQRCode(address: String, width: Int, height: Int,isDeleteWhite: Boolean): Bitmap? { + val hints = Hashtable() + hints[EncodeHintType.CHARACTER_SET] = "utf-8" + hints[EncodeHintType.ERROR_CORRECTION] = ErrorCorrectionLevel.H + hints[EncodeHintType.MARGIN] = if (isDeleteWhite) 1 else 0 + var bitMatrix = QRCodeWriter().encode( + address, + BarcodeFormat.QR_CODE, width, height, hints + ) + + if (isDeleteWhite) { + //删除白边 + bitMatrix = deleteWhite(bitMatrix) + } + val widthNew = bitMatrix.width + val heightNew = bitMatrix.height + + val pixels = IntArray(widthNew * heightNew) + //下面这里按照二维码的算法,逐个生成二维码的图片, + //两个for循环是图片横列扫描的结果 + for (y in 0 until heightNew) { + for (x in 0 until widthNew) { + if (bitMatrix.get(x, y)) { + pixels[y * widthNew + x] = -0x1000000 + } else { + pixels[y * widthNew + x] = -0x1 + } + } + } + //生成二维码图片的格式,使用ARGB_8888 + var bitmap = Bitmap.createBitmap(widthNew, heightNew, Bitmap.Config.ARGB_8888) + bitmap.setPixels(pixels, 0, widthNew, 0, 0, widthNew, heightNew) + return bitmap +} + +/** + * 删除白色边框 + * + * @param matrix matrix + * @return BitMatrix + */ +private fun deleteWhite(matrix: BitMatrix): BitMatrix? { + val rec = matrix.enclosingRectangle + val resWidth = rec[2] + 1 + val resHeight = rec[3] + 1 + val resMatrix = BitMatrix(resWidth, resHeight) + resMatrix.clear() + for (i in 0 until resWidth) { + for (j in 0 until resHeight) { + if (matrix[i + rec[0], j + rec[1]]) resMatrix[i] = j + } + } + return resMatrix +} + +fun createQRCodeWithPicture(bmCenter: Bitmap,address: String, width: Int, height: Int,isDeleteWhite: Boolean): Bitmap?{ + var qrCode = createQRCode(address,width,height,isDeleteWhite) + //8,创建一个bitmap对象用于作为其图标 + qrCode?.let { + val resultBitmap = addLogo(it,bmCenter) + if (resultBitmap != null){ + return resultBitmap + } + } + return null +} + +/** + * 用于向创建的二维码中添加一个logo + * @param bmQr + * @param bmCenter + * @return + */ +fun addLogo(bmQr: Bitmap, bmCenter:Bitmap) :Bitmap?{ + if (bmQr == null) { + return null + } + if (bmCenter == null) { + return bmQr + } + + //获取图片的宽高 + val bmQrWidth = bmQr.width + val bmQrHeight = bmQr.height + val bmCenterWidth = bmCenter.width + val bmCenterHeight = bmCenter.height + + var bitmap = Bitmap.createBitmap(bmQrWidth, bmQrHeight, Bitmap.Config.ARGB_8888) + try { + var canvas = Canvas(bitmap) + canvas.drawBitmap(bmQr, 0f, 0f, null) + canvas.drawBitmap(bmCenter, ((bmQrWidth-bmCenterWidth)/2-bmCenterWidth/2).toFloat(), + ((bmQrHeight-bmCenterHeight)/2-bmCenterHeight/2).toFloat(), null) + + canvas.save() + canvas.restore() + } catch (e: Exception) { + bitmap = null + e.stackTrace + } + return bitmap +} \ No newline at end of file diff --git a/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/wigets/BindQRCodeDialog.kt b/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/wigets/BindQRCodeDialog.kt new file mode 100644 index 0000000000..8648759758 --- /dev/null +++ b/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/wigets/BindQRCodeDialog.kt @@ -0,0 +1,76 @@ +package com.mogo.och.common.module.wigets + +import android.content.Context +import android.graphics.Bitmap +import androidx.appcompat.widget.AppCompatImageView +import androidx.appcompat.widget.AppCompatTextView +import androidx.lifecycle.LifecycleObserver +import com.mogo.eagle.core.function.hmi.dialog.BaseFloatDialog +import com.mogo.och.common.module.R + +/** + * 带有title, tip,confirm,cancel的dialog + */ +class BindQRCodeDialog: BaseFloatDialog, LifecycleObserver { + + private var qrBm : AppCompatImageView? = null + private var qrCancel: AppCompatTextView? = null + private var qrTitle: AppCompatTextView? = null + + private var clickListener: ClickListener? = null + + constructor(builder: Builder,context: Context) : super(context) { + qrTitle?.text = builder.titleStr + qrCancel?.text = builder.cancelStr + qrBm?.setImageBitmap(builder.qrBm) + } + + init{ + setContentView(R.layout.bind_driver_qr_view) + + setCanceledOnTouchOutside(true) + + qrTitle = findViewById(R.id.qr_title) + qrBm = findViewById(R.id.qr_bm) + qrCancel = findViewById(R.id.bind_qr_cancel) + + qrCancel?.setOnClickListener { + clickListener?.cancel() + dismiss() + } + } + + fun setClickListener(clickListener: ClickListener) { + this.clickListener = clickListener + } + + interface ClickListener{ + fun cancel() + } + + class Builder{ + var titleStr:String = "" + var cancelStr:String = "" + var qrBm: Bitmap? = null + + fun title(title: String) : Builder{ + this.titleStr = title + return this + } + + fun cancelStr(cancel: String) : Builder{ + this.cancelStr = cancel + return this + } + + fun qrBm(bm: Bitmap) : Builder{ + this.qrBm = bm + return this + } + + fun build(context: Context): BindQRCodeDialog? { + return BindQRCodeDialog(this,context) + } + } + +} \ No newline at end of file diff --git a/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/wigets/OCHCommitDialog.kt b/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/wigets/OCHCommitDialog.kt index a9a27faf36..835c82411a 100644 --- a/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/wigets/OCHCommitDialog.kt +++ b/OCH/mogo-och-common-module/src/main/java/com/mogo/och/common/module/wigets/OCHCommitDialog.kt @@ -49,13 +49,6 @@ class OCHCommitDialog: BaseFloatDialog, LifecycleObserver { this.clickListener = clickListener } - fun showUpgradeDialog(){ - if(isShowing){ - return - } - show() - } - interface ClickListener{ fun confirm() fun cancel() diff --git a/OCH/mogo-och-common-module/src/main/res/drawable-xhdpi/icon_qr_center_logo.png b/OCH/mogo-och-common-module/src/main/res/drawable-xhdpi/icon_qr_center_logo.png new file mode 100644 index 0000000000000000000000000000000000000000..edce11b56bf8d844b3c2565c07e12cf63f5d9a0e GIT binary patch literal 2254 zcmV;<2r>7GP)Px#L}ge>W=%~1DgXcg2mk?xX#fNO00031000^Q000001E2u_0{{R30RRC20H6W@ z1ONa40RR91IG_Un1ONa40RR91H~;_u01a1YQvd)6I7vi7RA>d=TWM?+RTTb)LTOnG z7~0BWAyi~l0oi0x78OJar~!p2Cn zA27KYuXRo41y@bZ;q|D=sl29Xns$fR{}vHc4RQ*375Or`v?O)KhS;i6=_uKWSn>>V z9=WVZY>MsJ3J1zYqsXt4Pm{}=qz!3HhJN`I8yZADM6PI(HV2g(LK@e|3o06wLwnK( ztxSQ^U>)*WhsG+aNcvKzOhD3568T_dAyKp|eM<5IsdTkzU@wg{_A+FbXXgVyFv1-= z2V7v(3v#gzG^`cirg1>m`+#obHt~R_?2Wwz<2jdqyD@fVIZ9dRYLeh&2<#?zaI0)D z&$|YEv5&xx0LP^12q?ZDFuF7FVi(|^+7VO)(y85(APb#pIRYd&DPKcQajIl5yM7z^ zoUdZ(9^l$7yEL-r=<2{I=0Vf@Gxe$IyY4z_4kt*Ck5F<0xPWRiLsgxhHql#iz6btt ze1Fb${FF9kVmF^bVNhE?+J??M1USpC9R`rzlUTFCuITihpz`ok2(@$Ny1*u zR$(lkmEc6bBEd;}@*=0Ml{-(8zK^wPm3WZei>2T=xrtT5e*eLC4oh-n&}44FWbyH! zGn6OOi#J5i>cKbptOO@-axv#zWzol}z>mi~TNez1#UR6j^q%a!7?RN_P#peOLP4L! zKwcTImf+-O)y6JSKd(Oo%v$f?qf`3yN+NsfhlP;z77 zy9tql6VpT5F}s)qG;ipmA*!s{56B2mkYMU00DCEvaOx6cN3KdEAd}Q;#TcMj18-e7 zjVA2U%CUefBwi%*I4#FZ3%v!PaxiW7;XPS6mW%`vxFfh*5*v%T8bnFYJm}|44+UZq zGp$u>84^4^=(&f0hnspRMIi3d92oP6cZKw`o;s}sAQy3Wl8vg0%MCSBkt=u)bCvpGzg1g+5)RjQ5?4Fkg zhqm`@q|^!nIC*5hX{C0F!1x}(unuw@QACl_%?3bg{jhtdrC5eei$;NSloU2pUNn@p z51a;yxcO-v&*i=)uM9;7TQO2P-Yps>r9efon{6jXC}it0#COMq+Nbi zIcJOhOQV^BEErbe0t!j|`kxsqeYM9TkAK zb;{O$!4c@$t89htkNO=Bvy)5R72G75U%E-$%M<#$%K{PuV5(A!^Gd79ITi`Y3!z7R z)0GS$XN_-lQ8X5q+6=;KN)->Lk!5S)Oj;Dsbhxw3rPT1^FXK2=y>lttU>w*xJ}|sp z>^T-E40J5E6bh!aYUUB!R*N9~w#7@(swo3%SRMVwc_5W9Ci`2;io@haS=I_*=P>BE z@*L#uMaE**k}ptATLhaXI^6W8@S={G>2siGeWNz%BGqa$dyadMp@gZ4EdK>u*YXcQ zzg~*Ph!(U~6Paa9cWJGpco+ee99f8a&XHXMK8h{_+Xh0Hm{f_R)nLZae>*cYUfoFo zv~lPpbC3r?ngq6ma_>qt;`p6uo~yXR1Rdskfs?K*G%@}A`ONRZFEZvq&-|*w@K_tt zTD``h`IfcF>0ZWt_`xp`GY7+5ry3z;?Pf!Z?-x>35f55?UqACsx-!?qVsy(`WP%+u zPuQ4~d3>KJX7;^*67<}i!K&qY)e@iJkpX8=RIFD!hpFKH@rB5_F~Kx1E2tLD568>6 znoaOjy;}t>`E{VnCw{<5Q`1ZgCC!F-Fjz`YF5vyl;Is02ZXx1-Rr+5+A*(h)KhV&w$Jok!K_}>zZu0WMs5_#jn@I!aB15PuNm} zAZ25>o7_R3ebLPe1i3u0r7FzwRVApT#jzQgYt2Un_Lo6{_cfg=k^KlEXpknsZft zSYBF^x?-cuew6N*s@VZV^32Zh5Xbmx+>2KRIpg!3e8H+~GA|+jRv^cga + + + + \ No newline at end of file diff --git a/OCH/mogo-och-common-module/src/main/res/layout/bind_driver_qr_view.xml b/OCH/mogo-och-common-module/src/main/res/layout/bind_driver_qr_view.xml new file mode 100644 index 0000000000..4707e43487 --- /dev/null +++ b/OCH/mogo-och-common-module/src/main/res/layout/bind_driver_qr_view.xml @@ -0,0 +1,55 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/OCH/mogo-och-common-module/src/main/res/values/colors.xml b/OCH/mogo-och-common-module/src/main/res/values/colors.xml index 8db55d8e50..f4d8555616 100644 --- a/OCH/mogo-och-common-module/src/main/res/values/colors.xml +++ b/OCH/mogo-och-common-module/src/main/res/values/colors.xml @@ -11,4 +11,7 @@ #4D000000 #3B4577 + + #66B8BFE8 + #3B4577 \ 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 94cc6ad34a..9ca9718279 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 @@ -1,5 +1,5 @@ - + 欢迎您登录 登录 @@ -30,4 +30,7 @@ 感谢您体验\'蘑菇车联\'自动驾驶小巴车,本次旅程已结束,我们下次乘车再见 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/constant/URLConst.kt b/OCH/mogo-och-shuttle/src/main/java/com/mogo/och/bus/constant/URLConst.kt deleted file mode 100644 index dce7719222..0000000000 --- a/OCH/mogo-och-shuttle/src/main/java/com/mogo/och/bus/constant/URLConst.kt +++ /dev/null @@ -1,12 +0,0 @@ -package com.mogo.och.bus.constant - -import com.mogo.commons.debug.DebugConfig - -/** - * Created on 2021/12/6 - */ -class URLConst { - companion object { - - } -} \ No newline at end of file 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..65a4763f31 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 @@ -1,8 +1,9 @@ package com.mogo.och.bus.fragment; import static com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.M_BUS; - import android.content.Intent; +import android.graphics.Bitmap; +import android.graphics.BitmapFactory; import android.os.Bundle; import android.view.View; import android.widget.TextView; @@ -13,7 +14,9 @@ import androidx.constraintlayout.widget.Group; import androidx.annotation.Nullable; import com.alibaba.android.arouter.launcher.ARouter; +import com.mogo.cloud.passport.MoGoAiCloudClientConfig; import com.mogo.commons.AbsMogoApplication; +import com.mogo.eagle.core.data.config.FunctionBuildConfig; import com.mogo.eagle.core.data.map.CenterLine; import com.mogo.eagle.core.data.temp.EventLogout; import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotStatusListener; @@ -36,6 +39,8 @@ import com.mogo.och.common.module.biz.constant.OchCommonConst; import com.mogo.och.common.module.biz.provider.LoginService; import com.mogo.och.common.module.utils.BlinkAnimationUtil; import com.mogo.och.common.module.utils.OCHThreadPoolManager; +import com.mogo.och.common.module.utils.QRUtilsKt; +import com.mogo.och.common.module.wigets.BindQRCodeDialog; import com.mogo.och.common.module.wigets.MarqueeTextView; import com.mogo.och.common.module.wigets.OCHCommitDialog; @@ -45,6 +50,8 @@ import org.greenrobot.eventbus.ThreadMode; import java.util.List; import java.util.Objects; +import me.jessyan.autosize.utils.AutoSizeUtils; + /** * 网约车小巴界面 @@ -124,6 +131,22 @@ public class BusFragment extends BaseBusTabFragment if (eventLogout.getMessgae() == EventLogout.LOGOUT_TYPE){ CallerLogger.INSTANCE.d(M_BUS + TAG,"changeOverview Event消息去登出"); mPresenter.logout(); + }else if (eventLogout.getMessgae() == EventLogout.SHOW_QR_TYPE){ //显示二维码 + CallerLogger.INSTANCE.d(M_BUS + TAG,"changeOverview Event qrcode"); + String qrUrl = String.format(FunctionBuildConfig.urlJson.getBindDriverQRUrl(), + MoGoAiCloudClientConfig.getInstance().getSn()); + Bitmap bmQr = QRUtilsKt.createQRCodeWithPicture( + BitmapFactory.decodeResource(getResources(), R.drawable.icon_qr_center_logo) + ,qrUrl, AutoSizeUtils.dp2px(getContext(),340f), + AutoSizeUtils.dp2px(getContext(),340f),true); + if (bmQr != null){ + BindQRCodeDialog.Builder builder = new BindQRCodeDialog.Builder(); + builder.title(getString(R.string.bind_driver_qr_title)) + .cancelStr(getString(R.string.qr_cancel)) + .qrBm(bmQr).build(getContext()).show(); + }else { + CallerLogger.INSTANCE.d(M_BUS + TAG,"bmQr = null "); + } } } diff --git a/app/urlConfig.json b/app/urlConfig.json index f05fe5d46e..a767ba07c1 100644 --- a/app/urlConfig.json +++ b/app/urlConfig.json @@ -7,7 +7,8 @@ "socket_base_url": "", "socket_tech_url": "", "eagle_mis_url": "", - "eagle_dns_url": "" + "eagle_dns_url": "", + "bind_driver_qr_url": "" }, "online": { "och_url": "https://tech.zhidaohulian.com", @@ -16,7 +17,8 @@ "socket_base_url": "", "socket_tech_url": "", "eagle_mis_url": "", - "eagle_dns_url": "" + "eagle_dns_url": "", + "bind_driver_qr_url": "" }, "demo": { "och_url": "http://tech-dev.zhidaohulian.com", @@ -25,7 +27,8 @@ "socket_base_url": "", "socket_tech_url": "", "eagle_mis_url": "", - "eagle_dns_url": "" + "eagle_dns_url": "", + "bind_driver_qr_url": "" } }, "dali": { @@ -36,7 +39,8 @@ "socket_base_url": "https://och-a.zhidaozhixing.com/arch/push/", "socket_tech_url": "https://och-a.zhidaozhixing.com/arch/", "eagle_mis_url": "http://eagle-mis-a.zhidaozhixing.com/", - "eagle_dns_url": "http://eagle-dns-a.zhidaozhixing.com/" + "eagle_dns_url": "http://eagle-dns-a.zhidaozhixing.com/", + "bind_driver_qr_url": "https://tech.zhidaohulian.com?pipe=asafety&sn=%1$s" }, "online": { "och_url": "https://och-driver-eh.zhidaozhixing.com:18182", @@ -45,7 +49,8 @@ "socket_base_url": "https://och-driver-eh.zhidaozhixing.com:18182/arch/push/", "socket_tech_url": "https://och-driver-eh.zhidaozhixing.com:18182/arch/", "eagle_mis_url": "https://och-hailing-eh.zhidaozhixing.com:18182/", - "eagle_dns_url": "https://och-hailing-eh.zhidaozhixing.com:18182/" + "eagle_dns_url": "https://och-hailing-eh.zhidaozhixing.com:18182/", + "bind_driver_qr_url": "https://tech.zhidaohulian.com?pipe=ehsafety&sn=%1$s" }, "demo": { "och_url": "https://och-a.zhidaozhixing.com", @@ -54,7 +59,8 @@ "socket_base_url": "https://och-a.zhidaozhixing.com/arch/push/", "socket_tech_url": "https://och-a.zhidaozhixing.com/arch/", "eagle_mis_url": "http://och-hailing-eh.zhidaozhixing.com:18181/", - "eagle_dns_url": "http://och-hailing-eh.zhidaozhixing.com:18181/" + "eagle_dns_url": "http://och-hailing-eh.zhidaozhixing.com:18181/", + "bind_driver_qr_url": "https://tech.zhidaohulian.com?pipe=ehsafety&sn=%1$s" } }, "yantai": { @@ -65,7 +71,8 @@ "socket_base_url": "https://och-a.zhidaozhixing.com/arch/push/", "socket_tech_url": "https://och-a.zhidaozhixing.com/arch/", "eagle_mis_url": "http://eagle-mis-a.zhidaozhixing.com/", - "eagle_dns_url": "http://eagle-dns-a.zhidaozhixing.com/" + "eagle_dns_url": "http://eagle-dns-a.zhidaozhixing.com/", + "bind_driver_qr_url": "https://tech.zhidaohulian.com?pipe=asafety&sn=%1$s" }, "online": { "och_url": "https://och-driver-yt.zhidaozhixing.com", @@ -74,7 +81,8 @@ "socket_base_url": "https://och-driver-yt.zhidaozhixing.com/arch/push/", "socket_tech_url": "https://och-driver-yt.zhidaozhixing.com/arch/", "eagle_mis_url": "https://och-hailing-yt.zhidaozhixing.com/", - "eagle_dns_url": "https://och-hailing-yt.zhidaozhixing.com/" + "eagle_dns_url": "https://och-hailing-yt.zhidaozhixing.com/", + "bind_driver_qr_url": "https://tech.zhidaohulian.com?pipe=ytsafety&sn=%1$s" }, "demo": { "och_url": "https://och-a.zhidaozhixing.com", @@ -83,7 +91,8 @@ "socket_base_url": "https://och-a.zhidaozhixing.com/arch/push/", "socket_tech_url": "https://och-a.zhidaozhixing.com/arch/", "eagle_mis_url": "http://eagle-mis-a.zhidaozhixing.com/", - "eagle_dns_url": "http://eagle-dns-a.zhidaozhixing.com/" + "eagle_dns_url": "http://eagle-dns-a.zhidaozhixing.com/", + "bind_driver_qr_url": "https://tech.zhidaohulian.com?pipe=ytsafety&sn=%1$s" } } } diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/tools/BusOperationView.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/tools/BusOperationView.kt index ce6bab6d96..a77c2a1970 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/tools/BusOperationView.kt +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/tools/BusOperationView.kt @@ -31,14 +31,27 @@ class BusOperationView @JvmOverloads constructor( actvAccountPhone.text = phoneMask(SharedPrefs.getInstance(it).getString("och_account","")) } clickPersonalRightView() + clickQRBtn() } + private fun clickQRBtn() { + actvAccountQR.onClick { + EventBus.getDefault().post(EventLogout(EventLogout.SHOW_QR_TYPE)) + } + } + private fun initPersonalIcon() { if(AppIdentityModeUtils.isTaxi(FunctionBuildConfig.appIdentityMode)){ ivGotoPersonalInfo.visibility = VISIBLE }else{ ivGotoPersonalInfo.visibility = GONE } + + if (AppIdentityModeUtils.isShuttle(FunctionBuildConfig.appIdentityMode)) { + actvAccountQR.visibility = VISIBLE + }else{ + actvAccountQR.visibility = GONE + } } private fun clickPersonalRightView() { diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/drawable-xhdpi/icon_bind_driver_qrcode.png b/core/function-impl/mogo-core-function-hmi/src/main/res/drawable-xhdpi/icon_bind_driver_qrcode.png new file mode 100755 index 0000000000000000000000000000000000000000..533c0a3caa200c508e4ffeb9b26fe5a3306f7d5d GIT binary patch literal 6481 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 literal 0 HcmV?d00001 diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/layout/view_och_bus_operation.xml b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/view_och_bus_operation.xml index 7e19003a4d..af4a39dc8e 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/res/layout/view_och_bus_operation.xml +++ b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/view_och_bus_operation.xml @@ -60,6 +60,16 @@ android:textColor="@android:color/white" android:layout_width="wrap_content" android:layout_height="wrap_content"/> + + Date: Wed, 29 Mar 2023 20:10:54 +0800 Subject: [PATCH 4/5] =?UTF-8?q?[m1]=20[=E9=9F=A9=E6=96=87=E5=85=BC?= =?UTF-8?q?=E5=AE=B9]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../bean/response/OrderInfoResponse.kt | 2 ++ .../passenger/model/CharterPassengerModel.kt | 13 +++++-- .../och/common/module/voice/VoiceManager.kt | 34 ++++++++++++------- 3 files changed, 34 insertions(+), 15 deletions(-) diff --git a/OCH/mogo-och-charter-passenger/src/m1/java/com/mogo/och/bus/passenger/bean/response/OrderInfoResponse.kt b/OCH/mogo-och-charter-passenger/src/m1/java/com/mogo/och/bus/passenger/bean/response/OrderInfoResponse.kt index 9d05dc05e0..c510232abf 100644 --- a/OCH/mogo-och-charter-passenger/src/m1/java/com/mogo/och/bus/passenger/bean/response/OrderInfoResponse.kt +++ b/OCH/mogo-och-charter-passenger/src/m1/java/com/mogo/och/bus/passenger/bean/response/OrderInfoResponse.kt @@ -14,8 +14,10 @@ data class OrderInfoResponse(val data: OrderInfo?) : BaseData() { val lineName: String?,//线路名称 var startSiteId: Int?, var startSiteName: String?, + var startSiteNameKr: String?, val siteId: Long?,//站点id val siteName: String?,//站点名称 + val siteNameKr: String?,//站点名称 val wgs84Lat: Double?, val wgs84Lon: Double?, var gcj02Lat: Double?, diff --git a/OCH/mogo-och-charter-passenger/src/m1/java/com/mogo/och/bus/passenger/model/CharterPassengerModel.kt b/OCH/mogo-och-charter-passenger/src/m1/java/com/mogo/och/bus/passenger/model/CharterPassengerModel.kt index 6b1d9f2c97..8f38ab143a 100644 --- a/OCH/mogo-och-charter-passenger/src/m1/java/com/mogo/och/bus/passenger/model/CharterPassengerModel.kt +++ b/OCH/mogo-och-charter-passenger/src/m1/java/com/mogo/och/bus/passenger/model/CharterPassengerModel.kt @@ -854,7 +854,11 @@ object CharterPassengerModel { mContext, lindId = it, object : OchCommonServiceCallback { override fun onSuccess(data: BaseData?) { if (null != data && 0 == data.code) { - VoiceManager.arrivedStation(orderInfo!!.siteName!!, VoiceFocusManager.getVoiceCmdCallBack()) + VoiceManager.arrivedStation( + orderInfo!!.siteName!!, + orderInfo!!.siteNameKr!!, + VoiceFocusManager.getVoiceCmdCallBack() + ) broadcastList["${it}$endKey"] = true // 到站结束自驾 CallerAutoPilotControlManager.cancelAutoPilot() @@ -875,8 +879,11 @@ object CharterPassengerModel { } fun leaveStation() { - orderInfo?.siteName?.let { - VoiceManager.leaveStation(it, VoiceFocusManager.getVoiceCmdCallBack()) + orderInfo?.siteName?.let {cn-> + orderInfo?.siteNameKr?.let {kr-> + VoiceManager.leaveStation(cn,kr, VoiceFocusManager.getVoiceCmdCallBack()) + } + } } 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 69675d2061..73df92e3f9 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 @@ -10,22 +10,26 @@ import java.util.ArrayList object VoiceManager { - fun arrivedStation(siteName: String) { - arrivedStation(siteName,null) + fun arrivedStation(siteNameCN: String) { + arrivedStation(siteNameCN,"") } - fun arrivedStation(siteName: String,callBack: IMogoTTSCallback?=null) { + fun arrivedStation(siteNameCN: String,siteNameKR: String) { + arrivedStation(siteNameCN,siteNameKR,null) + } + + fun arrivedStation(siteNameCN: String, siteNameKR: String,callBack: IMogoTTSCallback?=null) { val contenxt = AbsMogoApplication.getApp() val list: MutableList = ArrayList() val chineseTTS = LangTtsEntity( - contenxt.getString(R.string.arrived_station_zh, siteName), + contenxt.getString(R.string.arrived_station_zh, siteNameCN), LanguageType.CHINESE ) val engTTS = LangTtsEntity( - contenxt.getString(R.string.arrived_station_en, siteName), + contenxt.getString(R.string.arrived_station_en, siteNameCN), LanguageType.CHINESE ) val koreanTTS = LangTtsEntity( - contenxt.getString(R.string.arrived_station_ko, siteName), + contenxt.getString(R.string.arrived_station_ko, siteNameKR.ifEmpty { siteNameCN }), LanguageType.KOREAN ) list.add(chineseTTS) @@ -33,22 +37,28 @@ object VoiceManager { list.add(koreanTTS) VoiceNotice.showNotice(list, AIAssist.LEVEL1,callBack) } - fun leaveStation(siteName: String){ - leaveStation(siteName,null) + + fun leaveStation(siteNameCN: String){ + leaveStation(siteNameCN,"") } - fun leaveStation(siteName: String,callBack: IMogoTTSCallback?=null) { + + fun leaveStation(siteNameCN: String,siteNameKR: String){ + leaveStation(siteNameCN,siteNameKR,null) + } + + fun leaveStation(siteNameCN: String, siteNameKR: String,callBack: IMogoTTSCallback?=null) { val contenxt = AbsMogoApplication.getApp() val list: MutableList = ArrayList() val chineseTTS = LangTtsEntity( - contenxt.getString(R.string.leave_station_zh, siteName), + contenxt.getString(R.string.leave_station_zh, siteNameCN), LanguageType.CHINESE ) val engTTS = LangTtsEntity( - contenxt.getString(R.string.leave_station_en, siteName), + contenxt.getString(R.string.leave_station_en, siteNameCN), LanguageType.CHINESE ) val koreanTTS = LangTtsEntity( - contenxt.getString(R.string.leave_station_ko, siteName), + contenxt.getString(R.string.leave_station_ko, siteNameKR.ifEmpty { siteNameCN }), LanguageType.KOREAN ) list.add(chineseTTS) From 45079b946d01a00d16cbd4ed3ecb8a3d35195af1 Mon Sep 17 00:00:00 2001 From: wangmingjun Date: Wed, 29 Mar 2023 20:35:15 +0800 Subject: [PATCH 5/5] =?UTF-8?q?[3.0.0]=20=E5=8F=B8=E6=9C=BA=E7=AB=AF?= =?UTF-8?q?=E9=9F=A9=E8=AF=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/mogo/och/bus/bean/BusStationBean.java | 5 ++++ .../com/mogo/och/bus/model/OrderModel.java | 24 ++++++++++++------- .../com/mogo/och/bus/bean/BusStationBean.java | 5 ++++ .../com/mogo/och/bus/model/OrderModel.java | 24 ++++++++++++------- 4 files changed, 42 insertions(+), 16 deletions(-) diff --git a/OCH/mogo-och-bus/src/jinlvvan/java/com/mogo/och/bus/bean/BusStationBean.java b/OCH/mogo-och-bus/src/jinlvvan/java/com/mogo/och/bus/bean/BusStationBean.java index 33afb10366..43cfd8c9d9 100644 --- a/OCH/mogo-och-bus/src/jinlvvan/java/com/mogo/och/bus/bean/BusStationBean.java +++ b/OCH/mogo-och-bus/src/jinlvvan/java/com/mogo/och/bus/bean/BusStationBean.java @@ -8,6 +8,7 @@ package com.mogo.och.bus.bean; public class BusStationBean { private int siteId; private String name; + private String nameKr; private int seq; private double gcjLon; //高德 private double gcjLat; //高德 @@ -21,6 +22,10 @@ public class BusStationBean { private int status; private int ifStop = 1; // 是否需要停靠、1需要、0不需要 // TODO: 2021/10/19 原来站点里有设计是否需要停靠字段,现设计暂无,默认都需要停靠 + public String getNameKr() { + return nameKr; + } + public double getGcjLon() { return gcjLon; } 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 fedea9b825..dba8586d78 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 @@ -581,11 +581,12 @@ public class OrderModel { * 服务端返回的OchBusRoutesResult逻辑, 离开站为当前站, 到达下一站后才会将下一站置为当前站, * 车机端展示是离开当前站,下一站设置为当前站, 所以服务端数据回来要做处理,不能直接渲染 */ - private void leaveStationSuccess(int leaveIndex, String leaveStation, String nextStation) { + private void leaveStationSuccess(int leaveIndex, String leaveStation, + String nextStation, String nextStationKr) { onStartAutopilot(leaveIndex); - leaveTTSTips(nextStation); + leaveTTSTips(nextStation,nextStationKr); if (busRoutesResult != null) { boolean isLastStop = false; @@ -657,6 +658,7 @@ public class OrderModel { } int arrivedStationIndex = backgroundCurrentStationIndex + 1; String arriveStation = stationList.get(arrivedStationIndex).getName(); + String arriveStationKr = stationList.get(arrivedStationIndex).getNameKr(); String departureStopName = stationList.get(backgroundCurrentStationIndex).getName(); CallerLogger.INSTANCE.d(M_BUS + TAG, "arriveSiteStation-currentStationIndex = " + arrivedStationIndex); @@ -672,7 +674,8 @@ public class OrderModel { queryBusRoutes(); isArrivedStation = true; isGoingToNextStation = false; - arriveStationSuccess(arrivedStationIndex, departureStopName, arriveStation); + arriveStationSuccess(arrivedStationIndex, departureStopName, + arriveStation,arriveStationKr); } //5s轮询核销乘客 // startOrStopQueryPassengerWriteOff(true); @@ -701,7 +704,8 @@ public class OrderModel { }); } - private void arriveStationSuccess(int arrivedStationIndex, String departureStopName, String arriveStation) { + private void arriveStationSuccess(int arrivedStationIndex, String departureStopName, + String arriveStation, String arriveStationKr) { if (busRoutesResult != null) { boolean isLastStop = false; if (arrivedStationIndex == busRoutesResult.getSites().size() - 1) { @@ -714,7 +718,7 @@ public class OrderModel { , arriveStation , isLastStop); } - VoiceManager.INSTANCE.arrivedStation(arriveStation); + VoiceManager.INSTANCE.arrivedStation(arriveStation,arriveStationKr); } /** @@ -723,11 +727,14 @@ public class OrderModel { public void leaveStation() { CallerLogger.INSTANCE.d(M_BUS + TAG, "leaveStation-backgroundCurrentStationIndex = " + backgroundCurrentStationIndex); String nextStationName = ""; + String nextStationNameKr = ""; if (backgroundCurrentStationIndex < stationList.size() - 1) { nextStationName = stationList.get(backgroundCurrentStationIndex + 1).getName(); + nextStationNameKr = stationList.get(backgroundCurrentStationIndex + 1).getNameKr(); } final String currentStationName = stationList.get(backgroundCurrentStationIndex).getName(); String finalNextStationName = nextStationName; + String finalNextStationNameKr = nextStationNameKr; OrderServiceManager.leaveStation(mContext, stationList.get(backgroundCurrentStationIndex).getSeq(), stationList.get(backgroundCurrentStationIndex).getSiteId(), @@ -740,7 +747,8 @@ public class OrderModel { //需要更改当前站和下一站的状态 然后渲染 //startOrStopQueryPassengerWriteOff(false); queryBusRoutes(); - leaveStationSuccess(backgroundCurrentStationIndex, currentStationName, finalNextStationName); + leaveStationSuccess(backgroundCurrentStationIndex, currentStationName, + finalNextStationName,finalNextStationNameKr); } @@ -765,12 +773,12 @@ public class OrderModel { } //车站10s后播报 - private void leaveTTSTips(String nextStation) { + private void leaveTTSTips(String nextStation,String nextStationKr) { UiThreadHandler.postDelayed(new Runnable() { @Override public void run() { - VoiceManager.INSTANCE.leaveStation(nextStation); + VoiceManager.INSTANCE.leaveStation(nextStation,nextStationKr); } },DELAY_10S); } diff --git a/OCH/mogo-och-shuttle/src/main/java/com/mogo/och/bus/bean/BusStationBean.java b/OCH/mogo-och-shuttle/src/main/java/com/mogo/och/bus/bean/BusStationBean.java index 304e99b5c3..02087308ad 100644 --- a/OCH/mogo-och-shuttle/src/main/java/com/mogo/och/bus/bean/BusStationBean.java +++ b/OCH/mogo-och-shuttle/src/main/java/com/mogo/och/bus/bean/BusStationBean.java @@ -8,6 +8,7 @@ package com.mogo.och.bus.bean; public class BusStationBean { private int siteId; private String name; + private String nameKr; private int seq; private double gcjLon; //高德 private double gcjLat; //高德 @@ -16,6 +17,10 @@ public class BusStationBean { private int drivingStatus;//行驶信息,0初始值;1已经过;2当前站;3未到站 private boolean leaving; + public String getNameKr() { + return nameKr; + } + public int getSiteId() { return siteId; } 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..4bc4826ed3 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 @@ -566,11 +566,12 @@ public class OrderModel { * 服务端返回的OchBusRoutesResult逻辑, 离开站为当前站, 到达下一站后才会将下一站置为当前站, * 车机端展示是离开当前站,下一站设置为当前站, 所以服务端数据回来要做处理,不能直接渲染 */ - private void leaveStationSuccess(int leaveIndex, String leaveStation, String nextStation) { + private void leaveStationSuccess(int leaveIndex, String leaveStation, + String nextStation,String nextStationKr) { onStartAutopilot(leaveIndex); - leaveTTSTips(nextStation); + leaveTTSTips(nextStation,nextStationKr); sendStartStationToClient(nextStation); @@ -644,6 +645,7 @@ public class OrderModel { } int arrivedStationIndex = backgroundCurrentStationIndex + 1; String arriveStation = stationList.get(arrivedStationIndex).getName(); + String arriveStationKr = stationList.get(arrivedStationIndex).getNameKr(); String departureStopName = stationList.get(backgroundCurrentStationIndex).getName(); CallerLogger.INSTANCE.d(M_BUS + TAG, "arriveSiteStation-currentStationIndex = " + arrivedStationIndex); @@ -659,7 +661,8 @@ public class OrderModel { queryBusRoutes(); isArrivedStation = true; isGoingToNextStation = false; - arriveStationSuccess(arrivedStationIndex, departureStopName, arriveStation); + arriveStationSuccess(arrivedStationIndex, departureStopName, + arriveStation,arriveStationKr); } //5s轮询核销乘客 // startOrStopQueryPassengerWriteOff(true); @@ -688,7 +691,8 @@ public class OrderModel { }); } - private void arriveStationSuccess(int arrivedStationIndex, String departureStopName, String arriveStation) { + private void arriveStationSuccess(int arrivedStationIndex, String departureStopName, + String arriveStation,String arriveStationKr) { if (busRoutesResult != null) { boolean isLastStop = false; if (arrivedStationIndex == busRoutesResult.getSites().size() - 1) { @@ -702,7 +706,7 @@ public class OrderModel { , isLastStop); } - VoiceManager.INSTANCE.arrivedStation(arriveStation); + VoiceManager.INSTANCE.arrivedStation(arriveStation,arriveStationKr); sendArrivedStationToClient(arriveStation); } @@ -746,11 +750,14 @@ public class OrderModel { public void leaveStation() { CallerLogger.INSTANCE.d(M_BUS + TAG, "leaveStation-backgroundCurrentStationIndex = " + backgroundCurrentStationIndex); String nextStationName = ""; + String nextStationNameKr = ""; if (backgroundCurrentStationIndex < stationList.size() - 1) { nextStationName = stationList.get(backgroundCurrentStationIndex + 1).getName(); + nextStationNameKr = stationList.get(backgroundCurrentStationIndex + 1).getNameKr(); } final String currentStationName = stationList.get(backgroundCurrentStationIndex).getName(); String finalNextStationName = nextStationName; + String finalNextStationNameKr = nextStationNameKr; OrderServiceManager.leaveStation(mContext, stationList.get(backgroundCurrentStationIndex).getSeq(), stationList.get(backgroundCurrentStationIndex).getSiteId(), @@ -763,7 +770,8 @@ public class OrderModel { //需要更改当前站和下一站的状态 然后渲染 //startOrStopQueryPassengerWriteOff(false); queryBusRoutes(); - leaveStationSuccess(backgroundCurrentStationIndex, currentStationName, finalNextStationName); + leaveStationSuccess(backgroundCurrentStationIndex, currentStationName, + finalNextStationName,finalNextStationNameKr); } @@ -788,11 +796,11 @@ public class OrderModel { } //车站10s后播报 - private void leaveTTSTips(String nextStation) { + private void leaveTTSTips(String nextStation,String nextStationKr) { UiThreadHandler.postDelayed(new Runnable() { @Override public void run() {//延迟10s播报 - VoiceManager.INSTANCE.leaveStation(nextStation); + VoiceManager.INSTANCE.leaveStation(nextStation,nextStationKr); } },DELAY_10S);