Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
Y
YDL-Component-Medical
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
杨凯
YDL-Component-Medical
Commits
af53ee64
Commit
af53ee64
authored
Jul 02, 2021
by
刘鹏
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
feat: 改变信息收集入口
parent
f451ce8d
Expand all
Show whitespace changes
Inline
Side-by-side
Showing
11 changed files
with
163 additions
and
289 deletions
+163
-289
AndroidManifest.xml
m-im/src/main/AndroidManifest.xml
+20
-12
IMChatUtil.kt
m-im/src/main/java/com/yidianling/im/helper/IMChatUtil.kt
+96
-10
CmsExamQuestionPaperActivity.kt
m-im/src/main/java/com/yidianling/im/ui/activity/CmsExamQuestionPaperActivity.kt
+0
-0
NewMultiMessageFragment.kt
m-im/src/main/java/com/yidianling/im/ui/page/NewMultiMessageFragment.kt
+9
-76
YDLMessageFragment.java
m-im/src/main/java/com/yidianling/uikit/business/session/fragment/YDLMessageFragment.java
+3
-83
CollectInfoPopupWindow.kt
m-im/src/main/java/com/yidianling/uikit/business/session/view/CollectInfoPopupWindow.kt
+0
-89
ServiceImpl.kt
m-im/src/main/java/com/yidianling/uikit/custom/http/ServiceImpl.kt
+1
-1
AnswerQuestionRequestBean.java
m-im/src/main/java/com/yidianling/uikit/custom/http/response/question/AnswerQuestionRequestBean.java
+0
-1
AnswerQuestionType70RequestBean.java
m-im/src/main/java/com/yidianling/uikit/custom/http/response/question/AnswerQuestionType70RequestBean.java
+15
-0
QuestionsInfoBean.java
m-im/src/main/java/com/yidianling/uikit/custom/http/response/question/QuestionsInfoBean.java
+5
-0
im_view_question_infomation.xml
m-im/src/main/res_uikit/layout/im_view_question_infomation.xml
+14
-17
No files found.
m-im/src/main/AndroidManifest.xml
View file @
af53ee64
...
@@ -8,18 +8,22 @@
...
@@ -8,18 +8,22 @@
<uses-permission
android:name=
"android.permission.ACCESS_WIFI_STATE"
/>
<uses-permission
android:name=
"android.permission.ACCESS_WIFI_STATE"
/>
<uses-permission
android:name=
"android.permission.FLASHLIGHT"
/>
<uses-permission
android:name=
"android.permission.FLASHLIGHT"
/>
<uses-permission
android:name=
"android.permission.VIBRATE"
/>
<uses-permission
android:name=
"android.permission.VIBRATE"
/>
<uses-permission
android:name=
"android.permission.READ_EXTERNAL_STORAGE"
/>
<uses-permission
android:name=
"android.permission.READ_EXTERNAL_STORAGE"
/>
<uses-permission
android:name=
"android.permission.WRITE_EXTERNAL_STORAGE"
/>
<uses-permission
android:name=
"android.permission.WRITE_EXTERNAL_STORAGE"
/>
<uses-permission
android:name=
"android.permission.CAMERA"
/>
<uses-permission
android:name=
"android.permission.CAMERA"
/>
<uses-permission
android:name=
"android.permission.RECORD_AUDIO"
/>
<uses-permission
android:name=
"android.permission.RECORD_AUDIO"
/>
<uses-permission
android:name=
"android.permission.READ_PHONE_STATE"
/>
<uses-permission
android:name=
"android.permission.READ_PHONE_STATE"
/>
<uses-permission
android:name=
"android.permission.BLUETOOTH"
/>
<uses-permission
android:name=
"android.permission.BLUETOOTH"
/>
<uses-permission
android:name=
"android.permission.BLUETOOTH_ADMIN"
/>
<uses-permission
android:name=
"android.permission.BLUETOOTH_ADMIN"
/>
<uses-permission
android:name=
"android.permission.MODIFY_AUDIO_SETTINGS"
/>
<uses-permission
android:name=
"android.permission.MODIFY_AUDIO_SETTINGS"
/>
<uses-permission
android:name=
"android.permission.BROADCAST_STICKY"
/>
<uses-permission
android:name=
"android.permission.BROADCAST_STICKY"
/>
<uses-feature
android:name=
"android.hardware.camera"
/>
<uses-feature
android:name=
"android.hardware.camera"
/>
<uses-feature
android:name=
"android.hardware.camera.autofocus"
/>
<uses-feature
android:name=
"android.hardware.camera.autofocus"
/>
<uses-feature
android:glEsVersion=
"0x00020000"
android:required=
"true"
/>
<uses-feature
android:glEsVersion=
"0x00020000"
android:required=
"true"
/>
<uses-permission
android:name=
"android.permission.FOREGROUND_SERVICE"
/>
<uses-permission
android:name=
"android.permission.FOREGROUND_SERVICE"
/>
<permission
<permission
android:name=
"${APPLICATIONID}.permission.RECEIVE_MSG"
android:name=
"${APPLICATIONID}.permission.RECEIVE_MSG"
...
@@ -57,13 +61,17 @@
...
@@ -57,13 +61,17 @@
<activity
<activity
android:name=
".ui.activity.SystemMsgDetailActivity"
android:name=
".ui.activity.SystemMsgDetailActivity"
android:screenOrientation=
"portrait"
android:screenOrientation=
"portrait"
android:theme=
"@style/platform_NoTitleTheme"
android:theme=
"@style/platform_NoTitleTheme"
/>
/>
<activity
<activity
android:name=
".ui.activity.OtherMsgDetailActivity"
android:name=
".ui.activity.OtherMsgDetailActivity"
android:screenOrientation=
"portrait"
android:screenOrientation=
"portrait"
android:theme=
"@style/platform_NoTitleTheme"
android:theme=
"@style/platform_NoTitleTheme"
/>
/>
<!--前置信息手机页面-->
<activity
android:name=
".ui.activity.CmsExamQuestionPaperActivity"
android:screenOrientation=
"portrait"
android:theme=
"@style/platform_NoTitleTheme"
/>
<!-- 云信 集成配置 -->
<!-- 云信 集成配置 -->
<!-- 声明云信后台服务 -->
<!-- 声明云信后台服务 -->
...
...
m-im/src/main/java/com/yidianling/im/helper/IMChatUtil.kt
View file @
af53ee64
...
@@ -2,10 +2,10 @@ package com.yidianling.im.helper
...
@@ -2,10 +2,10 @@ package com.yidianling.im.helper
import
android.annotation.SuppressLint
import
android.annotation.SuppressLint
import
android.content.Context
import
android.content.Context
import
androidx.core.content.ContextCompat
import
androidx.appcompat.app.AppCompatActivity
import
android.text.TextUtils
import
android.text.TextUtils
import
android.view.View
import
android.view.View
import
androidx.appcompat.app.AppCompatActivity
import
androidx.core.content.ContextCompat
import
com.ydl.webview.H5Params
import
com.ydl.webview.H5Params
import
com.ydl.webview.NewH5Activity
import
com.ydl.webview.NewH5Activity
import
com.ydl.ydlcommon.data.http.BaseAPIResponse
import
com.ydl.ydlcommon.data.http.BaseAPIResponse
...
@@ -35,6 +35,7 @@ import com.yidianling.im.http.ImRetrofitApi.Companion.getImRetrofitApi
...
@@ -35,6 +35,7 @@ import com.yidianling.im.http.ImRetrofitApi.Companion.getImRetrofitApi
import
com.yidianling.im.router.ImIn
import
com.yidianling.im.router.ImIn
import
com.yidianling.im.router.ImIn.isLogin
import
com.yidianling.im.router.ImIn.isLogin
import
com.yidianling.im.session.SessionHelper
import
com.yidianling.im.session.SessionHelper
import
com.yidianling.im.ui.activity.CmsExamQuestionPaperActivity
import
com.yidianling.im.ui.page.fragment.bean.ChatItemBean
import
com.yidianling.im.ui.page.fragment.bean.ChatItemBean
import
com.yidianling.uikit.business.session.fragment.YDLMessageFragment
import
com.yidianling.uikit.business.session.fragment.YDLMessageFragment
import
com.yidianling.uikit.business.session.helper.ChatStatusCacheHelper
import
com.yidianling.uikit.business.session.helper.ChatStatusCacheHelper
...
@@ -55,10 +56,11 @@ import java.net.URLEncoder
...
@@ -55,10 +56,11 @@ import java.net.URLEncoder
*/
*/
object
IMChatUtil
{
object
IMChatUtil
{
private
var
loadingDialog
:
LoadingDialogFragment
?
=
null
private
var
loadingDialog
:
LoadingDialogFragment
?
=
null
private
const
val
USER_TYPE_EXPERT
=
2
//专家
private
const
val
USER_TYPE_EXPERT
=
2
//专家
private
const
val
USER_TYPE_ASSISTANT
=
3
//助理
private
const
val
USER_TYPE_ASSISTANT
=
3
//助理
private
const
val
USER_TYPE_USER
=
1
//用户
private
const
val
USER_TYPE_USER
=
1
//用户
lateinit
var
doctorId
:
String
lateinit
var
doctorId
:
String
/**
/**
* 接口数据请求完成回调
* 接口数据请求完成回调
*/
*/
...
@@ -85,7 +87,50 @@ object IMChatUtil {
...
@@ -85,7 +87,50 @@ object IMChatUtil {
* @param context
* @param context
* @param chatItemBean
* @param chatItemBean
*/
*/
@SuppressLint
(
"CheckResult"
)
fun
startChat
(
context
:
AppCompatActivity
?,
chatItemBean
:
ChatItemBean
)
{
fun
startChat
(
context
:
AppCompatActivity
?,
chatItemBean
:
ChatItemBean
)
{
if
(
context
==
null
||
(!
isLogin
(
context
,
true
)))
{
return
}
if
(
loadingDialog
==
null
)
{
loadingDialog
=
newInstance
(
null
)
}
if
(
context
.
supportFragmentManager
!=
null
&&
!
context
.
isDestroyed
)
{
loadingDialog
?.
show
(
context
.
supportFragmentManager
,
null
)
}
getImJavaApi
().
getUserType
(
chatItemBean
.
toUid
.
toString
())
.
subscribeOn
(
Schedulers
.
io
())
.
observeOn
(
AndroidSchedulers
.
mainThread
())
.
subscribe
({
res
:
BaseResponse
<
UserTypeBean
>
->
if
(
res
.
code
==
200
&&
res
.
data
!=
null
)
{
if
(
res
.
data
!!
.
collectEvent
&&
TextUtils
.
equals
(
res
.
data
!!
.
userType
,
USER_TYPE_ASSISTANT
.
toString
())
&&
res
.
data
!!
.
collectEvent
)
{
//和助理私聊需要打开信息采集弹窗
prepareAssistantChatData
(
context
,
chatItemBean
.
toUid
.
toString
(),
object
:
ChatDataRequestListener
{
override
fun
onSuccess
(
expertInfo
:
IMExpertBuild
)
{
//新前置信息收集入口
CmsExamQuestionPaperActivity
.
start
(
context
,
chatItemBean
.
toUid
.
toString
(),
expertInfo
,
0
)
}
})
}
else
{
SessionHelper
.
startP2PSession
(
context
,
chatItemBean
.
utype
,
chatItemBean
.
toUid
.
toString
(),
null
,
P2PCustomActionHandlerImpl
(
chatItemBean
)
)
}
}
else
{
if
(
loadingDialog
!=
null
&&
loadingDialog
!!
.
isVisible
)
{
loadingDialog
?.
dismissAllowingStateLoss
()
}
SessionHelper
.
startP2PSession
(
SessionHelper
.
startP2PSession
(
context
,
context
,
chatItemBean
.
utype
,
chatItemBean
.
utype
,
...
@@ -95,6 +140,23 @@ object IMChatUtil {
...
@@ -95,6 +140,23 @@ object IMChatUtil {
)
)
}
}
},
{
throwable
:
Throwable
?
->
if
(
loadingDialog
!=
null
&&
loadingDialog
!!
.
isVisible
)
{
loadingDialog
?.
dismissAllowingStateLoss
()
}
SessionHelper
.
startP2PSession
(
context
,
chatItemBean
.
utype
,
chatItemBean
.
toUid
.
toString
(),
null
,
P2PCustomActionHandlerImpl
(
chatItemBean
)
)
})
}
/**
/**
* 非私聊列表进入,前置数据请求
* 非私聊列表进入,前置数据请求
*
*
...
@@ -147,12 +209,24 @@ object IMChatUtil {
...
@@ -147,12 +209,24 @@ object IMChatUtil {
})
{
t
:
Throwable
?
->
})
{
t
:
Throwable
?
->
handleError
(
context
,
t
!!
)
handleError
(
context
,
t
!!
)
}
}
}
else
if
(
TextUtils
.
equals
(
res
.
data
!!
.
userType
,
USER_TYPE_ASSISTANT
.
toString
())
&&
res
.
data
!!
.
collectEvent
)
{
//助理
prepareAssistantChatData
(
context
,
toUid
,
object
:
ChatDataRequestListener
{
override
fun
onSuccess
(
expertInfo
:
IMExpertBuild
)
{
//新前置信息收集入口
CmsExamQuestionPaperActivity
.
start
(
context
,
toUid
,
expertInfo
,
isFromQingShu
)
}
})
}
else
{
}
else
{
prepareAssistantChatData
(
context
,
toUid
,
object
:
ChatDataRequestListener
{
prepareAssistantChatData
(
context
,
toUid
,
object
:
ChatDataRequestListener
{
override
fun
onSuccess
(
expertInfo
:
IMExpertBuild
)
{
override
fun
onSuccess
(
expertInfo
:
IMExpertBuild
)
{
startChatSession
(
toUid
,
expertInfo
,
isFromQingShu
,
context
)
startChatSession
(
toUid
,
expertInfo
,
isFromQingShu
,
context
)
}
}
})
})
}
}
}
else
{
}
else
{
if
(
loadingDialog
!=
null
&&
loadingDialog
!!
.
isVisible
)
{
if
(
loadingDialog
!=
null
&&
loadingDialog
!!
.
isVisible
)
{
...
@@ -165,8 +239,7 @@ object IMChatUtil {
...
@@ -165,8 +239,7 @@ object IMChatUtil {
loadingDialog
?.
dismissAllowingStateLoss
()
loadingDialog
?.
dismissAllowingStateLoss
()
}
}
handleError
(
context
,
throwable
!!
)
handleError
(
context
,
throwable
!!
)
}
})
)
}
}
...
@@ -197,7 +270,8 @@ object IMChatUtil {
...
@@ -197,7 +270,8 @@ object IMChatUtil {
isFromQingShu
:
Int
,
isFromQingShu
:
Int
,
context
:
AppCompatActivity
context
:
AppCompatActivity
)
{
)
{
AliYunRichLogsHelper
.
getInstance
().
sendRichLog
(
AliYunLogConfig
.
YUNXIN
,
"startChatSession 开启聊天会话"
)
AliYunRichLogsHelper
.
getInstance
()
.
sendRichLog
(
AliYunLogConfig
.
YUNXIN
,
"startChatSession 开启聊天会话"
)
val
p2PCustomActionHandlerImpl
=
P2PCustomActionHandlerImpl
(
toUid
,
expertInfo
)
val
p2PCustomActionHandlerImpl
=
P2PCustomActionHandlerImpl
(
toUid
,
expertInfo
)
p2PCustomActionHandlerImpl
.
isFromQingShu
=
isFromQingShu
p2PCustomActionHandlerImpl
.
isFromQingShu
=
isFromQingShu
SessionHelper
.
startP2PSession
(
SessionHelper
.
startP2PSession
(
...
@@ -209,6 +283,18 @@ object IMChatUtil {
...
@@ -209,6 +283,18 @@ object IMChatUtil {
)
)
}
}
/**
* 信息收集前置页调用方法
* */
open
fun
startChatSessionByCms
(
toUid
:
String
,
expertInfo
:
IMExpertBuild
,
isFromQingShu
:
Int
,
context
:
AppCompatActivity
)
{
startChatSession
(
toUid
,
expertInfo
,
isFromQingShu
,
context
)
}
//====================准备私聊数据====================
//====================准备私聊数据====================
/**
/**
* 初始化聊天数据
* 初始化聊天数据
...
@@ -489,7 +575,7 @@ object IMChatUtil {
...
@@ -489,7 +575,7 @@ object IMChatUtil {
val
showExpertList
=
!(
promptRule
==
1
||
promptRule
==
3
)
val
showExpertList
=
!(
promptRule
==
1
||
promptRule
==
3
)
if
(
actionHandler
.
userType
==
USER_TYPE_EXPERT
&&
status
==
2
)
{
//当该专家离线时
if
(
actionHandler
.
userType
==
USER_TYPE_EXPERT
&&
status
==
2
)
{
//当该专家离线时
sendRecommendExpertListMessage
(
1
,
showExpertList
,
toUid
,
actionHandler
)
sendRecommendExpertListMessage
(
1
,
showExpertList
,
toUid
,
actionHandler
)
}
else
if
(
actionHandler
.
userType
==
USER_TYPE_EXPERT
&&
status
>=
3
)
{
//当该专家忙碌时
}
else
if
(
actionHandler
.
userType
==
USER_TYPE_EXPERT
&&
status
>=
3
)
{
//当该专家忙碌时
sendRecommendExpertListMessage
(
2
,
showExpertList
,
toUid
,
actionHandler
)
sendRecommendExpertListMessage
(
2
,
showExpertList
,
toUid
,
actionHandler
)
}
}
}
}
...
...
m-im/src/main/java/com/yidianling/
uikit/business/session/view/QuestionInformationView
.kt
→
m-im/src/main/java/com/yidianling/
im/ui/activity/CmsExamQuestionPaperActivity
.kt
View file @
af53ee64
This diff is collapsed.
Click to expand it.
m-im/src/main/java/com/yidianling/im/ui/page/NewMultiMessageFragment.kt
View file @
af53ee64
...
@@ -10,8 +10,6 @@ import androidx.fragment.app.Fragment
...
@@ -10,8 +10,6 @@ import androidx.fragment.app.Fragment
import
androidx.viewpager.widget.ViewPager
import
androidx.viewpager.widget.ViewPager
import
com.alibaba.android.arouter.facade.annotation.Route
import
com.alibaba.android.arouter.facade.annotation.Route
import
com.alibaba.android.arouter.launcher.ARouter
import
com.alibaba.android.arouter.launcher.ARouter
import
com.google.gson.Gson
import
com.google.gson.reflect.TypeToken
import
com.netease.nimlib.sdk.NIMClient
import
com.netease.nimlib.sdk.NIMClient
import
com.netease.nimlib.sdk.msg.MsgService
import
com.netease.nimlib.sdk.msg.MsgService
import
com.netease.nimlib.sdk.msg.constant.SessionTypeEnum
import
com.netease.nimlib.sdk.msg.constant.SessionTypeEnum
...
@@ -22,12 +20,15 @@ import com.yidianling.common.tools.ToastUtil
...
@@ -22,12 +20,15 @@ import com.yidianling.common.tools.ToastUtil
import
com.yidianling.im.R
import
com.yidianling.im.R
import
com.yidianling.im.api.event.ImLogoutEvent
import
com.yidianling.im.api.event.ImLogoutEvent
import
com.yidianling.im.api.event.UpdateBottomBarUnreadNumEvent
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.MessageListRefreshEvent
import
com.yidianling.im.event.ReQureyUnreadNum
import
com.yidianling.im.event.ReQureyUnreadNum
import
com.yidianling.im.event.UpdateTabUnreadNumEvent
import
com.yidianling.im.event.UpdateTabUnreadNumEvent
import
com.yidianling.im.helper.MsgReceiveHelper
import
com.yidianling.im.helper.MsgReceiveHelper
import
com.yidianling.im.http.ImHttpImpl
import
com.yidianling.im.http.ImHttpImpl
import
com.yidianling.im.router.ImIn
import
com.yidianling.im.router.ImIn
import
com.yidianling.im.session.SessionHelper
import
com.yidianling.im.ui.page.dialog.MessageChatSettingDialog
import
com.yidianling.im.ui.page.dialog.MessageChatSettingDialog
import
com.yidianling.im.ui.page.fragment.ChatFragment
import
com.yidianling.im.ui.page.fragment.ChatFragment
import
com.yidianling.im.ui.page.fragment.InteractFragment
import
com.yidianling.im.ui.page.fragment.InteractFragment
...
@@ -37,18 +38,11 @@ import com.yidianling.im.ui.page.fragment.bean.UnreadMessageBean
...
@@ -37,18 +38,11 @@ import com.yidianling.im.ui.page.fragment.bean.UnreadMessageBean
import
com.yidianling.im.ui.page.popupWindow.ChatSettingPopupWindow
import
com.yidianling.im.ui.page.popupWindow.ChatSettingPopupWindow
import
com.yidianling.im.ui.param.ClearMessageParam
import
com.yidianling.im.ui.param.ClearMessageParam
import
com.yidianling.im.ui.param.UnreadParam
import
com.yidianling.im.ui.param.UnreadParam
import
com.yidianling.uikit.business.session.view.CollectInfoPopupWindow
import
com.yidianling.uikit.business.session.view.CollectInfoPopupWindow.OnSendMsgListener
import
com.yidianling.uikit.custom.http.response.UserQuestInfoBean
import
com.yidianling.uikit.custom.http.response.question.QuestionsInfoBean
import
de.greenrobot.event.EventBus
import
de.greenrobot.event.EventBus
import
io.reactivex.Observable
import
io.reactivex.Observable
import
io.reactivex.android.schedulers.AndroidSchedulers
import
io.reactivex.android.schedulers.AndroidSchedulers
import
io.reactivex.schedulers.Schedulers
import
io.reactivex.schedulers.Schedulers
import
kotlinx.android.synthetic.main.im_new_multi_message_fragment.*
import
kotlinx.android.synthetic.main.im_new_multi_message_fragment.*
import
java.io.BufferedInputStream
import
java.io.IOException
import
java.io.InputStream
import
java.util.concurrent.TimeUnit
import
java.util.concurrent.TimeUnit
/**
/**
...
@@ -329,76 +323,15 @@ class NewMultiMessageFragment : BaseFragment() {
...
@@ -329,76 +323,15 @@ class NewMultiMessageFragment : BaseFragment() {
*/
*/
private
fun
initKefu
()
{
private
fun
initKefu
()
{
ll_kefu
.
setOnClickListener
{
ll_kefu
.
setOnClickListener
{
// if (ImIn.isLogin()) {
if
(
ImIn
.
isLogin
())
{
// SessionHelper.startP2PSession(context, -1, ImConstants.KEFUXIAOYI, null,
SessionHelper
.
startP2PSession
(
context
,
-
1
,
ImConstants
.
KEFUXIAOYI
,
null
,
// P2PCustomActionHandlerImpl(ImConstants.KEFUXIAOYI, "客服小壹", ImConstants.KEFUXIAOYI))
P2PCustomActionHandlerImpl
(
ImConstants
.
KEFUXIAOYI
,
"客服小壹"
,
ImConstants
.
KEFUXIAOYI
)
// } else {
)
// ToastUtil.toastShort("请登录后再试")
}
else
{
// }
ToastUtil
.
toastShort
(
"请登录后再试"
)
// TODO: 6/23/21 测试入口
var
collectInfoPopupWindow
=
activity
?.
let
{
it1
->
CollectInfoPopupWindow
(
it1
,
object
:
OnSendMsgListener
{
override
fun
sendMsg
(
content
:
String
,
result
:
List
<
QuestionsInfoBean
>)
{
}
override
fun
finishPage
()
{
activity
!!
.
finish
()
}
})
}
var
cacheQuestion
=
String
(
activity
?.
let
{
it1
->
getAssertsFile
(
it1
,
"question.json"
)
}
!!
)
if
(
cacheQuestion
!=
null
)
{
var
question
=
Gson
().
fromJson
(
cacheQuestion
,
QuestionsInfoBean
::
class
.
java
)
collectInfoPopupWindow
!!
.
show
(
ll_kefu
)
collectInfoPopupWindow
!!
.
setData
(
question
)
}
}
}
fun
getAssertsFile
(
context
:
Context
,
fileName
:
String
):
ByteArray
?
{
var
inputStream
:
InputStream
?
=
null
val
assetManager
=
context
.
assets
try
{
inputStream
=
assetManager
.
open
(
fileName
)
if
(
inputStream
==
null
)
{
return
null
}
var
bis
:
BufferedInputStream
?
=
null
val
length
:
Int
try
{
bis
=
BufferedInputStream
(
inputStream
)
length
=
bis
.
available
()
val
data
=
ByteArray
(
length
)
bis
.
read
(
data
)
return
data
}
catch
(
e
:
IOException
)
{
}
finally
{
if
(
bis
!=
null
)
{
try
{
bis
.
close
()
}
catch
(
e
:
Exception
)
{
}
}
}
}
return
null
}
catch
(
e
:
IOException
)
{
e
.
printStackTrace
()
}
}
return
null
}
}
/**
/**
* 设置页面背景色
* 设置页面背景色
*/
*/
...
...
m-im/src/main/java/com/yidianling/uikit/business/session/fragment/YDLMessageFragment.java
View file @
af53ee64
...
@@ -26,7 +26,6 @@ import androidx.appcompat.app.AppCompatActivity;
...
@@ -26,7 +26,6 @@ import androidx.appcompat.app.AppCompatActivity;
import
androidx.constraintlayout.widget.ConstraintLayout
;
import
androidx.constraintlayout.widget.ConstraintLayout
;
import
androidx.recyclerview.widget.RecyclerView
;
import
androidx.recyclerview.widget.RecyclerView
;
import
com.alibaba.fastjson.JSON
;
import
com.netease.nimlib.sdk.NIMClient
;
import
com.netease.nimlib.sdk.NIMClient
;
import
com.netease.nimlib.sdk.Observer
;
import
com.netease.nimlib.sdk.Observer
;
import
com.netease.nimlib.sdk.RequestCallback
;
import
com.netease.nimlib.sdk.RequestCallback
;
...
@@ -77,7 +76,6 @@ import com.yidianling.uikit.business.session.helper.ChatStatusCacheHelper;
...
@@ -77,7 +76,6 @@ import com.yidianling.uikit.business.session.helper.ChatStatusCacheHelper;
import
com.yidianling.uikit.business.session.module.input.InputPanel
;
import
com.yidianling.uikit.business.session.module.input.InputPanel
;
import
com.yidianling.uikit.business.session.module.list.MessageListPanelEx
;
import
com.yidianling.uikit.business.session.module.list.MessageListPanelEx
;
import
com.yidianling.uikit.business.session.view.ChatPrivateTips
;
import
com.yidianling.uikit.business.session.view.ChatPrivateTips
;
import
com.yidianling.uikit.business.session.view.CollectInfoPopupWindow
;
import
com.yidianling.uikit.business.session.view.CommonQuestionView
;
import
com.yidianling.uikit.business.session.view.CommonQuestionView
;
import
com.yidianling.uikit.business.session.view.ImCommentBannerView
;
import
com.yidianling.uikit.business.session.view.ImCommentBannerView
;
import
com.yidianling.uikit.business.session.view.ImRedStarGradeView
;
import
com.yidianling.uikit.business.session.view.ImRedStarGradeView
;
...
@@ -86,9 +84,7 @@ import com.yidianling.uikit.custom.bridge.IP2PCustomActionHandler;
...
@@ -86,9 +84,7 @@ import com.yidianling.uikit.custom.bridge.IP2PCustomActionHandler;
import
com.yidianling.uikit.custom.http.ServiceImpl
;
import
com.yidianling.uikit.custom.http.ServiceImpl
;
import
com.yidianling.uikit.custom.http.response.CommonQuestionBean
;
import
com.yidianling.uikit.custom.http.response.CommonQuestionBean
;
import
com.yidianling.uikit.custom.http.response.NewUserMesBean
;
import
com.yidianling.uikit.custom.http.response.NewUserMesBean
;
import
com.yidianling.uikit.custom.http.response.SubmitUserInfoBean
;
import
com.yidianling.uikit.custom.http.response.UserQuestInfoBean
;
import
com.yidianling.uikit.custom.http.response.UserQuestInfoBean
;
import
com.yidianling.uikit.custom.http.response.question.QuestionsInfoBean
;
import
com.yidianling.uikit.custom.widget.ConfideOrderInfoView
;
import
com.yidianling.uikit.custom.widget.ConfideOrderInfoView
;
import
com.yidianling.uikit.custom.widget.ExpertInfoDialog
;
import
com.yidianling.uikit.custom.widget.ExpertInfoDialog
;
import
com.yidianling.uikit.custom.widget.TitleBarBottom
;
import
com.yidianling.uikit.custom.widget.TitleBarBottom
;
...
@@ -154,7 +150,6 @@ public class YDLMessageFragment extends TFragment implements ModuleProxy {
...
@@ -154,7 +150,6 @@ public class YDLMessageFragment extends TFragment implements ModuleProxy {
private
int
timeCount
=
0
;
private
int
timeCount
=
0
;
protected
AitManager
aitManager
;
protected
AitManager
aitManager
;
private
CollectInfoPopupWindow
collectInfoPopupWindow
;
private
CircleImageView
small_head_img
;
//小头像
private
CircleImageView
small_head_img
;
//小头像
private
TextView
help_num_tv
;
//帮助人数
private
TextView
help_num_tv
;
//帮助人数
...
@@ -290,6 +285,7 @@ public class YDLMessageFragment extends TFragment implements ModuleProxy {
...
@@ -290,6 +285,7 @@ public class YDLMessageFragment extends TFragment implements ModuleProxy {
private
void
initView
()
{
private
void
initView
()
{
if
(
ActionHandlerStorage
.
getL
(
sessionId
)
!=
null
&&
ActionHandlerStorage
.
getL
(
sessionId
).
getUserType
()
==
3
)
{
if
(
ActionHandlerStorage
.
getL
(
sessionId
)
!=
null
&&
ActionHandlerStorage
.
getL
(
sessionId
).
getUserType
()
==
3
)
{
//助理
rl_common_question_enter
.
setOnClickListener
(
v
->
{
rl_common_question_enter
.
setOnClickListener
(
v
->
{
if
(
commonQuestionBeanList
!=
null
&&
commonQuestionBeanList
.
size
()
>
0
)
{
if
(
commonQuestionBeanList
!=
null
&&
commonQuestionBeanList
.
size
()
>
0
)
{
openOrCloseCommonQuestionLayout
(
true
);
openOrCloseCommonQuestionLayout
(
true
);
...
@@ -304,54 +300,18 @@ public class YDLMessageFragment extends TFragment implements ModuleProxy {
...
@@ -304,54 +300,18 @@ public class YDLMessageFragment extends TFragment implements ModuleProxy {
try
{
try
{
YdlBuryPointUtil
.
sendPv
(
"common_question_pager"
);
YdlBuryPointUtil
.
sendPv
(
"common_question_pager"
);
}
catch
(
Exception
e
)
{
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
}
}
getCommonQuestionListData
();
getCommonQuestionListData
();
}
}
ChatStatusCacheHelper
.
clearDataByKey
(
"chatEvent"
);
ChatStatusCacheHelper
.
clearDataByKey
(
"chatEvent"
);
}
}
if
(
ChatStatusCacheHelper
.
getStatusCache
(
"collectEvent"
))
{
String
time
=
Calendar
.
getInstance
().
get
(
Calendar
.
YEAR
)
+
"-"
+
Calendar
.
getInstance
().
get
(
Calendar
.
MONTH
)
+
Calendar
.
getInstance
().
get
(
Calendar
.
DAY_OF_MONTH
);
// if (!TextUtils.equals(time, SharedPreferencesEditor.getString("skip_time_" + ImIn.INSTANCE.getUserInfo().getUid()))) {
collectInfoPopupWindow
=
new
CollectInfoPopupWindow
(
getActivity
(),
new
CollectInfoPopupWindow
.
OnSendMsgListener
()
{
@Override
public
void
sendMsg
(
@NotNull
String
content
,
@NotNull
List
<?
extends
QuestionsInfoBean
>
result
)
{
if
(
TextUtils
.
isEmpty
(
content
))
{
//点击跳过后当天不再显示此弹窗
SharedPreferencesEditor
.
putString
(
"skip_time_"
+
ImIn
.
INSTANCE
.
getUserInfo
().
getUid
()
,
time
);
}
else
{
IMMessage
textMessage
=
MessageBuilder
.
createTextMessage
(
sessionId
,
sessionType
,
content
);
if
(
sendMessage
(
textMessage
))
{
openOrCloseCommonQuestionLayout
(
false
);
}
// submitUserCollect(result);
}
}
@Override
public
void
finishPage
()
{
getActivity
().
finish
();
}
});
getUserInfoCollect
();
if
(!
getActivity
().
isFinishing
())
{
try
{
YdlBuryPointUtil
.
sendPv
(
"user_collect_pager"
);
}
catch
(
Exception
e
)
{
}
collectInfoPopupWindow
.
show
(
top_expert_info_cl
);
}
// }
ChatStatusCacheHelper
.
clearDataByKey
(
"collectEvent"
);
}
}
}
//有未完成订单或者有未评价订单时,显示订单布局
//有未完成订单或者有未评价订单时,显示订单布局
if
(
ActionHandlerStorage
.
getL
(
sessionId
)
!=
null
&&
ActionHandlerStorage
.
getL
(
sessionId
).
getInfo
()
!=
null
)
{
if
(
ActionHandlerStorage
.
getL
(
sessionId
)
!=
null
&&
ActionHandlerStorage
.
getL
(
sessionId
).
getInfo
()
!=
null
)
{
if
(
ActionHandlerStorage
.
getL
(
sessionId
).
getInfo
().
hasAvailableListenOrder
==
2
||
ActionHandlerStorage
.
getL
(
sessionId
).
getInfo
().
listenOrderCommentStatus
==
1
)
{
if
(
ActionHandlerStorage
.
getL
(
sessionId
).
getInfo
().
hasAvailableListenOrder
==
2
||
ActionHandlerStorage
.
getL
(
sessionId
).
getInfo
().
listenOrderCommentStatus
==
1
)
{
//2专家 1用户
ConfideOrderInfoView
confideOrderInfoView
=
new
ConfideOrderInfoView
(
getContext
(),
sessionId
);
ConfideOrderInfoView
confideOrderInfoView
=
new
ConfideOrderInfoView
(
getContext
(),
sessionId
);
confideOrderInfoView
.
setData
(
ActionHandlerStorage
.
getL
(
sessionId
).
getInfo
());
confideOrderInfoView
.
setData
(
ActionHandlerStorage
.
getL
(
sessionId
).
getInfo
());
rl_contain
.
addView
(
confideOrderInfoView
);
rl_contain
.
addView
(
confideOrderInfoView
);
...
@@ -1405,46 +1365,6 @@ public class YDLMessageFragment extends TFragment implements ModuleProxy {
...
@@ -1405,46 +1365,6 @@ public class YDLMessageFragment extends TFragment implements ModuleProxy {
});
});
}
}
@SuppressLint
(
"CheckResult"
)
private
void
getUserInfoCollect
()
{
ServiceImpl
.
Companion
.
getInstance
().
preExamQuestionPaper
()
.
subscribeOn
(
Schedulers
.
io
())
.
observeOn
(
AndroidSchedulers
.
mainThread
())
.
subscribe
(
resp
->
{
if
(
resp
.
data
!=
null
)
{
ServiceImpl
.
Companion
.
getInstance
().
getNewUserMes
(
new
NewUserMesBean
(
""
))
.
subscribeOn
(
Schedulers
.
io
())
.
observeOn
(
AndroidSchedulers
.
mainThread
())
.
subscribe
(
hasCollectedInResp
->
{
if
(
hasCollectedInResp
.
data
!=
null
&&
hasCollectedInResp
.
data
.
size
()
>
0
)
{
collectInfoPopupWindow
.
setData
(
resp
.
data
);
}
else
{
collectInfoPopupWindow
.
setData
(
resp
.
data
);
}
},
throwable
->
{
collectInfoPopupWindow
.
setData
(
resp
.
data
);
});
}
else
{
collectInfoPopupWindow
.
dismiss
();
}
},
throwable
->
{
collectInfoPopupWindow
.
dismiss
();
});
}
@SuppressLint
(
"CheckResult"
)
private
void
submitUserCollect
(
List
<
UserQuestInfoBean
>
result
)
{
SubmitUserInfoBean
submitUserInfoBean
=
new
SubmitUserInfoBean
();
submitUserInfoBean
.
userInfoList
=
result
;
ServiceImpl
.
Companion
.
getInstance
().
submitUserCollect
(
JSON
.
toJSONString
(
submitUserInfoBean
))
.
subscribeOn
(
Schedulers
.
io
())
.
observeOn
(
AndroidSchedulers
.
mainThread
())
.
subscribe
(
resp
->
{
},
throwable
->
{
});
}
private
void
showCheckAgeDialog
()
{
private
void
showCheckAgeDialog
()
{
CommonDialog
.
create
(
getActivity
())
CommonDialog
.
create
(
getActivity
())
.
setLeftOnclick
(
"返回"
,
v
->
{
.
setLeftOnclick
(
"返回"
,
v
->
{
...
...
m-im/src/main/java/com/yidianling/uikit/business/session/view/CollectInfoPopupWindow.kt
deleted
100644 → 0
View file @
f451ce8d
package
com.yidianling.uikit.business.session.view
import
android.app.Activity
import
android.content.Context
import
android.graphics.drawable.BitmapDrawable
import
android.os.Build
import
android.view.Gravity
import
android.view.KeyEvent
import
android.view.View
import
android.view.ViewGroup
import
android.widget.PopupWindow
import
androidx.annotation.RequiresApi
import
com.yidianling.common.tools.ToastUtil
import
com.yidianling.uikit.custom.http.response.question.QuestionsInfoBean
/**
* @author jiucheng
* @描述: 前置信息收集
* @Copyright Copyright (c) 2018
* @Company 壹点灵
* @date 2019/12/10
*/
class
CollectInfoPopupWindow
(
var
mContext
:
Activity
,
var
listener
:
OnSendMsgListener
)
:
PopupWindow
(
mContext
)
{
private
var
collectUserInformationView
:
QuestionInformationView
private
var
isFromBack
=
true
init
{
height
=
ViewGroup
.
LayoutParams
.
MATCH_PARENT
width
=
ViewGroup
.
LayoutParams
.
MATCH_PARENT
setBackgroundDrawable
(
BitmapDrawable
())
collectUserInformationView
=
QuestionInformationView
(
mContext
,
{
listener
.
sendMsg
(
""
,
ArrayList
())
isFromBack
=
false
dismiss
()
},
{
dismiss
()
listener
.
finishPage
()
},
{
_content
,
_list
->
listener
.
sendMsg
(
_content
,
_list
)
isFromBack
=
false
dismiss
()
})
collectUserInformationView
.
isFocusableInTouchMode
=
true
collectUserInformationView
.
setOnKeyListener
{
v
,
keyCode
,
event
->
if
(
keyCode
==
KeyEvent
.
KEYCODE_BACK
)
{
showSkipDialog
()
true
}
false
}
contentView
=
collectUserInformationView
isFocusable
=
true
isTouchable
=
true
isOutsideTouchable
=
false
}
fun
setData
(
questionInfo
:
QuestionsInfoBean
)
{
collectUserInformationView
.
setData
(
questionInfo
)
}
override
fun
dismiss
()
{
if
(
isFromBack
)
{
showSkipDialog
()
isFromBack
=
false
}
else
{
super
.
dismiss
()
}
}
private
fun
showSkipDialog
()
{
collectUserInformationView
.
showSkipDialog
()
}
fun
show
(
v
:
View
)
{
v
.
post
{
showAtLocation
(
v
,
Gravity
.
BOTTOM
,
0
,
0
)
}
}
interface
OnSendMsgListener
{
fun
sendMsg
(
content
:
String
,
result
:
List
<
QuestionsInfoBean
>)
fun
finishPage
()
}
}
\ No newline at end of file
m-im/src/main/java/com/yidianling/uikit/custom/http/ServiceImpl.kt
View file @
af53ee64
...
@@ -147,7 +147,7 @@ class ServiceImpl private constructor() {
...
@@ -147,7 +147,7 @@ class ServiceImpl private constructor() {
}
}
/**
/**
*
创建答题信息
*
回答问题
*/
*/
fun
answerQuestion
(
id
:
String
,
params
:
String
):
Observable
<
BaseAPIResponse
<
String
>>
{
fun
answerQuestion
(
id
:
String
,
params
:
String
):
Observable
<
BaseAPIResponse
<
String
>>
{
val
body
=
RequestBody
.
create
(
val
body
=
RequestBody
.
create
(
...
...
m-im/src/main/java/com/yidianling/uikit/custom/http/response/question/AnswerQuestionRequestBean.java
View file @
af53ee64
package
com
.
yidianling
.
uikit
.
custom
.
http
.
response
.
question
;
package
com
.
yidianling
.
uikit
.
custom
.
http
.
response
.
question
;
import
com.yidianling.uikit.custom.http.response.question.RelatesBean
;
import
java.util.List
;
import
java.util.List
;
...
...
m-im/src/main/java/com/yidianling/uikit/custom/http/response/question/AnswerQuestionType70RequestBean.java
0 → 100644
View file @
af53ee64
package
com
.
yidianling
.
uikit
.
custom
.
http
.
response
.
question
;
/**
* @author liupeng
* <p>
* 测试前置-回答消息(区分其他类型与主诉类型)
* 用户APP -》灵犀
* type 70
* <p>
* 地址 https://note.youdao.com/ynoteshare1/index.html?id=ac018cb5b65b7d5fc5e961410b14621a&type=note
*/
public
class
AnswerQuestionType70RequestBean
{
public
String
type
=
"70"
;
public
AnswerQuestionRequestBean
data
;
}
m-im/src/main/java/com/yidianling/uikit/custom/http/response/question/QuestionsInfoBean.java
View file @
af53ee64
...
@@ -2,6 +2,11 @@ package com.yidianling.uikit.custom.http.response.question;
...
@@ -2,6 +2,11 @@ package com.yidianling.uikit.custom.http.response.question;
import
java.util.List
;
import
java.util.List
;
/**
* 题库信息
*
* @author liupeng
*/
public
class
QuestionsInfoBean
{
public
class
QuestionsInfoBean
{
...
...
m-im/src/main/res_uikit/layout/im_view_question_infomation.xml
View file @
af53ee64
<?xml version="1.0" encoding="utf-8"?>
<?xml version="1.0" encoding="utf-8"?>
<
merge
xmlns:android=
"http://schemas.android.com/apk/res/android"
<
LinearLayout
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=
"match_parent"
android:layout_height=
"match_parent"
android:orientation=
"vertical"
android:orientation=
"vertical"
>
tools:parentTag=
"android.widget.LinearLayout"
>
<RelativeLayout
<RelativeLayout
...
@@ -44,10 +43,9 @@
...
@@ -44,10 +43,9 @@
android:text=
"跳过"
android:text=
"跳过"
android:textColor=
"@color/im_color_grey_999999"
android:textColor=
"@color/im_color_grey_999999"
android:textSize=
"14sp"
/>
android:textSize=
"14sp"
/>
</RelativeLayout>
</RelativeLayout>
<androidx.constraintlayout.widget.ConstraintLayout
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width=
"match_parent"
android:layout_width=
"match_parent"
android:layout_height=
"match_parent"
android:layout_height=
"match_parent"
...
@@ -58,9 +56,9 @@
...
@@ -58,9 +56,9 @@
android:layout_width=
"match_parent"
android:layout_width=
"match_parent"
android:layout_height=
"0dp"
android:layout_height=
"0dp"
android:background=
"@color/color_f8f8f8"
android:background=
"@color/color_f8f8f8"
android:paddingBottom=
"12dp"
app:layout_constraintBottom_toTopOf=
"@id/cl_input"
app:layout_constraintBottom_toTopOf=
"@id/cl_input"
app:layout_constraintTop_toTopOf=
"parent"
app:layout_constraintTop_toTopOf=
"parent"
android:paddingBottom=
"12dp"
app:layout_constraintVertical_weight=
"1"
/>
app:layout_constraintVertical_weight=
"1"
/>
<androidx.constraintlayout.widget.ConstraintLayout
<androidx.constraintlayout.widget.ConstraintLayout
...
@@ -69,31 +67,31 @@
...
@@ -69,31 +67,31 @@
android:layout_height=
"wrap_content"
android:layout_height=
"wrap_content"
android:orientation=
"vertical"
android:orientation=
"vertical"
android:visibility=
"gone"
android:visibility=
"gone"
tools:visibility=
"visible
"
app:layout_constraintBottom_toBottomOf=
"parent
"
app:layout_constraintBottom_toBottomOf=
"parent
"
>
tools:visibility=
"visible
"
>
<TextView
<TextView
android:id=
"@+id/tv_problem"
android:id=
"@+id/tv_problem"
android:layout_width=
"match_parent"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:layout_height=
"wrap_content"
android:background=
"@color/color_f8f8f8"
android:paddingStart=
"12dp"
android:paddingStart=
"12dp"
android:paddingBottom=
"13dp"
android:paddingBottom=
"13dp"
android:textColor=
"@color/color_242424"
android:textColor=
"@color/color_242424"
android:textSize=
"14sp"
android:textSize=
"14sp"
android:visibility=
"gone"
android:visibility=
"gone"
android:background=
"@color/color_f8f8f8"
app:layout_constraintStart_toStartOf=
"parent"
app:layout_constraintStart_toStartOf=
"parent"
app:layout_constraintTop_toTopOf=
"parent"
app:layout_constraintTop_toTopOf=
"parent"
tools:
visibility=
"visible
"
tools:
text=
"已选:
"
tools:
text=
"已选:
"
/>
tools:
visibility=
"visible
"
/>
<EditText
<EditText
android:id=
"@+id/et_input_problem"
android:id=
"@+id/et_input_problem"
android:layout_width=
"match_parent"
android:layout_width=
"match_parent"
android:layout_height=
"wrap_content"
android:layout_height=
"wrap_content"
android:background=
"@color/white"
android:gravity=
"top"
android:gravity=
"top"
android:hint=
"请简单描述遇到的问题......"
android:hint=
"请简单描述遇到的问题......"
android:background=
"@color/white"
android:maxHeight=
"200dp"
android:maxHeight=
"200dp"
android:padding=
"12dp"
android:padding=
"12dp"
android:textColor=
"@color/color_242424"
android:textColor=
"@color/color_242424"
...
@@ -199,12 +197,11 @@
...
@@ -199,12 +197,11 @@
android:text=
"去沟通"
android:text=
"去沟通"
android:textColor=
"@color/white"
android:textColor=
"@color/white"
android:textSize=
"16sp"
android:textSize=
"16sp"
app:layout_constraintBottom_toBottomOf=
"parent"
android:visibility=
"gone"
android:visibility=
"gone"
tools:visibility=
"gone
"
app:layout_constraintBottom_toBottomOf=
"parent
"
/>
tools:visibility=
"gone"
/>
</androidx.constraintlayout.widget.ConstraintLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
</merge>
</LinearLayout>
\ No newline at end of file
\ No newline at end of file
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment