From 729270c3d03941bca80a08511deeba3ec6e69934 Mon Sep 17 00:00:00 2001 From: zlzw <583819556@qq.com> Date: Wed, 11 Oct 2023 16:18:36 +0800 Subject: [PATCH] update --- .../java/com/shayu/onetoone/AppContext.java | 10 +- .../message/ChatMessageFragment.java | 91 ++++++++++--- .../onetoone/bean/MessageChatAuthContent.java | 121 ++++++++++++++++++ .../com/shayu/onetoone/bean/PurseBean.java | 74 +++++++++++ .../manager/CommandMessageManager.java | 19 +++ .../shayu/onetoone/manager/OTONetManager.java | 23 ++++ .../shayu/onetoone/network/OneToOneApi.java | 3 + .../provider/MessageChatAutoItemProvider.java | 84 ++++++++++++ .../MessageChatReceiveGiftItemProvider.java | 15 --- .../onetoone/view/MsgInputPanelForGift.java | 33 +++-- .../main/res/drawable/background_8f7cdf.xml | 2 +- .../main/res/drawable/background_d9d9d9.xml | 15 +++ .../main/res/layout/dialog_bottom_list.xml | 6 + .../res/layout/view_message_chat_auth.xml | 36 ++++++ 14 files changed, 485 insertions(+), 47 deletions(-) create mode 100644 OneToOne/src/main/java/com/shayu/onetoone/bean/MessageChatAuthContent.java create mode 100644 OneToOne/src/main/java/com/shayu/onetoone/bean/PurseBean.java create mode 100644 OneToOne/src/main/java/com/shayu/onetoone/manager/CommandMessageManager.java create mode 100644 OneToOne/src/main/java/com/shayu/onetoone/provider/MessageChatAutoItemProvider.java create mode 100644 OneToOne/src/main/res/drawable/background_d9d9d9.xml create mode 100644 OneToOne/src/main/res/layout/dialog_bottom_list.xml create mode 100644 OneToOne/src/main/res/layout/view_message_chat_auth.xml diff --git a/OneToOne/src/main/java/com/shayu/onetoone/AppContext.java b/OneToOne/src/main/java/com/shayu/onetoone/AppContext.java index 369a34713..ec0d11378 100644 --- a/OneToOne/src/main/java/com/shayu/onetoone/AppContext.java +++ b/OneToOne/src/main/java/com/shayu/onetoone/AppContext.java @@ -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> 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; } diff --git a/OneToOne/src/main/java/com/shayu/onetoone/activity/fragments/message/ChatMessageFragment.java b/OneToOne/src/main/java/com/shayu/onetoone/activity/fragments/message/ChatMessageFragment.java index f8e9c5ef4..c6095ad0d 100644 --- a/OneToOne/src/main/java/com/shayu/onetoone/activity/fragments/message/ChatMessageFragment.java +++ b/OneToOne/src/main/java/com/shayu/onetoone/activity/fragments/message/ChatMessageFragment.java @@ -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() { - @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() { + @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; diff --git a/OneToOne/src/main/java/com/shayu/onetoone/bean/MessageChatAuthContent.java b/OneToOne/src/main/java/com/shayu/onetoone/bean/MessageChatAuthContent.java new file mode 100644 index 000000000..05e149e5b --- /dev/null +++ b/OneToOne/src/main/java/com/shayu/onetoone/bean/MessageChatAuthContent.java @@ -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 CREATOR = new Creator() { + @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); + } +} diff --git a/OneToOne/src/main/java/com/shayu/onetoone/bean/PurseBean.java b/OneToOne/src/main/java/com/shayu/onetoone/bean/PurseBean.java new file mode 100644 index 000000000..f9bd944ee --- /dev/null +++ b/OneToOne/src/main/java/com/shayu/onetoone/bean/PurseBean.java @@ -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; + } +} diff --git a/OneToOne/src/main/java/com/shayu/onetoone/manager/CommandMessageManager.java b/OneToOne/src/main/java/com/shayu/onetoone/manager/CommandMessageManager.java new file mode 100644 index 000000000..a27b767d0 --- /dev/null +++ b/OneToOne/src/main/java/com/shayu/onetoone/manager/CommandMessageManager.java @@ -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){ + + } +} diff --git a/OneToOne/src/main/java/com/shayu/onetoone/manager/OTONetManager.java b/OneToOne/src/main/java/com/shayu/onetoone/manager/OTONetManager.java index 62dd851c1..2b7c02f21 100644 --- a/OneToOne/src/main/java/com/shayu/onetoone/manager/OTONetManager.java +++ b/OneToOne/src/main/java/com/shayu/onetoone/manager/OTONetManager.java @@ -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 callback) { + + API.get().otoApi(mContext) + .getPurseInfo() + .subscribeOn(Schedulers.io()) + .observeOn(AndroidSchedulers.mainThread()) + .subscribe(model -> { + if (callback != null) { + callback.onSuccess(model.getData().getInfo()); + } + }, new Consumer() { + @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); diff --git a/OneToOne/src/main/java/com/shayu/onetoone/network/OneToOneApi.java b/OneToOne/src/main/java/com/shayu/onetoone/network/OneToOneApi.java index 0f3589180..24e4d178b 100644 --- a/OneToOne/src/main/java/com/shayu/onetoone/network/OneToOneApi.java +++ b/OneToOne/src/main/java/com/shayu/onetoone/network/OneToOneApi.java @@ -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>> getGiftList(); + @GET("/api/public/?service=Friendappmoney.info") + Observable> getPurseInfo(); } diff --git a/OneToOne/src/main/java/com/shayu/onetoone/provider/MessageChatAutoItemProvider.java b/OneToOne/src/main/java/com/shayu/onetoone/provider/MessageChatAutoItemProvider.java new file mode 100644 index 000000000..08cac0c11 --- /dev/null +++ b/OneToOne/src/main/java/com/shayu/onetoone/provider/MessageChatAutoItemProvider.java @@ -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 { + 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 list, IViewProviderListener listener) { + super.bindViewHolder(holder, uiMessage, position, list, listener); + } + + @Override + protected void bindMessageContentViewHolder(ViewHolder holder, ViewHolder parentHolder, MessageChatAuthContent content, UiMessage uiMessage, int position, List list, IViewProviderListener 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 list, IViewProviderListener listener) { + return false; + } + + @Override + protected boolean isMessageViewType(MessageContent messageContent) { + return messageContent instanceof MessageChatAuthContent; + } + + @Override + public Spannable getSummarySpannable(Context context, MessageChatAuthContent MessageChatAuthContent) { + return null; + } +} diff --git a/OneToOne/src/main/java/com/shayu/onetoone/provider/MessageChatReceiveGiftItemProvider.java b/OneToOne/src/main/java/com/shayu/onetoone/provider/MessageChatReceiveGiftItemProvider.java index 201c44586..06c12fe0d 100644 --- a/OneToOne/src/main/java/com/shayu/onetoone/provider/MessageChatReceiveGiftItemProvider.java +++ b/OneToOne/src/main/java/com/shayu/onetoone/provider/MessageChatReceiveGiftItemProvider.java @@ -47,21 +47,6 @@ public class MessageChatReceiveGiftItemProvider extends BaseMessageItemProvider< @Override public void bindViewHolder(ViewHolder holder, UiMessage uiMessage, int position, List list, IViewProviderListener 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); } diff --git a/OneToOne/src/main/java/com/shayu/onetoone/view/MsgInputPanelForGift.java b/OneToOne/src/main/java/com/shayu/onetoone/view/MsgInputPanelForGift.java index f3616de7f..4271114fe 100644 --- a/OneToOne/src/main/java/com/shayu/onetoone/view/MsgInputPanelForGift.java +++ b/OneToOne/src/main/java/com/shayu/onetoone/view/MsgInputPanelForGift.java @@ -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>() { @Override public void onSuccess(List data) { - List 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() { + @Override + public void onSuccess(PurseBean data) { + money.setText(data.getStart() + ""); + } + + @Override + public void onError(String error) { + } }); } diff --git a/OneToOne/src/main/res/drawable/background_8f7cdf.xml b/OneToOne/src/main/res/drawable/background_8f7cdf.xml index 81bd439a2..c9fd1aeba 100644 --- a/OneToOne/src/main/res/drawable/background_8f7cdf.xml +++ b/OneToOne/src/main/res/drawable/background_8f7cdf.xml @@ -6,7 +6,7 @@ android:startColor="#8F7CDF" android:endColor="#D56FF0" android:centerColor="#D56FF0" - android:angle="40" + android:angle="45" /> diff --git a/OneToOne/src/main/res/drawable/background_d9d9d9.xml b/OneToOne/src/main/res/drawable/background_d9d9d9.xml new file mode 100644 index 000000000..a8cc7f06f --- /dev/null +++ b/OneToOne/src/main/res/drawable/background_d9d9d9.xml @@ -0,0 +1,15 @@ + + + + + + + + + + \ No newline at end of file diff --git a/OneToOne/src/main/res/layout/dialog_bottom_list.xml b/OneToOne/src/main/res/layout/dialog_bottom_list.xml new file mode 100644 index 000000000..77d9ef65f --- /dev/null +++ b/OneToOne/src/main/res/layout/dialog_bottom_list.xml @@ -0,0 +1,6 @@ + + + + \ No newline at end of file diff --git a/OneToOne/src/main/res/layout/view_message_chat_auth.xml b/OneToOne/src/main/res/layout/view_message_chat_auth.xml new file mode 100644 index 000000000..d9e90a31d --- /dev/null +++ b/OneToOne/src/main/res/layout/view_message_chat_auth.xml @@ -0,0 +1,36 @@ + + + + + +