diff --git a/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/presenter/BusPassengerCarUseAndNoOrderPresenter.kt b/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/presenter/BusPassengerCarUseAndNoOrderPresenter.kt index 4061a63b90..66e05e80b9 100644 --- a/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/presenter/BusPassengerCarUseAndNoOrderPresenter.kt +++ b/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/presenter/BusPassengerCarUseAndNoOrderPresenter.kt @@ -1,13 +1,6 @@ package com.mogo.och.bus.passenger.presenter -import androidx.lifecycle.LifecycleOwner -import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotControlManager -import com.mogo.eagle.core.utilcode.util.ToastUtils -import com.mogo.och.bus.passenger.model.CharterPassengerModel -import com.mogo.och.bus.passenger.ui.M1CarUserNoOrderFragment -import com.mogo.och.common.module.manager.devicemanage.LightAirconditionDoorCallback -import com.mogo.och.common.module.manager.devicemanage.LightAirconditionDoorStatusManager -import io.reactivex.disposables.Disposable +import com.mogo.och.bus.passenger.ui.dialogfragment.M1CarUserNoOrderFragment class BusPassengerCarUseAndNoOrderPresenter(view: M1CarUserNoOrderFragment?) : BusBasePassengerFunctionDevicePresenter(view){ diff --git a/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/presenter/BusPassengerFunctionDevicePresenter.kt b/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/presenter/BusPassengerFunctionDevicePresenter.kt deleted file mode 100644 index 86dbf5b2f5..0000000000 --- a/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/presenter/BusPassengerFunctionDevicePresenter.kt +++ /dev/null @@ -1,29 +0,0 @@ -package com.mogo.och.bus.passenger.presenter - -import androidx.lifecycle.LifecycleOwner -import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotStatusListener -import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotControlManager -import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListenerManager -import com.mogo.eagle.core.utilcode.util.ToastUtils -import com.mogo.och.bus.passenger.model.CharterPassengerModel -import com.mogo.och.bus.passenger.ui.M1DeviceFragment -import com.mogo.och.common.module.manager.devicemanage.LightAirconditionDoorCallback -import com.mogo.och.common.module.manager.devicemanage.LightAirconditionDoorStatusManager -import io.reactivex.disposables.Disposable - -class BusPassengerFunctionDevicePresenter(view: M1DeviceFragment?) : - BusBasePassengerFunctionDevicePresenter(view) { - - companion object { - private const val TAG = "BusPassengerFunctionDevicePresenter" - } - - override fun onCreate(owner: LifecycleOwner) { - super.onCreate(owner) - } - - override fun onDestroy(owner: LifecycleOwner) { - super.onDestroy(owner) - } - -} \ No newline at end of file diff --git a/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/presenter/BusPassengerFunctionOrderPresenter.kt b/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/presenter/BusPassengerFunctionOrderPresenter.kt index e2dbba7242..49abda3a8d 100644 --- a/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/presenter/BusPassengerFunctionOrderPresenter.kt +++ b/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/presenter/BusPassengerFunctionOrderPresenter.kt @@ -21,7 +21,7 @@ import com.mogo.och.bus.passenger.model.IOrderStatusChangeListener import com.mogo.och.bus.passenger.model.OrderStatusEnum import com.mogo.och.bus.passenger.net.BusPassengerModelLoopManager import com.mogo.och.bus.passenger.net.BusPassengerServiceManager -import com.mogo.och.bus.passenger.ui.M1OrderFragment +import com.mogo.och.bus.passenger.ui.dialogfragment.fragment.M1OrderLineFragment import com.mogo.och.common.module.bean.dpmsg.ChangeDestMsg import com.mogo.och.common.module.bean.dpmsg.DPMsgType import com.mogo.och.common.module.biz.constant.OchCommonConst @@ -30,8 +30,8 @@ import com.mogo.och.common.module.manager.OCHPlanningStopSideStatusManager import com.mogo.och.common.module.utils.RxUtils import io.reactivex.disposables.Disposable -class BusPassengerFunctionOrderPresenter(view: M1OrderFragment?) : - BusBasePassengerFunctionDevicePresenter(view), IOrderStatusChangeListener { +class BusPassengerFunctionOrderPresenter(view: M1OrderLineFragment?) : + BusBasePassengerFunctionDevicePresenter(view), IOrderStatusChangeListener { companion object{ @@ -277,7 +277,9 @@ class BusPassengerFunctionOrderPresenter(view: M1OrderFragment?) : "", 0, "", - false + false, + 1, + 0 ) CallerTelematicManager.sendMsgToServer( OchCommonConst.BUSINESS_STRING, @@ -316,7 +318,9 @@ class BusPassengerFunctionOrderPresenter(view: M1OrderFragment?) : currentSite!!.siteName!!, siteInfo.siteId!!.toInt(), siteInfo.siteName!!, - false + false, + 1, + 0, ) CallerTelematicManager.sendMsgToServer( OchCommonConst.BUSINESS_STRING, @@ -347,7 +351,9 @@ class BusPassengerFunctionOrderPresenter(view: M1OrderFragment?) : currentSite!!.siteName!!, siteInfo.siteId!!.toInt(), siteInfo.siteName!!, - false + false, + 1, + 0 ) CallerTelematicManager.sendMsgToServer( OchCommonConst.BUSINESS_STRING, diff --git a/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/presenter/BusPassengerFunctionPresenter.kt b/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/presenter/BusPassengerFunctionPresenter.kt index 641a48e3cd..099d83d721 100644 --- a/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/presenter/BusPassengerFunctionPresenter.kt +++ b/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/presenter/BusPassengerFunctionPresenter.kt @@ -1,13 +1,7 @@ package com.mogo.och.bus.passenger.presenter import androidx.lifecycle.LifecycleOwner -import com.mogo.commons.voice.AIAssist -import com.mogo.eagle.core.utilcode.util.ToastUtils -import com.mogo.eagle.core.utilcode.util.UiThreadHandler -import com.mogo.och.bus.passenger.R -import com.mogo.och.bus.passenger.ui.M1ContainFragment -import com.mogo.och.common.module.manager.OCHPlanningStopSideStatusManager -import com.mogo.och.common.module.voice.VoiceNotice +import com.mogo.och.bus.passenger.ui.dialogfragment.M1ContainFragment class BusPassengerFunctionPresenter(view: M1ContainFragment?) : BusBasePassengerFunctionDevicePresenter(view) { diff --git a/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/presenter/BusPassengerFunctionSoftPresenter.kt b/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/presenter/BusPassengerFunctionSoftPresenter.kt index 44fbc001b9..f04d7e5362 100644 --- a/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/presenter/BusPassengerFunctionSoftPresenter.kt +++ b/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/presenter/BusPassengerFunctionSoftPresenter.kt @@ -6,7 +6,7 @@ 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.ToastUtils import com.mogo.eagle.core.utilcode.util.UiThreadHandler -import com.mogo.och.bus.passenger.ui.M1SoftFragment +import com.mogo.och.bus.passenger.ui.dialogfragment.fragment.M1SoftFragment import com.mogo.och.common.module.manager.devicemanage.LightAirconditionDoorCallback import com.mogo.och.common.module.manager.devicemanage.LightAirconditionDoorStatusManager import com.mogo.och.common.module.manager.devicemanage.data.AirconditionStatus diff --git a/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/presenter/BusPassengerFunctionVideoPresenter.kt b/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/presenter/BusPassengerFunctionVideoPresenter.kt index 16fccdb1d8..cdc59f1886 100644 --- a/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/presenter/BusPassengerFunctionVideoPresenter.kt +++ b/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/presenter/BusPassengerFunctionVideoPresenter.kt @@ -1,6 +1,6 @@ package com.mogo.och.bus.passenger.presenter -import com.mogo.och.bus.passenger.ui.M1VideoFragment +import com.mogo.och.bus.passenger.ui.dialogfragment.fragment.M1VideoFragment class BusPassengerFunctionVideoPresenter(view: M1VideoFragment?) : BusBasePassengerFunctionDevicePresenter(view) \ No newline at end of file diff --git a/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/presenter/OrderInfoPresenter.kt b/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/presenter/OrderInfoPresenter.kt new file mode 100644 index 0000000000..e4de1557cd --- /dev/null +++ b/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/presenter/OrderInfoPresenter.kt @@ -0,0 +1,18 @@ +package com.mogo.och.bus.passenger.presenter + +import androidx.lifecycle.LifecycleOwner +import com.mogo.och.bus.passenger.ui.dialogfragment.fragment.OrderInfoFragment + +class OrderInfoPresenter(view: OrderInfoFragment?) : + BusBasePassengerFunctionDevicePresenter(view) { + companion object{ + private const val TAG = "BusPassengerFunctionPresenter" + } + override fun onCreate(owner: LifecycleOwner) { + super.onCreate(owner) + } + + override fun onDestroy(owner: LifecycleOwner) { + super.onDestroy(owner) + } +} \ No newline at end of file diff --git a/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/ui/M1ContainFragment.kt b/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/ui/M1ContainFragment.kt deleted file mode 100644 index 1810e6ae86..0000000000 --- a/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/ui/M1ContainFragment.kt +++ /dev/null @@ -1,288 +0,0 @@ -package com.mogo.och.bus.passenger.ui - -import android.os.Bundle -import android.util.Log -import android.view.View -import android.view.WindowManager -import android.widget.CompoundButton -import androidx.fragment.app.DialogFragment -import androidx.fragment.app.Fragment -import androidx.fragment.app.FragmentManager -import androidx.fragment.app.FragmentTransaction -import com.mogo.commons.mvp.MvpDialogFragment -import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger -import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_BUS_P -import com.mogo.eagle.core.utilcode.util.BarUtils -import com.mogo.eagle.core.utilcode.util.SharedPrefs -import com.mogo.och.bus.passenger.R -import com.mogo.och.bus.passenger.presenter.BusPassengerFunctionPresenter -import kotlinx.android.synthetic.main.m1_contain_fragment.* - -/** - * @author: yangyakun - * @date: 2023/1/28 - */ -class M1ContainFragment : - MvpDialogFragment() { - - var tab: String = VIDEOTAB - var fragmentTag: String = M1VideoFragment.TAG - var fragment: Fragment? = null - var isEarlyClose:Boolean = false - - override fun onCreate(savedInstanceState: Bundle?) { - super.onCreate(savedInstanceState) - arguments?.let { - tab = it.getString(SELECTTAB, VIDEOTAB) - } - savedInstanceState?.let { - tab = it.getString(SELECTTAB, tab) - } - isEarlyClose = tab==SETTINGENDORDERTAB - setStyle(STYLE_NO_TITLE, R.style.DialogFullScreen) //dialog全屏 - } - - private fun initFragment() { - when (tab) { - VIDEOTAB -> { - fragment = - childFragmentManager.findFragmentByTag(M1VideoFragment.TAG) - ?: M1VideoFragment.newInstance() - } - SETTINGDEVICETAB -> { - fragment = - childFragmentManager.findFragmentByTag(M1DeviceFragment.TAG) - ?: M1DeviceFragment.newInstance() - } - SETTINGSOFTTAB -> { - fragment = - childFragmentManager.findFragmentByTag(M1SoftFragment.TAG) - ?: M1SoftFragment.newInstance() - } - SETTINGORDERTAB -> { - fragment = - childFragmentManager.findFragmentByTag(M1OrderFragment.TAG) - ?: M1OrderFragment.newInstance(object :ChangeCheck{ - override fun changeChange() { - cb_bp_setting_device.isChecked = true - } - }) - } - SETTINGENDORDERTAB -> { - fragment = - childFragmentManager.findFragmentByTag(M1EarlyEndOrderFragment.TAG) - ?: M1EarlyEndOrderFragment.newInstance(object :ContainDismiss{ - override fun closeDialog() { - dismissAllowingStateLoss() - } - }) - } - else -> {} - } - fragment?.let { - childFragmentManager.beginTransaction() - .replace(R.id.fl_function_group, it, fragmentTag) - .commitNow() - } - cl_container.setOnClickListener { - dismissAllowingStateLoss() - } - } - - override fun getLayoutId(): Int = R.layout.m1_contain_fragment - - override fun getTagName(): String = TAG - - override fun initViews() { - - //dialog?.setCancelable(false) - } - - - override fun onViewCreated(view: View, savedInstanceState: Bundle?) { - super.onViewCreated(view, savedInstanceState) - dialog?.window?.let { - BarUtils.hideStatusBarAndSticky(it) - it.addFlags(WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE) - dialog?.setOnShowListener { _ -> - it.clearFlags(WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE) - BarUtils.hideStatusBarAndSticky(it) - } - } - } - - private val videoListener = CompoundButton.OnCheckedChangeListener { _, isChecked -> - CallerLogger.d(M_BUS_P+TAG, "videoListener$isChecked") - if (isChecked) { - tab = VIDEOTAB - fragmentTag = M1VideoFragment.TAG - cb_bp_setting_soft.isChecked = false - cb_bp_setting_device.isChecked = false - cb_bp_setting_order.isChecked = false - initFragment() - }else{ - if(!cb_bp_video_player.isChecked&& - !cb_bp_setting_soft.isChecked&& - !cb_bp_setting_device.isChecked&& - !cb_bp_setting_order.isChecked){ - dismiss() - } - } - } - - private val settingDevices = CompoundButton.OnCheckedChangeListener { _, isChecked -> - CallerLogger.d(M_BUS_P+TAG, "settingDevices$isChecked") - if (isChecked) { - tab = SETTINGDEVICETAB - fragmentTag = M1DeviceFragment.TAG - cb_bp_setting_soft.isChecked = false - cb_bp_video_player.isChecked = false - cb_bp_setting_order.isChecked = false - initFragment() - }else{ - if(!cb_bp_video_player.isChecked&& - !cb_bp_setting_soft.isChecked&& - !cb_bp_setting_device.isChecked&& - !cb_bp_setting_order.isChecked){ - dismiss() - } - } - } - - private val settingSoft = CompoundButton.OnCheckedChangeListener { _, isChecked -> - CallerLogger.d(M_BUS_P+TAG, "settingSoft$isChecked") - if (isChecked) { - tab = SETTINGSOFTTAB - fragmentTag = M1SoftFragment.TAG - cb_bp_video_player.isChecked = false - cb_bp_setting_device.isChecked = false - cb_bp_setting_order.isChecked = false - initFragment() - }else{ - if(!cb_bp_video_player.isChecked&& - !cb_bp_setting_soft.isChecked&& - !cb_bp_setting_device.isChecked&& - !cb_bp_setting_order.isChecked){ - dismiss() - } - } - } - private val settingOrder = CompoundButton.OnCheckedChangeListener { _, isChecked -> - CallerLogger.d(M_BUS_P+TAG, "settingOrder$isChecked") - if (isChecked) { - if(isEarlyClose){ - tab = SETTINGENDORDERTAB - }else{ - tab = SETTINGORDERTAB - } - fragmentTag = M1OrderFragment.TAG - cb_bp_video_player.isChecked = false - cb_bp_setting_device.isChecked = false - cb_bp_setting_soft.isChecked = false - initFragment() - }else{ - if(!cb_bp_video_player.isChecked&& - !cb_bp_setting_soft.isChecked&& - !cb_bp_setting_device.isChecked&& - !cb_bp_setting_order.isChecked){ - dismiss() - } - } - } - - override fun onSaveInstanceState(outState: Bundle) { - super.onSaveInstanceState(outState) - context?.let { - SharedPrefs.getInstance(it).putString(SELECTTAB, tab) - } - } - - override fun createPresenter(): BusPassengerFunctionPresenter = - BusPassengerFunctionPresenter(this) - - /** - * 重写父类show()方法 - * 避免出现java.lang.IllegalStateException: Can not perform this action after onSaveInstanceState - */ - override fun show(manager: FragmentManager, tag: String?) { - try { - var cls = this.javaClass.superclass ?: return - while (true) { - if (cls.name == "java.lang.Object") { - break - } - cls = cls.superclass!! - if (cls == DialogFragment::class.java) { - break - } - } - val mDismissed = cls.getDeclaredField("mDismissed") - val mShownByMe = cls.getDeclaredField("mShownByMe") - mDismissed.isAccessible = true - mShownByMe.isAccessible = true - mDismissed.setBoolean(this, false) - mShownByMe.setBoolean(this, true) - if (isAdded) { //解决方法就是添加这行代码,如果已经添加了,就移除掉然后再show,就不会出现Fragment already added的错误了。 - return - } - val ft: FragmentTransaction = manager.beginTransaction() - ft.add(this, tag) - ft.commitAllowingStateLoss() - } catch (e: Exception) { - Log.e("DialogFragment", "show", e.fillInStackTrace()) - } - } - - override fun onViewStateRestored(savedInstanceState: Bundle?) { - CallerLogger.d(M_BUS_P+TAG, "onViewStateRestored") - cb_bp_video_player.setOnCheckedChangeListener(null) - cb_bp_setting_soft.setOnCheckedChangeListener(null) - cb_bp_setting_device.setOnCheckedChangeListener(null) - cb_bp_setting_order.setOnCheckedChangeListener(null) - cb_bp_video_player.isChecked = false - cb_bp_setting_soft.isChecked = false - cb_bp_setting_device.isChecked = false - cb_bp_setting_order.isChecked = false - cb_bp_video_player.setOnCheckedChangeListener(videoListener) - cb_bp_setting_soft.setOnCheckedChangeListener(settingSoft) - cb_bp_setting_device.setOnCheckedChangeListener(settingDevices) - cb_bp_setting_order.setOnCheckedChangeListener(settingOrder) - - when (tab) { - VIDEOTAB -> cb_bp_video_player.isChecked = true - SETTINGDEVICETAB -> cb_bp_setting_device.isChecked = true - SETTINGSOFTTAB -> cb_bp_setting_soft.isChecked = true - SETTINGORDERTAB -> cb_bp_setting_order.isChecked = true - SETTINGENDORDERTAB -> cb_bp_setting_order.isChecked = true - else -> {} - } - super.onViewStateRestored(savedInstanceState) - } - - companion object { - const val TAG = "BusPassengerFunctionFragment" - - const val VIDEOTAB = "VideoTab" - const val SETTINGSOFTTAB = "SettingSoftTab" - const val SETTINGDEVICETAB = "SettingDeviceTab" - const val SETTINGORDERTAB = "SettingOrderTab" - const val SETTINGENDORDERTAB = "SettingEndOrderTab" - - const val SELECTTAB = "SELECTTAB" - - @JvmStatic - fun newInstance(): M1ContainFragment { - val args = Bundle() - val fragment = M1ContainFragment() - fragment.arguments = args - return fragment - } - } - - interface ContainDismiss{ - fun closeDialog() - } - interface ChangeCheck{ - fun changeChange() - } -} \ No newline at end of file diff --git a/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/ui/M1DeviceFragment.kt b/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/ui/M1DeviceFragment.kt deleted file mode 100644 index 4d3944bcac..0000000000 --- a/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/ui/M1DeviceFragment.kt +++ /dev/null @@ -1,43 +0,0 @@ -package com.mogo.och.bus.passenger.ui - -import android.os.Bundle -import com.mogo.commons.mvp.MvpFragment -import com.mogo.eagle.core.utilcode.kotlin.onClick -import com.mogo.och.bus.passenger.R -import com.mogo.och.bus.passenger.presenter.BusPassengerFunctionDevicePresenter -import com.mogo.och.common.module.utils.SoundPoolHelper -import kotlinx.android.synthetic.main.m1_devices_fragment.* - -/** - * @author: yangyakun - * @date: 2023/1/28 - */ -class M1DeviceFragment : - MvpFragment() { - - override fun getLayoutId(): Int = R.layout.m1_devices_fragment - - override fun getTagName(): String = TAG - - override fun initViews() { - initListener() - } - - private fun initListener() { - - } - - override fun createPresenter(): BusPassengerFunctionDevicePresenter = - BusPassengerFunctionDevicePresenter(this) - - companion object { - const val TAG = "BusPassengerFunctionDeviceFragment" - @JvmStatic - fun newInstance(): M1DeviceFragment { - val args = Bundle() - val fragment = M1DeviceFragment() - fragment.arguments = args - return fragment - } - } -} \ No newline at end of file diff --git a/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/ui/M1EarlyEndOrderFragment.kt b/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/ui/M1EarlyEndOrderFragment.kt index 7c46d0c176..49df5673f7 100644 --- a/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/ui/M1EarlyEndOrderFragment.kt +++ b/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/ui/M1EarlyEndOrderFragment.kt @@ -5,6 +5,7 @@ import com.mogo.commons.mvp.MvpFragment import com.mogo.eagle.core.utilcode.kotlin.onClick import com.mogo.och.bus.passenger.R import com.mogo.och.bus.passenger.presenter.BusPassengerFunctionEarlyEndOrderPresenter +import com.mogo.och.bus.passenger.ui.dialogfragment.M1ContainFragment import kotlinx.android.synthetic.main.m1_order_early_end.* /** diff --git a/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/ui/MainFragment.kt b/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/ui/MainFragment.kt index 855586148d..67f675495e 100644 --- a/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/ui/MainFragment.kt +++ b/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/ui/MainFragment.kt @@ -1,32 +1,26 @@ package com.mogo.och.bus.passenger.ui import android.graphics.BitmapFactory -import android.os.Build import android.os.Bundle import android.view.View +import android.view.View.OnClickListener import androidx.fragment.app.DialogFragment import androidx.fragment.app.Fragment import com.amap.api.maps.model.LatLng import com.mogo.commons.AbsMogoApplication -import com.mogo.commons.debug.DebugConfig import com.mogo.commons.mvp.MvpFragment -import com.mogo.eagle.core.data.config.FunctionBuildConfig import com.mogo.eagle.core.data.config.HdMapBuildConfig import com.mogo.eagle.core.function.call.map.CallerMapUIServiceManager import com.mogo.eagle.core.function.hmi.ui.msgbox.MMsgBoxButtonView -import com.mogo.eagle.core.function.hmi.ui.setting.ToggleDebugView -import com.mogo.eagle.core.utilcode.kotlin.onClick 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.AppStateManager import com.mogo.eagle.core.utilcode.util.ClickUtils -import com.mogo.eagle.core.utilcode.util.ToastUtils import com.mogo.och.bus.passenger.R -import com.mogo.och.bus.passenger.model.CharterPassengerModel import com.mogo.och.common.module.voice.VoiceManager import com.mogo.och.bus.passenger.presenter.BusPassengerPresenter -import com.mogo.och.bus.passenger.utils.VoiceFocusManager -import com.mogo.och.common.module.biz.constant.LoginStatusManager +import com.mogo.och.bus.passenger.ui.dialogfragment.M1CarUserNoOrderFragment +import com.mogo.och.bus.passenger.ui.dialogfragment.M1ContainFragment import kotlinx.android.synthetic.main.m1_main_fragment.* import java.lang.ref.WeakReference @@ -52,34 +46,6 @@ class MainFragment : } override fun initViews() { - cb_bp_video_player.onClick { - openSettingPage(M1ContainFragment.VIDEOTAB) - } - cb_bp_setting_soft.onClick { - openSettingPage(M1ContainFragment.SETTINGSOFTTAB) - } - cb_bp_setting_device.onClick { - openSettingPage(M1ContainFragment.SETTINGDEVICETAB) - } - cb_bp_setting_order.onClick { - if (LoginStatusManager.isLogin()) { - openSettingPage(M1ContainFragment.SETTINGORDERTAB) - }else{ - ToastUtils.showShort(AbsMogoApplication.getApp().getString(R.string.m1_please_login_driver)) - } - } - iv_end_order.onClick { - if (LoginStatusManager.isLogin()) { - if(mPresenter?.haveOrder()==true){ - openSettingPage(M1ContainFragment.SETTINGENDORDERTAB) - }else{ - ToastUtils.showShort("没有订单无法结束订单") - } - }else{ - ToastUtils.showShort(AbsMogoApplication.getApp().getString(R.string.m1_please_login_driver)) - } - } - viewBusPM1MsgBoxButton.setClickListener(object : MMsgBoxButtonView.ClickListener { override fun showMsgBoxList(show: Boolean) { if (show) { @@ -94,6 +60,19 @@ class MainFragment : } }) + + bb_boorombar.setSettingClickListener{ + openSettingPage(M1ContainFragment.SETTINGSOFTTAB) + } + bb_boorombar.setOrderInfoClickListener{ + openSettingPage(M1ContainFragment.ORDERINFO) + } + bb_boorombar.setLineClickListener{ + openSettingPage(M1ContainFragment.SELECTLINE) + } + aciv_enter_video.setOnClickListener{ + openSettingPage(M1ContainFragment.VIDEOTAB) + } } private fun openSettingPage(tab: String) { diff --git a/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/ui/M1CarUserNoOrderFragment.kt b/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/ui/dialogfragment/M1CarUserNoOrderFragment.kt similarity index 97% rename from OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/ui/M1CarUserNoOrderFragment.kt rename to OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/ui/dialogfragment/M1CarUserNoOrderFragment.kt index e01f63d718..8ef0fa2773 100644 --- a/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/ui/M1CarUserNoOrderFragment.kt +++ b/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/ui/dialogfragment/M1CarUserNoOrderFragment.kt @@ -1,4 +1,4 @@ -package com.mogo.och.bus.passenger.ui +package com.mogo.och.bus.passenger.ui.dialogfragment import android.os.Bundle import android.util.Log @@ -102,7 +102,7 @@ class M1CarUserNoOrderFragment : } override fun onViewStateRestored(savedInstanceState: Bundle?) { - CallerLogger.d(M_BUS_P+TAG, "onViewStateRestored") + CallerLogger.d(M_BUS_P+ TAG, "onViewStateRestored") super.onViewStateRestored(savedInstanceState) } diff --git a/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/ui/dialogfragment/M1ContainFragment.kt b/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/ui/dialogfragment/M1ContainFragment.kt new file mode 100644 index 0000000000..04e4d23ed1 --- /dev/null +++ b/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/ui/dialogfragment/M1ContainFragment.kt @@ -0,0 +1,277 @@ +package com.mogo.och.bus.passenger.ui.dialogfragment + +import android.os.Bundle +import android.util.Log +import android.view.View +import android.view.WindowManager +import androidx.fragment.app.DialogFragment +import androidx.fragment.app.Fragment +import androidx.fragment.app.FragmentManager +import androidx.fragment.app.FragmentTransaction +import com.mogo.commons.mvp.MvpDialogFragment +import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger +import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_BUS_P +import com.mogo.eagle.core.utilcode.util.BarUtils +import com.mogo.eagle.core.utilcode.util.SharedPrefs +import com.mogo.och.bus.passenger.R +import com.mogo.och.bus.passenger.presenter.BusPassengerFunctionPresenter +import com.mogo.och.bus.passenger.ui.dialogfragment.fragment.M1OrderLineFragment +import com.mogo.och.bus.passenger.ui.dialogfragment.fragment.M1SoftFragment +import com.mogo.och.bus.passenger.ui.dialogfragment.fragment.M1VideoFragment +import com.mogo.och.bus.passenger.ui.dialogfragment.fragment.OrderInfoFragment +import com.mogo.och.bus.passenger.ui.view.bottom.BottomBar +import com.mogo.och.bus.passenger.ui.view.bottom.BottomClickView +import kotlinx.android.synthetic.main.m1_contain_fragment.* + +/** + * @author: yangyakun + * @date: 2023/1/28 + */ +class M1ContainFragment : + MvpDialogFragment() { + + var tab: String = VIDEOTAB + var fragmentTag: String = M1VideoFragment.TAG + var fragment: Fragment? = null + + var videoFragment:M1VideoFragment? = null + var softFragment:M1SoftFragment? = null + var orderInfoFragment:OrderInfoFragment? = null + var orderLineFragment:M1OrderLineFragment? = null + + override fun onCreate(savedInstanceState: Bundle?) { + CallerLogger.d(M_BUS_P+ TAG, "onCreate") + super.onCreate(savedInstanceState) + arguments?.let { + tab = it.getString(SELECTTAB, VIDEOTAB) + } + savedInstanceState?.let { + tab = it.getString(SELECTTAB, tab) + } + setStyle(STYLE_NO_TITLE, R.style.DialogFullScreen) //dialog全屏 + } + + private fun setCheckView() { + CallerLogger.d(M_BUS_P+ TAG, "setCheckView") + when (tab) { + VIDEOTAB -> { + fragment =videoFragment + ?: childFragmentManager.findFragmentByTag(M1VideoFragment.TAG) + ?: M1VideoFragment.newInstance() + if(videoFragment==null&&fragment is M1VideoFragment){ + videoFragment = fragment as M1VideoFragment + } + bb_bottom_bar.setCheckIndex(BottomBar.SelectView.VIDEO) + cl_container.setBackgroundResource(R.drawable.m1_function_bg) + fragmentTag = M1VideoFragment.TAG + } + SETTINGSOFTTAB -> { + fragment =softFragment + ?: childFragmentManager.findFragmentByTag(M1SoftFragment.TAG) + ?: M1SoftFragment.newInstance() + if(softFragment==null&&fragment is M1SoftFragment){ + softFragment = fragment as M1SoftFragment + } + bb_bottom_bar.setCheckIndex(BottomBar.SelectView.SETTING) + cl_container.setBackgroundResource(R.drawable.m1_function_bg) + fragmentTag = M1SoftFragment.TAG + } + ORDERINFO -> { + fragment =orderInfoFragment + ?: childFragmentManager.findFragmentByTag(OrderInfoFragment.TAG) + ?: OrderInfoFragment.newInstance() + if(orderInfoFragment==null&&fragment is OrderInfoFragment){ + orderInfoFragment = fragment as OrderInfoFragment + } + bb_bottom_bar.setCheckIndex(BottomBar.SelectView.ORDERINFO) + cl_container.background = null + fragmentTag = OrderInfoFragment.TAG + } + SELECTLINE ->{ + fragment =orderLineFragment + ?: childFragmentManager.findFragmentByTag(M1OrderLineFragment.TAG) + ?: M1OrderLineFragment.newInstance() + if(orderLineFragment==null&&fragment is M1OrderLineFragment){ + orderLineFragment = fragment as M1OrderLineFragment + } + bb_bottom_bar.setCheckIndex(BottomBar.SelectView.LINE) + cl_container.background = null + fragmentTag = M1OrderLineFragment.TAG + } + else -> {} + } + CallerLogger.d(M_BUS_P+ TAG, "fragment:$fragment") + + fragment?.let { + val beginTransaction = childFragmentManager.beginTransaction() + if(!it.isAdded){ + beginTransaction.add(it,fragmentTag) + } + beginTransaction + .replace(R.id.fl_function_group, it, fragmentTag) + .commitNow() + } + + } + + override fun getLayoutId(): Int = R.layout.m1_contain_fragment + + override fun getTagName(): String = TAG + + override fun initViews() { + + //dialog?.setCancelable(false) + CallerLogger.d(M_BUS_P+ TAG, "initViews") + setCheckView() + cl_container.setOnClickListener { + dismissAllowingStateLoss() + } + bb_bottom_bar.setSettingClickListener{ + CallerLogger.d(M_BUS_P+ TAG, "initViews---$tab") + if(tab==SETTINGSOFTTAB) { + dismissAllowingStateLoss() + }else{ + tab = SETTINGSOFTTAB + setCheckView() + } + } + bb_bottom_bar.setLineClickListener{ + CallerLogger.d(M_BUS_P+ TAG, "initViews---$tab") + if(tab==SELECTLINE) { + dismissAllowingStateLoss() + }else{ + tab = SELECTLINE + setCheckView() + } + } + bb_bottom_bar.setOrderInfoClickListener{ + CallerLogger.d(M_BUS_P+ TAG, "initViews---$tab") + if(tab==ORDERINFO) { + dismissAllowingStateLoss() + }else{ + tab = ORDERINFO + setCheckView() + } + } + bb_bottom_bar.setApplyClickListener(object : BottomClickView.ApplyClickLintener{ + override fun onApplyClick() { + dismissAllowingStateLoss() + } + }) + } + + + override fun onViewCreated(view: View, savedInstanceState: Bundle?) { + super.onViewCreated(view, savedInstanceState) + CallerLogger.d(M_BUS_P+ TAG, "onViewCreated") + dialog?.window?.let { + BarUtils.hideStatusBarAndSticky(it) + it.addFlags(WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE) + dialog?.setOnShowListener { _ -> + it.clearFlags(WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE) + BarUtils.hideStatusBarAndSticky(it) + } + } + } + + override fun onSaveInstanceState(outState: Bundle) { + super.onSaveInstanceState(outState) + CallerLogger.d(M_BUS_P+ TAG, "onSaveInstanceState") + context?.let { + SharedPrefs.getInstance(it).putString(SELECTTAB, tab) + } + } + + override fun createPresenter(): BusPassengerFunctionPresenter = + BusPassengerFunctionPresenter(this) + + /** + * 重写父类show()方法 + * 避免出现java.lang.IllegalStateException: Can not perform this action after onSaveInstanceState + */ + override fun show(manager: FragmentManager, tag: String?) { + try { + var cls = this.javaClass.superclass ?: return + while (true) { + if (cls.name == "java.lang.Object") { + break + } + cls = cls.superclass!! + if (cls == DialogFragment::class.java) { + break + } + } + val mDismissed = cls.getDeclaredField("mDismissed") + val mShownByMe = cls.getDeclaredField("mShownByMe") + mDismissed.isAccessible = true + mShownByMe.isAccessible = true + mDismissed.setBoolean(this, false) + mShownByMe.setBoolean(this, true) + if (isAdded) { //解决方法就是添加这行代码,如果已经添加了,就移除掉然后再show,就不会出现Fragment already added的错误了。 + return + } + val ft: FragmentTransaction = manager.beginTransaction() + ft.add(this, tag) + ft.commitAllowingStateLoss() + } catch (e: Exception) { + Log.e("DialogFragment", "show", e.fillInStackTrace()) + } + } + + override fun onViewStateRestored(savedInstanceState: Bundle?) { + CallerLogger.d(M_BUS_P+ TAG, "onViewStateRestored") + when (tab) { + VIDEOTAB -> { + + } + SETTINGSOFTTAB -> {} + ORDERINFO -> {} + SELECTLINE -> {} + else -> {} + } + super.onViewStateRestored(savedInstanceState) + } + + companion object { + const val TAG = "BusPassengerFunctionFragment" + + /** + * 娱乐视频 + */ + const val VIDEOTAB = "VideoTab" + + /** + * 空调、暖风、灯和剩余设置 + */ + const val SETTINGSOFTTAB = "SettingSoftTab" + + /** + * 订单信息 + */ + const val ORDERINFO = "OrderInfo" + + /** + * 选择线路 + */ + const val SELECTLINE = "SelectLine" + + + + const val SELECTTAB = "SELECTTAB" + + @JvmStatic + fun newInstance(): M1ContainFragment { + val args = Bundle() + val fragment = M1ContainFragment() + fragment.arguments = args + return fragment + } + } + + interface ContainDismiss{ + fun closeDialog() + } + interface ChangeCheck{ + fun changeChange() + } +} \ No newline at end of file diff --git a/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/ui/M1OrderFragment.kt b/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/ui/dialogfragment/fragment/M1OrderLineFragment.kt similarity index 95% rename from OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/ui/M1OrderFragment.kt rename to OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/ui/dialogfragment/fragment/M1OrderLineFragment.kt index 2483279c9a..ab85580266 100644 --- a/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/ui/M1OrderFragment.kt +++ b/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/ui/dialogfragment/fragment/M1OrderLineFragment.kt @@ -1,4 +1,4 @@ -package com.mogo.och.bus.passenger.ui +package com.mogo.och.bus.passenger.ui.dialogfragment.fragment import android.animation.ObjectAnimator import android.os.Bundle @@ -19,6 +19,7 @@ import com.mogo.och.bus.passenger.model.OrderStatusEnum import com.mogo.och.bus.passenger.presenter.BusPassengerFunctionOrderPresenter import com.mogo.och.bus.passenger.ui.adapter.OrderLineItemAdapter import com.mogo.och.bus.passenger.ui.adapter.OrderSiteItemAdapter +import com.mogo.och.bus.passenger.ui.dialogfragment.M1ContainFragment import com.mogo.och.bus.passenger.view.BottomDecoration import kotlinx.android.synthetic.main.m1_order_fragment.* import me.jessyan.autosize.utils.AutoSizeUtils @@ -27,8 +28,8 @@ import me.jessyan.autosize.utils.AutoSizeUtils * @author: yangyakun * @date: 2023/1/28 */ -class M1OrderFragment : - MvpFragment() { +class M1OrderLineFragment : + MvpFragment() { private var changeCheck: M1ContainFragment.ChangeCheck? = null @@ -242,14 +243,13 @@ class M1OrderFragment : } companion object { - const val TAG = "BusPassengerFunctionOrderFragment" + const val TAG = "M1OrderLineFragment" @JvmStatic - fun newInstance(changeCheck: M1ContainFragment.ChangeCheck): M1OrderFragment { + fun newInstance(): M1OrderLineFragment { val args = Bundle() - val fragment = M1OrderFragment() + val fragment = M1OrderLineFragment() fragment.arguments = args - fragment.changeCheck = changeCheck return fragment } } diff --git a/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/ui/M1SoftFragment.kt b/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/ui/dialogfragment/fragment/M1SoftFragment.kt similarity index 99% rename from OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/ui/M1SoftFragment.kt rename to OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/ui/dialogfragment/fragment/M1SoftFragment.kt index 7697bf38f0..3abf9be383 100644 --- a/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/ui/M1SoftFragment.kt +++ b/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/ui/dialogfragment/fragment/M1SoftFragment.kt @@ -1,4 +1,4 @@ -package com.mogo.och.bus.passenger.ui +package com.mogo.och.bus.passenger.ui.dialogfragment.fragment import android.animation.ObjectAnimator import android.animation.ValueAnimator @@ -711,7 +711,7 @@ class M1SoftFragment : } companion object { - const val TAG = "BusPassengerFunctionSoftFragment" + const val TAG = "M1SoftFragment" const val touchTagKey = 2 const val touchTag = 2 diff --git a/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/ui/M1VideoFragment.kt b/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/ui/dialogfragment/fragment/M1VideoFragment.kt similarity index 98% rename from OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/ui/M1VideoFragment.kt rename to OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/ui/dialogfragment/fragment/M1VideoFragment.kt index 8def79dab3..6708be7aef 100644 --- a/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/ui/M1VideoFragment.kt +++ b/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/ui/dialogfragment/fragment/M1VideoFragment.kt @@ -1,4 +1,4 @@ -package com.mogo.och.bus.passenger.ui +package com.mogo.och.bus.passenger.ui.dialogfragment.fragment import android.os.Bundle import android.view.View @@ -152,7 +152,7 @@ class M1VideoFragment : } companion object { - const val TAG = "BusPassengerFunctionVideoFragment" + const val TAG = "M1VideoFragment" @JvmStatic fun newInstance(): M1VideoFragment { val args = Bundle() diff --git a/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/ui/dialogfragment/fragment/OrderInfoFragment.kt b/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/ui/dialogfragment/fragment/OrderInfoFragment.kt new file mode 100644 index 0000000000..f9e7e4bc6e --- /dev/null +++ b/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/ui/dialogfragment/fragment/OrderInfoFragment.kt @@ -0,0 +1,40 @@ +package com.mogo.och.bus.passenger.ui.dialogfragment.fragment + +import android.os.Bundle +import com.mogo.commons.mvp.MvpFragment +import com.mogo.och.bus.passenger.R +import com.mogo.och.bus.passenger.presenter.OrderInfoPresenter + +/** + * @author: yangyakun + * @date: 2023/1/28 + */ +class OrderInfoFragment : + MvpFragment() { + + override fun getLayoutId(): Int = R.layout.m1_devices_fragment + + override fun getTagName(): String = TAG + + override fun initViews() { + initListener() + } + + private fun initListener() { + + } + + override fun createPresenter(): OrderInfoPresenter = + OrderInfoPresenter(this) + + companion object { + const val TAG = "OrderInfoFragment" + @JvmStatic + fun newInstance(): OrderInfoFragment { + val args = Bundle() + val fragment = OrderInfoFragment() + fragment.arguments = args + return fragment + } + } +} \ No newline at end of file diff --git a/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/ui/view/bottom/BottomBar.kt b/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/ui/view/bottom/BottomBar.kt new file mode 100644 index 0000000000..5b7e927495 --- /dev/null +++ b/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/ui/view/bottom/BottomBar.kt @@ -0,0 +1,74 @@ +package com.mogo.och.bus.passenger.ui.view.bottom + +import android.content.Context +import android.util.AttributeSet +import android.view.LayoutInflater +import androidx.constraintlayout.widget.ConstraintLayout +import com.mogo.och.bus.passenger.R +import kotlinx.android.synthetic.main.m1_bottom_bar.view.* + +class BottomBar @JvmOverloads constructor( + context: Context, + attrs: AttributeSet? = null, + defStyleAttr: Int = 0 +) : ConstraintLayout(context, attrs, defStyleAttr) { + init { + isClickable = true + LayoutInflater.from(context).inflate(R.layout.m1_bottom_bar, this, true) + setBackgroundResource(R.drawable.charter_p_bottom_bar_bg) + } + + private var checkIndex = SelectView.VIDEO + + override fun onAttachedToWindow() { + super.onAttachedToWindow() + } + fun setOrderInfoClickListener(click:OnClickListener){ + cl_order_time.setOnClickListener(click) + } + fun setSettingClickListener(click:OnClickListener){ + actv_setting.setOnClickListener(click) + } + fun setLineClickListener(click:OnClickListener){ + actv_line.setOnClickListener(click) + } + + fun setApplyClickListener(click:BottomClickView.ApplyClickLintener){ + aciv_center_image.applyClickListener=click + actv_stop_site.applyClickListener=click + actv_close_door.applyClickListener=click + actv_open_door.applyClickListener=click + } + + fun setCheckIndex(index:SelectView){ + if(checkIndex==index){ + return + } + checkIndex = index + if(checkIndex == SelectView.ORDERINFO){ + cl_order_time_press.visibility = VISIBLE + actv_order_end_time.setTextColor(context.getColor(android.R.color.white)) + actv_order_end_time_title.setTextColor(context.getColor(android.R.color.white)) + }else{ + cl_order_time_press.visibility = GONE + actv_order_end_time.setTextColor(context.getColor(R.color.bus_p_m1_0050E1)) + actv_order_end_time_title.setTextColor(context.getColor(R.color.bus_p_m1_090f28)) + } + if(checkIndex == SelectView.SETTING){ + actv_setting.setCheckItem(true) + }else{ + actv_setting.setCheckItem(false) + } + if(checkIndex == SelectView.LINE){ + actv_line.setCheckItem(true) + }else{ + actv_line.setCheckItem(false) + } + + } + + enum class SelectView{ + ORDERINFO,SETTING,LINE,VIDEO + } + +} \ No newline at end of file diff --git a/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/ui/view/bottom/BottomCheckView.kt b/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/ui/view/bottom/BottomCheckView.kt new file mode 100644 index 0000000000..a211f57c7e --- /dev/null +++ b/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/ui/view/bottom/BottomCheckView.kt @@ -0,0 +1,84 @@ +package com.mogo.och.bus.passenger.ui.view.bottom + +import android.content.Context +import android.util.AttributeSet +import android.view.LayoutInflater +import android.view.View +import androidx.constraintlayout.widget.ConstraintLayout +import com.mogo.och.bus.passenger.R +import kotlinx.android.synthetic.main.m1_bottom_stop_site.view.* + +open class BottomCheckView @JvmOverloads constructor( + context: Context, + attrs: AttributeSet? = null, + defStyleAttr: Int = 0 +) : ConstraintLayout(context, attrs, defStyleAttr) { + + companion object { + private const val TAG = "StopSiteView" + } + + private var backageViewId: Int = -1 + private var bottomTitle: String = "" + private var selectedDrawable: Int = -1 + private var normalDrawable: Int = -1 + private var backageView: View? = null + + private var isCheck = false + + init { + LayoutInflater.from(context).inflate(R.layout.m1_bottom_stop_site, this, true) + try { + val typedArray = context.obtainStyledAttributes(attrs, R.styleable.BottomSelectView) + backageViewId = typedArray.getResourceId(R.styleable.BottomSelectView_backageViewId, -1) + bottomTitle = typedArray.getString(R.styleable.BottomSelectView_bottomTitle) ?: "" + selectedDrawable = typedArray.getResourceId(R.styleable.BottomSelectView_selectedDrawable, -1) + normalDrawable = typedArray.getResourceId(R.styleable.BottomSelectView_normalDrawable, -1) + typedArray.recycle() + initView(context) + } catch (e: Exception) { + e.printStackTrace() + } + + } + + private fun initView(context: Context) { + if (selectedDrawable > 0) { + aciv_center_image.setImageResource(normalDrawable) + } + actv_title.text = bottomTitle + } + + fun setCheckItem(isCheck: Boolean) { + if (isCheck != this.isCheck) { + this.isCheck = isCheck + notifiBackageView() + } + } + + private fun notifiBackageView() { + if (isCheck) { + backageView?.visibility = View.VISIBLE + aciv_center_image.setImageResource(selectedDrawable) + actv_title.setTextColor(context.getColor(android.R.color.white)) + } else { + backageView?.visibility = View.GONE + aciv_center_image.setImageResource(normalDrawable) + actv_title.setTextColor(context.getColor(R.color.bus_p_m1_090f28)) + } + } + + override fun onAttachedToWindow() { + super.onAttachedToWindow() + parent?.let { + if (parent is ConstraintLayout) { + if (backageViewId > 0) { + backageView = (parent as ConstraintLayout).findViewById(backageViewId) + } + } + } + if (isCheck) { + backageView?.visibility = View.VISIBLE + } + } +} \ No newline at end of file diff --git a/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/ui/view/bottom/BottomClickView.kt b/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/ui/view/bottom/BottomClickView.kt new file mode 100644 index 0000000000..23d4abd1a8 --- /dev/null +++ b/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/ui/view/bottom/BottomClickView.kt @@ -0,0 +1,109 @@ +package com.mogo.och.bus.passenger.ui.view.bottom + +import android.annotation.SuppressLint +import android.content.Context +import android.util.AttributeSet +import android.view.LayoutInflater +import android.view.MotionEvent +import android.view.View +import androidx.constraintlayout.widget.ConstraintLayout +import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotStatusListener +import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotControlManager +import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListenerManager +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 +import com.mogo.eagle.core.utilcode.util.ToastUtils +import com.mogo.och.bus.passenger.R +import com.mogo.och.common.module.utils.SoundPoolHelper +import kotlinx.android.synthetic.main.m1_bottom_stop_site.view.* + +open class BottomClickView @JvmOverloads constructor( + context: Context, + attrs: AttributeSet? = null, + defStyleAttr: Int = 0 +) : ConstraintLayout(context, attrs, defStyleAttr) { + + companion object { + private const val TAG = "StopSiteView" + } + + private var backageViewId: Int = -1 + private var bottomTitle: String = "" + private var selectedDrawable: Int = -1 + private var normalDrawable: Int = -1 + private var backageView: View? = null + + var applyClickListener:ApplyClickLintener?=null + + init { + LayoutInflater.from(context).inflate(R.layout.m1_bottom_stop_site, this, true) + try { + val typedArray = context.obtainStyledAttributes(attrs, R.styleable.BottomSelectView) + backageViewId = typedArray.getResourceId(R.styleable.BottomSelectView_backageViewId, -1) + bottomTitle = typedArray.getString(R.styleable.BottomSelectView_bottomTitle) ?: "" + selectedDrawable = typedArray.getResourceId(R.styleable.BottomSelectView_selectedDrawable, -1) + normalDrawable = typedArray.getResourceId(R.styleable.BottomSelectView_normalDrawable, -1) + typedArray.recycle() + initView(context) + } catch (e: Exception) { + e.printStackTrace() + } + + } + + private fun initView(context: Context) { + if (selectedDrawable > 0) { + aciv_center_image.setImageResource(normalDrawable) + } + actv_title.text = bottomTitle + setOnTouchListener(object : OnTouchListener { + @SuppressLint("ClickableViewAccessibility") + override fun onTouch(v: View?, event: MotionEvent?): Boolean { + when (event?.action) { + MotionEvent.ACTION_DOWN -> { + CallerLogger.d(SceneConstant.M_BUS_P + TAG, "ACTION_DOWN") + if (selectedDrawable > 0) { + aciv_center_image.setImageResource(selectedDrawable) + actv_title.setTextColor(context.getColor(android.R.color.white)) + backageView?.visibility = View.VISIBLE + } + } + MotionEvent.ACTION_UP -> { + CallerLogger.d(SceneConstant.M_BUS_P + TAG, "ACTION_UP") + if (selectedDrawable > 0) { + aciv_center_image.setImageResource(normalDrawable) + actv_title.setTextColor(context.getColor(R.color.bus_p_m1_090f28)) + backageView?.visibility = View.GONE + } + } + MotionEvent.ACTION_CANCEL -> { + CallerLogger.d(SceneConstant.M_BUS_P + TAG, "ACTION_CANCEL") + if (selectedDrawable > 0) { + aciv_center_image.setImageResource(normalDrawable) + actv_title.setTextColor(context.getColor(R.color.bus_p_m1_090f28)) + backageView?.visibility = View.GONE + } + } + else -> {} + } + return false + } + }) + } + + override fun onAttachedToWindow() { + super.onAttachedToWindow() + parent?.let { + if (parent is ConstraintLayout) { + if (backageViewId > 0) { + backageView = (parent as ConstraintLayout).findViewById(backageViewId) + } + } + } + } + + interface ApplyClickLintener{ + fun onApplyClick() + } +} \ No newline at end of file diff --git a/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/ui/view/door/CloseDoorView.kt b/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/ui/view/bottom/impl/CloseDoorView.kt similarity index 76% rename from OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/ui/view/door/CloseDoorView.kt rename to OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/ui/view/bottom/impl/CloseDoorView.kt index 2a40c14a48..c52feaf46c 100644 --- a/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/ui/view/door/CloseDoorView.kt +++ b/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/ui/view/bottom/impl/CloseDoorView.kt @@ -1,12 +1,14 @@ -package com.mogo.och.bus.passenger.ui.view.door +package com.mogo.och.bus.passenger.ui.view.bottom.impl import android.content.Context import android.util.AttributeSet import androidx.appcompat.widget.AppCompatTextView import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotControlManager import com.mogo.eagle.core.function.call.autopilot.CallerChassisLocationGCJ02ListenerManager +import com.mogo.eagle.core.utilcode.util.ActivityUtils import com.mogo.eagle.core.utilcode.util.ToastUtils import com.mogo.och.bus.passenger.R +import com.mogo.och.bus.passenger.ui.view.bottom.BottomClickView import com.mogo.och.common.module.manager.devicemanage.LightAirconditionDoorManager import com.mogo.och.common.module.utils.RxUtils import com.mogo.och.common.module.manager.devicemanage.LightAirconditionDoorStatusManager @@ -17,16 +19,17 @@ class CloseDoorView @JvmOverloads constructor( context: Context, attrs: AttributeSet? = null, defStyleAttr: Int = 0 -) : AppCompatTextView(context, attrs, defStyleAttr) { +) : BottomClickView(context, attrs, defStyleAttr) { init { setOnClickListener { go2OpenDoor() + applyClickListener?.onApplyClick() } } private fun go2OpenDoor(){ LightAirconditionDoorManager.go2OpenDoor(false) - SoundPoolHelper.getSoundPoolHelper().playSoundWithRedId(context, R.raw.bus_di) + SoundPoolHelper.getSoundPoolHelper().playSoundWithRedId(ActivityUtils.getActivityByContext(context), R.raw.bus_di) } } \ No newline at end of file diff --git a/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/ui/view/stopsite/GoView.kt b/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/ui/view/bottom/impl/GoView.kt similarity index 52% rename from OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/ui/view/stopsite/GoView.kt rename to OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/ui/view/bottom/impl/GoView.kt index 00c447662d..cd873d8bb7 100644 --- a/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/ui/view/stopsite/GoView.kt +++ b/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/ui/view/bottom/impl/GoView.kt @@ -1,15 +1,23 @@ -package com.mogo.och.bus.passenger.ui.view.stopsite +package com.mogo.och.bus.passenger.ui.view.bottom.impl +import android.annotation.SuppressLint import android.content.Context import android.util.AttributeSet +import android.view.MotionEvent +import android.view.View import androidx.appcompat.widget.AppCompatTextView import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotStatusListener import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotControlManager import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListenerManager +import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger +import com.mogo.eagle.core.utilcode.mogo.logger.scene.SceneConstant.Companion.M_BUS_P +import com.mogo.eagle.core.utilcode.util.ActivityUtils import com.mogo.eagle.core.utilcode.util.ToastUtils import com.mogo.och.bus.passenger.R import com.mogo.och.bus.passenger.model.CharterPassengerModel +import com.mogo.och.bus.passenger.ui.view.bottom.BottomClickView import com.mogo.och.common.module.utils.SoundPoolHelper +import kotlinx.android.synthetic.main.m1_bottom_bar.view.* class GoView @JvmOverloads constructor( context: Context, @@ -17,9 +25,38 @@ class GoView @JvmOverloads constructor( defStyleAttr: Int = 0 ) : AppCompatTextView(context, attrs, defStyleAttr) { + var applyClickListener: BottomClickView.ApplyClickLintener?=null + + companion object{ + private const val TAG = "GoView" + } + init { + setBackgroundResource(R.drawable.charter_p_bottom_center_normal) + setOnTouchListener(object :OnTouchListener{ + @SuppressLint("ClickableViewAccessibility") + override fun onTouch(v: View?, event: MotionEvent?): Boolean { + when (event?.action) { + MotionEvent.ACTION_DOWN -> { + CallerLogger.d(M_BUS_P + TAG, "ACTION_DOWN") + setBackgroundResource(R.drawable.charter_p_bottom_center_press) + } + MotionEvent.ACTION_UP -> { + CallerLogger.d(M_BUS_P + TAG, "ACTION_UP") + setBackgroundResource(R.drawable.charter_p_bottom_center_normal) + } + MotionEvent.ACTION_CANCEL -> { + CallerLogger.d(M_BUS_P + TAG, "ACTION_CANCEL") + setBackgroundResource(R.drawable.charter_p_bottom_center_normal) + } + else -> {} + } + return false + } + }) setOnClickListener { startGo() + applyClickListener?.onApplyClick() } } @@ -45,6 +82,6 @@ class GoView @JvmOverloads constructor( } else -> {} } - SoundPoolHelper.getSoundPoolHelper().playSoundWithRedId(context, R.raw.bus_di) + SoundPoolHelper.getSoundPoolHelper().playSoundWithRedId(ActivityUtils.getActivityByContext(context), R.raw.bus_di) } } \ No newline at end of file diff --git a/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/ui/view/door/OpenDoorView.kt b/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/ui/view/bottom/impl/OpenDoorView.kt similarity index 66% rename from OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/ui/view/door/OpenDoorView.kt rename to OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/ui/view/bottom/impl/OpenDoorView.kt index a9207bc376..f7e374ac61 100644 --- a/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/ui/view/door/OpenDoorView.kt +++ b/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/ui/view/bottom/impl/OpenDoorView.kt @@ -1,9 +1,11 @@ -package com.mogo.och.bus.passenger.ui.view.door +package com.mogo.och.bus.passenger.ui.view.bottom.impl import android.content.Context import android.util.AttributeSet import androidx.appcompat.widget.AppCompatTextView +import com.mogo.eagle.core.utilcode.util.ActivityUtils import com.mogo.och.bus.passenger.R +import com.mogo.och.bus.passenger.ui.view.bottom.BottomClickView import com.mogo.och.common.module.manager.devicemanage.LightAirconditionDoorManager import com.mogo.och.common.module.utils.SoundPoolHelper @@ -11,17 +13,18 @@ class OpenDoorView @JvmOverloads constructor( context: Context, attrs: AttributeSet? = null, defStyleAttr: Int = 0 -) : AppCompatTextView(context, attrs, defStyleAttr) { +) : BottomClickView(context, attrs, defStyleAttr) { init { setOnClickListener { go2OpenDoor() + applyClickListener?.onApplyClick() } } private fun go2OpenDoor(){ LightAirconditionDoorManager.go2OpenDoor(true) - SoundPoolHelper.getSoundPoolHelper().playSoundWithRedId(context, R.raw.bus_di) + SoundPoolHelper.getSoundPoolHelper().playSoundWithRedId(ActivityUtils.getActivityByContext(context), R.raw.bus_di) } } \ No newline at end of file diff --git a/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/ui/view/stopsite/StopSiteView.kt b/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/ui/view/bottom/impl/StopSiteView.kt similarity index 69% rename from OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/ui/view/stopsite/StopSiteView.kt rename to OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/ui/view/bottom/impl/StopSiteView.kt index 7dec48188f..9469c4035e 100644 --- a/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/ui/view/stopsite/StopSiteView.kt +++ b/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/ui/view/bottom/impl/StopSiteView.kt @@ -1,24 +1,37 @@ -package com.mogo.och.bus.passenger.ui.view.stopsite +package com.mogo.och.bus.passenger.ui.view.bottom.impl +import android.annotation.SuppressLint import android.content.Context import android.util.AttributeSet -import androidx.appcompat.widget.AppCompatTextView +import android.view.LayoutInflater +import android.view.MotionEvent +import android.view.View +import androidx.constraintlayout.widget.ConstraintLayout import com.mogo.eagle.core.function.api.autopilot.IMoGoAutopilotStatusListener import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotControlManager import com.mogo.eagle.core.function.call.autopilot.CallerAutoPilotStatusListenerManager +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 import com.mogo.eagle.core.utilcode.util.ToastUtils import com.mogo.och.bus.passenger.R +import com.mogo.och.bus.passenger.ui.view.bottom.BottomClickView import com.mogo.och.common.module.utils.SoundPoolHelper class StopSiteView @JvmOverloads constructor( context: Context, attrs: AttributeSet? = null, defStyleAttr: Int = 0 -) : AppCompatTextView(context, attrs, defStyleAttr) { +) : BottomClickView(context, attrs, defStyleAttr) { + + companion object{ + private const val TAG = "StopSiteView" + } init { setOnClickListener { stopSite() + applyClickListener?.onApplyClick() } } @@ -39,6 +52,6 @@ class StopSiteView @JvmOverloads constructor( } else -> {} } - SoundPoolHelper.getSoundPoolHelper().playSoundWithRedId(context, R.raw.bus_di) + SoundPoolHelper.getSoundPoolHelper().playSoundWithRedId(ActivityUtils.getActivityByContext(context), R.raw.bus_di) } } \ No newline at end of file diff --git a/OCH/mogo-och-charter-passenger/src/main/res/drawable-nodpi/charter_bottom_bar_select_bg.png b/OCH/mogo-och-charter-passenger/src/main/res/drawable-nodpi/charter_bottom_bar_select_bg.png new file mode 100644 index 0000000000..d033e0a51c Binary files /dev/null and b/OCH/mogo-och-charter-passenger/src/main/res/drawable-nodpi/charter_bottom_bar_select_bg.png differ diff --git a/OCH/mogo-och-charter-passenger/src/main/res/drawable-nodpi/charter_end_order_openclosedoor.png b/OCH/mogo-och-charter-passenger/src/main/res/drawable-nodpi/charter_end_order_openclosedoor.png new file mode 100644 index 0000000000..766ec25cb4 Binary files /dev/null and b/OCH/mogo-och-charter-passenger/src/main/res/drawable-nodpi/charter_end_order_openclosedoor.png differ diff --git a/OCH/mogo-och-charter-passenger/src/main/res/drawable-nodpi/charter_p_bottom_bar_bg.png b/OCH/mogo-och-charter-passenger/src/main/res/drawable-nodpi/charter_p_bottom_bar_bg.png new file mode 100644 index 0000000000..d920288fb8 Binary files /dev/null and b/OCH/mogo-och-charter-passenger/src/main/res/drawable-nodpi/charter_p_bottom_bar_bg.png differ diff --git a/OCH/mogo-och-charter-passenger/src/main/res/drawable-nodpi/charter_p_bottom_center_normal.png b/OCH/mogo-och-charter-passenger/src/main/res/drawable-nodpi/charter_p_bottom_center_normal.png new file mode 100644 index 0000000000..ee0e88287f Binary files /dev/null and b/OCH/mogo-och-charter-passenger/src/main/res/drawable-nodpi/charter_p_bottom_center_normal.png differ diff --git a/OCH/mogo-och-charter-passenger/src/main/res/drawable-nodpi/charter_p_bottom_center_press.png b/OCH/mogo-och-charter-passenger/src/main/res/drawable-nodpi/charter_p_bottom_center_press.png new file mode 100644 index 0000000000..1e0a96b046 Binary files /dev/null and b/OCH/mogo-och-charter-passenger/src/main/res/drawable-nodpi/charter_p_bottom_center_press.png differ diff --git a/OCH/mogo-och-charter-passenger/src/main/res/drawable-nodpi/charter_p_bottom_closedoor_normal.png b/OCH/mogo-och-charter-passenger/src/main/res/drawable-nodpi/charter_p_bottom_closedoor_normal.png new file mode 100644 index 0000000000..00772a6d26 Binary files /dev/null and b/OCH/mogo-och-charter-passenger/src/main/res/drawable-nodpi/charter_p_bottom_closedoor_normal.png differ diff --git a/OCH/mogo-och-charter-passenger/src/main/res/drawable-nodpi/charter_p_bottom_closedoor_press.png b/OCH/mogo-och-charter-passenger/src/main/res/drawable-nodpi/charter_p_bottom_closedoor_press.png new file mode 100644 index 0000000000..1392831ac3 Binary files /dev/null and b/OCH/mogo-och-charter-passenger/src/main/res/drawable-nodpi/charter_p_bottom_closedoor_press.png differ diff --git a/OCH/mogo-och-charter-passenger/src/main/res/drawable-nodpi/charter_p_bottom_line_normal.png b/OCH/mogo-och-charter-passenger/src/main/res/drawable-nodpi/charter_p_bottom_line_normal.png new file mode 100644 index 0000000000..8151b5b365 Binary files /dev/null and b/OCH/mogo-och-charter-passenger/src/main/res/drawable-nodpi/charter_p_bottom_line_normal.png differ diff --git a/OCH/mogo-och-charter-passenger/src/main/res/drawable-nodpi/charter_p_bottom_line_press.png b/OCH/mogo-och-charter-passenger/src/main/res/drawable-nodpi/charter_p_bottom_line_press.png new file mode 100644 index 0000000000..8151b5b365 Binary files /dev/null and b/OCH/mogo-och-charter-passenger/src/main/res/drawable-nodpi/charter_p_bottom_line_press.png differ diff --git a/OCH/mogo-och-charter-passenger/src/main/res/drawable-nodpi/charter_p_bottom_opendoor_normal_nor_src.png b/OCH/mogo-och-charter-passenger/src/main/res/drawable-nodpi/charter_p_bottom_opendoor_normal_nor_src.png new file mode 100644 index 0000000000..30bbd4c1f4 Binary files /dev/null and b/OCH/mogo-och-charter-passenger/src/main/res/drawable-nodpi/charter_p_bottom_opendoor_normal_nor_src.png differ diff --git a/OCH/mogo-och-charter-passenger/src/main/res/drawable-nodpi/charter_p_bottom_opendoor_normal_press_src.png b/OCH/mogo-och-charter-passenger/src/main/res/drawable-nodpi/charter_p_bottom_opendoor_normal_press_src.png new file mode 100644 index 0000000000..b04c3e1fc6 Binary files /dev/null and b/OCH/mogo-och-charter-passenger/src/main/res/drawable-nodpi/charter_p_bottom_opendoor_normal_press_src.png differ diff --git a/OCH/mogo-och-charter-passenger/src/main/res/drawable-nodpi/charter_p_bottom_softsettiing_normal.png b/OCH/mogo-och-charter-passenger/src/main/res/drawable-nodpi/charter_p_bottom_softsettiing_normal.png new file mode 100644 index 0000000000..8d3c31d0d4 Binary files /dev/null and b/OCH/mogo-och-charter-passenger/src/main/res/drawable-nodpi/charter_p_bottom_softsettiing_normal.png differ diff --git a/OCH/mogo-och-charter-passenger/src/main/res/drawable-nodpi/charter_p_bottom_softsettiing_press.png b/OCH/mogo-och-charter-passenger/src/main/res/drawable-nodpi/charter_p_bottom_softsettiing_press.png new file mode 100644 index 0000000000..07ab27a462 Binary files /dev/null and b/OCH/mogo-och-charter-passenger/src/main/res/drawable-nodpi/charter_p_bottom_softsettiing_press.png differ diff --git a/OCH/mogo-och-charter-passenger/src/main/res/drawable-nodpi/charter_p_bottom_stopsite_normal.png b/OCH/mogo-och-charter-passenger/src/main/res/drawable-nodpi/charter_p_bottom_stopsite_normal.png new file mode 100644 index 0000000000..88c6249a7f Binary files /dev/null and b/OCH/mogo-och-charter-passenger/src/main/res/drawable-nodpi/charter_p_bottom_stopsite_normal.png differ diff --git a/OCH/mogo-och-charter-passenger/src/main/res/drawable-nodpi/charter_p_bottom_stopsite_press.png b/OCH/mogo-och-charter-passenger/src/main/res/drawable-nodpi/charter_p_bottom_stopsite_press.png new file mode 100644 index 0000000000..4fbcdffb9c Binary files /dev/null and b/OCH/mogo-och-charter-passenger/src/main/res/drawable-nodpi/charter_p_bottom_stopsite_press.png differ diff --git a/OCH/mogo-och-charter-passenger/src/main/res/drawable-nodpi/charter_p_order_closedoor_normal.png b/OCH/mogo-och-charter-passenger/src/main/res/drawable-nodpi/charter_p_order_closedoor_normal.png new file mode 100644 index 0000000000..340b0ac8ce Binary files /dev/null and b/OCH/mogo-och-charter-passenger/src/main/res/drawable-nodpi/charter_p_order_closedoor_normal.png differ diff --git a/OCH/mogo-och-charter-passenger/src/main/res/drawable-nodpi/charter_p_order_closedoor_press.png b/OCH/mogo-och-charter-passenger/src/main/res/drawable-nodpi/charter_p_order_closedoor_press.png new file mode 100644 index 0000000000..0fa1c55f9b Binary files /dev/null and b/OCH/mogo-och-charter-passenger/src/main/res/drawable-nodpi/charter_p_order_closedoor_press.png differ diff --git a/OCH/mogo-och-charter-passenger/src/main/res/drawable-nodpi/charter_p_video.png b/OCH/mogo-och-charter-passenger/src/main/res/drawable-nodpi/charter_p_video.png new file mode 100644 index 0000000000..2cd4c46e7f Binary files /dev/null and b/OCH/mogo-och-charter-passenger/src/main/res/drawable-nodpi/charter_p_video.png differ diff --git a/OCH/mogo-och-charter-passenger/src/main/res/drawable-nodpi/m1_order_closedoor_normal.png b/OCH/mogo-och-charter-passenger/src/main/res/drawable-nodpi/m1_order_closedoor_normal.png deleted file mode 100644 index 6b4e7a5894..0000000000 Binary files a/OCH/mogo-och-charter-passenger/src/main/res/drawable-nodpi/m1_order_closedoor_normal.png and /dev/null differ diff --git a/OCH/mogo-och-charter-passenger/src/main/res/drawable-nodpi/m1_order_closedoor_press.png b/OCH/mogo-och-charter-passenger/src/main/res/drawable-nodpi/m1_order_closedoor_press.png deleted file mode 100644 index 102f3632af..0000000000 Binary files a/OCH/mogo-och-charter-passenger/src/main/res/drawable-nodpi/m1_order_closedoor_press.png and /dev/null differ diff --git a/OCH/mogo-och-charter-passenger/src/main/res/drawable-nodpi/m1_order_opendoor_normal.png b/OCH/mogo-och-charter-passenger/src/main/res/drawable-nodpi/m1_order_opendoor_normal.png index 7bdeb9ef5c..3c520fd5e1 100644 Binary files a/OCH/mogo-och-charter-passenger/src/main/res/drawable-nodpi/m1_order_opendoor_normal.png and b/OCH/mogo-och-charter-passenger/src/main/res/drawable-nodpi/m1_order_opendoor_normal.png differ diff --git a/OCH/mogo-och-charter-passenger/src/main/res/drawable/charter_p_bottom_go_selector.xml b/OCH/mogo-och-charter-passenger/src/main/res/drawable/charter_p_bottom_go_selector.xml new file mode 100644 index 0000000000..9f5ff15f84 --- /dev/null +++ b/OCH/mogo-och-charter-passenger/src/main/res/drawable/charter_p_bottom_go_selector.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/OCH/mogo-och-charter-passenger/src/main/res/drawable/charter_p_bottom_opendoor_normal.xml b/OCH/mogo-och-charter-passenger/src/main/res/drawable/charter_p_bottom_opendoor_normal.xml new file mode 100644 index 0000000000..aa69138bcc --- /dev/null +++ b/OCH/mogo-och-charter-passenger/src/main/res/drawable/charter_p_bottom_opendoor_normal.xml @@ -0,0 +1,7 @@ + + + + \ No newline at end of file diff --git a/OCH/mogo-och-charter-passenger/src/main/res/drawable/charter_p_bottom_opendoor_press.xml b/OCH/mogo-och-charter-passenger/src/main/res/drawable/charter_p_bottom_opendoor_press.xml new file mode 100644 index 0000000000..6510c0cfa4 --- /dev/null +++ b/OCH/mogo-och-charter-passenger/src/main/res/drawable/charter_p_bottom_opendoor_press.xml @@ -0,0 +1,7 @@ + + + + \ No newline at end of file diff --git a/OCH/mogo-och-charter-passenger/src/main/res/drawable/charter_p_bottom_opendoor_selector.xml b/OCH/mogo-och-charter-passenger/src/main/res/drawable/charter_p_bottom_opendoor_selector.xml new file mode 100644 index 0000000000..5c053a0f30 --- /dev/null +++ b/OCH/mogo-och-charter-passenger/src/main/res/drawable/charter_p_bottom_opendoor_selector.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/OCH/mogo-och-charter-passenger/src/main/res/drawable/charter_p_shape_end_order.xml b/OCH/mogo-och-charter-passenger/src/main/res/drawable/charter_p_shape_end_order.xml new file mode 100644 index 0000000000..1cc7325f05 --- /dev/null +++ b/OCH/mogo-och-charter-passenger/src/main/res/drawable/charter_p_shape_end_order.xml @@ -0,0 +1,6 @@ + + + + + \ No newline at end of file diff --git a/OCH/mogo-och-charter-passenger/src/main/res/drawable/charter_p_shape_end_order_left.xml b/OCH/mogo-och-charter-passenger/src/main/res/drawable/charter_p_shape_end_order_left.xml new file mode 100644 index 0000000000..18e583918f --- /dev/null +++ b/OCH/mogo-och-charter-passenger/src/main/res/drawable/charter_p_shape_end_order_left.xml @@ -0,0 +1,6 @@ + + + + + \ No newline at end of file diff --git a/OCH/mogo-och-charter-passenger/src/main/res/drawable/charter_p_shape_order_info.xml b/OCH/mogo-och-charter-passenger/src/main/res/drawable/charter_p_shape_order_info.xml new file mode 100644 index 0000000000..c786db4c18 --- /dev/null +++ b/OCH/mogo-och-charter-passenger/src/main/res/drawable/charter_p_shape_order_info.xml @@ -0,0 +1,6 @@ + + + + + \ No newline at end of file diff --git a/OCH/mogo-och-charter-passenger/src/main/res/drawable/m1_order_end_closedoor_selecotr.xml b/OCH/mogo-och-charter-passenger/src/main/res/drawable/m1_order_end_closedoor_selecotr.xml index 188d7b0179..272dc7dba4 100644 --- a/OCH/mogo-och-charter-passenger/src/main/res/drawable/m1_order_end_closedoor_selecotr.xml +++ b/OCH/mogo-och-charter-passenger/src/main/res/drawable/m1_order_end_closedoor_selecotr.xml @@ -1,6 +1,6 @@ - - - + + + \ No newline at end of file diff --git a/OCH/mogo-och-charter-passenger/src/main/res/layout/m1_bottom_bar.xml b/OCH/mogo-och-charter-passenger/src/main/res/layout/m1_bottom_bar.xml new file mode 100644 index 0000000000..9072d42d3e --- /dev/null +++ b/OCH/mogo-och-charter-passenger/src/main/res/layout/m1_bottom_bar.xml @@ -0,0 +1,200 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/OCH/mogo-och-charter-passenger/src/main/res/layout/m1_bottom_stop_site.xml b/OCH/mogo-och-charter-passenger/src/main/res/layout/m1_bottom_stop_site.xml new file mode 100644 index 0000000000..dc897cb176 --- /dev/null +++ b/OCH/mogo-och-charter-passenger/src/main/res/layout/m1_bottom_stop_site.xml @@ -0,0 +1,29 @@ + + + + + + + \ No newline at end of file diff --git a/OCH/mogo-och-charter-passenger/src/main/res/layout/m1_contain_fragment.xml b/OCH/mogo-och-charter-passenger/src/main/res/layout/m1_contain_fragment.xml index 72b87a24f1..f31d85ae64 100644 --- a/OCH/mogo-och-charter-passenger/src/main/res/layout/m1_contain_fragment.xml +++ b/OCH/mogo-och-charter-passenger/src/main/res/layout/m1_contain_fragment.xml @@ -3,57 +3,24 @@ android:layout_width="match_parent" android:layout_height="match_parent" android:id="@+id/cl_container" - android:background="@drawable/m1_function_bg" xmlns:app="http://schemas.android.com/apk/res-auto"> - - - - - - - + android:layout_width="match_parent" + android:layout_height="@dimen/dp_107"/> \ No newline at end of file diff --git a/OCH/mogo-och-charter-passenger/src/main/res/layout/m1_devices_fragment.xml b/OCH/mogo-och-charter-passenger/src/main/res/layout/m1_devices_fragment.xml index 8a66824115..998014b189 100644 --- a/OCH/mogo-och-charter-passenger/src/main/res/layout/m1_devices_fragment.xml +++ b/OCH/mogo-och-charter-passenger/src/main/res/layout/m1_devices_fragment.xml @@ -6,77 +6,140 @@ android:layout_height="match_parent"> + android:clickable="true" + android:layout_marginStart="@dimen/dp_26" + android:layout_width="@dimen/dp_327" + android:layout_height="@dimen/dp_270"> - - - - - + android:layout_height="wrap_content"/> - + android:layout_marginTop="@dimen/dp_31" + app:layout_constraintTop_toBottomOf="@+id/actv_order_phone" + android:text="09:00-18:00" + android:textSize="@dimen/dp_36" + android:textColor="@color/bus_p_m1_0050E1" + android:layout_width="wrap_content" + android:layout_height="wrap_content"/> + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/OCH/mogo-och-charter-passenger/src/main/res/layout/m1_main_fragment.xml b/OCH/mogo-och-charter-passenger/src/main/res/layout/m1_main_fragment.xml index 602eb96beb..d1cb6e2f66 100644 --- a/OCH/mogo-och-charter-passenger/src/main/res/layout/m1_main_fragment.xml +++ b/OCH/mogo-och-charter-passenger/src/main/res/layout/m1_main_fragment.xml @@ -60,7 +60,7 @@ app:layout_constraintEnd_toEndOf="@+id/mapBizView" app:layout_constraintStart_toStartOf="parent" /> - + - + - - - - - - - - + android:layout_width="match_parent" + android:layout_height="@dimen/dp_107"/> @@ -251,6 +214,14 @@ app:layout_constraintTop_toTopOf="parent" app:layout_constraintEnd_toEndOf="parent"/> + + - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/OCH/mogo-och-charter-passenger/src/main/res/values/attrs.xml b/OCH/mogo-och-charter-passenger/src/main/res/values/attrs.xml index 321bbf2246..2b68f358f0 100644 --- a/OCH/mogo-och-charter-passenger/src/main/res/values/attrs.xml +++ b/OCH/mogo-och-charter-passenger/src/main/res/values/attrs.xml @@ -5,4 +5,16 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/OCH/mogo-och-charter-passenger/src/main/res/values/color.xml b/OCH/mogo-och-charter-passenger/src/main/res/values/color.xml index 26fd58da09..ba01ce7ec1 100644 --- a/OCH/mogo-och-charter-passenger/src/main/res/values/color.xml +++ b/OCH/mogo-och-charter-passenger/src/main/res/values/color.xml @@ -18,12 +18,18 @@ #4A5375 #0F1E57 #225EFF + #0050E1 + #1466FB + #43CEFE #3B4056 #23293B #485173 #292C39 #2C2D31 #222222 + #090F28 + #5F7096 + #9AABD2 #662C2D31 #332C2D31 @@ -34,4 +40,5 @@ #91EFF6FF #CCFFFFFF #80FFFFFF + #F0E0EFFF \ No newline at end of file diff --git a/OCH/mogo-och-charter-passenger/src/main/res/values/strings.xml b/OCH/mogo-och-charter-passenger/src/main/res/values/strings.xml index 723d800b4f..e5630dd4b1 100644 --- a/OCH/mogo-och-charter-passenger/src/main/res/values/strings.xml +++ b/OCH/mogo-och-charter-passenger/src/main/res/values/strings.xml @@ -34,6 +34,8 @@ 剩余(分) 到达 + 靠边停车 + diff --git a/OCH/mogo-och-common-module/src/main/res/layout/dialog_bus_commit.xml b/OCH/mogo-och-common-module/src/main/res/layout/dialog_bus_commit.xml index d101d54f4e..65e1add2a9 100644 --- a/OCH/mogo-och-common-module/src/main/res/layout/dialog_bus_commit.xml +++ b/OCH/mogo-och-common-module/src/main/res/layout/dialog_bus_commit.xml @@ -78,7 +78,7 @@ android:gravity="center" app:layout_constraintTop_toBottomOf="@id/view_horizontal_line" app:layout_constraintBottom_toBottomOf="parent" - app:layout_constrintLeft_toLeftOf="parent" + app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintRight_toLeftOf="@id/view_vertical_line" /> diff --git a/app/build.gradle b/app/build.gradle index 881db2900c..3ddc5deb9e 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -71,6 +71,19 @@ if (!isAndroidTestBuild()) { } } +if (!isReleaseBuild) { + apply plugin: 'bytex.matrix' + + matrix { + trace { + enable = true //if you don't want to use trace canary, set false + baseMethodMapFile = "${project.buildDir}/matrix_output/customMethodMapping.txt" + blackListFile = "${project.projectDir}/matrixTrace/blackMethodList.txt" + } + logLevel = "D" + } +} + //if (!isAndroidTestBuild()) { // /** // * 方便使用systrace工具,在工程侧打点,便于分析工程侧性能问题 @@ -153,6 +166,7 @@ android { exclude 'META-INF/proguard/coroutines.pro' exclude 'META-INF/*' exclude "/lib/armeabi-v7a/*.so" + pickFirst 'lib/arm64-v8a/libc++_shared.so' } signingConfigs { @@ -198,8 +212,8 @@ android { } } compileOptions { - sourceCompatibility 1.8 - targetCompatibility 1.8 + sourceCompatibility JavaVersion.VERSION_1_8 + targetCompatibility JavaVersion.VERSION_1_8 } lintOptions { diff --git a/app/matrixTrace/blackMethodList.txt b/app/matrixTrace/blackMethodList.txt new file mode 100644 index 0000000000..16fbc0f824 --- /dev/null +++ b/app/matrixTrace/blackMethodList.txt @@ -0,0 +1,16 @@ +[package] +-keeppackage com/mogo/thread/ext/ +-keeppackage com/mogo/launcher +-keeppackage com/rousetime/android_startup/ +-keeppackage com/mogo/systrace/ +-keeppackage com/bytedance/boost_multidex/ +-keeppackage io/netty/ +-keeppackage com/elegant/log/ +-keeppackage org/slf4j/ +-keeppackage kotlin/ +-keepclass com.mogo.eagle.core.function.main.MainMoGoApplication +-keepclass com.mogo.commons.AbsMogoApplication +-keepclass com.bytedance.apm.agent.v2.instrumentation.AppAgent +-keepclass androidx.core.app.CoreComponentFactory +-keepclass com.mogo.eagle.core.utilcode.util.ProcessUtils +-keepclass com.mogo.eagle.core.utilcode.mogo.AppLaunchTimeUtils \ No newline at end of file diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index c147f4e189..5acc09c801 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -12,8 +12,9 @@ android:icon="@drawable/ic_launcher" android:label="@string/app_shell_name" android:largeHeap="true" - android:resizeableActivity="false" + android:networkSecurityConfig="@xml/network_security_config" android:requestLegacyExternalStorage="true" + android:resizeableActivity="false" android:supportsRtl="true" android:theme="@style/AppTheme.App" android:usesCleartextTraffic="true" diff --git a/build.gradle b/build.gradle index e235bf63ec..f787dc31c8 100644 --- a/build.gradle +++ b/build.gradle @@ -36,8 +36,7 @@ buildscript { classpath 'com.google.protobuf:protobuf-gradle-plugin:0.8.18' classpath 'com.mogo.sticky:service:1.0.8' classpath 'io.github.knight-zxw:lancet-plugin:0.0.4.8_mogo' - -// classpath ("com.tencent.matrix:matrix-gradle-plugin:0.6.6") { changing = true } + classpath 'com.mogo.cloud:matrix:1.0.0' } // 遇无法更新依赖情况(针对Snapshot无法刷新)然后sync project即可,刷新完成注释该代码 // configurations.all { diff --git a/core/function-impl/mogo-core-function-devatools/build.gradle b/core/function-impl/mogo-core-function-devatools/build.gradle index 73d09b3558..cb12b5a242 100644 --- a/core/function-impl/mogo-core-function-devatools/build.gradle +++ b/core/function-impl/mogo-core-function-devatools/build.gradle @@ -90,6 +90,11 @@ dependencies { implementation rootProject.ext.dependencies.androidautoSize implementation rootProject.ext.dependencies.koomnative implementation rootProject.ext.dependencies.koomxhook + implementation group: "com.tencent.matrix", name: "matrix-android-lib", version: MATRIX_VERSION, changing: true + implementation group: "com.tencent.matrix", name: "matrix-android-commons", version: MATRIX_VERSION, changing: true + implementation group: "com.tencent.matrix", name: "matrix-trace-canary", version: MATRIX_VERSION, changing: true + implementation group: "com.tencent.matrix", name: "matrix-io-canary", version: MATRIX_VERSION, changing: true + implementation group: "com.tencent.matrix", name: "matrix-hooks", version: MATRIX_VERSION, changing: true if (Boolean.valueOf(USE_MAVEN_PACKAGE)) { implementation rootProject.ext.dependencies.mogo_core_utils 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 1401d33981..99896cc557 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 @@ -8,8 +8,9 @@ import com.alibaba.android.arouter.facade.annotation.Route import com.mogo.commons.AbsMogoApplication import com.mogo.commons.debug.DebugConfig import com.mogo.eagle.core.data.EnvConfig -import com.mogo.eagle.core.data.deva.bindingcar.ModifyBindingcarInfo import com.mogo.eagle.core.data.constants.MogoServicePaths +import com.mogo.eagle.core.data.deva.bindingcar.ModifyBindingcarInfo +import com.mogo.eagle.core.data.deva.chain.ChainConstant import com.mogo.eagle.core.data.deva.chain.ChainLogParam import com.mogo.eagle.core.data.deva.scene.SceneModule import com.mogo.eagle.core.data.deva.scene.SceneTAG @@ -19,6 +20,16 @@ import com.mogo.eagle.core.function.api.devatools.apm.* import com.mogo.eagle.core.function.api.devatools.strict.* import com.mogo.eagle.core.function.call.map.* import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger +import com.mogo.eagle.core.utilcode.mogo.logger.CallerLogger.w +import com.tencent.matrix.Matrix +import com.tencent.matrix.iocanary.IOCanaryPlugin +import com.tencent.matrix.iocanary.config.IOConfig +import com.tencent.matrix.plugin.Plugin +import com.tencent.matrix.plugin.PluginListener +import com.tencent.matrix.report.Issue +import com.tencent.matrix.trace.TracePlugin +import com.tencent.matrix.trace.config.SharePluginInfo +import com.tencent.matrix.trace.config.TraceConfig import com.zhjt.mogo_core_function_devatools.apm.* import com.zhjt.mogo_core_function_devatools.badcase.BadCaseManager import com.zhjt.mogo_core_function_devatools.badcase.consts.BadCaseConfig @@ -28,11 +39,11 @@ import com.zhjt.mogo_core_function_devatools.funcconfig.FuncConfigCenter.Compani import com.zhjt.mogo_core_function_devatools.funcconfig.FuncConfigImpl import com.zhjt.mogo_core_function_devatools.koom.KoomInitTask import com.zhjt.mogo_core_function_devatools.logcatch.MogoLogCatchManager +import com.zhjt.mogo_core_function_devatools.matrix.DynamicConfigImpl import com.zhjt.mogo_core_function_devatools.mofang.MoFangManager.Companion.moFangManager import com.zhjt.mogo_core_function_devatools.monitor.MonitorManager import com.zhjt.mogo_core_function_devatools.monitor.db.MonitorDb import com.zhjt.mogo_core_function_devatools.monitor.db.MonitorDb.Companion.getDb -import com.zhjt.mogo_core_function_devatools.report.IPCReportManager import com.zhjt.mogo_core_function_devatools.report.IPCReportManager.Companion.iPCReportManager import com.zhjt.mogo_core_function_devatools.scene.SceneManager.Companion.sceneManager import com.zhjt.mogo_core_function_devatools.status.StatusManager @@ -40,6 +51,8 @@ import com.zhjt.mogo_core_function_devatools.strict.* import com.zhjt.mogo_core_function_devatools.trace.TraceManager.Companion.traceManager import com.zhjt.mogo_core_function_devatools.tts.TtsManager.Companion.ttsManager import com.zhjt.mogo_core_function_devatools.upgrade.UpgradeManager.Companion.upgradeManager +import com.zhjt.service.chain.ChainLog +import com.zhjt.service.chain.TracingConstants.Endpoint.Companion.PAD @Route(path = MogoServicePaths.PATH_DEVA_TOOLS) class DevaToolsProvider : IDevaToolsProvider { @@ -62,12 +75,13 @@ class DevaToolsProvider : IDevaToolsProvider { } override fun initBiz() { - if (DebugConfig.isDebug()) { - KoomInitTask.init(AbsMogoApplication.getApp()) - } - ttsManager.initTts(mContext!!) //todo //链路相关 traceManager.init(mContext!!) + if (DebugConfig.isDebug()) { + KoomInitTask.init(AbsMogoApplication.getApp()) + initMatrix() + } + ttsManager.initTts(mContext!!) //todo bizConfigCenter.init(mContext!!) FuncConfigImpl.init() MogoLogCatchManager.init(mContext!!) @@ -103,6 +117,76 @@ class DevaToolsProvider : IDevaToolsProvider { } } + private fun initMatrix() { + val builder: Matrix.Builder = Matrix.Builder(AbsMogoApplication.getApp()) + builder.pluginListener(object : PluginListener { + override fun onInit(plugin: Plugin?) { + } + + override fun onStart(plugin: Plugin?) { + } + + override fun onStop(plugin: Plugin?) { + } + + override fun onDestroy(plugin: Plugin?) { + } + + override fun onReportIssue(issue: Issue?) { + var isEvil = false + issue?.apply { + if (plugin is TracePlugin) { + if (tag == SharePluginInfo.TAG_PLUGIN_EVIL_METHOD) { + isEvil = true + printEvilMsg(issue.toString()) + } + } + } + if (!isEvil) { + w("TraceCanary", issue?.toString()) + } + } + }) + val config: TraceConfig = TraceConfig.Builder() + .enableFPS(true) // 帧率 + .enableEvilMethodTrace(true) // 慢方法 + .enableAnrTrace(true) // anr + .enableStartup(true) // app启动 + .isDebug(true) // debug包 + .isDevEnv(true) // dev环境 + .build() + + // Trace Canary插件 + val tracePlugin = TracePlugin(config) + builder.plugin(tracePlugin) + + val ioCanaryPlugin = IOCanaryPlugin( + IOConfig.Builder() + .dynamicConfig(DynamicConfigImpl()) + .build()) + + builder.plugin(ioCanaryPlugin) + + Matrix.init(builder.build()) + // 日志刷太快,关掉 + Matrix.setLogIml(null) + // 开启Trace Canary + tracePlugin.start() + ioCanaryPlugin.start() + } + + @ChainLog( + linkChainLog = ChainConstant.CHAIN_LINK_LOG_ANR, + linkCode = ChainConstant.CHAIN_LINK_ANR, + endpoint = PAD, + nodeAliasCode = ChainConstant.CHAIN_ALIAS_CODE_RECORD_ANR, + paramIndexes = [0], + clientPkFileName = "sn" + ) + private fun printEvilMsg(evilMethod: String) { + w("TraceCanary", evilMethod) + } + override fun startLogCatch() { MogoLogCatchManager.startCatchLog() } diff --git a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/matrix/DynamicConfigImpl.kt b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/matrix/DynamicConfigImpl.kt new file mode 100644 index 0000000000..aa4cf8ea67 --- /dev/null +++ b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/matrix/DynamicConfigImpl.kt @@ -0,0 +1,43 @@ +package com.zhjt.mogo_core_function_devatools.matrix + +import com.tencent.mrs.plugin.IDynamicConfig + +class DynamicConfigImpl: IDynamicConfig { + + fun isFPSEnable(): Boolean { + return true + } + + fun isTraceEnable(): Boolean { + return true + } + + fun isMatrixEnable(): Boolean { + return true + } + + fun isDumpHprof(): Boolean { + return false + } + + override fun get(key: String?, defStr: String?): String { + return "" + } + + override fun get(key: String?, defInt: Int): Int { + return 0 + } + + override fun get(key: String?, defLong: Long): Long { + return 0L + } + + override fun get(key: String?, defBool: Boolean): Boolean { + return false + } + + override fun get(key: String?, defFloat: Float): Float { + return 0f + } + +} \ 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/trace/TraceManager.kt b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/trace/TraceManager.kt index ccbb9080a5..04ead7915d 100644 --- a/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/trace/TraceManager.kt +++ b/core/function-impl/mogo-core-function-devatools/src/main/java/com/zhjt/mogo_core_function_devatools/trace/TraceManager.kt @@ -67,6 +67,8 @@ class TraceManager : IMoGoCloudListener, IMoGoAutopilotCarConfigListener { FwBuild(true, -1, pkgName + ChainConstant.CHAIN_LINK_LOG_ADAS_PLANNING_ACTIONS) fwBuildMap[ChainConstant.CHAIN_LINK_LOG_NATIVE_LEAK] = FwBuild(true, -1, pkgName + ChainConstant.CHAIN_LINK_LOG_RECORD_NATIVE_LEAK) + fwBuildMap[ChainConstant.CHAIN_LINK_LOG_ANR] = + FwBuild(true, -1, pkgName + ChainConstant.CHAIN_LINK_LOG_RECORD_ANR) fwBuildMap[ChainConstant.CHAIN_LINK_LOG_CLOUD_V2N] = FwBuild(true, -1, pkgName + ChainConstant.CHAIN_LINK_LOG_CLOUD_WEB_SOCKET_V2N) @@ -91,6 +93,8 @@ class TraceManager : IMoGoCloudListener, IMoGoAutopilotCarConfigListener { ChainLogParam(true, "ADAS PLANNING 决策行为") traceInfoCache[ChainConstant.CHAIN_LINK_LOG_NATIVE_LEAK] = ChainLogParam(true, "Native Leak Record") + traceInfoCache[ChainConstant.CHAIN_LINK_LOG_ANR] = + ChainLogParam(true, "ANR Record") traceInfoCache[ChainConstant.CHAIN_LINK_LOG_CLOUD_V2N] = ChainLogParam(true, "Cloud WebSocket V2N") diff --git a/core/function-impl/mogo-core-function-hmi/src/main/res/values/dimens.xml b/core/function-impl/mogo-core-function-hmi/src/main/res/values/dimens.xml index f32d808bef..c8e191641e 100644 --- a/core/function-impl/mogo-core-function-hmi/src/main/res/values/dimens.xml +++ b/core/function-impl/mogo-core-function-hmi/src/main/res/values/dimens.xml @@ -15,6 +15,7 @@ 18dp 30dp 34dp + 34.5dp 36dp 38dp 42dp diff --git a/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/deva/chain/ChainConstant.kt b/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/deva/chain/ChainConstant.kt index 0d44eb84ee..9810ff6e11 100644 --- a/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/deva/chain/ChainConstant.kt +++ b/core/mogo-core-data/src/main/java/com/mogo/eagle/core/data/deva/chain/ChainConstant.kt @@ -12,6 +12,8 @@ class ChainConstant { const val CHAIN_LINK_INIT = 2 // Native内存泄漏 const val CHAIN_LINK_LEAK = 10 + // ANR + const val CHAIN_LINK_ANR = 11 const val CHAIN_LINK_LOG_CONNECT_STATUS = 0 const val CHAIN_LINK_LOG_WEB_SOCKET_GNSSINFO = 1 @@ -24,6 +26,7 @@ class ChainConstant { const val CHAIN_LINK_LOG_WEB_SOCKET_PLANNING_ACTIONS = 8 const val CHAIN_LINK_LOG_NATIVE_LEAK = 100 const val CHAIN_LINK_LOG_CLOUD_V2N = 200 + const val CHAIN_LINK_LOG_ANR = 300 const val CHAIN_LINK_LOG_ADAS_INIT = "-eagleInitStatus" const val CHAIN_LINK_LOG_ADAS_GNSS = "-adasWsGnssInfo" @@ -36,6 +39,7 @@ class ChainConstant { const val CHAIN_LINK_LOG_ADAS_PLANNING_ACTIONS = "-adasWsPlanningActions" const val CHAIN_LINK_LOG_RECORD_NATIVE_LEAK = "-eagleRecordNativeLeak" const val CHAIN_LINK_LOG_CLOUD_WEB_SOCKET_V2N = "-eagleCloudWSV2N" + const val CHAIN_LINK_LOG_RECORD_ANR = "-eagleRecordANR" const val CHAIN_ALIAS_CODE_MULTI_CONNECT = "CHAIN_ALIAS_CODE_MULTI_CONNECT" const val CHAIN_ALIAS_CODE_ADAS_MESSAGE_CAR_CONFIG = "CHAIN_ALIAS_CODE_CAR_CONFIG" @@ -55,6 +59,7 @@ class ChainConstant { const val CHAIN_ALIAS_CODE_ADAS_MESSAGE_AUTOPILOT_WARN = "PAD_ADAS_MESSAGE_AUTOPILOT_WARN" const val CHAIN_ALIAS_CODE_RECORD_NATIVE_LEAK = "CHAIN_ALIAS_CODE_RECORD_NATIVE_LEAK" + const val CHAIN_ALIAS_CODE_RECORD_ANR = "CHAIN_ALIAS_CODE_RECORD_ANR" const val CHAIN_ALIAS_CODE_INIT_ENV_RESTART = "CHAIN_ALIAS_CODE_INIT_ENV_RESTART" const val CHAIN_ALIAS_CODE_APP_INFO_CONFIG_UPDATE = "CHAIN_ALIAS_CODE_APP_INFO_CONFIG_UPDATE" diff --git a/core/mogo-core-res/src/main/res/values/dimens.xml b/core/mogo-core-res/src/main/res/values/dimens.xml index e957709e6e..84b201c229 100644 --- a/core/mogo-core-res/src/main/res/values/dimens.xml +++ b/core/mogo-core-res/src/main/res/values/dimens.xml @@ -30,6 +30,7 @@ 7.5dp 8dp 9dp + 9.5dp 10dp 11dp 12dp diff --git a/gradle.properties b/gradle.properties index 3e03900c04..7fdf79cf4c 100644 --- a/gradle.properties +++ b/gradle.properties @@ -146,6 +146,8 @@ ADAS_DATA_LIB_CHILD_VERSION=.0 # 线程优化版本 THREAD_OPT_VERSION=4.0.1 +# matrix版本 +MATRIX_VERSION=2.0.8 # 测试模式司机端版本号 NOOP_DRIVER_VERSION=3.1.0