From 5815f2e97472ff228a83389fca0ba1c85fa6e3c7 Mon Sep 17 00:00:00 2001 From: yangyakun Date: Thu, 27 Apr 2023 20:56:37 +0800 Subject: [PATCH] =?UTF-8?q?[charter]=20[3.2.0]=20[=E5=BA=95=E9=83=A8?= =?UTF-8?q?=E5=AF=BC=E8=88=AA=E6=A0=8F=E5=8A=9F=E8=83=BD]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../BusPassengerFunctionDevicePresenter.kt | 21 -- .../passenger/presenter/OrderInfoPresenter.kt | 7 +- .../mogo/och/bus/passenger/ui/MainFragment.kt | 61 +---- .../ui/dialogfragment/M1ContainFragment.kt | 215 +++++++----------- .../dialogfragment/OrderInfoDialogFragment.kt | 130 ----------- .../fragment/M1OrderLineFragment.kt | 3 +- ...DeviceFragment.kt => OrderInfoFragment.kt} | 16 +- .../bus/passenger/ui/view/bottom/BottomBar.kt | 40 +++- .../ui/view/bottom/BottomClickView.kt | 74 +++--- .../res/drawable-nodpi/charter_p_video.png | Bin 0 -> 22511 bytes .../main/res/layout/m1_contain_fragment.xml | 45 +--- .../main/res/layout/m1_devices_fragment.xml | 189 ++++++++++----- .../src/main/res/layout/m1_main_fragment.xml | 8 + .../src/main/res/values/attrs.xml | 2 + 14 files changed, 325 insertions(+), 486 deletions(-) delete mode 100644 OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/presenter/BusPassengerFunctionDevicePresenter.kt delete mode 100644 OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/ui/dialogfragment/OrderInfoDialogFragment.kt rename OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/ui/dialogfragment/fragment/{M1DeviceFragment.kt => OrderInfoFragment.kt} (56%) create mode 100644 OCH/mogo-och-charter-passenger/src/main/res/drawable-nodpi/charter_p_video.png 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 33842efe9f..0000000000 --- a/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/presenter/BusPassengerFunctionDevicePresenter.kt +++ /dev/null @@ -1,21 +0,0 @@ -package com.mogo.och.bus.passenger.presenter - -import androidx.lifecycle.LifecycleOwner -import com.mogo.och.bus.passenger.ui.dialogfragment.fragment.M1DeviceFragment - -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/OrderInfoPresenter.kt b/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/presenter/OrderInfoPresenter.kt index c2d823632f..e4de1557cd 100644 --- 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 @@ -1,11 +1,10 @@ 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 +import com.mogo.och.bus.passenger.ui.dialogfragment.fragment.OrderInfoFragment -class OrderInfoPresenter(view: OrderInfoDialogFragment?) : - BusBasePassengerFunctionDevicePresenter(view) { +class OrderInfoPresenter(view: OrderInfoFragment?) : + BusBasePassengerFunctionDevicePresenter(view) { companion object{ private const val TAG = "BusPassengerFunctionPresenter" } 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 d003dc57a6..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 @@ -12,19 +12,15 @@ import com.mogo.commons.mvp.MvpFragment 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.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.common.module.voice.VoiceManager import com.mogo.och.bus.passenger.presenter.BusPassengerPresenter 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 @@ -36,7 +32,6 @@ class MainFragment : MvpFragment() { private var bpFunctionGroupDialogFragment: WeakReference? = null - private var orderInfoDialogFragment: WeakReference? = null private var m1CarUserNoOrderFragment: WeakReference? = null val endStation = @@ -66,11 +61,18 @@ class MainFragment : }) - bb_boorombar.setSettingClickListener(object :OnClickListener{ - override fun onClick(v: View?) { - openOrderInfoPage() - } - }) + 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) { @@ -112,45 +114,6 @@ 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 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 index 3464eaf513..45ec64fefd 100644 --- 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 @@ -4,7 +4,6 @@ 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 @@ -16,11 +15,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 com.mogo.och.bus.passenger.ui.dialogfragment.fragment.OrderInfoFragment +import com.mogo.och.bus.passenger.ui.view.bottom.BottomBar import kotlinx.android.synthetic.main.m1_contain_fragment.* /** @@ -33,9 +32,9 @@ class M1ContainFragment : var tab: String = VIDEOTAB var fragmentTag: String = M1VideoFragment.TAG var fragment: Fragment? = null - var isEarlyClose:Boolean = false override fun onCreate(savedInstanceState: Bundle?) { + CallerLogger.d(M_BUS_P+ TAG, "onCreate") super.onCreate(savedInstanceState) arguments?.let { tab = it.getString(SELECTTAB, VIDEOTAB) @@ -43,44 +42,31 @@ class M1ContainFragment : savedInstanceState?.let { tab = it.getString(SELECTTAB, tab) } - isEarlyClose = tab== SETTINGENDORDERTAB setStyle(STYLE_NO_TITLE, R.style.DialogFullScreen) //dialog全屏 } - private fun initFragment() { + private fun setCheckView() { + CallerLogger.d(M_BUS_P+ TAG, "setCheckView") when (tab) { VIDEOTAB -> { - fragment = - childFragmentManager.findFragmentByTag(M1VideoFragment.TAG) - ?: M1VideoFragment.newInstance() - } - SETTINGDEVICETAB -> { - fragment = - childFragmentManager.findFragmentByTag(M1DeviceFragment.TAG) - ?: M1DeviceFragment.newInstance() + fragment = childFragmentManager.findFragmentByTag(M1VideoFragment.TAG) + ?: M1VideoFragment.newInstance() + bb_bottom_bar.setCheckIndex(BottomBar.SelectView.VIDEO) } SETTINGSOFTTAB -> { - fragment = - childFragmentManager.findFragmentByTag(M1SoftFragment.TAG) - ?: M1SoftFragment.newInstance() + fragment = childFragmentManager.findFragmentByTag(M1SoftFragment.TAG) + ?: M1SoftFragment.newInstance() + bb_bottom_bar.setCheckIndex(BottomBar.SelectView.SETTING) } - SETTINGORDERTAB -> { - fragment = - childFragmentManager.findFragmentByTag(M1OrderLineFragment.TAG) - ?: M1OrderLineFragment.newInstance(object : ChangeCheck { - override fun changeChange() { - cb_bp_setting_device.isChecked = true - } - }) + ORDERINFO -> { + fragment = childFragmentManager.findFragmentByTag(OrderInfoFragment.TAG) + ?: OrderInfoFragment.newInstance() + bb_bottom_bar.setCheckIndex(BottomBar.SelectView.ORDERINFO) } - SETTINGENDORDERTAB -> { - fragment = - childFragmentManager.findFragmentByTag(M1EarlyEndOrderFragment.TAG) - ?: M1EarlyEndOrderFragment.newInstance(object : ContainDismiss { - override fun closeDialog() { - dismissAllowingStateLoss() - } - }) + SELECTLINE ->{ + fragment = childFragmentManager.findFragmentByTag(M1OrderLineFragment.TAG) + ?: M1OrderLineFragment.newInstance() + bb_bottom_bar.setCheckIndex(BottomBar.SelectView.LINE) } else -> {} } @@ -89,9 +75,7 @@ class M1ContainFragment : .replace(R.id.fl_function_group, it, fragmentTag) .commitNow() } - cl_container.setOnClickListener { - dismissAllowingStateLoss() - } + } override fun getLayoutId(): Int = R.layout.m1_contain_fragment @@ -101,11 +85,44 @@ class M1ContainFragment : 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() + } + } } 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) @@ -116,87 +133,9 @@ class M1ContainFragment : } } - 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 = M1OrderLineFragment.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) + CallerLogger.d(M_BUS_P+ TAG, "onSaveInstanceState") context?.let { SharedPrefs.getInstance(it).putString(SELECTTAB, tab) } @@ -240,25 +179,13 @@ class M1ContainFragment : 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 + VIDEOTAB -> { + + } + SETTINGSOFTTAB -> {} + ORDERINFO -> {} + SELECTLINE -> {} else -> {} } super.onViewStateRestored(savedInstanceState) @@ -267,11 +194,27 @@ class M1ContainFragment : 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 ORDERINFO = "OrderInfo" + + /** + * 选择线路 + */ + const val SELECTLINE = "SelectLine" + + const val SELECTTAB = "SELECTTAB" diff --git a/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/ui/dialogfragment/OrderInfoDialogFragment.kt b/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/ui/dialogfragment/OrderInfoDialogFragment.kt deleted file mode 100644 index d1aab2a238..0000000000 --- a/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/ui/dialogfragment/OrderInfoDialogFragment.kt +++ /dev/null @@ -1,130 +0,0 @@ -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() { - - 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 - } - } - -} \ No newline at end of file diff --git a/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/ui/dialogfragment/fragment/M1OrderLineFragment.kt b/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/ui/dialogfragment/fragment/M1OrderLineFragment.kt index 2d86c1bcd2..75a3d60a39 100644 --- a/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/ui/dialogfragment/fragment/M1OrderLineFragment.kt +++ b/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/ui/dialogfragment/fragment/M1OrderLineFragment.kt @@ -246,11 +246,10 @@ class M1OrderLineFragment : const val TAG = "BusPassengerFunctionOrderFragment" @JvmStatic - fun newInstance(changeCheck: M1ContainFragment.ChangeCheck): M1OrderLineFragment { + fun newInstance(): M1OrderLineFragment { val args = Bundle() 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/dialogfragment/fragment/M1DeviceFragment.kt b/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/ui/dialogfragment/fragment/OrderInfoFragment.kt similarity index 56% rename from OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/ui/dialogfragment/fragment/M1DeviceFragment.kt rename to OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/ui/dialogfragment/fragment/OrderInfoFragment.kt index f2414de654..f9e7e4bc6e 100644 --- a/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/ui/dialogfragment/fragment/M1DeviceFragment.kt +++ b/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/ui/dialogfragment/fragment/OrderInfoFragment.kt @@ -3,14 +3,14 @@ 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.BusPassengerFunctionDevicePresenter +import com.mogo.och.bus.passenger.presenter.OrderInfoPresenter /** * @author: yangyakun * @date: 2023/1/28 */ -class M1DeviceFragment : - MvpFragment() { +class OrderInfoFragment : + MvpFragment() { override fun getLayoutId(): Int = R.layout.m1_devices_fragment @@ -24,15 +24,15 @@ class M1DeviceFragment : } - override fun createPresenter(): BusPassengerFunctionDevicePresenter = - BusPassengerFunctionDevicePresenter(this) + override fun createPresenter(): OrderInfoPresenter = + OrderInfoPresenter(this) companion object { - const val TAG = "BusPassengerFunctionDeviceFragment" + const val TAG = "OrderInfoFragment" @JvmStatic - fun newInstance(): M1DeviceFragment { + fun newInstance(): OrderInfoFragment { val args = Bundle() - val fragment = M1DeviceFragment() + val fragment = OrderInfoFragment() fragment.arguments = args return fragment } 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 index 44b756d728..dfd83a5fa3 100644 --- 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 @@ -18,12 +18,50 @@ class BottomBar @JvmOverloads constructor( 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 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/BottomClickView.kt b/OCH/mogo-och-charter-passenger/src/main/java/com/mogo/och/bus/passenger/ui/view/bottom/BottomClickView.kt index 17a15a3f58..df63c2baab 100644 --- 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 @@ -35,13 +35,15 @@ open class BottomClickView @JvmOverloads constructor( private var backageView: View? = null private var showBackageView = true + 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)?:"" + bottomTitle = typedArray.getString(R.styleable.BottomSelectView_bottomTitle) ?: "" + showBackageView = typedArray.getBoolean(R.styleable.BottomSelectView_bottomClick, true) selectedDrawable = typedArray.getResourceId(R.styleable.BottomSelectView_selectedDrawable, -1) normalDrawable = @@ -59,59 +61,60 @@ open class BottomClickView @JvmOverloads constructor( 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) { + if (showBackageView) { + 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)) - if(showBackageView) { + 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)) - if(showBackageView) { + 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 -> {} } - else -> {} + return false } - return false - } - }) + }) + } } - fun setCheckItem(isCheck:Boolean){ - if(isCheck!=showBackageView){ - showBackageView = isCheck + fun setCheckItem(isCheck: Boolean) { + showBackageView = false + if (isCheck != this.isCheck) { + this.isCheck = isCheck notifiBackageView() } } private fun notifiBackageView() { - if(showBackageView){ + if (isCheck) { backageView?.visibility = View.VISIBLE - }else{ + 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)) } } @@ -124,5 +127,8 @@ open class BottomClickView @JvmOverloads constructor( } } } + if (isCheck) { + backageView?.visibility = View.VISIBLE + } } } \ No newline at end of file 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 0000000000000000000000000000000000000000..2cd4c46e7f275ca7175ef1b49a3a5c0d412ac682 GIT binary patch literal 22511 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 KMNUMnLSTZ>D`<@X literal 0 HcmV?d00001 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..2e1e87ca59 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 @@ -8,52 +8,19 @@ - - - - - - - + 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 916be03fc5..b5f707fcbd 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,142 @@ android:layout_height="match_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"> - - - - - + 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 c9f9f4f6c0..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 @@ -214,6 +214,14 @@ app:layout_constraintTop_toTopOf="parent" app:layout_constraintEnd_toEndOf="parent"/> + + + + \ No newline at end of file