From ca1809bed7f98a4925b950400b3b844cd62b88fd Mon Sep 17 00:00:00 2001 From: wangmingjun Date: Wed, 29 Mar 2023 18:16:29 +0800 Subject: [PATCH] =?UTF-8?q?[3.0.0]=20=E5=8F=B8=E6=9C=BA=E7=AB=AF=E4=BA=8C?= =?UTF-8?q?=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"/> + +