[charter]

[3.2.0]
[底部导航栏功能]
This commit is contained in:
yangyakun
2023-04-27 18:34:31 +08:00
parent a591dd4387
commit 6a54b17f13
52 changed files with 910 additions and 150 deletions

View File

@@ -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<M1CarUserNoOrderFragment?>(view){

View File

@@ -1,15 +1,7 @@
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
import com.mogo.och.bus.passenger.ui.dialogfragment.fragment.M1DeviceFragment
class BusPassengerFunctionDevicePresenter(view: M1DeviceFragment?) :
BusBasePassengerFunctionDevicePresenter<M1DeviceFragment?>(view) {

View File

@@ -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<M1OrderFragment?>(view), IOrderStatusChangeListener {
class BusPassengerFunctionOrderPresenter(view: M1OrderLineFragment?) :
BusBasePassengerFunctionDevicePresenter<M1OrderLineFragment?>(view), IOrderStatusChangeListener {
companion object{

View File

@@ -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<M1ContainFragment?>(view) {

View File

@@ -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

View File

@@ -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<M1VideoFragment?>(view)

View File

@@ -0,0 +1,19 @@
package com.mogo.och.bus.passenger.presenter
import androidx.lifecycle.LifecycleOwner
import com.mogo.och.bus.passenger.ui.dialogfragment.M1ContainFragment
import com.mogo.och.bus.passenger.ui.dialogfragment.OrderInfoDialogFragment
class OrderInfoPresenter(view: OrderInfoDialogFragment?) :
BusBasePassengerFunctionDevicePresenter<OrderInfoDialogFragment?>(view) {
companion object{
private const val TAG = "BusPassengerFunctionPresenter"
}
override fun onCreate(owner: LifecycleOwner) {
super.onCreate(owner)
}
override fun onDestroy(owner: LifecycleOwner) {
super.onDestroy(owner)
}
}

View File

@@ -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.*
/**

View File

@@ -1,20 +1,17 @@
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
@@ -22,10 +19,11 @@ 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.bus.passenger.ui.dialogfragment.M1CarUserNoOrderFragment
import com.mogo.och.bus.passenger.ui.dialogfragment.M1ContainFragment
import com.mogo.och.bus.passenger.ui.dialogfragment.OrderInfoDialogFragment
import com.mogo.och.common.module.biz.constant.LoginStatusManager
import kotlinx.android.synthetic.main.m1_main_fragment.*
import java.lang.ref.WeakReference
@@ -38,6 +36,7 @@ class MainFragment :
MvpFragment<MainFragment?, BusPassengerPresenter?>() {
private var bpFunctionGroupDialogFragment: WeakReference<M1ContainFragment>? = null
private var orderInfoDialogFragment: WeakReference<OrderInfoDialogFragment>? = null
private var m1CarUserNoOrderFragment: WeakReference<M1CarUserNoOrderFragment>? = null
val endStation =
@@ -52,34 +51,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 +65,12 @@ class MainFragment :
}
})
bb_boorombar.setSettingClickListener(object :OnClickListener{
override fun onClick(v: View?) {
openOrderInfoPage()
}
})
}
private fun openSettingPage(tab: String) {
@@ -135,6 +112,45 @@ class MainFragment :
}
}
private fun openOrderInfoPage() {
val fragmentByTag: Fragment? = childFragmentManager.findFragmentByTag(
OrderInfoDialogFragment.TAG)
if (fragmentByTag is DialogFragment) {
if (fragmentByTag.dialog != null && fragmentByTag.dialog!!.isShowing) {
CallerLogger.d(SceneConstant.M_BUS_P + TAG, "正在展示")
return
}
if (fragmentByTag.dialog != null && fragmentByTag.isAdded) {
if (AppStateManager.currentActivity() == null) { // 没有在当前应用内 在启动页面关闭应用
CallerLogger.d(SceneConstant.M_BUS_P + TAG, "权限验证")
return
}
}
}
if (orderInfoDialogFragment?.get() == null) {
orderInfoDialogFragment = WeakReference(OrderInfoDialogFragment.newInstance())
}
val bpFunctionGroup = orderInfoDialogFragment?.get()
if (bpFunctionGroup != null) {
if (bpFunctionGroup.dialog != null && bpFunctionGroup.dialog!!.isShowing) {
return
}
if (bpFunctionGroup.isAdded) { //解决方法就是添加这行代码如果已经添加了就移除掉然后再show就不会出现Fragment already added的错误了。
parentFragmentManager.beginTransaction().remove(bpFunctionGroup)
.commitAllowingStateLoss()
}
if (ClickUtils.isFastClick()) {
bpFunctionGroup.show(parentFragmentManager, TAG)
CallerLogger.d(SceneConstant.M_BUS_P + TAG, "展示")
} else {
CallerLogger.d(
SceneConstant.M_BUS_P + TAG, "dialog 1s内执行一次"
)
}
}
}
fun setSpeed(speed: String) {
tv_speed.text = speed

View File

@@ -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)
}

View File

@@ -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
@@ -16,6 +16,11 @@ 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.*
import com.mogo.och.bus.passenger.ui.dialogfragment.fragment.M1DeviceFragment
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 kotlinx.android.synthetic.main.m1_contain_fragment.*
/**
@@ -38,7 +43,7 @@ class M1ContainFragment :
savedInstanceState?.let {
tab = it.getString(SELECTTAB, tab)
}
isEarlyClose = tab==SETTINGENDORDERTAB
isEarlyClose = tab== SETTINGENDORDERTAB
setStyle(STYLE_NO_TITLE, R.style.DialogFullScreen) //dialog全屏
}
@@ -61,8 +66,8 @@ class M1ContainFragment :
}
SETTINGORDERTAB -> {
fragment =
childFragmentManager.findFragmentByTag(M1OrderFragment.TAG)
?: M1OrderFragment.newInstance(object :ChangeCheck{
childFragmentManager.findFragmentByTag(M1OrderLineFragment.TAG)
?: M1OrderLineFragment.newInstance(object : ChangeCheck {
override fun changeChange() {
cb_bp_setting_device.isChecked = true
}
@@ -71,7 +76,7 @@ class M1ContainFragment :
SETTINGENDORDERTAB -> {
fragment =
childFragmentManager.findFragmentByTag(M1EarlyEndOrderFragment.TAG)
?: M1EarlyEndOrderFragment.newInstance(object :ContainDismiss{
?: M1EarlyEndOrderFragment.newInstance(object : ContainDismiss {
override fun closeDialog() {
dismissAllowingStateLoss()
}
@@ -112,7 +117,7 @@ class M1ContainFragment :
}
private val videoListener = CompoundButton.OnCheckedChangeListener { _, isChecked ->
CallerLogger.d(M_BUS_P+TAG, "videoListener$isChecked")
CallerLogger.d(M_BUS_P+ TAG, "videoListener$isChecked")
if (isChecked) {
tab = VIDEOTAB
fragmentTag = M1VideoFragment.TAG
@@ -131,7 +136,7 @@ class M1ContainFragment :
}
private val settingDevices = CompoundButton.OnCheckedChangeListener { _, isChecked ->
CallerLogger.d(M_BUS_P+TAG, "settingDevices$isChecked")
CallerLogger.d(M_BUS_P+ TAG, "settingDevices$isChecked")
if (isChecked) {
tab = SETTINGDEVICETAB
fragmentTag = M1DeviceFragment.TAG
@@ -150,7 +155,7 @@ class M1ContainFragment :
}
private val settingSoft = CompoundButton.OnCheckedChangeListener { _, isChecked ->
CallerLogger.d(M_BUS_P+TAG, "settingSoft$isChecked")
CallerLogger.d(M_BUS_P+ TAG, "settingSoft$isChecked")
if (isChecked) {
tab = SETTINGSOFTTAB
fragmentTag = M1SoftFragment.TAG
@@ -168,14 +173,14 @@ class M1ContainFragment :
}
}
private val settingOrder = CompoundButton.OnCheckedChangeListener { _, isChecked ->
CallerLogger.d(M_BUS_P+TAG, "settingOrder$isChecked")
CallerLogger.d(M_BUS_P+ TAG, "settingOrder$isChecked")
if (isChecked) {
if(isEarlyClose){
tab = SETTINGENDORDERTAB
}else{
tab = SETTINGORDERTAB
}
fragmentTag = M1OrderFragment.TAG
fragmentTag = M1OrderLineFragment.TAG
cb_bp_video_player.isChecked = false
cb_bp_setting_device.isChecked = false
cb_bp_setting_soft.isChecked = false
@@ -234,7 +239,7 @@ class M1ContainFragment :
}
override fun onViewStateRestored(savedInstanceState: Bundle?) {
CallerLogger.d(M_BUS_P+TAG, "onViewStateRestored")
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)

View File

@@ -0,0 +1,130 @@
package com.mogo.och.bus.passenger.ui.dialogfragment
import android.os.Bundle
import android.util.DisplayMetrics
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.och.bus.passenger.R
import com.mogo.och.bus.passenger.presenter.OrderInfoPresenter
import com.mogo.och.bus.passenger.ui.*
import kotlinx.android.synthetic.main.m1_contain_fragment.*
import kotlinx.android.synthetic.main.orderinfo_fragment.*
import me.jessyan.autosize.AutoSizeCompat
import me.jessyan.autosize.utils.AutoSizeUtils
import me.jessyan.autosize.utils.ScreenUtils
/**
* @author: yangyakun
* @date: 2023/1/28
*/
class OrderInfoDialogFragment :
MvpDialogFragment<OrderInfoDialogFragment?, OrderInfoPresenter?>() {
var fragment: Fragment? = null
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
arguments?.let {
}
savedInstanceState?.let {
}
setStyle(STYLE_NO_TITLE, R.style.DialogFullScreen) //dialog全屏
}
override fun getLayoutId(): Int = R.layout.orderinfo_fragment
override fun getTagName(): String = TAG
override fun initViews() {
dialog?.setCancelable(true)
cl_container_order_info.setOnClickListener {
dismissAllowingStateLoss()
}
}
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)
}
}
}
override fun onSaveInstanceState(outState: Bundle) {
super.onSaveInstanceState(outState)
context?.let {
}
}
override fun createPresenter(): OrderInfoPresenter =
OrderInfoPresenter(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")
super.onViewStateRestored(savedInstanceState)
}
companion object {
const val TAG = "BusPassengerFunctionFragment"
@JvmStatic
fun newInstance(): OrderInfoDialogFragment {
val args = Bundle()
val fragment = OrderInfoDialogFragment()
fragment.arguments = args
return fragment
}
}
}

View File

@@ -1,12 +1,9 @@
package com.mogo.och.bus.passenger.ui
package com.mogo.och.bus.passenger.ui.dialogfragment.fragment
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

View File

@@ -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<M1OrderFragment?, BusPassengerFunctionOrderPresenter?>() {
class M1OrderLineFragment :
MvpFragment<M1OrderLineFragment?, BusPassengerFunctionOrderPresenter?>() {
private var changeCheck: M1ContainFragment.ChangeCheck? = null
@@ -245,9 +246,9 @@ class M1OrderFragment :
const val TAG = "BusPassengerFunctionOrderFragment"
@JvmStatic
fun newInstance(changeCheck: M1ContainFragment.ChangeCheck): M1OrderFragment {
fun newInstance(changeCheck: M1ContainFragment.ChangeCheck): M1OrderLineFragment {
val args = Bundle()
val fragment = M1OrderFragment()
val fragment = M1OrderLineFragment()
fragment.arguments = args
fragment.changeCheck = changeCheck
return fragment

View File

@@ -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

View File

@@ -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

View File

@@ -0,0 +1,29 @@
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)
}
override fun onAttachedToWindow() {
super.onAttachedToWindow()
}
fun setSettingClickListener(click:OnClickListener){
actv_setting.setOnClickListener(click)
}
}

View File

@@ -0,0 +1,128 @@
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
private var showBackageView = true
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))
if(showBackageView) {
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))
if(showBackageView) {
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))
if(showBackageView) {
backageView?.visibility = View.GONE
}
}
}
else -> {}
}
return false
}
})
}
fun setCheckItem(isCheck:Boolean){
if(isCheck!=showBackageView){
showBackageView = isCheck
notifiBackageView()
}
}
private fun notifiBackageView() {
if(showBackageView){
backageView?.visibility = View.VISIBLE
}else{
backageView?.visibility = View.GONE
}
}
override fun onAttachedToWindow() {
super.onAttachedToWindow()
parent?.let {
if (parent is ConstraintLayout) {
if (backageViewId > 0) {
backageView = (parent as ConstraintLayout).findViewById(backageViewId)
}
}
}
}
}

