[charter]

[3.2.0]
[select line and site]
This commit is contained in:
yangyakun
2023-05-04 18:21:58 +08:00
parent 420c3f3b8c
commit a6af328c08
12 changed files with 286 additions and 428 deletions

View File

@@ -34,7 +34,6 @@ class BusPassengerFunctionOrderPresenter(view: M1OrderLineFragment?) :
BusBasePassengerFunctionDevicePresenter<M1OrderLineFragment?>(view), IOrderStatusChangeListener {
companion object{
const val TAGLINELOOP = "LineSiteViewLineLoop"
const val TAG = "BusPassengerFunctionOrderPresenter"
}
@@ -54,10 +53,6 @@ class BusPassengerFunctionOrderPresenter(view: M1OrderLineFragment?) :
// 向司机端临时提交的终点站点
private var tempCheckSite: SiteInfoResponse.SiteInfo? = null
private var tempCheckLineIsSubmit = false
private var isChangeIngLineAndSite = false
private var subscribeSelectLine: Disposable? = null
private var subscribeSelectSite: Disposable? = null
@@ -71,95 +66,71 @@ class BusPassengerFunctionOrderPresenter(view: M1OrderLineFragment?) :
if (hasSetLineAndSite != null) {// 已经设置了线路和站点
checkLine = hasSetLineAndSite.first
checkSite = hasSetLineAndSite.second
resetData()
} else {
queryLineList()
mView?.setEnableLineStatus(true)
mView?.setEnableSiteStatus(false)
mView?.onlyChangeSite(false)
mView?.setSiteAdapterEnable(false)
mView?.setSwitchEnable(false)
isChangeIngLineAndSite = false
}
}
fun lineReset(){
resetData()
tempCheckLine = null
}
fun siteReset(){
resetData()
tempCheckLine = null
tempCheckSite = null
mView?.setEnableSiteStatus(false)
mView?.onlyChangeSite(false)
queryLineList()
}
/**
* 重置数据
*/
fun resetData() {
tempCheckLine = null
tempCheckSite = null
if(checkLine==null){// 没有提交线路
queryLineList()
mView?.setEnableLineStatus(true)
mView?.setEnableSiteStatus(false)
mView?.setEnableSiteStatus(true)
mView?.onlyChangeSite(false)
mView?.setSiteAdapterEnable(false)
}else{
checkLine?.let {
mView?.setEnableLineStatus(false)
mView?.setEnableSiteStatus(false)
mView?.onlyChangeSite(false)
mView?.setSiteAdapterEnable(true)
isChangeIngLineAndSite = true
mView?.lineAdapterSubmit(it)
checkLine?.let {
querySitesByLineId(it.lineId.toString(),false)
}
querySitesByLineId(it.lineId.toString())
}
}
}
private fun querySitesByLineId(lineId: String,isSelect:Boolean) {
private fun querySitesByLineId(lineId: String) {
BusPassengerServiceManager.queryLineSiteList(
context,
lineId,
object : OchCommonServiceCallback<SiteInfoResponse> {
override fun onSuccess(data: SiteInfoResponse?) {
if (data?.data == null) return
mView?.siteAdapterSetData(data.data)
if (data.data.isNotEmpty()) {
val siteInfos = data.data
if (siteInfos.isNotEmpty()) {
// 计算当前站点是那个
val calculateCurrentSite =
CharterPassengerModel.calculateCurrentSite(data.data)
CharterPassengerModel.calculateCurrentSite(siteInfos)
val first = calculateCurrentSite.first// 可用站点
if(first<0){
// 所有站点不可用
currentSite = data.data[data.data.size-1]
currentSite = siteInfos[siteInfos.size-1]
currentSite!!.isNear = calculateCurrentSite.second
mView?.siteAdapterEnableIndex(data.data.size-1)
mView?.siteAdapterEnableIndex(siteInfos.size-1)
}else{
//
val index = if(first==0) {
0
}else if (first <= data.data.size-1) {
}else if (first <= siteInfos.size-1) {
first-1
} else {
data.data.size - 1
siteInfos.size - 1
}
currentSite = data.data[index]
currentSite = siteInfos[index]
currentSite!!.isNear = calculateCurrentSite.second
mView?.siteAdapterEnableIndex(index)
}
if(isSelect){
data.data.last().isCheck = true
tempCheckSite = data.data.last()
}else{
data.data.forEach {
if (it.siteId == checkSite?.siteId) {
it.isCheck = true
}
siteInfos.forEach {
if (it.siteId == checkSite?.siteId) {
it.isCheck = true
return@forEach
}
}
}
mView?.siteAdapterSetData(siteInfos)
}
override fun onFail(code: Int, msg: String?) {
@@ -173,7 +144,7 @@ class BusPassengerFunctionOrderPresenter(view: M1OrderLineFragment?) :
OchCommonServiceCallback<LineInfoListResponse> {
override fun onSuccess(data: LineInfoListResponse?) {
if (data?.data == null) return
mView?.lineAdapterSetData(data.data)
mView?.lineAdapterSetData(data.data,checkLine)
}
override fun onFail(code: Int, msg: String) {
@@ -209,50 +180,25 @@ class BusPassengerFunctionOrderPresenter(view: M1OrderLineFragment?) :
ChangeDestMsg::class.java
) as ChangeDestMsg
if (msg.type == DPMsgType.TYPE_CHANGE_DEST.type) {
if (msg.destSiteId == 0) {
if (msg.isConfirmed) {
ToastUtils.showShort("线路确定")
mView?.setEnableLineStatus(false)
mView?.setEnableSiteStatus(true)
mView?.onlyChangeSite(false)
mView?.setSiteAdapterEnable(true)
mView?.setSwitchEnable(false)
tempCheckLineIsSubmit = true
tempCheckLine?.let {
mView?.lineAdapterSubmit(it)
}
} else {
tempCheckLineIsSubmit = false
ToastUtils.showShort("司机端拒绝请重新选择")
if (msg.isConfirmed) {
ToastUtils.showShort("站点确定")
mView?.setEnableSiteStatus(true)
mView?.onlyChangeSite(false)
checkLine = tempCheckLine
checkSite = tempCheckSite
tempCheckLine = null
tempCheckSite = null
checkLine?.let {
mView?.lineAdapterSubmit(it)
}
RxUtils.disposeSubscribe(subscribeSelectLine)
mView?.endAni()
CallerLogger.d(SceneConstant.M_BUS_P + TAG, "endAni1111")
mView?.go2StartCar()
CharterPassengerModel.queryOrder()
CharterPassengerModel.cleanbroadcastListInfo()
} else {
if (msg.isConfirmed) {
ToastUtils.showShort("站点确定")
mView?.setEnableLineStatus(false)
mView?.setEnableSiteStatus(true)
mView?.onlyChangeSite(false)
mView?.setSiteAdapterEnable(true)
mView?.setSwitchEnable(true)
checkLine = tempCheckLine
checkSite = tempCheckSite
tempCheckLine = null
tempCheckSite = null
tempCheckLineIsSubmit = false
checkLine?.let {
mView?.lineAdapterSubmit(it)
}
mView?.go2StartCar()
CharterPassengerModel.queryOrder()
CharterPassengerModel.cleanbroadcastListInfo()
} else {
tempCheckLineIsSubmit = true
ToastUtils.showShort("司机端拒绝请重新选择")
}
RxUtils.disposeSubscribe(subscribeSelectSite)
ToastUtils.showShort("司机端拒绝请重新选择")
mView?.endAni()
}
RxUtils.disposeSubscribe(subscribeSelectSite)
BusPassengerModelLoopManager.removeLoopFunction(TAGLINELOOP)
}
}
@@ -260,51 +206,7 @@ class BusPassengerFunctionOrderPresenter(view: M1OrderLineFragment?) :
}
}
fun lineSubmit(){
if (tempCheckLine == null) {
ToastUtils.showLong("请选择线路")
return
}
if (!CallerTelematicManager.getClientConnStatus()) {
ToastUtils.showLong("乘客屏无法连接司机屏请联系安全员")
return
}
tempCheckLine?.let {
val msg = ChangeDestMsg(
it.lineId!!.toInt(),
it.name!!,
0,
"",
0,
"",
false,
1,
0
)
CallerTelematicManager.sendMsgToServer(
OchCommonConst.BUSINESS_STRING,
GsonUtils.toJson(msg).toByteArray()
)
mView?.startAni()
// 启动查看和司机端链接
BusPassengerModelLoopManager.setLoopFunction(
TAGLINELOOP,
LoopInfo(3, ::checkServerStatus)
)
RxUtils.disposeSubscribe(subscribeSelectLine)
subscribeSelectLine= RxUtils.createSubscribe(120_000){
ToastUtils.showShort("请联系安全员确认")
mView?.endAni()
CallerLogger.d(SceneConstant.M_BUS_P + TAG, "endAni3333")
}
}
}
fun siteSubmit(){
if (!tempCheckLineIsSubmit) {
ToastUtils.showLong("请选择站点")
return
}
if (!CallerTelematicManager.getClientConnStatus()) {
ToastUtils.showLong("乘客屏无法连接司机屏请联系安全员")
return
@@ -387,7 +289,7 @@ class BusPassengerFunctionOrderPresenter(view: M1OrderLineFragment?) :
mView?.setViewByOrderStatus(currentStatus)
}
fun switchLine() {
fun canSwitchLine():Boolean {
val gnssSpeed =
CallerChassisLocationGCJ02ListenerManager.getChassisLocationGCJ02().gnssSpeed
if (gnssSpeed < 0.5) {
@@ -395,63 +297,73 @@ class BusPassengerFunctionOrderPresenter(view: M1OrderLineFragment?) :
// TODO: 没有自驾中 需要 靠边停车中、到站
when (CallerAutoPilotStatusListenerManager.getAutoPilotStatusInfo().state) {
IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_DISABLE -> {// 不可自动驾驶
// 可以切换路径
isChangeIngLineAndSite = false
mView?.onlyChangeSite(false)
// 可以切换路径
mView?.setEnableLineStatus(true)
mView?.setSiteAdapterEnable(false)
queryLineList()
return true
}
IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_ENABLE -> {//
isChangeIngLineAndSite = false
mView?.onlyChangeSite(false)
// 可以切换路径
mView?.setEnableLineStatus(true)
mView?.setSiteAdapterEnable(false)
queryLineList()
return true
}
IMoGoAutopilotStatusListener.STATUS_AUTOPILOT_RUNNING -> {
// 自动驾驶中
when (OCHPlanningStopSideStatusManager.stopSiteStatus) {
OCHPlanningStopSideStatusManager.Status.EndingSuccess -> {
isChangeIngLineAndSite = false
mView?.onlyChangeSite(false)
// 可以切换路径
mView?.setEnableLineStatus(true)
mView?.setSiteAdapterEnable(false)
queryLineList()
return true
}
else ->{
ToastUtils.showShort("自动驾驶中无法切换线路")
return false
}
}
}
IMoGoAutopilotStatusListener.STATUS_PARALLEL_DRIVING -> {
ToastUtils.showShort("因车辆正在平行驾驶中无法切换线路")
return false
}
else -> {}
}
} else {
ToastUtils.showShort("请停车后再修改目的地~")
return false
}
return true
}
fun checkLineClick(lineInfo: LineInfoResponse.LineInfo) {
checkLine4View()
tempCheckLine = lineInfo
querySitesByLineId(lineInfo.lineId.toString(),true)
querySitesByLineId(lineInfo.lineId.toString())
}
fun checkSiteClick(siteInfo: SiteInfoResponse.SiteInfo) {
private fun checkLine4View(){
tempCheckSite = null
mView?.setEnableSiteStatus(false)
mView?.onlyChangeSite(false)
}
fun checkSiteClick(siteInfo: SiteInfoResponse.SiteInfo?) {
tempCheckSite = siteInfo
if(isChangeIngLineAndSite) {
if(checkSite!=null){
checkSite?.let {
if (it.siteId == siteInfo.siteId) {
if (it.siteId == siteInfo?.siteId) {// 站点相同 隐藏所有提交按钮
mView?.setEnableSiteStatus(false)
mView?.onlyChangeSite(false)
} else {
mView?.onlyChangeSite(true)
if(it.lineId == siteInfo?.lineId){// 线路相同显示单独提交
mView?.setEnableSiteStatus(false)
mView?.onlyChangeSite(true)
}else{
if(siteInfo==null){//没有选站点隐藏所有提交
mView?.setEnableSiteStatus(false)
mView?.onlyChangeSite(false)
}else {
mView?.setEnableSiteStatus(true)
mView?.onlyChangeSite(false)
}
}
}
}
}else{
mView?.setEnableSiteStatus(true)
mView?.onlyChangeSite(false)
}
}

View File

@@ -17,16 +17,34 @@ class OrderLineItemAdapter(
private val dataList: MutableList<LineInfoResponse.LineInfo>
) : RecyclerView.Adapter<OrderLineItemAdapter.TextVH>() {
private var enable = false
var checkChangeListener: CheckListener? = null
fun setDataList(dataList: List<LineInfoResponse.LineInfo>) {
fun setDataList(
dataList: List<LineInfoResponse.LineInfo>,
checkLine: LineInfoResponse.LineInfo?
) {
this.dataList.clear()
this.dataList.addAll(dataList)
setCheckData(checkLine)
notifyDataSetChanged()
}
fun setCheckData(checkLine: LineInfoResponse.LineInfo?){
if(this.dataList.isNotEmpty()) {
var tempCheckLine = checkLine
if (checkLine == null) {
tempCheckLine = dataList.first()
}
this.dataList.forEach {
if (it.lineId == tempCheckLine!!.lineId) {
it.isCheck = true
checkChangeListener?.onCheckListener(tempCheckLine)
return@forEach
}
}
}
}
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): TextVH {
val view: View
@@ -44,8 +62,10 @@ class OrderLineItemAdapter(
}
holder.lineNameTextView.text = lineInfo.name
holder.lineNameTextView.setOnClickListener {
if (!enable) {
return@setOnClickListener
checkChangeListener?.let {
if(!it.canSwitchLine()){
return@setOnClickListener
}
}
if (lineInfo.isCheck) {
return@setOnClickListener
@@ -62,24 +82,15 @@ class OrderLineItemAdapter(
return dataList.size
}
fun setEnable(enable: Boolean) {
this.enable = enable
dataList.forEachIndexed { _, lineInfo ->
lineInfo.isCheck = false
}
notifyDataSetChanged()
}
fun submitLine(checkLine: LineInfoResponse.LineInfo) {
this.dataList.clear()
this.dataList.add(checkLine)
dataList.forEachIndexed { _, lineInfo ->
lineInfo.isCheck = false
lineInfo.isCheck = lineInfo.lineId==checkLine.lineId
}
notifyDataSetChanged()
}
interface CheckListener {
fun canSwitchLine():Boolean
fun onCheckListener(lineInfo: LineInfoResponse.LineInfo)
}

View File

@@ -16,31 +16,26 @@ import com.mogo.och.bus.passenger.bean.response.SiteInfoResponse
/**
* Created by adityagohad on 06/06/17.
*/
class OrderSiteItemAdapter(private val context: Context, private val dataList: MutableList<SiteInfoResponse.SiteInfo>) : RecyclerView.Adapter<OrderSiteItemAdapter.TextVH>() {
class OrderSiteItemAdapter(
private val context: Context,
private val dataList: MutableList<SiteInfoResponse.SiteInfo>
) : RecyclerView.Adapter<OrderSiteItemAdapter.TextVH>() {
private var enableIndex = -1
private var enable = true
var checkChangeListener:CheckListener?=null
var checkChangeListener: CheckListener? = null
fun setDataList(dataList: List<SiteInfoResponse.SiteInfo>){
fun setDataList(dataList: List<SiteInfoResponse.SiteInfo>) {
this.dataList.clear()
this.dataList.addAll(dataList)
notifyDataSetChanged()
}
fun setEnableIndex(enableIndex:Int){
fun setEnableIndex(enableIndex: Int) {
this.enableIndex = enableIndex
notifyDataSetChanged()
}
fun setEnable(enable:Boolean){
this.enable = enable
// dataList.forEachIndexed { _, lineInfo ->
// lineInfo.isCheck = false
// }
notifyDataSetChanged()
}
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): TextVH {
val view: View
@@ -51,35 +46,57 @@ class OrderSiteItemAdapter(private val context: Context, private val dataList: M
override fun onBindViewHolder(holder: TextVH, position: Int) {
val siteInfo = dataList[holder.bindingAdapterPosition]
if(holder.bindingAdapterPosition>enableIndex){
if(siteInfo.isCheck){
if (holder.bindingAdapterPosition > enableIndex) {
if (siteInfo.isCheck) {
holder.iv_site_checked.setImageResource(R.drawable.m1_order_site_checked)
}else{
} else {
holder.iv_site_checked.setImageResource(R.drawable.m1_order_site_check)
}
holder.tv_site_site_name.setTextColor(ContextCompat.getColor(context,R.color.bus_p_m1_222222))
}else {
holder.tv_site_site_name.setTextColor(
ContextCompat.getColor(
context,
R.color.bus_p_m1_222222
)
)
} else {
holder.iv_site_checked.setImageResource(R.drawable.m1_order_site_check_enable)
holder.tv_site_site_name.setTextColor(ContextCompat.getColor(context,R.color.bus_p_m1_332C2D31))
holder.tv_site_site_name.setTextColor(
ContextCompat.getColor(
context,
R.color.bus_p_m1_332C2D31
)
)
}
holder.tv_site_site_name.text = siteInfo.siteName
holder.itemView.setOnClickListener {
if(enable) {
if (holder.bindingAdapterPosition > enableIndex) {
dataList.forEachIndexed { index, lineInfo ->
lineInfo.isCheck = index==position
}
notifyDataSetChanged()
checkChangeListener?.onCheckListener(siteInfo)
} else {
if (siteInfo.isNear) {
ToastUtils.showShort("您已在此站点附近")
} else {
ToastUtils.showShort("站点已过,请选择返程路线")
if (holder.bindingAdapterPosition > enableIndex) {
checkChangeListener?.let {
if(!it.canSwitchLine()){
return@setOnClickListener
}
}
}else{
ToastUtils.showShort("请确认线路")
var tempInfo:SiteInfoResponse.SiteInfo? = null
dataList.forEachIndexed { index, lineInfo ->
if (index == position) {
if (lineInfo.isCheck) {
lineInfo.isCheck = false
tempInfo = null
} else {
lineInfo.isCheck = true
tempInfo = lineInfo
}
} else {
lineInfo.isCheck = false
}
}
notifyDataSetChanged()
checkChangeListener?.onCheckListener(tempInfo)
} else {
if (siteInfo.isNear) {
ToastUtils.showShort("您已在此站点附近")
} else {
ToastUtils.showShort("站点已过,请选择返程路线")
}
}
}
}
@@ -95,8 +112,9 @@ class OrderSiteItemAdapter(private val context: Context, private val dataList: M
notifyDataSetChanged()
}
interface CheckListener{
fun onCheckListener(siteInfo:SiteInfoResponse.SiteInfo)
interface CheckListener {
fun canSwitchLine():Boolean
fun onCheckListener(siteInfo: SiteInfoResponse.SiteInfo?)
}
inner class TextVH(itemView: View) : RecyclerView.ViewHolder(itemView) {

View File

@@ -78,7 +78,7 @@ class M1ContainFragment :
}
SELECTLINE ->{
fragment =childFragmentManager.findFragmentByTag(M1OrderLineFragment.TAG)
?: M1OrderLineFragment.newInstance()
?: M1OrderLineFragment.newInstance(closeThis)
bb_bottom_bar.setCheckIndex(BottomBar.SelectView.LINE)
cl_container.background = null
fragmentTag = M1OrderLineFragment.TAG

View File

@@ -31,7 +31,7 @@ import me.jessyan.autosize.utils.AutoSizeUtils
class M1OrderLineFragment :
MvpFragment<M1OrderLineFragment?, BusPassengerFunctionOrderPresenter?>() {
private var changeCheck: M1ContainFragment.ChangeCheck? = null
private var dismiss: M1ContainFragment.ContainDismiss? = null
private lateinit var lineAdapter: OrderLineItemAdapter
@@ -87,26 +87,28 @@ class M1OrderLineFragment :
private fun initListener() {
lineAdapter.checkChangeListener = object : OrderLineItemAdapter.CheckListener {
override fun canSwitchLine(): Boolean {
return mPresenter?.canSwitchLine()?:true
}
override fun onCheckListener(lineInfo: LineInfoResponse.LineInfo) {
mPresenter?.checkLineClick(lineInfo)
siteAdapter.clearCheck()
}
}
siteAdapter.checkChangeListener = object : OrderSiteItemAdapter.CheckListener {
override fun onCheckListener(siteInfo: SiteInfoResponse.SiteInfo) {
override fun canSwitchLine(): Boolean {
return mPresenter?.canSwitchLine()?:true
}
override fun onCheckListener(siteInfo: SiteInfoResponse.SiteInfo?) {
// 设置临时选中的
mPresenter?.checkSiteClick(siteInfo)
}
}
tv_line_cancle.onClick {
mPresenter?.lineReset()
}
tv_site_cancle.onClick {
mPresenter?.siteReset()
}
tv_line_submit.onClick {
mPresenter?.lineSubmit()
mPresenter?.resetData()
}
tv_site_submit.onClick {
mPresenter?.siteSubmit()
@@ -123,25 +125,9 @@ class M1OrderLineFragment :
endAni()
}
tv_switch_line.onClick {
mPresenter?.switchLine()
}
}
/**
* 设置是否可用进行选择线路
*/
fun setEnableLineStatus(enable: Boolean) {
if (enable) {
g_line_submit_group.visibility = View.VISIBLE
lineAdapter.setEnable(true)
} else {
g_line_submit_group.visibility = View.GONE
lineAdapter.setEnable(false)
}
}
/**
* 设置是否可用选择站点
*/
@@ -155,24 +141,12 @@ class M1OrderLineFragment :
fun onlyChangeSite(submit: Boolean) {
if (submit) {
g_side_submit_group.visibility = View.VISIBLE
tv_site_only_submit.visibility = View.VISIBLE
} else {
g_side_submit_group.visibility = View.GONE
tv_site_only_submit.visibility = View.GONE
}
}
fun setSiteAdapterEnable(enable: Boolean) {
if (enable) {
siteAdapter.setEnable(true)
} else {
siteAdapter.setEnable(false)
}
}
fun setSwitchEnable(enable: Boolean) {
tv_switch_line.isEnabled = enable
}
fun startAni() {
g_lines_sites_data.visibility = View.GONE
g_loading_group.visibility = View.VISIBLE
@@ -213,7 +187,7 @@ class M1OrderLineFragment :
fun go2StartCar() {
changeCheck?.changeChange()
dismiss?.closeDialog()
}
override fun createPresenter(): BusPassengerFunctionOrderPresenter {
@@ -231,8 +205,11 @@ class M1OrderLineFragment :
lineAdapter.submitLine(lineInfo)
}
fun lineAdapterSetData(lineInfo: List<LineInfoResponse.LineInfo>) {
lineAdapter.setDataList(lineInfo)
fun lineAdapterSetData(
lineInfo: List<LineInfoResponse.LineInfo>,
checkLine: LineInfoResponse.LineInfo?
) {
lineAdapter.setDataList(lineInfo,checkLine)
}
fun siteAdapterSetData(siteInfo: List<SiteInfoResponse.SiteInfo>) {
@@ -242,14 +219,19 @@ class M1OrderLineFragment :
siteAdapter.setEnableIndex(index)
}
fun setContainDismiss(dismiss: M1ContainFragment.ContainDismiss) {
this.dismiss = dismiss
}
companion object {
const val TAG = "M1OrderLineFragment"
@JvmStatic
fun newInstance(): M1OrderLineFragment {
fun newInstance(dismiss: M1ContainFragment.ContainDismiss): M1OrderLineFragment {
val args = Bundle()
val fragment = M1OrderLineFragment()
fragment.arguments = args
fragment.setContainDismiss(dismiss)
return fragment
}
}

View File

@@ -1,6 +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_26"/>
<corners android:radius="@dimen/dp_36"/>
<solid android:color="#B3EFF6FF"/>
</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,11 @@
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<corners
android:bottomLeftRadius="@dimen/dp_36"
android:topLeftRadius="@dimen/dp_36" />
<gradient
android:centerColor="@color/bus_p_m1_91EFF6FF"
android:endColor="@color/bus_p_m1_91EFF6FF"
android:startColor="@color/bus_p_m1_91EFF6FF" />
</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"/>
<gradient android:startColor="@color/bus_p_m1_1466FB" android:endColor="@color/bus_p_m1_43CEFE"/>
</shape>

View File

@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<gradient android:startColor="@color/bus_p_m1_80288dfc" android:centerColor="@color/bus_p_m1_3060ABFE" android:endColor="@color/bus_p_m1_0060ABFE"/>
<solid android:color="@color/bus_p_m1_331466FB"/>
</shape>

View File

@@ -10,13 +10,12 @@
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="0dp"
android:layout_height="0dp"
android:clickable="true"
android:layout_marginStart="@dimen/dp_286"
android:background="@drawable/bus_p_function_setting_soft_b_shape"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintDimensionRatio="1031:500"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintDimensionRatio="936:500"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintWidth_percent="0.53698">
app:layout_constraintWidth_percent="0.4875">
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/lsv_line_site"
@@ -28,100 +27,20 @@
android:id="@+id/cl_line_list"
android:layout_width="0dp"
android:layout_height="match_parent"
android:background="@drawable/charter_p_shape_line_switch_left"
app:layout_constraintEnd_toStartOf="@+id/cl_side_list"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintWidth_percent="0.35887">
<TextView
android:id="@+id/tv_line_title"
android:text="浏览线路"
android:textSize="@dimen/dp_26"
android:textColor="@color/bus_p_m1_0f1e57"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintStart_toStartOf="parent"
android:layout_marginTop="@dimen/dp_40"
android:layout_marginStart="@dimen/dp_31"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
<TextView
android:id="@+id/tv_switch_line"
android:text="切换"
android:textSize="@dimen/dp_22"
android:textColor="@color/bus_p_m1_225eff"
app:layout_constraintTop_toTopOf="@+id/tv_line_title"
app:layout_constraintBottom_toBottomOf="@+id/tv_line_title"
app:layout_constraintEnd_toEndOf="parent"
android:paddingEnd="@dimen/dp_31"
android:paddingTop="@dimen/dp_10"
android:paddingBottom="@dimen/dp_10"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
<ImageView
android:src="@drawable/m1_order_switch_line_enable"
android:id="@+id/iv_switch_line_left"
app:layout_constraintTop_toTopOf="@+id/tv_switch_line"
app:layout_constraintBottom_toBottomOf="@+id/tv_switch_line"
app:layout_constraintEnd_toStartOf="@+id/tv_switch_line"
android:layout_marginEnd="@dimen/dp_6"
android:layout_width="@dimen/dp_14"
android:layout_height="@dimen/dp_16"/>
app:layout_constraintWidth_percent="0.3953">
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/rlv_line_list"
android:background="@drawable/m1_order_line_shape"
app:layout_constraintTop_toBottomOf="@+id/tv_line_title"
app:layout_constraintBottom_toBottomOf="parent"
android:layout_marginTop="@dimen/dp_24"
android:layout_width="match_parent"
android:layout_height="0dp"/>
<ImageView
android:id="@+id/iv_line_cancle_submit_bg"
android:layout_height="0dp"
android:layout_marginTop="@dimen/dp_31"
android:layout_marginBottom="@dimen/dp_31"
android:background="@drawable/m1_order_line_shape"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
android:src="@drawable/m1_line_cancle_submit_bg"
android:layout_width="@dimen/dp_275"
android:layout_height="@dimen/dp_60"/>
<TextView
android:id="@+id/tv_line_cancle"
android:text="取消"
android:textSize="@dimen/dp_20"
app:layout_constraintStart_toStartOf="@+id/iv_line_cancle_submit_bg"
app:layout_constraintTop_toTopOf="@+id/iv_line_cancle_submit_bg"
app:layout_constraintBottom_toBottomOf="@+id/iv_line_cancle_submit_bg"
app:layout_constraintEnd_toStartOf="@+id/gl_line_cancle_submit_guide"
android:textColor="@color/bus_p_m1_3b4056"
android:gravity="center"
android:layout_width="0dp"
android:layout_height="0dp"/>
<TextView
android:id="@+id/tv_line_submit"
android:text="确认"
android:textSize="@dimen/dp_20"
app:layout_constraintStart_toEndOf="@+id/gl_line_cancle_submit_guide"
app:layout_constraintEnd_toEndOf="@+id/iv_line_cancle_submit_bg"
app:layout_constraintTop_toTopOf="@+id/iv_line_cancle_submit_bg"
app:layout_constraintBottom_toBottomOf="@+id/iv_line_cancle_submit_bg"
android:textColor="@color/bus_p_m1_3b4056"
android:gravity="center"
android:layout_width="0dp"
android:layout_height="0dp"/>
<androidx.constraintlayout.widget.Guideline
android:id="@+id/gl_line_cancle_submit_guide"
app:layout_constraintGuide_percent="0.5"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical" />
<androidx.constraintlayout.widget.Group
android:id="@+id/g_line_submit_group"
app:constraint_referenced_ids="tv_line_submit,tv_line_cancle,iv_line_cancle_submit_bg"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
@@ -131,139 +50,131 @@
android:layout_height="match_parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toEndOf="@+id/cl_line_list"
app:layout_constraintWidth_percent="0.64113">
app:layout_constraintWidth_percent="0.6047">
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/rv_site_list"
android:paddingTop="@dimen/dp_20"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
<ImageView
android:id="@+id/iv_site_cancle_submit_bg"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
android:src="@drawable/m1_site_cancle_submit_bg"
android:layout_width="@dimen/dp_375"
android:layout_height="@dimen/dp_60"/>
android:layout_height="match_parent"
android:paddingTop="@dimen/dp_20" />
<TextView
android:id="@+id/tv_site_cancle"
android:text="取消"
android:textSize="@dimen/dp_20"
app:layout_constraintStart_toStartOf="@+id/iv_site_cancle_submit_bg"
app:layout_constraintTop_toTopOf="@+id/iv_site_cancle_submit_bg"
app:layout_constraintBottom_toBottomOf="@+id/iv_site_cancle_submit_bg"
app:layout_constraintEnd_toStartOf="@+id/gl_site_cancle_submit_guide"
android:textColor="@color/bus_p_m1_3b4056"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="@dimen/dp_30"
android:layout_marginBottom="@dimen/dp_22"
android:background="@drawable/charter_p_shape_cancle_line_site_change"
android:gravity="center"
android:layout_width="0dp"
android:layout_height="0dp"/>
android:paddingStart="@dimen/dp_56"
android:paddingTop="@dimen/dp_14"
android:paddingEnd="@dimen/dp_56"
android:paddingBottom="@dimen/dp_13"
android:text="取消"
android:textColor="@android:color/white"
android:textSize="@dimen/dp_20"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toStartOf="@+id/gl_site_cancle_submit_guide" />
<TextView
android:id="@+id/tv_site_submit"
android:text="确认"
android:textSize="@dimen/dp_20"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/dp_30"
android:layout_marginBottom="@dimen/dp_22"
android:background="@drawable/charter_p_shape_submit_line_site_change"
android:gravity="center"
app:layout_constraintStart_toEndOf="@+id/gl_site_cancle_submit_guide"
app:layout_constraintEnd_toEndOf="@+id/iv_site_cancle_submit_bg"
app:layout_constraintTop_toTopOf="@+id/iv_site_cancle_submit_bg"
app:layout_constraintBottom_toBottomOf="@+id/iv_site_cancle_submit_bg"
android:textColor="@color/bus_p_m1_3b4056"
android:layout_width="0dp"
android:layout_height="0dp"/>
android:paddingStart="@dimen/dp_56"
android:paddingTop="@dimen/dp_14"
android:paddingEnd="@dimen/dp_56"
android:paddingBottom="@dimen/dp_13"
android:text="确认"
android:textColor="@android:color/white"
android:textSize="@dimen/dp_20"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toEndOf="@+id/gl_site_cancle_submit_guide" />
<androidx.constraintlayout.widget.Guideline
android:id="@+id/gl_site_cancle_submit_guide"
app:layout_constraintGuide_percent="0.5"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical" />
android:orientation="vertical"
app:layout_constraintGuide_percent="0.5" />
<androidx.constraintlayout.widget.Group
android:id="@+id/g_side_cancle_submit_group"
app:constraint_referenced_ids="tv_site_submit,tv_site_cancle,iv_site_cancle_submit_bg"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
android:layout_height="wrap_content"
app:constraint_referenced_ids="tv_site_submit,tv_site_cancle" />
<ImageView
android:id="@+id/iv_site_submit_bg"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
android:src="@drawable/m1_site_submit_bg"
android:layout_width="@dimen/dp_258"
android:layout_height="@dimen/dp_60"/>
<TextView
android:id="@+id/tv_site_only_submit"
android:text="确认"
android:textSize="@dimen/dp_20"
android:gravity="center"
app:layout_constraintStart_toStartOf="@+id/iv_site_submit_bg"
app:layout_constraintEnd_toEndOf="@+id/iv_site_submit_bg"
app:layout_constraintTop_toTopOf="@+id/iv_site_submit_bg"
app:layout_constraintBottom_toBottomOf="@+id/iv_site_submit_bg"
android:textColor="@color/bus_p_m1_3b4056"
android:layout_width="0dp"
android:layout_height="0dp"/>
<androidx.constraintlayout.widget.Group
android:id="@+id/g_side_submit_group"
android:visibility="gone"
app:constraint_referenced_ids="tv_site_only_submit,iv_site_submit_bg"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
android:layout_height="wrap_content"
android:layout_marginBottom="@dimen/dp_22"
android:background="@drawable/charter_p_shape_submit_line_site_change"
android:paddingStart="@dimen/dp_56"
android:visibility="gone"
android:paddingTop="@dimen/dp_14"
android:paddingEnd="@dimen/dp_56"
android:paddingBottom="@dimen/dp_13"
android:text="确认"
android:textColor="@android:color/white"
android:textSize="@dimen/dp_20"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="@+id/gl_site_cancle_submit_guide"
app:layout_constraintStart_toStartOf="@+id/gl_site_cancle_submit_guide" />
</androidx.constraintlayout.widget.ConstraintLayout>
<androidx.constraintlayout.widget.Group
android:id="@+id/g_lines_sites_data"
app:constraint_referenced_ids="cl_line_list,cl_side_list"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
android:layout_height="wrap_content"
app:constraint_referenced_ids="cl_line_list,cl_side_list" />
<ImageView
android:id="@+id/iv_loading_wait_driver"
android:src="@drawable/bus_p_loading"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.372"
app:layout_constraintBottom_toBottomOf="parent"
android:layout_width="@dimen/dp_71"
android:layout_height="@dimen/dp_73"/>
android:layout_height="@dimen/dp_73"
android:src="@drawable/bus_p_loading"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.372" />
<TextView
android:id="@+id/tv_loading_wait_driver_title"
app:layout_constraintStart_toStartOf="@+id/iv_loading_wait_driver"
app:layout_constraintEnd_toEndOf="@+id/iv_loading_wait_driver"
app:layout_constraintTop_toBottomOf="@+id/iv_loading_wait_driver"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="63dp"
android:text="等待司机确认信息,请稍候…"
android:textSize="@dimen/dp_30"
android:textColor="@color/bus_p_m1_4a5375"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
android:textSize="@dimen/dp_30"
app:layout_constraintEnd_toEndOf="@+id/iv_loading_wait_driver"
app:layout_constraintStart_toStartOf="@+id/iv_loading_wait_driver"
app:layout_constraintTop_toBottomOf="@+id/iv_loading_wait_driver" />
<androidx.constraintlayout.widget.Group
android:id="@+id/g_loading_group"
android:visibility="gone"
app:constraint_referenced_ids="iv_loading_wait_driver,tv_loading_wait_driver_title"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
android:layout_height="wrap_content"
android:visibility="gone"
app:constraint_referenced_ids="iv_loading_wait_driver,tv_loading_wait_driver_title" />
</androidx.constraintlayout.widget.ConstraintLayout>
<include
android:id="@+id/m1_order_early_end"
android:visibility="gone"
layout="@layout/m1_order_early_end"/>
layout="@layout/m1_order_early_end"
android:visibility="gone" />
<include
android:id="@+id/m1_order_noorder"
android:visibility="gone"
layout="@layout/m1_order_noorder"/>
layout="@layout/m1_order_noorder"
android:visibility="gone" />
</androidx.constraintlayout.widget.ConstraintLayout>

View File

@@ -20,6 +20,7 @@
<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_331466FB">#331466FB</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>