diff --git a/OCH/mogo-och-bus-passenger/build.gradle b/OCH/mogo-och-bus-passenger/build.gradle index 24b4c2d2ec..108b34a4f2 100644 --- a/OCH/mogo-och-bus-passenger/build.gradle +++ b/OCH/mogo-och-bus-passenger/build.gradle @@ -77,6 +77,7 @@ dependencies { compileOnly project(":libraries:mogo-map") compileOnly project(':libraries:mogo-adas') implementation project(':core:mogo-core-res') + testImplementation 'junit:junit:4.12' } diff --git a/OCH/mogo-och-bus-passenger/src/m1/java/com/mogo/och/bus/passenger/presenter/BusPassengerFunctionDevicePresenter.kt b/OCH/mogo-och-bus-passenger/src/m1/java/com/mogo/och/bus/passenger/presenter/BusPassengerFunctionDevicePresenter.kt index cc337dddd0..b47050a2a1 100644 --- a/OCH/mogo-och-bus-passenger/src/m1/java/com/mogo/och/bus/passenger/presenter/BusPassengerFunctionDevicePresenter.kt +++ b/OCH/mogo-och-bus-passenger/src/m1/java/com/mogo/och/bus/passenger/presenter/BusPassengerFunctionDevicePresenter.kt @@ -99,7 +99,7 @@ class BusPassengerFunctionDevicePresenter(view: BusPassengerFunctionDeviceFragme } private fun canOpenOrCloseDoor():String?{ - if(gnssSpeed==0.0){ + if(gnssSpeed<0.01){ return null }else{ return "速度:${gnssSpeed}车辆正在运行、请稍后再试" diff --git a/OCH/mogo-och-bus-passenger/src/m1/java/com/mogo/och/bus/passenger/ui/BusPassengerRouteFragment.kt b/OCH/mogo-och-bus-passenger/src/m1/java/com/mogo/och/bus/passenger/ui/BusPassengerRouteFragment.kt index abd1f67289..a427e4c74f 100644 --- a/OCH/mogo-och-bus-passenger/src/m1/java/com/mogo/och/bus/passenger/ui/BusPassengerRouteFragment.kt +++ b/OCH/mogo-och-bus-passenger/src/m1/java/com/mogo/och/bus/passenger/ui/BusPassengerRouteFragment.kt @@ -52,6 +52,9 @@ class BusPassengerRouteFragment : v_debug.setOnLongClickListener { ToggleDebugView.toggleDebugView.toggle(requireContext()) true + } + viewBusPM1MsgBoxButton.onClick { + } viewBusPM1MsgBoxButton.setClickListener(object : MMsgBoxButtonView.ClickListener { override fun showMsgBoxList(show: Boolean) { @@ -70,28 +73,22 @@ class BusPassengerRouteFragment : } private fun openSettingPage(tab: String) { - - CallerHmiManager.hideToolsView() - val fragmentByTag: Fragment? = - childFragmentManager.findFragmentByTag(BusPassengerFunctionFragment.TAG) + val fragmentByTag: Fragment? = childFragmentManager.findFragmentByTag(BusPassengerFunctionFragment.TAG) if (fragmentByTag is DialogFragment) { if (fragmentByTag.dialog != null && fragmentByTag.dialog!!.isShowing) { + CallerLogger.d(SceneConstant.M_BUS_P + TAG, "正在展示") return } if (fragmentByTag.dialog != null && fragmentByTag.isAdded) { if (AppStateManager.currentActivity() == null) { // 没有在当前应用内 在启动页面关闭应用 - CallerLogger.d( - SceneConstant.M_TAXI + LoginServiceImpl.TAG, - "showLoginDialogFragment 权限验证" - ) + CallerLogger.d(SceneConstant.M_BUS_P + TAG, "权限验证") return } } } if (bpFunctionGroupDialogFragment?.get() == null) { - bpFunctionGroupDialogFragment = - WeakReference(BusPassengerFunctionFragment.newInstance()) + bpFunctionGroupDialogFragment = WeakReference(BusPassengerFunctionFragment.newInstance()) } val bpFunctionGroup = bpFunctionGroupDialogFragment?.get() bpFunctionGroup?.arguments?.putString(BusPassengerFunctionFragment.SELECTTAB, tab) @@ -104,15 +101,11 @@ class BusPassengerRouteFragment : .commitAllowingStateLoss() } if (ClickUtils.isFastClick()) { - bpFunctionGroup.show(parentFragmentManager, LoginServiceImpl.TAG) - CallerLogger.d( - SceneConstant.M_TAXI + LoginServiceImpl.TAG, - "showLoginDialogFragment 展示登录界面" - ) + bpFunctionGroup.show(parentFragmentManager, TAG) + CallerLogger.d(SceneConstant.M_BUS_P + TAG, "展示$tab") } else { CallerLogger.d( - SceneConstant.M_TAXI + LoginServiceImpl.TAG, - "showLoginDialogFragment 展示登录界面 1s内执行一次" + SceneConstant.M_BUS_P + TAG, "dialog 1s内执行一次" ) } } diff --git a/OCH/mogo-och-bus-passenger/src/m1/java/com/mogo/och/bus/passenger/view/statusbar/StatusBarView.kt b/OCH/mogo-och-bus-passenger/src/m1/java/com/mogo/och/bus/passenger/view/statusbar/StatusBarView.kt index e89c18853c..e71d7625cc 100644 --- a/OCH/mogo-och-bus-passenger/src/m1/java/com/mogo/och/bus/passenger/view/statusbar/StatusBarView.kt +++ b/OCH/mogo-och-bus-passenger/src/m1/java/com/mogo/och/bus/passenger/view/statusbar/StatusBarView.kt @@ -21,6 +21,7 @@ import com.mogo.eagle.core.function.hmi.ui.widget.DemoModeView import com.mogo.och.bus.passenger.R import kotlinx.android.synthetic.m1.bus_p_m1_view_status_bar.view.* import me.jessyan.autosize.utils.AutoSizeUtils +import kotlin.math.roundToInt class StatusBarView @JvmOverloads constructor( context: Context, @@ -82,15 +83,8 @@ class StatusBarView @JvmOverloads constructor( override fun onBatteryManagementSystemStates(states: ChassisStatesOuterClass.BMSSystemStates) { val bmsSoc = states.bmsSoc - if(bmsSoc >1){ - progress.progress = bmsSoc.toInt() - tv_power_cos.text = "${bmsSoc.toInt()}%" - }else{ - val currenPower = (bmsSoc * 100).toInt() - progress.progress = currenPower - tv_power_cos.text = "$currenPower%" - } - + progress.progress = bmsSoc.toInt() + tv_power_cos.text = "${bmsSoc.roundToInt()}%" } } diff --git a/OCH/mogo-och-bus-passenger/src/test/java/com/mogo/och/bus/passenger/ExampleUnitTest.java b/OCH/mogo-och-bus-passenger/src/test/java/com/mogo/och/bus/passenger/ExampleUnitTest.java index 7860f8cdb7..d940b2948f 100644 --- a/OCH/mogo-och-bus-passenger/src/test/java/com/mogo/och/bus/passenger/ExampleUnitTest.java +++ b/OCH/mogo-och-bus-passenger/src/test/java/com/mogo/och/bus/passenger/ExampleUnitTest.java @@ -1,17 +1,15 @@ -//package com.mogo.och.bus.passenger; -// -//import org.junit.Test; -// -//import static org.junit.Assert.*; -// -///** -// * Example local unit test, which will execute on the development machine (host). -// * -// * @see Testing documentation -// */ -//public class ExampleUnitTest { -// @Test -// public void addition_isCorrect() { -// assertEquals(4, 2 + 2); -// } -//} \ No newline at end of file +package com.mogo.och.bus.passenger; + +import org.junit.Test; + +/** + * Example local unit test, which will execute on the development machine (host). + * + * @see Testing documentation + */ +public class ExampleUnitTest { + @Test + public void addition_isCorrect() { + + } +} \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/location/MoGoLocationDispatcher.kt b/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/location/MoGoLocationDispatcher.kt index 4c43812fbe..93e8d1f7f2 100644 --- a/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/location/MoGoLocationDispatcher.kt +++ b/core/function-impl/mogo-core-function-datacenter/src/main/java/com/mogo/eagle/core/function/datacenter/location/MoGoLocationDispatcher.kt @@ -17,6 +17,7 @@ import com.mogo.eagle.core.function.call.autopilot.CallerChassisLocationWGS84Lis import com.mogo.eagle.core.function.call.obu.CallerObuLocationWGS84ListenerManager import com.mogo.eagle.core.utilcode.mogo.storage.SharedPrefsMgr import com.mogo.eagle.core.utilcode.util.CoordinateTransform +import com.mogo.eagle.core.utilcode.util.MultiDisplayUtils import com.mogo.eagle.core.utilcode.util.TimeUtils import com.mogo.eagle.core.utilcode.util.Utils import com.mogo.support.obu.model.MogoObuHvBasicsData @@ -124,6 +125,7 @@ object MoGoLocationDispatcher : DataSourceType.TELEMATIC ) } + MultiDisplayUtils.getOtherDisplay() } /** 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 93f4bf6c84..f26b486ee8 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 @@ -1,5 +1,6 @@ package com.mogo.eagle.core.function.view +import android.annotation.SuppressLint import android.content.Context import android.graphics.Bitmap import android.graphics.Canvas @@ -12,6 +13,7 @@ import android.view.View import android.widget.RelativeLayout import android.widget.TextView import androidx.annotation.MainThread +import androidx.core.graphics.drawable.toBitmap import ch.hsr.geohash.GeoHash import com.amap.api.maps.AMap import com.amap.api.maps.CameraUpdate @@ -68,6 +70,7 @@ class OverMapView @JvmOverloads constructor( private var resetDrawable: Int = -1 private var resetDrawableMarginRight: Int = -1 private var resetDrawableMarginBottom: Int = -1 + private var isClearArrived: Boolean = false private var mMapView: TextureMapView? = null private var mAMap: AMap? = null @@ -94,6 +97,7 @@ class OverMapView @JvmOverloads constructor( // 计算索引并设置对应的Bitmap var arrivedBitmap: BitmapDescriptor? = null var unArrivedBitmap: BitmapDescriptor? = null + var transparentBitmap: BitmapDescriptor? = null // 绘制轨迹线的集合 private val textureList: MutableList = ArrayList() @@ -123,8 +127,15 @@ class OverMapView @JvmOverloads constructor( unArrivedDrawable = typedArray.getResourceId(R.styleable.OverMapView_unArrivedDrawable, -1) resetDrawable = typedArray.getResourceId(R.styleable.OverMapView_resetDrawable, -1) - resetDrawableMarginRight = typedArray.getResourceId(R.styleable.OverMapView_resetDrawableMarginRight, AutoSizeUtils.dp2px(context,40f)) - resetDrawableMarginBottom = typedArray.getResourceId(R.styleable.OverMapView_resetDrawableMarginBottom, AutoSizeUtils.dp2px(context,40f)) + resetDrawableMarginRight = typedArray.getResourceId( + R.styleable.OverMapView_resetDrawableMarginRight, + AutoSizeUtils.dp2px(context, 40f) + ) + resetDrawableMarginBottom = typedArray.getResourceId( + R.styleable.OverMapView_resetDrawableMarginBottom, + AutoSizeUtils.dp2px(context, 40f) + ) + isClearArrived = typedArray.getBoolean(R.styleable.OverMapView_isClearArrived, false) typedArray.recycle() initView(context) } catch (e: Exception) { @@ -174,7 +185,12 @@ class OverMapView @JvmOverloads constructor( * (anchorX,anchorY)为锚点坐标,各自取值范围为[0,1],默认值为(0.5,1) */ @MainThread - fun drawSiteMarkers(siteLatLngs: List?, bitmap: Bitmap, anchorX: Float, anchorY: Float) { + fun drawSiteMarkers( + siteLatLngs: List?, + bitmap: Bitmap, + anchorX: Float, + anchorY: Float + ) { if (siteLatLngs.isNullOrEmpty()) return clearSiteMarkers() val markerOptionsList = ArrayList() @@ -214,31 +230,37 @@ class OverMapView @JvmOverloads constructor( mEndMarker?.isVisible = false } + @SuppressLint("UseCompatLoadingForDrawables") private fun initView(context: Context) { mContext = context val smpView = LayoutInflater.from(context).inflate(R.layout.module_overview_map_view, this) mMapView = smpView.findViewById(R.id.aMapView) overLayerView = findViewById(R.id.overLayer) - overLayerView?.let { - it.background = - resources.getDrawable(if (resetDrawable != -1) resetDrawable else R.drawable.amap_reset) - val layoutParams = it.layoutParams - layoutParams as RelativeLayout.LayoutParams - layoutParams.rightMargin =resetDrawableMarginRight - layoutParams.bottomMargin =resetDrawableMarginBottom - it.layoutParams = layoutParams - } - + overLayerView?.background = + resources.getDrawable(if (resetDrawable != -1) resetDrawable else R.drawable.amap_reset) arrivedBitmap = BitmapDescriptorFactory.fromResource(if (arrivedDrawable != -1) arrivedDrawable else R.drawable.taxi_map_arrow_arrived) unArrivedBitmap = BitmapDescriptorFactory.fromResource(if (unArrivedDrawable != -1) unArrivedDrawable else R.drawable.taxi_map_arrow_un_arrive) + transparentBitmap = BitmapDescriptorFactory.fromBitmap( + resources.getDrawable(R.drawable.transparent_background, null) + .toBitmap(AutoSizeUtils.dp2px(context, 32f), AutoSizeUtils.dp2px(context, 230f)) + ) CallerPlanningRottingListenerManager.addListener(TAG, this) initAMapView(context) // 注册定位监听 CallerChassisLocationGCJ02ListenerManager.addListener(TAG, this) //设置全览模式 overLayerView?.setOnClickListener { displayCustomOverView() } + overLayerView?.let { + it.background = + resources.getDrawable(if (resetDrawable != -1) resetDrawable else R.drawable.amap_reset) + val layoutParams = it.layoutParams + layoutParams as RelativeLayout.LayoutParams + layoutParams.rightMargin = resetDrawableMarginRight + layoutParams.bottomMargin = resetDrawableMarginBottom + it.layoutParams = layoutParams + } } private fun initAMapView(context: Context) { @@ -523,7 +545,7 @@ class OverMapView @JvmOverloads constructor( */ private fun displayCustomOverView() { val linePointsLatLng = planningPoints - if (linePointsLatLng.size > 1) { + if (linePointsLatLng.size > 1 && mLocation != null) { //圈定地图显示范围 //存放经纬度 val boundsBuilder = LatLngBounds.Builder() @@ -607,15 +629,15 @@ class OverMapView @JvmOverloads constructor( } for (i in coordinates.indices) { if (i <= locIndex) { - // 已走过的置灰 - arrivedBitmap?.let { - textureList.add(it) + if (isClearArrived) { + textureList.add(transparentBitmap) + } else { + // 已走过的置灰 + textureList.add(arrivedBitmap) } } else { // 未走过的纹理 - unArrivedBitmap?.let { - textureList.add(it) - } + textureList.add(unArrivedBitmap) } texIndexList.add(i) } diff --git a/core/function-impl/mogo-core-function-map/src/main/res/values/attrs.xml b/core/function-impl/mogo-core-function-map/src/main/res/values/attrs.xml index e9074e336c..0d3349fc35 100644 --- a/core/function-impl/mogo-core-function-map/src/main/res/values/attrs.xml +++ b/core/function-impl/mogo-core-function-map/src/main/res/values/attrs.xml @@ -22,5 +22,7 @@ + + \ No newline at end of file diff --git a/core/mogo-core-utils/src/main/java/com/mogo/eagle/core/utilcode/util/MultiDisplayUtils.kt b/core/mogo-core-utils/src/main/java/com/mogo/eagle/core/utilcode/util/MultiDisplayUtils.kt index e14d16cc03..4010261abe 100644 --- a/core/mogo-core-utils/src/main/java/com/mogo/eagle/core/utilcode/util/MultiDisplayUtils.kt +++ b/core/mogo-core-utils/src/main/java/com/mogo/eagle/core/utilcode/util/MultiDisplayUtils.kt @@ -39,10 +39,11 @@ object MultiDisplayUtils { // 获取除了内置屏幕(主屏幕)的其它屏幕 val displays = mDisplayManager.getDisplays(DisplayManager.DISPLAY_CATEGORY_PRESENTATION) // 初始化新的集合进行接收排序后的屏幕信息 - val displaysList = arrayOfNulls(displays.size) + var displaysList = arrayOfNulls(displays.size) // 判断副屏个数 if (displays.isNotEmpty()) { + displaysList = arrayOfNulls(displays.size) // 循环出来副屏幕进行重新排序 for (i in displays.indices) { // 这里如果需要固定某个屏幕, 使用 if( display.toString().indexOf("port=1")!=-1) ) 而不是使用 display[i] @@ -62,6 +63,18 @@ object MultiDisplayUtils { } } } + // 处理EB5副屏幕 + else { + if (mDisplayManager.displays.isNotEmpty()) { + displaysList = arrayOfNulls(1) + // EB5目前副屏幕ID为固定4096 + for (i in mDisplayManager.displays.indices) { + if (mDisplayManager.displays[i].displayId == 4096) { + displaysList[0] = mDisplayManager.displays[i] + } + } + } + } return displaysList } @@ -83,11 +96,9 @@ object MultiDisplayUtils { * @param activity 要在第二个屏幕启动的页面 */ fun startActWithSecond(context: Context, activity: Class<*>) { - val launchDisplayId: Int if (isSupportMultiDisplay(context)) { - if (getOtherDisplay().size > 1 && getOtherDisplay()[0] != null) { - launchDisplayId = getOtherDisplay()[0]!!.displayId - + if (getOtherDisplay().isNotEmpty() && getOtherDisplay()[0] != null) { + val launchDisplayId = getOtherDisplay()[0]!!.displayId // 要加上Intent.FLAG_ACTIVITY_NEW_TASK val options = ActivityOptions.makeBasic() options.launchDisplayId = launchDisplayId diff --git a/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/common/AutopilotAbilityManager.java b/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/common/AutopilotAbilityManager.java index 733e87d82a..03ec76b745 100644 --- a/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/common/AutopilotAbilityManager.java +++ b/libraries/mogo-adas/src/main/java/com/zhidao/support/adas/high/common/AutopilotAbilityManager.java @@ -213,7 +213,7 @@ public class AutopilotAbilityManager { if (!IDENTITY_MODE.BUS_DRIVER_VAN.equalsIgnoreCase(identityMode)) { //金旅Bus和清扫车 档位不正常 if (IDENTITY_MODE.BUS_DRIVER_BASE.equalsIgnoreCase(identityMode) || IDENTITY_MODE.SWEEPER_DRIVER_FT.equalsIgnoreCase(identityMode)) { - if (gear == Chassis.GearPosition.GEAR_N) { + if (gear == Chassis.GearPosition.GEAR_N || gear == Chassis.GearPosition.GEAR_R) { isAutopilotAbility = false; unableAutopilotReason = "挡位不正常"; }