[fea]
[结束服务]
This commit is contained in:
yangyakun
2024-10-16 19:38:06 +08:00
parent db7d00b33e
commit c294d3736a
5 changed files with 109 additions and 26 deletions

View File

@@ -1,17 +1,21 @@
package com.mogo.och.common.module.wigets package com.mogo.och.common.module.wigets.dialog
import android.content.Context import android.content.Context
import android.graphics.Color
import android.view.View import android.view.View
import android.view.animation.Animation import android.view.animation.Animation
import android.view.animation.AnimationUtils import android.view.animation.AnimationUtils
import android.view.animation.LinearInterpolator import android.view.animation.LinearInterpolator
import android.widget.TextView import android.widget.TextView
import androidx.annotation.ColorRes
import androidx.appcompat.widget.AppCompatImageView import androidx.appcompat.widget.AppCompatImageView
import androidx.appcompat.widget.AppCompatTextView import androidx.appcompat.widget.AppCompatTextView
import androidx.lifecycle.LifecycleObserver import androidx.lifecycle.LifecycleObserver
import com.mogo.eagle.core.function.hmi.dialog.BaseFloatDialog import com.mogo.eagle.core.function.hmi.dialog.BaseFloatDialog
import com.mogo.eagle.core.utilcode.kotlin.onClick
import com.mogo.eagle.core.utilcode.util.UiThreadHandler import com.mogo.eagle.core.utilcode.util.UiThreadHandler
import com.mogo.och.common.module.R import com.mogo.och.common.module.R
import com.mogo.och.common.module.utils.ResourcesUtils
import io.reactivex.Observable import io.reactivex.Observable
import io.reactivex.disposables.Disposable import io.reactivex.disposables.Disposable
import io.reactivex.schedulers.Schedulers import io.reactivex.schedulers.Schedulers
@@ -28,6 +32,7 @@ class CommonDialogStatus: BaseFloatDialog, LifecycleObserver {
private var commonTips : TextView? = null private var commonTips : TextView? = null
private var countDownTxt: AppCompatTextView? = null private var countDownTxt: AppCompatTextView? = null
private var commonStatus:AppCompatImageView?=null private var commonStatus:AppCompatImageView?=null
private var commonClose:AppCompatImageView?=null
private var clickListener: ClickListener? = null private var clickListener: ClickListener? = null
@@ -35,9 +40,14 @@ class CommonDialogStatus: BaseFloatDialog, LifecycleObserver {
private var mCountdownValue: Int = 0 private var mCountdownValue: Int = 0
private var status:Status = Status.ask private var showCloseView:Boolean = false
constructor(builder: Builder,context: Context) : super(context) { @ColorRes
private var cancelTextColor:Int = R.color.white
private var status: Status = Status.ask
constructor(builder: Builder, context: Context) : super(context) {
commonTitle?.text = builder.titleStr commonTitle?.text = builder.titleStr
commonTips?.text = builder.tipsStr commonTips?.text = builder.tipsStr
commonCancel?.text = builder.cancelStr commonCancel?.text = builder.cancelStr
@@ -45,6 +55,12 @@ class CommonDialogStatus: BaseFloatDialog, LifecycleObserver {
countDownTxt?.text = builder.countDownValue.toString() countDownTxt?.text = builder.countDownValue.toString()
mCountdownValue = builder.countDownValue mCountdownValue = builder.countDownValue
status = builder.statusEnum status = builder.statusEnum
showCloseView = builder.showClose
cancelTextColor = builder.cancelTextColor
this.clickListener = builder.clickListener
commonCancel?.setTextColor(ResourcesUtils.getColors(cancelTextColor))
when (status) { when (status) {
Status.ask -> { Status.ask -> {
commonStatus?.setImageResource(R.drawable.common_dialog_icon_ask) commonStatus?.setImageResource(R.drawable.common_dialog_icon_ask)
@@ -52,6 +68,9 @@ class CommonDialogStatus: BaseFloatDialog, LifecycleObserver {
Status.loading -> { Status.loading -> {
commonStatus?.setImageResource(R.drawable.common_dialog_status_loading) commonStatus?.setImageResource(R.drawable.common_dialog_status_loading)
} }
Status.success -> {
commonStatus?.setImageResource(R.drawable.common_feedback_success)
}
} }
if (mCountdownValue > 0){ if (mCountdownValue > 0){
@@ -59,6 +78,9 @@ class CommonDialogStatus: BaseFloatDialog, LifecycleObserver {
}else{ }else{
countDownTxt?.visibility = View.GONE countDownTxt?.visibility = View.GONE
} }
if(showCloseView){
commonClose?.visibility = View.VISIBLE
}
} }
init{ init{
@@ -72,6 +94,7 @@ class CommonDialogStatus: BaseFloatDialog, LifecycleObserver {
commonTips = findViewById(R.id.common_dialog_content_new) commonTips = findViewById(R.id.common_dialog_content_new)
countDownTxt = findViewById(R.id.common_count_down_new) countDownTxt = findViewById(R.id.common_count_down_new)
commonStatus = findViewById(R.id.common_dialog_status) commonStatus = findViewById(R.id.common_dialog_status)
commonClose = findViewById(R.id.common_dialog_close)
commonConfirm?.setOnClickListener{ commonConfirm?.setOnClickListener{
clickListener?.confirm() clickListener?.confirm()
@@ -81,6 +104,10 @@ class CommonDialogStatus: BaseFloatDialog, LifecycleObserver {
clickListener?.cancel() clickListener?.cancel()
dismiss() dismiss()
} }
commonClose?.onClick {
clickListener?.dismiss()
dismiss()
}
} }
fun setClickListener(clickListener: ClickListener) { fun setClickListener(clickListener: ClickListener) {
@@ -88,8 +115,9 @@ class CommonDialogStatus: BaseFloatDialog, LifecycleObserver {
} }
interface ClickListener{ interface ClickListener{
fun confirm() fun confirm(){}
fun cancel() fun cancel(){}
fun dismiss(){}
} }
override fun onAttachedToWindow() { override fun onAttachedToWindow() {
@@ -151,35 +179,53 @@ class CommonDialogStatus: BaseFloatDialog, LifecycleObserver {
var confirmStr:String = "" var confirmStr:String = ""
var cancelStr:String = "" var cancelStr:String = ""
var countDownValue: Int = 0 var countDownValue: Int = 0
var showClose:Boolean =false
var cancelTextColor:Int = Color.WHITE
var clickListener:ClickListener?=null
fun title(title: String) : Builder{ fun title(title: String) : Builder {
this.titleStr = title this.titleStr = title
return this return this
} }
fun tips(tips: String) : Builder{ fun tips(tips: String) : Builder {
this.tipsStr = tips this.tipsStr = tips
return this return this
} }
fun confirmStr(commit: String) : Builder{ fun confirmStr(commit: String) : Builder {
this.confirmStr = commit this.confirmStr = commit
return this return this
} }
fun showClose(show:Boolean):Builder{
this.showClose = show
return this
}
fun cancelTextColor(@ColorRes color: Int): Builder {
this.cancelTextColor = color
return this
}
/** /**
* 不传倒计时没有 >0 有倒计时 * 不传倒计时没有 >0 有倒计时
*/ */
fun countdownValue(value: Int): Builder{ fun countdownValue(value: Int): Builder {
this.countDownValue = value this.countDownValue = value
return this return this
} }
fun cancelStr(cancel: String) : Builder{ fun cancelStr(cancel: String) : Builder {
this.cancelStr = cancel this.cancelStr = cancel
return this return this
} }
fun clickListener(clickListener: ClickListener): Builder {
this.clickListener = clickListener
return this
}
fun build(context: Context): CommonDialogStatus { fun build(context: Context): CommonDialogStatus {
return CommonDialogStatus(this,context) return CommonDialogStatus(this,context)
} }
@@ -191,7 +237,7 @@ class CommonDialogStatus: BaseFloatDialog, LifecycleObserver {
} }
enum class Status{ enum class Status{
ask,loading ask,loading,success
} }
} }

Binary file not shown.

After

Width:  |  Height:  |  Size: 409 B

View File

@@ -8,6 +8,16 @@
android:background="@drawable/bg_bone_dialog" android:background="@drawable/bg_bone_dialog"
app:roundLayoutRadius="@dimen/dp_50"> app:roundLayoutRadius="@dimen/dp_50">
<androidx.appcompat.widget.AppCompatImageView
android:id="@+id/common_dialog_close"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintEnd_toEndOf="parent"
android:src="@drawable/common_dialog_close"
android:layout_marginEnd="@dimen/dp_50"
android:layout_marginTop="@dimen/dp_50"
android:layout_width="@dimen/dp_60"
android:layout_height="@dimen/dp_60"/>
<androidx.appcompat.widget.AppCompatImageView <androidx.appcompat.widget.AppCompatImageView
android:id="@+id/common_dialog_status" android:id="@+id/common_dialog_status"
android:layout_width="@dimen/dp_140" android:layout_width="@dimen/dp_140"

View File

@@ -6,13 +6,12 @@ import android.view.LayoutInflater
import androidx.constraintlayout.widget.ConstraintLayout import androidx.constraintlayout.widget.ConstraintLayout
import androidx.lifecycle.ViewModelProvider import androidx.lifecycle.ViewModelProvider
import androidx.lifecycle.findViewTreeViewModelStoreOwner import androidx.lifecycle.findViewTreeViewModelStoreOwner
import androidx.recyclerview.widget.LinearLayoutManager
import com.mogo.commons.AbsMogoApplication import com.mogo.commons.AbsMogoApplication
import com.mogo.eagle.core.utilcode.kotlin.onClick 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.CallerLogger
import com.mogo.och.common.module.manager.autopilot.line.LineManager import com.mogo.och.common.module.manager.autopilot.line.LineManager
import com.mogo.och.common.module.utils.ResourcesUtils import com.mogo.och.common.module.utils.ResourcesUtils
import com.mogo.och.common.module.wigets.CommonDialogStatus import com.mogo.och.common.module.wigets.dialog.CommonDialogStatus
import com.mogo.och.common.module.wigets.CommonSlideView import com.mogo.och.common.module.wigets.CommonSlideView
import com.mogo.och.common.module.wigets.WrapContentLinearLayoutManager import com.mogo.och.common.module.wigets.WrapContentLinearLayoutManager
import com.mogo.och.shuttle.weaknet.R import com.mogo.och.shuttle.weaknet.R
@@ -26,7 +25,6 @@ import kotlinx.android.synthetic.main.shuttle_weak_task_running.view.actv_runnin
import kotlinx.android.synthetic.main.shuttle_weak_task_running.view.bus_task_running_line_name import kotlinx.android.synthetic.main.shuttle_weak_task_running.view.bus_task_running_line_name
import kotlinx.android.synthetic.main.shuttle_weak_task_running.view.loading_arrive_station import kotlinx.android.synthetic.main.shuttle_weak_task_running.view.loading_arrive_station
import kotlinx.android.synthetic.main.shuttle_weak_task_running.view.rl_running_task_station_list import kotlinx.android.synthetic.main.shuttle_weak_task_running.view.rl_running_task_station_list
import me.jessyan.autosize.utils.AutoSizeUtils
class TaskRunningView: ConstraintLayout, TaskRunningModel.SwtichLineViewCallback { class TaskRunningView: ConstraintLayout, TaskRunningModel.SwtichLineViewCallback {

View File

@@ -26,6 +26,7 @@ import com.mogo.och.unmanned.taxi.ui.routing.RoutingSwitchModel
import com.mogo.och.unmanned.taxi.ui.routing.TaxiRoutingFeedbackDialog import com.mogo.och.unmanned.taxi.ui.routing.TaxiRoutingFeedbackDialog
import com.mogo.och.unmanned.taxi.ui.routing.TaxiRoutingModel import com.mogo.och.unmanned.taxi.ui.routing.TaxiRoutingModel
import com.mogo.och.common.module.map.MapMakerManager import com.mogo.och.common.module.map.MapMakerManager
import com.mogo.och.common.module.wigets.dialog.CommonDialogStatus
import com.mogo.och.unmanned.taxi.utils.TaskUtils import com.mogo.och.unmanned.taxi.utils.TaskUtils
import kotlinx.android.synthetic.main.unmanned_routing_running.view.actv_current_itinerary_end_name import kotlinx.android.synthetic.main.unmanned_routing_running.view.actv_current_itinerary_end_name
import kotlinx.android.synthetic.main.unmanned_routing_running.view.actv_current_itinerary_start_name import kotlinx.android.synthetic.main.unmanned_routing_running.view.actv_current_itinerary_start_name
@@ -91,16 +92,16 @@ class RoutingRunningView: ConstraintLayout, RoutingRunningModel.RoutingRuningCal
private fun showFeedbackDialog(grayId: Long) { private fun showFeedbackDialog(grayId: Long) {
val occurrenceTime = System.currentTimeMillis() val occurrenceTime = System.currentTimeMillis()
val builder: TaxiRoutingFeedbackDialog.Builder = TaxiRoutingFeedbackDialog.Builder() CommonDialogStatus
builder.cancelStr( .Builder()
MainMoGoApplication.getApp() .title("路线验证结束")
.getString(R.string.routing_feedback_result_btn_not_sure) .tips("请点击按钮反馈验证结果")
).confirmStr( .showClose(true)
MainMoGoApplication.getApp() .cancelTextColor(R.color.taxi_color_FF4E41)
.getString(R.string.routing_feedback_result_btn_sure) .cancelStr("线路可用")
).tips(MainMoGoApplication.getApp().getString(R.string.routing_feedback_result_hint)) .confirmStr("线路不可用")
.clickListener(object : .status(CommonDialogStatus.Status.success)
TaxiRoutingFeedbackDialog.TaxiRoutingFeedBackDialogClickListener { .clickListener(object :CommonDialogStatus.ClickListener{
override fun confirm() { override fun confirm() {
swtichViewModel?.showLoading() swtichViewModel?.showLoading()
viewModel?.endGrayTask( grayId, viewModel?.endGrayTask( grayId,
@@ -115,8 +116,36 @@ class RoutingRunningView: ConstraintLayout, RoutingRunningModel.RoutingRuningCal
occurrenceTime) occurrenceTime)
} }
}) })
mFeedbackDialog = builder.build(context) .build(context).show()
mFeedbackDialog?.showDialog()
// val builder: TaxiRoutingFeedbackDialog.Builder = TaxiRoutingFeedbackDialog.Builder()
// builder.cancelStr(
// MainMoGoApplication.getApp()
// .getString(R.string.routing_feedback_result_btn_not_sure)
// ).confirmStr(
// MainMoGoApplication.getApp()
// .getString(R.string.routing_feedback_result_btn_sure)
// ).tips(MainMoGoApplication.getApp().getString(R.string.routing_feedback_result_hint))
// .clickListener(object :
// TaxiRoutingFeedbackDialog.TaxiRoutingFeedBackDialogClickListener {
// override fun confirm() {
// swtichViewModel?.showLoading()
// viewModel?.endGrayTask( grayId,
// EndGrayTaskFeedbackType.USABLE_YES,
// occurrenceTime)
// }
//
// override fun cancel() {
// swtichViewModel?.showLoading()
// viewModel?.endGrayTask( grayId,
// EndGrayTaskFeedbackType.USABLE_NO,
// occurrenceTime)
// }
// })
// mFeedbackDialog = builder.build(context)
// mFeedbackDialog?.showDialog()
} }
/** /**