Commit aae77395 by 刘鹏

Merge branch 'feat/lp/lp_expert_status' into 'd/v4.0.57_xlzx'

专家状态合并心理咨询发版分支

See merge request app_android_lib/YDL-Component!357
parents 1f2c8055 0931152d
...@@ -14,7 +14,7 @@ buildscript { ...@@ -14,7 +14,7 @@ buildscript {
ydlrouter_version = '1.2.3' ydlrouter_version = '1.2.3'
constrait_support_version = '1.0.2' constrait_support_version = '1.0.2'
componentVersion = "0.3.0.49.1-lp-SNAPSHOT" componentVersion = "0.3.0.49.1-SNAPSHOT"
} }
repositories { repositories {
mavenCentral() mavenCentral()
......
...@@ -9,7 +9,6 @@ import android.app.Activity ...@@ -9,7 +9,6 @@ import android.app.Activity
import android.content.Context import android.content.Context
import android.content.Intent import android.content.Intent
import android.graphics.Typeface import android.graphics.Typeface
import android.os.Bundle
import android.os.Handler import android.os.Handler
import android.text.TextUtils import android.text.TextUtils
import android.view.View import android.view.View
...@@ -1800,7 +1799,7 @@ class ExpertSearchActivity : BaseMvpActivity<IExpertSearchView, ExpertSearchPres ...@@ -1800,7 +1799,7 @@ class ExpertSearchActivity : BaseMvpActivity<IExpertSearchView, ExpertSearchPres
tv.setCompoundDrawablesWithIntrinsicBounds( tv.setCompoundDrawablesWithIntrinsicBounds(
0, 0,
0, 0,
R.drawable.platform_ic_arrow_drop_down_grey_500_18dp, R.drawable.consult_ic_arrow_drwn_gray,
0 0
) )
} }
...@@ -1810,7 +1809,7 @@ class ExpertSearchActivity : BaseMvpActivity<IExpertSearchView, ExpertSearchPres ...@@ -1810,7 +1809,7 @@ class ExpertSearchActivity : BaseMvpActivity<IExpertSearchView, ExpertSearchPres
tv.setCompoundDrawablesWithIntrinsicBounds( tv.setCompoundDrawablesWithIntrinsicBounds(
0, 0,
0, 0,
R.drawable.platform_arrow_drop_down_en, R.drawable.consult_ic_arrow_drwn_en,
0 0
) )
} }
...@@ -1820,7 +1819,7 @@ class ExpertSearchActivity : BaseMvpActivity<IExpertSearchView, ExpertSearchPres ...@@ -1820,7 +1819,7 @@ class ExpertSearchActivity : BaseMvpActivity<IExpertSearchView, ExpertSearchPres
tv.setCompoundDrawablesWithIntrinsicBounds( tv.setCompoundDrawablesWithIntrinsicBounds(
0, 0,
0, 0,
R.drawable.platform_arrow_drop_down_en, R.drawable.consult_ic_arrow_drwn_en,
0 0
) )
} }
...@@ -1836,7 +1835,7 @@ class ExpertSearchActivity : BaseMvpActivity<IExpertSearchView, ExpertSearchPres ...@@ -1836,7 +1835,7 @@ class ExpertSearchActivity : BaseMvpActivity<IExpertSearchView, ExpertSearchPres
tv.setCompoundDrawablesWithIntrinsicBounds( tv.setCompoundDrawablesWithIntrinsicBounds(
0, 0,
0, 0,
R.drawable.filter_up_grey, R.drawable.filter_up_gray,
0 0
) )
} }
......
...@@ -6,9 +6,7 @@ import android.animation.ObjectAnimator ...@@ -6,9 +6,7 @@ import android.animation.ObjectAnimator
import android.animation.PropertyValuesHolder import android.animation.PropertyValuesHolder
import android.annotation.SuppressLint import android.annotation.SuppressLint
import android.content.Context import android.content.Context
import android.content.Intent
import android.graphics.Typeface import android.graphics.Typeface
import android.net.Uri
import android.os.Handler import android.os.Handler
import android.text.TextUtils import android.text.TextUtils
import android.view.View import android.view.View
...@@ -31,9 +29,7 @@ import com.ydl.ydl_image.config.SimpleImageOpConfiger ...@@ -31,9 +29,7 @@ import com.ydl.ydl_image.config.SimpleImageOpConfiger
import com.ydl.ydl_image.listener.YDLImageRecyclerOnScrollListener import com.ydl.ydl_image.listener.YDLImageRecyclerOnScrollListener
import com.ydl.ydl_image.manager.YDLImageCacheManager import com.ydl.ydl_image.manager.YDLImageCacheManager
import com.ydl.ydlcommon.base.BaseMvpFragment import com.ydl.ydlcommon.base.BaseMvpFragment
import com.ydl.ydlcommon.base.config.ChannelConfig
import com.ydl.ydlcommon.base.config.HttpConfig import com.ydl.ydlcommon.base.config.HttpConfig
import com.ydl.ydlcommon.data.PlatformDataManager
import com.ydl.ydlcommon.modular.findRouteService import com.ydl.ydlcommon.modular.findRouteService
import com.ydl.ydlcommon.ui.LogoLoadingView import com.ydl.ydlcommon.ui.LogoLoadingView
import com.ydl.ydlcommon.utils.BuryPointUtils import com.ydl.ydlcommon.utils.BuryPointUtils
...@@ -54,12 +50,8 @@ import com.yidianling.consultant.constants.ConsultBIConstants ...@@ -54,12 +50,8 @@ import com.yidianling.consultant.constants.ConsultBIConstants
import com.yidianling.consultant.constants.ConsultBIConstants.ConsultEvent.Companion.PRICE_TYPE_CLICK import com.yidianling.consultant.constants.ConsultBIConstants.ConsultEvent.Companion.PRICE_TYPE_CLICK
import com.yidianling.consultant.constants.ConsultBIConstants.ConsultantLocationAuth.Companion.REFUSE_ALREADY import com.yidianling.consultant.constants.ConsultBIConstants.ConsultantLocationAuth.Companion.REFUSE_ALREADY
import com.yidianling.consultant.constants.ConsultBIConstants.ConsultantLocationAuth.Companion.WHETHER_LOCATION_AUTH import com.yidianling.consultant.constants.ConsultBIConstants.ConsultantLocationAuth.Companion.WHETHER_LOCATION_AUTH
import com.yidianling.consultant.listener.*
import com.yidianling.consultant.dialog.ConsultSubPayDialog import com.yidianling.consultant.dialog.ConsultSubPayDialog
import com.yidianling.consultant.listener.OnCategoriesSelectedListener import com.yidianling.consultant.listener.*
import com.yidianling.consultant.listener.OnExpertClickListener
import com.yidianling.consultant.listener.OnFilterConfirmListener
import com.yidianling.consultant.listener.OnSortItemSelectedListener
import com.yidianling.consultant.model.SearchApi import com.yidianling.consultant.model.SearchApi
import com.yidianling.consultant.model.bean.* import com.yidianling.consultant.model.bean.*
import com.yidianling.consultant.modular.singlton.ConsultAssistantDialogUtils import com.yidianling.consultant.modular.singlton.ConsultAssistantDialogUtils
...@@ -501,21 +493,21 @@ class ExpertSearchFragment : BaseMvpFragment<IExpertSearchView, ExpertSearchPres ...@@ -501,21 +493,21 @@ class ExpertSearchFragment : BaseMvpFragment<IExpertSearchView, ExpertSearchPres
textView.setOnClickListener { textView.setOnClickListener {
if (textView.isSelected) { if (textView.isSelected) {
dealHotSelect(hot, false) dealHotSelect(hot, false)
textView!!.isSelected = false textView.isSelected = false
textView.paint.isFakeBoldText = false
} else { } else {
dealHotSelect(hot, true) dealHotSelect(hot, true)
textView.isSelected = true textView.isSelected = true
textView.paint.isFakeBoldText = true
// 埋点 // 埋点
hot.value?.let { it1 ->
ActionCountUtils.baiDuCountSign3( ActionCountUtils.baiDuCountSign3(
ConsultBIConstants.PART_ID_CONSULT_COUNSELOR_LIST_PAGE, ConsultBIConstants.PART_ID_CONSULT_COUNSELOR_LIST_PAGE,
ConsultBIConstants.ConsultEvent.POSITION_CHOICE_FILTER_CLICK, ConsultBIConstants.ConsultEvent.POSITION_CHOICE_FILTER_CLICK,
hot.value!!, it1,
"app", "app",
"" ""
) )
} }
}
filterLabelSet() filterLabelSet()
//开始筛选数据 //开始筛选数据
refresh() refresh()
...@@ -1611,12 +1603,12 @@ class ExpertSearchFragment : BaseMvpFragment<IExpertSearchView, ExpertSearchPres ...@@ -1611,12 +1603,12 @@ class ExpertSearchFragment : BaseMvpFragment<IExpertSearchView, ExpertSearchPres
private fun updateFilterTextViewStatus(tv: TextView, status: Int) { private fun updateFilterTextViewStatus(tv: TextView, status: Int) {
when (status) { when (status) {
FILTER_STATUS_NORMAL -> { FILTER_STATUS_NORMAL -> {
tv.typeface = Typeface.defaultFromStyle(Typeface.NORMAL) tv.typeface = Typeface.defaultFromStyle(Typeface.BOLD)
tv.setTextColor(ContextCompat.getColor(mContext, R.color.platform_colorTextDefault)) tv.setTextColor(ContextCompat.getColor(mContext, R.color.platform_color_242424))
tv.setCompoundDrawablesWithIntrinsicBounds( tv.setCompoundDrawablesWithIntrinsicBounds(
0, 0,
0, 0,
R.drawable.platform_ic_arrow_drop_down_grey_500_18dp, R.drawable.consult_ic_arrow_drwn_gray,
0 0
) )
} }
...@@ -1626,7 +1618,7 @@ class ExpertSearchFragment : BaseMvpFragment<IExpertSearchView, ExpertSearchPres ...@@ -1626,7 +1618,7 @@ class ExpertSearchFragment : BaseMvpFragment<IExpertSearchView, ExpertSearchPres
tv.setCompoundDrawablesWithIntrinsicBounds( tv.setCompoundDrawablesWithIntrinsicBounds(
0, 0,
0, 0,
R.drawable.platform_arrow_drop_down_en, R.drawable.consult_ic_arrow_drwn_en,
0 0
) )
} }
...@@ -1636,7 +1628,7 @@ class ExpertSearchFragment : BaseMvpFragment<IExpertSearchView, ExpertSearchPres ...@@ -1636,7 +1628,7 @@ class ExpertSearchFragment : BaseMvpFragment<IExpertSearchView, ExpertSearchPres
tv.setCompoundDrawablesWithIntrinsicBounds( tv.setCompoundDrawablesWithIntrinsicBounds(
0, 0,
0, 0,
R.drawable.platform_arrow_drop_down_en, R.drawable.consult_ic_arrow_drwn_en,
0 0
) )
} }
...@@ -1647,12 +1639,12 @@ class ExpertSearchFragment : BaseMvpFragment<IExpertSearchView, ExpertSearchPres ...@@ -1647,12 +1639,12 @@ class ExpertSearchFragment : BaseMvpFragment<IExpertSearchView, ExpertSearchPres
private fun updateFilterRightTextViewStatus(tv: TextView, status: Int) { private fun updateFilterRightTextViewStatus(tv: TextView, status: Int) {
when (status) { when (status) {
FILTER_STATUS_NORMAL -> { FILTER_STATUS_NORMAL -> {
tv.typeface = Typeface.defaultFromStyle(Typeface.NORMAL) tv.typeface = Typeface.defaultFromStyle(Typeface.BOLD)
tv.setTextColor(ContextCompat.getColor(mContext, R.color.platform_colorTextDefault)) tv.setTextColor(ContextCompat.getColor(mContext, R.color.platform_color_242424))
tv.setCompoundDrawablesWithIntrinsicBounds( tv.setCompoundDrawablesWithIntrinsicBounds(
0, 0,
0, 0,
R.drawable.filter_up_grey, R.drawable.filter_up_gray,
0 0
) )
} }
......
...@@ -8,7 +8,6 @@ import com.ydl.ydlcommon.data.http.RxUtils ...@@ -8,7 +8,6 @@ import com.ydl.ydlcommon.data.http.RxUtils
import com.ydl.ydlcommon.data.http.ThrowableConsumer import com.ydl.ydlcommon.data.http.ThrowableConsumer
import com.ydl.ydlcommon.modular.ModularServiceManager import com.ydl.ydlcommon.modular.ModularServiceManager
import com.ydl.ydlcommon.mvp.base.SimplePresenter import com.ydl.ydlcommon.mvp.base.SimplePresenter
import com.ydl.ydlcommon.utils.AnimUtils
import com.ydl.ydlcommon.utils.RxLifecycleUtils import com.ydl.ydlcommon.utils.RxLifecycleUtils
import com.ydl.ydlcommon.utils.remind.HttpErrorUtils import com.ydl.ydlcommon.utils.remind.HttpErrorUtils
import com.yidianling.common.tools.RxAppTool import com.yidianling.common.tools.RxAppTool
...@@ -266,15 +265,28 @@ class ExpertSearchPresenter : SimplePresenter<IExpertSearchView>() { ...@@ -266,15 +265,28 @@ class ExpertSearchPresenter : SimplePresenter<IExpertSearchView>() {
fieldsMap["is_free_today"] = true fieldsMap["is_free_today"] = true
fieldsMap["display_region"] = true fieldsMap["display_region"] = true
fieldsMap["has_servicefree_experience"] = true fieldsMap["has_servicefree_experience"] = true
//专家头像下方文案:如 忙碌;现在有空;今日可约;最近可约;已约满;休息中
fieldsMap["consult_display_status_str"] = true
//咨询显示状态:1.忙碌;2.现在有空;3.今日可约;4.最近可约;5.已约满;6.休息中
fieldsMap["consult_display_status"] = true
//私聊下方时间描述:如 最快可约今天19:00
fieldsMap["today_time_des"] = true
//服务方式:如 当面/视频
fieldsMap["attr_combine"] = true
//是否开启代聊:1开启,2关闭
fieldsMap["open_chat_agency"] = true
//年审
fieldsMap["audit_tag"] = true
map["fields"] = fieldsMap map["fields"] = fieldsMap
val optionsMap = HashMap<String, Any?>() val optionsMap = HashMap<String, Any?>()
optionsMap["search_scene_id"] = "doctor_main_search" optionsMap["search_scene_id"] = "doctor_main_search"
optionsMap["uid"] = ModularServiceManager.provide(IUserService::class.java).getUserInfo()?.uid optionsMap["uid"] =
ModularServiceManager.provide(IUserService::class.java).getUserInfo()?.uid
optionsMap["ffrom"] = PlatformDataManager.getRam().getChannelName() optionsMap["ffrom"] = PlatformDataManager.getRam().getChannelName()
optionsMap["version"]= RxAppTool.getAppVersionName(BaseApp.getApp()) optionsMap["version"] = RxAppTool.getAppVersionName(BaseApp.getApp())
optionsMap["os_type"]= 2 optionsMap["os_type"] = 2
if (extras!=null){ if (extras != null) {
optionsMap["extras"] = extras optionsMap["extras"] = extras
} }
map["options"] = optionsMap map["options"] = optionsMap
......
...@@ -11,14 +11,12 @@ import android.text.style.StyleSpan ...@@ -11,14 +11,12 @@ import android.text.style.StyleSpan
import android.view.LayoutInflater import android.view.LayoutInflater
import android.view.View import android.view.View
import android.view.ViewGroup import android.view.ViewGroup
import android.widget.ImageView
import androidx.appcompat.app.AppCompatActivity import androidx.appcompat.app.AppCompatActivity
import androidx.core.content.ContextCompat import androidx.core.content.ContextCompat
import androidx.recyclerview.widget.RecyclerView import androidx.recyclerview.widget.RecyclerView
import com.ydl.webview.H5Params import com.ydl.webview.H5Params
import com.ydl.webview.NewH5Activity import com.ydl.webview.NewH5Activity
import com.ydl.ydl_image.config.SimpleImageOpConfiger import com.ydl.ydl_image.config.SimpleImageOpConfiger
import com.ydl.ydl_image.module.GlideApp
import com.ydl.ydlcommon.base.config.HttpConfig import com.ydl.ydlcommon.base.config.HttpConfig
import com.ydl.ydlcommon.modular.findRouteService import com.ydl.ydlcommon.modular.findRouteService
import com.ydl.ydlcommon.utils.URLUtils import com.ydl.ydlcommon.utils.URLUtils
...@@ -33,10 +31,8 @@ import com.yidianling.consultant.model.bean.ExpertServiceItem ...@@ -33,10 +31,8 @@ import com.yidianling.consultant.model.bean.ExpertServiceItem
import com.yidianling.consultant.modular.utils.TempH5RouteUtils import com.yidianling.consultant.modular.utils.TempH5RouteUtils
import com.yidianling.consultant.router.ConsultantIn import com.yidianling.consultant.router.ConsultantIn
import com.yidianling.user.api.service.IUserService import com.yidianling.user.api.service.IUserService
import kotlinx.android.synthetic.main.consultant_expert_search_feedbackrate.view.*
import kotlinx.android.synthetic.main.consultant_expert_search_header_view.view.* import kotlinx.android.synthetic.main.consultant_expert_search_header_view.view.*
import kotlinx.android.synthetic.main.consultant_expert_search_item_view.view.* import kotlinx.android.synthetic.main.consultant_expert_search_item_view.view.*
import kotlinx.android.synthetic.main.consultant_expert_search_products_item.view.*
import kotlinx.android.synthetic.main.consultant_item_empty.view.* import kotlinx.android.synthetic.main.consultant_item_empty.view.*
import kotlinx.android.synthetic.main.consultant_item_footer.view.* import kotlinx.android.synthetic.main.consultant_item_footer.view.*
import kotlinx.android.synthetic.main.consultant_item_tag.view.* import kotlinx.android.synthetic.main.consultant_item_tag.view.*
...@@ -60,7 +56,7 @@ class ExpertSearchAdapter( ...@@ -60,7 +56,7 @@ class ExpertSearchAdapter(
} }
interface OnClickLister { interface OnClickLister {
fun onClick(searchWords:String) fun onClick(searchWords: String)
} }
private lateinit var mOnClickLister: OnClickLister private lateinit var mOnClickLister: OnClickLister
...@@ -75,7 +71,7 @@ class ExpertSearchAdapter( ...@@ -75,7 +71,7 @@ class ExpertSearchAdapter(
var hasMore = true var hasMore = true
var pageIndex: Int = 0 var pageIndex: Int = 0
var clickCount=0 // 搜索结果提示标签点击次数 var clickCount = 0 // 搜索结果提示标签点击次数
var mIsRecommendWords = false // 是否是推荐词 var mIsRecommendWords = false // 是否是推荐词
...@@ -83,55 +79,38 @@ class ExpertSearchAdapter( ...@@ -83,55 +79,38 @@ class ExpertSearchAdapter(
this.pageIndex = pageIndex this.pageIndex = pageIndex
} }
fun setIsRecommendWords(isRecommend:Boolean){ fun setIsRecommendWords(isRecommend: Boolean) {
mIsRecommendWords = isRecommend mIsRecommendWords = isRecommend
} }
@SuppressLint("SetTextI18n") @SuppressLint("SetTextI18n")
override fun onBindViewHolder(holder: RecyclerView.ViewHolder, position: Int) { override fun onBindViewHolder(holder: RecyclerView.ViewHolder, position: Int) {
if (holder is HeaderViewHolder) { // 搜索结果提示头部 if (holder is HeaderViewHolder) {
if (listData.size>0){ // 搜索结果提示头部
if (listData[0].is_head_view){ bindHeaderView(holder)
if (clickCount==0){ } else if (holder is NormalViewHolder) {
holder.clSearchWords.visibility = View.VISIBLE
var text = "根据匹配,为您推荐“${listData[0].related_word}”的搜索结果" bindNormalView(position, holder)
holder.tvSearchRelatedWord.text = setTextBold(text,listData[0].related_word)
holder.tvSearchWord.text = listData[0].search_content } else if (holder is FooterViewHolder) {
// 埋点 bindFooterView(holder)
if (mIsRecommendWords){
ActionCountUtils.baiDuCountSign3(ConsultBIConstants.PART_ID_YDL_USER_MAIN_PAGE,"ydl_user_map_word_visit",listData[0].search_content,listData[0].related_word,"app")
}else{
ActionCountUtils.baiDuCountSign3(ConsultBIConstants.PART_ID_YDL_USER_MAIN_PAGE,"ydl_user_correction_word_visit",listData[0].search_content,listData[0].related_word,"app")
}
holder.tvSearchWord.setOnClickListener {
mOnClickLister.onClick(holder.tvSearchWord.text.toString())
++clickCount
if (clickCount==1){
text = "以下是“${listData[0].search_content}”的搜索结果"
holder.tvSearchRelatedWord.text = setTextBold(text,listData[0].search_content)
holder.tvSearchTips.text = "你要找的是不是"
holder.tvSearchWord.text = listData[0].related_word
// 埋点
if (mIsRecommendWords){
ActionCountUtils.baiDuCountSign3(ConsultBIConstants.PART_ID_YDL_USER_MAIN_PAGE,"ydl_user_map_inputword_click",listData[0].related_word,listData[0].search_content,"app")
}else{
ActionCountUtils.baiDuCountSign3(ConsultBIConstants.PART_ID_YDL_USER_MAIN_PAGE,"ydl_user_correction_inputword_click",listData[0].related_word,listData[0].search_content,"app")
}
}else if (clickCount==2){ // 第二次点击搜索标签隐藏搜索匹配结果提示
// 埋点
if (mIsRecommendWords){
ActionCountUtils.baiDuCountSign3(ConsultBIConstants.PART_ID_YDL_USER_MAIN_PAGE,"ydl_user_map_recommendword_click",listData[0].search_content,listData[0].related_word,"app")
}else{
ActionCountUtils.baiDuCountSign3(ConsultBIConstants.PART_ID_YDL_USER_MAIN_PAGE,"ydl_user_correction_recommendword_click",listData[0].search_content,listData[0].related_word,"app")
}
listData.removeAt(0)
clickCount = 0 // 点击两次后重置为0
}
} }
} }
/**底部布局*/
private fun bindFooterView(holder: FooterViewHolder) {
if (hasMore) {
holder.itemView.visibility = View.VISIBLE
holder.pbLoading.visibility = View.VISIBLE
holder.tvHint.text = context.getString(R.string.consultant_loading)
} else {
holder.pbLoading.visibility = View.GONE
holder.tvHint.text = context.getString(R.string.platform_no_more)
} }
} }
} else if (holder is NormalViewHolder) {
/**item布局*/
private fun bindNormalView(position: Int, holder: NormalViewHolder) {
val itemBean = listData[position] val itemBean = listData[position]
//头像 //头像
val headConfig = SimpleImageOpConfiger() val headConfig = SimpleImageOpConfiger()
...@@ -144,160 +123,70 @@ class ExpertSearchAdapter( ...@@ -144,160 +123,70 @@ class ExpertSearchAdapter(
holder.imgHead.height, holder.imgHead.height,
headConfig headConfig
) )
//姓名
holder.tvName.text = itemBean.doctor_name
//服务中 //咨询显示状态:1.忙碌;2.现在有空;3.今日可约;4.最近可约;5.已约满;6.休息中
if (itemBean.open_chat_agency == 2 && itemBean.service_status == 2) { when (itemBean.consult_display_status) {
holder.imgHead_online_server.visibility = View.VISIBLE 6 -> {
holder.chat_people_in_question.visibility = View.GONE holder.consult_display_status_str.setBackgroundColor(
holder.imgHead_online.visibility = View.GONE ContextCompat.getColor(
} else { context,
//不是服务中且问询人数大于0 R.color.color_b6bece_90
when { )
itemBean.chat_num > 5 -> { )
holder.chat_people_in_question.visibility = View.VISIBLE
holder.chat_people_in_question.text = "多人在问询"
} }
itemBean.chat_num > 0 -> { 5, 1 -> {
holder.chat_people_in_question.visibility = View.VISIBLE holder.consult_display_status_str.setBackgroundColor(
holder.chat_people_in_question.text = "${itemBean.chat_num}人在问询" ContextCompat.getColor(
context,
R.color.color_f5a082_90
)
)
} }
else -> { else -> {
holder.chat_people_in_question.visibility = View.GONE holder.consult_display_status_str.setBackgroundColor(
ContextCompat.getColor(
context,
R.color.color_6ec8f9_90
)
)
} }
} }
//可预约 //专家头像下方文案:如 忙碌;现在有空;今日可约;最近可约;已约满;休息中
holder.imgHead_online_server.visibility = View.GONE holder.consult_display_status_str.text = itemBean.consult_display_status_str
if (itemBean.is_free_today== 1) {
holder.imgHead_online.visibility = View.VISIBLE //姓名
holder.tvName.text = itemBean.doctor_name
//年审
if (!TextUtils.isEmpty(itemBean.audit_tag)) {
holder.audit_tag.visibility = View.VISIBLE
holder.audit_tag.text = itemBean.audit_tag
} else { } else {
holder.imgHead_online.visibility = View.GONE holder.audit_tag.visibility = View.GONE
}
} }
//省市 //省市
if (!TextUtils.isEmpty(itemBean.display_region)) { if (!TextUtils.isEmpty(itemBean.display_region)) {
holder.tvCity.text = itemBean.display_region holder.tvCity.text = itemBean.display_region
holder.tvCity.visibility = View.VISIBLE
} else { } else {
holder.tvCity.text = "" holder.tvCity.visibility = View.GONE
}
//公益图标,不与其他图标冲突
if (1 == itemBean.has_servicefree_experience) {
if (null != itemBean.icons && !TextUtils.isEmpty(itemBean.icons.service_free_icon)) {
expertSearchView.showImage(
itemBean.icons.service_free_icon,
holder.imgServiceFree
)
} else {
val sp = SimpleImageOpConfiger()
sp.loadingPic = R.drawable.consultant_service_free
sp.errorPic = R.drawable.consultant_service_free
expertSearchView.showImage("", holder.imgServiceFree, sp)
}
holder.imgServiceFree.visibility = View.VISIBLE
} else {
holder.imgServiceFree.visibility = View.GONE
}
// 展示了抗疫,就不展示其他标签
if (itemBean.fightEpidemicIconShow) {
itemBean.icons?.fight_epidemic_icon?.let {
GlideApp.with(context).load(itemBean.icons?.fight_epidemic_icon)
.into(holder.imgFightEpidemicIcon)
holder.imgFightEpidemicIcon.visibility = View.VISIBLE
} }
//咨询师tag
holder.tvTeamCertifications.text = itemBean.title
if (itemBean.joinActivity == true) { //服务时长 经验
//活动图标 val durationStringBuffer = StringBuffer()
if (!TextUtils.isEmpty(itemBean.activityImg)) { holder.tvSaleDurationForMonth.text =
holder.imgActivity.visibility = View.VISIBLE durationStringBuffer.append(itemBean.sum_service_time.toInt()).append("小时").toString()
GlideApp.with(context).load(itemBean.activityImg).into(holder.imgActivity)
} else {
holder.imgActivity.visibility = View.GONE
}
} else {
holder.imgActivity.visibility = View.GONE
}
//影藏其余所有标签(除公益) //口碑
holder.imgAbilityLevel.visibility = View.GONE
holder.imgNewEnter.visibility = View.GONE
} else {
holder.imgFightEpidemicIcon.visibility = View.GONE
//能力等级标签
when (itemBean.abilityLevel) {
1 -> {
//实习
holder.imgAbilityLevel.background =
context.resources.getDrawable(R.drawable.consultant_expert_search_shixi)
holder.imgAbilityLevel.visibility = View.VISIBLE
}
2 -> {
//新手
holder.imgAbilityLevel.background =
context.resources.getDrawable(R.drawable.consultant_expert_search_xinshou)
holder.imgAbilityLevel.visibility = View.VISIBLE
}
else -> {
holder.imgAbilityLevel.visibility = View.GONE
}
}
//活动图标
if (!TextUtils.isEmpty(itemBean.activityImg)) {
holder.imgActivity.visibility = View.VISIBLE
GlideApp.with(context).load(itemBean.activityImg).into(holder.imgActivity)
} else {
holder.imgActivity.visibility = View.GONE
}
//新驻图标
if (itemBean.is_new_enter != null && itemBean.is_new_enter!!) {
if (null != itemBean.icons && !TextUtils.isEmpty(itemBean.icons.new_enter_icon)) {
expertSearchView.showImage(
itemBean.icons.new_enter_icon,
holder.imgNewEnter
)
} else {
val sp = SimpleImageOpConfiger()
sp.loadingPic = R.drawable.consultant_new_enter
sp.errorPic = R.drawable.consultant_new_enter
expertSearchView.showImage("", holder.imgNewEnter, sp)
}
holder.imgNewEnter.visibility = View.VISIBLE
} else {
holder.imgNewEnter.visibility = View.GONE
}
}
holder.ll_feedbackRate.removeAllViews()
for (num in 1..5) {
val view = LayoutInflater.from(context).inflate(
R.layout.consultant_expert_search_feedbackrate,
holder.ll_feedbackRate,
false
)
if (itemBean.evaluation_average_score >= num) {
(view.imgRate as ImageView).background =
context.resources.getDrawable(R.drawable.consultant_expert_search_full_star)
} else if (itemBean.evaluation_average_score < num && itemBean.evaluation_average_score > num - 1) {
(view.imgRate as ImageView).background =
context.resources.getDrawable(R.drawable.consultant_expert_search_half_star)
} else {
(view.imgRate as ImageView).background =
context.resources.getDrawable(R.drawable.consultant_expert_search_nothing_star)
}
holder.ll_feedbackRate.addView(view)
}
//XXX人点评
val numSb = StringBuffer() val numSb = StringBuffer()
holder.tv_zixunOrderNum.text = holder.tv_zixunOrderNum.text =
numSb.append(itemBean.evaluate_num).append("").toString() numSb.append(itemBean.evaluate_num).append("条").toString()
//咨询师简介
holder.tvTeamCertifications.text = itemBean.title
//咨询师标签 //咨询师标签
holder.ll_tags.removeAllViews() holder.ll_tags.removeAllViews()
itemBean.feature_tags?.let { if (itemBean.feature_tags?.isNotEmpty() == true) {
if (it.isNotEmpty()) { holder.ll_tags.visibility = View.VISIBLE
for (tag in itemBean.feature_tags) { for (tag in itemBean.feature_tags) {
val view = LayoutInflater.from(context) val view = LayoutInflater.from(context)
.inflate(R.layout.consultant_item_tag, holder.ll_tags, false) .inflate(R.layout.consultant_item_tag, holder.ll_tags, false)
...@@ -321,102 +210,167 @@ class ExpertSearchAdapter( ...@@ -321,102 +210,167 @@ class ExpertSearchAdapter(
view.tvTag.setTextColor( view.tvTag.setTextColor(
ContextCompat.getColor( ContextCompat.getColor(
context, context,
R.color.platform_color_666666 R.color.color_1c1f28_50
) )
) )
} }
holder.ll_tags.addView(view) holder.ll_tags.addView(view)
} }
} else {
holder.ll_tags.visibility = View.GONE
} }
}
//帮助人数 //价格
val orderUser = StringBuffer() val price = BigDecimal(itemBean.min_price)
holder.tvOrderNum.text = orderUser.append(itemBean.help_num).append("").toString() // 去掉末尾无用的.00
//私聊文案 val priceStr = "¥" + price.stripTrailingZeros().toPlainString()
if (TextUtils.isEmpty(itemBean.chat_btn_text)) { holder.tvPrice.text = priceStr
holder.tvChat.text = "私聊"
holder.tvChat.setTextColor( //服务方式
holder.attr_combine.text = itemBean.attr_combine
if (1 == itemBean.open_chat_agency) {
//联系顾问
holder.tvChat.text = "联系顾问"
holder.card_chat.setCardBackgroundColor(
ContextCompat.getColor( ContextCompat.getColor(
context, context,
R.color.platform_but_text_color R.color.color_6ec8f9
) )
) )
holder.tvChat.setTextColor( } else {
//私聊状态:1.上线;2.离线;3.忙碌中
when (itemBean.chat_status) {
2, 3 -> {
holder.tvChat.text = "留 言"
holder.card_chat.setCardBackgroundColor(
ContextCompat.getColor( ContextCompat.getColor(
context, context,
R.color.platform_but_text_color R.color.color_b6bece
) )
) )
holder.tvChat.background = }
ContextCompat.getDrawable(context, R.drawable.consultant_expert_search_chat) else -> {
} else { holder.tvChat.text = "私 聊"
holder.tvChat.text = itemBean.chat_btn_text holder.card_chat.setCardBackgroundColor(
holder.tvChat.setTextColor(
ContextCompat.getColor( ContextCompat.getColor(
context, context,
R.color.platform_color_999999 R.color.color_6ec8f9
) )
) )
holder.tvChat.background = ContextCompat.getDrawable(
context,
R.drawable.consultant_expert_search_chat_rest
)
} }
//服务时长
val durationStringBuffer = StringBuffer() }
holder.tvSaleDurationForMonth.text =
durationStringBuffer.append(itemBean.sum_service_time.toInt()).append("").toString()
//价格
val price = BigDecimal(itemBean.min_price)
// 去掉末尾无用的.00
holder.tvPrice.text = price.stripTrailingZeros().toPlainString()
//套餐
holder.ll_products.removeAllViews()
if (null != itemBean.doctor_products && itemBean.doctor_products.isNotEmpty()) {
for (item in itemBean.doctor_products) {
val view = LayoutInflater.from(context).inflate(
R.layout.consultant_expert_search_products_item,
holder.ll_tags,
false
)
when (item.product_type) {
"1" -> {
view.tvTitle.text = "单次"
view.tvTitle.setTextColor(context.resources.getColor(R.color.platform_color_1DA1F2))
view.tvTitle.background =
context.resources.getDrawable(R.drawable.consultant_expert_search_single)
view.tvContent.text = item.product_name
holder.ll_products.addView(view)
}
"2" -> {
view.tvTitle.text = "套餐"
view.tvTitle.setTextColor(context.resources.getColor(R.color.consultant_color_FF9500))
view.tvTitle.background =
context.resources.getDrawable(R.drawable.consultant_expert_search_menu)
view.tvContent.text = item.product_name
holder.ll_products.addView(view)
} }
else -> {
//问询 可约
var bottomDec = if (itemBean.chat_num > 0) {
if (!TextUtils.isEmpty(itemBean.today_time_des)) {
"${itemBean.chat_num}人在问询·${itemBean.today_time_des}"
} else {
"${itemBean.chat_num}人在问询"
}
} else {
if (!TextUtils.isEmpty(itemBean.today_time_des)) {
itemBean.today_time_des
} else {
""
} }
} }
if (TextUtils.isEmpty(bottomDec)) {
holder.chat_people_in_question.visibility = View.GONE
} else {
holder.chat_people_in_question.visibility = View.VISIBLE
holder.chat_people_in_question.text = bottomDec
} }
} }
} else if (holder is FooterViewHolder) {
if (hasMore) { /**顶部根据匹配,为您推荐布局*/
holder.itemView.visibility = View.VISIBLE private fun bindHeaderView(holder: HeaderViewHolder) {
holder.pbLoading.visibility = View.VISIBLE if (listData.size > 0) {
holder.tvHint.text = context.getString(R.string.consultant_loading) if (listData[0].is_head_view) {
if (clickCount == 0) {
holder.clSearchWords.visibility = View.VISIBLE
var text = "根据匹配,为您推荐“${listData[0].related_word}”的搜索结果"
holder.tvSearchRelatedWord.text = setTextBold(text, listData[0].related_word)
holder.tvSearchWord.text = listData[0].search_content
// 埋点
if (mIsRecommendWords) {
ActionCountUtils.baiDuCountSign3(
ConsultBIConstants.PART_ID_YDL_USER_MAIN_PAGE,
"ydl_user_map_word_visit",
listData[0].search_content,
listData[0].related_word,
"app"
)
} else { } else {
holder.pbLoading.visibility = View.GONE ActionCountUtils.baiDuCountSign3(
holder.tvHint.text = context.getString(R.string.platform_no_more) ConsultBIConstants.PART_ID_YDL_USER_MAIN_PAGE,
"ydl_user_correction_word_visit",
listData[0].search_content,
listData[0].related_word,
"app"
)
}
holder.tvSearchWord.setOnClickListener {
mOnClickLister.onClick(holder.tvSearchWord.text.toString())
++clickCount
if (clickCount == 1) {
text = "以下是“${listData[0].search_content}”的搜索结果"
holder.tvSearchRelatedWord.text =
setTextBold(text, listData[0].search_content)
holder.tvSearchTips.text = "你要找的是不是"
holder.tvSearchWord.text = listData[0].related_word
// 埋点
if (mIsRecommendWords) {
ActionCountUtils.baiDuCountSign3(
ConsultBIConstants.PART_ID_YDL_USER_MAIN_PAGE,
"ydl_user_map_inputword_click",
listData[0].related_word,
listData[0].search_content,
"app"
)
} else {
ActionCountUtils.baiDuCountSign3(
ConsultBIConstants.PART_ID_YDL_USER_MAIN_PAGE,
"ydl_user_correction_inputword_click",
listData[0].related_word,
listData[0].search_content,
"app"
)
}
} else if (clickCount == 2) { // 第二次点击搜索标签隐藏搜索匹配结果提示
// 埋点
if (mIsRecommendWords) {
ActionCountUtils.baiDuCountSign3(
ConsultBIConstants.PART_ID_YDL_USER_MAIN_PAGE,
"ydl_user_map_recommendword_click",
listData[0].search_content,
listData[0].related_word,
"app"
)
} else {
ActionCountUtils.baiDuCountSign3(
ConsultBIConstants.PART_ID_YDL_USER_MAIN_PAGE,
"ydl_user_correction_recommendword_click",
listData[0].search_content,
listData[0].related_word,
"app"
)
}
listData.removeAt(0)
clickCount = 0 // 点击两次后重置为0
}
}
}
} }
} }
} }
override fun getItemCount(): Int = override fun getItemCount(): Int =
// if (listData.size < ExpertSearchActivity.PAGE_SIZE && hasMore) { if (listData.size == 1) {
if (listData.size==1) {
listData.size listData.size
} else { } else {
listData.size + 1 listData.size + 1
...@@ -425,7 +379,8 @@ class ExpertSearchAdapter( ...@@ -425,7 +379,8 @@ class ExpertSearchAdapter(
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): RecyclerView.ViewHolder = override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): RecyclerView.ViewHolder =
when (viewType) { when (viewType) {
HEADER_VIEW -> { HEADER_VIEW -> {
val view = LayoutInflater.from(context).inflate(R.layout.consultant_expert_search_header_view, parent, false) val view = LayoutInflater.from(context)
.inflate(R.layout.consultant_expert_search_header_view, parent, false)
HeaderViewHolder(view) HeaderViewHolder(view)
} }
NORMAL_VIEW -> { NORMAL_VIEW -> {
...@@ -447,7 +402,7 @@ class ExpertSearchAdapter( ...@@ -447,7 +402,7 @@ class ExpertSearchAdapter(
override fun getItemViewType(position: Int): Int = override fun getItemViewType(position: Int): Int =
when { when {
position==0&&listData.size>0&&listData[0].is_head_view ->{ position == 0 && listData.size > 0 && listData[0].is_head_view -> {
HEADER_VIEW HEADER_VIEW
} }
position < listData.size -> { position < listData.size -> {
...@@ -462,28 +417,18 @@ class ExpertSearchAdapter( ...@@ -462,28 +417,18 @@ class ExpertSearchAdapter(
inner class NormalViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) { inner class NormalViewHolder(itemView: View) : RecyclerView.ViewHolder(itemView) {
//头像 //头像
val imgHead = itemView.imgHead!! val imgHead = itemView.imgHead!!
val cv_head_view = itemView.cv_head_view!!
//专家姓名 //专家姓名
val tvName = itemView.tvName!! val tvName = itemView.tvName!!
//活动图标 //年审
val imgActivity = itemView.img_activity!! val audit_tag = itemView.audit_tag!!
//优质图标
val imgAbilityLevel = itemView.imgAbilityLevel!!
//公益图标
val imgServiceFree = itemView.imgServiceFree!!
//新驻图标 //头像下方文案
val imgNewEnter = itemView.imgNewEnter!! val consult_display_status_str = itemView.consult_display_status_str!!
//荣誉标签 //服务方式
val ll_honor_layout = itemView.ll_honor_layout!! val attr_combine = itemView.attr_combine
//好评率
val ll_feedbackRate = itemView.ll_feedbackRate!!
//xxx人点评 //xxx人点评
val tv_zixunOrderNum = itemView.tv_zixunOrderNum!! val tv_zixunOrderNum = itemView.tv_zixunOrderNum!!
...@@ -494,49 +439,24 @@ class ExpertSearchAdapter( ...@@ -494,49 +439,24 @@ class ExpertSearchAdapter(
//咨询师标签 //咨询师标签
val ll_tags = itemView.ll_tags!! val ll_tags = itemView.ll_tags!!
//帮助人数
val tvOrderNum = itemView.tvOrderNum!!
//帮助人数文案
val tvOrderNumContent = itemView.tvOrderNumContent
//服务时长 //服务时长
val tvSaleDurationForMonth = itemView.tvSaleDurationForMonth!! val tvSaleDurationForMonth = itemView.tvSaleDurationForMonth!!
//月售时长文案
val tvSaleDurationForMonthContent = itemView.tvSaleDurationForMonthContent
//价格 //价格
val tvPrice = itemView.tvPrice!! val tvPrice = itemView.tvPrice!!
val tvPriceContent = itemView.tvPriceContent!!
val tv_money_symbol = itemView.tv_money_symbol!!
//服务套餐
val ll_products = itemView.ll_products!!
//私聊按钮 //私聊按钮
val tvChat = itemView.tvChat!! val tvChat = itemView.tvChat!!
//个人铭言整个布局 //私聊背景
val group_desc = itemView.group_desc!! val card_chat = itemView.card_chat!!
//个人铭言
val tvDesc = itemView.tvDesc!!
//省市 //省市
val tvCity = itemView.tvCity!! val tvCity = itemView.tvCity!!
//今日是否可约
val imgHead_online = itemView.imgHead_online!!
//服务中(咨询中或者聆听中)
val imgHead_online_server = itemView.imgHead_online_server!!
//多少人在问询 //多少人在问询
val chat_people_in_question = itemView.people_in_question!! val chat_people_in_question = itemView.people_in_question!!
// 抗疫先锋图标
val imgFightEpidemicIcon = itemView.img_fightEpidemicIcon
init { init {
itemView.setOnClickListener { itemView.setOnClickListener {
...@@ -562,7 +482,7 @@ class ExpertSearchAdapter( ...@@ -562,7 +482,7 @@ class ExpertSearchAdapter(
} }
} }
itemView.tvChat.setOnClickListener { itemView.card_chat.setOnClickListener {
if (adapterPosition != RecyclerView.NO_POSITION) { if (adapterPosition != RecyclerView.NO_POSITION) {
val doctor = listData[adapterPosition] val doctor = listData[adapterPosition]
if (pageIndex == 0) { if (pageIndex == 0) {
......
package com.yidianling.consultant.model.bean package com.yidianling.consultant.model.bean
import com.yidianling.consultant.bean.ExpertSearchProductsBean
import com.yidianling.consultant.bean.ExpertSearchTagsIconBean
/** /**
* @author yuanWai * @author yuanWai
* @描述: * @描述:
...@@ -23,153 +20,97 @@ data class ExpertServiceItem( ...@@ -23,153 +20,97 @@ data class ExpertServiceItem(
* 专家名称 * 专家名称
*/ */
val doctor_name: String?, val doctor_name: String?,
/**
* 跳转路由地址(正常为专家主页地址) /*** 跳转路由地址(正常为专家主页地址)*/
*/
val link_url: String?, val link_url: String?,
/**
* 专家头像地址 /*** 专家头像地址*/
*/
val head: String?, val head: String?,
/**
* 专家是否在线 1.在线 /*** 私聊状态:1.上线;2.离线;3.忙碌中*/
*/
val chat_status: Int?, val chat_status: Int?,
/**
* 能力等级 1.实习 2.新手 3.精英
*/ /*** 评价数(咨询订单数)*/
val abilityLevel: Int?,
/**
* 有免费咨询:1.有,2.无
*/
val has_servicefree_consult: Int?,
/**
* 活动图标
*/
val activityImg: String?,
/**
* 是否参加活动
*/
val joinActivity: Boolean?,
/**
* 是否新入驻:true:是,false:否
*/
var is_new_enter: Boolean?,
/**
* 好评率(倾诉+咨询)
*/
var evaluation_average_score: Float = 0f,
/**
* 是否抗疫先锋图标
*/
var fightEpidemicIconShow: Boolean = false,
/**
* 评价数(咨询订单数)
*/
var evaluate_num: Int = 0, var evaluate_num: Int = 0,
/**
* 咨询最低价 /*** 咨询最低价*/
*/
val min_price: String?, val min_price: String?,
/**
* 资质材料 /*** 资质材料*/
*/
val title: String?, val title: String?,
/**
* 已帮助人数(咨询人数) /*** 服务时长*/
*/
val help_num: String?,
/**
* 月售时长
*/
var p30d_sold_hour: Float = 0f,
/**
* 服务时长
*/
var sum_service_time: Float = 0f, var sum_service_time: Float = 0f,
/**
* 服务
*/
val doctor_products: MutableList<ExpertSearchProductsBean>?,
/**
* 标签图片
*/
val icons: ExpertSearchTagsIconBean?,
// /**
// * 今日是否可约
// */
// val booking_status: Int,
// /**
// * 咨询状态 1-待服务 2-服务中
// */
// var consult_status: Int,
// /**
// * 倾诉状态 1-待服务 2-服务中
// */
// var listen_status: Int,
var open_chat_agency: Int,
/***服务状态:1.空闲,2.忙碌*/
var service_status: Int, var service_status: Int,
var is_free_today: Int, /*** 私聊人数*/
/**
* 私聊人数
*/
var chat_num: Int = 0, var chat_num: Int = 0,
/**
* 个人铭言 /*** 私聊按钮的文案(如果不为空则取这个字段的值,如果为空 则默认为:“私聊”)*/
*/
val famous_remark: String?,
/**
* 省
*/
val province: String?,
/**
* 市
*/
val city: String?,
/**
* 私聊按钮的文案(如果不为空则取这个字段的值,如果为空 则默认为:“私聊”)
*/
val chat_btn_text: String?, val chat_btn_text: String?,
/** /*** 新标签分类*/
* 新标签分类
*/
val feature_tags: ArrayList<FeatureTag>?, val feature_tags: ArrayList<FeatureTag>?,
/** /*** 是否是头部headView*/
* 是否是头部headView
*/
val is_head_view: Boolean = false, val is_head_view: Boolean = false,
/**
* 搜索词 /*** 搜索词*/
*/
val search_content: String, val search_content: String,
/**
* 联想词 /*** 联想词*/
*/
val related_word: String, val related_word: String,
/**
* 地区 /*** 地区*/
*/
val display_region: String, val display_region: String,
/** /***咨询显示状态:1.忙碌;2.现在有空;3.今日可约;4.最近可约;5.已约满;6.休息中*/
* 是否展示公益图标 val consult_display_status: Int,
*/
val has_servicefree_experience: Int? /***专家头像下方文案:如 忙碌;现在有空;今日可约;最近可约;已约满;休息中*/
val consult_display_status_str: String,
/***私聊下方时间描述:如 最快可约今天19:00*/
val today_time_des: String,
/***服务方式:如 当面/视频*/
val attr_combine: String = "",
/***0:关闭代聊,1:开启代聊*/
val open_chat_agency: Int,
/***年审*/
val audit_tag: String,
) { ) {
constructor(is_head_view: Boolean, search_content: String, related_word: String) : this( constructor(is_head_view: Boolean, search_content: String, related_word: String) : this(
"", "", "", "", "", id = "",
1, 1, 1, "", false, true, uid = "",
1f, false, 0, "", "", "", 1f, 1f, doctor_name = "",
null, null, 1, 1, 1, 1, link_url = "",
"", "", "", "", null, is_head_view, search_content, related_word, "", 1 head = "",
chat_status = 1,
evaluate_num = 0,
min_price = "",
title = "",
sum_service_time = 0f,
service_status = 1,
chat_num = 0,
chat_btn_text = null,
feature_tags = null,
is_head_view = is_head_view,
search_content = search_content,
related_word = related_word,
display_region = "",
consult_display_status = 2,
consult_display_status_str = "",
today_time_des = "",
attr_combine = "",
open_chat_agency = 0,
audit_tag = ""
) )
} }
......
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"> <shape xmlns:android="http://schemas.android.com/apk/res/android">
<corners android:radius="1dp"/> <corners android:radius="4dp" />
<solid android:color="@color/color_1AEB892C" /> <solid android:color="@color/color_1AEB892C" />
<stroke android:width="0.5dp" android:color="@color/color_EB892C"/> <stroke android:width="0.5dp" android:color="@color/color_EB892C"/>
......
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"> <shape xmlns:android="http://schemas.android.com/apk/res/android">
<corners android:radius="1dp"/> <corners android:radius="4dp" />
<solid android:color="@color/platform_white" /> <solid android:color="@color/platform_white" />
<stroke android:width="0.5dp" android:color="@color/platform_color_E0E0E0"/> <stroke
android:width="0.5dp"
android:color="@color/color_1c1f28_20" />
</shape> </shape>
\ No newline at end of file
...@@ -4,9 +4,9 @@ ...@@ -4,9 +4,9 @@
<shape android:shape="rectangle"> <shape android:shape="rectangle">
<solid android:color="@color/platform_main_theme_bright" /> <solid android:color="@color/platform_main_theme_bright" />
<corners android:radius="11dp"/> <corners android:radius="11dp"/>
<stroke <!--<stroke
android:width="0.5dp" android:width="0.5dp"
android:color="@color/platform_main_theme"/> android:color="@color/platform_main_theme"/>-->
</shape> </shape>
</item> </item>
<item android:state_enabled="true"> <item android:state_enabled="true">
......
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<solid android:color="@color/color_f6f6f7" />
<corners android:radius="2dp" />
<padding
android:bottom="2dp"
android:left="4dp"
android:right="4dp"
android:top="1.5dp" />
</shape>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" <androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools" xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:paddingLeft="@dimen/platform_dp_13" android:paddingLeft="@dimen/platform_dp_16"
android:paddingRight="@dimen/platform_dp_15" android:paddingTop="@dimen/platform_dp_19"
android:paddingBottom="@dimen/platform_dp_8"> android:paddingRight="@dimen/platform_dp_16">
<!--头像-->
<LinearLayout
android:id="@+id/cvHead"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/platform_dp_15"
android:background="@drawable/consultant_bg_radius_line_gray_05"
android:orientation="vertical">
<androidx.cardview.widget.CardView <androidx.cardview.widget.CardView
android:id="@+id/cv_head_view" android:id="@+id/cv_head_view"
android:layout_width="92dp" android:layout_width="64dp"
android:layout_height="114dp" android:layout_height="80dp"
app:cardCornerRadius="4dp" android:layout_marginTop="3dp"
app:cardElevation="0px"> app:cardCornerRadius="8dp"
app:cardElevation="0px"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintTop_toTopOf="parent">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<ImageView <ImageView
android:id="@+id/imgHead" android:id="@+id/imgHead"
...@@ -29,32 +30,22 @@ ...@@ -29,32 +30,22 @@
android:layout_height="match_parent" android:layout_height="match_parent"
android:scaleType="centerCrop" android:scaleType="centerCrop"
android:src="@drawable/consultant_avatar_def_circle" /> android:src="@drawable/consultant_avatar_def_circle" />
</androidx.cardview.widget.CardView>
</LinearLayout>
<ImageView
android:id="@+id/imgHead_online"
android:layout_width="62dp"
android:layout_height="14dp"
android:layout_alignBottom="@+id/cvHead"
android:layout_gravity="bottom"
android:scaleType="centerCrop"
android:visibility="gone"
app:srcCompat="@drawable/consultant_online_yue"
tools:visibility="visible" />
<ImageView <TextView
android:id="@+id/imgHead_online_server" android:id="@+id/consult_display_status_str"
android:layout_width="41dp" android:layout_width="match_parent"
android:layout_height="14dp" android:layout_height="wrap_content"
android:layout_alignBottom="@+id/cvHead" android:layout_alignParentBottom="true"
android:layout_gravity="bottom" android:background="#6EC8F9"
android:scaleType="centerCrop" android:gravity="center"
android:visibility="gone" android:paddingTop="1dp"
app:srcCompat="@drawable/consultant_online_server" android:paddingBottom="2dp"
tools:visibility="visible" /> android:textColor="@color/white"
android:textSize="9dp"
tools:text="现在有空" />
</RelativeLayout>
</androidx.cardview.widget.CardView>
<!--咨询师姓名--> <!--咨询师姓名-->
<TextView <TextView
...@@ -62,347 +53,211 @@ ...@@ -62,347 +53,211 @@
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginStart="@dimen/platform_dp_12" android:layout_marginStart="@dimen/platform_dp_12"
android:layout_marginLeft="@dimen/platform_dp_12"
android:layout_marginTop="@dimen/platform_dp_12"
android:layout_toEndOf="@+id/cvHead"
android:layout_toRightOf="@+id/cvHead"
android:gravity="center_vertical" android:gravity="center_vertical"
android:textColor="@color/platform_color_242424" android:textColor="@color/color_1C1F28"
android:textSize="@dimen/platform_dp_18" android:textSize="@dimen/platform_dp_16"
android:textStyle="bold" android:textStyle="bold"
tools:ignore="SpUsage" app:layout_constraintLeft_toRightOf="@id/cv_head_view"
app:layout_constraintTop_toTopOf="parent"
tools:text="罗静" /> tools:text="罗静" />
<LinearLayout <TextView
android:id="@+id/ll_honor_layout" android:id="@+id/audit_tag"
android:layout_width="match_parent" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_alignTop="@+id/tvName" android:layout_marginStart="4dp"
android:layout_alignBottom="@+id/tvName" android:background="@drawable/consultant_ns_bg"
android:layout_marginStart="@dimen/platform_dp_2" android:textColor="@color/color_62636F"
android:layout_toEndOf="@+id/tvName" android:textSize="10dp"
android:layout_toRightOf="@+id/tvName"
android:gravity="center_vertical"
android:orientation="horizontal"
android:paddingLeft="8dp">
<ImageView
android:id="@+id/img_fightEpidemicIcon"
android:layout_width="53dp"
android:layout_height="@dimen/platform_dp_17"
android:layout_marginRight="4dp"
android:scaleType="centerCrop"
android:visibility="gone" />
<!--活动图标-->
<ImageView
android:id="@+id/img_activity"
android:layout_width="42dp"
android:layout_height="12dp"
android:layout_marginRight="4dp"
android:visibility="gone" />
<!--公益图标-->
<ImageView
android:id="@+id/imgServiceFree"
android:layout_width="26dp"
android:layout_height="@dimen/platform_dp_12"
android:layout_marginRight="4dp"
android:scaleType="centerCrop"
tools:background="@drawable/consultant_service_free" />
<!--新驻图标-->
<ImageView
android:id="@+id/imgNewEnter"
android:layout_width="26dp"
android:layout_height="@dimen/platform_dp_12"
android:layout_marginRight="4dp"
android:scaleType="fitCenter"
tools:background="@drawable/consultant_new_enter" />
<!--优质图标-->
<ImageView
android:id="@+id/imgAbilityLevel"
android:layout_width="26dp"
android:layout_height="@dimen/platform_dp_12"
android:layout_marginRight="4dp"
android:scaleType="fitCenter"
android:visibility="gone" android:visibility="gone"
tools:background="@drawable/consultant_expert_search_shixi" /> app:layout_constraintBottom_toBottomOf="@id/tvName"
</LinearLayout> app:layout_constraintLeft_toRightOf="@id/tvName"
app:layout_constraintTop_toTopOf="@id/tvName"
tools:text="2022年审"
tools:visibility="visible" />
<TextView
android:id="@+id/tvCity"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:drawableLeft="@drawable/consult_location_icon"
android:drawablePadding="2dp"
android:gravity="right"
android:textColor="@color/color_1c1f28_40"
android:textSize="@dimen/platform_dp_11"
app:layout_constraintBottom_toBottomOf="@id/tvName"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="@id/tvName"
tools:text="浙江.杭州" />
<!--咨询师简介--> <!--咨询师简介-->
<TextView <TextView
android:id="@+id/tvTeamCertifications" android:id="@+id/tvTeamCertifications"
android:layout_width="wrap_content" android:layout_width="0dp"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_below="@+id/tvName"
android:layout_marginLeft="@dimen/platform_dp_12"
android:layout_marginTop="@dimen/platform_dp_4" android:layout_marginTop="@dimen/platform_dp_4"
android:layout_toEndOf="@+id/cvHead"
android:layout_toRightOf="@+id/cvHead"
android:ellipsize="end" android:ellipsize="end"
android:layout_toStartOf="@+id/tvCity"
android:lines="1" android:lines="1"
android:textColor="@color/platform_color_242424" android:textColor="@color/color_1c1f28_60"
android:textSize="@dimen/platform_dp_12" android:textSize="@dimen/platform_dp_13"
tools:text="一级婚姻家庭咨询师,二级心理咨询师二级心理咨询师二级心理咨询师" /> app:layout_constraintHorizontal_weight="1"
<!--咨询师标签--> app:layout_constraintLeft_toLeftOf="@id/tvName"
<LinearLayout app:layout_constraintRight_toRightOf="parent"
android:id="@+id/ll_tags" app:layout_constraintTop_toBottomOf="@id/tvName"
android:layout_width="wrap_content" tools:text="一级婚姻家庭咨询师 | 二级心理咨询师二级心理咨询师二级心理咨询师" />
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/tvName"
android:layout_alignTop="@+id/tvChat"
android:layout_alignBottom="@+id/tvChat"
android:layout_toLeftOf="@+id/tvChat"
android:gravity="center_vertical"
android:orientation="horizontal">
</LinearLayout>
<LinearLayout
android:id="@+id/ll_zixunOrderNum"
android:layout_width="match_parent"
android:layout_height="@dimen/platform_dp_16"
android:layout_below="@+id/tvTeamCertifications"
android:layout_marginStart="@dimen/platform_dp_12"
android:layout_marginLeft="@dimen/platform_dp_12"
android:layout_marginTop="@dimen/platform_dp_5"
android:layout_toEndOf="@+id/cvHead"
android:layout_toRightOf="@+id/cvHead"
android:orientation="horizontal">
<!--好评率-->
<LinearLayout
android:id="@+id/ll_feedbackRate"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:orientation="horizontal" />
<!--61234人点评-->
<TextView
android:id="@+id/tv_zixunOrderNum"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_marginLeft="@dimen/platform_dp_12"
android:textColor="@color/platform_color_242424"
android:textSize="@dimen/platform_dp_12"
android:textStyle="bold"
tools:text="61234" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:text="条评价"
android:textColor="@color/platform_color_999999"
android:textSize="@dimen/platform_dp_12" />
</LinearLayout>
<!--帮助人数--> <!--服务时长-->
<TextView
android:id="@+id/tvOrderNumContent"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/ll_zixunOrderNum"
android:layout_marginStart="@dimen/platform_dp_12"
android:layout_marginLeft="@dimen/platform_dp_12"
android:layout_marginTop="5dp"
android:layout_toRightOf="@+id/cvHead"
android:text="帮助"
android:textColor="@color/platform_color_999999"
android:textSize="@dimen/platform_dp_12"
tools:ignore="SpUsage" />
<TextView <TextView
android:id="@+id/tvOrderNum" android:id="@+id/tvSaleDurationForMonth"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_alignTop="@+id/tvOrderNumContent"
android:layout_marginLeft="1dp" android:layout_marginLeft="1dp"
android:layout_marginTop="4dp"
android:layout_marginRight="1dp" android:layout_marginRight="1dp"
android:layout_toRightOf="@+id/tvOrderNumContent" android:gravity="center"
android:textColor="@color/platform_color_242424" android:textColor="@color/color_1C1F28"
android:textSize="@dimen/platform_dp_12" android:textSize="@dimen/platform_dp_13"
android:textStyle="bold" app:layout_constraintLeft_toLeftOf="@id/tvName"
tools:ignore="SpUsage" app:layout_constraintTop_toBottomOf="@id/tvTeamCertifications"
tools:text="2648" /> tools:text="134小时" />
<TextView <TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignTop="@+id/tvOrderNumContent"
android:layout_toRightOf="@+id/tvOrderNum"
android:text="人"
android:textColor="@color/platform_color_999999"
android:textSize="@dimen/platform_dp_12"
tools:ignore="SpUsage" />
<!--服务时长-->
<TextView
android:id="@+id/tvSaleDurationForMonthContent" android:id="@+id/tvSaleDurationForMonthContent"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_alignTop="@+id/tvOrderNumContent" android:text="经验"
android:layout_marginLeft="@dimen/platform_dp_20" android:textColor="@color/color_1c1f28_60"
android:layout_toRightOf="@+id/tvOrderNum" android:textSize="@dimen/platform_dp_13"
android:text="服务" app:layout_constraintBaseline_toBaselineOf="@id/tvSaleDurationForMonth"
android:textColor="@color/platform_color_999999" app:layout_constraintLeft_toRightOf="@id/tvSaleDurationForMonth" />
android:textSize="@dimen/platform_dp_12"
tools:ignore="SpUsage" />
<TextView
android:id="@+id/tvSaleDurationForMonth"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignTop="@+id/tvOrderNumContent"
android:layout_marginLeft="1dp"
android:layout_marginRight="1dp"
android:layout_toRightOf="@+id/tvSaleDurationForMonthContent"
android:gravity="center"
android:textColor="@color/platform_color_242424"
android:textSize="@dimen/platform_dp_12"
android:textStyle="bold"
tools:ignore="SpUsage"
tools:text="134" />
<TextView <TextView
android:id="@+id/tv_zixunOrderNum"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_alignTop="@+id/tvOrderNumContent" android:layout_gravity="center_vertical"
android:layout_toRightOf="@+id/tvSaleDurationForMonth" android:layout_marginStart="@dimen/platform_dp_13"
android:text="小时" android:textColor="@color/color_1C1F28"
android:textColor="@color/platform_color_999999"
android:textSize="@dimen/platform_dp_12" android:textSize="@dimen/platform_dp_12"
tools:ignore="SpUsage" /> app:layout_constraintBaseline_toBaselineOf="@id/tvSaleDurationForMonth"
app:layout_constraintLeft_toRightOf="@id/tvSaleDurationForMonthContent"
tools:text="61234条" />
<TextView <TextView
android:id="@+id/people_in_question"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_alignTop="@+id/tvOrderNumContent" android:layout_gravity="center_vertical"
android:layout_alignParentRight="true" android:text="口碑"
android:textColor="@color/platform_color_FF5040" android:textColor="@color/color_1c1f28_60"
android:textSize="@dimen/platform_dp_12" android:textSize="@dimen/platform_dp_13"
android:visibility="gone" app:layout_constraintBaseline_toBaselineOf="@id/tv_zixunOrderNum"
tools:ignore="SpUsage" app:layout_constraintLeft_toRightOf="@id/tv_zixunOrderNum" />
tools:text="多人在问询"
tools:visibility="visible" />
<TextView <!--咨询师标签-->
android:id="@+id/tv_money_symbol" <LinearLayout
android:id="@+id/ll_tags"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_alignTop="@+id/tvPrice" android:layout_marginTop="8dp"
android:layout_marginTop="3dp" android:gravity="center_vertical"
android:layout_marginRight="1dp" android:orientation="horizontal"
android:layout_toLeftOf="@+id/tvPrice" app:layout_constraintLeft_toLeftOf="@id/tvName"
android:text="¥" app:layout_constraintTop_toBottomOf="@id/tvSaleDurationForMonth"
android:textColor="#FF5040" tools:visibility="gone" />
android:textSize="@dimen/platform_dp_11"
android:textStyle="bold"
tools:ignore="SpUsage" />
<TextView <TextView
android:id="@+id/tvPrice" android:id="@+id/tvPrice"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_alignTop="@+id/tvName" android:layout_alignTop="@+id/tvName"
android:layout_toLeftOf="@+id/tvPriceContent" android:layout_marginTop="8dp"
android:fontFamily="@font/platform_din_bold" android:textColor="@color/color_ef8a4a"
android:textColor="#FF5040" android:textSize="@dimen/platform_dp_14"
android:textSize="@dimen/platform_dp_20" app:layout_constraintLeft_toLeftOf="@id/tvName"
tools:text="250" /> app:layout_constraintTop_toBottomOf="@id/ll_tags"
app:layout_goneMarginTop="10dp"
tools:text="¥250" />
<TextView <TextView
android:id="@+id/tvPriceContent" android:id="@+id/tvPrice_unit"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_alignBottom="@+id/tvPrice" android:layout_alignTop="@+id/tvName"
android:layout_alignParentRight="true" android:layout_marginTop="12dp"
android:layout_marginLeft="1dp"
android:layout_marginBottom="2.5dp"
android:text="起" android:text="起"
android:textColor="#FF5040" android:textColor="@color/color_ef8a4a"
android:textSize="@dimen/platform_dp_11" /> android:textSize="@dimen/platform_dp_12"
app:layout_constraintBaseline_toBaselineOf="@id/tvPrice"
app:layout_constraintLeft_toRightOf="@id/tvPrice" />
<TextView <TextView
android:id="@+id/tvCity" android:id="@+id/attr_combine"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_below="@+id/tvName" android:layout_marginStart="12dp"
android:layout_alignParentRight="true" android:textColor="@color/color_1c1f28_40"
android:layout_marginTop="@dimen/platform_dp_4" android:textSize="12dp"
android:gravity="right" app:layout_constraintBaseline_toBaselineOf="@id/tvPrice"
android:textColor="@color/platform_color_999999" app:layout_constraintLeft_toRightOf="@id/tvPrice_unit"
android:textSize="@dimen/platform_dp_12" tools:text="面/视咨询" />
tools:text="浙江.杭州" />
<!--<View-->
<!--android:id="@+id/vLine"-->
<!--android:layout_below="@+id/tvPrice"-->
<!--android:layout_width="match_parent"-->
<!--android:layout_height="2dp"-->
<!--android:layout_marginLeft="104dp"-->
<!--android:layout_marginStart="104dp"-->
<!--android:layout_marginTop="7dp"-->
<!--android:layerType="software"-->
<!--android:background="@drawable/expert_search_dash_line" />-->
<!--服务套餐-->
<LinearLayout
android:id="@+id/ll_products"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="104dp"
android:layout_marginLeft="104dp"
android:layout_marginTop="@dimen/platform_dp_5"
android:orientation="vertical"
android:visibility="gone">
</LinearLayout>
<!--私聊--> <!--私聊-->
<androidx.cardview.widget.CardView
android:id="@+id/card_chat"
android:layout_width="wrap_content"
android:layout_height="24dp"
android:elevation="0dp"
android:minWidth="56dp"
android:paddingLeft="6dp"
android:paddingTop="4dp"
android:paddingRight="6dp"
android:paddingBottom="4dp"
app:cardBackgroundColor="@color/color_6ec8f9"
app:cardCornerRadius="12dp"
app:cardElevation="0dp"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="@id/tvPrice">
<TextView <TextView
android:id="@+id/tvChat" android:id="@+id/tvChat"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="@dimen/platform_dp_24" android:layout_height="wrap_content"
android:layout_alignBottom="@+id/cvHead" android:layout_gravity="center"
android:layout_alignParentRight="true"
android:gravity="center" android:gravity="center"
android:textSize="@dimen/platform_dp_13" android:text="私 聊"
android:textStyle="bold" android:textColor="@color/white"
android:background="@drawable/consultant_expert_search_chat" android:textSize="@dimen/platform_dp_11"
android:textColor="@color/platform_but_text_color" app:layout_constraintBaseline_toBaselineOf="@id/tvPrice"
android:text="私聊"/> app:layout_constraintRight_toRightOf="parent" />
<!--描述--> </androidx.cardview.widget.CardView>
<RelativeLayout
android:id="@+id/group_desc"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/tvChat"
android:layout_marginLeft="@dimen/platform_dp_15"
android:layout_marginTop="@dimen/platform_dp_10"
android:layout_toRightOf="@+id/cvHead"
android:background="@drawable/consultant_bg_radius_gray_2"
android:visibility="gone">
<ImageView
android:layout_width="12dp"
android:layout_height="11dp"
android:layout_marginLeft="@dimen/platform_dp_8"
android:layout_marginTop="@dimen/platform_dp_6"
android:src="@drawable/consultant_bg_item_desc" />
<TextView <TextView
android:id="@+id/tvDesc" android:id="@+id/people_in_question"
android:layout_width="match_parent" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginLeft="12dp" android:layout_marginTop="4dp"
android:layout_marginTop="8dp" android:textColor="@color/color_1c1f28_40"
android:layout_marginRight="12dp" android:textSize="@dimen/platform_dp_10"
android:layout_marginBottom="8dp" android:visibility="gone"
android:ellipsize="end" app:layout_constraintRight_toRightOf="parent"
android:maxLines="2" app:layout_constraintTop_toBottomOf="@id/card_chat"
android:textColor="@color/platform_color_999999" tools:text="多人在问询"
android:textSize="@dimen/platform_dp_11" tools:visibility="visible" />
tools:text="的客人能够黄偶尔烦人呢日工俄日给你额鞥你让个汇入你哦个人会儿个黄胡蓉呢你个人给哦 而归黑人更换二给" />
</RelativeLayout> <View
android:layout_width="0dp"
android:layout_height="1px"
android:layout_marginTop="20dp"
android:background="@color/color_EFEFF1"
app:layout_constraintHorizontal_weight="1"
app:layout_constraintLeft_toLeftOf="@id/cv_head_view"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toBottomOf="@id/people_in_question" />
</RelativeLayout> </androidx.constraintlayout.widget.ConstraintLayout>
...@@ -4,10 +4,13 @@ ...@@ -4,10 +4,13 @@
android:id="@+id/tvTag" android:id="@+id/tvTag"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_marginEnd="8dp"
android:background="@drawable/consultant_bg_radius_line_gray_1" android:background="@drawable/consultant_bg_radius_line_gray_1"
android:gravity="center" android:gravity="center"
android:layout_marginEnd="6dp" android:paddingLeft="4dp"
android:padding="3dp" android:paddingTop="2dp"
android:textColor="@color/platform_color_666666" android:paddingRight="4dp"
android:textSize="10sp" android:paddingBottom="3dp"
android:textColor="@color/color_1c1f28_50"
android:textSize="11sp"
tools:text="恋爱情感" /> tools:text="恋爱情感" />
...@@ -3,7 +3,6 @@ ...@@ -3,7 +3,6 @@
xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
xmlns:tools="http://schemas.android.com/tools"
android:background="@color/platform_white" android:background="@color/platform_white"
android:orientation="vertical" android:orientation="vertical"
app:layout_behavior="@string/appbar_scrolling_view_behavior"> app:layout_behavior="@string/appbar_scrolling_view_behavior">
...@@ -29,12 +28,14 @@ ...@@ -29,12 +28,14 @@
android:id="@+id/tvSubject" android:id="@+id/tvSubject"
style="@style/consultant_FilterTextViewStyle" style="@style/consultant_FilterTextViewStyle"
android:layout_width="0dp" android:layout_width="0dp"
android:drawablePadding="4dp"
android:layout_weight="1" android:layout_weight="1"
android:width="0dp" android:width="0dp"
android:ellipsize="end" android:ellipsize="end"
android:textStyle="bold"
android:singleLine="true" android:singleLine="true"
android:drawableEnd="@drawable/platform_ic_arrow_drop_down_grey_500_18dp" android:drawableEnd="@drawable/consult_ic_arrow_drwn_gray"
android:drawableRight="@drawable/platform_ic_arrow_drop_down_grey_500_18dp" android:drawableRight="@drawable/consult_ic_arrow_drwn_gray"
android:text="困扰" android:text="困扰"
android:textColor="@color/platform_color_242424" /> android:textColor="@color/platform_color_242424" />
...@@ -44,8 +45,10 @@ ...@@ -44,8 +45,10 @@
android:layout_width="0dp" android:layout_width="0dp"
android:layout_weight="1" android:layout_weight="1"
android:width="0dp" android:width="0dp"
android:drawableEnd="@drawable/platform_ic_arrow_drop_down_grey_500_18dp" android:textStyle="bold"
android:drawableRight="@drawable/platform_ic_arrow_drop_down_grey_500_18dp" android:drawablePadding="4dp"
android:drawableEnd="@drawable/consult_ic_arrow_drwn_gray"
android:drawableRight="@drawable/consult_ic_arrow_drwn_gray"
android:text="城市" android:text="城市"
android:textColor="@color/platform_color_242424" /> android:textColor="@color/platform_color_242424" />
...@@ -55,8 +58,10 @@ ...@@ -55,8 +58,10 @@
android:layout_width="0dp" android:layout_width="0dp"
android:layout_weight="1" android:layout_weight="1"
android:width="0dp" android:width="0dp"
android:drawableEnd="@drawable/platform_ic_arrow_drop_down_grey_500_18dp" android:textStyle="bold"
android:drawableRight="@drawable/platform_ic_arrow_drop_down_grey_500_18dp" android:drawablePadding="4dp"
android:drawableEnd="@drawable/consult_ic_arrow_drwn_gray"
android:drawableRight="@drawable/consult_ic_arrow_drwn_gray"
android:text="价格" android:text="价格"
android:textColor="@color/platform_color_242424" /> android:textColor="@color/platform_color_242424" />
...@@ -66,8 +71,10 @@ ...@@ -66,8 +71,10 @@
android:layout_width="0dp" android:layout_width="0dp"
android:layout_weight="1" android:layout_weight="1"
android:width="0dp" android:width="0dp"
android:drawableEnd="@drawable/filter_up_grey" android:textStyle="bold"
android:drawableRight="@drawable/filter_up_grey" android:drawablePadding="4dp"
android:drawableEnd="@drawable/filter_up_gray"
android:drawableRight="@drawable/filter_up_gray"
android:text="@string/platform_filter" android:text="@string/platform_filter"
android:textColor="@color/platform_color_242424" /> android:textColor="@color/platform_color_242424" />
</LinearLayout> </LinearLayout>
......
...@@ -26,5 +26,17 @@ ...@@ -26,5 +26,17 @@
<color name="consultant_colorBg">#f5f5f5</color> <color name="consultant_colorBg">#f5f5f5</color>
<color name="color_EB892C">#EB892C</color> <color name="color_EB892C">#EB892C</color>
<color name="color_1AEB892C">#1AEB892C</color> <color name="color_1AEB892C">#1AEB892C</color>
<color name="color_1c1f28_60">#a61c1f28</color>
<color name="color_1c1f28_50">#801c1f28</color>
<color name="color_1c1f28_40">#661c1f28</color>
<color name="color_1c1f28_20">#331c1f28</color>
<color name="color_ef8a4a">#EF8A4A</color>
<color name="color_f6f6f7">#f6f6f7</color>
<color name="color_6ec8f9">#6ec8f9</color>
<color name="color_6ec8f9_90">#E66ec8f9</color>
<color name="color_b6bece">#B6BECE</color>
<color name="color_b6bece_90">#E6B6BECE</color>
<color name="color_f5a082">#F5A082</color>
<color name="color_f5a082_90">#E6F5A082</color>
<color name="color_f28e6b">#F28E6B</color>
</resources> </resources>
...@@ -550,9 +550,10 @@ object IMChatUtil { ...@@ -550,9 +550,10 @@ object IMChatUtil {
val status = chatStatusBean.data.status val status = chatStatusBean.data.status
actionHandler.setDoctorStatus(status) actionHandler.setDoctorStatus(status)
actionHandler.setDoctorBusyNum(chatStatusBean.data.busyTotal) actionHandler.setDoctorBusyNum(chatStatusBean.data.busyTotal)
//1.在线,2.离线,3.忙碌 4咨询中, 5倾述中 6咨询前准备 //1.在线,2.离线,3.服务中 4咨询中, 5倾述中 6咨询前准备
if (status == 2) { //离线 when (status) {
tb.setMinTitleText("离线") 3 -> { //服务中
tb.setMinTitleText("服务中")
tb.setMinTitleColor( tb.setMinTitleColor(
ContextCompat.getColor( ContextCompat.getColor(
context, context,
...@@ -562,11 +563,12 @@ object IMChatUtil { ...@@ -562,11 +563,12 @@ object IMChatUtil {
tb.setMinTitleDrawable( tb.setMinTitleDrawable(
ContextCompat.getDrawable( ContextCompat.getDrawable(
context, context,
R.drawable.im_background_chat_top_status_off_line R.drawable.im_background_chat_top_status_online_server
) )
) )
} else if (status == 4 || status == 5) { //服务中 }
tb.setMinTitleText("服务中") 2 -> { //离线
tb.setMinTitleText("离线")
tb.setMinTitleColor( tb.setMinTitleColor(
ContextCompat.getColor( ContextCompat.getColor(
context, context,
...@@ -576,10 +578,11 @@ object IMChatUtil { ...@@ -576,10 +578,11 @@ object IMChatUtil {
tb.setMinTitleDrawable( tb.setMinTitleDrawable(
ContextCompat.getDrawable( ContextCompat.getDrawable(
context, context,
R.drawable.im_background_chat_top_status_online_server R.drawable.im_background_chat_top_status_off_line
) )
) )
} else { //在线 1,3,6.. }
else -> { //在线 1
tb.setMinTitleText("在线") tb.setMinTitleText("在线")
tb.setMinTitleColor( tb.setMinTitleColor(
ContextCompat.getColor( ContextCompat.getColor(
...@@ -594,6 +597,7 @@ object IMChatUtil { ...@@ -594,6 +597,7 @@ object IMChatUtil {
) )
) )
} }
}
initSystemMessage( initSystemMessage(
chatStatusBean.data.promptRule, chatStatusBean.data.promptRule,
status, status,
......
...@@ -4,6 +4,7 @@ import android.annotation.SuppressLint ...@@ -4,6 +4,7 @@ import android.annotation.SuppressLint
import android.content.Context import android.content.Context
import android.os.Build import android.os.Build
import android.text.TextUtils import android.text.TextUtils
import android.util.Log
import com.google.gson.Gson import com.google.gson.Gson
import com.ydl.devicesidlib.DeviceIDHelper import com.ydl.devicesidlib.DeviceIDHelper
import com.ydl.devicesidlib.Utils import com.ydl.devicesidlib.Utils
...@@ -259,14 +260,32 @@ class HttpConfig { ...@@ -259,14 +260,32 @@ class HttpConfig {
} }
val message = originalResponse.message() val message = originalResponse.message()
val api = request.url().encodedPath() val api = request.url().encodedPath()
ActionCountUtils.baiDuCount("ydl_user_error_business","error_log",api,params,message) ActionCountUtils.baiDuCount(
"ydl_user_error_business",
"error_log",
api,
params,
message
)
//阿里云忽略埋点接口 //阿里云忽略埋点接口
if (!api.contains("maidian/writeMaiDianData")){ if (!api.contains("maidian/writeMaiDianData")) {
AliYunRichLogsHelper.getInstance().sendRichLog(AliYunLogConfig.API, "error_log---api:$api---params:$params ---- message:$message") AliYunRichLogsHelper.getInstance().sendRichLog(
}else{ AliYunLogConfig.API,
AliYunRichLogsHelper.getInstance().sendRichLog(AliYunLogConfig.API, "writeMaiDianDataError:$api---params:$params ---- message:$message") "error_log---api:$api---params:$params ---- message:$message"
)
} else {
AliYunRichLogsHelper.getInstance().sendRichLog(
AliYunLogConfig.API,
"writeMaiDianDataError:$api---params:$params ---- message:$message"
)
} }
} }
} else {
Log.e(
"YDL",
"\n---------------------------------------------------------------------------\n" +
"| 请求地址:" + request.url() + " |\n--------------------------------------------------------------------------\n"
)
} }
originalResponse originalResponse
} }
......
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