Commit e16c56dc by 徐健

增加咨询师列表activity的导医逻辑

parent 528664e0
...@@ -312,7 +312,7 @@ class ExpertSearchActivity : BaseMvpActivity<IExpertSearchView, ExpertSearchPres ...@@ -312,7 +312,7 @@ class ExpertSearchActivity : BaseMvpActivity<IExpertSearchView, ExpertSearchPres
image_scroll_top.setOnClickListener(this) image_scroll_top.setOnClickListener(this)
// initStatus() // initStatus()
ConsultAssistantDialogUtils.INSTANCE.fitRequest(this, "doctor_list") ConsultAssistantDialogUtils.INSTANCE.fitRequest(this, "doctor_list", true)
} }
private fun initNetLossView() { private fun initNetLossView() {
...@@ -999,7 +999,7 @@ class ExpertSearchActivity : BaseMvpActivity<IExpertSearchView, ExpertSearchPres ...@@ -999,7 +999,7 @@ class ExpertSearchActivity : BaseMvpActivity<IExpertSearchView, ExpertSearchPres
} else { } else {
updateFilterTextViewStatus(tvFilter, FILTER_STATUS_NORMAL) updateFilterTextViewStatus(tvFilter, FILTER_STATUS_NORMAL)
} }
ConsultAssistantDialogUtils.INSTANCE.fitRequest(this, "doctor_list") ConsultAssistantDialogUtils.INSTANCE.fitRequest(this, "doctor_list", true)
} }
filterPopupWindow.isClippingEnabled = false filterPopupWindow.isClippingEnabled = false
filterPopupWindow.showAtLocation(viewSep2.rootView, Gravity.TOP + Gravity.RIGHT, 0, 0) filterPopupWindow.showAtLocation(viewSep2.rootView, Gravity.TOP + Gravity.RIGHT, 0, 0)
...@@ -1478,6 +1478,6 @@ class ExpertSearchActivity : BaseMvpActivity<IExpertSearchView, ExpertSearchPres ...@@ -1478,6 +1478,6 @@ class ExpertSearchActivity : BaseMvpActivity<IExpertSearchView, ExpertSearchPres
override fun onDestroy() { override fun onDestroy() {
super.onDestroy() super.onDestroy()
ConsultAssistantDialogUtils.INSTANCE.resetStatus() ConsultAssistantDialogUtils.INSTANCE.expertSearchResetStatus()
} }
} }
...@@ -21,16 +21,19 @@ class ConsultAssistantDialogUtils private constructor() { ...@@ -21,16 +21,19 @@ class ConsultAssistantDialogUtils private constructor() {
} }
var consultAssistantDialogFromHomePage: ConsultAssistantDialog? = null // 首页展示的dialog var consultAssistantDialogFromHomePage: ConsultAssistantDialog? = null // 首页展示的dialog
var consultAssistantDialog: ConsultAssistantDialog? = null //咨询师列表页面展示的dialog var consultAssistantFragmentDialog: ConsultAssistantDialog? = null //咨询师列表fragment页面展示的dialog
var expertSearchPageHasShown: Boolean = false // 专家咨询列表页面是否已经展示 var expertSearchPageHasShown: Boolean = false // 专家咨询列表fragment页面是否已经展示
var consultAssistantActivityDialog: ConsultAssistantDialog? = null //咨询师列表activity页面展示的dialog
var expertSearchActivityPageHasShown: Boolean = false // 专家咨询列表activity页面是否已经展示
var timer: Timer? = null var timer: Timer? = null
/** /**
*判断是否符合代码展示逻辑 *判断是否符合代码展示逻辑
* origin 展示请求来源 首页 home_index 咨询列表 doctor_list * origin 展示请求来源 首页 home_index 咨询列表 doctor_list
* fromActivity 默认不是来自于咨询师列表activity
*/ */
fun fitRequest(activity: Activity, origin: String) { fun fitRequest(activity: Activity, origin: String, fromActivity: Boolean = false) {
when (origin) { when (origin) {
"home_index" -> { "home_index" -> {
if (ConsultantIn.isLogin() && if (ConsultantIn.isLogin() &&
...@@ -40,7 +43,7 @@ class ConsultAssistantDialogUtils private constructor() { ...@@ -40,7 +43,7 @@ class ConsultAssistantDialogUtils private constructor() {
} }
} }
"doctor_list" -> { "doctor_list" -> {
shouldShowDialog(activity, origin) shouldShowDialog(activity, origin, fromActivity = fromActivity)
} }
} }
...@@ -49,7 +52,7 @@ class ConsultAssistantDialogUtils private constructor() { ...@@ -49,7 +52,7 @@ class ConsultAssistantDialogUtils private constructor() {
/** /**
* 判断是否符合接口展示逻辑 * 判断是否符合接口展示逻辑
*/ */
private fun shouldShowDialog(activity: Activity, origin: String, isDelay: Boolean = false) { private fun shouldShowDialog(activity: Activity, origin: String, isDelay: Boolean = false, fromActivity: Boolean = false) {
// 请求接口判断导医咨询助理按钮是否展示 // 请求接口判断导医咨询助理按钮是否展示
SearchApi.getSearchApi().getConsultAssistantRequest(origin) SearchApi.getSearchApi().getConsultAssistantRequest(origin)
.subscribeOn(Schedulers.io()) .subscribeOn(Schedulers.io())
...@@ -59,7 +62,7 @@ class ConsultAssistantDialogUtils private constructor() { ...@@ -59,7 +62,7 @@ class ConsultAssistantDialogUtils private constructor() {
if (origin == "home_index") { if (origin == "home_index") {
showFromYdlHome(activity) showFromYdlHome(activity)
} else if (origin == "doctor_list") { } else if (origin == "doctor_list") {
show(activity) show(activity, fromActivity)
} }
} }
} }
...@@ -100,46 +103,85 @@ class ConsultAssistantDialogUtils private constructor() { ...@@ -100,46 +103,85 @@ class ConsultAssistantDialogUtils private constructor() {
/** /**
* 咨询师列表页展示 * 咨询师列表页展示
*/ */
fun show(activity: Activity) { fun show(activity: Activity, fromActivity: Boolean = false) {
// 来自于fragment咨询师列表
if (!expertSearchPageHasShown && timer == null) { if (!fromActivity) {
timer = Timer() if (!expertSearchPageHasShown && timer == null) {
timer!!.schedule(object : TimerTask() { timer = Timer()
override fun run() { timer!!.schedule(object : TimerTask() {
Observable.just(1).observeOn(AndroidSchedulers.mainThread()) override fun run() {
.subscribe { Observable.just(1).observeOn(AndroidSchedulers.mainThread())
expertSearchPageHasShown = true .subscribe {
showDialog(activity) expertSearchPageHasShown = true
} showDialog(activity)
} }
}, 5000) }
} else { }, 5000)
showDialog(activity) } else {
showDialog(activity)
}
}else {// 来自于activity咨询师列表
if (!expertSearchActivityPageHasShown && timer == null) {
timer = Timer()
timer!!.schedule(object : TimerTask() {
override fun run() {
Observable.just(1).observeOn(AndroidSchedulers.mainThread())
.subscribe {
expertSearchActivityPageHasShown = true
showDialog(activity, true)
}
}
}, 5000)
} else {
showDialog(activity, true)
}
} }
} }
/** /**
* 咨询师列表页展示浮层 * 咨询师列表页展示浮层
*/ */
fun showDialog(activity: Activity) { fun showDialog(activity: Activity, fromActivity: Boolean = false) {
if (!activity.isFinishing) { if (!fromActivity) {
if (consultAssistantDialog == null) { if (!activity.isFinishing) {
consultAssistantDialog = ConsultAssistantDialog( if (consultAssistantFragmentDialog == null) {
activity, consultAssistantFragmentDialog = ConsultAssistantDialog(
object : ConsultAssistantDialog.OnConsultAssistantClickListener { activity,
override fun onClickAction() { object : ConsultAssistantDialog.OnConsultAssistantClickListener {
// 咨询师列表页面且未登录情况下,跳转登录页面 override fun onClickAction() {
if (!ConsultantIn.isLogin()) { // 咨询师列表页面且未登录情况下,跳转登录页面
ConsultantIn.toLogin(activity) if (!ConsultantIn.isLogin()) {
} else { ConsultantIn.toLogin(activity)
//获取用户uid } else {
getConsultAssistantUid(activity) //获取用户uid
getConsultAssistantUid(activity)
}
} }
}
}) })
}
consultAssistantFragmentDialog?.show()
}
}else {
if (!activity.isFinishing) {
if (consultAssistantActivityDialog == null) {
consultAssistantActivityDialog = ConsultAssistantDialog(
activity,
object : ConsultAssistantDialog.OnConsultAssistantClickListener {
override fun onClickAction() {
// 咨询师列表页面且未登录情况下,跳转登录页面
if (!ConsultantIn.isLogin()) {
ConsultantIn.toLogin(activity)
} else {
//获取用户uid
getConsultAssistantUid(activity)
}
}
})
}
consultAssistantActivityDialog?.show()
} }
consultAssistantDialog?.show()
} }
} }
...@@ -148,20 +190,36 @@ class ConsultAssistantDialogUtils private constructor() { ...@@ -148,20 +190,36 @@ class ConsultAssistantDialogUtils private constructor() {
* 咨询师列表页隐藏 * 咨询师列表页隐藏
*/ */
fun hide() { fun hide() {
consultAssistantDialog?.hide() consultAssistantFragmentDialog?.hide()
} }
/** /**
* 咨询师列表页面使用的重置本单例关于专家咨询列表页面得状态 * 释放本单例所有资源(咨询师列表fragmnet在MainActivity,
* 且在MainActivity销毁的时候,会先执行咨询师列表fragmnet
* 的ondeatroy,所以这边直接在该专家咨询列表碎片执行该方法)
*/ */
fun resetStatus() { fun resetStatus() {
consultAssistantDialogFromHomePage?.dismiss() consultAssistantDialogFromHomePage?.dismiss()
consultAssistantDialog?.dismiss() consultAssistantFragmentDialog?.dismiss()
consultAssistantActivityDialog?.dismiss()
timer?.cancel() timer?.cancel()
timer = null timer = null
expertSearchPageHasShown = false expertSearchPageHasShown = false
expertSearchActivityPageHasShown = false
consultAssistantDialogFromHomePage = null consultAssistantDialogFromHomePage = null
consultAssistantDialog = null consultAssistantFragmentDialog = null
consultAssistantActivityDialog = null
}
/**
* 咨询师列表activity页面使用的重置本单例关于专家咨询列表页面得状态
*/
fun expertSearchResetStatus() {
consultAssistantActivityDialog?.dismiss()
timer?.cancel()
timer = null
expertSearchActivityPageHasShown = false
consultAssistantActivityDialog = null
} }
////////////////////////////////////// 咨询师列表页面的展示隐藏逻辑 代码块end /////////////////////////////////////////////////// ////////////////////////////////////// 咨询师列表页面的展示隐藏逻辑 代码块end ///////////////////////////////////////////////////
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment