Commit 251487c3 by upwork.021

Merge remote-tracking branch 'origin/yk_first_question' into new_dev_4.3.91

# Conflicts:
#	config.gradle
parents 74a96c87 d168c011
...@@ -97,6 +97,8 @@ ext { ...@@ -97,6 +97,8 @@ ext {
"m-user" : "0.0.62.04", "m-user" : "0.0.62.04",
"m-home" : "0.0.23.18", "m-home" : "0.0.23.18",
"m-im" : "0.0.21.29", "m-im" : "0.0.21.29",
"m-home" : "0.0.23.17",
"m-im" : "0.0.21.30",
"m-dynamic" : "0.0.7.35", "m-dynamic" : "0.0.7.35",
"m-article" : "0.0.0.8", "m-article" : "0.0.0.8",
......
package com.yidianling.im.bean
/**
* Created by Ykai on 2022/5/6.
*/
data class FirstQuestionBean(
var objects:List<ContentBean>
)
data class ContentBean(
var type:Int,
var content:String,
var id:Long
)
\ No newline at end of file
package com.yidianling.im.ui.adapter
import com.chad.library.adapter.base.BaseQuickAdapter
import com.chad.library.adapter.base.BaseViewHolder
import com.yidianling.im.R
import com.yidianling.im.bean.ContentBean
/**
* Created by Ykai on 2022/5/5.
*
* 首问语适配器
*/
class FirstQuestionAdapter(data:MutableList<ContentBean>): BaseQuickAdapter<ContentBean,BaseViewHolder>(R.layout.im_item_chat_first_question) {
override fun convert(holder: BaseViewHolder, item: ContentBean) {
holder.setText(R.id.tv_question_name,item.content)
}
}
\ No newline at end of file
...@@ -30,6 +30,7 @@ import androidx.appcompat.app.AppCompatActivity; ...@@ -30,6 +30,7 @@ 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.blankj.utilcode.util.SPUtils;
import com.google.gson.Gson; import com.google.gson.Gson;
import com.netease.nimlib.sdk.NIMClient; import com.netease.nimlib.sdk.NIMClient;
import com.netease.nimlib.sdk.Observer; import com.netease.nimlib.sdk.Observer;
...@@ -250,6 +251,7 @@ public class YDLMessageFragment extends TFragment implements ModuleProxy { ...@@ -250,6 +251,7 @@ public class YDLMessageFragment extends TFragment implements ModuleProxy {
} }
}; };
@SuppressLint("CheckResult")
@Override @Override
public void onActivityCreated(Bundle savedInstanceState) { public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState); super.onActivityCreated(savedInstanceState);
...@@ -257,9 +259,6 @@ public class YDLMessageFragment extends TFragment implements ModuleProxy { ...@@ -257,9 +259,6 @@ public class YDLMessageFragment extends TFragment implements ModuleProxy {
titleBar = ((YDLBaseMessageActivity) getActivity()).getTitleBarBottom(); titleBar = ((YDLBaseMessageActivity) getActivity()).getTitleBarBottom();
titleBar.setTitleLeftDraw(getResources().getDrawable(R.drawable.loading_01)); titleBar.setTitleLeftDraw(getResources().getDrawable(R.drawable.loading_01));
titleBar.setTitle("正在连接中..."); titleBar.setTitle("正在连接中...");
if (sessionType==SessionTypeEnum.Team){
titleBar.setRightIcon(getContext().getDrawable(R.drawable.platform_common_more));
}
fl_container = rootView.findViewById(R.id.message_activity_list_view_container); fl_container = rootView.findViewById(R.id.message_activity_list_view_container);
v_chattips = rootView.findViewById(R.id.v_chattips); v_chattips = rootView.findViewById(R.id.v_chattips);
...@@ -318,9 +317,27 @@ public class YDLMessageFragment extends TFragment implements ModuleProxy { ...@@ -318,9 +317,27 @@ public class YDLMessageFragment extends TFragment implements ModuleProxy {
} }
//如果是群聊 //如果是群聊
if (SessionTypeEnum.Team==sessionType){ if (SessionTypeEnum.Team==sessionType){
titleBar.setRightIcon(getContext().getDrawable(R.drawable.platform_common_more));
rela_zixun.setVisibility(View.GONE); rela_zixun.setVisibility(View.GONE);
titleBar.setTitleRightDraw(null); titleBar.setTitleRightDraw(null);
}
// 判断最近一次发送消息的时间是否大于24小时
long time = System.currentTimeMillis()-SPUtils.getInstance().getLong(ModularServiceManager.INSTANCE.provide(IUserService.class).getUserInfo().getUid(),0L);
if (time==0L||time>24*60*60*1000){ //如果等于0或者大于则请求首问语接口
// 获取首问语数据
ServiceImpl.Companion.getInstance().getFirstQuestion()
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(res -> {
if (res.code.equals("200")){
if (!res.data.getObjects().isEmpty()){
inputPanel.setFirstQuestion(res.data.getObjects());
}
}
}, throwable -> {
ToastUtil.toastShort(throwable.getMessage());
});
} }
} }
...@@ -429,8 +446,8 @@ public class YDLMessageFragment extends TFragment implements ModuleProxy { ...@@ -429,8 +446,8 @@ public class YDLMessageFragment extends TFragment implements ModuleProxy {
}, throwable -> { }, throwable -> {
}); });
} }
} }
/** /**
* 是否隐藏输入框相关控件 * 是否隐藏输入框相关控件
*/ */
......
...@@ -26,7 +26,13 @@ import android.widget.ImageView; ...@@ -26,7 +26,13 @@ import android.widget.ImageView;
import android.widget.LinearLayout; import android.widget.LinearLayout;
import android.widget.TextView; import android.widget.TextView;
import androidx.constraintlayout.widget.ConstraintLayout;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.blankj.utilcode.util.SPUtils;
import com.chad.library.adapter.base.BaseQuickAdapter;
import com.netease.nimlib.sdk.NIMClient; import com.netease.nimlib.sdk.NIMClient;
import com.netease.nimlib.sdk.media.record.AudioRecorder; import com.netease.nimlib.sdk.media.record.AudioRecorder;
import com.netease.nimlib.sdk.media.record.IAudioRecordCallback; import com.netease.nimlib.sdk.media.record.IAudioRecordCallback;
...@@ -40,9 +46,13 @@ import com.netease.nimlib.sdk.msg.model.CustomNotificationConfig; ...@@ -40,9 +46,13 @@ import com.netease.nimlib.sdk.msg.model.CustomNotificationConfig;
import com.netease.nimlib.sdk.msg.model.IMMessage; import com.netease.nimlib.sdk.msg.model.IMMessage;
import com.tbruyelle.rxpermissions2.Permission; import com.tbruyelle.rxpermissions2.Permission;
import com.tbruyelle.rxpermissions2.RxPermissions; import com.tbruyelle.rxpermissions2.RxPermissions;
import com.ydl.ydlcommon.modular.ModularServiceManager;
import com.ydl.ydlcommon.utils.actionutil.ActionCountUtils;
import com.yidianling.common.tools.ToastUtil; import com.yidianling.common.tools.ToastUtil;
import com.yidianling.im.R; import com.yidianling.im.R;
import com.yidianling.im.bean.ContentBean;
import com.yidianling.im.event.MultipleSelectedEvent; import com.yidianling.im.event.MultipleSelectedEvent;
import com.yidianling.im.ui.adapter.FirstQuestionAdapter;
import com.yidianling.nimbase.api.UIKitOptions; import com.yidianling.nimbase.api.UIKitOptions;
import com.yidianling.nimbase.api.model.session.SessionCustomization; import com.yidianling.nimbase.api.model.session.SessionCustomization;
import com.yidianling.nimbase.business.session.actions.BaseAction; import com.yidianling.nimbase.business.session.actions.BaseAction;
...@@ -58,8 +68,10 @@ import com.yidianling.uikit.api.NimUIKit; ...@@ -58,8 +68,10 @@ import com.yidianling.uikit.api.NimUIKit;
import com.yidianling.uikit.api.NimUIKitImpl; import com.yidianling.uikit.api.NimUIKitImpl;
import com.yidianling.uikit.business.ait.AitTextChangeListener; import com.yidianling.uikit.business.ait.AitTextChangeListener;
import com.yidianling.uikit.custom.widget.SafeHelpRemindDialog; import com.yidianling.uikit.custom.widget.SafeHelpRemindDialog;
import com.yidianling.user.api.service.IUserService;
import java.io.File; import java.io.File;
import java.util.ArrayList;
import java.util.List; import java.util.List;
import de.greenrobot.event.EventBus; import de.greenrobot.event.EventBus;
...@@ -112,6 +124,11 @@ public class InputPanel implements IEmoticonSelectedListener, IAudioRecordCallba ...@@ -112,6 +124,11 @@ public class InputPanel implements IEmoticonSelectedListener, IAudioRecordCallba
/***贴图表情控件*/ /***贴图表情控件*/
protected EmoticonPickerView emoticonPickerView; protected EmoticonPickerView emoticonPickerView;
/**首问语相关控件*/
public ConstraintLayout clFirstQuestion;
public RecyclerView rvFirstQuestion;
private FirstQuestionAdapter firstQuestionAdapter;
/***语音*/ /***语音*/
protected AudioRecorder audioMessageHelper; protected AudioRecorder audioMessageHelper;
private Chronometer time; private Chronometer time;
...@@ -148,6 +165,8 @@ public class InputPanel implements IEmoticonSelectedListener, IAudioRecordCallba ...@@ -148,6 +165,8 @@ public class InputPanel implements IEmoticonSelectedListener, IAudioRecordCallba
private Boolean onlyShowInputTest=false;//灵犀2.0 点击其他的时候隐藏除输入框以外的其他内容 private Boolean onlyShowInputTest=false;//灵犀2.0 点击其他的时候隐藏除输入框以外的其他内容
private String uid;
/***设置输入框内容*/ /***设置输入框内容*/
public void setInputContent(String content) { public void setInputContent(String content) {
messageEditText.setText(content == null ? "" : content); messageEditText.setText(content == null ? "" : content);
...@@ -218,6 +237,7 @@ public class InputPanel implements IEmoticonSelectedListener, IAudioRecordCallba ...@@ -218,6 +237,7 @@ public class InputPanel implements IEmoticonSelectedListener, IAudioRecordCallba
} }
private void init() { private void init() {
uid = ModularServiceManager.INSTANCE.provide(IUserService.class).getUserInfo().getUid();
initViews(); initViews();
initInputBarListener(); initInputBarListener();
initTextEdit(); initTextEdit();
...@@ -276,6 +296,35 @@ public class InputPanel implements IEmoticonSelectedListener, IAudioRecordCallba ...@@ -276,6 +296,35 @@ public class InputPanel implements IEmoticonSelectedListener, IAudioRecordCallba
textAudioSwitchLayout.setVisibility(View.GONE); textAudioSwitchLayout.setVisibility(View.GONE);
} }
initVoice(); initVoice();
// 首问语控件初始化
initFirstQuestion();
}
private void initFirstQuestion() {
clFirstQuestion = view.findViewById(R.id.cl_first_question);
rvFirstQuestion = view.findViewById(R.id.rv_first_question);
firstQuestionAdapter = new FirstQuestionAdapter(new ArrayList<>());
rvFirstQuestion.setLayoutManager(new LinearLayoutManager(context));
rvFirstQuestion.setAdapter(firstQuestionAdapter);
firstQuestionAdapter.setOnItemClickListener((adapter, view, position) -> {
String content = firstQuestionAdapter.getData().get(position).getContent();
// 埋点
ActionCountUtils.Companion.baiDuCountSign3("counselor_consult_page","quick_language_click",content,"","");
// 根据uid记录每次发消息的时间戳
SPUtils.getInstance().put(uid,System.currentTimeMillis());
onTextMessageSendButtonPressed(content);
clFirstQuestion.setVisibility(View.GONE);
});
}
/**
* 设置首问语数据
* @param data
*/
public void setFirstQuestion(List<ContentBean> data){
clFirstQuestion.setVisibility(View.VISIBLE);
firstQuestionAdapter.getData().addAll(data);
firstQuestionAdapter.notifyDataSetChanged();
} }
private void initVoice() { private void initVoice() {
...@@ -446,6 +495,7 @@ public class InputPanel implements IEmoticonSelectedListener, IAudioRecordCallba ...@@ -446,6 +495,7 @@ public class InputPanel implements IEmoticonSelectedListener, IAudioRecordCallba
// 点击edittext,切换键盘和更多布局 // 点击edittext,切换键盘和更多布局
private void switchToTextLayout(boolean needShowInput) { private void switchToTextLayout(boolean needShowInput) {
hideEmojiLayout(); hideEmojiLayout();
hideFirstQuestionLayout();
hideActionPanelLayout(); hideActionPanelLayout();
audioRecordBtn.setVisibility(View.GONE); audioRecordBtn.setVisibility(View.GONE);
...@@ -500,8 +550,10 @@ public class InputPanel implements IEmoticonSelectedListener, IAudioRecordCallba ...@@ -500,8 +550,10 @@ public class InputPanel implements IEmoticonSelectedListener, IAudioRecordCallba
* 替换之后最终发送的字符串 * 替换之后最终发送的字符串
*/ */
private void onTextMessageSendButtonClick() { private void onTextMessageSendButtonClick() {
IMMessage textMessage = createTextMessage(sendText); // 根据uid记录每次发消息的时间戳
SPUtils.getInstance().put(uid,System.currentTimeMillis());
IMMessage textMessage = createTextMessage(sendText);
if (container.proxy.sendMessage(textMessage)) { if (container.proxy.sendMessage(textMessage)) {
restoreText(true); restoreText(true);
} }
...@@ -605,6 +657,7 @@ public class InputPanel implements IEmoticonSelectedListener, IAudioRecordCallba ...@@ -605,6 +657,7 @@ public class InputPanel implements IEmoticonSelectedListener, IAudioRecordCallba
messageEditLL.setVisibility(View.GONE); messageEditLL.setVisibility(View.GONE);
hideInputMethod(); hideInputMethod();
hideEmojiLayout(); hideEmojiLayout();
hideFirstQuestionLayout();
hideActionPanelLayout(); hideActionPanelLayout();
switchToAudioButtonInInputBar.setVisibility(View.GONE); switchToAudioButtonInInputBar.setVisibility(View.GONE);
...@@ -644,6 +697,16 @@ public class InputPanel implements IEmoticonSelectedListener, IAudioRecordCallba ...@@ -644,6 +697,16 @@ public class InputPanel implements IEmoticonSelectedListener, IAudioRecordCallba
} }
/** /**
* 隐藏首问语布局
*/
public void hideFirstQuestionLayout(){
uiHandler.removeCallbacks(showFirstQuestionRunnable);
if (clFirstQuestion != null) {
clFirstQuestion.setVisibility(View.GONE);
}
}
/**
* 隐藏更多布局 * 隐藏更多布局
*/ */
private void hideActionPanelLayout() { private void hideActionPanelLayout() {
...@@ -704,6 +767,7 @@ public class InputPanel implements IEmoticonSelectedListener, IAudioRecordCallba ...@@ -704,6 +767,7 @@ public class InputPanel implements IEmoticonSelectedListener, IAudioRecordCallba
* 显示表情布局 * 显示表情布局
*/ */
private void showEmojiLayout() { private void showEmojiLayout() {
hideFirstQuestionLayout();
hideInputMethod(); hideInputMethod();
hideActionPanelLayout(); hideActionPanelLayout();
hideAudioLayout(); hideAudioLayout();
...@@ -752,6 +816,7 @@ public class InputPanel implements IEmoticonSelectedListener, IAudioRecordCallba ...@@ -752,6 +816,7 @@ public class InputPanel implements IEmoticonSelectedListener, IAudioRecordCallba
*/ */
private void showActionPanelLayout() { private void showActionPanelLayout() {
hideEmojiLayout(); hideEmojiLayout();
hideFirstQuestionLayout();
hideInputMethod(); hideInputMethod();
uiHandler.postDelayed(showMoreFuncRunnable, SHOW_LAYOUT_DELAY); uiHandler.postDelayed(showMoreFuncRunnable, SHOW_LAYOUT_DELAY);
...@@ -765,6 +830,13 @@ public class InputPanel implements IEmoticonSelectedListener, IAudioRecordCallba ...@@ -765,6 +830,13 @@ public class InputPanel implements IEmoticonSelectedListener, IAudioRecordCallba
} }
}; };
private Runnable showFirstQuestionRunnable = new Runnable() {
@Override
public void run() {
clFirstQuestion.setVisibility(View.VISIBLE);
}
};
private Runnable showMoreFuncRunnable = new Runnable() { private Runnable showMoreFuncRunnable = new Runnable() {
@Override @Override
public void run() { public void run() {
...@@ -875,6 +947,7 @@ public class InputPanel implements IEmoticonSelectedListener, IAudioRecordCallba ...@@ -875,6 +947,7 @@ public class InputPanel implements IEmoticonSelectedListener, IAudioRecordCallba
hideInputMethod(); hideInputMethod();
hideActionPanelLayout(); hideActionPanelLayout();
hideEmojiLayout(); hideEmojiLayout();
hideFirstQuestionLayout();
} }
}; };
} }
......
...@@ -4,6 +4,7 @@ import com.ydl.ydlcommon.base.config.YDL_DOMAIN ...@@ -4,6 +4,7 @@ import com.ydl.ydlcommon.base.config.YDL_DOMAIN
import com.ydl.ydlcommon.base.config.YDL_DOMAIN_JAVA import com.ydl.ydlcommon.base.config.YDL_DOMAIN_JAVA
import com.ydl.ydlcommon.data.http.BaseAPIResponse import com.ydl.ydlcommon.data.http.BaseAPIResponse
import com.yidianling.im.bean.BusyBean import com.yidianling.im.bean.BusyBean
import com.yidianling.im.bean.FirstQuestionBean
import com.yidianling.uikit.custom.http.response.* import com.yidianling.uikit.custom.http.response.*
import com.yidianling.uikit.custom.http.response.question.QuestionsInfoBean import com.yidianling.uikit.custom.http.response.question.QuestionsInfoBean
import io.reactivex.Observable import io.reactivex.Observable
...@@ -115,10 +116,13 @@ interface ServiceApi { ...@@ -115,10 +116,13 @@ interface ServiceApi {
//答题 //答题
@POST("cms/exam/api/v1/exams/{id}/lingxi/answer-question") @POST("cms/exam/api/v1/exams/{id}/lingxi/answer-question")
@Headers(YDL_DOMAIN + YDL_DOMAIN_JAVA) @Headers(YDL_DOMAIN + YDL_DOMAIN_JAVA)
fun answerQuestion( fun answerQuestion(@Path("id") id: String, @Body body: RequestBody): Observable<BaseAPIResponse<String>>
@Path("id") id: String,
@Body body: RequestBody
): Observable<BaseAPIResponse<String>>
/**
* 获取首问语
*/
@POST("dmp/v1/clouddata/schemas/lingxi_quick_replies/query")
@Headers(YDL_DOMAIN + YDL_DOMAIN_JAVA,"X-App-Id: crm_cloud")
fun getFirstQuestion( @Body map: Map<String,@JvmSuppressWildcards Any>): Observable<BaseAPIResponse<FirstQuestionBean>>
} }
\ No newline at end of file
...@@ -4,6 +4,7 @@ import com.alibaba.fastjson.JSON ...@@ -4,6 +4,7 @@ import com.alibaba.fastjson.JSON
import com.ydl.ydlcommon.data.http.BaseAPIResponse import com.ydl.ydlcommon.data.http.BaseAPIResponse
import com.ydl.ydlnet.YDLHttpUtils import com.ydl.ydlnet.YDLHttpUtils
import com.yidianling.im.bean.BusyBean import com.yidianling.im.bean.BusyBean
import com.yidianling.im.bean.FirstQuestionBean
import com.yidianling.im.http.ImRetrofitApi import com.yidianling.im.http.ImRetrofitApi
import com.yidianling.uikit.custom.http.response.* import com.yidianling.uikit.custom.http.response.*
import com.yidianling.uikit.custom.http.response.question.QuestionsInfoBean import com.yidianling.uikit.custom.http.response.question.QuestionsInfoBean
...@@ -188,4 +189,15 @@ class ServiceImpl private constructor() { ...@@ -188,4 +189,15 @@ class ServiceImpl private constructor() {
return YDLHttpUtils.obtainApi(ImRetrofitApi::class.java).batchSendCustomizeMessage(body) return YDLHttpUtils.obtainApi(ImRetrofitApi::class.java).batchSendCustomizeMessage(body)
} }
/**
* 获取首问语
*/
fun getFirstQuestion(): Observable<BaseAPIResponse<FirstQuestionBean>> {
val filterMap = HashMap<String,Any>()
filterMap["type"] = 1
val map = HashMap<String,Any>()
map["filter"] = filterMap
return YDLHttpUtils.obtainApi(ServiceApi::class.java).getFirstQuestion(map)
}
} }
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<TextView
android:id="@+id/tv_question_name"
android:layout_width="match_parent"
android:layout_height="48dp"
tools:text="我感觉自己心里有抑郁倾向"
android:gravity="center_vertical"
android:paddingStart="12dp"
android:textSize="14sp"
android:textColor="#16263D"
/>
<View
android:layout_width="match_parent"
android:layout_height="1dp"
android:background="@color/platform_color_F2F2F2" />
</LinearLayout>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/messageActivityBottomLayout" xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent" android:id="@+id/messageActivityBottomLayout"
android:layout_height="wrap_content" android:layout_width="match_parent"
android:orientation="vertical"> android:layout_height="wrap_content"
android:orientation="vertical">
<include layout="@layout/im_nim_message_activity_text_layout" />
<include layout="@layout/im_nim_message_activity_text_layout" />
<com.yidianling.nimbase.business.session.emoji.EmoticonPickerView
android:id="@+id/emoticon_picker_view" <com.yidianling.nimbase.business.session.emoji.EmoticonPickerView
android:layout_width="wrap_content" android:id="@+id/emoticon_picker_view"
android:layout_height="wrap_content" android:layout_width="wrap_content"
android:visibility="gone" /> android:layout_height="wrap_content"
</LinearLayout> android:visibility="gone" />
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@+id/cl_first_question"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:visibility="gone"
android:background="@color/white"
android:orientation="vertical">
<TextView
android:layout_width="match_parent"
android:layout_height="46dp"
android:gravity="center_vertical"
android:paddingStart="12dp"
android:text="您可以试试这样描述您的问题:"
app:layout_constraintTop_toTopOf="parent"
android:textColor="@color/platform_color_999999"
android:textSize="13sp" />
<View
android:layout_width="match_parent"
android:layout_height="1dp"
app:layout_constraintTop_toTopOf="parent"
android:layout_marginTop="46dp"
android:background="@color/platform_color_F2F2F2" />
<androidx.recyclerview.widget.RecyclerView
android:id="@+id/rv_first_question"
android:layout_width="match_parent"
android:layout_height="0dp"
app:layout_constraintHeight_default="wrap"
app:layout_constraintHeight_max="200dp"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
android:layout_marginTop="47dp"
app:layout_constraintBottom_toBottomOf="parent"
/>
</androidx.constraintlayout.widget.ConstraintLayout>
</LinearLayout>
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/textMessageLayout" android:id="@+id/textMessageLayout"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="56dp" android:layout_height="56dp"
android:background="@color/platform_color_F7F7F7" android:background="@color/platform_color_F7F7F7"
android:gravity="center_vertical"> android:gravity="center_vertical">
<!--android:paddingTop="@dimen/bottom_component_margin_vertical"-->
<!--android:paddingBottom="@dimen/bottom_component_margin_vertical"-->
<FrameLayout <FrameLayout
android:id="@+id/switchLayout" android:id="@+id/switchLayout"
android:layout_width="wrap_content" android:layout_width="wrap_content"
...@@ -42,6 +41,7 @@ ...@@ -42,6 +41,7 @@
<Button <Button
android:id="@+id/audioRecord" android:id="@+id/audioRecord"
style="?android:attr/borderlessButtonStyle"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"
android:layout_marginTop="10dp" android:layout_marginTop="10dp"
...@@ -52,7 +52,6 @@ ...@@ -52,7 +52,6 @@
android:textColor="@color/color_3D3D3D" android:textColor="@color/color_3D3D3D"
android:textSize="15sp" android:textSize="15sp"
android:textStyle="bold" android:textStyle="bold"
style="?android:attr/borderlessButtonStyle"
android:visibility="gone" /> android:visibility="gone" />
</FrameLayout> </FrameLayout>
...@@ -75,10 +74,10 @@ ...@@ -75,10 +74,10 @@
android:layout_gravity="center" android:layout_gravity="center"
android:layout_marginLeft="10dp" android:layout_marginLeft="10dp"
android:layout_marginRight="10dp" android:layout_marginRight="10dp"
android:hint="隐私保密,安心咨询"
android:layout_weight="1" android:layout_weight="1"
android:autoLink="all" android:autoLink="all"
android:background="#ffffff" android:background="#ffffff"
android:hint="隐私保密,安心咨询"
android:maxHeight="72dp" android:maxHeight="72dp"
android:maxLines="4" android:maxLines="4"
android:textColorHint="#CCCCCC" android:textColorHint="#CCCCCC"
...@@ -114,17 +113,17 @@ ...@@ -114,17 +113,17 @@
android:scaleType="center" /> android:scaleType="center" />
<TextView <TextView
android:id="@+id/buttonSendMessage" android:id="@+id/buttonSendMessage"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"
android:layout_gravity="center" android:layout_gravity="center"
android:background="@drawable/platform_bg_radius_5" android:background="@drawable/platform_bg_radius_5"
android:contentDescription="@string/im_empty" android:contentDescription="@string/im_empty"
android:gravity="center" android:gravity="center"
android:padding="5dp" android:padding="5dp"
android:text="@string/im_send" android:text="@string/im_send"
android:textColor="@color/platform_but_text_color" android:textColor="@color/platform_but_text_color"
android:textSize="14sp" /> android:textSize="14sp" />
</FrameLayout> </FrameLayout>
</RelativeLayout> </RelativeLayout>
...@@ -613,7 +613,8 @@ ...@@ -613,7 +613,8 @@
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:background="@color/white"
android:visibility="gone" /> android:visibility="gone"
/>
<include <include
layout="@layout/im_nim_message_activity_bottom_layout" /> layout="@layout/im_nim_message_activity_bottom_layout" />
</LinearLayout> </LinearLayout>
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