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
78b46c65
Commit
78b46c65
authored
Jul 08, 2021
by
刘鹏
Browse files
Options
Browse Files
Download
Plain Diff
Merge remote-tracking branch 'origin/4.2.60' into 4.2.60
# Conflicts: # config.gradle
parents
36b12cf9
73d2635b
Hide whitespace changes
Inline
Side-by-side
Showing
11 changed files
with
238 additions
and
219 deletions
+238
-219
config.gradle
config.gradle
+2
-2
CustomAttachLingxiAnswerQuestion.java
m-im/src/main/java/com/yidianling/im/session/extension/CustomAttachLingxiAnswerQuestion.java
+4
-0
MsgViewHolderLingxiAnswerQuestion.java
m-im/src/main/java/com/yidianling/im/session/viewholder/MsgViewHolderLingxiAnswerQuestion.java
+23
-4
MsgViewHolderLingxiWhichQuestion.java
m-im/src/main/java/com/yidianling/im/session/viewholder/MsgViewHolderLingxiWhichQuestion.java
+184
-147
YDLMessageFragment.java
m-im/src/main/java/com/yidianling/uikit/business/session/fragment/YDLMessageFragment.java
+2
-5
MessageListPanelEx.java
m-im/src/main/java/com/yidianling/uikit/business/session/module/list/MessageListPanelEx.java
+2
-2
MsgViewHolderBase.java
m-im/src/main/java/com/yidianling/uikit/business/session/viewholder/MsgViewHolderBase.java
+5
-5
MsgViewHolderText.java
m-im/src/main/java/com/yidianling/uikit/business/session/viewholder/MsgViewHolderText.java
+2
-0
im_nim_lingxi_multiple_choice.xml
m-im/src/main/res/layout/im_nim_lingxi_multiple_choice.xml
+2
-0
im_nim_lingxi_which_question.xml
m-im/src/main/res/layout/im_nim_lingxi_which_question.xml
+0
-41
im_nim_read_recipt_layout.xml
m-im/src/main/res_uikit/layout/im_nim_read_recipt_layout.xml
+12
-13
No files found.
config.gradle
View file @
78b46c65
...
...
@@ -10,7 +10,7 @@ ext {
"m-fm"
:
"0.0.30.03"
,
"m-user"
:
"0.0.61.37"
,
"m-home"
:
"0.0.22.67"
,
"m-im"
:
"0.0.19.3
7
"
,
"m-im"
:
"0.0.19.3
9
"
,
"m-dynamic"
:
"0.0.7.24"
,
"m-article"
:
"0.0.0.10"
,
...
...
@@ -93,7 +93,7 @@ ext {
"m-fm"
:
"0.0.30.01"
,
"m-user"
:
"0.0.61.37"
,
"m-home"
:
"0.0.22.67"
,
"m-im"
:
"0.0.19.3
6
"
,
"m-im"
:
"0.0.19.3
9
"
,
"m-dynamic"
:
"0.0.7.24"
,
"m-article"
:
"0.0.0.8"
,
...
...
m-im/src/main/java/com/yidianling/im/session/extension/CustomAttachLingxiAnswerQuestion.java
View file @
78b46c65
...
...
@@ -9,10 +9,12 @@ import java.util.ArrayList;
public
class
CustomAttachLingxiAnswerQuestion
extends
CustomAttachment
{
private
final
String
ANSWERS
=
"answers"
;
private
final
String
QUESTIONID
=
"questionId"
;
private
final
String
EXAMID
=
"examId"
;
public
ArrayList
<
QuestionItemBean
>
answers
;
public
String
questionId
;
public
String
examId
;
public
CustomAttachLingxiAnswerQuestion
()
{
super
(
CustomAttachmentType
.
TYPE_LINGXI_ANSWER_QUESTION
);
...
...
@@ -21,6 +23,7 @@ public class CustomAttachLingxiAnswerQuestion extends CustomAttachment{
protected
void
parseData
(
JSONObject
data
)
{
this
.
answers
=(
ArrayList
<
QuestionItemBean
>)
JSON
.
parseArray
(
data
.
getString
(
ANSWERS
),
QuestionItemBean
.
class
);
this
.
questionId
=
data
.
getString
(
QUESTIONID
);
this
.
examId
=
data
.
getString
(
EXAMID
);
}
@Override
...
...
@@ -28,6 +31,7 @@ public class CustomAttachLingxiAnswerQuestion extends CustomAttachment{
JSONObject
data
=
new
JSONObject
();
data
.
put
(
ANSWERS
,
answers
);
data
.
put
(
QUESTIONID
,
questionId
);
data
.
put
(
EXAMID
,
examId
);
return
data
;
}
}
m-im/src/main/java/com/yidianling/im/session/viewholder/MsgViewHolderLingxiAnswerQuestion.java
View file @
78b46c65
package
com
.
yidianling
.
im
.
session
.
viewholder
;
import
android.view.View
;
import
android.widget.TextView
;
import
com.yidianling.im.R
;
...
...
@@ -16,6 +17,7 @@ public class MsgViewHolderLingxiAnswerQuestion extends MsgViewHolderBase {
CustomAttachLingxiAnswerQuestion
customattachLingxiAnswerQuestion
;
private
ArrayList
<
QuestionItemBean
>
itemBeans
;
private
StringBuffer
sb
;
private
boolean
isContainsOther
=
false
;
public
MsgViewHolderLingxiAnswerQuestion
(
BaseMultiItemFetchLoadAdapter
adapter
)
{
super
(
adapter
);
}
...
...
@@ -39,21 +41,38 @@ public class MsgViewHolderLingxiAnswerQuestion extends MsgViewHolderBase {
@Override
protected
void
bindContentView
()
{
avatarLeft
.
setVisibility
(
View
.
INVISIBLE
);
customattachLingxiAnswerQuestion
=
((
CustomAttachLingxiAnswerQuestion
)
message
.
getAttachment
());
itemBeans
=
customattachLingxiAnswerQuestion
.
answers
;
sb
=
new
StringBuffer
();
for
(
int
j
=
0
;
j
<
itemBeans
.
size
();
j
++){
if
(
itemBeans
.
get
(
j
).
getOther
().
trim
().
length
()>
0
){
isContainsOther
=
true
;
break
;
}
}
for
(
int
i
=
0
;
i
<
itemBeans
.
size
();
i
++){
if
(
i
==(
itemBeans
.
size
()-
1
)&&
itemBeans
.
get
(
i
).
getName
().
contains
(
"其他"
)){
sb
.
append
(
"#"
+
itemBeans
.
get
(
i
).
getName
()+
"\r\n "
).
append
(
itemBeans
.
get
(
i
).
getOther
());
if
(
itemBeans
.
get
(
i
).
getOther
().
trim
().
length
()>
0
){
//如果其他有内容就换行
sb
.
append
(
"#"
+
itemBeans
.
get
(
i
).
getName
()+
"\r\n "
).
append
(
itemBeans
.
get
(
i
).
getOther
());
}
else
{
sb
.
append
(
"、"
+
itemBeans
.
get
(
i
).
getName
());
}
}
else
{
sb
.
append
(
"#"
+
itemBeans
.
get
(
i
).
getName
()+
" "
);
if
(
isContainsOther
){
sb
.
append
(
"#"
+
itemBeans
.
get
(
i
).
getName
()+
" "
);
}
else
{
sb
.
append
(
"、"
+
itemBeans
.
get
(
i
).
getName
()+
" "
);
}
}
}
if
(
itemBeans
.
size
()==
1
&&!
itemBeans
.
get
(
0
).
getName
().
contains
(
"其他"
)){
answer_question
.
setText
(
itemBeans
.
get
(
0
).
getName
());
}
else
{
if
(!
isContainsOther
){
sb
.
replace
(
0
,
1
,
""
);
}
answer_question
.
setText
(
sb
.
toString
());
}
}
...
...
m-im/src/main/java/com/yidianling/im/session/viewholder/MsgViewHolderLingxiWhichQuestion.java
View file @
78b46c65
...
...
@@ -25,7 +25,6 @@ import com.yidianling.im.router.ImIn;
import
com.yidianling.im.session.extension.CustomAttachLingxiAnswerQuestion
;
import
com.yidianling.im.session.extension.CustomAttachLingxiWhichQuestion
;
import
com.yidianling.im.session.viewholder.adapter.AdapterLingxiMultipleChoice
;
import
com.yidianling.im.session.viewholder.adapter.AdapterLingxiWhichQuestion
;
import
com.yidianling.im.session.viewholder.bean.AnswerBean
;
import
com.yidianling.im.session.viewholder.bean.AnswersItem
;
import
com.yidianling.im.session.viewholder.bean.LingxiAnswerBean
;
...
...
@@ -47,7 +46,7 @@ import io.reactivex.schedulers.Schedulers;
import
okhttp3.MediaType
;
import
okhttp3.RequestBody
;
public
class
MsgViewHolderLingxiWhichQuestion
extends
MsgViewHolderBase
implements
AdapterLingxiMultipleChoice
.
OnMultiplelItemClickListener
{
public
class
MsgViewHolderLingxiWhichQuestion
extends
MsgViewHolderBase
implements
AdapterLingxiMultipleChoice
.
OnMultiplelItemClickListener
{
private
RecyclerView
recycleviewMultipleChoice
;
private
TextView
confirm_multiple_choice
;
private
TextView
multiple_choice_title
;
...
...
@@ -59,7 +58,6 @@ public class MsgViewHolderLingxiWhichQuestion extends MsgViewHolderBase implemen
CustomAttachLingxiWhichQuestion
customAttachLingxiWhichQuestion
;
private
StringBuffer
stringBuffer
=
new
StringBuffer
(
"已选:"
);
ArrayList
<
String
>
selectedStr
=
new
ArrayList
<
String
>();
private
Boolean
isClickable
=
true
;
private
Boolean
isOthers
;
//回答试卷接口
private
String
examId
;
...
...
@@ -69,6 +67,8 @@ public class MsgViewHolderLingxiWhichQuestion extends MsgViewHolderBase implemen
private
ArrayList
<
AnswersItem
>
answersItems
=
new
ArrayList
<>();
Map
<
String
,
Object
>
mapMessageFromCustom
;
Map
map1
=
new
HashMap
();
private
ArrayList
<
String
>
multipleAnswers
=
new
ArrayList
<>();
private
ArrayList
<
String
>
answersItemsMap
=
new
ArrayList
<>();
public
MsgViewHolderLingxiWhichQuestion
(
BaseMultiItemFetchLoadAdapter
adapter
)
{
super
(
adapter
);
...
...
@@ -77,26 +77,24 @@ public class MsgViewHolderLingxiWhichQuestion extends MsgViewHolderBase implemen
@Override
protected
int
getContentResId
()
{
customAttachLingxiWhichQuestion
=
((
CustomAttachLingxiWhichQuestion
)
message
.
getAttachment
());
singleOrMultipletype
=
customAttachLingxiWhichQuestion
.
type
;
singleOrMultipletype
=
customAttachLingxiWhichQuestion
.
type
;
if
(
customAttachLingxiWhichQuestion
.
type
!=
null
)
{
return
R
.
layout
.
im_nim_lingxi_multiple_choice
;
}
else
{
return
R
.
layout
.
im_nim_lingxi_
which_question
;
return
R
.
layout
.
im_nim_lingxi_
multiple_choice
;
}
}
@Override
protected
void
inflateContentView
()
{
// recycleviewWhichQuestion = findViewById(R.id.which_question_rv);
recycleviewMultipleChoice
=
findViewById
(
R
.
id
.
multiple_question_rv
);
confirm_multiple_choice
=
findViewById
(
R
.
id
.
confirm_multiple_choice
);
multiple_choice_title
=
findViewById
(
R
.
id
.
multiple_choice_title
);
}
@Override
protected
void
bindContentView
()
{
avatarRight
.
setVisibility
(
View
.
INVISIBLE
);
ImIn
.
INSTANCE
.
setImMessage
(
message
);
customAttachLingxiWhichQuestion
=
((
CustomAttachLingxiWhichQuestion
)
message
.
getAttachment
());
examId
=
customAttachLingxiWhichQuestion
.
examId
;
...
...
@@ -114,11 +112,13 @@ public class MsgViewHolderLingxiWhichQuestion extends MsgViewHolderBase implemen
}
}
if
(
customAttachLingxiWhichQuestion
.
type
!=
null
)
{
singleOrMultipletype
=
customAttachLingxiWhichQuestion
.
type
;
singleOrMultipletype
=
customAttachLingxiWhichQuestion
.
type
;
UpdateFromLocal
();
initMultipleChoice
();
}
//进入消息列表时候,保存当type为56的时候的,将ID作为key保存
NIMClient
.
getService
(
MsgService
.
class
).
queryMessageList
(
message
.
getSessionId
(),
SessionTypeEnum
.
P2P
,
0
,
100
).
setCallback
(
new
RequestCallback
<
List
<
IMMessage
>>()
{
NIMClient
.
getService
(
MsgService
.
class
).
queryMessageList
(
message
.
getSessionId
(),
SessionTypeEnum
.
P2P
,
0
,
100
).
setCallback
(
new
RequestCallback
<
List
<
IMMessage
>>()
{
@Override
public
void
onSuccess
(
List
<
IMMessage
>
param
)
{
if
(
param
!=
null
&&
param
.
size
()
>
0
)
{
...
...
@@ -127,13 +127,9 @@ public class MsgViewHolderLingxiWhichQuestion extends MsgViewHolderBase implemen
MsgAttachment
attachment
=
msg
.
getAttachment
();
if
(
attachment
instanceof
CustomAttachLingxiAnswerQuestion
)
{
CustomAttachLingxiAnswerQuestion
customattachlingxianswerquestion
=
(
CustomAttachLingxiAnswerQuestion
)
attachment
;
map1
.
put
(
customattachlingxianswerquestion
.
questionId
,
true
);
mapMessageFromCustom
=
map1
;
UpdateFromLocalExtention
();
LogUtil
.
e
(
"aaaaaquestionID:"
+
customattachlingxianswerquestion
.
questionId
);
}
else
{
//用户没有回答问题;
map1
.
put
(
customattachlingxianswerquestion
.
questionId
+
customattachlingxianswerquestion
.
examId
,
true
);
mapMessageFromCustom
=
map1
;
UpdateFromLocalExtention
();
}
}
}
...
...
@@ -141,45 +137,86 @@ public class MsgViewHolderLingxiWhichQuestion extends MsgViewHolderBase implemen
@Override
public
void
onFailed
(
int
code
)
{
LogUtil
.
e
(
"获取消息onFailed:"
+
code
);
LogUtil
.
e
(
"获取消息onFailed:"
+
code
);
}
@Override
public
void
onException
(
Throwable
exception
)
{
LogUtil
.
e
(
"获取消息exception:"
+
exception
.
getLocalizedMessage
());
LogUtil
.
e
(
"获取消息exception:"
+
exception
.
getLocalizedMessage
());
}
});
}
private
void
UpdateFromLocal
Extention
()
{
private
void
UpdateFromLocal
()
{
try
{
Map
<
String
,
Object
>
mapMessage
;
if
(
mapMessageFromCustom
!=
null
){
mapMessage
=
mapMessageFromCustom
;
}
else
{
mapMessage
=
message
.
getLocalExtension
();
Map
<
String
,
Object
>
map
=
message
.
getLocalExtension
();
if
(
map
!=
null
)
{
Object
obj
=
map
.
get
(
"isSure"
);
Object
position
=
map
.
get
(
"position"
);
Object
multiple
=
map
.
get
(
"multiple"
);
if
(
obj
!=
null
)
{
boolean
b
=
(
boolean
)
obj
;
Integer
posi
=
(
Integer
)
position
;
if
(
b
)
{
//不可点击
if
(
posi
!=
null
)
{
questionList
.
get
(
posi
).
setSelected
(
true
);
}
}
}
else
{
//可点击
}
if
(
multiple
!=
null
)
{
multipleAnswers
=
(
ArrayList
<
String
>)
multiple
;
for
(
int
i
=
0
;
i
<
questionList
.
size
();
i
++)
{
for
(
int
j
=
0
;
j
<
multipleAnswers
.
size
();
j
++)
{
if
(
questionList
.
get
(
i
).
getName
().
contains
(
multipleAnswers
.
get
(
j
)))
{
questionList
.
get
(
i
).
setSelected
(
true
);
}
}
}
if
(
multipleAnswers
.
size
()
>
0
)
{
confirm_multiple_choice
.
setEnabled
(
true
);
confirm_multiple_choice
.
setBackground
(
context
.
getResources
().
getDrawable
(
R
.
drawable
.
im_background_18dp_1da1f2
));
}
else
{
confirm_multiple_choice
.
setEnabled
(
false
);
confirm_multiple_choice
.
setBackground
(
context
.
getResources
().
getDrawable
(
R
.
drawable
.
im_background_18dp_ebebeb
));
}
}
}
else
{
//可点击
}
}
catch
(
Exception
e
)
{
LogUtil
.
e
(
"aaaaa"
+
e
.
getLocalizedMessage
());
}
}
private
void
UpdateFromLocalExtention
()
{
try
{
Map
<
String
,
Object
>
mapMessage
=
new
HashMap
<>();
if
(
mapMessageFromCustom
!=
null
)
{
mapMessage
=
mapMessageFromCustom
;
}
if
(
mapMessage
!=
null
)
{
Object
questionPaperId
=
mapMessage
.
get
(
customAttachLingxiWhichQuestion
.
id
);
LogUtil
.
e
(
"aaaaaIDIDI:"
+
customAttachLingxiWhichQuestion
.
id
);
Object
questionPaperId
=
mapMessage
.
get
(
customAttachLingxiWhichQuestion
.
id
+
customAttachLingxiWhichQuestion
.
examId
);
if
(
questionPaperId
!=
null
)
{
boolean
b
=
(
boolean
)
questionPaperId
;
if
(
b
)
{
//隐藏回答的信息
recycleviewMultipleChoice
.
setVisibility
(
View
.
GONE
);
confirm_multiple_choice
.
setVisibility
(
View
.
GONE
);
}
else
{
}
else
{
recycleviewMultipleChoice
.
setVisibility
(
View
.
VISIBLE
);
confirm_multiple_choice
.
setVisibility
(
View
.
VISIBLE
);
}
}
else
{
//隐藏回答的信息
if
(
singleOrMultipletype
.
contains
(
"radio"
)){
}
else
{
if
(
singleOrMultipletype
.
contains
(
"radio"
))
{
recycleviewMultipleChoice
.
setVisibility
(
View
.
VISIBLE
);
}
else
{
}
else
{
recycleviewMultipleChoice
.
setVisibility
(
View
.
VISIBLE
);
confirm_multiple_choice
.
setVisibility
(
View
.
VISIBLE
);
}
...
...
@@ -192,16 +229,16 @@ public class MsgViewHolderLingxiWhichQuestion extends MsgViewHolderBase implemen
}
private
void
initMultipleChoice
()
{
if
(
singleOrMultipletype
.
contains
(
"radio"
)){
if
(
singleOrMultipletype
.
contains
(
"radio"
))
{
confirm_multiple_choice
.
setVisibility
(
View
.
GONE
);
}
else
{
}
else
{
confirm_multiple_choice
.
setVisibility
(
View
.
VISIBLE
);
}
confirm_multiple_choice
.
setOnClickListener
(
view
->
{
//请求接口发送所选题目,通过发通知到YDLMessageFragment统一回答问题。
EventBus
.
getDefault
().
post
(
new
MultipleSelectedEvent
(
null
,
null
,
new
MultipleAnswerBean
(
examId
,
questionPaperId
,
ImIn
.
INSTANCE
.
getUserInfo
().
getUid
(),
questionId
,
answersItems
,
message
.
getFromAccount
()),
false
,
false
));
questionId
,
answersItems
,
message
.
getFromAccount
()),
false
,
false
));
});
multiple_choice_title
.
setText
(
customAttachLingxiWhichQuestion
.
name
);
adapterLingxiMultipleChoice
=
new
AdapterLingxiMultipleChoice
();
...
...
@@ -216,7 +253,6 @@ public class MsgViewHolderLingxiWhichQuestion extends MsgViewHolderBase implemen
}
/*
* 用户回答问题接口
* */
...
...
@@ -237,125 +273,126 @@ public class MsgViewHolderLingxiWhichQuestion extends MsgViewHolderBase implemen
@Override
public
void
onMultipleItemClick
(
@NotNull
QuestionItemBean
string
,
int
position
)
{
if
(
singleOrMultipletype
.
contains
(
"radio"
)){
/*
* 单选题:分其他选项和非其他选项
* 其他选项,唤起输入框
* 点击非其他选项直接发送答案
* */
for
(
int
i
=
0
;
i
<
questionList
.
size
();
i
++)
{
if
(
questionList
.
get
(
i
).
isSelected
())
{
if
(
i
==
position
)
{
if
(
questionList
.
get
(
i
).
getName
().
contains
(
"其他"
)){
isClickable
=
true
;
questionList
.
get
(
i
).
setSelected
(
false
);
selectedStr
.
remove
(
questionList
.
get
(
i
).
getName
());
}
}
}
else
{
if
(
i
==
position
)
{
questionList
.
get
(
i
).
setSelected
(
true
);
selectedStr
.
add
(
questionList
.
get
(
i
).
getName
());
}
else
{
questionList
.
get
(
i
).
setSelected
(
false
);
if
(
questionList
.
get
(
i
).
getName
().
contains
(
"其他"
)){
selectedStr
.
remove
(
questionList
.
get
(
i
).
getName
());
}
}
}
questionList
.
get
(
i
).
setSelected
(
i
==
position
);
}
adapterLingxiMultipleChoice
.
setTagData
(
questionList
);
for
(
int
i
=
0
;
i
<
questionList
.
size
();
i
++)
{
if
(
questionList
.
get
(
i
).
isSelected
()){
answersItems
.
clear
();
answersItems
.
add
(
new
AnswersItem
(
questionList
.
get
(
position
).
getId
(),
questionList
.
get
(
position
).
getName
(),
""
,
questionList
.
get
(
position
).
getRelates
()));
break
;
}
}
stringBuffer
.
delete
(
2
,
stringBuffer
.
length
());
for
(
int
i
=
0
;
i
<
selectedStr
.
size
();
i
++)
{
stringBuffer
.
append
(
"#"
).
append
(
selectedStr
.
get
(
i
));
}
isOthers
=
questionList
.
get
(
position
).
getName
().
contains
(
"其他"
);
if
(!
isOthers
){
isClickable
=
false
;
//请求接口发送所选题目
answerLingxiQuestion
(
examId
,
questionPaperId
,
ImIn
.
INSTANCE
.
getUserInfo
().
getUid
().
toString
(),
questionId
,
answersItems
);
//更新本地消息
updateLocalMsg
(
position
,
null
);
//发通知取消隐藏输入框表情等符号
EventBus
.
getDefault
().
post
(
new
MultipleSelectedEvent
(
stringBuffer
.
toString
(),
new
OthersState
(
isOthers
,
questionList
.
get
(
position
).
isSelected
()),
new
MultipleAnswerBean
(
examId
,
questionPaperId
,
ImIn
.
INSTANCE
.
getUserInfo
().
getUid
(),
questionId
,
answersItems
,
message
.
getFromAccount
()),
false
,
true
));
}
else
{
EventBus
.
getDefault
().
post
(
new
MultipleSelectedEvent
(
stringBuffer
.
toString
(),
new
OthersState
(
isOthers
,
questionList
.
get
(
position
).
isSelected
()),
new
MultipleAnswerBean
(
examId
,
questionPaperId
,
ImIn
.
INSTANCE
.
getUserInfo
().
getUid
(),
questionId
,
answersItems
,
message
.
getFromAccount
()),
false
,
false
));
}
}
else
{
//多选发送消息
for
(
int
i
=
0
;
i
<
questionList
.
size
();
i
++)
{
if
(
questionList
.
get
(
i
).
isSelected
())
{
if
(
i
==
position
)
{
questionList
.
get
(
i
).
setSelected
(
false
);
selectedStr
.
remove
(
questionList
.
get
(
i
).
getName
());
for
(
int
j
=
0
;
j
<
answersItems
.
size
();
j
++){
if
(
questionList
.
get
(
i
).
getName
()==
answersItems
.
get
(
j
).
getName
()){
answersItems
.
remove
(
j
);
break
;
}
}
}
}
else
{
if
(
i
==
position
)
{
questionList
.
get
(
i
).
setSelected
(
true
);
selectedStr
.
add
(
questionList
.
get
(
i
).
getName
());
answersItems
.
add
(
new
AnswersItem
(
questionList
.
get
(
position
).
getId
(),
questionList
.
get
(
position
).
getName
(),
""
,
questionList
.
get
(
position
).
getRelates
()));
}
}
}
confirm_multiple_choice
.
setText
(
String
.
format
(
"确定(%d)"
,
selectedStr
.
size
()));
if
(
selectedStr
.
size
()
>
0
)
{
confirm_multiple_choice
.
setEnabled
(
true
);
if
(
Build
.
VERSION
.
SDK_INT
>=
Build
.
VERSION_CODES
.
LOLLIPOP
)
{
confirm_multiple_choice
.
setBackground
(
context
.
getResources
().
getDrawable
(
R
.
drawable
.
im_background_18dp_1da1f2
));
}
}
else
{
confirm_multiple_choice
.
setEnabled
(
false
);
confirm_multiple_choice
.
setText
(
"确定"
);
if
(
Build
.
VERSION
.
SDK_INT
>=
Build
.
VERSION_CODES
.
LOLLIPOP
)
{
confirm_multiple_choice
.
setBackground
(
context
.
getDrawable
(
R
.
drawable
.
im_background_18dp_ebebeb
));
}
}
stringBuffer
.
delete
(
2
,
stringBuffer
.
length
());
for
(
int
i
=
0
;
i
<
selectedStr
.
size
();
i
++)
{
stringBuffer
.
append
(
"#"
).
append
(
selectedStr
.
get
(
i
));
}
isOthers
=
questionList
.
get
(
position
).
getName
().
contains
(
"其他"
);
EventBus
.
getDefault
().
post
(
new
MultipleSelectedEvent
(
stringBuffer
.
toString
(),
new
OthersState
(
isOthers
,
questionList
.
get
(
position
).
isSelected
()),
new
MultipleAnswerBean
(
examId
,
questionPaperId
,
ImIn
.
INSTANCE
.
getUserInfo
().
getUid
(),
questionId
,
answersItems
,
message
.
getFromAccount
()),
false
,
false
));
adapterLingxiMultipleChoice
.
setTagData
(
questionList
);
}
if
(
singleOrMultipletype
.
contains
(
"radio"
))
{
/*
* 单选题:分其他选项和非其他选项
* 其他选项,唤起输入框
* 点击非其他选项直接发送答案
* */
for
(
int
i
=
0
;
i
<
questionList
.
size
();
i
++)
{
if
(
questionList
.
get
(
i
).
isSelected
())
{
if
(
i
==
position
)
{
if
(
questionList
.
get
(
i
).
getName
().
contains
(
"其他"
))
{
questionList
.
get
(
i
).
setSelected
(
false
);
selectedStr
.
remove
(
questionList
.
get
(
i
).
getName
());
break
;
}
}
}
else
{
if
(
i
==
position
)
{
questionList
.
get
(
i
).
setSelected
(
true
);
selectedStr
.
add
(
questionList
.
get
(
i
).
getName
());
}
else
{
questionList
.
get
(
i
).
setSelected
(
false
);
if
(
questionList
.
get
(
i
).
getName
().
contains
(
"其他"
))
{
selectedStr
.
remove
(
questionList
.
get
(
i
).
getName
());
}
}
}
questionList
.
get
(
i
).
setSelected
(
i
==
position
);
}
adapterLingxiMultipleChoice
.
setTagData
(
questionList
);
for
(
int
i
=
0
;
i
<
questionList
.
size
();
i
++)
{
if
(
questionList
.
get
(
i
).
isSelected
())
{
answersItems
.
clear
();
answersItems
.
add
(
new
AnswersItem
(
questionList
.
get
(
position
).
getId
(),
questionList
.
get
(
position
).
getName
(),
""
,
questionList
.
get
(
position
).
getRelates
()));
break
;
}
}
stringBuffer
.
delete
(
2
,
stringBuffer
.
length
());
for
(
int
i
=
0
;
i
<
selectedStr
.
size
();
i
++)
{
stringBuffer
.
append
(
"、"
).
append
(
selectedStr
.
get
(
i
));
}
isOthers
=
questionList
.
get
(
position
).
getName
().
contains
(
"其他"
);
if
(!
isOthers
)
{
//请求接口发送所选题目
answerLingxiQuestion
(
examId
,
questionPaperId
,
ImIn
.
INSTANCE
.
getUserInfo
().
getUid
().
toString
(),
questionId
,
answersItems
);
//更新本地消息
updateLocalMsg
(
position
,
null
);
//发通知取消隐藏输入框表情等符号
EventBus
.
getDefault
().
post
(
new
MultipleSelectedEvent
(
stringBuffer
.
toString
(),
new
OthersState
(
isOthers
,
questionList
.
get
(
position
).
isSelected
()),
new
MultipleAnswerBean
(
examId
,
questionPaperId
,
ImIn
.
INSTANCE
.
getUserInfo
().
getUid
(),
questionId
,
answersItems
,
message
.
getFromAccount
()),
false
,
true
));
}
else
{
EventBus
.
getDefault
().
post
(
new
MultipleSelectedEvent
(
stringBuffer
.
toString
(),
new
OthersState
(
isOthers
,
questionList
.
get
(
position
).
isSelected
()),
new
MultipleAnswerBean
(
examId
,
questionPaperId
,
ImIn
.
INSTANCE
.
getUserInfo
().
getUid
(),
questionId
,
answersItems
,
message
.
getFromAccount
()),
false
,
false
));
}
}
else
{
//多选发送消息
for
(
int
i
=
0
;
i
<
questionList
.
size
();
i
++)
{
if
(
questionList
.
get
(
i
).
isSelected
())
{
if
(
i
==
position
)
{
questionList
.
get
(
i
).
setSelected
(
false
);
selectedStr
.
remove
(
questionList
.
get
(
i
).
getName
());
for
(
int
j
=
0
;
j
<
answersItems
.
size
();
j
++)
{
if
(
questionList
.
get
(
i
).
getName
()
==
answersItems
.
get
(
j
).
getName
())
{
answersItems
.
remove
(
j
);
break
;
}
}
}
}
else
{
if
(
i
==
position
)
{
questionList
.
get
(
i
).
setSelected
(
true
);
selectedStr
.
add
(
questionList
.
get
(
i
).
getName
());
answersItems
.
add
(
new
AnswersItem
(
questionList
.
get
(
position
).
getId
(),
questionList
.
get
(
position
).
getName
(),
""
,
questionList
.
get
(
position
).
getRelates
()));
}
}
}
confirm_multiple_choice
.
setText
(
String
.
format
(
"确定(%d)"
,
selectedStr
.
size
()));
if
(
selectedStr
.
size
()
>
0
)
{
confirm_multiple_choice
.
setEnabled
(
true
);
if
(
Build
.
VERSION
.
SDK_INT
>=
Build
.
VERSION_CODES
.
LOLLIPOP
)
{
confirm_multiple_choice
.
setBackground
(
context
.
getResources
().
getDrawable
(
R
.
drawable
.
im_background_18dp_1da1f2
));
}
}
else
{
confirm_multiple_choice
.
setEnabled
(
false
);
confirm_multiple_choice
.
setText
(
"确定"
);
if
(
Build
.
VERSION
.
SDK_INT
>=
Build
.
VERSION_CODES
.
LOLLIPOP
)
{
confirm_multiple_choice
.
setBackground
(
context
.
getDrawable
(
R
.
drawable
.
im_background_18dp_ebebeb
));
}
}
stringBuffer
.
delete
(
2
,
stringBuffer
.
length
());
for
(
int
i
=
0
;
i
<
selectedStr
.
size
();
i
++)
{
stringBuffer
.
append
(
"、"
).
append
(
selectedStr
.
get
(
i
));
}
isOthers
=
questionList
.
get
(
position
).
getName
().
contains
(
"其他"
);
EventBus
.
getDefault
().
post
(
new
MultipleSelectedEvent
(
stringBuffer
.
toString
(),
new
OthersState
(
isOthers
,
questionList
.
get
(
position
).
isSelected
()),
new
MultipleAnswerBean
(
examId
,
questionPaperId
,
ImIn
.
INSTANCE
.
getUserInfo
().
getUid
(),
questionId
,
answersItems
,
message
.
getFromAccount
()),
false
,
false
));
adapterLingxiMultipleChoice
.
setTagData
(
questionList
);
answersItemsMap
.
clear
();
for
(
int
i
=
0
;
i
<
answersItems
.
size
();
i
++)
{
if
(!
answersItemsMap
.
contains
(
answersItems
.
get
(
i
).
getName
()))
{
answersItemsMap
.
add
(
i
,
answersItems
.
get
(
i
).
getName
());
}
}
updateLocalMsg
(
null
,
answersItemsMap
);
}
}
private
void
updateLocalMsg
(
Integer
position
,
ArrayList
<
String
>
selectedPosition
)
{
private
void
updateLocalMsg
(
Integer
position
,
ArrayList
<
String
>
selectedPosition
)
{
//更新本地消息
Map
<
String
,
Object
>
map
=
message
.
getLocalExtension
();
if
(
map
==
null
)
{
map
=
new
HashMap
();
}
map
=
new
HashMap
();
map
.
put
(
"isSure"
,
true
);
if
(
position
!=
null
)
{
if
(
position
!=
null
)
{
map
.
put
(
"position"
,
position
);
}
if
(
selectedPosition
!=
null
)
{
if
(
selectedPosition
!=
null
)
{
map
.
put
(
"multiple"
,
selectedPosition
);
}
message
.
setLocalExtension
(
null
);
message
.
setLocalExtension
(
map
);
NIMClient
.
getService
(
MsgService
.
class
).
updateIMMessage
(
message
);
//通知ui刷新
...
...
m-im/src/main/java/com/yidianling/uikit/business/session/fragment/YDLMessageFragment.java
View file @
78b46c65
...
...
@@ -66,8 +66,6 @@ import com.yidianling.im.event.MultipleSelectedEvent;
import
com.yidianling.im.helper.IMChatUtil
;
import
com.yidianling.im.http.ImRetrofitApi
;
import
com.yidianling.im.router.ImIn
;
import
com.yidianling.im.session.extension.CustomAttachLingxiAnswerQuestion
;
import
com.yidianling.im.session.extension.CustomAttachmentConfirmOrder
;
import
com.yidianling.im.session.viewholder.bean.AnswerBean
;
import
com.yidianling.im.session.viewholder.bean.AnswersItem
;
import
com.yidianling.im.session.viewholder.bean.LingxiAnswerBean
;
...
...
@@ -1074,12 +1072,13 @@ public class YDLMessageFragment extends TFragment implements ModuleProxy {
},
500
);
}
else
{
//其他是未选中状态
question_multiple
.
setVisibility
(
View
.
GONE
);
isOthers
=
event
.
getOthersState
().
getOthersSelect
();
inputPanel
.
onlyShowTextEnd
();
}
if
(
event
.
getStrSelected
().
contains
(
"其他"
)){
question_multiple
.
setVisibility
(
View
.
VISIBLE
);
question_multiple
.
setText
(
event
.
getStrSelected
());
question_multiple
.
setText
(
event
.
getStrSelected
()
.
replace
(
"、"
,
"#"
)
);
}
}
else
{
if
(
event
.
getStrSelected
().
contains
(
"其他"
)){
...
...
@@ -1135,8 +1134,6 @@ public class YDLMessageFragment extends TFragment implements ModuleProxy {
}
message
.
setLocalExtension
(
map
);
NIMClient
.
getService
(
MsgService
.
class
).
updateIMMessage
(
message
);
//通知ui刷新
// message.getMsgAdapter().updateItemAtLocalExtension(message);
}
/*
* 用户回答问题接口
...
...
m-im/src/main/java/com/yidianling/uikit/business/session/module/list/MessageListPanelEx.java
View file @
78b46c65
...
...
@@ -271,7 +271,6 @@ public class MessageListPanelEx {
private
void
doScrollToBottom
()
{
messageListView
.
scrollToPosition
(
adapter
.
getBottomDataPosition
());
}
public
void
onIncomingMessage
(
List
<
IMMessage
>
messages
)
{
boolean
needScrollToBottom
=
isLastMessageVisible
();
boolean
needRefresh
=
false
;
...
...
@@ -299,9 +298,10 @@ public class MessageListPanelEx {
IMMessage
lastMsg
=
messages
.
get
(
messages
.
size
()
-
1
);
if
(
isMyMessage
(
lastMsg
))
{
if
(
needScrollToBottom
)
{
doScrollToBottom
(
);
messageListView
.
smoothScrollToPosition
(
adapter
.
getBottomDataPosition
()
);
}
else
if
(
incomingMsgPrompt
!=
null
&&
lastMsg
.
getSessionType
()
!=
SessionTypeEnum
.
ChatRoom
)
{
incomingMsgPrompt
.
show
(
lastMsg
);
messageListView
.
smoothScrollToPosition
(
adapter
.
getBottomDataPosition
());
}
}
}
...
...
m-im/src/main/java/com/yidianling/uikit/business/session/viewholder/MsgViewHolderBase.java
View file @
78b46c65
...
...
@@ -58,8 +58,8 @@ public abstract class MsgViewHolderBase extends RecyclerViewHolder<BaseMultiItem
protected
TextView
readReceiptTextView
;
protected
TextView
ackMsgTextView
;
p
rivate
HeadImageView
avatarLeft
;
p
rivate
HeadImageView
avatarRight
;
p
ublic
HeadImageView
avatarLeft
;
p
ublic
HeadImageView
avatarRight
;
public
ImageView
nameIconView
;
...
...
@@ -424,11 +424,11 @@ public abstract class MsgViewHolderBase extends RecyclerViewHolder<BaseMultiItem
}
}
public
void
setAvatarLeftInVisibity
(){
public
void
setAvatarLeftInVisibity
()
{
avatarLeft
.
setVisibility
(
View
.
INVISIBLE
);
}
public
void
setAvatarRightInVisibity
(){
public
void
setAvatarRightInVisibity
()
{
avatarRight
.
setVisibility
(
View
.
INVISIBLE
);
}
...
...
@@ -448,7 +448,7 @@ public abstract class MsgViewHolderBase extends RecyclerViewHolder<BaseMultiItem
if
(
isReceivedMessage
())
{
audioRightSmallTip
.
setVisibility
(
View
.
VISIBLE
);
audioLeftSmallTip
.
setVisibility
(
View
.
GONE
);
}
else
{
}
else
{
audioRightSmallTip
.
setVisibility
(
View
.
GONE
);
audioLeftSmallTip
.
setVisibility
(
View
.
VISIBLE
);
}
...
...
m-im/src/main/java/com/yidianling/uikit/business/session/viewholder/MsgViewHolderText.java
View file @
78b46c65
...
...
@@ -51,9 +51,11 @@ public class MsgViewHolderText extends MsgViewHolderBase {
private
void
layoutDirection
()
{
if
(
isReceivedMessage
())
{
bodyTextView
.
setTextColor
(
context
.
getResources
().
getColor
(
R
.
color
.
im_color_242424
));
bodyTextView
.
setBackgroundResource
(
NimUIKitImpl
.
getOptions
().
messageLeftBackground
);
bodyTextView
.
setPadding
(
ScreenUtil
.
dip2px
(
13
),
ScreenUtil
.
dip2px
(
7
),
ScreenUtil
.
dip2px
(
13
),
ScreenUtil
.
dip2px
(
7
));
}
else
{
bodyTextView
.
setTextColor
(
context
.
getResources
().
getColor
(
R
.
color
.
white
));
bodyTextView
.
setBackgroundResource
(
NimUIKitImpl
.
getOptions
().
messageRightBackground
);
bodyTextView
.
setPadding
(
ScreenUtil
.
dip2px
(
13
),
ScreenUtil
.
dip2px
(
7
),
ScreenUtil
.
dip2px
(
13
),
ScreenUtil
.
dip2px
(
7
));
}
...
...
m-im/src/main/res/layout/im_nim_lingxi_multiple_choice.xml
View file @
78b46c65
...
...
@@ -18,6 +18,8 @@
app:layout_constraintLeft_toLeftOf=
"parent"
tools:text=
"请问是发生了什么事情导致的呢?(多选)?"
android:textSize=
"@dimen/im_text_size_17"
android:includeFontPadding=
"false"
android:lineSpacingExtra=
"3dip"
android:textColor=
"@color/im_color_242424"
android:paddingBottom=
"@dimen/platform_dp_16"
>
...
...
m-im/src/main/res/layout/im_nim_lingxi_which_question.xml
deleted
100644 → 0
View file @
36b12cf9
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout
xmlns:android=
"http://schemas.android.com/apk/res/android"
xmlns:app=
"http://schemas.android.com/apk/res-auto"
xmlns:tools=
"http://schemas.android.com/tools"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:background=
"@drawable/im_custom_message_round_white_6dp_bg"
android:paddingLeft=
"@dimen/platform_dp_12"
android:paddingRight=
"@dimen/platform_dp_3"
android:paddingTop=
"@dimen/platform_dp_12"
>
<TextView
android:id=
"@+id/which_question_title"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:maxWidth=
"263dp"
android:textColor=
"@color/im_color_242424"
android:textSize=
"@dimen/im_text_size_17"
app:layout_constraintStart_toStartOf=
"parent"
app:layout_constraintTop_toTopOf=
"parent"
tools:text=
"您想要咨询下类哪类问?"
android:layout_marginBottom=
"@dimen/platform_dp_16"
app:layout_constraintBottom_toTopOf=
"@id/which_question_rv"
/>
<androidx.recyclerview.widget.RecyclerView
android:id=
"@+id/which_question_rv"
android:layout_width=
"0dp"
android:layout_height=
"wrap_content"
android:layout_marginBottom=
"@dimen/dp_4"
android:orientation=
"vertical"
app:layoutManager=
"androidx.recyclerview.widget.GridLayoutManager"
app:layout_constraintBottom_toBottomOf=
"parent"
app:layout_constraintStart_toStartOf=
"@id/which_question_title"
app:layout_constraintTop_toBottomOf=
"@id/which_question_title"
app:spanCount=
"2"
tools:itemCount=
"6"
tools:listitem=
"@layout/im_lingxi_which_question_item"
/>
</androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file
m-im/src/main/res_uikit/layout/im_nim_read_recipt_layout.xml
View file @
78b46c65
<?xml version="1.0" encoding="utf-8"?>
<TextView
xmlns:android=
"http://schemas.android.com/apk/res/android"
xmlns:tools=
"http://schemas.android.com/tools"
android:id=
"@+id/textViewAlreadyRead"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_gravity=
"bottom"
android:layout_marginBottom=
"3dip"
android:background=
"@color/im_transparent"
xmlns:tools=
"http://schemas.android.com/tools"
android:id=
"@+id/textViewAlreadyRead"
android:layout_width=
"wrap_content"
android:layout_height=
"wrap_content"
android:layout_gravity=
"bottom"
android:layout_marginLeft=
"2dp"
android:layout_marginRight=
"2dp"
android:text=
"@string/im_readed"
android:textColor=
"#666666"
android:textSize=
"12sp"
android:visibility=
"gone"
tools:visibility=
"visible"
/>
android:layout_marginBottom=
"3dip"
android:background=
"@color/im_transparent"
android:text=
"@string/im_readed"
android:textColor=
"#999999"
android:textSize=
"12sp"
android:visibility=
"gone"
tools:visibility=
"visible"
/>
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