diff --git a/OCH/common/common/src/main/java/com/mogo/och/common/module/wigets/CommonDialogStatus.kt b/OCH/common/common/src/main/java/com/mogo/och/common/module/wigets/dialog/CommonDialogStatus.kt
similarity index 73%
rename from OCH/common/common/src/main/java/com/mogo/och/common/module/wigets/CommonDialogStatus.kt
rename to OCH/common/common/src/main/java/com/mogo/och/common/module/wigets/dialog/CommonDialogStatus.kt
index db1f17263a..6ef386a438 100644
--- a/OCH/common/common/src/main/java/com/mogo/och/common/module/wigets/CommonDialogStatus.kt
+++ b/OCH/common/common/src/main/java/com/mogo/och/common/module/wigets/dialog/CommonDialogStatus.kt
@@ -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.graphics.Color
import android.view.View
import android.view.animation.Animation
import android.view.animation.AnimationUtils
import android.view.animation.LinearInterpolator
import android.widget.TextView
+import androidx.annotation.ColorRes
import androidx.appcompat.widget.AppCompatImageView
import androidx.appcompat.widget.AppCompatTextView
import androidx.lifecycle.LifecycleObserver
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.och.common.module.R
+import com.mogo.och.common.module.utils.ResourcesUtils
import io.reactivex.Observable
import io.reactivex.disposables.Disposable
import io.reactivex.schedulers.Schedulers
@@ -28,6 +32,7 @@ class CommonDialogStatus: BaseFloatDialog, LifecycleObserver {
private var commonTips : TextView? = null
private var countDownTxt: AppCompatTextView? = null
private var commonStatus:AppCompatImageView?=null
+ private var commonClose:AppCompatImageView?=null
private var clickListener: ClickListener? = null
@@ -35,9 +40,14 @@ class CommonDialogStatus: BaseFloatDialog, LifecycleObserver {
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
commonTips?.text = builder.tipsStr
commonCancel?.text = builder.cancelStr
@@ -45,6 +55,12 @@ class CommonDialogStatus: BaseFloatDialog, LifecycleObserver {
countDownTxt?.text = builder.countDownValue.toString()
mCountdownValue = builder.countDownValue
status = builder.statusEnum
+ showCloseView = builder.showClose
+ cancelTextColor = builder.cancelTextColor
+ this.clickListener = builder.clickListener
+
+ commonCancel?.setTextColor(ResourcesUtils.getColors(cancelTextColor))
+
when (status) {
Status.ask -> {
commonStatus?.setImageResource(R.drawable.common_dialog_icon_ask)
@@ -52,6 +68,9 @@ class CommonDialogStatus: BaseFloatDialog, LifecycleObserver {
Status.loading -> {
commonStatus?.setImageResource(R.drawable.common_dialog_status_loading)
}
+ Status.success -> {
+ commonStatus?.setImageResource(R.drawable.common_feedback_success)
+ }
}
if (mCountdownValue > 0){
@@ -59,6 +78,9 @@ class CommonDialogStatus: BaseFloatDialog, LifecycleObserver {
}else{
countDownTxt?.visibility = View.GONE
}
+ if(showCloseView){
+ commonClose?.visibility = View.VISIBLE
+ }
}
init{
@@ -72,6 +94,7 @@ class CommonDialogStatus: BaseFloatDialog, LifecycleObserver {
commonTips = findViewById(R.id.common_dialog_content_new)
countDownTxt = findViewById(R.id.common_count_down_new)
commonStatus = findViewById(R.id.common_dialog_status)
+ commonClose = findViewById(R.id.common_dialog_close)
commonConfirm?.setOnClickListener{
clickListener?.confirm()
@@ -81,6 +104,10 @@ class CommonDialogStatus: BaseFloatDialog, LifecycleObserver {
clickListener?.cancel()
dismiss()
}
+ commonClose?.onClick {
+ clickListener?.dismiss()
+ dismiss()
+ }
}
fun setClickListener(clickListener: ClickListener) {
@@ -88,8 +115,9 @@ class CommonDialogStatus: BaseFloatDialog, LifecycleObserver {
}
interface ClickListener{
- fun confirm()
- fun cancel()
+ fun confirm(){}
+ fun cancel(){}
+ fun dismiss(){}
}
override fun onAttachedToWindow() {
@@ -151,35 +179,53 @@ class CommonDialogStatus: BaseFloatDialog, LifecycleObserver {
var confirmStr:String = ""
var cancelStr:String = ""
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
return this
}
- fun tips(tips: String) : Builder{
+ fun tips(tips: String) : Builder {
this.tipsStr = tips
return this
}
- fun confirmStr(commit: String) : Builder{
+ fun confirmStr(commit: String) : Builder {
this.confirmStr = commit
return this
}
+ fun showClose(show:Boolean):Builder{
+ this.showClose = show
+ return this
+ }
+
+ fun cancelTextColor(@ColorRes color: Int): Builder {
+ this.cancelTextColor = color
+ return this
+ }
+
/**
* 不传倒计时没有, >0 有倒计时
*/
- fun countdownValue(value: Int): Builder{
+ fun countdownValue(value: Int): Builder {
this.countDownValue = value
return this
}
- fun cancelStr(cancel: String) : Builder{
+ fun cancelStr(cancel: String) : Builder {
this.cancelStr = cancel
return this
}
+ fun clickListener(clickListener: ClickListener): Builder {
+ this.clickListener = clickListener
+ return this
+ }
+
fun build(context: Context): CommonDialogStatus {
return CommonDialogStatus(this,context)
}
@@ -191,7 +237,7 @@ class CommonDialogStatus: BaseFloatDialog, LifecycleObserver {
}
enum class Status{
- ask,loading
+ ask,loading,success
}
}
\ No newline at end of file
diff --git a/OCH/common/common/src/main/res/drawable-nodpi/common_dialog_close.png b/OCH/common/common/src/main/res/drawable-nodpi/common_dialog_close.png
new file mode 100755
index 0000000000..7fa6d7c9aa
Binary files /dev/null and b/OCH/common/common/src/main/res/drawable-nodpi/common_dialog_close.png differ
diff --git a/OCH/common/common/src/main/res/layout/common_dialog_status_new.xml b/OCH/common/common/src/main/res/layout/common_dialog_status_new.xml
index 0e099aed47..7b607f953b 100644
--- a/OCH/common/common/src/main/res/layout/common_dialog_status_new.xml
+++ b/OCH/common/common/src/main/res/layout/common_dialog_status_new.xml
@@ -8,6 +8,16 @@
android:background="@drawable/bg_bone_dialog"
app:roundLayoutRadius="@dimen/dp_50">
+
+