11111
This commit is contained in:
@@ -76,21 +76,20 @@
|
||||
<activity
|
||||
android:name=".activity.LiveRyAnchorActivity"
|
||||
android:screenOrientation="portrait" />
|
||||
|
||||
<uses-library
|
||||
android:name="org.apache.http.legacy"
|
||||
android:required="false" />
|
||||
|
||||
<activity
|
||||
android:name=".activity.PDLiveConversationActivity"
|
||||
android:hardwareAccelerated="true"
|
||||
android:screenOrientation="portrait"
|
||||
android:windowSoftInputMode="adjustResize|stateHidden">
|
||||
</activity>
|
||||
android:windowSoftInputMode="stateAlwaysHidden|adjustResize"/>
|
||||
<activity
|
||||
android:name=".activity.PDLIiveChatActivity"
|
||||
android:screenOrientation="portrait"
|
||||
android:theme="@style/DialogActivity"
|
||||
|
||||
android:windowSoftInputMode="stateHidden|adjustResize">
|
||||
</activity>
|
||||
android:theme="@style/DialogActivity"/>
|
||||
<activity
|
||||
android:name=".activity.EditNameRemarksActivity"
|
||||
android:screenOrientation="portrait" />
|
||||
|
||||
@@ -23,9 +23,12 @@ import com.yunbao.common.activity.SelectImageActivity;
|
||||
import com.yunbao.common.bean.IMLoginModel;
|
||||
import com.yunbao.common.bean.ImageEntity;
|
||||
import com.yunbao.common.manager.IMLoginManager;
|
||||
import com.yunbao.common.manager.imrongcloud.MessageIMManager;
|
||||
import com.yunbao.live.R;
|
||||
import com.yunbao.live.bean.SearchUserBean;
|
||||
import com.yunbao.live.dialog.MenuPopuwWindow;
|
||||
import com.yunbao.live.event.InputPanelViewHolderEvent;
|
||||
import com.yunbao.live.utils.WindowSoftModeAdjustResizeExecutor;
|
||||
import com.yunbao.live.views.InputPanelViewHolder;
|
||||
import com.yunbao.live.views.PDLiveConversationFragment;
|
||||
|
||||
@@ -65,9 +68,12 @@ public class PDLiveConversationActivity extends AbsActivity implements View.OnCl
|
||||
super.main();
|
||||
EventBus.getDefault().register(this);
|
||||
mContext = this;
|
||||
// getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_PAN);
|
||||
getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_PAN);
|
||||
initView();
|
||||
initData();
|
||||
WindowSoftModeAdjustResizeExecutor.assistActivity(this);
|
||||
//设置会话界面操作监听器
|
||||
MessageIMManager.get(this).addConversationClickListener();
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -79,20 +85,26 @@ public class PDLiveConversationActivity extends AbsActivity implements View.OnCl
|
||||
inputPanel.setTargetId(targetId);
|
||||
//获取用户信息
|
||||
UserInfo userInfo = RongUserInfoManager.getInstance().getUserInfo(targetId);
|
||||
titleView.setText(userInfo.getName());
|
||||
if (!TextUtils.isEmpty(userInfo.getExtra())) {
|
||||
SearchUserBean userBean = GsonUtils.fromJson(userInfo.getExtra(), SearchUserBean.class);
|
||||
//新手指导员
|
||||
if (!TextUtils.isEmpty(userBean.getIs_admin()) && TextUtils.equals(userBean.getIs_admin(), "1")) {
|
||||
isAdmin = true;
|
||||
imgMore.setVisibility(View.GONE);
|
||||
} else {//非指导员
|
||||
isAdmin = false;
|
||||
imgMore.setVisibility(View.VISIBLE);
|
||||
if (null!=userInfo){
|
||||
titleView.setText(userInfo.getName());
|
||||
if (!TextUtils.isEmpty(userInfo.getExtra())) {
|
||||
SearchUserBean userBean = GsonUtils.fromJson(userInfo.getExtra(), SearchUserBean.class);
|
||||
//新手指导员
|
||||
if (!TextUtils.isEmpty(userBean.getIs_admin()) && TextUtils.equals(userBean.getIs_admin(), "1")) {
|
||||
isAdmin = true;
|
||||
imgMore.setVisibility(View.GONE);
|
||||
} else {//非指导员
|
||||
isAdmin = false;
|
||||
imgMore.setVisibility(View.VISIBLE);
|
||||
}
|
||||
Log.e("PDLiveConversation", userInfo.getExtra());
|
||||
}
|
||||
Log.e("PDLiveConversation", userInfo.getExtra());
|
||||
}else {
|
||||
titleView.setText("系統消息");
|
||||
inputPanel.setVisibility(View.GONE);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -204,4 +216,13 @@ public class PDLiveConversationActivity extends AbsActivity implements View.OnCl
|
||||
titleView.setText(event);
|
||||
}
|
||||
}
|
||||
|
||||
//消息中心
|
||||
@Subscribe(threadMode = ThreadMode.MAIN)
|
||||
public void onInputPanelViewHolderEvent(InputPanelViewHolderEvent event) {
|
||||
((InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE)).hideSoftInputFromWindow(this.getCurrentFocus().getWindowToken(), InputMethodManager.HIDE_NOT_ALWAYS);
|
||||
inputPanel.hidePluginList();
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -1,11 +1,8 @@
|
||||
package com.yunbao.live.bean;
|
||||
|
||||
import android.os.Parcel;
|
||||
import android.os.Parcelable;
|
||||
import android.text.TextUtils;
|
||||
|
||||
import com.alibaba.fastjson.annotation.JSONField;
|
||||
import com.yunbao.common.bean.UserBean;
|
||||
import com.yunbao.common.bean.BaseModel;
|
||||
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.Date;
|
||||
@@ -15,7 +12,8 @@ import java.util.Date;
|
||||
* IM 聊天用户 实体类
|
||||
*/
|
||||
|
||||
public class ImUserBean {
|
||||
public class ImUserBean extends BaseModel {
|
||||
|
||||
|
||||
String title;//
|
||||
String image;//头像
|
||||
@@ -28,100 +26,121 @@ public class ImUserBean {
|
||||
String remarks;//备注的信息
|
||||
String is_admin;
|
||||
String isDelet;
|
||||
|
||||
public String getIsDelet() {
|
||||
return isDelet;
|
||||
}
|
||||
|
||||
public void setIsDelet(String isDelet) {
|
||||
this.isDelet = isDelet;
|
||||
}
|
||||
|
||||
public String getIs_admin() {
|
||||
return is_admin;
|
||||
}
|
||||
|
||||
public void setIs_admin(String is_admin) {
|
||||
this.is_admin = is_admin;
|
||||
}
|
||||
|
||||
public String getRemarks() {
|
||||
return remarks;
|
||||
}
|
||||
|
||||
public void setRemarks(String remarks) {
|
||||
this.remarks = remarks;
|
||||
}
|
||||
String _method_ = "";//融雲消息類型
|
||||
|
||||
public String getTitle() {
|
||||
return title;
|
||||
}
|
||||
|
||||
public void setTitle(String title) {
|
||||
public ImUserBean setTitle(String title) {
|
||||
this.title = title;
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getImage() {
|
||||
return image;
|
||||
}
|
||||
|
||||
public void setImage(String image) {
|
||||
public ImUserBean setImage(String image) {
|
||||
this.image = image;
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getContent() {
|
||||
return content;
|
||||
}
|
||||
|
||||
public void setContent(String content) {
|
||||
public ImUserBean setContent(String content) {
|
||||
this.content = content;
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getAddtime() {
|
||||
return addtime;
|
||||
}
|
||||
|
||||
public void setAddtime(String addtime) {
|
||||
public ImUserBean setAddtime(String addtime) {
|
||||
this.addtime = addtime;
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getNum() {
|
||||
return num;
|
||||
}
|
||||
|
||||
public void setNum(String num) {
|
||||
public ImUserBean setNum(String num) {
|
||||
this.num = num;
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getLink() {
|
||||
return link;
|
||||
}
|
||||
|
||||
public void setLink(String link) {
|
||||
public ImUserBean setLink(String link) {
|
||||
this.link = link;
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getType() {
|
||||
return type;
|
||||
}
|
||||
|
||||
public void setType(String type) {
|
||||
public ImUserBean setType(String type) {
|
||||
this.type = type;
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getUserId() {
|
||||
return userId;
|
||||
}
|
||||
|
||||
public void setUserId(String userId) {
|
||||
public ImUserBean setUserId(String userId) {
|
||||
this.userId = userId;
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getRemarks() {
|
||||
return remarks;
|
||||
}
|
||||
|
||||
public ImUserBean setRemarks(String remarks) {
|
||||
this.remarks = remarks;
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getIs_admin() {
|
||||
return is_admin;
|
||||
}
|
||||
|
||||
public ImUserBean setIs_admin(String is_admin) {
|
||||
this.is_admin = is_admin;
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getIsDelet() {
|
||||
return isDelet;
|
||||
}
|
||||
|
||||
public ImUserBean setIsDelet(String isDelet) {
|
||||
this.isDelet = isDelet;
|
||||
return this;
|
||||
}
|
||||
|
||||
public String get_method_() {
|
||||
return _method_;
|
||||
}
|
||||
|
||||
public ImUserBean set_method_(String _method_) {
|
||||
this._method_ = _method_;
|
||||
return this;
|
||||
}
|
||||
|
||||
/**
|
||||
* 会话列表展示时间
|
||||
*/
|
||||
public String getLastDate() {
|
||||
if (!TextUtils.isEmpty(addtime)&&!TextUtils.equals(addtime,"0")) {
|
||||
if (!TextUtils.isEmpty(addtime) && !TextUtils.equals(addtime, "0")) {
|
||||
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm");
|
||||
Date currenTimeZone;
|
||||
if (TextUtils.equals(type, "-1")) {
|
||||
@@ -135,4 +154,18 @@ public class ImUserBean {
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public String addNumber(int index) {
|
||||
String number;
|
||||
if (TextUtils.isEmpty(num)) {
|
||||
number = String.valueOf(index);
|
||||
} else {
|
||||
try {
|
||||
number = String.valueOf(Integer.parseInt(num) + index);
|
||||
} catch (NumberFormatException e) {
|
||||
number = String.valueOf(index);
|
||||
}
|
||||
}
|
||||
return number;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,26 @@
|
||||
package com.yunbao.live.dialog;
|
||||
|
||||
import android.app.Activity;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.widget.PopupWindow;
|
||||
|
||||
import com.yunbao.live.R;
|
||||
|
||||
/**
|
||||
* 消息長按彈窗
|
||||
*/
|
||||
public class MessageLongClickPopuwindow {
|
||||
private Activity mContext;
|
||||
private View popupView;
|
||||
private PopupWindow popupWindow;
|
||||
|
||||
public MessageLongClickPopuwindow(Activity context) {
|
||||
this.mContext = context;
|
||||
popupView = LayoutInflater.from(mContext).inflate(R.layout.view_message_long_click, null);
|
||||
initView();
|
||||
}
|
||||
|
||||
private void initView() {
|
||||
}
|
||||
}
|
||||
@@ -1,11 +1,15 @@
|
||||
package com.yunbao.live.dialog;
|
||||
|
||||
import android.view.MotionEvent;
|
||||
import android.view.View;
|
||||
import android.widget.ImageView;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
|
||||
import com.yunbao.live.R;
|
||||
import com.yunbao.live.event.InputPanelViewHolderEvent;
|
||||
|
||||
import org.greenrobot.eventbus.EventBus;
|
||||
|
||||
import io.rong.imkit.conversation.MessageListAdapter;
|
||||
import io.rong.imkit.model.UiMessage;
|
||||
@@ -28,15 +32,22 @@ public class PDLiveMessageListAdapter extends MessageListAdapter {
|
||||
Message.SentStatus sentStatus = mDataList.get(position).getMessage().getSentStatus();
|
||||
ImageView readReceipt = holder.getConvertView().findViewById(R.id.rc_read_receipt);
|
||||
ImageView readReceiptNew = holder.getConvertView().findViewById(R.id.rc_read_receipt_new);
|
||||
if (readReceipt!=null&&readReceiptNew!=null){
|
||||
if (readReceipt != null && readReceiptNew != null) {
|
||||
if (readReceipt.getVisibility() == View.VISIBLE) {
|
||||
readReceipt.setVisibility(View.GONE);
|
||||
readReceiptNew.setBackgroundResource(R.mipmap.icon_message_read);
|
||||
} else {
|
||||
if (messageDirection.equals(Message.MessageDirection.SEND)&&sentStatus.equals(Message.SentStatus.SENT))
|
||||
if (messageDirection.equals(Message.MessageDirection.SEND) && sentStatus.equals(Message.SentStatus.SENT))
|
||||
readReceiptNew.setBackgroundResource(R.mipmap.icon_message_unread);
|
||||
}
|
||||
}
|
||||
|
||||
holder.getConvertView().setOnTouchListener(new View.OnTouchListener() {
|
||||
@Override
|
||||
public boolean onTouch(View v, MotionEvent event) {
|
||||
//消費掉軟件盤和插件頁面
|
||||
EventBus.getDefault().post(new InputPanelViewHolderEvent());
|
||||
return true;
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,9 @@
|
||||
package com.yunbao.live.event;
|
||||
|
||||
import com.yunbao.common.bean.BaseModel;
|
||||
|
||||
/**
|
||||
* 點擊聊天列表的消費
|
||||
*/
|
||||
public class InputPanelViewHolderEvent extends BaseModel {
|
||||
}
|
||||
@@ -0,0 +1,48 @@
|
||||
package com.yunbao.live.utils;
|
||||
|
||||
import android.app.Activity;
|
||||
import android.graphics.Rect;
|
||||
import android.os.Build;
|
||||
import android.view.View;
|
||||
import android.widget.FrameLayout;
|
||||
|
||||
public class WindowSoftModeAdjustResizeExecutor {
|
||||
// For more information, see https://code.google.com/p/android/issues/detail?id=5497
|
||||
// To use this class, simply invoke assistActivity() on an Activity that already has its content view set.
|
||||
// CREDIT TO Joseph Johnson (http://stackoverflow.com/users/341631/joseph-johnson) for publishing the original Android solution on stackoverflow.com
|
||||
public static void assistActivity(Activity activity) {
|
||||
new WindowSoftModeAdjustResizeExecutor(activity);
|
||||
}
|
||||
|
||||
private View mChildOfContent;
|
||||
private int usableHeightPrevious;
|
||||
private FrameLayout.LayoutParams frameLayoutParams;
|
||||
|
||||
private WindowSoftModeAdjustResizeExecutor(Activity activity) {
|
||||
FrameLayout content = activity.findViewById(android.R.id.content);
|
||||
mChildOfContent = content.getChildAt(0);
|
||||
mChildOfContent.getViewTreeObserver().addOnGlobalLayoutListener(() -> WindowSoftModeAdjustResizeExecutor.this.possiblyResizeChildOfContent());
|
||||
frameLayoutParams = (FrameLayout.LayoutParams) mChildOfContent.getLayoutParams();
|
||||
}
|
||||
|
||||
private void possiblyResizeChildOfContent() {
|
||||
int usableHeightNow = computeUsableHeight();
|
||||
if (usableHeightNow != usableHeightPrevious) {
|
||||
int usableHeightSansKeyboard = mChildOfContent.getRootView().getHeight();
|
||||
int heightDifference = usableHeightSansKeyboard - usableHeightNow;
|
||||
frameLayoutParams.height = usableHeightSansKeyboard - heightDifference;
|
||||
mChildOfContent.requestLayout();
|
||||
usableHeightPrevious = usableHeightNow;
|
||||
}
|
||||
}
|
||||
|
||||
private int computeUsableHeight() {
|
||||
Rect r = new Rect();
|
||||
mChildOfContent.getWindowVisibleDisplayFrame(r);
|
||||
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP) {
|
||||
return (r.bottom - r.top);
|
||||
}
|
||||
return r.bottom;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -78,21 +78,23 @@ public class InputPanelViewHolder extends LinearLayout implements View.OnClickLi
|
||||
inputPanelView.findViewById(R.id.lt_photo_button).setOnClickListener(this);
|
||||
inputPanelView.findViewById(R.id.lt_choospic_button).setOnClickListener(this);
|
||||
inputPanelView.findViewById(R.id.lt_video_button).setOnClickListener(this);
|
||||
editBtn.setOnFocusChangeListener(focusChangeListener);
|
||||
// editBtn.setOnFocusChangeListener(focusChangeListener);
|
||||
}
|
||||
|
||||
//输入框焦点监听事件
|
||||
View.OnFocusChangeListener focusChangeListener = new OnFocusChangeListener() {
|
||||
@Override
|
||||
public void onFocusChange(View v, boolean hasFocus) {
|
||||
if (!hasFocus) {
|
||||
//失去焦点
|
||||
InputMethodManager imm = (InputMethodManager) getContext().getSystemService(Context.INPUT_METHOD_SERVICE);
|
||||
imm.showSoftInput(editBtn, InputMethodManager.SHOW_FORCED);
|
||||
imm.hideSoftInputFromWindow(editBtn.getWindowToken(), 0); //强制隐藏键盘
|
||||
}
|
||||
}
|
||||
};
|
||||
// //输入框焦点监听事件
|
||||
// View.OnFocusChangeListener focusChangeListener = new OnFocusChangeListener() {
|
||||
// @Override
|
||||
// public void onFocusChange(View v, boolean hasFocus) {
|
||||
// if (!hasFocus&& pluginList.getVisibility()==GONE) {
|
||||
// //失去焦点
|
||||
// InputMethodManager imm = (InputMethodManager) getContext().getSystemService(Context.INPUT_METHOD_SERVICE);
|
||||
// imm.showSoftInput(editBtn, InputMethodManager.SHOW_FORCED);
|
||||
// imm.hideSoftInputFromWindow(editBtn.getWindowToken(), 0); //强制隐藏键盘
|
||||
// } else {
|
||||
// pluginList.setVisibility(GONE);
|
||||
// }
|
||||
// }
|
||||
// };
|
||||
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
@@ -106,6 +108,7 @@ public class InputPanelViewHolder extends LinearLayout implements View.OnClickLi
|
||||
} else if (id == R.id.edit_btn) {
|
||||
if (pluginList.getVisibility() == VISIBLE) {
|
||||
pluginList.setVisibility(GONE);
|
||||
editBtn.setFocusable(true);
|
||||
}
|
||||
} else if (id == R.id.lt_photo_button) {
|
||||
if (messageCallback != null) {
|
||||
@@ -129,11 +132,11 @@ public class InputPanelViewHolder extends LinearLayout implements View.OnClickLi
|
||||
if (pluginList.getVisibility() == VISIBLE) {
|
||||
pluginList.setVisibility(GONE);
|
||||
} else {
|
||||
pluginList.setVisibility(VISIBLE);
|
||||
//失去焦点
|
||||
InputMethodManager imm = (InputMethodManager) getContext().getSystemService(Context.INPUT_METHOD_SERVICE);
|
||||
imm.showSoftInput(editBtn, InputMethodManager.SHOW_FORCED);
|
||||
|
||||
imm.hideSoftInputFromWindow(editBtn.getWindowToken(), 0); //强制隐藏键盘
|
||||
pluginList.setVisibility(VISIBLE);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -205,7 +208,7 @@ public class InputPanelViewHolder extends LinearLayout implements View.OnClickLi
|
||||
};
|
||||
|
||||
/**
|
||||
* 发送媒体消息
|
||||
* 发送媒体消息 隱藏
|
||||
*
|
||||
* @param imagePath
|
||||
*/
|
||||
@@ -303,4 +306,11 @@ public class InputPanelViewHolder extends LinearLayout implements View.OnClickLi
|
||||
messageCallback = callback;
|
||||
}
|
||||
|
||||
/**
|
||||
* 隱藏插件列表
|
||||
*/
|
||||
public void hidePluginList() {
|
||||
pluginList.setVisibility(GONE);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -74,13 +74,14 @@
|
||||
android:layout_height="wrap_content"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintHorizontal_bias="0.0"
|
||||
android:gravity="center_vertical"
|
||||
app:layout_constraintStart_toEndOf="@+id/rc_conversation_portrait_rl"
|
||||
app:layout_constraintTop_toBottomOf="@+id/rc_conversation_title">
|
||||
|
||||
<ImageView
|
||||
android:id="@+id/rc_read_receipt_new"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_width="30dp"
|
||||
android:layout_height="15dp"
|
||||
android:layout_gravity="bottom"
|
||||
android:layout_marginStart="15dp"
|
||||
android:layout_marginEnd="4dp" />
|
||||
|
||||
67
live/src/main/res/layout/view_message_long_click.xml
Normal file
67
live/src/main/res/layout/view_message_long_click.xml
Normal file
@@ -0,0 +1,67 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<androidx.cardview.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="vertical"
|
||||
app:cardBackgroundColor="#474747"
|
||||
app:cardCornerRadius="12dp"
|
||||
app:cardElevation="16dp">
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:padding="10dp">
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="vertical"
|
||||
android:padding="5dp">
|
||||
|
||||
<TextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:drawableTop="@mipmap/icon_message_copy"
|
||||
android:drawablePadding="5dp"
|
||||
android:text="@string/copy"
|
||||
android:textColor="@color/white"
|
||||
android:textSize="16sp" />
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="vertical"
|
||||
android:padding="5dp">
|
||||
|
||||
<TextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:drawableTop="@mipmap/icon_message_copy"
|
||||
android:drawablePadding="5dp"
|
||||
android:text="@string/withdraw"
|
||||
android:textColor="@color/white"
|
||||
android:textSize="16sp" />
|
||||
|
||||
</LinearLayout>
|
||||
|
||||
<LinearLayout
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:orientation="vertical"
|
||||
android:padding="5dp">
|
||||
|
||||
<TextView
|
||||
android:layout_width="wrap_content"
|
||||
android:layout_height="wrap_content"
|
||||
android:drawableTop="@mipmap/icon_message_quote"
|
||||
android:drawablePadding="5dp"
|
||||
android:text="@string/quote"
|
||||
android:textColor="@color/white"
|
||||
android:textSize="16sp" />
|
||||
|
||||
</LinearLayout>
|
||||
</LinearLayout>
|
||||
</androidx.cardview.widget.CardView>
|
||||
BIN
live/src/main/res/mipmap-xhdpi/icon_message_copy.png
Normal file
BIN
live/src/main/res/mipmap-xhdpi/icon_message_copy.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 470 B |
BIN
live/src/main/res/mipmap-xhdpi/icon_message_quote.png
Normal file
BIN
live/src/main/res/mipmap-xhdpi/icon_message_quote.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 1.4 KiB |
BIN
live/src/main/res/mipmap-xhdpi/icon_messagelist_read.png
Normal file
BIN
live/src/main/res/mipmap-xhdpi/icon_messagelist_read.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 2.4 KiB |
BIN
live/src/main/res/mipmap-xhdpi/icon_messagelist_unread.png
Normal file
BIN
live/src/main/res/mipmap-xhdpi/icon_messagelist_unread.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 3.2 KiB |
Reference in New Issue
Block a user