diff --git a/OCH/mogo-och-bus-passenger/src/main/java/com/mogo/och/bus/passenger/constant/BusPassengerConst.kt b/OCH/mogo-och-bus-passenger/src/main/java/com/mogo/och/bus/passenger/constant/BusPassengerConst.kt index e2ba5ec9e0..c7b0368acd 100644 --- a/OCH/mogo-och-bus-passenger/src/main/java/com/mogo/och/bus/passenger/constant/BusPassengerConst.kt +++ b/OCH/mogo-och-bus-passenger/src/main/java/com/mogo/och/bus/passenger/constant/BusPassengerConst.kt @@ -39,7 +39,7 @@ class BusPassengerConst { // 未到站(未到站) const val STATION_STATUS_ARRIVING = 3 - //bus平均速度 + //bus平均速度 bus的平均里程:25km/h const val BUS_AVERAGE_SPEED = 25 // 订单总里程 diff --git a/OCH/mogo-och-bus-passenger/src/main/java/com/mogo/och/bus/passenger/ui/BusPassengerMapDirectionView.java b/OCH/mogo-och-bus-passenger/src/main/java/com/mogo/och/bus/passenger/ui/BusPassengerMapDirectionView.java index 5213372938..bbd2a17c1d 100644 --- a/OCH/mogo-och-bus-passenger/src/main/java/com/mogo/och/bus/passenger/ui/BusPassengerMapDirectionView.java +++ b/OCH/mogo-och-bus-passenger/src/main/java/com/mogo/och/bus/passenger/ui/BusPassengerMapDirectionView.java @@ -199,21 +199,22 @@ public class BusPassengerMapDirectionView //圈定地图显示范围 LatLngBounds.Builder boundsBuilder = new LatLngBounds.Builder(); - if (mLineStationLatLng.size() > 0){ +// if (mLineStationLatLng.size() > 0){ +// //存放经纬度 +// for (int i = 0; i < mLineStationLatLng.size(); i++) { +// boundsBuilder.include(mLineStationLatLng.get(i)); +// } +// //第二个参数为四周留空宽度 +// } + + if (mCoordinatesLatLng.size() > 0){ //存放经纬度 - for (int i = 0; i < mLineStationLatLng.size(); i++) { - boundsBuilder.include(mLineStationLatLng.get(i)); + for (int i = 0; i < mCoordinatesLatLng.size(); i++) { + boundsBuilder.include(mCoordinatesLatLng.get(i)); } //第二个参数为四周留空宽度 - } -// else { - //第二个参数为四周留空宽度 - //设置希望展示的地图缩放级别 -// CameraPosition cameraPosition = new CameraPosition.Builder() -// .target(mCarMarker.getPosition()).tilt(0).bearing(location.getBearing()).zoom(zoomLevel).build(); -// mAMap.moveCamera(CameraUpdateFactory.newCameraPosition(cameraPosition)); -// } + boundsBuilder.include(currentLatLng); mAMap.moveCamera(CameraUpdateFactory.newLatLngBoundsRect(boundsBuilder.build(),100,100,100,100)); } diff --git a/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/BusProvider.java b/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/BusProvider.java index 629183bbb7..7e04f66bd0 100644 --- a/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/BusProvider.java +++ b/OCH/mogo-och-bus/src/main/java/com/mogo/och/bus/BusProvider.java @@ -60,7 +60,9 @@ public class BusProvider implements IMogoOCH { } else { busFragment = new BusFragment(); } - supportFragmentManager.beginTransaction().add(containerId, busFragment, BusFragment.TAG).commitAllowingStateLoss(); + if(!busFragment.isAdded()) { + supportFragmentManager.beginTransaction().add(containerId, busFragment, BusFragment.TAG).commitAllowingStateLoss(); + } return; } CallerLogger.INSTANCE.d(TAG, "准备show fragment"); diff --git a/core/function-impl/mogo-core-function-devatools/src/main/AndroidManifest.xml b/core/function-impl/mogo-core-function-devatools/src/main/AndroidManifest.xml index dc9cf1b26e..b0de6b5f86 100644 --- a/core/function-impl/mogo-core-function-devatools/src/main/AndroidManifest.xml +++ b/core/function-impl/mogo-core-function-devatools/src/main/AndroidManifest.xml @@ -5,5 +5,7 @@ + + \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/DevaToolsProvider.kt b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/DevaToolsProvider.kt index 2e809bf915..1f8dfe50b6 100644 --- a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/DevaToolsProvider.kt +++ b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/DevaToolsProvider.kt @@ -15,6 +15,7 @@ import com.zhjt.mogo_core_function_devatools.badcase.BadCaseManager import com.zhjt.mogo_core_function_devatools.funcconfig.FuncConfigCenter.Companion.bizConfigCenter import com.zhjt.mogo_core_function_devatools.funcconfig.FuncConfigImpl import com.zhjt.mogo_core_function_devatools.logcatch.MogoLogCatchManager +import com.zhjt.mogo_core_function_devatools.mofang.MoFangManager import com.zhjt.mogo_core_function_devatools.monitor.MonitorManager import com.zhjt.mogo_core_function_devatools.scene.SceneManager.Companion.sceneManager import com.zhjt.mogo_core_function_devatools.status.* @@ -42,6 +43,7 @@ class DevaToolsProvider : IDevaToolsProvider { bizConfigCenter.init(mContext!!) FuncConfigImpl.init() MogoLogCatchManager.init(mContext!!) + MoFangManager.INSTANCE.init(mContext!!) } override fun startLogCatch() { diff --git a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/badcase/BadCaseManager.kt b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/badcase/BadCaseManager.kt index 944cad91bc..5eed6e1651 100644 --- a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/badcase/BadCaseManager.kt +++ b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/badcase/BadCaseManager.kt @@ -186,6 +186,7 @@ internal object BadCaseManager : LifecycleEventObserver { override fun onFinish() { passiveBadCaseWindow.hideFloatWindow() + BadCaseConfig.windowNum-- } } countDownTimer.start() diff --git a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/badcase/biz/PassiveBadCaseWindow.kt b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/badcase/biz/PassiveBadCaseWindow.kt index 58e49237c1..cfb42c46b6 100644 --- a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/badcase/biz/PassiveBadCaseWindow.kt +++ b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/badcase/biz/PassiveBadCaseWindow.kt @@ -37,6 +37,7 @@ import kotlinx.coroutines.launch import mogo.telematics.pad.MessagePad import com.zhidao.loglib.upload.UploadManager import me.jessyan.autosize.utils.AutoSizeUtils +import org.greenrobot.eventbus.EventBus import java.io.File import java.lang.reflect.Field @@ -139,6 +140,7 @@ class PassiveBadCaseWindow constructor(activity: Activity) : View.OnTouchListene } //删除记录 CallerMsgBoxManager.removeRecordInfo(mActivity, boxBean!!, recordKey!!) + EventBus.getDefault().post(boxBean) } tvPassiveCancel.setOnClickListener { @@ -146,6 +148,7 @@ class PassiveBadCaseWindow constructor(activity: Activity) : View.OnTouchListene clickListener?.closeWindow() //删除记录 CallerMsgBoxManager.removeRecordInfo(mActivity, boxBean!!, recordKey!!) + EventBus.getDefault().post(boxBean) } mWindowParams = WindowManager.LayoutParams() @@ -335,8 +338,6 @@ class PassiveBadCaseWindow constructor(activity: Activity) : View.OnTouchListene } override fun onCheckedChanged(buttonView: CompoundButton?, isChecked: Boolean) { - Log.i("onCheckedChanged","buttonView"+buttonView) - Log.i("onCheckedChanged","isChecked"+isChecked) buttonView?.text?.let { if(isChecked){ if(!uploadReason.contains(it)){ diff --git a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/mofang/MoFangManager.kt b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/mofang/MoFangManager.kt new file mode 100644 index 0000000000..e32531ee91 --- /dev/null +++ b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/mofang/MoFangManager.kt @@ -0,0 +1,119 @@ +package com.zhjt.mogo_core_function_devatools.mofang + +import android.annotation.SuppressLint +import android.bluetooth.BluetoothAdapter +import android.bluetooth.BluetoothDevice +import android.content.BroadcastReceiver +import android.content.Context +import android.content.Intent +import android.content.IntentFilter +import com.mogo.eagle.core.data.mofang.MfConstants +import com.mogo.eagle.core.function.call.hmi.CallerHmiManager.updateMfStatusView +import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger +import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_F +import com.mogo.eagle.core.utilcode.mogo.storage.SharedPrefsMgr + + +/** + * 魔方连接状态和设备管理 + */ +@SuppressLint("StaticFieldLeak") +class MoFangManager private constructor() { + + companion object { + val INSTANCE: MoFangManager by lazy(mode = LazyThreadSafetyMode.SYNCHRONIZED) { + MoFangManager() + } + } + + private var mContext: Context? = null + private val TAG = "MoFangManager" + private lateinit var mBluetoothAdapter: BluetoothAdapter + private var isMfConnect: Boolean = false //添加状态判断 + + + fun init(context: Context) { + mContext = context + initBluetooth(context) + mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter() + if (!mBluetoothAdapter.isEnabled) { + mBluetoothAdapter.enable() + } + mBluetoothAdapter.startDiscovery() + showBondedDevice(mBluetoothAdapter) + } + + /** + * 初始化蓝牙广播 + */ + private fun initBluetooth(context: Context) { + val intentFilter = IntentFilter(); + // 监视蓝牙关闭和打开的状态 + intentFilter.addAction(BluetoothAdapter.ACTION_STATE_CHANGED) + // 监视蓝牙设备与APP连接的状态 + intentFilter.addAction(BluetoothDevice.ACTION_ACL_DISCONNECTED) + intentFilter.addAction(BluetoothDevice.ACTION_ACL_CONNECTED) + // 注册广播 + context.registerReceiver(bluetoothMonitorReceiver, intentFilter) + } + + /** + * 查找蓝牙连接过的蓝牙设备 + */ + private fun showBondedDevice(bluetoothAdapter: BluetoothAdapter) { + if (bluetoothAdapter != null) { + val deviceList = bluetoothAdapter.bondedDevices + for (device in deviceList) { + try { + //使用反射调用获取设备连接状态方 + val isConnectedMethod = BluetoothDevice::class.java.getDeclaredMethod("isConnected") + isConnectedMethod.isAccessible = true + val isConnected = isConnectedMethod.invoke(device) as Boolean + CallerLogger.d("$M_F${TAG}"," showBondedDevice name = ${device.name} ---address = ${device.address}----isMfConnect = $isMfConnect ---isConnected = $isConnected") + if (device.name == "MINI_KEYBOARD") { //并且连接 + mContext?.let { SharedPrefsMgr.getInstance(it).putString(MfConstants.BLUETOOTH_NAME, device.name) } + } + + mContext?.let { SharedPrefsMgr.getInstance(it).putBoolean(MfConstants.BLUETOOTH_STATUS, isConnected) } + if (isConnected) { + isMfConnect = true + } + } catch (e: NoSuchMethodException) { + e.printStackTrace() + } + } + } + } + + + private val bluetoothMonitorReceiver: BroadcastReceiver = object : BroadcastReceiver() { + override fun onReceive(context: Context, intent: Intent) { + when (intent.action) { + BluetoothAdapter.ACTION_STATE_CHANGED -> { //中间状态 + CallerLogger.d("$M_F${TAG}","bluetoothMonitorReceiver ACTION_STATE_CHANGED action = ${intent.action}") + } + + BluetoothDevice.ACTION_ACL_CONNECTED -> { //蓝牙设备已连接 + if (!isMfConnect) { +// showBondedDevice(mBluetoothAdapter) + updateMfStatusView(TAG, true) + isMfConnect = true + mContext?.let { SharedPrefsMgr.getInstance(it).putBoolean(MfConstants.BLUETOOTH_STATUS, true) } + } + CallerLogger.d("$M_F${TAG}","bluetoothMonitorReceiver ACTION_ACL_CONNECTED ----- isMfConnect = $isMfConnect") + } + + BluetoothDevice.ACTION_ACL_DISCONNECTED -> { //蓝牙设备已断开 主动更新 + CallerLogger.d("$M_F${TAG}","bluetoothMonitorReceiver ACTION_ACL_DISCONNECTED ----- isMfConnect = $isMfConnect ") + if (isMfConnect) { + updateMfStatusView(TAG, false) + isMfConnect = false + mContext?.let { SharedPrefsMgr.getInstance(it).putBoolean(MfConstants.BLUETOOTH_STATUS, false) } + } + } + } + } + } + +} + diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/MoGoHmiFragment.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/MoGoHmiFragment.kt index b18902c002..4ea178bc6d 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/MoGoHmiFragment.kt +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/MoGoHmiFragment.kt @@ -237,7 +237,7 @@ class MoGoHmiFragment : MvpFragment(), if (CallerAutoPilotStatusListenerManager.getAutoPilotStatusInfo().autopilotControlParameters == null) { FunctionBuildConfig.isDemoMode = !FunctionBuildConfig.isDemoMode context?.let { - CallerHmiManager.updateStatusBarRightView( + CallerHmiManager.updateStatusBarLeftView( FunctionBuildConfig.isDemoMode, "demoMode", DemoModeView(it) @@ -455,10 +455,18 @@ class MoGoHmiFragment : MvpFragment(), statusBarView?.updateRightView(insert, tag, viewGroup) } + override fun updateStatusBarLeftView(insert: Boolean, tag: String, viewGroup: ViewGroup) { + statusBarView?.updateLeftView(insert, tag, viewGroup) + } + override fun updateStatusBarDownloadView(insert: Boolean, tag: String, progress: Int) { statusBarView?.updateProgressView(insert, tag, progress) } + override fun updateMfStatus(tag: String, status: Boolean) { + statusBarView?.updateMfStatus(tag, status) + } + override fun updateDriverMsgBoxTipView(show: Boolean) { if(show){ MsgBoxTipView.visibility = View.VISIBLE diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/msgbox/DriverMsgBoxListView.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/msgbox/DriverMsgBoxListView.kt index 554403778b..e12cd90b18 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/msgbox/DriverMsgBoxListView.kt +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/msgbox/DriverMsgBoxListView.kt @@ -22,6 +22,9 @@ import com.mogo.eagle.core.utilcode.mogo.AppIdentityModeUtils import com.mogo.eagle.core.utilcode.util.TimeUtils import com.mogo.eagle.core.utilcode.util.UiThreadHandler import kotlinx.android.synthetic.main.layout_driver_msg_box_list.view.* +import org.greenrobot.eventbus.EventBus +import org.greenrobot.eventbus.Subscribe +import org.greenrobot.eventbus.ThreadMode /** * @author XuXinChao @@ -186,6 +189,7 @@ class DriverMsgBoxListView @JvmOverloads constructor( super.onAttachedToWindow() if(AppIdentityModeUtils.isDriver(FunctionBuildConfig.appIdentityMode)){ CallerMsgBoxListenerManager.addListener(TAG,this) + EventBus.getDefault().register(this) } } @@ -193,8 +197,16 @@ class DriverMsgBoxListView @JvmOverloads constructor( super.onDetachedFromWindow() if(AppIdentityModeUtils.isDriver(FunctionBuildConfig.appIdentityMode)){ CallerMsgBoxListenerManager.removeListener(TAG) + EventBus.getDefault().unregister(this) } } + @Subscribe(threadMode = ThreadMode.MAIN) + fun notifyList(msgBoxList: MsgBoxBean){ + badCaseList?.let { + it.remove(msgBoxList) + driverMsgBoxListAdapter?.notifyItemRemoved(it.indexOf(msgBoxList)) + } + } } \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/msgbox/adapter/DriverMsgBoxListAdapter.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/msgbox/adapter/DriverMsgBoxListAdapter.kt index 6b6cd3a740..fc5adbc9f1 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/msgbox/adapter/DriverMsgBoxListAdapter.kt +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/msgbox/adapter/DriverMsgBoxListAdapter.kt @@ -2,9 +2,7 @@ package com.mogo.eagle.core.function.hmi.ui.msgbox.adapter import android.annotation.SuppressLint import android.app.Activity -import android.util.Log import android.view.LayoutInflater -import android.view.MenuItem import android.view.View import android.view.ViewGroup import android.widget.ImageView @@ -13,7 +11,6 @@ import androidx.core.view.isVisible import androidx.recyclerview.widget.RecyclerView import com.mogo.eagle.core.data.enums.EventTypeEnum import com.mogo.eagle.core.data.msgbox.* -import com.mogo.eagle.core.data.notice.NoticeNormalData import com.mogo.eagle.core.data.report.ReportEntity import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotManager import com.mogo.eagle.core.function.call.devatools.CallerDevaToolsManager @@ -24,7 +21,6 @@ import com.mogo.eagle.core.utilcode.mogo.glide.transform.GlideRoundedCornersTran import com.mogo.eagle.core.utilcode.util.ResourceUtils.getDrawable import com.mogo.eagle.core.utilcode.util.TimeUtils import com.mogo.eagle.core.utilcode.util.TimeUtils.getHourMinFormat -import com.mogo.eagle.core.widget.RoundConstraintLayout /** * @author XuXinChao @@ -79,7 +75,6 @@ class DriverMsgBoxListAdapter(private val activity: Activity) : RecyclerView.Ada holder.tvBagReceiveTime.text = TimeUtils.millis2String(it[position].timestamp,getHourMinFormat()) holder.tvBagRecordTime.text = "时间:${TimeUtils.millis2String(it[position].timestamp)}" val msgBoxBean = it[position] -// val recordBagMsg = (it[position].bean as RecordBagMsg) holder.tvRecordCheck.setOnClickListener { //打开被动录包弹窗 CallerDevaToolsManager.onReceiveBadCaseRecord(msgBoxBean,activity,false) diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/setting/DebugSettingView.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/setting/DebugSettingView.kt index 32207c1d81..2a0d1868dd 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/setting/DebugSettingView.kt +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/setting/DebugSettingView.kt @@ -586,7 +586,7 @@ class DebugSettingView @JvmOverloads constructor( // 演示模式 tbIsDemoMode.setOnCheckedChangeListener { _, isChecked -> - CallerHmiManager.updateStatusBarRightView(isChecked, "demoMode", DemoModeView(context)) + CallerHmiManager.updateStatusBarLeftView(isChecked, "demoMode", DemoModeView(context)) CallerAutoPilotManager.setDemoMode(isChecked) if (!isChecked) { //关闭美化模式时,通知工控机 diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/setting/SOPSettingView.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/setting/SOPSettingView.kt index 8917b830bb..b3f44f967d 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/setting/SOPSettingView.kt +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/setting/SOPSettingView.kt @@ -19,6 +19,7 @@ import com.mogo.eagle.core.utilcode.mogo.AppIdentityModeUtils import com.mogo.eagle.core.utilcode.util.ToastUtils import com.mogo.eagle.core.function.business.routeoverlay.RouteStrategy import com.mogo.eagle.core.function.hmi.ui.widget.DemoModeView +import kotlinx.android.synthetic.main.view_debug_setting.view.* import kotlinx.android.synthetic.main.view_sop_setting.view.* import kotlinx.android.synthetic.main.view_sop_setting.view.tbRouteDynamicEffect @@ -71,6 +72,28 @@ class SOPSettingView @JvmOverloads constructor( } } + /** + * obu弱势交通控制 + */ + tbObuWeaknessTrafficSop.setOnCheckedChangeListener { _, isChecked -> + if (!isChecked) { //默认开启 + CallerHmiManager.setObuWeaknessTraffic(true) + } else { + CallerHmiManager.setObuWeaknessTraffic(false) + } + } + + /** + * 云端弱势交通控制 + */ + tbCloudWeaknessTrafficSop.setOnCheckedChangeListener { _, isChecked -> + if (isChecked) { //默认关闭 + CallerHmiManager.setCloudWeaknessTraffic(true) + } else { + CallerHmiManager.setCloudWeaknessTraffic(false) + } + } + //红绿灯标识 tbTrafficLight.isChecked = HmiBuildConfig.isShowTrafficLightView tbTrafficLight.setOnCheckedChangeListener { _, isChecked -> @@ -97,7 +120,7 @@ class SOPSettingView @JvmOverloads constructor( tbDemoMode.isChecked = FunctionBuildConfig.isDemoMode // 演示模式 tbDemoMode.setOnCheckedChangeListener { _, isChecked -> - CallerHmiManager.updateStatusBarRightView(isChecked, "demoMode", DemoModeView(context)) + CallerHmiManager.updateStatusBarLeftView(isChecked, "demoMode", DemoModeView(context)) CallerAutoPilotManager.setDemoMode(isChecked) if (!isChecked) { //关闭美化模式时,通知工控机 diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/widget/StatusBarView.kt b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/widget/StatusBarView.kt index d27fe7fc1a..ae89a8489b 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/widget/StatusBarView.kt +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/hmi/ui/widget/StatusBarView.kt @@ -2,12 +2,15 @@ package com.mogo.eagle.core.function.hmi.ui.widget import android.content.Context import android.util.AttributeSet +import android.util.Log import android.view.* import android.widget.* +import com.mogo.eagle.core.data.mofang.MfConstants import com.mogo.eagle.core.function.api.setting.IMoGoSkinModeChangeListener import com.mogo.eagle.core.function.call.devatools.* import com.mogo.eagle.core.function.call.setting.CallerSkinModeListenerManager import com.mogo.eagle.core.function.hmi.R +import com.mogo.eagle.core.utilcode.mogo.storage.SharedPrefsMgr import com.mogo.eagle.core.utilcode.util.BarUtils import com.mogo.eagle.core.utilcode.util.ScreenUtils import kotlinx.android.synthetic.main.view_status_bar.view.* @@ -29,6 +32,7 @@ class StatusBarView @JvmOverloads constructor( } private val rightViewList = CopyOnWriteArrayList() + private val leftViewList = CopyOnWriteArrayList() override fun onAttachedToWindow() { super.onAttachedToWindow() @@ -39,6 +43,11 @@ class StatusBarView @JvmOverloads constructor( // 添加换肤监听 CallerSkinModeListenerManager.addListener(TAG, this) + + var isBluetoothConnect = SharedPrefsMgr.getInstance(context).getBoolean(MfConstants.BLUETOOTH_STATUS, false) + if (isBluetoothConnect) { + updateMfStatus("MoFangManager", true) + } } override fun onSkinModeChange(skinMode: Int) { @@ -70,6 +79,20 @@ class StatusBarView @JvmOverloads constructor( } } + fun updateLeftView(insert: Boolean, tag: String, viewGroup: ViewGroup) { + if (insert) { + leftViewList.add(0, tag) + viewStatusBarLeft.addView(viewGroup, 0) + } else { + leftViewList.forEachIndexed { index, s -> + if (s == tag) { + leftViewList.removeAt(index) + viewStatusBarLeft.removeViewAt(index) + } + } + } + } + fun updateProgressView(insert: Boolean, tag: String, progress: Int) { if (insert) { viewProgressTv.visibility = VISIBLE @@ -81,9 +104,9 @@ class StatusBarView @JvmOverloads constructor( fun updateMfStatus(tag: String, status: Boolean) { if (status) { -// viewMofangStatus.setImageResource(R.drawable.icon_car_red) + viewMofangStatus.setImageResource(R.drawable.icon_bluetooth_p) } else { -// viewMofangStatus.setImageResource(R.drawable.icon_car_red) + viewMofangStatus.setImageResource(R.drawable.blue_tooth) } } diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/main/MainLauncherActivity.java b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/main/MainLauncherActivity.java index 94324cc205..7b1f3b8992 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/main/MainLauncherActivity.java +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/main/MainLauncherActivity.java @@ -3,11 +3,9 @@ package com.mogo.eagle.core.function.main; import static com.mogo.eagle.core.data.deva.chain.ChainConstant.CHAIN_ALIAS_CODE_START_UP; import static com.mogo.eagle.core.data.deva.chain.ChainConstant.CHAIN_LINK_INIT; import static com.mogo.eagle.core.data.deva.chain.ChainConstant.CHAIN_LINK_LOG_CONNECT_STATUS; +import static com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.M_F; import static com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.M_HMI; -import android.bluetooth.BluetoothAdapter; -import android.bluetooth.BluetoothDevice; import android.content.Intent; -import android.content.IntentFilter; import android.os.Bundle; import android.os.Handler; import android.os.Process; @@ -17,17 +15,19 @@ import android.view.KeyEvent; import android.widget.FrameLayout; import androidx.annotation.Nullable; + import com.alibaba.android.arouter.launcher.ARouter; import com.mogo.commons.module.intent.IMogoIntentListener; import com.mogo.commons.module.intent.IntentManager; import com.mogo.eagle.core.data.config.FunctionBuildConfig; +import com.mogo.eagle.core.data.mofang.MfConstants; import com.mogo.eagle.core.function.api.base.IMoGoFunctionProvider; import com.mogo.eagle.core.function.api.setting.IMoGoSkinModeChangeListener; import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotManager; import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListenerManager; +import com.mogo.eagle.core.function.call.hmi.CallerHmiManager; import com.mogo.eagle.core.function.call.setting.CallerSkinModeListenerManager; import com.mogo.eagle.core.function.hmi.R; -import com.mogo.eagle.core.function.main.moujie.BluetoothMonitorReceiver; import com.mogo.eagle.core.utilcode.mogo.AppIdentityModeUtils; import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger; import com.mogo.eagle.core.utilcode.mogo.storage.SharedPrefsMgr; @@ -40,9 +40,7 @@ import com.zhjt.service.chain.TracingConstants; import org.greenrobot.eventbus.EventBus; import org.greenrobot.eventbus.Subscribe; -import java.lang.reflect.Method; import java.util.List; -import java.util.Set; import java.util.Timer; import java.util.TimerTask; @@ -63,8 +61,6 @@ public class MainLauncherActivity extends MainActivity implements IMogoIntentLis private Timer timerHorn; private Timer timerAcc; - private BluetoothMonitorReceiver mBluetoothReceiver = null; - private BluetoothAdapter mBluetoothAdapter; private boolean isShowToast = false; //toast 控制 private long startPressTime = 0; //开始按减时间 private boolean isPressEnd = false; //按键是否结束 @@ -91,14 +87,6 @@ public class MainLauncherActivity extends MainActivity implements IMogoIntentLis @Override protected void onResume() { super.onResume(); - - initBluetooth(); - mBluetoothAdapter = BluetoothAdapter.getDefaultAdapter(); - if (!mBluetoothAdapter.isEnabled()) { - mBluetoothAdapter.enable(); - } - mBluetoothAdapter.startDiscovery(); - showBondedDevice(mBluetoothAdapter); } @Override @@ -126,7 +114,6 @@ public class MainLauncherActivity extends MainActivity implements IMogoIntentLis protected void onPause() { super.onPause(); mIsHomeKeyDown = false; - unregisterReceiver(this.mBluetoothReceiver); } @Override @@ -217,10 +204,10 @@ public class MainLauncherActivity extends MainActivity implements IMogoIntentLis */ @Override public boolean dispatchKeyEvent(KeyEvent event) { -// Log.d(TAG, "dispatchKeyEvent code = " + event.getKeyCode() + "--action = " + event.getAction() + "----" + event); - String bluetoothName = SharedPrefsMgr.getInstance(getContext()).getString("BLUETOOTH"); +// CallerLogger.INSTANCE.d(M_F + "MoFangManager", "dispatchKeyEvent code = " + event.getKeyCode() + "--action = " + event.getAction() + "----" + event); + String bluetoothName = SharedPrefsMgr.getInstance(getContext()).getString(MfConstants.BLUETOOTH_NAME); if (!isPressEnd) { - Log.e(TAG, "dispatchKeyEvent bluetoothName = " + bluetoothName); + CallerLogger.INSTANCE.d(M_F + "MoFangManager","dispatchKeyEvent bluetoothName = " + bluetoothName); } if (bluetoothName.equals("MINI_KEYBOARD")) { if (!isPressEnd) { @@ -231,7 +218,7 @@ public class MainLauncherActivity extends MainActivity implements IMogoIntentLis if (event.getKeyCode() == KeyEvent.KEYCODE_A) { //单击 -1,长按无操作,AB组合-2 if (event.getAction() == KeyEvent.ACTION_DOWN) { pressADownTime = System.currentTimeMillis(); - Log.d(TAG, "dispatchKeyEvent A down pressADownTime = " + pressADownTime + "---" + (pressADownTime - startPressTime) + "----isCombinationKey = " + isCombinationKey + "--pressBDownTime = " + pressBDownTime); + CallerLogger.INSTANCE.d(M_F + "MoFangManager", "dispatchKeyEvent A down pressADownTime = " + pressADownTime + "---" + (pressADownTime - startPressTime) + "----isCombinationKey = " + isCombinationKey + "--pressBDownTime = " + pressBDownTime); if ((pressADownTime - startPressTime) > 320 && (pressADownTime - startPressTime) < 1300 && pressBDownTime > 0) { if (isShowToast) { ToastUtils.showShort("方块 A 按AB组合 -2 "); @@ -250,7 +237,7 @@ public class MainLauncherActivity extends MainActivity implements IMogoIntentLis } } else if (event.getAction() == KeyEvent.ACTION_UP) { pressAUpTime = System.currentTimeMillis(); - Log.e(TAG, "dispatchKeyEvent A up pressAUpTime = " + pressAUpTime + "---" + (pressAUpTime - startPressTime) + "--pressBDownTime = " + pressBDownTime); + CallerLogger.INSTANCE.d(M_F + "MoFangManager", "dispatchKeyEvent A up pressAUpTime = " + pressAUpTime + "---" + (pressAUpTime - startPressTime) + "--pressBDownTime = " + pressBDownTime); if ((pressAUpTime - startPressTime) < 300 && isCombinationKey != 3) { isCombinationKey = 1; if (isShowToast) { @@ -267,12 +254,11 @@ public class MainLauncherActivity extends MainActivity implements IMogoIntentLis } }, 300); } - return true; - } else if (event.getKeyCode() == KeyEvent.KEYCODE_B) {//单击复原,长按+1,AB组合-2 + } else if (event.getKeyCode() == KeyEvent.KEYCODE_B) { //单击复原,长按+1,AB组合-2 if (event.getAction() == KeyEvent.ACTION_DOWN) { pressBDownTime = System.currentTimeMillis(); - Log.d(TAG, "dispatchKeyEvent B down pressBDownTime = " + pressBDownTime + "--差-" + (pressBDownTime - startPressTime) + "---isCombinationKey = " + isCombinationKey + "--pressADownTime = " + pressADownTime); + CallerLogger.INSTANCE.d(M_F + "MoFangManager", "dispatchKeyEvent B down pressBDownTime = " + pressBDownTime + "--差-" + (pressBDownTime - startPressTime) + "---isCombinationKey = " + isCombinationKey + "--pressADownTime = " + pressADownTime); if ((pressBDownTime - startPressTime) > 320 && (pressBDownTime - startPressTime) < 1300 && pressADownTime > 0) { if (isShowToast) { ToastUtils.showShort("方块 B 按AB组合 "); @@ -291,7 +277,7 @@ public class MainLauncherActivity extends MainActivity implements IMogoIntentLis } } else if (event.getAction() == KeyEvent.ACTION_UP) { pressBUpTime = System.currentTimeMillis(); - Log.e(TAG, "dispatchKeyEvent B up pressBUpTime = " + pressBUpTime + "--差-" + (pressBUpTime - startPressTime) + "--pressADownTime = " + pressADownTime); + CallerLogger.INSTANCE.d(M_F + "MoFangManager", "dispatchKeyEvent B up pressBUpTime = " + pressBUpTime + "--差-" + (pressBUpTime - startPressTime) + "--pressADownTime = " + pressADownTime); if ((pressBUpTime - startPressTime) < 300 && isCombinationKey != 3) { if (isShowToast) { ToastUtils.showShort("方块 单击B 0 "); @@ -309,12 +295,12 @@ public class MainLauncherActivity extends MainActivity implements IMogoIntentLis } }, 300); } - return true; } else if (event.getKeyCode() == KeyEvent.KEYCODE_C) { //单击左变道,长按无操作 if (event.getAction() == KeyEvent.ACTION_DOWN) { pressCDownTime = System.currentTimeMillis(); if ((pressCDownTime - startPressTime) > 1320) { + CallerLogger.INSTANCE.d(M_F + "MoFangManager", "dispatchKeyEvent 方块 长按C 无操作 "); if (isShowToast) { ToastUtils.showShort("方块 长按C 无操作 "); } @@ -323,6 +309,7 @@ public class MainLauncherActivity extends MainActivity implements IMogoIntentLis pressCUpTime = System.currentTimeMillis(); isPressEnd = false; if ((pressCUpTime - startPressTime) < 300) { + CallerLogger.INSTANCE.d(M_F + "MoFangManager", "dispatchKeyEvent 方块 单击C ← 向左变道 "); if (isShowToast) { ToastUtils.showShort("方块 单击C ← 向左变道 "); } @@ -334,6 +321,7 @@ public class MainLauncherActivity extends MainActivity implements IMogoIntentLis if (event.getAction() == KeyEvent.ACTION_DOWN) { pressDDownTime = System.currentTimeMillis(); if ((pressDDownTime - startPressTime) > 1320) { + CallerLogger.INSTANCE.d(M_F + "MoFangManager", "dispatchKeyEvent 方块 长按D 无操作 "); if (isShowToast) { ToastUtils.showShort("方块 长按D 无操作 "); } @@ -345,10 +333,10 @@ public class MainLauncherActivity extends MainActivity implements IMogoIntentLis if (isShowToast) { ToastUtils.showShort("方块 单击D → 向右变道 "); } + CallerLogger.INSTANCE.d(M_F + "MoFangManager", "dispatchKeyEvent 方块 单击D → 向右变道 "); CallerAutoPilotManager.INSTANCE.sendOperatorChangeLaneRight(); } } - return true; } else if (event.getKeyCode() == KeyEvent.KEYCODE_E) { //单击启动自驾,长按鸣笛 if (event.getAction() == KeyEvent.ACTION_DOWN) { @@ -357,6 +345,7 @@ public class MainLauncherActivity extends MainActivity implements IMogoIntentLis if (isShowToast) { ToastUtils.showShort("方块 长按E 鸣笛 "); } + CallerLogger.INSTANCE.d(M_F + "MoFangManager", "dispatchKeyEvent 方块 长按E 鸣笛 "); CallerAutoPilotManager.INSTANCE.sendOperatorSetHorn(1); if (timerHorn == null) { timerHorn = new Timer(); @@ -376,20 +365,18 @@ public class MainLauncherActivity extends MainActivity implements IMogoIntentLis if (isShowToast) { ToastUtils.showShort("方块 单击E 开启自动驾驶 "); } + CallerLogger.INSTANCE.d(M_F + "MoFangManager", "dispatchKeyEvent 方块 单击E 开启自动驾驶 "); CallerAutoPilotManager.INSTANCE.startAutoPilot(CallerAutoPilotStatusListenerManager.INSTANCE.getAutoPilotStatusInfo().getAutopilotControlParameters()); } } - return true; } } - return super.dispatchKeyEvent(event); } @Override public void onSkinModeChange(int skinMode) { - } private synchronized void sendAcc(boolean isSend, double acc) { @@ -413,42 +400,4 @@ public class MainLauncherActivity extends MainActivity implements IMogoIntentLis } } - /** - * 初始化蓝牙广播 - */ - private void initBluetooth() { - this.mBluetoothReceiver = new BluetoothMonitorReceiver(); - IntentFilter intentFilter = new IntentFilter(); - // 监视蓝牙关闭和打开的状态 - intentFilter.addAction(BluetoothAdapter.ACTION_STATE_CHANGED); - - // 监视蓝牙设备与APP连接的状态 - intentFilter.addAction(BluetoothDevice.ACTION_ACL_DISCONNECTED); - intentFilter.addAction(BluetoothDevice.ACTION_ACL_CONNECTED); - - // 注册广播 - registerReceiver(this.mBluetoothReceiver, intentFilter); - } - - /** - * 查找蓝牙连接过的蓝牙设备 - */ - private void showBondedDevice(BluetoothAdapter bluetoothAdapter) { - Set deviceList = bluetoothAdapter.getBondedDevices(); - for (BluetoothDevice device : deviceList) { - try { - //使用反射调用获取设备连接状态方法 - Method isConnectedMethod = BluetoothDevice.class.getDeclaredMethod("isConnected", (Class[]) null); - isConnectedMethod.setAccessible(true); -// boolean isConnected = (boolean) isConnectedMethod.invoke(device, (Object[]) null); - Log.d(TAG, "-- device.getName() = " + device.getName()); //device.getAddress() - if (device.getName().equals("MINI_KEYBOARD")) { - SharedPrefsMgr.getInstance(getContext()).putString("BLUETOOTH", device.getName()); - } - } catch (NoSuchMethodException e) { - e.printStackTrace(); - } - } - } - } diff --git a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/main/MainMoGoApplication.java b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/main/MainMoGoApplication.java index 7e5c962fbd..889febb1a4 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/main/MainMoGoApplication.java +++ b/core/function-impl/mogo-core-function-hmi/src/main/java/com/mogo/eagle/core/function/main/MainMoGoApplication.java @@ -43,6 +43,7 @@ import com.zhjt.mogo_core_function_devatools.monitor.db.CpuInfo; import com.zhjt.mogo_core_function_devatools.monitor.db.MemInfo; import com.zhjt.mogo_core_function_devatools.monitor.db.MonitorDb; +import java.io.File; import java.lang.reflect.Field; import java.text.SimpleDateFormat; import java.util.Date; @@ -101,15 +102,25 @@ public abstract class MainMoGoApplication extends AbsMogoApplication { new Thread(() -> { String lastLaunchTimeStr = SPUtils.getInstance().getString("last_launch", ""); SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd"); + Date currDate = new Date(System.currentTimeMillis()); + String currTimeStr = format.format(currDate); if (lastLaunchTimeStr != null && !lastLaunchTimeStr.isEmpty()) { - Date currDate = new Date(System.currentTimeMillis()); - String currTimeStr = format.format(currDate); boolean isSameDay = currTimeStr.equals(lastLaunchTimeStr); // 超过一天需要清除消息盒子中的数据,并把时间戳存入SP if (!isSameDay) { - this.deleteDatabase(MsgBoxDb.INTERNAL_DB_NAME); + File file = this.getDatabasePath(MsgBoxDb.INTERNAL_DB_NAME); + if (file != null && file.exists()) { + this.deleteDatabase(MsgBoxDb.INTERNAL_DB_NAME); + } SPUtils.getInstance().put("last_launch", currTimeStr); } + } else { + // 首次使用App或中途仅删除sp文件 + File file = this.getDatabasePath(MsgBoxDb.INTERNAL_DB_NAME); + if (file != null && file.exists()) { + this.deleteDatabase(MsgBoxDb.INTERNAL_DB_NAME); + } + SPUtils.getInstance().put("last_launch", currTimeStr); } }).start(); } diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/drawable-xhdpi/bg_msg_box.png b/core/function-impl/mogo-core-function-hmi/src/main/res/drawable-xhdpi/bg_msg_box.png index c901f3937b..7bb601b227 100644 Binary files a/core/function-impl/mogo-core-function-hmi/src/main/res/drawable-xhdpi/bg_msg_box.png and b/core/function-impl/mogo-core-function-hmi/src/main/res/drawable-xhdpi/bg_msg_box.png differ diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/drawable/icon_bluetooth_p.png b/core/function-impl/mogo-core-function-hmi/src/main/res/drawable/icon_bluetooth_p.png new file mode 100644 index 0000000000..8220846079 Binary files /dev/null and b/core/function-impl/mogo-core-function-hmi/src/main/res/drawable/icon_bluetooth_p.png differ diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/layout/item_bad_case.xml b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/item_bad_case.xml index 80c1f6b035..12a226d8e9 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/res/layout/item_bad_case.xml +++ b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/item_bad_case.xml @@ -4,13 +4,13 @@ android:layout_width="804px" android:layout_height="160px" xmlns:app="http://schemas.android.com/apk/res-auto" - android:background="#1A2344" + android:background="#53000000" app:roundLayoutRadius="24px" android:layout_gravity="center_horizontal" android:layout_marginStart="30px" android:layout_marginEnd="30px" - android:layout_marginTop="5px" - android:layout_marginBottom="5px" + android:layout_marginTop="7px" + android:layout_marginBottom="7px" android:clickable="true" > @@ -43,7 +43,6 @@ android:layout_height="wrap_content" app:layout_constraintBottom_toBottomOf="@id/ivBadCaseImage" app:layout_constraintLeft_toRightOf="@id/ivBadCaseImage" - android:layout_marginBottom="5px" android:layout_marginStart="25px" android:textColor="#B3FFFFFF" android:textSize="30px" @@ -68,12 +67,10 @@ app:layout_constraintTop_toTopOf="@id/tvBagRecordTime" app:layout_constraintBottom_toBottomOf="@id/tvBagRecordTime" android:paddingEnd="25px" - android:paddingTop="10px" - android:paddingBottom="10px" + android:paddingStart="20px" android:text="查看" android:textColor="#FFFFFFFF" android:textSize="30px" /> - \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/layout/item_msg_box_ipc_report.xml b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/item_msg_box_ipc_report.xml index 24502b6625..2e26a4ebc0 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/res/layout/item_msg_box_ipc_report.xml +++ b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/item_msg_box_ipc_report.xml @@ -3,13 +3,13 @@ android:layout_width="804px" android:layout_height="wrap_content" xmlns:app="http://schemas.android.com/apk/res-auto" - android:background="#1A2344" + android:background="#53000000" app:roundLayoutRadius="24px" android:layout_gravity="center_horizontal" android:layout_marginStart="30px" android:layout_marginEnd="30px" - android:layout_marginTop="5px" - android:layout_marginBottom="5px" + android:layout_marginTop="7px" + android:layout_marginBottom="7px" > @@ -45,6 +45,7 @@ android:textColor="#B3FFFFFF" android:textSize="28px" android:layout_marginTop="5px" + android:lineSpacingMultiplier="1.2" /> @@ -126,9 +129,10 @@ android:layout_height="wrap_content" app:layout_constraintTop_toBottomOf="@id/ivReportImageOpen" app:layout_constraintLeft_toLeftOf="@id/ivReportImageOpen" - android:layout_marginTop="5px" + android:layout_marginTop="10px" android:textColor="#B3FFFFFF" android:textSize="28px" + android:lineSpacingMultiplier="1.2" android:visibility="gone" /> @@ -138,9 +142,9 @@ android:layout_height="wrap_content" app:layout_constraintTop_toBottomOf="@id/tvReportTimeOpen" app:layout_constraintLeft_toLeftOf="@id/tvReportTimeOpen" - android:layout_marginTop="5px" android:textColor="#B3FFFFFF" android:textSize="28px" + android:lineSpacingMultiplier="1.2" android:visibility="gone" /> @@ -152,9 +156,9 @@ app:layout_constraintLeft_toLeftOf="@id/tvReportTypeOpen" app:layout_constraintRight_toRightOf="@id/tvStatusSelect" android:gravity="start" - android:layout_marginTop="5px" android:textColor="#B3FFFFFF" android:textSize="28px" + android:lineSpacingMultiplier="1.2" android:visibility="gone" /> @@ -166,10 +170,10 @@ app:layout_constraintLeft_toLeftOf="@id/tvReportReasonOpen" app:layout_constraintRight_toRightOf="@id/tvStatusSelect" app:layout_constraintBottom_toBottomOf="parent" - android:layout_marginTop="5px" - android:layout_marginBottom="10px" + android:layout_marginBottom="15px" android:textColor="#B3FFFFFF" android:textSize="28px" + android:lineSpacingMultiplier="1.2" android:visibility="gone" /> diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/layout/item_msg_box_notice.xml b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/item_msg_box_notice.xml index 01f7a31bb5..38b8988e07 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/res/layout/item_msg_box_notice.xml +++ b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/item_msg_box_notice.xml @@ -3,13 +3,13 @@ android:layout_width="804px" android:layout_height="160px" xmlns:app="http://schemas.android.com/apk/res-auto" - android:background="#1A2344" + android:background="#53000000" app:roundLayoutRadius="24px" android:layout_gravity="center_horizontal" android:layout_marginStart="30px" android:layout_marginEnd="30px" - android:layout_marginTop="5px" - android:layout_marginBottom="5px" + android:layout_marginTop="7px" + android:layout_marginBottom="7px" > @@ -122,6 +124,7 @@ android:gravity="start" android:layout_marginTop="10px" android:layout_marginBottom="15px" + android:lineSpacingMultiplier="1.2" android:textColor="#B3FFFFFF" android:textSize="28px" android:visibility="gone" diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/layout/item_msg_box_v2x.xml b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/item_msg_box_v2x.xml index 25a3830336..808e8e2396 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/res/layout/item_msg_box_v2x.xml +++ b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/item_msg_box_v2x.xml @@ -3,13 +3,13 @@ android:layout_width="804px" android:layout_height="160px" xmlns:app="http://schemas.android.com/apk/res-auto" - android:background="#1A2344" + android:background="#53000000" app:roundLayoutRadius="24px" android:layout_gravity="center_horizontal" android:layout_marginStart="30px" android:layout_marginEnd="30px" - android:layout_marginTop="5px" - android:layout_marginBottom="5px"> + android:layout_marginTop="7px" + android:layout_marginBottom="7px"> + android:layout_marginTop="7px" + android:layout_marginBottom="7px"> \ No newline at end of file diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/layout/item_msg_bubble_report.xml b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/item_msg_bubble_report.xml index 0b83bbd4c6..7735a7139c 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/res/layout/item_msg_bubble_report.xml +++ b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/item_msg_bubble_report.xml @@ -3,13 +3,13 @@ android:layout_width="804px" android:layout_height="160px" xmlns:app="http://schemas.android.com/apk/res-auto" - android:background="#1A2344" + android:background="#53000000" app:roundLayoutRadius="24px" android:layout_gravity="center_horizontal" android:layout_marginStart="30px" android:layout_marginEnd="30px" - android:layout_marginTop="5px" - android:layout_marginBottom="5px" + android:layout_marginTop="7px" + android:layout_marginBottom="7px" > diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/layout/view_sop_setting.xml b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/view_sop_setting.xml index a77286ff33..5546db154c 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/res/layout/view_sop_setting.xml +++ b/core/function-impl/mogo-core-function-hmi/src/main/res/layout/view_sop_setting.xml @@ -129,6 +129,30 @@ app:layout_constraintTop_toBottomOf="@id/tbRainMode" /> + + + + + android:layout_marginStart="@dimen/dp_8" /> + + ") + CallerLogger.d("$M_OBU${MogoObuConst.TAG_MOGO_NEW_OBU}", "onConnectFail ------> ") mObuStatusInfo.obuStatus = false mObuStatusInfo.obuHvStatus = false mObuStatusInfo.obuRvStatus = false @@ -102,7 +101,7 @@ class MogoPrivateObuNewManager private constructor() { mContext?.let { SharedPrefsMgr.getInstance(it).putBoolean("OBU_HV", false) } mContext?.let { SharedPrefsMgr.getInstance(it).putBoolean("OBU_RV", false) } } else if (connectStatus == 1) { //连接成功 - CallerLogger.d("$M_OBU${MogoObuConst.TAG_MOGO_OBU}", "onConnected ------> ") + CallerLogger.d("$M_OBU${MogoObuConst.TAG_MOGO_NEW_OBU}", "onConnected ------> ") mObuStatusInfo.obuStatus = true CallerObuListenerManager.invokeListener(mObuStatusInfo) mContext?.let { SharedPrefsMgr.getInstance(it).putBoolean("OBU", true) } @@ -125,7 +124,7 @@ class MogoPrivateObuNewManager private constructor() { if (p0 != null && p0.vehBasicsMsg != null) { CallerLogger.d( - "$M_OBU${MogoObuConst.TAG_MOGO_OBU}", + "$M_OBU${MogoObuConst.TAG_MOGO_NEW_OBU}", "onMogoObuHvBasics lon = ${p0.vehBasicsMsg.longitude} --- lat = ${p0.vehBasicsMsg.latitude} ---speed = ${p0.vehBasicsMsg.speed} ---heading = ${p0.vehBasicsMsg.heading} --acceleration = ${p0.vehBasicsMsg.accFourAxes.accLat} --yawRate = ${p0.vehBasicsMsg.accFourAxes.accYaw}" ) val data = JSONObject() @@ -179,7 +178,7 @@ class MogoPrivateObuNewManager private constructor() { CallerMapUIServiceManager.getMarkerService()?.updateITrafficLocationInfo(it) } - CallerLogger.d("$M_OBU${MogoObuConst.TAG_MOGO_OBU}", data.toString()) + CallerLogger.d("$M_OBU${MogoObuConst.TAG_MOGO_NEW_OBU}", data.toString()) data.let { //预警信息,预警类型 threat_level 2、3 var status = data.status @@ -197,7 +196,7 @@ class MogoPrivateObuNewManager private constructor() { } CallerLogger.d( - "$M_OBU${MogoObuConst.TAG_MOGO_OBU}", + "$M_OBU${MogoObuConst.TAG_MOGO_NEW_OBU}", "onMogoObuRvWarning target_classification = ${ getMessageDirection(data.vehBasicsMsg.targetPosition) } --- direction = $direction --- appId = $appId ---level = $level -- status = $status" @@ -233,7 +232,7 @@ class MogoPrivateObuNewManager private constructor() { override fun onMogoObuRsiWarning(data: MogoObuRsiWarningData) { super.onMogoObuRsiWarning(data) CallerLogger.d( - "$M_OBU${MogoObuConst.TAG_MOGO_OBU}", + "$M_OBU${MogoObuConst.TAG_MOGO_NEW_OBU}", "onMogoObuRsiWarning ------> $data" ) if (data != null && data.warningMsg != null && data.warningMsg.size > 0) { @@ -244,7 +243,7 @@ class MogoPrivateObuNewManager private constructor() { val level = data.warningMsg[0].warningLevel val direction = getMessageDirection(data.warningMsg[0].targetPosition) CallerLogger.d( - "$M_OBU${MogoObuConst.TAG_MOGO_OBU}", + "$M_OBU${MogoObuConst.TAG_MOGO_NEW_OBU}", "onCvxRtiThreatIndInfo appId = $appId --status = $status --level = $level -- eventSerialNum = ${data.warningMsg[0].eventSerialNum} ---signSerialNum = ${data.warningMsg[0].signSerialNum} --- direction = $direction -- targetPosition = ${data.warningMsg[0].targetPosition}" ) @@ -400,7 +399,7 @@ class MogoPrivateObuNewManager private constructor() { } CallerLogger.d( - "$M_OBU${MogoObuConst.TAG_MOGO_OBU}", + "$M_OBU${MogoObuConst.TAG_MOGO_NEW_OBU}", "ttsContent = $ttsContent --alertContent = $alertContent --appId = $appId ---direction = ${direction.direction} --distance = ${Math.round(data.warningMsg[0].distance)} ---eventRadius = ${Math.round(data.warningMsg[0].eventRadius)} --speedMaxLimit = ${data.warningMsg[0].speedMaxLimit.toInt()}" ) when (status) { @@ -476,7 +475,7 @@ class MogoPrivateObuNewManager private constructor() { super.onMogoObuRsmWarning(data) if (HmiBuildConfig.isShowObuWeaknessTrafficView) { CallerLogger.d( - "$M_OBU${MogoObuConst.TAG_MOGO_OBU}", + "$M_OBU${MogoObuConst.TAG_MOGO_NEW_OBU}", "onMogoObuRsmWarning ------> ${data.toString()}" ) // 交通参与者类型 0x0:未知 UNKNOWN | 1机动车 2:非机动车 NON_MOTOR | 3:行人 PEDESTRIAN 4:obu @@ -501,7 +500,7 @@ class MogoPrivateObuNewManager private constructor() { val direction = getMessageDirection(data.participant.targetPosition) if (data.warningMsg != null && data.warningMsg.warningData != null && data.warningMsg.warningData.size > 0) { level = data.warningMsg.warningData[0].warningLevel //默认是1个 - CallerLogger.d("$M_OBU${TAG_MOGO_OBU}", + CallerLogger.d("$M_OBU${MogoObuConst.TAG_MOGO_NEW_OBU}", "onMogoObuRsmWarning ---status---> ${data.status} ---data.warningMsg.warningData[0].status = ${data.warningMsg.warningData[0].status}" ) @@ -540,7 +539,7 @@ class MogoPrivateObuNewManager private constructor() { // 更新数据 TrafficDataConvertUtilsNew.cvxPtcThreatIndInfo2TrafficData(data)?.let { - CallerLogger.d("$M_OBU${TAG_MOGO_OBU}", "add cvxPtcThreatIndInfo2TrafficData ---it---> $it") + CallerLogger.d("$M_OBU${MogoObuConst.TAG_MOGO_NEW_OBU}", "add cvxPtcThreatIndInfo2TrafficData ---it---> $it") CallerMapUIServiceManager.getMarkerService() ?.updateITrafficThreatLevelInfo(it) } @@ -579,7 +578,7 @@ class MogoPrivateObuNewManager private constructor() { if(isShowObuLimitSpeedView) { //默认显示obu的限速 if (data != null) { CallerLogger.d( - "$M_OBU${TAG_MOGO_OBU}", + "$M_OBU${MogoObuConst.TAG_MOGO_NEW_OBU}", "onMogoObuMapMathstatus = ${data.status} --speedMaxLimit = ${Math.round((data.speedMaxLimit*3.6))}") when (data.status) { MogoObuConstants.STATUS.ADD -> { // 添加 @@ -610,7 +609,7 @@ class MogoPrivateObuNewManager private constructor() { * 获取消息的方位 车辆相关 */ private fun getMessageDirection(targetClassification: Int): WarningDirectionEnum { -// CallerLogger.d("$M_OBU${TAG_MOGO_OBU}", "预警红边:预警方向->$targetClassification") +// CallerLogger.d("$M_OBU${TAG_MOGO_NEW_OBU}", "预警红边:预警方向->$targetClassification") return when (targetClassification) { MogoObuConstants.VEH_TARGET_POSITION.AHEAD_IN_LANE, MogoObuConstants.VEH_TARGET_POSITION.ONCOMING_IN_LANE -> WarningDirectionEnum.ALERT_WARNING_TOP //正前方 @@ -656,7 +655,7 @@ class MogoPrivateObuNewManager private constructor() { ) { // 这里排除需要特殊定制的语音及文案外,其余的都可以使用 EventTypeEnumNew 提供的 CallerLogger.d( - "$M_OBU${MogoObuConst.TAG_MOGO_OBU}", + "$M_OBU${MogoObuConst.TAG_MOGO_NEW_OBU}", "handleSdkObu appId = $appId --- handleDirection = $direction ---level = $level ---status = $status" ) @@ -735,7 +734,7 @@ class MogoPrivateObuNewManager private constructor() { MogoObuConstants.STATUS.ADD, MogoObuConstants.STATUS.UPDATE -> { CallerLogger.d( - "$M_OBU${MogoObuConst.TAG_MOGO_OBU}", + "$M_OBU${MogoObuConst.TAG_MOGO_NEW_OBU}", "appId2 = $appId --- level = $level ---ttsContent = $ttsContent --- alertContent = $alertContent --- direction = $direction" ) if (level == 2 || level == 3) { @@ -804,7 +803,7 @@ class MogoPrivateObuNewManager private constructor() { */ private fun handlerTrafficLight(appId: Int, status: Int, lights: List) { CallerLogger.d( - "$M_OBU${MogoObuConst.TAG_MOGO_OBU}", + "$M_OBU${MogoObuConst.TAG_MOGO_NEW_OBU}", "handlerTrafficLight --- status = $status ---lights.size = ${lights.size} ---lights = $lights ---appId = $appId" ) when (status) { @@ -839,7 +838,7 @@ class MogoPrivateObuNewManager private constructor() { //这里需要根据真实数据确定 index 取值方式 val currentLight = lights[0] CallerLogger.d( - "$M_OBU${TAG_MOGO_OBU}", + "$M_OBU${MogoObuConst.TAG_MOGO_NEW_OBU}", "currentLight = $currentLight ---currentLight.phase = ${currentLight.phaseId} ---appId = $appId" ) // 闯红灯预警,绿波通行和闯红灯是互斥的 @@ -849,7 +848,7 @@ class MogoPrivateObuNewManager private constructor() { } 0x1 -> {//闯红灯 V2I_RLVW_VIOLATION_TYPE_RUNNING_RED_LIGHT TODO 需要约束一个红灯周期只显示一次 // CallerHmiManager.disableWarningV2X(0x2.toString()) -// CallerLogger.d("$M_OBU${TAG_MOGO_OBU}","changeTrafficLightStatus 闯红灯 --------> ") +// CallerLogger.d("$M_OBU${MogoObuConst.TAG_MOGO_NEW_OBU}","changeTrafficLightStatus 闯红灯 --------> ") // ttsContent = EventTypeEnumTrafficLight.getWarningTts(appId.toString()) // alertContent = EventTypeEnumTrafficLight.getWarningContent(appId.toString()) // CallerHmiManager.warningV2X( @@ -860,7 +859,7 @@ class MogoPrivateObuNewManager private constructor() { 0x2 -> { //绿波通行引导 V2I_RLVW_VIOLATION_TYPE_NO_VIOLATION TODO 需要约束一个绿灯周期只显示一次 // CallerHmiManager.disableWarningV2X(0x1.toString()) // CallerLogger.d( -// "$M_OBU${TAG_MOGO_OBU}", +// "$M_OBU${MogoObuConst.TAG_MOGO_NEW_OBU}", // "speed_min = ${currentLight.suggestMinSpeed} --speed_max = ${currentLight.suggestMaxSpeed}" // ) // val adviceSpeed = diff --git a/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/mofang/MfConstants.kt b/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/mofang/MfConstants.kt new file mode 100644 index 0000000000..d2c4bb0ef0 --- /dev/null +++ b/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/mofang/MfConstants.kt @@ -0,0 +1,19 @@ +package com.mogo.eagle.core.data.mofang + +/** + * @author lixiaopeng + * @date 2021/12/7 + * + */ +object MfConstants { + // 蓝牙名称 + const val BLUETOOTH_NAME = "BLUETOOTH_NAME" + + // 蓝牙 ADDRESS + const val BLUETOOTH_ADDRESS = "BLUETOOTH_ADDRESS" + + //蓝牙连接状态 + const val BLUETOOTH_STATUS = "BLUETOOTH_STATUS" + + +} \ No newline at end of file diff --git a/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/hmi/warning/IMoGoWaringProvider.kt b/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/hmi/warning/IMoGoWaringProvider.kt index a2ee096f68..c56983d24c 100644 --- a/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/hmi/warning/IMoGoWaringProvider.kt +++ b/core/mogo-core-function-api/src/main/java/com/mogo/eagle/core/function/api/hmi/warning/IMoGoWaringProvider.kt @@ -296,6 +296,11 @@ interface IMoGoWaringProvider : IMoGoHmiViewProxy { */ fun updateStatusBarRightView(insert: Boolean, tag: String, viewGroup: ViewGroup) + /** + * 更新(添加/删除)状态栏左侧元素 + */ + fun updateStatusBarLeftView(insert: Boolean, tag: String, viewGroup: ViewGroup) + /** * 设置司机端消息盒子是否展示 */ @@ -310,4 +315,10 @@ interface IMoGoWaringProvider : IMoGoHmiViewProxy { * 更新(添加/删除)下载进度 */ fun updateStatusBarDownloadView(insert: Boolean, tag: String, progress: Int) + + /** + * 更新魔方的连接状态 + */ + fun updateMfStatus(tag: String, status: Boolean) + } \ No newline at end of file diff --git a/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/hmi/CallerHmiManager.kt b/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/hmi/CallerHmiManager.kt index 68054d3207..93429c52c0 100644 --- a/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/hmi/CallerHmiManager.kt +++ b/core/mogo-core-function-call/src/main/java/com/mogo/eagle/core/function/call/hmi/CallerHmiManager.kt @@ -475,6 +475,13 @@ object CallerHmiManager : CallerBase() { waringProviderApi?.updateStatusBarRightView(insert, tag, viewGroup) } + /** + * 更新(添加/删除)状态栏左侧元素 + */ + fun updateStatusBarLeftView(insert: Boolean, tag: String, viewGroup: ViewGroup) { + waringProviderApi?.updateStatusBarLeftView(insert, tag, viewGroup) + } + /** * 设置司机端消息盒子是否展示 */ @@ -488,6 +495,7 @@ object CallerHmiManager : CallerBase() { fun updatePassengerMsgBoxTipView(show: Boolean = false){ waringProviderApi?.updatePassengerMsgBoxTipView(show) } + /** * 更新(添加/删除)状态栏右侧元素 */ @@ -495,5 +503,13 @@ object CallerHmiManager : CallerBase() { waringProviderApi?.updateStatusBarDownloadView(insert, tag, progress) } + /** + * 更新魔方的链接状态 + */ + fun updateMfStatusView(tag: String, status: Boolean) { + waringProviderApi?.updateMfStatus(tag, status) + } + + } \ No newline at end of file diff --git a/core/mogo-core-utils/src/main/java/com/mogo/eagle/core/utilcode/mogo/logger/scene/SceneConstant.kt b/core/mogo-core-utils/src/main/java/com/mogo/eagle/core/utilcode/mogo/logger/scene/SceneConstant.kt index 74cf076347..eea493fc91 100644 --- a/core/mogo-core-utils/src/main/java/com/mogo/eagle/core/utilcode/mogo/logger/scene/SceneConstant.kt +++ b/core/mogo-core-utils/src/main/java/com/mogo/eagle/core/utilcode/mogo/logger/scene/SceneConstant.kt @@ -24,6 +24,7 @@ class SceneConstant { const val M_NOTICE = "M_NOTICE-" const val M_OBU = "M_OBU-" const val M_V2X = "M_V2X-" + const val M_F = "M_F-" //旧module const val M_OLD_ROUTE = "M_OLD_ROUTE-" diff --git a/core/mogo-core-utils/src/main/java/com/mogo/eagle/core/utilcode/util/PermissionUtils.java b/core/mogo-core-utils/src/main/java/com/mogo/eagle/core/utilcode/util/PermissionUtils.java index 229b6dd5f8..5998a82b72 100755 --- a/core/mogo-core-utils/src/main/java/com/mogo/eagle/core/utilcode/util/PermissionUtils.java +++ b/core/mogo-core-utils/src/main/java/com/mogo/eagle/core/utilcode/util/PermissionUtils.java @@ -499,10 +499,7 @@ public final class PermissionUtils { } else if (type == TYPE_DRAW_OVERLAYS) { currentRequestCode = TYPE_DRAW_OVERLAYS; startOverlayPermissionActivity(activity, TYPE_DRAW_OVERLAYS); - } else if (type == TYPE_ACCESS_FINE_LOCATION) { - currentRequestCode = TYPE_ACCESS_FINE_LOCATION; - startOverlayPermissionActivity(activity, TYPE_ACCESS_FINE_LOCATION); - } else { + } else { activity.finish(); Log.e("PermissionUtils", "type is wrong."); }