Commit b88f7457 by 霍志良

reactor:初始化README文件,将客服小壹id 14 提取到常量中,方便后续修改

parent 9632959d
# 壹点灵 v4.1.55
# AS 规范
尽量使用同一版本的 IDE 进行开发
编码格式统一为 UTF-8
编辑完 .kt .java、.xml 等文件后一定要 格式化,格式化,格式化(使用 AS 默认模板即可)
代码格式化:Command + Option + L | Control + Alt + L
删除多余的 import,减少警告出现,可利用 AS 的 Optimize Imports(Settings -> Keymap -> Optimize Imports)
无用import清理:Control + Option + O | Control + Alt + O
# commit 风格
使用中文表达,尽量控制在 20 个字以内(如果你发觉 20 个字描述不了,那很可能是因为这一次 commit 不够纯粹,可以考虑将之分成两部分内容或更多内容分次提交)
保持 commit 是纯粹的、详细的 (有利于我们发现问题时进行细粒化到具体内容 revert commit,而不是遇到问题需要 revert 结果把一些好的、没问题的内容也捆绑 revert 掉了)
格式:(一般情况下使用下面 7 种标识已经足够了)
feat:新功能(feature)
fix:修补bug
docs:文档(documentation)
style: 格式(不影响代码运行的变动)
refactor:重构(即不是新增功能,也不是修改bug的代码变动)
test:增加测试
chore:构建过程或辅助工具的变动
# yidianling
# yidianling
......@@ -274,7 +274,7 @@ public class P2PCustomActionHandlerImpl implements IP2PCustomActionHandler {
@Override
public boolean isBindPhone(final Activity activity, String toUid) {
//小壹特殊处理,没有绑定也可以和小壹聊天
if (toUid.equals("14")) {
if (toUid.equals(ImConstants.KEFUXIAOYI)) {
return true;
}
......@@ -585,7 +585,7 @@ public class P2PCustomActionHandlerImpl implements IP2PCustomActionHandler {
if (mActivity == null || mActivity.isFinishing()) return;
list.clear();
if ("14".equals(toChatUsername) || "4108805".equals(toChatUsername)) {
if (ImConstants.KEFUXIAOYI.equals(toChatUsername) || "4108805".equals(toChatUsername)) {
list.add("历史聊天记录");
// list.add("返回首页");
list.add("客服热线");
......
......@@ -42,7 +42,8 @@ class ImConstants {
//连接倾听未绑定手机提示
const val TEL_BINDPHONE = "电话连接需要绑定手机哦~"
const val KEFUXIAOYI="14"
}
......
......@@ -2,6 +2,7 @@ package com.yidianling.im.helper
import android.annotation.SuppressLint
import android.content.Context
import android.support.v4.content.ContextCompat
import android.support.v7.app.AppCompatActivity
import android.text.TextUtils
import android.view.View
......@@ -64,7 +65,13 @@ object IMChatUtil {
* 客服专用
*/
fun startKefuChat(context: AppCompatActivity?) {
SessionHelper.startP2PSession(context, -1, "14", null, P2PCustomActionHandlerImpl("14", "客服小壹", "14"))
SessionHelper.startP2PSession(
context,
-1,
ImConstants.KEFUXIAOYI,
null,
P2PCustomActionHandlerImpl(ImConstants.KEFUXIAOYI, "客服小壹", ImConstants.KEFUXIAOYI)
)
}
/**
......@@ -74,11 +81,12 @@ object IMChatUtil {
* @param chatItemBean
*/
fun startChat(context: AppCompatActivity?, chatItemBean: ChatItemBean) {
SessionHelper.startP2PSession(context,
chatItemBean.utype,
chatItemBean.toUid.toString(),
null,
P2PCustomActionHandlerImpl(chatItemBean)
SessionHelper.startP2PSession(
context,
chatItemBean.utype,
chatItemBean.toUid.toString(),
null,
P2PCustomActionHandlerImpl(chatItemBean)
)
}
......@@ -101,63 +109,63 @@ object IMChatUtil {
loadingDialog?.show(context.supportFragmentManager, null)
}
getImJavaApi().getUserType(toUid)
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe({ res: BaseResponse<UserTypeBean> ->
if (res.code == 200 && res.data != null) {
if (res.data!!.chatEvent) { //和助理私聊需要打开常用语弹窗
ChatStatusCacheHelper.setStatusCache(
"chatEvent",
res.data!!.chatEvent
)
}
if (res.data!!.collectEvent) { //和助理私聊需要打开信息采集弹窗
ChatStatusCacheHelper.setStatusCache(
"collectEvent",
res.data!!.collectEvent
)
}
if (TextUtils.equals(res.data!!.userType, "2")) { //专家
//在uid用户类型确定为专家的情况下,根据uid调用接口判断是进入专家私聊还是助理私聊
getImJavaApi().getChatUid(toUid)
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe({ resp: BaseAPIResponse<DoctorAssistantRespDtoBean> ->
val bean = resp.data
val toUid = bean.chatUid
prepareChatData(context, toUid, object :
ChatDataRequestListener {
override fun onSuccess(expertInfo: IMExpertBuild) {
startChatSession(toUid, expertInfo, isFromQingShu, context)
}
})
}) { t: Throwable? ->
handleError(context, t!!)
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe({ res: BaseResponse<UserTypeBean> ->
if (res.code == 200 && res.data != null) {
if (res.data!!.chatEvent) { //和助理私聊需要打开常用语弹窗
ChatStatusCacheHelper.setStatusCache(
"chatEvent",
res.data!!.chatEvent
)
}
if (res.data!!.collectEvent) { //和助理私聊需要打开信息采集弹窗
ChatStatusCacheHelper.setStatusCache(
"collectEvent",
res.data!!.collectEvent
)
}
if (TextUtils.equals(res.data!!.userType, "2")) { //专家
//在uid用户类型确定为专家的情况下,根据uid调用接口判断是进入专家私聊还是助理私聊
getImJavaApi().getChatUid(toUid)
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe({ resp: BaseAPIResponse<DoctorAssistantRespDtoBean> ->
val bean = resp.data
val toUid = bean.chatUid
prepareChatData(context, toUid, object :
ChatDataRequestListener {
override fun onSuccess(expertInfo: IMExpertBuild) {
startChatSession(toUid, expertInfo, isFromQingShu, context)
}
} else {
prepareAssistantChatData(context, toUid, object : ChatDataRequestListener {
override fun onSuccess(expertInfo: IMExpertBuild) {
startChatSession(toUid, expertInfo, isFromQingShu, context)
}
})
}
})
}) { t: Throwable? ->
handleError(context, t!!)
}
} else {
if (loadingDialog != null && loadingDialog!!.isVisible) {
loadingDialog?.dismissAllowingStateLoss()
}
ToastUtil.toastShort(res.msg)
prepareAssistantChatData(context, toUid, object : ChatDataRequestListener {
override fun onSuccess(expertInfo: IMExpertBuild) {
startChatSession(toUid, expertInfo, isFromQingShu, context)
}
})
}
}, { throwable: Throwable? ->
} else {
if (loadingDialog != null && loadingDialog!!.isVisible) {
loadingDialog?.dismissAllowingStateLoss()
}
handleError(context, throwable!!)
ToastUtil.toastShort(res.msg)
}
)
}, { throwable: Throwable? ->
if (loadingDialog != null && loadingDialog!!.isVisible) {
loadingDialog?.dismissAllowingStateLoss()
}
handleError(context, throwable!!)
}
)
}
fun startChatCloseReplaceChat(context: AppCompatActivity, toUid: String){
fun startChatCloseReplaceChat(context: AppCompatActivity, toUid: String) {
if (!isLogin(context, true)) {
return
}
......@@ -168,7 +176,7 @@ object IMChatUtil {
loadingDialog?.show(context.supportFragmentManager, null)
}
prepareChatData(context, toUid, object :
ChatDataRequestListener {
ChatDataRequestListener {
override fun onSuccess(expertInfo: IMExpertBuild) {
startChatSession(toUid, expertInfo, 0, context)
}
......@@ -178,200 +186,281 @@ object IMChatUtil {
/**
* 开启聊天会话
*/
private fun startChatSession(toUid: String, expertInfo: IMExpertBuild, isFromQingShu: Int, context: AppCompatActivity) {
private fun startChatSession(
toUid: String,
expertInfo: IMExpertBuild,
isFromQingShu: Int,
context: AppCompatActivity
) {
val p2PCustomActionHandlerImpl = P2PCustomActionHandlerImpl(toUid, expertInfo)
p2PCustomActionHandlerImpl.isFromQingShu = isFromQingShu
SessionHelper.startP2PSession(context, expertInfo.shareData.user_type, toUid, null, p2PCustomActionHandlerImpl)
SessionHelper.startP2PSession(
context,
expertInfo.shareData.user_type,
toUid,
null,
p2PCustomActionHandlerImpl
)
}
//====================准备私聊数据====================
/**
* 初始化聊天数据
*/
fun prepareChatData(context: AppCompatActivity, toUid: String, listener: ChatDataRequestListener) {
fun prepareChatData(
context: AppCompatActivity,
toUid: String,
listener: ChatDataRequestListener
) {
if (!isLogin(context, true)) {
return
}
val dis = getImJavaApi().getUserType(toUid)
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe({ res: BaseResponse<UserTypeBean> ->
if (res.code == 200 && res.data != null) {
if (res.data!!.chatEvent) { //和助理私聊需要打开常用语弹窗
ChatStatusCacheHelper.setStatusCache("chatEvent", res.data!!.chatEvent)
}
if (res.data!!.collectEvent) { //和助理私聊需要打开信息采集弹窗
ChatStatusCacheHelper.setStatusCache("collectEvent", res.data!!.collectEvent)
}
if (TextUtils.equals(res.data!!.userType, "2")) {
//接口返回值是专家,java接口
prepareExpertChatData(context, toUid, listener)
} else { //非专家 php接口
prepareAssistantChatData(context, toUid, listener)
}
} else {
if (loadingDialog != null && loadingDialog!!.isVisible) {
loadingDialog?.dismissAllowingStateLoss()
}
ToastUtil.toastShort(res.msg)
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe({ res: BaseResponse<UserTypeBean> ->
if (res.code == 200 && res.data != null) {
if (res.data!!.chatEvent) { //和助理私聊需要打开常用语弹窗
ChatStatusCacheHelper.setStatusCache("chatEvent", res.data!!.chatEvent)
}
if (res.data!!.collectEvent) { //和助理私聊需要打开信息采集弹窗
ChatStatusCacheHelper.setStatusCache(
"collectEvent",
res.data!!.collectEvent
)
}
}, { throwable: Throwable? ->
if (TextUtils.equals(res.data!!.userType, "2")) {
//接口返回值是专家,java接口
prepareExpertChatData(context, toUid, listener)
} else { //非专家 php接口
prepareAssistantChatData(context, toUid, listener)
}
} else {
if (loadingDialog != null && loadingDialog!!.isVisible) {
loadingDialog?.dismissAllowingStateLoss()
}
handleError(context, throwable!!)
ToastUtil.toastShort(res.msg)
}
)
}, { throwable: Throwable? ->
if (loadingDialog != null && loadingDialog!!.isVisible) {
loadingDialog?.dismissAllowingStateLoss()
}
handleError(context, throwable!!)
}
)
}
/**
* 专家私聊数据请求
*/
fun prepareExpertChatData(context: AppCompatActivity, toUid: String?, listener: ChatDataRequestListener) {
fun prepareExpertChatData(
context: AppCompatActivity,
toUid: String?,
listener: ChatDataRequestListener
) {
val disposable = getImJavaApi().getPersonalChat(toUid!!)
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe({ resp: BaseResponse<IMExpertBuild> ->
if (null != loadingDialog && loadingDialog?.isVisible!!) {
loadingDialog?.dismissAllowingStateLoss()
}
if (resp.code == 200) {
val expert = resp.data
UserInfoCache.getInstance().saveYDLUser(
expert.shareData.toUid,
expert.shareData.doctorName,
expert.shareData.cover
)
listener.onSuccess(expert)
} else {
upLoadLog("consult/get-expert", resp.code, resp.msg)
if (resp.code == ImConstants.HTTP_CODE_UNLOGIN) {
context.startActivity(loginWayIntent(context))
ToastUtil.toastShort(resp.msg)
} else if (resp.code == ImConstants.SILENCED_CODE) { //禁言
showSilencedDialog(context, resp.data.tips, resp.data.url)
} else {
ToastUtil.toastShort(resp.msg)
}
}
}
) { throwable: Throwable ->
if (null != loadingDialog && loadingDialog!!.isVisible) {
loadingDialog?.dismissAllowingStateLoss()
}
handleError(context, throwable)
if (throwable is HttpException) {
upLoadLog("consult/get-expert", throwable.code(), throwable.message!!)
}
}
}
/**
* 助理私聊数据请求
*/
fun prepareAssistantChatData(
context: AppCompatActivity,
toUid: String,
listener: ChatDataRequestListener
) {
val cmd = GetExpert(toUid.toInt(), 0)
val disposable =
getImRetrofitApi().getExpert(NetworkParamsUtils.getMaps(cmd))
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe({ resp: BaseResponse<IMExpertBuild> ->
if (null != loadingDialog && loadingDialog?.isVisible!!) {
loadingDialog?.dismissAllowingStateLoss()
}
if (resp.code == 200) {
val expert = resp.data
UserInfoCache.getInstance().saveYDLUser(expert.shareData.toUid,expert.shareData.doctorName,expert.shareData.cover)
listener.onSuccess(expert)
} else {
upLoadLog("consult/get-expert", resp.code, resp.msg)
if (resp.code == ImConstants.HTTP_CODE_UNLOGIN) {
context.startActivity(loginWayIntent(context))
ToastUtil.toastShort(resp.msg)
} else if (resp.code == ImConstants.SILENCED_CODE) { //禁言
showSilencedDialog(context,resp.data.tips,resp.data.url)
} else {
ToastUtil.toastShort(resp.msg)
}
}
if (null != loadingDialog && loadingDialog!!.isVisible) {
loadingDialog?.dismissAllowingStateLoss()
}
if (resp.code == 0) {
val expert = resp.data
UserInfoCache.getInstance().saveYDLUser(
expert.shareData.toUid,
expert.shareData.doctorName,
expert.shareData.cover
)
listener?.onSuccess(expert)
} else {
upLoadLog("consult/get-expert", resp.code, resp.msg)
if (resp.code == ImConstants.HTTP_CODE_UNLOGIN) {
context.startActivity(loginWayIntent(context))
ToastUtil.toastShort(resp.msg)
} else if (resp.code == ImConstants.SILENCED_CODE) { //禁言
showSilencedDialog(context, resp.data.tips, resp.data.url)
} else {
ToastUtil.toastShort(resp.msg)
}
}
}
) { throwable: Throwable ->
if (null != loadingDialog && loadingDialog!!.isVisible) {
if (null != loadingDialog && loadingDialog?.isVisible!!) {
loadingDialog?.dismissAllowingStateLoss()
}
handleError(context, throwable)
if (throwable is HttpException) {
upLoadLog("consult/get-expert",throwable.code(),throwable.message!!)
upLoadLog("consult/get-expert", throwable.code(), throwable.message!!)
}
}
}
/**
* 助理私聊数据请求
*/
fun prepareAssistantChatData(context: AppCompatActivity, toUid: String, listener: ChatDataRequestListener) {
val cmd = GetExpert(toUid.toInt(), 0)
val disposable =
getImRetrofitApi().getExpert(NetworkParamsUtils.getMaps(cmd))
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe({ resp: BaseResponse<IMExpertBuild> ->
if (null != loadingDialog && loadingDialog!!.isVisible) {
loadingDialog?.dismissAllowingStateLoss()
}
if (resp.code == 0) {
val expert = resp.data
UserInfoCache.getInstance().saveYDLUser(expert.shareData.toUid,expert.shareData.doctorName,expert.shareData.cover)
listener?.onSuccess(expert)
} else {
upLoadLog("consult/get-expert", resp.code, resp.msg)
if (resp.code == ImConstants.HTTP_CODE_UNLOGIN) {
context.startActivity(loginWayIntent(context))
ToastUtil.toastShort(resp.msg)
} else if (resp.code == ImConstants.SILENCED_CODE) { //禁言
showSilencedDialog(context,resp.data.tips,resp.data.url)
} else {
ToastUtil.toastShort(resp.msg)
}
}
}
) { throwable: Throwable ->
if (null != loadingDialog && loadingDialog?.isVisible!!) {
loadingDialog?.dismissAllowingStateLoss()
}
handleError(context, throwable)
if (throwable is HttpException) {
upLoadLog("consult/get-expert",throwable.code(),throwable.message!!)
}
}
}
//====================私聊页面 初始化操作====================
/**
* 初始化在线状态接口
*
* 只有专家显示在线、离线标识,其他用户Type隐藏在线、离线标识
*/
fun initChatOnlineState(tb: TitleBarBottom, context: Context, toUid: String, messageFragment: YDLMessageFragment) {
fun initChatOnlineState(
tb: TitleBarBottom,
context: Context,
toUid: String,
messageFragment: YDLMessageFragment
) {
val actionHandler = ActionHandlerStorage.getL(toUid)
//获取私聊对方在线状态
if (null != actionHandler) {
val docInfo = actionHandler.info
if (null != docInfo && ("14" == docInfo.toUid || "4108805" == docInfo.toUid)) { //小壹客服 不显示是否在线
docInfo.doctorBriefInfoFeedbackRate
if (null != docInfo && (ImConstants.KEFUXIAOYI == docInfo.toUid || "4108805" == docInfo.toUid)) { //小壹客服 不显示是否在线
tb.setmMinTitleVisiable(View.GONE)
} else {
//对方是用户,自己是助理
if (actionHandler.userType == 1 && ModularServiceManager.provide(IUserService::class.java).getUserInfo()?.user_type == 3) {
if (actionHandler.userType == 1 && ModularServiceManager.provide(IUserService::class.java)
.getUserInfo()?.user_type == 3
) {
tb.setTitleTextRightIcon(R.drawable.user_info_icon) {
messageFragment.showUserInfoDialog()
}
}
if (actionHandler.userType == 2) { // 专家
tb.setmMinTitleVisiable(View.VISIBLE)
// 调取接口获取专家状态
val dis = instance
.getDoctorChatStatus(actionHandler.info.toUid.toLong())
.compose(applySchedulers())
.subscribe(
{ chatStatusBean: BaseAPIResponse<ChatStatusBean> ->
if (actionHandler != null) {
val status = chatStatusBean.data.status
actionHandler.setDoctorStatus(status)
actionHandler.setDoctorBusyNum(chatStatusBean.data.busyTotal)
//1.在线,2.离线,3.忙碌 4咨询中, 5倾述中 6咨询前准备
if (status == 2) { //离线
tb.setMinTitleText("离线")
tb.setMinTitleColor(context.getResources().getColor(R.color.platform_color_666666))
tb.setMinTitleDrawable(context.getResources().getDrawable(R.drawable.im_background_chat_top_status_off_line))
} else if (status == 4 || status == 5) { //服务中
tb.setMinTitleText("服务中")
tb.setMinTitleColor(context.getResources().getColor(R.color.platform_color_666666))
tb.setMinTitleDrawable(context.getResources().getDrawable(R.drawable.im_background_chat_top_status_online_server))
} else { //在线 1,3,6..
tb.setMinTitleText("在线")
tb.setMinTitleColor(context.getResources().getColor(R.color.platform_color_666666))
tb.setMinTitleDrawable(context.getResources().getDrawable(R.drawable.im_background_chat_top_status_online))
}
initSystemMessage(chatStatusBean.data.promptRule,status,toUid,actionHandler)
}
.getDoctorChatStatus(actionHandler.info.toUid.toLong())
.compose(applySchedulers())
.subscribe(
{ chatStatusBean: BaseAPIResponse<ChatStatusBean> ->
if (actionHandler != null) {
val status = chatStatusBean.data.status
actionHandler.setDoctorStatus(status)
actionHandler.setDoctorBusyNum(chatStatusBean.data.busyTotal)
//1.在线,2.离线,3.忙碌 4咨询中, 5倾述中 6咨询前准备
if (status == 2) { //离线
tb.setMinTitleText("离线")
tb.setMinTitleColor(
ContextCompat.getColor(
context,
R.color.platform_color_666666
)
)
tb.setMinTitleDrawable(
ContextCompat.getDrawable(
context,
R.drawable.im_background_chat_top_status_off_line
)
)
} else if (status == 4 || status == 5) { //服务中
tb.setMinTitleText("服务中")
tb.setMinTitleColor(
ContextCompat.getColor(
context,
R.color.platform_color_666666
)
)
tb.setMinTitleDrawable(
ContextCompat.getDrawable(
context,
R.drawable.im_background_chat_top_status_online_server
)
)
} else { //在线 1,3,6..
tb.setMinTitleText("在线")
tb.setMinTitleColor(
ContextCompat.getColor(
context,
R.color.platform_color_666666
)
)
tb.setMinTitleDrawable(
ContextCompat.getDrawable(
context,
R.drawable.im_background_chat_top_status_online
)
)
}
) { throwable: Throwable ->
LogUtil.i("getDoctorChatStatus throwable:$throwable")
initSystemMessage(
chatStatusBean.data.promptRule,
status,
toUid,
actionHandler
)
}
}
) { throwable: Throwable ->
LogUtil.i("getDoctorChatStatus throwable:$throwable")
}
} else if (actionHandler.userType == 3) { // 助理
tb.setmMinTitleVisiable(View.GONE)
// 调取接口获取助理状态
instance.getAssistantChatStatus(
actionHandler.info.toUid.toLong()
actionHandler.info.toUid.toLong()
)
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe({ res: BaseAPIResponse<Int> ->
if (actionHandler != null) {
if (res.data == 1) { //在线
tb.setMinTitleText("在线")
tb.setMinTitleColor(context.getResources().getColor(R.color.platform_color_666666))
tb.setMinTitleDrawable(context.getResources().getDrawable(R.drawable.im_background_chat_top_status_online))
} else { //离线
tb.setMinTitleText("离线")
tb.setMinTitleColor(context.getResources().getColor(R.color.platform_color_666666))
tb.setMinTitleDrawable(context.getResources().getDrawable(R.drawable.im_background_chat_top_status_off_line))
}
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe({ res: BaseAPIResponse<Int> ->
if (actionHandler != null) {
if (res.data == 1) { //在线
/*tb.setMinTitleText("在线")
tb.setMinTitleColor(context.resources.getColor(R.color.platform_color_666666))
tb.setMinTitleDrawable(context.resources.getDrawable(R.drawable.im_background_chat_top_status_online))*/
} else { //离线
/* tb.setMinTitleText("离线")
tb.setMinTitleColor(context.resources.getColor(R.color.platform_color_666666))
tb.setMinTitleDrawable(context.resources.getDrawable(R.drawable.im_background_chat_top_status_off_line))*/
}
}
) { throwable: Throwable? -> }
}
) { throwable: Throwable? -> }
} else {
tb.setmMinTitleVisiable(View.GONE)
}
......@@ -381,7 +470,12 @@ object IMChatUtil {
// promptRule 判断是否推荐专家 4,5直接不走文本提示和推荐逻辑,1,3不走推荐逻辑
//初始化 根据专家在线状态来发送提示消息或者推荐消息
private fun initSystemMessage(promptRule: Int, status: Int, toUid: String, actionHandler: IP2PCustomActionHandler) {
private fun initSystemMessage(
promptRule: Int,
status: Int,
toUid: String,
actionHandler: IP2PCustomActionHandler
) {
if (!(promptRule == 4 || promptRule == 5)) {
val showExpertList = !(promptRule == 1 || promptRule == 3)
if (actionHandler.userType == 2 && status == 2) { //当该专家离线时
......@@ -396,29 +490,38 @@ object IMChatUtil {
* 发送推荐专家列表
*/
@SuppressLint("CheckResult")
fun sendRecommendExpertListMessage(type: Int, showExpertList: Boolean, toUid: String, actionHandler: IP2PCustomActionHandler) { // 调取接口获取推荐专家列表
instance.getRecommendExpertList(actionHandler.info.toUid.toLong(), URLEncoder.encode(actionHandler.info.tag1), 3)
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe({ res: BaseAPIResponse<ArrayList<RecommendExpertBean>> ->
//发送推荐专家列表消息
actionHandler.sendRecommendExpertListMessage(toUid, res.data, type, showExpertList)
}, { throwable: Throwable -> ToastUtil.toastShort(throwable.toString()) })
fun sendRecommendExpertListMessage(
type: Int,
showExpertList: Boolean,
toUid: String,
actionHandler: IP2PCustomActionHandler
) { // 调取接口获取推荐专家列表
instance.getRecommendExpertList(
actionHandler.info.toUid.toLong(),
URLEncoder.encode(actionHandler.info.tag1),
3
)
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe({ res: BaseAPIResponse<ArrayList<RecommendExpertBean>> ->
//发送推荐专家列表消息
actionHandler.sendRecommendExpertListMessage(toUid, res.data, type, showExpertList)
}, { throwable: Throwable -> ToastUtil.toastShort(throwable.toString()) })
}
//====================展示提示====================
fun showSilencedDialog(context: Context, tips: String?, url: String?) {
CommonDialog.create(context)
.setMessage(tips)
.setCancelAble(false)
.setLeftOnclick(
context.getString(R.string.im_details)
) {
val realUrl = if (TextUtils.isEmpty(url)) ImConstants.HELP_URL else url!!
val params = H5Params(realUrl, "")
NewH5Activity.start(context, params)
}
.setRightClick(context.getString(R.string.im_approval), null)
.show()
.setMessage(tips)
.setCancelAble(false)
.setLeftOnclick(
context.getString(R.string.im_details)
) {
val realUrl = if (TextUtils.isEmpty(url)) ImConstants.HELP_URL else url!!
val params = H5Params(realUrl, "")
NewH5Activity.start(context, params)
}
.setRightClick(context.getString(R.string.im_approval), null)
.show()
}
}
\ No newline at end of file
......@@ -31,6 +31,7 @@ import com.yidianling.im.api.bean.IMSendCustomNotificationResultCallBack
import com.yidianling.im.api.service.IImService
import com.yidianling.im.bridge.P2PCustomActionHandlerImpl
import com.yidianling.im.config.NimApplication
import com.yidianling.im.config.constants.ImConstants
import com.yidianling.im.helper.IMChatUtil
import com.yidianling.im.helper.LogoutHelper
import com.yidianling.im.helper.ImObserversHelper
......@@ -73,7 +74,7 @@ class IMServiceImpl : IImService {
context.startActivity(ImIn.loginWayIntent(context))
return
}
SessionHelper.startP2PSession(context, -1, "14", null, P2PCustomActionHandlerImpl("14", "客服小壹", "https://static.ydlcdn.com/mobile/images/avatar_girl_app.png"))
SessionHelper.startP2PSession(context, -1, ImConstants.KEFUXIAOYI, null, P2PCustomActionHandlerImpl("14", "客服小壹", "https://static.ydlcdn.com/mobile/images/avatar_girl_app.png"))
}
override fun imLogin(info: IMLoginInfo) {
......
......@@ -20,6 +20,7 @@ import com.yidianling.im.R
import com.yidianling.im.api.event.ImLogoutEvent
import com.yidianling.im.api.event.UpdateBottomBarUnreadNumEvent
import com.yidianling.im.bridge.P2PCustomActionHandlerImpl
import com.yidianling.im.config.constants.ImConstants
import com.yidianling.im.event.MessageListRefreshEvent
import com.yidianling.im.event.ReQureyUnreadNum
import com.yidianling.im.event.UpdateTabUnreadNumEvent
......@@ -295,8 +296,8 @@ class NewMultiMessageFragment : BaseFragment() {
private fun initKefu() {
ll_kefu.setOnClickListener {
if (ImIn.isLogin()) {
SessionHelper.startP2PSession(context, -1, "14", null,
P2PCustomActionHandlerImpl("14", "客服小壹", "14"))
SessionHelper.startP2PSession(context, -1, ImConstants.KEFUXIAOYI, null,
P2PCustomActionHandlerImpl(ImConstants.KEFUXIAOYI, "客服小壹", ImConstants.KEFUXIAOYI))
} else {
ToastUtil.toastShort("请登录后再试")
}
......
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