Commit 7a524767 by 霍志良

feat:im-灵犀2.0-其他选项

parent d3d0e5ec
package com.yidianling.im.event
import com.yidianling.im.router.ImIn.getUserInfo
import com.yidianling.im.session.viewholder.bean.AnswersItem
public class MultipleSelectedEvent (
val strSelected:String,
var othersState:OthersState
val strSelected:String?,
var othersState:OthersState?,
var multipleAnswerBean:MultipleAnswerBean?
)
data class OthersState(
var isOthers:Boolean,
var othersSelect:Boolean
)
data class MultipleAnswerBean(
var examId:String,
var questionPaperId:String,
var uid:String,
var questionId:String,
var answersItems:ArrayList<AnswersItem>,
var fromUid:String
)
\ No newline at end of file
......@@ -5,13 +5,17 @@ import android.widget.TextView;
import com.yidianling.im.R;
import com.yidianling.im.session.extension.CustomAttachLingxiAnswerQuestion;
import com.yidianling.im.session.viewholder.bean.QuestionItemBean;
import com.yidianling.nimbase.common.ui.recyclerview.adapter.BaseMultiItemFetchLoadAdapter;
import com.yidianling.uikit.business.session.viewholder.MsgViewHolderBase;
import java.util.ArrayList;
public class MsgViewHolderLingxiAnswerQuestion extends MsgViewHolderBase {
private TextView answer_question;
CustomAttachLingxiAnswerQuestion customattachLingxiAnswerQuestion;
private ArrayList<QuestionItemBean> itemBeans;
private StringBuffer sb;
public MsgViewHolderLingxiAnswerQuestion(BaseMultiItemFetchLoadAdapter adapter) {
super(adapter);
}
......@@ -36,7 +40,21 @@ public class MsgViewHolderLingxiAnswerQuestion extends MsgViewHolderBase {
@Override
protected void bindContentView() {
customattachLingxiAnswerQuestion = ((CustomAttachLingxiAnswerQuestion) message.getAttachment());
answer_question.setText(customattachLingxiAnswerQuestion.answers.get(0).getName());
itemBeans=customattachLingxiAnswerQuestion.answers;
sb=new StringBuffer();
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());
}else{
sb.append("#"+itemBeans.get(i).getName()+" ");
}
}
if (itemBeans.size()==1){
answer_question.setText(itemBeans.get(0).getName());
}else{
answer_question.setText(sb.toString());
}
}
}
......@@ -12,6 +12,7 @@ data class LingxiWhichQuestionBean(
data class QuestionItemBean(
var id:String?,
var name:String?,
var other:String?,
var relates:ArrayList<Relates>?,
var isSelected: Boolean=false
)
......@@ -32,7 +33,7 @@ data class AnswerBean(
data class AnswersItem(
var optionId:String,
var name: String,
var other:String,
var other:String?,
var relates:ArrayList<Relates>
)
data class Relates(
......
......@@ -64,6 +64,9 @@ 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.viewholder.bean.AnswerBean;
import com.yidianling.im.session.viewholder.bean.AnswersItem;
import com.yidianling.im.session.viewholder.bean.LingxiAnswerBean;
import com.yidianling.im.session.viewholder.bean.UserIsIn;
import com.yidianling.im.session.viewholder.bean.UserIsInPageData;
import com.yidianling.nimbase.api.UIKitOptions;
......@@ -1079,25 +1082,57 @@ public class YDLMessageFragment extends TFragment implements ModuleProxy {
}
public void onEvent(MultipleSelectedEvent event){
if (event.getOthersState().isOthers()){
//用户点击了其他事件
if (event.getOthersState().getOthersSelect()){
//其他是选中状态
isOthers=event.getOthersState().getOthersSelect();
rootView.postDelayed(new Runnable() {
@Override
public void run() {
inputPanel.onlyShowTextStart();
}
}, 500);
if (event.getOthersState()!=null){
if (event.getOthersState().isOthers()){
//用户点击了其他事件
if (event.getOthersState().getOthersSelect()){
//其他是选中状态
isOthers=event.getOthersState().getOthersSelect();
rootView.postDelayed(new Runnable() {
@Override
public void run() {
inputPanel.onlyShowTextStart();
}
}, 500);
}else{
//其他是未选中状态
isOthers=event.getOthersState().getOthersSelect();
inputPanel.onlyShowTextEnd();
}
}else{
//其他是未选中状态
isOthers=event.getOthersState().getOthersSelect();
inputPanel.onlyShowTextEnd();
question_multiple.setText(event.getStrSelected());
}
}else{
question_multiple.setText(event.getStrSelected());
//请求接口发送消息为56的答案
ArrayList<AnswersItem> answersItems=event.getMultipleAnswerBean().getAnswersItems();
for (int i=0;i<answersItems.size();i++){
if (answersItems.get(i).getName().contains("其他")){
answersItems.get(i).setOther(inputPanel.getInputContent());
break;
}
}
answerLingxiQuestion(event.getMultipleAnswerBean().getExamId(),event.getMultipleAnswerBean().getQuestionPaperId(),
event.getMultipleAnswerBean().getUid(),event.getMultipleAnswerBean().getQuestionId(),answersItems,
event.getMultipleAnswerBean().getFromUid());
}
}
/*
* 用户回答问题接口
* */
private void answerLingxiQuestion(String examID, String questionPaperId, String uid, String questionId, ArrayList<AnswersItem> answersItems,String fromUID) {
String str = new Gson().toJson(new LingxiAnswerBean(new AnswerBean(examID, questionPaperId, uid, questionId, answersItems), fromUID, "56", uid));
RequestBody body = RequestBody.create(MediaType.parse("application/json; charset=utf-8"), str);
Disposable subscribe = ImRetrofitApi.Companion.getImRetrofitApi().lingxiAnswerQuestion(body)
.compose(RxUtils.INSTANCE.resultJavaData())
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(it -> {
LogUtil.e("answerQuestion" + it.toString());
}, throwable ->
com.yidianling.common.tools.LogUtil.e(throwable.getMessage())
);
}
public boolean onBackPressed() {
return inputPanel.collapse(true) || messageListPanel.onBackPressed() || openOrCloseCommonQuestionLayout(false);
......
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