View File

@@ -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,7 +19,7 @@ class CloseDoorView @JvmOverloads constructor(
context: Context,
attrs: AttributeSet? = null,
defStyleAttr: Int = 0
) : AppCompatTextView(context, attrs, defStyleAttr) {
) : BottomClickView(context, attrs, defStyleAttr) {
init {
setOnClickListener {
@@ -27,6 +29,6 @@ class CloseDoorView @JvmOverloads constructor(
private fun go2OpenDoor(){
LightAirconditionDoorManager.go2OpenDoor(false)
SoundPoolHelper.getSoundPoolHelper().playSoundWithRedId(context, R.raw.bus_di)
SoundPoolHelper.getSoundPoolHelper().playSoundWithRedId(ActivityUtils.getActivityByContext(context), R.raw.bus_di)
}
}

View File

@@ -1,15 +1,22 @@
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.common.module.utils.SoundPoolHelper
import kotlinx.android.synthetic.main.m1_bottom_bar.view.*
class GoView @JvmOverloads constructor(
context: Context,
@@ -17,10 +24,34 @@ class GoView @JvmOverloads constructor(
defStyleAttr: Int = 0
) : AppCompatTextView(context, attrs, defStyleAttr) {
companion object{
private const val TAG = "GoView"
}
init {
setOnClickListener {
startGo()
}
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() }
}
private fun startGo(){
@@ -45,6 +76,6 @@ class GoView @JvmOverloads constructor(
}
else -> {}
}
SoundPoolHelper.getSoundPoolHelper().playSoundWithRedId(context, R.raw.bus_di)
SoundPoolHelper.getSoundPoolHelper().playSoundWithRedId(ActivityUtils.getActivityByContext(context), R.raw.bus_di)
}
}

View File

@@ -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,7 +13,7 @@ class OpenDoorView @JvmOverloads constructor(
context: Context,
attrs: AttributeSet? = null,
defStyleAttr: Int = 0
) : AppCompatTextView(context, attrs, defStyleAttr) {
) : BottomClickView(context, attrs, defStyleAttr) {
init {
setOnClickListener {
@@ -21,7 +23,7 @@ class OpenDoorView @JvmOverloads constructor(
private fun go2OpenDoor(){
LightAirconditionDoorManager.go2OpenDoor(true)
SoundPoolHelper.getSoundPoolHelper().playSoundWithRedId(context, R.raw.bus_di)
SoundPoolHelper.getSoundPoolHelper().playSoundWithRedId(ActivityUtils.getActivityByContext(context), R.raw.bus_di)
}
}

View File

@@ -1,20 +1,32 @@
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 {
@@ -39,6 +51,6 @@ class StopSiteView @JvmOverloads constructor(
}
else -> {}
}
SoundPoolHelper.getSoundPoolHelper().playSoundWithRedId(context, R.raw.bus_di)
SoundPoolHelper.getSoundPoolHelper().playSoundWithRedId(ActivityUtils.getActivityByContext(context), R.raw.bus_di)
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 62 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 51 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 31 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 48 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.5 KiB

View File

@@ -0,0 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/charter_p_bottom_center_press" android:state_pressed="true"/>
<item android:drawable="@drawable/charter_p_bottom_center_normal" android:state_pressed="false"/>
<item android:drawable="@drawable/charter_p_bottom_center_normal"/>
</selector>

View File

@@ -0,0 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
<item
android:drawable="@drawable/charter_p_bottom_opendoor_normal_nor_src" android:gravity="center"
android:width="@dimen/dp_90"
android:height="@dimen/dp_90"/>
</layer-list >

View File

@@ -0,0 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
<item
android:drawable="@drawable/charter_p_bottom_opendoor_normal_press_src" android:gravity="center"
android:width="@dimen/dp_90"
android:height="@dimen/dp_90"/>
</layer-list >

View File

@@ -0,0 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/charter_p_bottom_opendoor_press" android:state_pressed="true"/>
<item android:drawable="@drawable/charter_p_bottom_opendoor_normal" android:state_pressed="false"/>
<item android:drawable="@drawable/charter_p_bottom_opendoor_normal"/>
</selector>

View File

@@ -0,0 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<corners android:radius="@dimen/dp_39"/>
<gradient android:startColor="@color/bus_p_m1_1466FB" android:endColor="@color/bus_p_m1_43CEFE"/>
</shape>

View File

@@ -0,0 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<corners android:radius="@dimen/dp_39"/>
<solid android:color="@color/bus_p_m1_9aabd2"/>
</shape>

View File

@@ -0,0 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<corners android:radius="@dimen/dp_36"/>
<solid android:color="@color/bus_p_m1_f0e0efff"/>
</shape>

View File

@@ -0,0 +1,198 @@
<?xml version="1.0" encoding="utf-8"?>
<merge xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="@dimen/dp_107"
xmlns:app="http://schemas.android.com/apk/res-auto"
tools:parentTag="androidx.constraintlayout.widget.ConstraintLayout"
tools:ignore="MissingDefaultResource">
<com.mogo.och.bus.passenger.ui.view.bottom.impl.GoView
android:id="@+id/aciv_center_image"
android:text="出发"
android:gravity="center"
android:textSize="@dimen/dp_48"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
android:textColor="@android:color/white"
android:layout_width="@dimen/dp_489"
android:layout_height="@dimen/dp_107"/>
<androidx.appcompat.widget.AppCompatImageView
android:id="@+id/actv_stop_site_press"
android:visibility="gone"
android:src="@drawable/charter_bottom_bar_select_bg"
app:layout_constraintStart_toStartOf="@+id/actv_stop_site"
app:layout_constraintEnd_toEndOf="@+id/actv_stop_site"
android:layout_width="@dimen/dp_359"
android:layout_height="@dimen/dp_107"/>
<com.mogo.och.bus.passenger.ui.view.bottom.impl.StopSiteView
android:id="@+id/actv_stop_site"
app:backageViewId="@+id/actv_stop_site_press"
app:selectedDrawable="@drawable/charter_p_bottom_stopsite_press"
app:normalDrawable="@drawable/charter_p_bottom_stopsite_normal"
app:bottomTitle="靠边停车"
app:layout_constraintStart_toEndOf="@+id/aciv_center_image"
app:layout_constraintEnd_toStartOf="@+id/actv_close_door"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintBottom_toBottomOf="parent"
android:layout_width="wrap_content"
android:layout_height="match_parent"/>
<androidx.appcompat.widget.AppCompatImageView
android:id="@+id/actv_close_door_press"
android:visibility="gone"
android:src="@drawable/charter_bottom_bar_select_bg"
app:layout_constraintStart_toStartOf="@+id/actv_close_door"
app:layout_constraintEnd_toEndOf="@+id/actv_close_door"
android:layout_width="@dimen/dp_359"
android:layout_height="@dimen/dp_107"/>
<com.mogo.och.bus.passenger.ui.view.bottom.impl.CloseDoorView
android:id="@+id/actv_close_door"
app:backageViewId="@+id/actv_close_door_press"
app:selectedDrawable="@drawable/charter_p_bottom_closedoor_press"
app:normalDrawable="@drawable/charter_p_bottom_closedoor_normal"
app:bottomTitle="关车门"
app:layout_constraintStart_toEndOf="@+id/actv_stop_site"
app:layout_constraintEnd_toStartOf="@+id/actv_open_door"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintBottom_toBottomOf="parent"
android:layout_width="wrap_content"
android:layout_height="match_parent"/>
<androidx.appcompat.widget.AppCompatImageView
android:id="@+id/actv_open_door_press"
android:visibility="gone"
android:src="@drawable/charter_bottom_bar_select_bg"
app:layout_constraintStart_toStartOf="@+id/actv_open_door"
app:layout_constraintEnd_toEndOf="@+id/actv_open_door"
android:layout_width="@dimen/dp_359"
android:layout_height="@dimen/dp_107"/>
<com.mogo.och.bus.passenger.ui.view.bottom.impl.OpenDoorView
android:id="@+id/actv_open_door"
android:gravity="center"
app:backageViewId="@+id/actv_open_door_press"
app:selectedDrawable="@drawable/charter_p_bottom_opendoor_press"
app:normalDrawable="@drawable/charter_p_bottom_opendoor_normal"
app:bottomTitle="开车门"
app:layout_constraintStart_toEndOf="@+id/actv_close_door"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
android:layout_width="wrap_content"
android:layout_height="match_parent"/>
<androidx.appcompat.widget.AppCompatImageView
android:id="@+id/cl_order_time_press"
android:visibility="gone"
android:src="@drawable/charter_bottom_bar_select_bg"
app:layout_constraintStart_toStartOf="@+id/cl_order_time"
app:layout_constraintEnd_toEndOf="@+id/cl_order_time"
android:layout_width="@dimen/dp_359"
android:layout_height="@dimen/dp_107"/>
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/cl_order_time"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toStartOf="@+id/actv_setting"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintHorizontal_chainStyle="spread"
app:layout_constraintBottom_toBottomOf="parent"
android:layout_width="wrap_content"
android:layout_height="match_parent">
<androidx.appcompat.widget.AppCompatTextView
android:id="@+id/actv_order_null"
android:text="订单空空~"
android:textSize="@dimen/dp_36"
android:textColor="@color/bus_p_m1_090f28"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintBottom_toBottomOf="parent"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
<androidx.appcompat.widget.AppCompatTextView
android:id="@+id/actv_order_end_time"
android:text="08:15"
android:textSize="@dimen/dp_60"
android:textColor="@color/bus_p_m1_0050E1"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
<androidx.appcompat.widget.AppCompatTextView
android:id="@+id/actv_order_end_time_title"
android:text="剩余包车时长"
android:textSize="@dimen/dp_20"
android:textColor="@color/bus_p_m1_090f28"
android:layout_marginBottom="@dimen/dp_7_5"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
<androidx.constraintlayout.widget.Group
android:id="@+id/clg_order_info"
android:visibility="gone"
app:constraint_referenced_ids="actv_order_end_time,actv_order_end_time_title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
</androidx.constraintlayout.widget.ConstraintLayout>
<androidx.appcompat.widget.AppCompatImageView
android:id="@+id/actv_setting_press"
android:visibility="gone"
android:src="@drawable/charter_bottom_bar_select_bg"
app:layout_constraintStart_toStartOf="@+id/actv_setting"
app:layout_constraintEnd_toEndOf="@+id/actv_setting"
android:layout_width="@dimen/dp_359"
android:layout_height="@dimen/dp_107"/>
<com.mogo.och.bus.passenger.ui.view.bottom.BottomClickView
android:id="@+id/actv_setting"
app:backageViewId="@+id/actv_setting_press"
app:selectedDrawable="@drawable/charter_p_bottom_softsettiing_press"
app:normalDrawable="@drawable/charter_p_bottom_softsettiing_normal"
app:bottomTitle="设置"
app:layout_constraintStart_toEndOf="@+id/cl_order_time"
app:layout_constraintEnd_toStartOf="@+id/actv_line"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintBottom_toBottomOf="parent"
android:layout_width="wrap_content"
android:layout_height="match_parent"/>
<androidx.appcompat.widget.AppCompatImageView
android:id="@+id/actv_line_press"
android:visibility="gone"
android:src="@drawable/charter_bottom_bar_select_bg"
app:layout_constraintStart_toStartOf="@+id/actv_line"
app:layout_constraintEnd_toEndOf="@+id/actv_line"
android:layout_width="@dimen/dp_359"
android:layout_height="@dimen/dp_107"/>
<com.mogo.och.bus.passenger.ui.view.bottom.BottomClickView
android:id="@+id/actv_line"
app:backageViewId="@+id/actv_line_press"
app:selectedDrawable="@drawable/charter_p_bottom_line_press"
app:normalDrawable="@drawable/charter_p_bottom_line_normal"
app:bottomTitle="线路"
app:layout_constraintStart_toEndOf="@+id/actv_setting"
app:layout_constraintEnd_toStartOf="@+id/aciv_center_image"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintBottom_toBottomOf="parent"
android:layout_width="wrap_content"
android:layout_height="match_parent"/>
</merge>

View File

@@ -0,0 +1,29 @@
<?xml version="1.0" encoding="utf-8"?>
<merge xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="@dimen/dp_107"
xmlns:app="http://schemas.android.com/apk/res-auto"
tools:parentTag="androidx.constraintlayout.widget.ConstraintLayout"
tools:ignore="MissingDefaultResource">
<androidx.appcompat.widget.AppCompatImageView
android:id="@+id/aciv_center_image"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
android:layout_width="@dimen/dp_90"
android:layout_height="@dimen/dp_90"/>
<androidx.appcompat.widget.AppCompatTextView
android:id="@+id/actv_title"
app:layout_constraintStart_toStartOf="@+id/aciv_center_image"
app:layout_constraintEnd_toEndOf="@+id/aciv_center_image"
app:layout_constraintBottom_toBottomOf="parent"
android:layout_marginBottom="@dimen/dp_9_5"
android:textSize="@dimen/dp_20"
android:text="靠边停车"
android:textColor="@color/bus_p_m1_090f28"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
</merge>

View File

@@ -16,7 +16,7 @@
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintWidth_percent="0.4589">
<com.mogo.och.bus.passenger.ui.view.stopsite.GoView
<com.mogo.och.bus.passenger.ui.view.bottom.impl.GoView
android:id="@+id/tv_car_setting_go"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
@@ -32,7 +32,7 @@
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.492" />
<com.mogo.och.bus.passenger.ui.view.stopsite.StopSiteView
<com.mogo.och.bus.passenger.ui.view.bottom.impl.StopSiteView
android:id="@+id/tv_car_setting_stopside"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
@@ -47,7 +47,7 @@
app:layout_constraintStart_toEndOf="@+id/tv_car_setting_go"
app:layout_constraintTop_toTopOf="parent" />
<com.mogo.och.bus.passenger.ui.view.door.CloseDoorView
<com.mogo.och.bus.passenger.ui.view.bottom.impl.CloseDoorView
android:id="@+id/tv_car_setting_opendoor"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
@@ -62,7 +62,7 @@
app:layout_constraintStart_toEndOf="@+id/tv_car_setting_stopside"
app:layout_constraintTop_toTopOf="parent" />
<com.mogo.och.bus.passenger.ui.view.door.OpenDoorView
<com.mogo.och.bus.passenger.ui.view.bottom.impl.OpenDoorView
android:id="@+id/tv_car_setting_closedoor"
android:layout_width="wrap_content"
android:layout_height="wrap_content"

View File

@@ -60,7 +60,7 @@
app:layout_constraintEnd_toEndOf="@+id/mapBizView"
app:layout_constraintStart_toStartOf="parent" />
<!-- 速度 -->
<LinearLayout
android:id="@+id/ll_car_speed"
app:layout_constraintStart_toStartOf="parent"
@@ -90,7 +90,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
</LinearLayout>
<!-- 距离、剩余时间、到达时间 -->
<androidx.constraintlayout.widget.ConstraintLayout
app:layout_constraintTop_toBottomOf="@+id/ll_car_speed"
app:layout_constraintStart_toStartOf="@+id/ll_car_speed"
@@ -196,50 +196,13 @@
</androidx.constraintlayout.widget.ConstraintLayout>
<ImageView
android:id="@+id/cb_bp_video_player"
android:src="@drawable/bus_p_function_bottom_information_bg_selector"
<com.mogo.och.bus.passenger.ui.view.bottom.BottomBar
android:id="@+id/bb_boorombar"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintHorizontal_chainStyle="packed"
app:layout_constraintEnd_toStartOf="@+id/cb_bp_setting_soft"
app:layout_constraintBottom_toBottomOf="parent"
android:layout_width="@dimen/dp_181"
android:layout_height="@dimen/dp_179"/>
<ImageView
android:id="@+id/cb_bp_setting_soft"
android:src="@drawable/bus_p_function_bottom_soft_bg_selector"
app:layout_constraintStart_toEndOf="@+id/cb_bp_video_player"
app:layout_constraintEnd_toStartOf="@+id/cb_bp_setting_device"
app:layout_constraintBottom_toBottomOf="parent"
android:layout_width="@dimen/dp_181"
android:layout_height="@dimen/dp_179"/>
<ImageView
android:id="@+id/cb_bp_setting_device"
android:src="@drawable/bus_p_function_bottom_device_bg_selector"
app:layout_constraintEnd_toEndOf="@+id/cb_bp_setting_order"
app:layout_constraintStart_toEndOf="@+id/cb_bp_setting_soft"
app:layout_constraintBottom_toBottomOf="parent"
android:layout_width="@dimen/dp_181"
android:layout_height="@dimen/dp_179"/>
<ImageView
android:id="@+id/cb_bp_setting_order"
android:src="@drawable/bus_p_function_bottom_order_bg_selector"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toEndOf="@+id/cb_bp_setting_device"
app:layout_constraintBottom_toBottomOf="parent"
android:layout_width="@dimen/dp_181"
android:layout_height="@dimen/dp_179"/>
<ImageView
android:id="@+id/iv_end_order"
android:src="@drawable/m1_order_end"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent"
android:layout_marginStart="-14dp"
android:layout_width="@dimen/dp_181"
android:layout_height="@dimen/dp_179"/>
android:layout_width="match_parent"
android:layout_height="@dimen/dp_107"/>
<!--消息盒子选择入口-->

View File

@@ -0,0 +1,154 @@
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/cl_container_order_info"
android:layout_width="match_parent"
android:layout_height="match_parent"
xmlns:app="http://schemas.android.com/apk/res-auto">
<androidx.constraintlayout.widget.ConstraintLayout
android:background="@drawable/charter_p_shape_order_info"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent"
android:clickable="true"
android:layout_marginBottom="@dimen/dp_140"
android:layout_marginStart="@dimen/dp_26"
android:layout_width="@dimen/dp_327"
android:layout_height="@dimen/dp_270">
<androidx.appcompat.widget.AppCompatTextView
android:id="@+id/actv_order_phone"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintStart_toStartOf="parent"
android:layout_marginStart="@dimen/dp_33"
android:text="18811539480"
android:textSize="@dimen/dp_20"
android:textColor="@color/bus_p_m1_203555"
android:layout_marginTop="@dimen/dp_32"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
<androidx.appcompat.widget.AppCompatTextView
android:id="@+id/actv_order_times"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
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"/>
<androidx.appcompat.widget.AppCompatTextView
android:id="@+id/actv_order_times_title"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
android:layout_marginTop="@dimen/dp_8"
app:layout_constraintTop_toBottomOf="@+id/actv_order_times"
android:text="用车时间"
android:textSize="@dimen/dp_18"
android:textColor="@color/bus_p_m1_112b57"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
<androidx.appcompat.widget.AppCompatTextView
android:id="@+id/actv_end_order"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintTop_toBottomOf="@+id/actv_order_times_title"
android:layout_marginTop="@dimen/dp_25"
android:layout_marginBottom="@dimen/dp_27"
android:background="@drawable/charter_p_shape_end_order"
android:gravity="center"
android:text="结束用车"
android:textSize="@dimen/dp_18"
android:paddingEnd="@dimen/dp_42"
android:paddingStart="@dimen/dp_42"
android:paddingTop="@dimen/dp_14"
android:paddingBottom="@dimen/dp_13"
android:textColor="@android:color/white"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
</androidx.constraintlayout.widget.ConstraintLayout>
<androidx.constraintlayout.widget.ConstraintLayout
android:background="@drawable/charter_p_shape_order_info"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent"
android:clickable="true"
android:visibility="gone"
android:layout_marginBottom="@dimen/dp_140"
android:layout_marginStart="@dimen/dp_26"
android:layout_width="@dimen/dp_400"
android:layout_height="@dimen/dp_270">
<androidx.appcompat.widget.AppCompatTextView
android:text="剩余时间 02:37"
android:textSize="@dimen/dp_20"
android:textColor="@color/bus_p_m1_5F7096"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent"
android:layout_marginTop="@dimen/dp_33"
android:layout_marginEnd="@dimen/dp_32"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
<androidx.appcompat.widget.AppCompatTextView
android:id="@+id/actv_end_order_content"
android:text="要提前说再见了吗?蘑菇小助手很舍不得您呢!"
android:textSize="@dimen/dp_26"
android:textColor="@color/bus_p_m1_112b57"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent"
android:layout_marginStart="@dimen/dp_30"
android:layout_marginEnd="@dimen/dp_30"
android:layout_marginTop="@dimen/dp_92"
android:layout_width="0dp"
android:layout_height="wrap_content"/>
<androidx.appcompat.widget.AppCompatTextView
android:text="结束用车"
android:textSize="@dimen/dp_24"
android:textColor="@android:color/white"
app:layout_constraintTop_toBottomOf="@+id/actv_end_order_content"
android:background="@drawable/charter_p_shape_end_order_left"
app:layout_constraintStart_toStartOf="parent"
android:layout_marginStart="@dimen/dp_30"
android:layout_marginTop="@dimen/dp_17"
android:paddingTop="@dimen/dp_14"
android:paddingBottom="@dimen/dp_13"
android:paddingStart="@dimen/dp_32"
android:paddingEnd="@dimen/dp_32"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
<androidx.appcompat.widget.AppCompatTextView
android:text="结束用车"
android:textSize="@dimen/dp_24"
android:textColor="@android:color/white"
android:background="@drawable/charter_p_shape_end_order"
app:layout_constraintTop_toBottomOf="@+id/actv_end_order_content"
app:layout_constraintEnd_toEndOf="parent"
android:layout_marginEnd="@dimen/dp_30"
android:layout_marginTop="@dimen/dp_17"
android:paddingTop="@dimen/dp_14"
android:paddingBottom="@dimen/dp_13"
android:paddingStart="@dimen/dp_32"
android:paddingEnd="@dimen/dp_32"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
</androidx.constraintlayout.widget.ConstraintLayout>
<com.mogo.och.bus.passenger.ui.view.bottom.BottomBar
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
android:layout_width="match_parent"
android:layout_height="@dimen/dp_107"/>
</androidx.constraintlayout.widget.ConstraintLayout>

View File

@@ -5,4 +5,14 @@
<attr name="main_wind_drawable" format="reference" />
</declare-styleable>
<declare-styleable name="BottomSelectView">
<!-- 默认图片 -->
<attr name="normalDrawable" format="reference" />
<!-- 点击图片 -->
<attr name="selectedDrawable" format="reference" />
<!-- 显示背景view -->
<attr name="backageViewId" format="reference" />
<attr name="bottomTitle" format="string"/>
</declare-styleable>
</resources>

View File

@@ -18,12 +18,18 @@
<color name="bus_p_m1_4a5375">#4A5375</color>
<color name="bus_p_m1_0f1e57">#0F1E57</color>
<color name="bus_p_m1_225eff">#225EFF</color>
<color name="bus_p_m1_0050E1">#0050E1</color>
<color name="bus_p_m1_1466FB">#1466FB</color>
<color name="bus_p_m1_43CEFE">#43CEFE</color>
<color name="bus_p_m1_3b4056">#3B4056</color>
<color name="bus_p_m1_23293b">#23293B</color>
<color name="bus_p_m1_485173">#485173</color>
<color name="bus_p_m1_292c39">#292C39</color>
<color name="bus_p_m1_2C2D31">#2C2D31</color>
<color name="bus_p_m1_222222">#222222</color>
<color name="bus_p_m1_090f28">#090F28</color>
<color name="bus_p_m1_5F7096">#5F7096</color>
<color name="bus_p_m1_9aabd2">#9AABD2</color>
<color name="bus_p_m1_662C2D31">#662C2D31</color>
<color name="bus_p_m1_332C2D31">#332C2D31</color>
@@ -34,4 +40,5 @@
<color name="bus_p_m1_91EFF6FF">#91EFF6FF</color>
<color name="bus_p_m1_CCFFFFFF">#CCFFFFFF</color>
<color name="bus_p_m1_80ffffff">#80FFFFFF</color>
<color name="bus_p_m1_f0e0efff">#F0E0EFFF </color>
</resources>

View File

@@ -34,6 +34,8 @@
<string name="m1_arrive_left_time">剩余(分)</string>
<string name="m1_reach_time">到达</string>
<string name="m1_stop_site">靠边停车</string>

View File

@@ -30,6 +30,7 @@
<dimen name="dp_7_5">7.5dp</dimen>
<dimen name="dp_8">8dp</dimen>
<dimen name="dp_9">9dp</dimen>
<dimen name="dp_9_5">9.5dp</dimen>
<dimen name="dp_10">10dp</dimen>
<dimen name="dp_11">11dp</dimen>
<dimen name="dp_12">12dp</dimen>