From fd087758c937decbf51a9a52808d52cb3826789b Mon Sep 17 00:00:00 2001 From: yangyakun Date: Wed, 3 Jul 2024 19:32:42 +0800 Subject: [PATCH] =?UTF-8?q?[6.5.0]=20[fea]=20[=E5=8F=B8=E6=9C=BA=E5=B1=8F?= =?UTF-8?q?=E8=A7=86=E8=A7=92=E5=88=87=E6=8D=A2]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/res/layout/bus_base_fragment.xml | 21 +++--- .../main/res/layout/charter_base_fragment.xml | 19 +++-- .../common/module/debug/DebugDataDispatch.kt | 22 ++++++ .../wigets/map/switchvisual/SeekBarView.kt | 45 ++++++++---- .../map/switchvisual/VisualViewDirver.kt | 67 ++++++++++++++++++ .../drawable-nodpi/common_visual_angle.png | Bin 0 -> 2049 bytes .../drawable-nodpi/common_visual_angle_bg.png | Bin 0 -> 5531 bytes .../common_visual_angle_bg_unenable.png | Bin 0 -> 1326 bytes .../common_visual_angle_unenable.png | Bin 0 -> 2175 bytes .../drawable-nodpi/common_visual_bottom.png | Bin 0 -> 1162 bytes .../common_visual_bottom_unenable.png | Bin 0 -> 800 bytes .../drawable-nodpi/common_visualangle_bg.png | Bin 0 -> 7320 bytes .../common_visualangle_bg_unenable.png | Bin 0 -> 11666 bytes .../drawable-nodpi/commont_visual_head.png | Bin 0 -> 1834 bytes .../commont_visual_head_unable.png | Bin 0 -> 1318 bytes .../res/layout/common_visualangle_black.xml | 47 ++++++++++++ .../res/layout/taxi_p_seekbar_visualangle.xml | 4 +- .../res/layout/taxi_seekbar_visualangle.xml} | 20 +++--- .../main/res/layout/shuttle_base_fragment.xml | 21 +++--- .../cloud/model/SweeperCloudTaskModel.java | 5 ++ .../presenter/SweeperOperatePresenter.java | 5 ++ .../main/res/layout/taxi_base_fragment.xml | 20 +++--- .../passenger/ui/TaxiPassengerBaseFragment.kt | 2 +- .../och/taxi/passenger/ui/bar/LeftBarView.kt | 1 - .../src/main/res/layout/taxi_p_rightbar.xml | 12 ++-- .../src/main/res/layout/taxi_p_seekbar_.xml | 2 +- .../layout/unmanned_taxi_base_fragment.xml | 18 +++-- 27 files changed, 243 insertions(+), 88 deletions(-) create mode 100644 OCH/common/common/src/main/java/com/mogo/och/common/module/wigets/map/switchvisual/VisualViewDirver.kt create mode 100755 OCH/common/common/src/main/res/drawable-nodpi/common_visual_angle.png create mode 100755 OCH/common/common/src/main/res/drawable-nodpi/common_visual_angle_bg.png create mode 100644 OCH/common/common/src/main/res/drawable-nodpi/common_visual_angle_bg_unenable.png create mode 100644 OCH/common/common/src/main/res/drawable-nodpi/common_visual_angle_unenable.png create mode 100755 OCH/common/common/src/main/res/drawable-nodpi/common_visual_bottom.png create mode 100644 OCH/common/common/src/main/res/drawable-nodpi/common_visual_bottom_unenable.png create mode 100644 OCH/common/common/src/main/res/drawable-nodpi/common_visualangle_bg.png create mode 100644 OCH/common/common/src/main/res/drawable-nodpi/common_visualangle_bg_unenable.png create mode 100755 OCH/common/common/src/main/res/drawable-nodpi/commont_visual_head.png create mode 100644 OCH/common/common/src/main/res/drawable-nodpi/commont_visual_head_unable.png create mode 100644 OCH/common/common/src/main/res/layout/common_visualangle_black.xml rename OCH/{taxi/pcommon/src/main/res/layout/taxi_p_seekbar_visualangle.xml => common/common/src/main/res/layout/taxi_seekbar_visualangle.xml} (59%) diff --git a/OCH/bus/driver/src/main/res/layout/bus_base_fragment.xml b/OCH/bus/driver/src/main/res/layout/bus_base_fragment.xml index 0bab6f9d11..ab3db7be7a 100644 --- a/OCH/bus/driver/src/main/res/layout/bus_base_fragment.xml +++ b/OCH/bus/driver/src/main/res/layout/bus_base_fragment.xml @@ -221,6 +221,15 @@ android:layout_marginTop="-24dp" app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintTop_toBottomOf="@id/module_mogo_och_autopilot_status" /> + + + + - - - + app:layout_constraintLeft_toRightOf="@id/toolsView" /> + + - - - diff --git a/OCH/common/common/src/debug/java/com/mogo/och/common/module/debug/DebugDataDispatch.kt b/OCH/common/common/src/debug/java/com/mogo/och/common/module/debug/DebugDataDispatch.kt index 73fdd2c46e..7aeb823941 100644 --- a/OCH/common/common/src/debug/java/com/mogo/och/common/module/debug/DebugDataDispatch.kt +++ b/OCH/common/common/src/debug/java/com/mogo/och/common/module/debug/DebugDataDispatch.kt @@ -11,6 +11,9 @@ import com.google.gson.reflect.TypeToken import com.mogo.eagle.core.data.enums.DataSourceType import com.mogo.eagle.core.data.enums.EventTypeEnumNew import com.mogo.eagle.core.data.map.MogoLocation +import com.mogo.eagle.core.function.angle.scenes.CrossRoad +import com.mogo.eagle.core.function.angle.scenes.Default +import com.mogo.eagle.core.function.angle.scenes.LongSight import com.mogo.eagle.core.function.api.hmi.xiaozhi.event.V2N import com.mogo.eagle.core.function.api.hmi.xiaozhi.state.State import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListenerManager @@ -23,6 +26,7 @@ import com.mogo.eagle.core.function.call.autopilot.CallerPlanningActionsListener import com.mogo.eagle.core.function.call.autopilot.CallerPlanningRottingListenerManager import com.mogo.eagle.core.function.call.hmi.CallerHmiManager import com.mogo.eagle.core.function.call.map.CallerMapRomaListener +import com.mogo.eagle.core.function.call.map.CallerVisualAngleManager 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.ActivityUtils @@ -57,6 +61,7 @@ object DebugDataDispatch { const val stopSite = "stopSite" const val v2N = "xiaozhiV2N" const val romal = "romal" + const val visualView = "visual" // adb shell am broadcast -a com.mogo.launcher.debug -f 0x011000000 --es type "location" --es path "1111/11111" // adb shell am broadcast -a com.mogo.launcher.debug -f 0x011000000 --es type "globalPath" --es path "sy73.json" @@ -69,6 +74,7 @@ object DebugDataDispatch { // adb shell am broadcast -a com.mogo.launcher.debug -f 0x011000000 --es type "stopSite" --ei state 6 --ei action 1 // adb shell am broadcast -a com.mogo.launcher.debug -f 0x011000000 --es type "xiaozhiV2N" --es poiType "10002" --ei state 0 // adb shell am broadcast -a com.mogo.launcher.debug -f 0x011000000 --es type "romal" --ei show 0 +// adb shell am broadcast -a com.mogo.launcher.debug -f 0x011000000 --es type "visual" --ei show 0 val ROOT_PATH = @@ -170,6 +176,22 @@ object DebugDataDispatch { pncAction.parkScenarioAction = planningaction.build() CallerPlanningActionsListenerManager.invokePNCActions(pncAction.build()) } + visualView ->{ + val state = intent.getIntExtra("show", 0) + when (state) { + 0 -> { + CallerVisualAngleManager.changeScene(LongSight(0)) + } + 1 -> { + CallerVisualAngleManager.changeScene(Default(0)) + } + 2 -> { + CallerVisualAngleManager.changeScene(CrossRoad(0)) + } + else -> {} + } + + } romal ->{ val state = intent.getIntExtra("show", 0) CallerMapRomaListener.invokeMapRomaRange(state==0) diff --git a/OCH/common/common/src/main/java/com/mogo/och/common/module/wigets/map/switchvisual/SeekBarView.kt b/OCH/common/common/src/main/java/com/mogo/och/common/module/wigets/map/switchvisual/SeekBarView.kt index 20323a5fce..c27788d5d5 100644 --- a/OCH/common/common/src/main/java/com/mogo/och/common/module/wigets/map/switchvisual/SeekBarView.kt +++ b/OCH/common/common/src/main/java/com/mogo/och/common/module/wigets/map/switchvisual/SeekBarView.kt @@ -11,12 +11,19 @@ import android.util.AttributeSet import android.view.LayoutInflater import android.view.MotionEvent import android.widget.ImageView +import androidx.annotation.DrawableRes import androidx.constraintlayout.widget.ConstraintLayout import androidx.constraintlayout.widget.ConstraintSet import androidx.lifecycle.ViewModelProvider import androidx.lifecycle.findViewTreeViewModelStoreOwner +import com.mogo.eagle.core.data.config.FunctionBuildConfig +import com.mogo.eagle.core.utilcode.mogo.AppIdentityModeUtils import com.mogo.eagle.core.utilcode.util.UiThreadHandler import com.mogo.och.common.module.R +import kotlinx.android.synthetic.main.taxi_p_seekbar_visualangle.view.iv_visualangle_bg +import kotlinx.android.synthetic.main.taxi_p_seekbar_visualangle.view.iv_visualangle_value +import kotlinx.android.synthetic.main.taxi_seekbar_visualangle.view.iv_visualangle_bg_dark +import kotlinx.android.synthetic.main.taxi_seekbar_visualangle.view.iv_visualangle_value_dark import kotlin.properties.Delegates @@ -53,13 +60,6 @@ class SeekBarView : ConstraintLayout, VisualViewModel.IVisualCallback { override fun onDraw(canvas: Canvas) { super.onDraw(canvas) - - val split = (height - draggableButton.height) / 3f - canvas.drawLine(0f,split,width.toFloat(),split,p) - canvas.drawLine(0f,split*2,width.toFloat(),split*2,p) - canvas.drawLine(0f,(height - draggableButton.height).toFloat(),width.toFloat(),split*3,p) - val translationY = draggableButton.translationY - canvas.drawLine(0f,translationY,width.toFloat(),translationY,p) } private var initialX = 0f @@ -82,12 +82,12 @@ class SeekBarView : ConstraintLayout, VisualViewModel.IVisualCallback { if(draggableButton.translationY<-draggableButton.height){ tempSet.clone(this) - tempSet.setTranslationY(R.id.iv_setting_only_value,-draggableButton.height.toFloat()) + tempSet.setTranslationY(draggableButton.id,-draggableButton.height.toFloat()) tempSet.applyTo(this) return true }else if (draggableButton.translationY>(height)){ tempSet.clone(this) - tempSet.setTranslationY(R.id.iv_setting_only_value,(height).toFloat()) + tempSet.setTranslationY(draggableButton.id,(height).toFloat()) tempSet.applyTo(this) return true } @@ -98,7 +98,7 @@ class SeekBarView : ConstraintLayout, VisualViewModel.IVisualCallback { initialY = event.rawY; tempSet.clone(this) - tempSet.setTranslationY(R.id.iv_setting_only_value,draggableButton.translationY+dy) + tempSet.setTranslationY(draggableButton.id,draggableButton.translationY+dy) tempSet.applyTo(this) } MotionEvent.ACTION_UP -> { @@ -178,10 +178,31 @@ class SeekBarView : ConstraintLayout, VisualViewModel.IVisualCallback { private lateinit var draggableButton:ImageView private fun initView() { - LayoutInflater.from(context).inflate(R.layout.taxi_p_seekbar_visualangle, this, true) - draggableButton = findViewById(R.id.iv_setting_only_value) + if (AppIdentityModeUtils.isDriver(FunctionBuildConfig.appIdentityMode)) { + LayoutInflater.from(context).inflate(R.layout.taxi_seekbar_visualangle, this, true) + draggableButton = findViewById(R.id.iv_visualangle_value_dark) + }else{ + LayoutInflater.from(context).inflate(R.layout.taxi_p_seekbar_visualangle, this, true) + draggableButton = findViewById(R.id.iv_visualangle_value) + } } + fun setBgResource(@DrawableRes resource:Int){ + if (AppIdentityModeUtils.isDriver(FunctionBuildConfig.appIdentityMode)) { + iv_visualangle_bg_dark.setImageResource(resource) + }else{ + iv_visualangle_bg.setImageResource(resource) + } + } + fun setHumbResource(@DrawableRes resource:Int){ + if (AppIdentityModeUtils.isDriver(FunctionBuildConfig.appIdentityMode)) { + iv_visualangle_value_dark.setImageResource(resource) + }else{ + iv_visualangle_value.setImageResource(resource) + } + } + + override fun onAttachedToWindow() { super.onAttachedToWindow() viewModel = findViewTreeViewModelStoreOwner()?.let { diff --git a/OCH/common/common/src/main/java/com/mogo/och/common/module/wigets/map/switchvisual/VisualViewDirver.kt b/OCH/common/common/src/main/java/com/mogo/och/common/module/wigets/map/switchvisual/VisualViewDirver.kt new file mode 100644 index 0000000000..988b4e8e41 --- /dev/null +++ b/OCH/common/common/src/main/java/com/mogo/och/common/module/wigets/map/switchvisual/VisualViewDirver.kt @@ -0,0 +1,67 @@ +package com.mogo.och.common.module.wigets.map.switchvisual + +import android.content.Context +import android.util.AttributeSet +import android.view.LayoutInflater +import androidx.constraintlayout.widget.ConstraintLayout +import com.mogo.och.common.module.R +import kotlinx.android.synthetic.main.common_visualangle_black.view.iv_center_location_bg +import kotlinx.android.synthetic.main.common_visualangle_black.view.iv_visual_angle_title_bottom +import kotlinx.android.synthetic.main.common_visualangle_black.view.iv_visual_angle_title_head +import kotlinx.android.synthetic.main.common_visualangle_black.view.iv_visual_angle_title_value_bg + + +class VisualViewDirver : ConstraintLayout { + + private val TAG = "LeftBarView" + + constructor(context: Context) : super(context) + + constructor(context: Context, attributeSet: AttributeSet) : super(context, attributeSet) + + constructor(context: Context, attributeSet: AttributeSet, defStyleAttr: Int) : super(context, attributeSet, defStyleAttr) + + constructor(context: Context, attributeSet: AttributeSet, defStyleAttr: Int, defStyleRes: Int) : super(context, attributeSet, defStyleAttr, defStyleRes) + + init { + } + + private fun initView() { + LayoutInflater.from(context).inflate(R.layout.common_visualangle_black, this, true) + + iv_visual_angle_title_value_bg.enableCallback = object :SeekBarView.EnableCallback{ + override fun enableChangeListener(enable: Boolean) { + if(enable){ + iv_visual_angle_title_head.setImageResource(R.drawable.commont_visual_head) + iv_visual_angle_title_bottom.setImageResource(R.drawable.common_visual_bottom) + iv_visual_angle_title_value_bg.setBgResource(R.drawable.common_visual_angle_bg) + iv_visual_angle_title_value_bg.setHumbResource(R.drawable.common_visual_angle) + iv_center_location_bg.setImageResource(R.drawable.common_visualangle_bg) + }else{ + iv_visual_angle_title_head.setImageResource(R.drawable.commont_visual_head_unable) + iv_visual_angle_title_bottom.setImageResource(R.drawable.common_visual_bottom_unenable) + iv_visual_angle_title_value_bg.setBgResource(R.drawable.common_visual_angle_bg_unenable) + iv_visual_angle_title_value_bg.setHumbResource(R.drawable.common_visual_angle_unenable) + iv_center_location_bg.setImageResource(R.drawable.common_visualangle_bg_unenable) + } + } + } + } + + override fun onVisibilityAggregated(isVisible: Boolean) { + super.onVisibilityAggregated(isVisible) + } + + override fun onAttachedToWindow() { + super.onAttachedToWindow() + } + + init { + try { + initView() + } catch (e: Exception) { + e.printStackTrace() + } + } + +} \ No newline at end of file diff --git a/OCH/common/common/src/main/res/drawable-nodpi/common_visual_angle.png b/OCH/common/common/src/main/res/drawable-nodpi/common_visual_angle.png new file mode 100755 index 0000000000000000000000000000000000000000..f2ea150dff6319508d077c6b23ffe7f1a6f934b5 GIT binary patch literal 2049 zcmV+c2>$npP)Px+yGcYrRA>d&StH^6a-i9)RKiF{s{$(6~wMe z3uY&}P^n!A{sDGp{{WYEp@Bk8p)QI9Q|(96PLgI4Gc(WgJLmrHz3*ejN!vwxlk?8G z=j)zx?#H_`lP2X>6BZ$LV&by)&dWNN!DvGFD+gA{@gbo&CSi-7I_a=&_gt6z>VW4Prh~RotYo!uU&85ZLhdN zAhzK^X;Uj_>XWM_HK7xMn%2wuC`Ou&30M(;F&qnG4w0-&N|TmUC3eK$N1q^ZgJ*@2 z_?@mW%#G#bLJX;anwn}QuN``E<)@1mKm6hRw?7MOOCYmoWag)*rw_dQ_RNJ#zg=nF zYp<%4hkG!n2k=rdEitz36gmC!>y_5bv6&0VRUBYdyXi=h@sppOI(PMt>&<@OEvsQe zARfjD+|!MK1H0IOivzCHVojxzHIksxH$BJRj} zL^hEpkYNFj?5yA+>e898kmLS+`;Q8_OQ4420TXF`tR;9ri#(JxLV!x?43kF;BhWlc zVm=*`7wegoX&9f{iWwF#X)2JHuoBpapr zSY2FC$y!{c_%FvB^UT&H^A0jq)qu-9_6>0mC# z)nJ4W+-f$HT@w>R+S@giMTPgi-T-ugiIV>FVia8KEkNGu+OT@$o$v1exD3hP>e^be zwtnAqbX*~cja&V+VT&?YCM-ZvIHb?4Z4zv+s;{Km?IxR>|GG;Ll9UUV95Y&i6qhm< zhV?c(c!F1d1;>=WP91oPm16RfP&ad$F9g6%m%U*0RQghC)ieiBp>mhP0LJ(R9B1npn!5tk&^}# z6f~kBco-^I8+05fUml7%K(6DMMP9K_TfsWJL*$Wa7?}FRri3XOx#dlZW=>jCiW#6~ zpDPRd9faelJMy&SWRBKZQ$q?XF#T1CU{8p|`7J;J6mw(cI+0MLqLmzgJChw_J8b#O z;ipSp4?&@|FZ%ikF~Vvs8$g$`C15nq0BiyL^<{f)B%RF-8;>!{YT%m@*7=B>s$*8k zstaItBRn~z;T?@eGO=@9lf?xS1L8cur$l}Vv;x32cs7LOE)6HWH0@Zz;S4Z&x3`sS zY}(ww6k6I`1y~5Cp&hz&46PRfi1~n0{#T!3gwl z8*lu`h!G0F@IsJbbns%JB-W)IGV)^_(?uPTaSCbc`=Tp!+=Vro-A#a!q?gI`hGfQqSEhkHN zm!+2vjGl^-kzd3XgT-B0fB~6@Onm@!4N;c-ee+iG&#gP+-wr*V1Nhuw=K&LkL~J8- zP0H(F^_B39cC+X6Hb7m}nSn3fQdsEt6Rt=U{&1>X)v8Lq(d8||H z(_#>x@(086r7B-1*sR)QarN;n={6gaAg(aij4cscEz~t03K3ROnP)R-HhwmvVU&k$ zkh=s#3e}{~6$OCze%9@+n63?GPjCWd@=>0!Ay7Z~VZxR=`Q%zj%!)Gf=+E$=lb(DO z#uv;HlF#^gv>VenjICN5fb z2kmp30Z+A>$>LuNmxc7d3*cz&%$_;@<*P3pT$S(3pjT>PeoCT*E`na_KHQ z_g-THuQv4U)uvBjRAMYj{THdTF;6U96-Mb}K4|vMy8N{9!RLKrsx_Ise)!Pp*I#{c z`s)1roQReMwh#sYg=h*qH#s@^%9+{O6VJbJ@Nli(XiA_Bd|{doLNv9Rxg`TeNSw4{ zR}dS@BxbHv5RwVWC`wwAHYT2~@3xNh;ej&s<{v3OoM>8EPc*jr-R|nbpVxn%J$v@M zcDsE|go^_B`K!kWfbli)Qv!Pg_6bZ0;Jb5Nma6xK2p;o>?cEi?a=#~VOW=+GzF5>V zfCZ4gUkUih2)~*jc@zc7v!p^kG0m2ZegmV)q6q5(*xUXd5Ep=%Az=dL#MF6Gux=;` f78t96;N$-fpffz`n{X9400000NkvXXu0mjfQs&VA literal 0 HcmV?d00001 diff --git a/OCH/common/common/src/main/res/drawable-nodpi/common_visual_angle_bg.png b/OCH/common/common/src/main/res/drawable-nodpi/common_visual_angle_bg.png new file mode 100755 index 0000000000000000000000000000000000000000..386839b12e4cfaac34a00bdc1b463bb094979e52 GIT binary patch literal 5531 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 literal 0 HcmV?d00001 diff --git a/OCH/common/common/src/main/res/drawable-nodpi/common_visual_angle_bg_unenable.png b/OCH/common/common/src/main/res/drawable-nodpi/common_visual_angle_bg_unenable.png new file mode 100644 index 0000000000000000000000000000000000000000..80df6287df1cdd83baf119c01e5e60803efc470c GIT binary patch literal 1326 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 B2mAm4 literal 0 HcmV?d00001 diff --git a/OCH/common/common/src/main/res/drawable-nodpi/common_visual_bottom.png b/OCH/common/common/src/main/res/drawable-nodpi/common_visual_bottom.png new file mode 100755 index 0000000000000000000000000000000000000000..13076e27b6064c6ab2207aa4735557e38632e76c GIT binary patch literal 1162 zcmV;51aX1^@s6$@ldn00001b5ch_0Itp) z=>Px(L`g(JR7efIRb6aURS=#z_wFwJ+hPeZH5f6GpQ_Pl2u9kj;)CJI2Q_UMv1*LL z7{qLABxwvTAqt38j1Oux$kQ&SF=_%4gD-7L36dbuR*{5?1{D-T=|Z91y=VN+S+BXf z?$#AePqI7b%-=UNcg`868J37}*P27ODlgY8LN^o3QWBa=%ngvuW1?DO8i(5NaB~jw zQD!>ouzR>>@rtjKN!ByChiRGhe0=aWPpFSX?kb})Bb$jcMDh_k?#3Od<{wHamjr*I z{ZLbmvO_}BV2q%YL$+hc_B+rioaexCgoGo)1d6?(#1S@o;wWtEEFkkQ;b?W!w!UQ- ziUV+q8Rneh>{|e8VCItm>0A=6IkL8IS+gbB=$2`vl;e5Tnxr3ouFqbW?1A2f zV%@)G-qkUDhe-CQQDnsr_oibX78{j2cgF`eX)PPAocR@pXxJ0ki>jQhUm9D09>@i4 zRq$Z;Lb*pR59Nw3Y5k;FKGRvWJQt9!TmE3{epK%~oL)Qe?a-=#%x(+7lSwh>4kJNH z-YbsOTFmf=@BfW2hW$ue8+%CSQ^OOM$9$Pj3&1a)7`hM5(`bZY#k+l_N@>W6v?0@X z(UfnyPPpCLiTc=37J4A@1aDL;a^=~ek3M!Y|cdtHp zgVwn;zU|$<4(|D7R;I(N(^@9`QPF!5#1+(kKa(7;Yl^+biTJ=y00$ezxAzdlDFk#} zi5%BTjlpO_Y08k2j3_swiLWr}8u9c_$Zkj2mjPk|t`g!<-jP)M4hyJKTRG7_a30LL z1%lZ*98<32u0%O@%?_TA!Y_rDvqo)CH6LSEpBpx=$4~fHpJ98^SNne`3ljVi%`{>B zg(%d&E!{F|yB(c~#|Yqx*Y$o7TNSEtu0yjtZ4HdzY8TUK_<7kSXHoB-d+tPEY&Nd6 znr<}IzU^Q-Xe<(?&KTyayIL@j=pFOxUOf=g9__=v7Qc!X8ubJ~*Vip>JrEqLLe9@b z9xjDrleOSl@>*;>v;O21HJGJHgn7yYVQm3a_GU(!p!QuUkcHI#_(&RIvwU@@n zZ}L2^(j$!AHs&R>(hBLeEo? z@YjZKGk-l5`=Tp8*n=o<#BV+(|0G7=ujD$Z62=v?T$k5+S!zc+UjrjdIXR0vJhFZF ca{HM50eX3V;#hmG^8f$<07*qoM6N<$g2&4}VgLXD literal 0 HcmV?d00001 diff --git a/OCH/common/common/src/main/res/drawable-nodpi/common_visual_bottom_unenable.png b/OCH/common/common/src/main/res/drawable-nodpi/common_visual_bottom_unenable.png new file mode 100644 index 0000000000000000000000000000000000000000..de0caf66ae728e19965687d76ec9e229216e5d86 GIT binary patch literal 800 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 literal 0 HcmV?d00001 diff --git a/OCH/common/common/src/main/res/layout/common_visualangle_black.xml b/OCH/common/common/src/main/res/layout/common_visualangle_black.xml new file mode 100644 index 0000000000..69a1e5df26 --- /dev/null +++ b/OCH/common/common/src/main/res/layout/common_visualangle_black.xml @@ -0,0 +1,47 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/OCH/common/common/src/main/res/layout/taxi_p_seekbar_visualangle.xml b/OCH/common/common/src/main/res/layout/taxi_p_seekbar_visualangle.xml index 4c1bc8426c..55f173c633 100644 --- a/OCH/common/common/src/main/res/layout/taxi_p_seekbar_visualangle.xml +++ b/OCH/common/common/src/main/res/layout/taxi_p_seekbar_visualangle.xml @@ -7,7 +7,7 @@ tools:parentTag="androidx.constraintlayout.widget.ConstraintLayout"> diff --git a/OCH/shuttle/driver/src/main/res/layout/shuttle_base_fragment.xml b/OCH/shuttle/driver/src/main/res/layout/shuttle_base_fragment.xml index 4e8489372e..a20568f292 100644 --- a/OCH/shuttle/driver/src/main/res/layout/shuttle_base_fragment.xml +++ b/OCH/shuttle/driver/src/main/res/layout/shuttle_base_fragment.xml @@ -198,6 +198,14 @@ app:layout_constraintTop_toBottomOf="@id/module_mogo_och_autopilot_status" app:layout_goneMarginTop="@dimen/module_mogo_och_station_panel_container_margin_top_no_call" /> + + + - - - - diff --git a/OCH/sweeper/driver/src/main/java/com/mogo/och/sweeper/cloud/model/SweeperCloudTaskModel.java b/OCH/sweeper/driver/src/main/java/com/mogo/och/sweeper/cloud/model/SweeperCloudTaskModel.java index 6fcaf29aa3..d59f3ac076 100644 --- a/OCH/sweeper/driver/src/main/java/com/mogo/och/sweeper/cloud/model/SweeperCloudTaskModel.java +++ b/OCH/sweeper/driver/src/main/java/com/mogo/och/sweeper/cloud/model/SweeperCloudTaskModel.java @@ -792,4 +792,9 @@ public class SweeperCloudTaskModel implements IMoGoSweeperFutianCloudTaskListene public void onAutopilotTrajectoryDownloadReq(@NonNull AutopilotControlParameters.AutoPilotLine autoPilotLine, int downloadType) { } + + @Override + public void onFsmReceiveTimeout(boolean isTimeout) { + + } } diff --git a/OCH/sweeper/driver/src/main/java/com/mogo/och/sweeper/operate/presenter/SweeperOperatePresenter.java b/OCH/sweeper/driver/src/main/java/com/mogo/och/sweeper/operate/presenter/SweeperOperatePresenter.java index 130c155a68..764942e060 100644 --- a/OCH/sweeper/driver/src/main/java/com/mogo/och/sweeper/operate/presenter/SweeperOperatePresenter.java +++ b/OCH/sweeper/driver/src/main/java/com/mogo/och/sweeper/operate/presenter/SweeperOperatePresenter.java @@ -469,4 +469,9 @@ public class SweeperOperatePresenter extends Presenter @Override public void onAutopilotTrajectoryDownloadReq(@NonNull AutopilotControlParameters.AutoPilotLine autoPilotLine, int downloadType) { } + + @Override + public void onFsmReceiveTimeout(boolean isTimeout) { + + } } diff --git a/OCH/taxi/driver/src/main/res/layout/taxi_base_fragment.xml b/OCH/taxi/driver/src/main/res/layout/taxi_base_fragment.xml index 2138637b81..1a169220bd 100644 --- a/OCH/taxi/driver/src/main/res/layout/taxi_base_fragment.xml +++ b/OCH/taxi/driver/src/main/res/layout/taxi_base_fragment.xml @@ -220,6 +220,14 @@ app:layout_constraintTop_toBottomOf="@+id/module_mogo_och_autopilot_status" tools:visibility="visible" /> + + + - - - + app:layout_constraintLeft_toRightOf="@id/toolsView" /> { diff --git a/OCH/taxi/pcommon/src/main/java/com/mogo/och/taxi/passenger/ui/bar/LeftBarView.kt b/OCH/taxi/pcommon/src/main/java/com/mogo/och/taxi/passenger/ui/bar/LeftBarView.kt index 99618fa399..55b4ae0a25 100644 --- a/OCH/taxi/pcommon/src/main/java/com/mogo/och/taxi/passenger/ui/bar/LeftBarView.kt +++ b/OCH/taxi/pcommon/src/main/java/com/mogo/och/taxi/passenger/ui/bar/LeftBarView.kt @@ -8,7 +8,6 @@ import androidx.constraintlayout.widget.ConstraintLayout import com.mogo.eagle.core.utilcode.kotlin.onClick import com.mogo.och.common.module.wigets.map.switchvisual.SeekBarView import com.mogo.och.taxi.passenger.common.R -import kotlinx.android.synthetic.main.taxi_p_leftbar.view.iv_center_location import kotlinx.android.synthetic.main.taxi_p_leftbar.view.iv_center_location_bg import kotlinx.android.synthetic.main.taxi_p_leftbar.view.iv_visual_angle_title_bottom import kotlinx.android.synthetic.main.taxi_p_leftbar.view.iv_visual_angle_title_head diff --git a/OCH/taxi/pcommon/src/main/res/layout/taxi_p_rightbar.xml b/OCH/taxi/pcommon/src/main/res/layout/taxi_p_rightbar.xml index 36e55e319b..b12099d8b8 100644 --- a/OCH/taxi/pcommon/src/main/res/layout/taxi_p_rightbar.xml +++ b/OCH/taxi/pcommon/src/main/res/layout/taxi_p_rightbar.xml @@ -58,13 +58,13 @@ + app:layout_constraintBottom_toBottomOf="@+id/iv_visualangle_bg" + app:layout_constraintStart_toStartOf="@+id/iv_visualangle_bg" + app:layout_constraintEnd_toEndOf="@+id/iv_visualangle_bg" + app:layout_constraintTop_toTopOf="@+id/iv_visualangle_bg" /> \ No newline at end of file diff --git a/OCH/taxi/pcommon/src/main/res/layout/taxi_p_seekbar_.xml b/OCH/taxi/pcommon/src/main/res/layout/taxi_p_seekbar_.xml index 693d5af861..cf8aac9f7d 100644 --- a/OCH/taxi/pcommon/src/main/res/layout/taxi_p_seekbar_.xml +++ b/OCH/taxi/pcommon/src/main/res/layout/taxi_p_seekbar_.xml @@ -7,7 +7,7 @@ tools:parentTag="androidx.constraintlayout.motion.widget.MotionLayout"> + + - -