update
This commit is contained in:
parent
fd377b5280
commit
729270c3d0
@ -10,9 +10,12 @@ import com.alibaba.android.arouter.launcher.ARouter;
|
||||
import com.facebook.FacebookSdk;
|
||||
import com.shayu.onetoone.activity.fragments.message.ChatMessageFragment;
|
||||
import com.shayu.onetoone.activity.message.ChatActivity;
|
||||
import com.shayu.onetoone.bean.MessageChatAuthContent;
|
||||
import com.shayu.onetoone.bean.MessageChatGiftContent;
|
||||
import com.shayu.onetoone.bean.MessageChatTipsContent;
|
||||
import com.shayu.onetoone.manager.CommandMessageManager;
|
||||
import com.shayu.onetoone.provider.CustomConversationProvider;
|
||||
import com.shayu.onetoone.provider.MessageChatAutoItemProvider;
|
||||
import com.shayu.onetoone.provider.MessageChatReceiveGiftItemProvider;
|
||||
import com.shayu.onetoone.provider.MessageChatTipsItemProvider;
|
||||
import com.shayu.onetoone.utils.NeverCrashUtils;
|
||||
@ -39,6 +42,7 @@ import io.rong.imlib.IMLibRTCClient;
|
||||
import io.rong.imlib.RongIMClient;
|
||||
import io.rong.imlib.model.Message;
|
||||
import io.rong.imlib.model.MessageContent;
|
||||
import io.rong.message.CommandMessage;
|
||||
import io.rong.message.TextMessage;
|
||||
|
||||
public class AppContext extends CommonAppContext {
|
||||
@ -80,11 +84,13 @@ public class AppContext extends CommonAppContext {
|
||||
ArrayList<Class<? extends MessageContent>> myMessages = new ArrayList<>();
|
||||
myMessages.add(MessageChatTipsContent.class);
|
||||
myMessages.add(MessageChatGiftContent.class);
|
||||
myMessages.add(MessageChatAuthContent.class);
|
||||
RongIMClient.registerMessageType(myMessages);
|
||||
|
||||
RongConfigCenter.conversationConfig().addMessageProvider(new InstructorSendRewardProvider(getApplicationContext()));
|
||||
RongConfigCenter.conversationConfig().addMessageProvider(new MessageChatTipsItemProvider(getApplicationContext()));
|
||||
RongConfigCenter.conversationConfig().addMessageProvider(new MessageChatReceiveGiftItemProvider(getApplicationContext()));
|
||||
RongConfigCenter.conversationConfig().addMessageProvider(new MessageChatAutoItemProvider(getApplicationContext()));
|
||||
|
||||
String appKey = "pvxdm17jpd3hr";
|
||||
boolean enablePush = true;
|
||||
@ -101,9 +107,11 @@ public class AppContext extends CommonAppContext {
|
||||
RongcloudIMManager.addRongcloudIMOnReceiveMessageListener(new RongIMClient.OnReceiveMessageWrapperListener() {
|
||||
@Override
|
||||
public boolean onReceived(Message message, int left, boolean hasPackage, boolean offline) {
|
||||
System.out.println("初始化IM消息:"+message.getContent());
|
||||
System.out.println("初始化IM消息:" + message.getContent());
|
||||
if (message.getContent() instanceof TextMessage) {
|
||||
TextMessage content = (TextMessage) message.getContent();
|
||||
} else if (message.getContent() instanceof CommandMessage) {
|
||||
CommandMessageManager.getInstance().onMessage((CommandMessage) message.getContent());
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
@ -3,6 +3,7 @@ package com.shayu.onetoone.activity.fragments.message;
|
||||
import android.app.Dialog;
|
||||
import android.net.Uri;
|
||||
import android.os.Bundle;
|
||||
import android.util.Log;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
@ -16,9 +17,11 @@ import androidx.annotation.Nullable;
|
||||
|
||||
import com.makeramen.roundedimageview.RoundedImageView;
|
||||
import com.shayu.onetoone.R;
|
||||
import com.shayu.onetoone.bean.MessageChatAuthContent;
|
||||
import com.shayu.onetoone.bean.MessageChatTipsContent;
|
||||
import com.shayu.onetoone.bean.UserBean;
|
||||
import com.shayu.onetoone.dialog.TipsDialog;
|
||||
import com.shayu.onetoone.listener.OnCallStatusListener;
|
||||
import com.shayu.onetoone.listener.OnDialogClickListener;
|
||||
import com.shayu.onetoone.listener.OnSendMessageListener;
|
||||
import com.shayu.onetoone.manager.OTONetManager;
|
||||
@ -68,6 +71,7 @@ public class ChatMessageFragment extends AbsConversationFragment {
|
||||
Button follow;
|
||||
|
||||
private String token;
|
||||
private static final String TAG = "聊天界面";
|
||||
|
||||
@Override
|
||||
public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
|
||||
@ -81,24 +85,7 @@ public class ChatMessageFragment extends AbsConversationFragment {
|
||||
img.setOnClickListener(v -> cameraUtil.getImageByCamera());
|
||||
initCamera();
|
||||
|
||||
call.setOnClickListener(v -> {
|
||||
MessageChatTipsContent bean = MessageChatTipsContent.obtain(WordUtil.getNewString(R.string.message_chat_tip1));
|
||||
IMCenter.getInstance().insertOutgoingMessage(conversationType, targetId, Message.SentStatus.SENT, bean, System.currentTimeMillis(), new RongIMClient.ResultCallback<Message>() {
|
||||
@Override
|
||||
public void onSuccess(Message message) {
|
||||
ToastUtil.show(R.string.system_tip_success);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onError(RongIMClient.ErrorCode e) {
|
||||
ToastUtil.show(R.string.system_tip_failure);
|
||||
System.out.println("失败:" + e.getMessage());
|
||||
|
||||
}
|
||||
});
|
||||
});
|
||||
mSendBtn.setOnClickListener(v -> {
|
||||
System.out.println("点击");
|
||||
SendMessageManager.sendMessageForText(targetId, mEditText.getText().toString(), new OnSendMessageListener() {
|
||||
@Override
|
||||
public void onSuccess(String token) {
|
||||
@ -187,12 +174,82 @@ public class ChatMessageFragment extends AbsConversationFragment {
|
||||
gift.setOnClickListener(v -> {
|
||||
giftPanel.show();
|
||||
});
|
||||
|
||||
video.setOnClickListener(v -> {
|
||||
checkAuth(new OnSendMessageListener() {
|
||||
@Override
|
||||
public void onSuccess(String token) {
|
||||
super.onSuccess(token);
|
||||
ToastUtil.show("弹视频聊天");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onError(int status, String msg) {
|
||||
super.onError(status, msg);
|
||||
sendAuthRequest();
|
||||
}
|
||||
});
|
||||
});
|
||||
call.setOnClickListener(v -> {
|
||||
checkAuth(new OnSendMessageListener() {
|
||||
@Override
|
||||
public void onSuccess(String token) {
|
||||
super.onSuccess(token);
|
||||
ToastUtil.show("弹音频聊天");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onError(int status, String msg) {
|
||||
super.onError(status, msg);
|
||||
sendAuthRequest();
|
||||
}
|
||||
});
|
||||
});
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
throw new RuntimeException(e);
|
||||
}
|
||||
}
|
||||
|
||||
private void checkAuth(OnSendMessageListener listener) {
|
||||
OTONetManager.getInstance(mContext)
|
||||
.getTargetUserInfo(Integer.parseInt(targetId), new HttpCallback<UserBean>() {
|
||||
@Override
|
||||
public void onSuccess(UserBean data) {
|
||||
if (data.getInfo().getSage_auth() == 1) {
|
||||
listener.onError(0, "");
|
||||
} else {
|
||||
listener.onSuccess("");
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onError(String error) {
|
||||
Log.e(TAG, "onError: " + error);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
private void sendAuthRequest() {
|
||||
MessageChatAuthContent content = MessageChatAuthContent.obtain("");
|
||||
IMCenter.getInstance().sendMessage(Message.obtain(targetId, Conversation.ConversationType.PRIVATE, content), null, null, new IRongCallback.ISendMessageCallback() {
|
||||
@Override
|
||||
public void onAttached(Message message) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onSuccess(Message message) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onError(Message message, RongIMClient.ErrorCode errorCode) {
|
||||
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
private void sendText() {
|
||||
Conversation.ConversationType conversationType = Conversation.ConversationType.PRIVATE;
|
||||
|
@ -0,0 +1,121 @@
|
||||
package com.shayu.onetoone.bean;
|
||||
|
||||
import android.os.Parcel;
|
||||
import android.os.Parcelable;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
|
||||
import org.json.JSONException;
|
||||
import org.json.JSONObject;
|
||||
|
||||
import java.io.UnsupportedEncodingException;
|
||||
|
||||
import io.rong.common.ParcelUtils;
|
||||
import io.rong.imlib.MessageTag;
|
||||
import io.rong.imlib.model.MessageContent;
|
||||
|
||||
@MessageTag(value = "MessageChatAuthContent", flag = MessageTag.ISPERSISTED)
|
||||
public class MessageChatAuthContent extends MessageContent implements Parcelable {
|
||||
private String content;
|
||||
|
||||
private MessageChatAuthContent() {
|
||||
}
|
||||
public MessageChatAuthContent(byte[] data) {
|
||||
if (data == null) {
|
||||
return;
|
||||
}
|
||||
String jsonStr = null;
|
||||
try {
|
||||
jsonStr = new String(data, "UTF-8");
|
||||
} catch (UnsupportedEncodingException e) {
|
||||
}
|
||||
if (jsonStr == null) {
|
||||
return;
|
||||
}
|
||||
|
||||
try {
|
||||
JSONObject jsonObj = new JSONObject(jsonStr);
|
||||
// 消息携带用户信息时, 自定义消息需添加下面代码
|
||||
if (jsonObj.has("user")) {
|
||||
setUserInfo(parseJsonToUserInfo(jsonObj.getJSONObject("user")));
|
||||
}
|
||||
// 用于群组聊天, 消息携带 @ 人信息时, 自定义消息需添加下面代码
|
||||
if (jsonObj.has("mentionedInfo")) {
|
||||
setMentionedInfo(parseJsonToMentionInfo(jsonObj.getJSONObject("mentionedInfo")));
|
||||
}
|
||||
// 将所有自定义变量从收到的 json 解析并赋值
|
||||
if (jsonObj.has("content")) {
|
||||
content = jsonObj.optString("content");
|
||||
}
|
||||
} catch (JSONException e) {
|
||||
}
|
||||
}
|
||||
|
||||
public MessageChatAuthContent setContent(String content) {
|
||||
this.content = content;
|
||||
return this;
|
||||
}
|
||||
|
||||
public String getContent() {
|
||||
return content;
|
||||
}
|
||||
|
||||
protected MessageChatAuthContent(Parcel in) {
|
||||
setExtra(ParcelUtils.readFromParcel(in));
|
||||
setContent(ParcelUtils.readFromParcel(in));
|
||||
}
|
||||
// 快速构建消息对象方法
|
||||
public static MessageChatAuthContent obtain(String content) {
|
||||
MessageChatAuthContent msg = new MessageChatAuthContent();
|
||||
msg.content = content;
|
||||
return msg;
|
||||
}
|
||||
|
||||
|
||||
public static final Creator<MessageChatAuthContent> CREATOR = new Creator<MessageChatAuthContent>() {
|
||||
@Override
|
||||
public MessageChatAuthContent createFromParcel(Parcel in) {
|
||||
return new MessageChatAuthContent(in);
|
||||
}
|
||||
|
||||
@Override
|
||||
public MessageChatAuthContent[] newArray(int size) {
|
||||
return new MessageChatAuthContent[size];
|
||||
}
|
||||
};
|
||||
|
||||
@Override
|
||||
public byte[] encode() {
|
||||
JSONObject jsonObj = new JSONObject();
|
||||
try {
|
||||
// 消息携带用户信息时, 自定义消息需添加下面代码
|
||||
if (getJSONUserInfo() != null) {
|
||||
jsonObj.putOpt("user", getJSONUserInfo());
|
||||
}
|
||||
// 用于群组聊天, 消息携带 @ 人信息时, 自定义消息需添加下面代码
|
||||
if (getJsonMentionInfo() != null) {
|
||||
jsonObj.putOpt("mentionedInfo", getJsonMentionInfo());
|
||||
}
|
||||
// 将所有自定义消息的内容,都序列化至 json 对象中
|
||||
jsonObj.put("content", this.content);
|
||||
} catch (JSONException e) {
|
||||
}
|
||||
|
||||
try {
|
||||
return jsonObj.toString().getBytes("UTF-8");
|
||||
} catch (UnsupportedEncodingException e) {
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public int describeContents() {
|
||||
return 0;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void writeToParcel(@NonNull Parcel dest, int flags) {
|
||||
ParcelUtils.writeToParcel(dest, getExtra());
|
||||
ParcelUtils.writeToParcel(dest, content);
|
||||
}
|
||||
}
|
@ -0,0 +1,74 @@
|
||||
package com.shayu.onetoone.bean;
|
||||
|
||||
import com.google.gson.annotations.SerializedName;
|
||||
import com.yunbao.common.bean.BaseModel;
|
||||
|
||||
public class PurseBean extends BaseModel {
|
||||
@SerializedName("yuanbao")
|
||||
private long start;
|
||||
private long coin;
|
||||
private long gold;
|
||||
private String msgYbDec;
|
||||
private String msgYbInc;
|
||||
private String msgYb;
|
||||
private String msgZsDec;
|
||||
|
||||
public PurseBean() {
|
||||
}
|
||||
|
||||
public long getStart() {
|
||||
return start;
|
||||
}
|
||||
|
||||
public void setStart(long start) {
|
||||
this.start = start;
|
||||
}
|
||||
|
||||
public long getCoin() {
|
||||
return coin;
|
||||
}
|
||||
|
||||
public void setCoin(long coin) {
|
||||
this.coin = coin;
|
||||
}
|
||||
|
||||
public long getGold() {
|
||||
return gold;
|
||||
}
|
||||
|
||||
public void setGold(long gold) {
|
||||
this.gold = gold;
|
||||
}
|
||||
|
||||
public String getMsgYbDec() {
|
||||
return msgYbDec;
|
||||
}
|
||||
|
||||
public void setMsgYbDec(String msgYbDec) {
|
||||
this.msgYbDec = msgYbDec;
|
||||
}
|
||||
|
||||
public String getMsgYbInc() {
|
||||
return msgYbInc;
|
||||
}
|
||||
|
||||
public void setMsgYbInc(String msgYbInc) {
|
||||
this.msgYbInc = msgYbInc;
|
||||
}
|
||||
|
||||
public String getMsgYb() {
|
||||
return msgYb;
|
||||
}
|
||||
|
||||
public void setMsgYb(String msgYb) {
|
||||
this.msgYb = msgYb;
|
||||
}
|
||||
|
||||
public String getMsgZsDec() {
|
||||
return msgZsDec;
|
||||
}
|
||||
|
||||
public void setMsgZsDec(String msgZsDec) {
|
||||
this.msgZsDec = msgZsDec;
|
||||
}
|
||||
}
|
@ -0,0 +1,19 @@
|
||||
package com.shayu.onetoone.manager;
|
||||
|
||||
import io.rong.message.CommandMessage;
|
||||
|
||||
public class CommandMessageManager {
|
||||
private static CommandMessageManager manager;
|
||||
|
||||
private CommandMessageManager() {
|
||||
}
|
||||
public static CommandMessageManager getInstance() {
|
||||
if(manager==null){
|
||||
manager=new CommandMessageManager();
|
||||
}
|
||||
return manager;
|
||||
}
|
||||
public void onMessage(CommandMessage message){
|
||||
|
||||
}
|
||||
}
|
@ -12,6 +12,7 @@ import com.shayu.onetoone.bean.HomeItemBean;
|
||||
import com.shayu.onetoone.bean.JoinAnchorBean;
|
||||
import com.shayu.onetoone.bean.MessageConsumeConfigBean;
|
||||
import com.shayu.onetoone.bean.OfficialNoticeBean;
|
||||
import com.shayu.onetoone.bean.PurseBean;
|
||||
import com.shayu.onetoone.bean.SystemMessageBean;
|
||||
import com.shayu.onetoone.bean.TargetUserInfoBean;
|
||||
import com.shayu.onetoone.bean.UserBean;
|
||||
@ -24,6 +25,7 @@ import com.yunbao.common.http.ResponseModel;
|
||||
import com.yunbao.common.http.base.HttpCallback;
|
||||
import com.yunbao.common.manager.IMLoginManager;
|
||||
import com.yunbao.common.utils.MD5Util;
|
||||
import com.yunbao.faceunity.entity.PropBean;
|
||||
|
||||
import java.io.File;
|
||||
import java.util.ArrayList;
|
||||
@ -606,6 +608,27 @@ public class OTONetManager {
|
||||
}).isDisposed();
|
||||
}
|
||||
|
||||
public void getPurseInfo(HttpCallback<PurseBean> callback) {
|
||||
|
||||
API.get().otoApi(mContext)
|
||||
.getPurseInfo()
|
||||
.subscribeOn(Schedulers.io())
|
||||
.observeOn(AndroidSchedulers.mainThread())
|
||||
.subscribe(model -> {
|
||||
if (callback != null) {
|
||||
callback.onSuccess(model.getData().getInfo());
|
||||
}
|
||||
}, new Consumer<Throwable>() {
|
||||
@Override
|
||||
public void accept(Throwable throwable) throws Exception {
|
||||
Log.e(TAG, "accept: ", throwable);
|
||||
if (callback != null) {
|
||||
callback.onError(mContext.getString(com.yunbao.common.R.string.net_error));
|
||||
}
|
||||
}
|
||||
}).isDisposed();
|
||||
}
|
||||
|
||||
private MultipartBody.Part createUploadFile(File file) {
|
||||
RequestBody requestBody = RequestBody.create(MediaType.parse("multipart/form-data"), file);
|
||||
return MultipartBody.Part.createFormData("file", file.getName(), requestBody);
|
||||
|
@ -7,6 +7,7 @@ import com.shayu.onetoone.bean.HomeItemBean;
|
||||
import com.shayu.onetoone.bean.JoinAnchorBean;
|
||||
import com.shayu.onetoone.bean.MessageConsumeConfigBean;
|
||||
import com.shayu.onetoone.bean.OfficialNoticeBean;
|
||||
import com.shayu.onetoone.bean.PurseBean;
|
||||
import com.shayu.onetoone.bean.SystemMessageBean;
|
||||
import com.shayu.onetoone.bean.TargetUserInfoBean;
|
||||
import com.shayu.onetoone.bean.UserBean;
|
||||
@ -134,6 +135,8 @@ public interface OneToOneApi {
|
||||
|
||||
@GET("/api/public/?service=Friendappmsg.giftList")
|
||||
Observable<ResponseModel<List<GiftBean>>> getGiftList();
|
||||
@GET("/api/public/?service=Friendappmoney.info")
|
||||
Observable<ResponseModel<PurseBean>> getPurseInfo();
|
||||
|
||||
}
|
||||
|
||||
|
@ -0,0 +1,84 @@
|
||||
package com.shayu.onetoone.provider;
|
||||
|
||||
import android.content.Context;
|
||||
import android.text.Spannable;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.Button;
|
||||
|
||||
import com.shayu.onetoone.R;
|
||||
import com.shayu.onetoone.bean.MessageChatAuthContent;
|
||||
import com.yunbao.common.manager.IMLoginManager;
|
||||
import com.yunbao.common.utils.ToastUtil;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import io.rong.common.RLog;
|
||||
import io.rong.imkit.conversation.messgelist.provider.BaseMessageItemProvider;
|
||||
import io.rong.imkit.model.UiMessage;
|
||||
import io.rong.imkit.widget.adapter.IViewProviderListener;
|
||||
import io.rong.imkit.widget.adapter.ViewHolder;
|
||||
import io.rong.imlib.model.Message;
|
||||
import io.rong.imlib.model.MessageContent;
|
||||
|
||||
/**
|
||||
* 聊天认证适配器
|
||||
*/
|
||||
public class MessageChatAutoItemProvider extends BaseMessageItemProvider<MessageChatAuthContent> {
|
||||
private Context mContext;
|
||||
|
||||
public MessageChatAutoItemProvider(Context mContext) {
|
||||
this.mContext = mContext;
|
||||
mConfig.showPortrait = true;
|
||||
mConfig.showSummaryWithName = false;
|
||||
mConfig.showContentBubble = false;
|
||||
mConfig.centerInHorizontal = false;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected ViewHolder onCreateMessageContentViewHolder(ViewGroup parent, int viewType) {
|
||||
return ViewHolder.createViewHolder(mContext, parent, R.layout.view_message_chat_auth);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void bindViewHolder(ViewHolder holder, UiMessage uiMessage, int position, List<UiMessage> list, IViewProviderListener<UiMessage> listener) {
|
||||
super.bindViewHolder(holder, uiMessage, position, list, listener);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void bindMessageContentViewHolder(ViewHolder holder, ViewHolder parentHolder, MessageChatAuthContent content, UiMessage uiMessage, int position, List<UiMessage> list, IViewProviderListener<UiMessage> listener) {
|
||||
if (uiMessage.getMessage().getMessageDirection() == Message.MessageDirection.SEND) {
|
||||
holder.getView(R.id.btn).setBackgroundResource(R.drawable.background_d9d9d9);
|
||||
holder.getView(R.id.btn).setEnabled(false);
|
||||
holder.setText(R.id.tips,"邀請對方完成真人認證,開通通話權限");
|
||||
((Button)holder.getView(R.id.btn)).setText("待开通");
|
||||
} else {
|
||||
holder.getView(R.id.btn).setBackgroundResource(R.drawable.background_8f7cdf);
|
||||
((Button)holder.getView(R.id.btn)).setText("去开通");
|
||||
holder.setText(R.id.tips,"對方邀請您完成真人認證,開通通話權限");
|
||||
holder.getView(R.id.btn).setEnabled(true);
|
||||
}
|
||||
holder.setOnClickListener(R.id.btn, new View.OnClickListener() {
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
ToastUtil.show("跳实名认证页面");
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
protected boolean onItemClick(ViewHolder holder, MessageChatAuthContent MessageChatAuthContent, UiMessage uiMessage, int position, List<UiMessage> list, IViewProviderListener<UiMessage> listener) {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
protected boolean isMessageViewType(MessageContent messageContent) {
|
||||
return messageContent instanceof MessageChatAuthContent;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Spannable getSummarySpannable(Context context, MessageChatAuthContent MessageChatAuthContent) {
|
||||
return null;
|
||||
}
|
||||
}
|
@ -47,21 +47,6 @@ public class MessageChatReceiveGiftItemProvider extends BaseMessageItemProvider<
|
||||
|
||||
@Override
|
||||
public void bindViewHolder(ViewHolder holder, UiMessage uiMessage, int position, List<UiMessage> list, IViewProviderListener<UiMessage> listener) {
|
||||
if (holder instanceof MessageViewHolder) {
|
||||
try {
|
||||
MessageContent content = uiMessage.getMessage().getContent();
|
||||
if (content instanceof MessageChatGiftContent) {
|
||||
MessageChatGiftContent messageChatGiftContent = (MessageChatGiftContent) content;
|
||||
if (messageChatGiftContent.getSendUid().equals(IMLoginManager.get(mContext).getUserInfo().getId() + "")) {
|
||||
uiMessage.getMessage().setMessageDirection(Message.MessageDirection.SEND);
|
||||
} else {
|
||||
uiMessage.getMessage().setMessageDirection(Message.MessageDirection.RECEIVE);
|
||||
}
|
||||
}
|
||||
} catch (ClassCastException var10) {
|
||||
RLog.e("BaseMessageItemProvider", "bindViewHolder MessageContent cast Exception, e:" + var10);
|
||||
}
|
||||
}
|
||||
super.bindViewHolder(holder, uiMessage, position, list, listener);
|
||||
}
|
||||
|
||||
|
@ -1,42 +1,37 @@
|
||||
package com.shayu.onetoone.view;
|
||||
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
import android.widget.Button;
|
||||
import android.widget.TextView;
|
||||
|
||||
import androidx.fragment.app.FragmentActivity;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.shayu.onetoone.R;
|
||||
import com.shayu.onetoone.adapter.GiftListAdapter;
|
||||
import com.shayu.onetoone.bean.GiftBean;
|
||||
import com.shayu.onetoone.bean.MessageChatGiftContent;
|
||||
import com.shayu.onetoone.bean.MessageChatTipsContent;
|
||||
import com.shayu.onetoone.bean.PurseBean;
|
||||
import com.shayu.onetoone.listener.OnSendMessageListener;
|
||||
import com.shayu.onetoone.manager.OTONetManager;
|
||||
import com.shayu.onetoone.manager.SendMessageManager;
|
||||
import com.shayu.onetoone.widget.PagerConfig;
|
||||
import com.shayu.onetoone.widget.PagerGridLayoutManager;
|
||||
import com.shayu.onetoone.widget.PagerGridSnapHelper;
|
||||
import com.yunbao.common.CommonAppConfig;
|
||||
import com.yunbao.common.http.base.HttpCallback;
|
||||
import com.yunbao.common.manager.IMLoginManager;
|
||||
import com.yunbao.common.utils.ToastUtil;
|
||||
import com.yunbao.common.utils.WordUtil;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import androidx.fragment.app.FragmentActivity;
|
||||
import androidx.recyclerview.widget.RecyclerView;
|
||||
|
||||
import io.rong.imkit.IMCenter;
|
||||
import io.rong.imkit.conversation.extension.RongExtension;
|
||||
import io.rong.imlib.IRongCallback;
|
||||
import io.rong.imlib.RongIMClient;
|
||||
import io.rong.imlib.model.Conversation;
|
||||
import io.rong.imlib.model.Message;
|
||||
import io.rong.imlib.model.SendMessageOption;
|
||||
import kotlinx.coroutines.channels.Send;
|
||||
|
||||
public class MsgInputPanelForGift extends AbsInputPanel {
|
||||
RecyclerView gifList;
|
||||
@ -102,6 +97,7 @@ public class MsgInputPanelForGift extends AbsInputPanel {
|
||||
|
||||
@Override
|
||||
public void onSuccess(Message message) {
|
||||
iniPurse();
|
||||
SendMessageManager.onCallSuccess(token, new OnSendMessageListener() {
|
||||
@Override
|
||||
public void onError(int status, String msg) {
|
||||
@ -121,20 +117,31 @@ public class MsgInputPanelForGift extends AbsInputPanel {
|
||||
}
|
||||
|
||||
private void initData() {
|
||||
iniPurse();
|
||||
OTONetManager.getInstance(mContext)
|
||||
.getGiftList(new HttpCallback<List<GiftBean>>() {
|
||||
@Override
|
||||
public void onSuccess(List<GiftBean> data) {
|
||||
List<GiftBean> list = new ArrayList<>();
|
||||
for (int i = 0; i < 10; i++) {
|
||||
list.addAll(data);
|
||||
}
|
||||
mAdapter.setList(data);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onError(String error) {
|
||||
|
||||
}
|
||||
});
|
||||
}
|
||||
private void iniPurse(){
|
||||
OTONetManager.getInstance(mContext)
|
||||
.getPurseInfo(new HttpCallback<PurseBean>() {
|
||||
@Override
|
||||
public void onSuccess(PurseBean data) {
|
||||
money.setText(data.getStart() + "");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onError(String error) {
|
||||
|
||||
}
|
||||
});
|
||||
}
|
||||
|
@ -6,7 +6,7 @@
|
||||
android:startColor="#8F7CDF"
|
||||
android:endColor="#D56FF0"
|
||||
android:centerColor="#D56FF0"
|
||||
android:angle="40"
|
||||
android:angle="45"
|
||||
/>
|
||||
<corners android:radius="30dp"></corners>
|
||||
</shape>
|
||||
|
15
OneToOne/src/main/res/drawable/background_d9d9d9.xml
Normal file
15
OneToOne/src/main/res/drawable/background_d9d9d9.xml
Normal file
@ -0,0 +1,15 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<selector xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<item>
|
||||
<shape>
|
||||
<gradient
|
||||
android:startColor="#D9D9D9"
|
||||
android:endColor="#D9D9D9"
|
||||
android:centerColor="#D9D9D9"
|
||||
android:angle="40"
|
||||
/>
|
||||
<corners android:radius="30dp"></corners>
|
||||
</shape>
|
||||
</item>
|
||||
|
||||
</selector>
|
6
OneToOne/src/main/res/layout/dialog_bottom_list.xml
Normal file
6
OneToOne/src/main/res/layout/dialog_bottom_list.xml
Normal file
@ -0,0 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent">
|
||||
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
36
OneToOne/src/main/res/layout/view_message_chat_auth.xml
Normal file
36
OneToOne/src/main/res/layout/view_message_chat_auth.xml
Normal file
@ -0,0 +1,36 @@
|
||||
<?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:background="@drawable/bg_chat_gift"
|
||||
android:layout_width="130dp"
|
||||
android:layout_height="90dp">
|
||||
|
||||
<TextView
|
||||
android:id="@+id/tips"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="11dp"
|
||||
android:layout_marginTop="10dp"
|
||||
android:layout_marginEnd="8dp"
|
||||
android:maxWidth="261dp"
|
||||
android:text="對方邀請您完成真人認證,開通通話權限"
|
||||
android:textColor="#333333"
|
||||
android:textSize="12sp"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent" />
|
||||
|
||||
<Button
|
||||
android:id="@+id/btn"
|
||||
android:layout_width="69dp"
|
||||
android:layout_height="23dp"
|
||||
android:layout_marginBottom="10dp"
|
||||
android:background="@drawable/background_8f7cdf"
|
||||
android:text="去开通"
|
||||
android:textColor="#FFF"
|
||||
android:textSize="10sp"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent" />
|
||||
</androidx.constraintlayout.widget.ConstraintLayout>
|
Loading…
x
Reference in New Issue
Block a user