From 641e3b0bf2824da4d0fdc20a5d31a867ebc7c7a1 Mon Sep 17 00:00:00 2001 From: huangjian Date: Thu, 11 Mar 2021 18:47:17 +0800 Subject: [PATCH] =?UTF-8?q?=E6=88=91=E7=9A=84tab=20=E7=A7=81=E8=81=8A?= =?UTF-8?q?=E9=A1=B5=E9=9D=A2=20UI=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/proguard-rules.pro | 10 + .../erban/home/fragment/MeFragment.java | 9 +- .../erban/ui/im/chat/MVHChatterBoxInit.java | 94 ---- .../erban/ui/im/chat/MVHDiceThrow.java | 64 --- .../erban/ui/im/chat/MsgViewHolderTip.java | 47 -- .../chat/MsgViewHolderVoiceBottleSayHi.java | 136 ----- .../ui/im/chat/SysMsgVoiceViewHolder.java | 70 --- .../ui/im/recent/holder/RecentViewHolder.java | 2 +- .../yizhuan/erban/ui/webview/JSInterface.java | 2 +- .../res/drawable/bg_common_touch_while.xml | 2 +- .../main/res/drawable/bg_nim_msg_touch.xml | 6 + .../main/res/layout/activity_p2p_message.xml | 12 +- .../main/res/layout/fragment_game_home.xml | 2 +- app/src/main/res/layout/fragment_me.xml | 526 +++++++++--------- .../main/res/layout/im_customer_msg_text.xml | 2 +- app/src/main/res/layout/item_home_dynamic.xml | 2 +- app/src/main/res/layout/item_home_tab_map.xml | 2 +- .../layout/layout_recommend_topic_header.xml | 2 +- .../main/res/layout/list_item_online_user.xml | 1 - .../nim_recent_contact_list_item_new.xml | 4 +- .../layout/room_invite_list_item_layout.xml | 1 - .../res/mipmap-xhdpi/ic_me_collection.png | Bin 0 -> 1847 bytes .../main/res/mipmap-xhdpi/ic_me_my_room.png | Bin 0 -> 1914 bytes .../icon_union.png | Bin app/src/main/res/values/colors.xml | 1 + .../res/layout/item_square_dynamic.xml | 6 +- .../ApprenticeMissionFourViewHolder.java | 195 ------- .../ApprenticeMissionOneViewHolder.java | 73 --- .../ApprenticeMissionThreeViewHolder.java | 159 ------ .../ApprenticeMissionTwoViewHolder.java | 209 ------- .../MasterMissionFourViewHolder.java | 103 ---- .../MasterMissionOneViewHolder.java | 151 ----- .../MasterMissionThreeViewHolder.java | 376 ------------- .../MasterMissionTwoViewHolder.java | 149 ----- .../MentoringSharingRoomViewHolder.java | 160 ------ .../viewholder/MentoringTipsViewHolder.java | 46 -- .../viewholder/MissionViewHolderBase.java | 93 ---- .../res/layout/activity_local_music_list.xml | 1 - .../res/layout/fragment_music_list.xml | 2 - .../viewholder/ChatRoomMsgViewHolderText.java | 3 +- .../res/layout/nim_message_item_text.xml | 4 +- .../res/layout/nim_msg_fragment.xml | 3 +- .../res/layout/activity_box_help.xml | 1 - .../drawable-hdpi/nim_bg_message_tip.9.png | Bin 261 -> 0 bytes .../nim_message_input_emotion.png | Bin 1644 -> 0 bytes .../nim_message_input_emotion_pressed.png | Bin 1581 -> 0 bytes .../nim_message_input_keyboard.png | Bin 1756 -> 0 bytes .../drawable-hdpi/nim_message_input_plus.png | Bin 1542 -> 0 bytes .../nim_message_input_plus_pressed.webp | Bin 1328 -> 0 bytes .../nim_message_input_voice_pressed.png | Bin 1965 -> 0 bytes .../res/drawable-xhdpi/arrow_left_white.png | Bin 0 -> 407 bytes .../nim_message_input_emotion.png | Bin 0 -> 2619 bytes .../nim_message_input_emotion_pressed.png | Bin 0 -> 2768 bytes .../nim_message_input_keyboard.png | Bin 1190 -> 2074 bytes .../drawable-xhdpi/nim_message_input_plus.png | Bin 1199 -> 2052 bytes .../nim_message_input_plus_pressed.png | Bin 1314 -> 2273 bytes .../nim_message_input_voice_pressed.png | Bin 1750 -> 2945 bytes nim_uikit/res/drawable/bg_message_input.xml | 2 +- .../res/drawable/bg_nim_water_drop_other.xml | 2 +- .../res/drawable/bg_nim_water_drop_self.xml | 2 +- nim_uikit/res/drawable/nim_bg_message_tip.xml | 8 + .../nim_message_activity_bottom_layout.xml | 1 + .../nim_message_activity_text_layout.xml | 1 - nim_uikit/res/layout/nim_message_fragment.xml | 19 - nim_uikit/res/layout/nim_message_item.xml | 3 +- .../res/layout/nim_message_item_text.xml | 11 +- nim_uikit/res/values/colors-ptr.xml | 3 +- .../uikit/api/wrapper/NimToolBarOptions.java | 2 +- .../session/viewholder/MsgViewHolderText.java | 29 +- 69 files changed, 331 insertions(+), 2483 deletions(-) delete mode 100644 app/src/main/java/com/yizhuan/erban/ui/im/chat/MVHChatterBoxInit.java delete mode 100644 app/src/main/java/com/yizhuan/erban/ui/im/chat/MVHDiceThrow.java delete mode 100644 app/src/main/java/com/yizhuan/erban/ui/im/chat/MsgViewHolderTip.java delete mode 100644 app/src/main/java/com/yizhuan/erban/ui/im/chat/MsgViewHolderVoiceBottleSayHi.java delete mode 100644 app/src/main/java/com/yizhuan/erban/ui/im/chat/SysMsgVoiceViewHolder.java create mode 100644 app/src/main/res/drawable/bg_nim_msg_touch.xml create mode 100644 app/src/main/res/mipmap-xhdpi/ic_me_collection.png create mode 100644 app/src/main/res/mipmap-xhdpi/ic_me_my_room.png rename app/src/main/res/{mipmap-xxhdpi => mipmap-xhdpi}/icon_union.png (100%) delete mode 100644 app/src/module_mentoring_relationship/java/com/yizhuan/tutu/mentoring_relationship/viewholder/ApprenticeMissionFourViewHolder.java delete mode 100644 app/src/module_mentoring_relationship/java/com/yizhuan/tutu/mentoring_relationship/viewholder/ApprenticeMissionOneViewHolder.java delete mode 100644 app/src/module_mentoring_relationship/java/com/yizhuan/tutu/mentoring_relationship/viewholder/ApprenticeMissionThreeViewHolder.java delete mode 100644 app/src/module_mentoring_relationship/java/com/yizhuan/tutu/mentoring_relationship/viewholder/ApprenticeMissionTwoViewHolder.java delete mode 100644 app/src/module_mentoring_relationship/java/com/yizhuan/tutu/mentoring_relationship/viewholder/MasterMissionFourViewHolder.java delete mode 100644 app/src/module_mentoring_relationship/java/com/yizhuan/tutu/mentoring_relationship/viewholder/MasterMissionOneViewHolder.java delete mode 100644 app/src/module_mentoring_relationship/java/com/yizhuan/tutu/mentoring_relationship/viewholder/MasterMissionThreeViewHolder.java delete mode 100644 app/src/module_mentoring_relationship/java/com/yizhuan/tutu/mentoring_relationship/viewholder/MasterMissionTwoViewHolder.java delete mode 100644 app/src/module_mentoring_relationship/java/com/yizhuan/tutu/mentoring_relationship/viewholder/MentoringSharingRoomViewHolder.java delete mode 100644 app/src/module_mentoring_relationship/java/com/yizhuan/tutu/mentoring_relationship/viewholder/MentoringTipsViewHolder.java delete mode 100644 app/src/module_mentoring_relationship/java/com/yizhuan/tutu/mentoring_relationship/viewholder/MissionViewHolderBase.java delete mode 100644 nim_uikit/res/drawable-hdpi/nim_bg_message_tip.9.png delete mode 100644 nim_uikit/res/drawable-hdpi/nim_message_input_emotion.png delete mode 100644 nim_uikit/res/drawable-hdpi/nim_message_input_emotion_pressed.png delete mode 100644 nim_uikit/res/drawable-hdpi/nim_message_input_keyboard.png delete mode 100644 nim_uikit/res/drawable-hdpi/nim_message_input_plus.png delete mode 100644 nim_uikit/res/drawable-hdpi/nim_message_input_plus_pressed.webp delete mode 100644 nim_uikit/res/drawable-hdpi/nim_message_input_voice_pressed.png create mode 100644 nim_uikit/res/drawable-xhdpi/arrow_left_white.png create mode 100644 nim_uikit/res/drawable-xhdpi/nim_message_input_emotion.png create mode 100644 nim_uikit/res/drawable-xhdpi/nim_message_input_emotion_pressed.png create mode 100644 nim_uikit/res/drawable/nim_bg_message_tip.xml diff --git a/app/proguard-rules.pro b/app/proguard-rules.pro index 97f003353..bedee0d51 100644 --- a/app/proguard-rules.pro +++ b/app/proguard-rules.pro @@ -375,3 +375,13 @@ public static ** inflate(***); } +#Flutter Wrapper +-dontwarn io.flutter.** +-keep class io.flutter.app.** { *; } +-keep class io.flutter.plugin.** { *; } +-keep class io.flutter.util.** { *; } +-keep class io.flutter.view.** { *; } +-keep class io.flutter.embedding.android.** { *; } +-keep class io.flutter.plugins.** { *; } +-keep class com.yuxiaor.flutter.g_faraday.** { *; } + diff --git a/app/src/main/java/com/yizhuan/erban/home/fragment/MeFragment.java b/app/src/main/java/com/yizhuan/erban/home/fragment/MeFragment.java index 3a54c572e..28ed417d3 100644 --- a/app/src/main/java/com/yizhuan/erban/home/fragment/MeFragment.java +++ b/app/src/main/java/com/yizhuan/erban/home/fragment/MeFragment.java @@ -167,16 +167,15 @@ public class MeFragment extends BaseMvpFragment { if (hallExist != null && hallExist) { if (HallDataManager.get().isHasClan()) { - mBinding.tvHallIn.setText("我的家族"); + mBinding.meItemUnion.setText("我的家族"); } else { - mBinding.tvHallIn.setText("我的公会"); + mBinding.meItemUnion.setText("我的公会"); } - mBinding.llModuleHall.setVisibility(View.VISIBLE); + mBinding.meItemUnion.setVisibility(View.VISIBLE); return; } - mBinding.llModuleHall.setVisibility(View.GONE); + mBinding.meItemUnion.setVisibility(View.GONE); }); -// HallDataManager.get().registerName(this, name -> mBinding.tvModuleHall.setText(name)); if (TuTuGuideHelper.isNeedHiGuide(TuTuGuideHelper.KEY_GUIDE_ME_TAB)) { mBinding.meItemRadish.post(() -> { diff --git a/app/src/main/java/com/yizhuan/erban/ui/im/chat/MVHChatterBoxInit.java b/app/src/main/java/com/yizhuan/erban/ui/im/chat/MVHChatterBoxInit.java deleted file mode 100644 index d2a1195f2..000000000 --- a/app/src/main/java/com/yizhuan/erban/ui/im/chat/MVHChatterBoxInit.java +++ /dev/null @@ -1,94 +0,0 @@ -package com.yizhuan.erban.ui.im.chat; - -import androidx.core.content.ContextCompat; -import android.view.View; -import android.widget.TextView; - -import com.netease.nim.uikit.business.session.viewholder.MsgViewHolderBase; -import com.netease.nim.uikit.common.ui.recyclerview.adapter.BaseMultiItemFetchLoadAdapter; -import com.yizhuan.erban.R; -import com.yizhuan.xchat_android_core.im.chatterbox.ChatterBoxHelper; -import com.yizhuan.xchat_android_core.manager.IMNetEaseManager; -import com.yizhuan.xchat_android_core.statistic.StatisticManager; -import com.yizhuan.xchat_android_core.statistic.protocol.StatisticsProtocol; - -import java.util.HashMap; -import java.util.Map; - -public class MVHChatterBoxInit extends MsgViewHolderBase implements View.OnClickListener { - private static final String LOCAL_CLICKED = "clicked"; - private TextView tvChatterBoxInit; - private Map localExtension; - - public MVHChatterBoxInit(BaseMultiItemFetchLoadAdapter adapter) { - super(adapter); - } - - @Override - protected int getContentResId() { - return R.layout.layout_chatterbox_init; - } - - @Override - protected void inflateContentView() { - tvChatterBoxInit = findViewById(R.id.tv_chatterbox_init); - localExtension = message.getLocalExtension(); - } - - @Override - protected void bindContentView() { - boolean clicked = false; - if (localExtension != null) { - Object object = localExtension.get(LOCAL_CLICKED); - if (object != null) { - clicked = (boolean) object; - } - } - - tvChatterBoxInit.setEnabled(!clicked); - if (!clicked) { - tvChatterBoxInit.setOnClickListener(this); - tvChatterBoxInit.setTextColor(ContextCompat.getColor(context, R.color.appColor)); - tvChatterBoxInit.setBackgroundResource(R.drawable.bg_chatterbox_init_valid); - } else { - tvChatterBoxInit.setTextColor(ContextCompat.getColor(context, R.color.color_CCCCCC)); - tvChatterBoxInit.setBackgroundResource(R.drawable.bg_chatterbox_init_invalid); - } - } - - @Override - public void onClick(View v) { - StatisticManager.Instance().onEvent(StatisticsProtocol.Event.EVENT_MESSAGE_HOME_START_CHATTER_BOX, "首页-私聊-点击话匣子"); - - if (localExtension == null) { - localExtension = new HashMap<>(); - } - localExtension.put(LOCAL_CLICKED, true); - message.setLocalExtension(localExtension); - IMNetEaseManager.get().updateMessageToLocal(message); - adapter.notifyDataSetChanged(); - - ChatterBoxHelper.topicBoxCanSend(); - - } - - @Override - protected boolean isMiddleItem() { - return true; - } - - @Override - protected boolean isShowHeadImage() { - return false; - } - - @Override - protected boolean isShowBubble() { - return false; - } - - @Override - protected boolean shouldDisplayReceipt() { - return false; - } -} diff --git a/app/src/main/java/com/yizhuan/erban/ui/im/chat/MVHDiceThrow.java b/app/src/main/java/com/yizhuan/erban/ui/im/chat/MVHDiceThrow.java deleted file mode 100644 index f38330755..000000000 --- a/app/src/main/java/com/yizhuan/erban/ui/im/chat/MVHDiceThrow.java +++ /dev/null @@ -1,64 +0,0 @@ -package com.yizhuan.erban.ui.im.chat; - -import android.widget.ImageView; -import android.widget.TextView; - -import com.netease.nim.uikit.business.session.viewholder.MsgViewHolderBase; -import com.netease.nim.uikit.common.ui.recyclerview.adapter.BaseMultiItemFetchLoadAdapter; -import com.yizhuan.erban.R; -import com.yizhuan.xchat_android_core.im.custom.bean.DiceThrowAttachment; - -public class MVHDiceThrow extends MsgViewHolderBase { - private ImageView ivDiceCount; - - public MVHDiceThrow(BaseMultiItemFetchLoadAdapter adapter) { - super(adapter); - } - - - @Override - protected int getContentResId() { - return R.layout.layout_dice_throw; - } - - @Override - protected void inflateContentView() { - ivDiceCount = findViewById(R.id.iv_dice_count); - } - - @Override - protected void bindContentView() { - contentContainer.setBackgroundResource(0); - DiceThrowAttachment attachment = (DiceThrowAttachment) message.getAttachment(); - - if (attachment != null) { - switch (attachment.pointCount) { - case 1: - ivDiceCount.setImageResource(R.drawable.dice_1); - break; - - case 2: - ivDiceCount.setImageResource(R.drawable.dice_2); - break; - - case 3: - ivDiceCount.setImageResource(R.drawable.dice_3); - break; - - case 4: - ivDiceCount.setImageResource(R.drawable.dice_4); - break; - - case 5: - ivDiceCount.setImageResource(R.drawable.dice_5); - break; - - case 6: - ivDiceCount.setImageResource(R.drawable.dice_6); - break; - - } - } - - } -} diff --git a/app/src/main/java/com/yizhuan/erban/ui/im/chat/MsgViewHolderTip.java b/app/src/main/java/com/yizhuan/erban/ui/im/chat/MsgViewHolderTip.java deleted file mode 100644 index 1cb2ea0c9..000000000 --- a/app/src/main/java/com/yizhuan/erban/ui/im/chat/MsgViewHolderTip.java +++ /dev/null @@ -1,47 +0,0 @@ -package com.yizhuan.erban.ui.im.chat; - -import androidx.databinding.DataBindingUtil; - -import com.netease.nim.uikit.business.session.viewholder.MsgViewHolderBase; -import com.netease.nim.uikit.common.ui.recyclerview.adapter.BaseMultiItemFetchLoadAdapter; -import com.yizhuan.erban.R; -import com.yizhuan.erban.databinding.ItemImTipsBinding; -import com.yizhuan.xchat_android_core.im.custom.bean.ImTipAttachment; - -public class MsgViewHolderTip extends MsgViewHolderBase { - - private ItemImTipsBinding mBinding; - - public MsgViewHolderTip(BaseMultiItemFetchLoadAdapter adapter) { - super(adapter); - } - - @Override - protected int getContentResId() { - return R.layout.item_im_tips; - } - - @Override - protected boolean isMiddleItem() { - return true; - } - - @Override - protected void inflateContentView() { - mBinding = DataBindingUtil.bind(findViewById(R.id.root)); - } - - @Override - protected boolean shouldDisplayReceipt() { - return false; - } - - @Override - protected void bindContentView() { - ImTipAttachment attachment = (ImTipAttachment) message.getAttachment(); - if (attachment != null) { - mBinding.tvTips.setText(attachment.getMsg()); - } - } - -} diff --git a/app/src/main/java/com/yizhuan/erban/ui/im/chat/MsgViewHolderVoiceBottleSayHi.java b/app/src/main/java/com/yizhuan/erban/ui/im/chat/MsgViewHolderVoiceBottleSayHi.java deleted file mode 100644 index a39bc68ee..000000000 --- a/app/src/main/java/com/yizhuan/erban/ui/im/chat/MsgViewHolderVoiceBottleSayHi.java +++ /dev/null @@ -1,136 +0,0 @@ -package com.yizhuan.erban.ui.im.chat; - -import android.view.View; -import android.widget.TextView; - -import com.netease.nim.uikit.business.session.helper.MessageListPanelHelper; -import com.netease.nim.uikit.business.session.viewholder.MsgViewHolderBase; -import com.netease.nim.uikit.common.ui.recyclerview.adapter.BaseMultiItemFetchLoadAdapter; -import com.netease.nimlib.sdk.msg.MessageBuilder; -import com.netease.nimlib.sdk.msg.attachment.MsgAttachment; -import com.netease.nimlib.sdk.msg.constant.SessionTypeEnum; -import com.netease.nimlib.sdk.msg.model.IMMessage; -import com.yizhuan.erban.R; -import com.yizhuan.xchat_android_core.audio.bean.VoiceBottleSayHiInfo; -import com.yizhuan.xchat_android_core.auth.AuthModel; -import com.yizhuan.xchat_android_core.im.custom.bean.VoiceBottleSayHiAttachment; -import com.yizhuan.xchat_android_core.im.custom.bean.VoiceBottleShakeHeartAttachment; -import com.yizhuan.xchat_android_core.manager.IMNetEaseManager; -import com.yizhuan.xchat_android_core.statistic.StatisticManager; -import com.yizhuan.xchat_android_core.statistic.protocol.StatisticsProtocol; -import com.yizhuan.xchat_android_library.utils.SingleToastUtil; - -import java.util.HashMap; -import java.util.Map; - -import io.reactivex.SingleObserver; -import io.reactivex.disposables.Disposable; - -/** - * 声音瓶子打招呼提示信息 - */ -public class MsgViewHolderVoiceBottleSayHi extends MsgViewHolderBase implements View.OnClickListener { - - - private TextView tvSayHi; - private Map localExtension; - private VoiceBottleSayHiInfo sayHiInfo; - - public MsgViewHolderVoiceBottleSayHi(BaseMultiItemFetchLoadAdapter adapter) { - super(adapter); - } - - @Override - protected int getContentResId() { - return R.layout.layout_msg_view_holder_voice_bottle_say_hi; - } - - @Override - protected void inflateContentView() { - IMMessage imMessage = IMNetEaseManager.get().queryMessageByUuid(message.getUuid()); - if (imMessage != null) { - localExtension = imMessage.getLocalExtension(); - } - MsgAttachment attachment = message.getAttachment(); - if (attachment instanceof VoiceBottleSayHiAttachment) { - VoiceBottleSayHiAttachment sayHiAttachment = (VoiceBottleSayHiAttachment) attachment; - sayHiInfo = sayHiAttachment.getSayHiInfo(); - } - tvSayHi = findViewById(R.id.tv_voice_say_hi); - } - - @Override - protected void bindContentView() { - if (localExtension != null && localExtension.containsKey(VoiceBottleSayHiAttachment.KEY_VOICE_BOTTLE_HAVE_SAY_HI)) { - boolean haveSayHi = (boolean) localExtension.get(VoiceBottleSayHiAttachment.KEY_VOICE_BOTTLE_HAVE_SAY_HI); - tvSayHi.setEnabled(!haveSayHi); - } else { - tvSayHi.setEnabled(true); - } - tvSayHi.setOnClickListener(this); - } - - @Override - public void onClick(View view) { - int id = view.getId(); - if (id == R.id.tv_voice_say_hi) { - StatisticManager.Instance().onEvent(StatisticsProtocol.Event.EVENT_PRIVATE_CHAT_SAY_HELLO, "私聊页-打个招呼"); - // 更新当前打招呼消息 - Map extension = message.getLocalExtension(); - if (extension == null) { - extension = new HashMap<>(); - } - extension.put(VoiceBottleSayHiAttachment.KEY_VOICE_BOTTLE_HAVE_SAY_HI, true); - this.localExtension = extension; - message.setLocalExtension(localExtension); - IMNetEaseManager.get().updateMessageToLocal(message); - tvSayHi.setEnabled(false); - - // 发消息给对方 - IMMessage shakeHeartMessage = MessageBuilder.createCustomMessage( - String.valueOf(message.getSessionId()), - SessionTypeEnum.P2P, new VoiceBottleShakeHeartAttachment(sayHiInfo)); - shakeHeartMessage.setFromAccount(String.valueOf(AuthModel.get().getCurrentUid())); - HashMap localExtension = new HashMap<>(); - localExtension.put(VoiceBottleShakeHeartAttachment.KEY_VOICE_BOTTLE_NEED_SHAKE_HEART, true); - shakeHeartMessage.setLocalExtension(localExtension); - IMNetEaseManager.get().sendMessageSingle(shakeHeartMessage) - .subscribe(new SingleObserver() { - @Override - public void onSubscribe(Disposable d) { - - } - - @Override - public void onSuccess(IMMessage imMessage) { - MessageListPanelHelper.getInstance().notifyAddMessage(imMessage);// 手动刷新 UI - } - - @Override - public void onError(Throwable e) { - SingleToastUtil.showToast(e.getMessage()); - } - }); - } - } - - @Override - protected boolean isMiddleItem() { - return true; - } - - @Override - protected boolean isShowHeadImage() { - return false; - } - - @Override - protected boolean isShowBubble() { - return false; - } - - @Override - protected boolean shouldDisplayReceipt() { - return false; - } -} \ No newline at end of file diff --git a/app/src/main/java/com/yizhuan/erban/ui/im/chat/SysMsgVoiceViewHolder.java b/app/src/main/java/com/yizhuan/erban/ui/im/chat/SysMsgVoiceViewHolder.java deleted file mode 100644 index 45735ce4c..000000000 --- a/app/src/main/java/com/yizhuan/erban/ui/im/chat/SysMsgVoiceViewHolder.java +++ /dev/null @@ -1,70 +0,0 @@ -package com.yizhuan.erban.ui.im.chat; - -import android.app.Activity; -import android.graphics.Color; -import android.text.Spannable; -import android.text.SpannableStringBuilder; -import android.text.TextUtils; -import android.text.style.ForegroundColorSpan; -import android.widget.TextView; - -import com.netease.nim.uikit.business.session.viewholder.MsgViewHolderBase; -import com.netease.nim.uikit.common.ui.recyclerview.adapter.BaseMultiItemFetchLoadAdapter; -import com.netease.nimlib.sdk.msg.attachment.MsgAttachment; -import com.yizhuan.erban.R; -import com.yizhuan.erban.ui.im.RouterHandler; -import com.yizhuan.xchat_android_core.audio.bean.SysMsgVoiceInfo; -import com.yizhuan.xchat_android_core.im.custom.bean.SysMsgVoiceAttachment; -import com.yizhuan.xchat_android_core.utils.ActivityUtil; - -/** - * 声音瓶子,审核结果的系统消息 - */ -public class SysMsgVoiceViewHolder extends MsgViewHolderBase { - - private TextView tvContent, button; - - public SysMsgVoiceViewHolder(BaseMultiItemFetchLoadAdapter adapter) { - super(adapter); - } - - @Override - protected int getContentResId() { - return R.layout.layout_msg_view_holder_voice_sys_msg; - } - - @Override - protected void inflateContentView() { - tvContent = findViewById(R.id.tv_msg_view_holder_voice_content); - button = findViewById(R.id.tv_msg_view_holder_voice_button); - } - - @Override - protected void bindContentView() { - MsgAttachment attachment = message.getAttachment(); - if (attachment instanceof SysMsgVoiceAttachment) { - SysMsgVoiceAttachment voiceAttachment = (SysMsgVoiceAttachment) attachment; - SysMsgVoiceInfo voiceInfo = voiceAttachment.getVoiceInfo(); - if (voiceInfo.status == 1) {// 1 审核通过 - tvContent.setText(context.getString(R.string.voice_msg_view_holder_voice_content_pass_verification)); - button.setText("声音匹配"); - } else if (voiceInfo.status == 4) {// 4 审核不通过 - // 原因高亮 - String reason = TextUtils.isEmpty(voiceInfo.reason) ? "" : "“" + voiceInfo.reason + "”"; - SpannableStringBuilder reasonHighLight = new SpannableStringBuilder(reason); - reasonHighLight.setSpan(new ForegroundColorSpan(Color.parseColor("#FFB606")), 0, reason.length(), Spannable.SPAN_INCLUSIVE_EXCLUSIVE); - // 拼接提示文案 - SpannableStringBuilder showContent = new SpannableStringBuilder(); - showContent.append("你录制的声音没有通过审核,理由为: ").append(reasonHighLight).append(" 快重新录制一条吧~"); - tvContent.setText(showContent); - button.setText("我的声音"); - } - button.setOnClickListener(view -> { - if (ActivityUtil.isValidContext(context)) { - ((Activity) context).finish(); - } - RouterHandler.handle(context, voiceInfo.routerType, voiceInfo.routerValue); - }); - } - } -} diff --git a/app/src/main/java/com/yizhuan/erban/ui/im/recent/holder/RecentViewHolder.java b/app/src/main/java/com/yizhuan/erban/ui/im/recent/holder/RecentViewHolder.java index 27d398a5b..ead701493 100644 --- a/app/src/main/java/com/yizhuan/erban/ui/im/recent/holder/RecentViewHolder.java +++ b/app/src/main/java/com/yizhuan/erban/ui/im/recent/holder/RecentViewHolder.java @@ -90,7 +90,7 @@ public abstract class RecentViewHolder extends RecyclerViewHolder - + diff --git a/app/src/main/res/drawable/bg_nim_msg_touch.xml b/app/src/main/res/drawable/bg_nim_msg_touch.xml new file mode 100644 index 000000000..ebc1c37d6 --- /dev/null +++ b/app/src/main/res/drawable/bg_nim_msg_touch.xml @@ -0,0 +1,6 @@ + + + + + + diff --git a/app/src/main/res/layout/activity_p2p_message.xml b/app/src/main/res/layout/activity_p2p_message.xml index 060242689..a04cbf697 100644 --- a/app/src/main/res/layout/activity_p2p_message.xml +++ b/app/src/main/res/layout/activity_p2p_message.xml @@ -3,11 +3,10 @@ xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" + android:background="@color/color_1c1b22" android:layout_height="match_parent"> - @@ -49,6 +48,7 @@ android:maxWidth="214dp" android:maxLines="1" android:singleLine="true" + android:textColor="@color/white" android:textAppearance="@style/Toolbar.TitleText" android:visibility="gone" tools:text="孙行者123" @@ -73,7 +73,7 @@ android:layout_gravity="center_horizontal" android:layout_marginTop="4dp" android:text="已经加入黑名单" - android:textColor="#999999" + android:textColor="@color/color_c6c6e9" android:textSize="12dp" /> @@ -84,7 +84,7 @@ android:layout_gravity="right" android:textSize="@dimen/dp_13" android:text="举报" - android:textColor="@color/color_333333" + android:textColor="@color/color_c6c6e9" android:gravity="center" android:src="@drawable/icon_add_black_list" android:visibility="gone" diff --git a/app/src/main/res/layout/fragment_game_home.xml b/app/src/main/res/layout/fragment_game_home.xml index 84c6d532e..ef24708c5 100644 --- a/app/src/main/res/layout/fragment_game_home.xml +++ b/app/src/main/res/layout/fragment_game_home.xml @@ -167,7 +167,7 @@ android:paddingTop="5dp" android:paddingEnd="15dp" android:text="更多房间" - android:textColor="#C6C6E9" + android:textColor="@color/color_c6c6e9" android:textSize="12sp" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toEndOf="@id/magic_indicator" diff --git a/app/src/main/res/layout/fragment_me.xml b/app/src/main/res/layout/fragment_me.xml index 9203e3679..a8836ff1f 100644 --- a/app/src/main/res/layout/fragment_me.xml +++ b/app/src/main/res/layout/fragment_me.xml @@ -18,8 +18,8 @@ + android:layout_height="match_parent" + android:background="@color/color_1c1b22"> + android:orientation="horizontal" + android:visibility="gone"> @@ -83,7 +84,7 @@ android:gravity="center_vertical" android:maxLines="1" android:text="@{String.valueOf(userInfo.fansNum)}" - android:textColor="@color/color_333333" + android:textColor="@color/color_c6c6e9" android:textSize="@dimen/sp_13" tools:text="999999" /> @@ -154,7 +155,7 @@ android:ellipsize="end" android:maxLines="1" android:text="@{userInfo.nick}" - android:textColor="@color/color_333333" + android:textColor="@color/white" android:textSize="@dimen/sp_16" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintHorizontal_bias="0" @@ -180,7 +181,7 @@ android:drawablePadding="4dp" android:gravity="center" android:maxLines="1" - android:textColor="@color/color_666666" + android:textColor="#4F516A" android:textSize="@dimen/dp_13" tools:ignore="SpUsage" tools:text="音游号:123456" /> @@ -215,16 +216,15 @@ android:layout_height="14dp" android:layout_marginEnd="5dp" android:visibility="gone" - tools:src="@mipmap/ic_user_level_king" - /> + tools:src="@mipmap/ic_user_level_king" /> + tools:ignore="SmallSp" /> - - - - - - - - - - - - - - - + android:layout_marginStart="15dp" + android:layout_marginTop="15dp" + android:layout_marginEnd="15dp" + android:orientation="horizontal"> + + + + + + + + + + + + + + + + + + + + + + + - - - - - + + + + + - - - - - + - - - - - - - + android:layout_marginEnd="@dimen/dp_me_text_padding_to_icon" + android:background="#353548" /> - - - - - + android:textColor="@color/color_c6c6e9" + android:textSize="13sp" + android:visibility="gone" /> - - + - - + android:paddingBottom="@dimen/dp_15" + android:text="@string/menu_my_union" + android:textColor="@color/color_c6c6e9" + android:textSize="13sp" /> - - + - - - - - - + - - - - - - - - - - - @@ -688,6 +663,31 @@ + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/im_customer_msg_text.xml b/app/src/main/res/layout/im_customer_msg_text.xml index a6f002d0b..3b5d102a5 100644 --- a/app/src/main/res/layout/im_customer_msg_text.xml +++ b/app/src/main/res/layout/im_customer_msg_text.xml @@ -8,7 +8,7 @@ android:paddingEnd="@dimen/dp_10" android:paddingTop="@dimen/dp_10" android:paddingBottom="@dimen/dp_10" - android:textColor="@color/text_color_primary" + android:textColor="@color/white" android:textSize="14sp" android:maxWidth="215dp" tools:text="恭喜您,获得抽奖机会,点我抽奖>>" /> \ No newline at end of file diff --git a/app/src/main/res/layout/item_home_dynamic.xml b/app/src/main/res/layout/item_home_dynamic.xml index 5665187b3..2e30a13e4 100644 --- a/app/src/main/res/layout/item_home_dynamic.xml +++ b/app/src/main/res/layout/item_home_dynamic.xml @@ -69,7 +69,7 @@ android:layout_width="0dp" android:layout_weight="1" android:layout_height="wrap_content" - android:textColor="@color/color_333333" + android:textColor="@color/color_c6c6e9" android:textSize="15sp" android:lines="1" android:layout_marginStart="@dimen/dp_15" diff --git a/app/src/main/res/layout/item_home_tab_map.xml b/app/src/main/res/layout/item_home_tab_map.xml index 67ac1d814..5de658329 100644 --- a/app/src/main/res/layout/item_home_tab_map.xml +++ b/app/src/main/res/layout/item_home_tab_map.xml @@ -85,7 +85,7 @@ android:ellipsize="end" android:gravity="center_vertical" android:maxLines="1" - android:textColor="#C6C6E9" + android:textColor="@color/color_c6c6e9" android:textSize="12sp" tools:text="房间名称房间名称房间名称" /> diff --git a/app/src/main/res/layout/layout_recommend_topic_header.xml b/app/src/main/res/layout/layout_recommend_topic_header.xml index 40c86dc59..96d1c7616 100644 --- a/app/src/main/res/layout/layout_recommend_topic_header.xml +++ b/app/src/main/res/layout/layout_recommend_topic_header.xml @@ -13,7 +13,7 @@ android:layout_marginEnd="@dimen/dp_15" android:drawableEnd="@drawable/arrow_right_more_room" android:text="@string/recommend_topic" - android:textColor="#C6C6E9" + android:textColor="@color/color_c6c6e9" android:textSize="@dimen/sp_13" app:layout_constraintTop_toTopOf="parent" /> diff --git a/app/src/main/res/layout/list_item_online_user.xml b/app/src/main/res/layout/list_item_online_user.xml index de1c4f4ef..b23f2a110 100644 --- a/app/src/main/res/layout/list_item_online_user.xml +++ b/app/src/main/res/layout/list_item_online_user.xml @@ -35,7 +35,6 @@ android:layout_alignTop="@+id/nick" android:layout_alignBottom="@+id/nick" android:layout_marginStart="3dp" - android:layout_toStartOf="@+id/iv_more" android:layout_toEndOf="@+id/nick" android:gravity="center_vertical" android:orientation="horizontal"> diff --git a/app/src/main/res/layout/nim_recent_contact_list_item_new.xml b/app/src/main/res/layout/nim_recent_contact_list_item_new.xml index c88512734..70bd3dc02 100644 --- a/app/src/main/res/layout/nim_recent_contact_list_item_new.xml +++ b/app/src/main/res/layout/nim_recent_contact_list_item_new.xml @@ -120,7 +120,7 @@ android:gravity="center_vertical" android:lines="1" android:text="" - android:textColor="#C6C6E9" + android:textColor="@color/color_c6c6e9" android:textSize="12dp" tools:ignore="SpUsage" tools:text="我是内容" /> @@ -146,7 +146,7 @@ android:lines="1" android:scrollHorizontally="true" android:text="" - android:textColor="#C6C6E9" + android:textColor="@color/color_c6c6e9" android:textSize="12dp" tools:ignore="SpUsage" tools:text="我是内容我是内容我是内容我是内容我是内容我是内容我是内容我是内容" /> diff --git a/app/src/main/res/layout/room_invite_list_item_layout.xml b/app/src/main/res/layout/room_invite_list_item_layout.xml index 63e2b2675..9d6b628b7 100644 --- a/app/src/main/res/layout/room_invite_list_item_layout.xml +++ b/app/src/main/res/layout/room_invite_list_item_layout.xml @@ -11,7 +11,6 @@ android:id="@+id/iv_avatar" android:layout_width="35dp" android:layout_height="35dp" - android:layout_below="@+id/tv_online_number" android:layout_centerVertical="true" android:layout_marginLeft="10dp" tools:src="@drawable/default_user_head" /> diff --git a/app/src/main/res/mipmap-xhdpi/ic_me_collection.png b/app/src/main/res/mipmap-xhdpi/ic_me_collection.png new file mode 100644 index 0000000000000000000000000000000000000000..2423e0ee7f7db08d60ba0c0976614ffc03d386eb GIT binary patch literal 1847 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 AJ^%m! literal 0 HcmV?d00001 diff --git a/app/src/main/res/mipmap-xxhdpi/icon_union.png b/app/src/main/res/mipmap-xhdpi/icon_union.png similarity index 100% rename from app/src/main/res/mipmap-xxhdpi/icon_union.png rename to app/src/main/res/mipmap-xhdpi/icon_union.png diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml index 1c2f5d18f..7156124ae 100644 --- a/app/src/main/res/values/colors.xml +++ b/app/src/main/res/values/colors.xml @@ -551,4 +551,5 @@ #2D93FF #1C1B22 + #c6c6e9 diff --git a/app/src/module_community/res/layout/item_square_dynamic.xml b/app/src/module_community/res/layout/item_square_dynamic.xml index caf4d2b70..32b2dd50d 100644 --- a/app/src/module_community/res/layout/item_square_dynamic.xml +++ b/app/src/module_community/res/layout/item_square_dynamic.xml @@ -79,7 +79,7 @@ android:layout_width="wrap_content" android:layout_height="wrap_content" android:lineSpacingExtra="4dp" - android:textColor="#C6C6E9" + android:textColor="@color/color_c6c6e9" android:textSize="15sp" /> @@ -183,7 +183,7 @@ android:layout_height="@dimen/dp_24" android:layout_marginStart="2.5dp" android:gravity="center_vertical" - android:textColor="#C6C6E9" + android:textColor="@color/color_c6c6e9" android:textSize="@dimen/sp_12" tools:text="0" /> diff --git a/app/src/module_mentoring_relationship/java/com/yizhuan/tutu/mentoring_relationship/viewholder/ApprenticeMissionFourViewHolder.java b/app/src/module_mentoring_relationship/java/com/yizhuan/tutu/mentoring_relationship/viewholder/ApprenticeMissionFourViewHolder.java deleted file mode 100644 index f110cceee..000000000 --- a/app/src/module_mentoring_relationship/java/com/yizhuan/tutu/mentoring_relationship/viewholder/ApprenticeMissionFourViewHolder.java +++ /dev/null @@ -1,195 +0,0 @@ -package com.yizhuan.tutu.mentoring_relationship.viewholder; - -import androidx.core.content.ContextCompat; -import android.view.View; -import android.widget.TextView; - -import com.netease.nim.uikit.common.ui.recyclerview.adapter.BaseMultiItemFetchLoadAdapter; -import com.netease.nimlib.sdk.msg.model.IMMessage; -import com.yizhuan.erban.R; -import com.yizhuan.xchat_android_core.exception.FailReasonException; -import com.yizhuan.xchat_android_core.manager.IMNetEaseManager; -import com.yizhuan.xchat_android_core.mentoring_relationship.attachment.MentoringMasterMissionFourAttachment; -import com.yizhuan.xchat_android_core.mentoring_relationship.bean.MissionVo; -import com.yizhuan.xchat_android_core.mentoring_relationship.model.MentoringRelationshipModel; -import com.yizhuan.xchat_android_core.statistic.StatisticManager; -import com.yizhuan.xchat_android_core.statistic.protocol.StatisticsProtocol; -import com.yizhuan.xchat_android_library.utils.SingleToastUtil; - -import java.util.Map; - -import static com.yizhuan.xchat_android_core.msg.sys.ErbanSysMsgInfo.STATE_AGREE; -import static com.yizhuan.xchat_android_core.msg.sys.ErbanSysMsgInfo.STATE_OUT_DATE; -import static com.yizhuan.xchat_android_core.msg.sys.ErbanSysMsgInfo.STATE_REFUSED; -import static com.yizhuan.xchat_android_core.msg.sys.ErbanSysMsgInfo.STATE_UNTREATED; - -public class ApprenticeMissionFourViewHolder extends MissionViewHolderBase { - - private MissionVo missionVo; - private Map localExtension; - private View viewLine; - private TextView tvState; - private View viewCentreHolder; - private TextView tvAgree; - private TextView tvReject; - - ApprenticeMissionFourViewHolder(BaseMultiItemFetchLoadAdapter adapter) { - super(adapter); - } - - @Override - protected boolean isMiddleItem() { - return false; - } - - @Override - protected boolean isShowHeadImage() { - return true; - } - - @Override - protected int getContentResId() { - return R.layout.view_holder_apprentice_mission_four; - } - - @Override - protected void inflateContentView() { - super.inflateContentView(); - viewLine = findViewById(R.id.view_line); - tvState = findViewById(R.id.tv_state); - viewCentreHolder = findViewById(R.id.view_centre_holder); - tvAgree = findViewById(R.id.tv_agree); - tvReject = findViewById(R.id.tv_reject); - tvAgree.setOnClickListener(this); - tvReject.setOnClickListener(this); - IMMessage imMessage = IMNetEaseManager.get().queryMessageByUuid(message.getUuid()); - if (imMessage != null) { - localExtension = imMessage.getLocalExtension(); - } - MentoringMasterMissionFourAttachment attachment = - (MentoringMasterMissionFourAttachment) message.getAttachment(); - missionVo = attachment.getMissionVo(); - } - - @Override - protected void bindContentView() { - super.bindContentView(); - title.setText((CharSequence) missionVo.getContent().get(0)); - content.removeAllViews(); - if (localExtension != null) { - int state = (int) localExtension.get(MentoringRelationshipModel.KEY_HAS_APPROVE); - switch (state) { - case STATE_UNTREATED: - displayNormalLayout(); - break; - - case STATE_AGREE: - displayAgreeOrRejectLayout(true); - break; - - case STATE_REFUSED: - displayAgreeOrRejectLayout(false); - break; - - case STATE_OUT_DATE: - tvAgree.setEnabled(false); - tvReject.setEnabled(false); - tvReject.setTextColor(ContextCompat.getColor(context, R.color.color_DBDBDB)); - break; - } - } - } - - @Override - public void onClick(View view) { - super.onClick(view); - switch (view.getId()) { - case R.id.tv_agree: - // 发送请求,同意建立师徒关系 - MentoringRelationshipModel.get() - .buildMentoringRelationship(missionVo.getMasterUid(), - missionVo.getApprenticeUid(), - MentoringRelationshipModel.TYPE_AGREE_BUILD_RELATIONSHIP) - .subscribe((s, throwable) -> { - if (throwable == null) { - // 更新 UI - displayAgreeOrRejectLayout(true); - // 更新 localExt - localExtension = MentoringRelationshipModel.get() - .updateApproveState(message, STATE_AGREE); - message.setLocalExtension(localExtension); - IMNetEaseManager.get().updateMessageToLocal(message); - // 任务四完成,打点 - StatisticManager.Instance().onEvent(StatisticsProtocol.Event.NEWS_TASK_FOUR_COMPLETE, - "任务四完成"); - } else { - SingleToastUtil.showToast(throwable.getMessage()); - handleError(throwable); - } - }); - break; - - case R.id.tv_reject: - // 发送请求,拒绝建立师徒关系 - MentoringRelationshipModel.get() - .buildMentoringRelationship(missionVo.getMasterUid(), - missionVo.getApprenticeUid(), - MentoringRelationshipModel.TYPE_REJECT_BUILD_RELATIONSHIP) - .subscribe((s, throwable) -> { - if (throwable == null) { - // 更新 UI - displayAgreeOrRejectLayout(false); - // 更新 localExt - localExtension = MentoringRelationshipModel.get() - .updateApproveState(message, STATE_REFUSED); - message.setLocalExtension(localExtension); - IMNetEaseManager.get().updateMessageToLocal(message); - // 任务四完成,打点 - StatisticManager.Instance().onEvent(StatisticsProtocol.Event.NEWS_TASK_FOUR_COMPLETE, - "任务四完成"); - } else { - SingleToastUtil.showToast(throwable.getMessage()); - handleError(throwable); - } - }); - break; - } - } - - private void handleError(Throwable throwable) { - if (throwable instanceof FailReasonException) { - FailReasonException failReasonException = (FailReasonException) throwable; - switch (failReasonException.getCode()) { - case MentoringRelationshipModel.CODE_ALREADY_HAS_MASTER: - tvAgree.setEnabled(false); - tvReject.setEnabled(false); - tvReject.setTextColor(ContextCompat.getColor(context, R.color.color_DBDBDB)); - // 更新 localExt - localExtension = MentoringRelationshipModel.get() - .updateApproveState(message, STATE_OUT_DATE); - message.setLocalExtension(localExtension); - IMNetEaseManager.get().updateMessageToLocal(message); - break; - } - } - } - - private void displayNormalLayout() { - viewLine.setVisibility(View.GONE); - tvState.setVisibility(View.GONE); - viewCentreHolder.setVisibility(View.VISIBLE); - tvAgree.setVisibility(View.VISIBLE); - tvReject.setVisibility(View.VISIBLE); - tvReject.setTextColor(ContextCompat.getColor(context, R.color.appColor)); - } - - private void displayAgreeOrRejectLayout(boolean agree) { - viewLine.setVisibility(View.VISIBLE); - tvState.setVisibility(View.VISIBLE); - viewCentreHolder.setVisibility(View.GONE); - tvAgree.setVisibility(View.GONE); - tvReject.setVisibility(View.GONE); - tvState.setText(agree ? R.string.btn_status_apprentice_agree : R.string.btn_status_apprentice_reject); - tvState.setTextColor(ContextCompat.getColor(context, agree ? R.color.color_09bb07 : R.color.color_FF3852)); - } -} diff --git a/app/src/module_mentoring_relationship/java/com/yizhuan/tutu/mentoring_relationship/viewholder/ApprenticeMissionOneViewHolder.java b/app/src/module_mentoring_relationship/java/com/yizhuan/tutu/mentoring_relationship/viewholder/ApprenticeMissionOneViewHolder.java deleted file mode 100644 index effc71797..000000000 --- a/app/src/module_mentoring_relationship/java/com/yizhuan/tutu/mentoring_relationship/viewholder/ApprenticeMissionOneViewHolder.java +++ /dev/null @@ -1,73 +0,0 @@ -package com.yizhuan.tutu.mentoring_relationship.viewholder; - -import android.view.View; -import android.widget.TextView; - -import com.netease.nim.uikit.common.ui.recyclerview.adapter.BaseMultiItemFetchLoadAdapter; -import com.yizhuan.erban.R; -import com.yizhuan.erban.UIHelper; -import com.yizhuan.erban.ui.user.UserInfoActivity; -import com.yizhuan.erban.ui.utils.ImageLoadUtils; -import com.yizhuan.xchat_android_constants.XChatConstants; -import com.yizhuan.xchat_android_core.mentoring_relationship.attachment.MentoringApprenticeMissionOneAttachment; -import com.yizhuan.xchat_android_core.mentoring_relationship.bean.MissionVo; -import com.yizhuan.xchat_android_core.mentoring_relationship.bean.SimpleUserVo; -import com.yizhuan.xchat_android_core.user.bean.UserInfo; - -public class ApprenticeMissionOneViewHolder extends MissionViewHolderBase { - - private MissionVo simpleUserVoMissionVo; - private TextView report; - - ApprenticeMissionOneViewHolder(BaseMultiItemFetchLoadAdapter adapter) { - super(adapter); - } - - @Override - protected int getContentResId() { - return R.layout.view_holder_apprentice_mission_one; - } - - @Override - protected void inflateContentView() { - super.inflateContentView(); - MentoringApprenticeMissionOneAttachment attachment = - (MentoringApprenticeMissionOneAttachment) message.getAttachment(); - simpleUserVoMissionVo = attachment.getSimpleUserVoMissionVo(); - report = findViewById(R.id.tv_report); - } - - @Override - protected void bindContentView() { - super.bindContentView(); - title.setText(simpleUserVoMissionVo.getTitle()); - tips.setText(simpleUserVoMissionVo.getTips()); - ImageLoadUtils.loadAvatar(context, simpleUserVoMissionVo.getData().getAvatar(), pic, true); - name.setText(simpleUserVoMissionVo.getData().getNick()); - int resId = simpleUserVoMissionVo.getData().getGender() == UserInfo.GENDER_MALE ? R.drawable.ic_gender_male : R.drawable.ic_gender_female; - name.setCompoundDrawablesWithIntrinsicBounds(0, 0, resId, 0); - content.removeAllViews(); - for (String s : simpleUserVoMissionVo.getContent()) { - TextView textView = new TextView(context); - textView.setText(s); - textView.setTextSize(14); - content.addView(textView); - } - report.setOnClickListener(this); - pic.setOnClickListener(this); - } - - @Override - public void onClick(View view) { - super.onClick(view); - switch (view.getId()) { - case R.id.tv_report: - UIHelper.showReportPage(context, simpleUserVoMissionVo.getMasterUid(), XChatConstants.REPORT_TYPE_MISSION); - break; - - case R.id.iv_pic: - UserInfoActivity.Companion.start(context, simpleUserVoMissionVo.getMasterUid()); - break; - } - } -} diff --git a/app/src/module_mentoring_relationship/java/com/yizhuan/tutu/mentoring_relationship/viewholder/ApprenticeMissionThreeViewHolder.java b/app/src/module_mentoring_relationship/java/com/yizhuan/tutu/mentoring_relationship/viewholder/ApprenticeMissionThreeViewHolder.java deleted file mode 100644 index 59fe520fa..000000000 --- a/app/src/module_mentoring_relationship/java/com/yizhuan/tutu/mentoring_relationship/viewholder/ApprenticeMissionThreeViewHolder.java +++ /dev/null @@ -1,159 +0,0 @@ -package com.yizhuan.tutu.mentoring_relationship.viewholder; - -import android.annotation.SuppressLint; -import android.view.LayoutInflater; -import android.view.View; -import android.widget.TextView; - -import com.netease.nim.uikit.business.session.helper.MessageListPanelHelper; -import com.netease.nim.uikit.common.ui.recyclerview.adapter.BaseMultiItemFetchLoadAdapter; -import com.netease.nimlib.sdk.msg.MessageBuilder; -import com.netease.nimlib.sdk.msg.constant.SessionTypeEnum; -import com.netease.nimlib.sdk.msg.model.CustomMessageConfig; -import com.netease.nimlib.sdk.msg.model.IMMessage; -import com.yizhuan.erban.R; -import com.yizhuan.erban.ui.utils.ImageLoadUtils; -import com.yizhuan.xchat_android_core.gift.bean.GiftInfo; -import com.yizhuan.xchat_android_core.gift.bean.GiftReceiveInfo; -import com.yizhuan.xchat_android_core.gift.exception.GiftOutOfDateException; -import com.yizhuan.xchat_android_core.im.custom.bean.CustomAttachment; -import com.yizhuan.xchat_android_core.im.custom.bean.GiftAttachment; -import com.yizhuan.xchat_android_core.manager.IMNetEaseManager; -import com.yizhuan.xchat_android_core.mentoring_relationship.attachment.MentoringApprenticeMissionThreeAttachment; -import com.yizhuan.xchat_android_core.mentoring_relationship.bean.MissionVo; -import com.yizhuan.xchat_android_core.mentoring_relationship.bean.SimpleGiftVo; -import com.yizhuan.xchat_android_core.mentoring_relationship.model.MentoringRelationshipModel; -import com.yizhuan.xchat_android_core.statistic.StatisticManager; -import com.yizhuan.xchat_android_core.statistic.protocol.StatisticsProtocol; -import com.yizhuan.xchat_android_core.user.UserModel; -import com.yizhuan.xchat_android_core.utils.net.BalanceNotEnoughExeption; -import com.yizhuan.xchat_android_library.utils.SingleToastUtil; - -import java.util.Map; - -public class ApprenticeMissionThreeViewHolder extends MissionViewHolderBase { - - private MissionVo simpleGiftVoMissionVo; - private SimpleGiftVo simpleGiftVo; - private Map localExtension; - - ApprenticeMissionThreeViewHolder(BaseMultiItemFetchLoadAdapter adapter) { - super(adapter); - } - - @Override - protected int getContentResId() { - return R.layout.view_holder_apprentice_mission_three; - } - - @Override - protected void inflateContentView() { - super.inflateContentView(); - IMMessage imMessage = IMNetEaseManager.get().queryMessageByUuid(message.getUuid()); - if (imMessage != null) { - localExtension = imMessage.getLocalExtension(); - } - MentoringApprenticeMissionThreeAttachment attachment = - (MentoringApprenticeMissionThreeAttachment) message.getAttachment(); - simpleGiftVoMissionVo = attachment.getSimpleGiftVoMissionVo(); - simpleGiftVo = simpleGiftVoMissionVo.getData(); - } - - @Override - protected void bindContentView() { - super.bindContentView(); - title.setText(simpleGiftVoMissionVo.getTitle()); - tips.setText(simpleGiftVoMissionVo.getTips()); - name.setText(simpleGiftVo.getGiftName()); - ImageLoadUtils.loadCircleImage(context, simpleGiftVo.getPicUrl(), pic, R.drawable.default_user_head); - content.removeAllViews(); - for (Object s : simpleGiftVoMissionVo.getContent()) { - View view = LayoutInflater.from(context).inflate(R.layout.item_mission_content, content); - TextView textView = view.findViewById(R.id.tv_mission_tips); - textView.setText(s.toString()); - } - if (localExtension != null) { - boolean isHandsel = (boolean) localExtension - .get(MentoringRelationshipModel.KEY_HAS_HANDSEL_GIFT); - if (isHandsel) { - button.setEnabled(false); - button.setText(R.string.btn_has_handsel); - } else { - button.setEnabled(true); - button.setText(R.string.btn_handsel_now); - } - } - } - - @SuppressLint("CheckResult") - @Override - protected void onButtonClick() { - // 拜师礼物 - MentoringRelationshipModel.get() - .sendGift(simpleGiftVo.getGiftId(), - simpleGiftVoMissionVo.getMasterUid(), - 1, "") - .flatMap(giftReceiveInfoServiceResult -> { - // 发送礼物消息 - GiftReceiveInfo temp = giftReceiveInfoServiceResult.getData(); - - GiftAttachment giftAttachment = new GiftAttachment(CustomAttachment.CUSTOM_MSG_HEADER_TYPE_GIFT, - CustomAttachment.CUSTOM_MSG_SUB_TYPE_SEND_GIFT); - giftAttachment.setUid(String.valueOf(simpleGiftVoMissionVo.getApprenticeUid())); - GiftReceiveInfo giftReceiveInfo = new GiftReceiveInfo(); - giftReceiveInfo.setNick(UserModel.get().getCacheLoginUserInfo() != null ? - UserModel.get().getCacheLoginUserInfo().getNick() : ""); - giftReceiveInfo.setTargetUid(simpleGiftVoMissionVo.getMasterUid()); - giftReceiveInfo.setAvatar(UserModel.get().getCacheLoginUserInfo() != null ? - UserModel.get().getCacheLoginUserInfo().getAvatar() : ""); - giftReceiveInfo.setGiftId(simpleGiftVo.getGiftId()); - giftReceiveInfo.setUid(simpleGiftVoMissionVo.getApprenticeUid()); - giftReceiveInfo.setTargetUid(simpleGiftVoMissionVo.getMasterUid()); - giftReceiveInfo.setTargetNick(temp.getTargetNick()); - giftReceiveInfo.setGiftNum(1); - giftReceiveInfo.setGift(temp.getGift()); - giftAttachment.setGiftReceiveInfo(giftReceiveInfo); - GiftInfo giftInfo = new GiftInfo(); - giftInfo.setGiftId(simpleGiftVo.getGiftId()); - giftInfo.setGiftName(simpleGiftVo.getGiftName()); - giftInfo.setGiftUrl(simpleGiftVo.getPicUrl()); - giftReceiveInfo.setGift(giftInfo); - CustomMessageConfig customMessageConfig = new CustomMessageConfig(); - customMessageConfig.enablePush = false; - IMMessage imMessage = MessageBuilder.createCustomMessage( - String.valueOf(simpleGiftVoMissionVo.getMasterUid()), - SessionTypeEnum.P2P, "", giftAttachment, customMessageConfig); - return IMNetEaseManager.get().sendMessageSingle(imMessage); - }) - .doOnError(throwable -> { - if (throwable instanceof BalanceNotEnoughExeption) { - SingleToastUtil.showToast(throwable.getMessage()); - } else if (throwable instanceof GiftOutOfDateException) { - GiftOutOfDateException exception = (GiftOutOfDateException) throwable; - SingleToastUtil.showToast(exception.getMessage()); - } - }) - .doOnSubscribe(disposable -> { - if (isHandling) { - disposable.dispose(); - } else { - isHandling = true; - } - }).subscribe(imMessage -> { - //手动刷新 UI - MessageListPanelHelper.getInstance().notifyAddMessage(imMessage); - // UI 更新 - button.setEnabled(false); - button.setText(R.string.btn_has_handsel); - // 更新 localExt - localExtension = MentoringRelationshipModel.get() - .updateHandselState(message); - message.setLocalExtension(localExtension); - IMNetEaseManager.get().updateMessageToLocal(message); - isHandling = false; - // 任务三完成,打点 - StatisticManager.Instance().onEvent(StatisticsProtocol.Event.NEWS_TASK_THREE_COMPLETE, - "任务三完成"); - }); - } -} diff --git a/app/src/module_mentoring_relationship/java/com/yizhuan/tutu/mentoring_relationship/viewholder/ApprenticeMissionTwoViewHolder.java b/app/src/module_mentoring_relationship/java/com/yizhuan/tutu/mentoring_relationship/viewholder/ApprenticeMissionTwoViewHolder.java deleted file mode 100644 index 9c3e224fa..000000000 --- a/app/src/module_mentoring_relationship/java/com/yizhuan/tutu/mentoring_relationship/viewholder/ApprenticeMissionTwoViewHolder.java +++ /dev/null @@ -1,209 +0,0 @@ -package com.yizhuan.tutu.mentoring_relationship.viewholder; - -import android.annotation.SuppressLint; -import androidx.core.content.ContextCompat; -import android.text.Spannable; -import android.text.SpannableStringBuilder; -import android.text.style.ForegroundColorSpan; -import android.view.View; -import android.widget.TextView; - -import com.netease.nim.uikit.business.session.helper.MessageListPanelHelper; -import com.netease.nim.uikit.common.ui.recyclerview.adapter.BaseMultiItemFetchLoadAdapter; -import com.netease.nimlib.sdk.msg.MessageBuilder; -import com.netease.nimlib.sdk.msg.constant.SessionTypeEnum; -import com.netease.nimlib.sdk.msg.model.IMMessage; -import com.yizhuan.erban.R; -import com.yizhuan.erban.ui.utils.ImageLoadUtils; -import com.yizhuan.erban.ui.widget.GiftDialog; -import com.yizhuan.erban.ui.widget.dialog.OpenNobleDialog; -import com.yizhuan.xchat_android_core.gift.GiftModel; -import com.yizhuan.xchat_android_core.gift.bean.GiftInfo; -import com.yizhuan.xchat_android_core.gift.toolbox.GiftToolbox; -import com.yizhuan.xchat_android_core.magic.MagicModel; -import com.yizhuan.xchat_android_core.magic.bean.MagicInfo; -import com.yizhuan.xchat_android_core.magic.bean.MagicReceivedInfo; -import com.yizhuan.xchat_android_core.manager.IMNetEaseManager; -import com.yizhuan.xchat_android_core.mentoring_relationship.attachment.MentoringMasterMissionTwoAttachment; -import com.yizhuan.xchat_android_core.mentoring_relationship.bean.MissionVo; -import com.yizhuan.xchat_android_core.mentoring_relationship.bean.SimpleGiftVo; -import com.yizhuan.xchat_android_core.mentoring_relationship.model.MentoringRelationshipModel; -import com.yizhuan.xchat_android_core.pay.PayModel; -import com.yizhuan.xchat_android_core.room.queue.bean.MicMemberInfo; -import com.yizhuan.xchat_android_core.user.UserModel; -import com.yizhuan.xchat_android_core.user.bean.UserInfo; -import com.yizhuan.xchat_android_core.utils.net.BeanObserver; -import com.yizhuan.xchat_android_core.utils.net.RxHelper; -import com.yizhuan.xchat_android_library.utils.SingleToastUtil; - -import java.util.List; -import java.util.Map; - -public class ApprenticeMissionTwoViewHolder extends MissionViewHolderBase implements GiftDialog.OnGiftDialogBtnClickListener { - - private MissionVo simpleGiftVoMissionVo; - private SimpleGiftVo simpleGiftVo; - private TextView thanks; - private TextView rebate; - private transient GiftDialog giftDialog; - private Map localExtension; - - ApprenticeMissionTwoViewHolder(BaseMultiItemFetchLoadAdapter adapter) { - super(adapter); - } - - @Override - protected boolean isMiddleItem() { - return false; - } - - @Override - protected boolean isShowHeadImage() { - return true; - } - - @Override - protected int getContentResId() { - return R.layout.view_holder_apprentice_mission_two; - } - - @Override - protected void inflateContentView() { - super.inflateContentView(); - IMMessage imMessage = IMNetEaseManager.get().queryMessageByUuid(message.getUuid()); - if (imMessage != null) { - localExtension = imMessage.getLocalExtension(); - } - thanks = findViewById(R.id.tv_thanks); - rebate = findViewById(R.id.tv_rebate); - MentoringMasterMissionTwoAttachment attachment = - (MentoringMasterMissionTwoAttachment) message.getAttachment(); - simpleGiftVoMissionVo = attachment.getSimpleGiftVoMissionVo(); - simpleGiftVo = simpleGiftVoMissionVo.getData(); - } - - @Override - protected void bindContentView() { - super.bindContentView(); - String giftName = simpleGiftVo.getGiftName(); - for (String content : simpleGiftVoMissionVo.getContent()) { - int start = content.indexOf(giftName); - SpannableStringBuilder builder = new SpannableStringBuilder(content); - builder.setSpan(new ForegroundColorSpan(ContextCompat.getColor(context, R.color.color_FF3D56)), - start, start + giftName.length(), Spannable.SPAN_INCLUSIVE_EXCLUSIVE); - title.setText(builder); - } - ImageLoadUtils.loadImage(context, simpleGiftVo.getPicUrl(), pic, R.drawable.default_avatar); - thanks.setOnClickListener(this); - rebate.setOnClickListener(this); - if (localExtension != null) { - boolean hasThanks = (boolean) localExtension - .get(MentoringRelationshipModel.KEY_HAS_THANKS); - if (hasThanks) { - thanks.setEnabled(false); - thanks.setTextColor(ContextCompat.getColor(context, R.color.color_DBDBDB)); - } else { - thanks.setEnabled(true); - thanks.setTextColor(ContextCompat.getColor(context, R.color.appColor)); - } - } - } - - @Override - public void onClick(View view) { - super.onClick(view); - switch (view.getId()) { - case R.id.tv_thanks: - // 答谢,发一句普通的聊天消息 - IMMessage imMessage = MessageBuilder.createTextMessage( - String.valueOf(simpleGiftVoMissionVo.getMasterUid()), - SessionTypeEnum.P2P, simpleGiftVoMissionVo.getMessage()); - IMNetEaseManager.get() - .sendMessage(imMessage) - .subscribe((aBoolean, throwable) -> { - if (throwable == null) { - //手动刷新 UI - MessageListPanelHelper.getInstance().notifyAddMessage(imMessage); - // 更新 UI - thanks.setEnabled(false); - thanks.setTextColor(ContextCompat.getColor(context, R.color.color_DBDBDB)); - // 更新 localExt - localExtension = MentoringRelationshipModel.get() - .updateThanksState(message); - message.setLocalExtension(localExtension); - IMNetEaseManager.get().updateMessageToLocal(message); - } - }); - break; - - case R.id.tv_rebate: - // 回赠,弹起礼物弹窗进行送礼物 - if (giftDialog == null) { - giftDialog = new GiftDialog(context, simpleGiftVoMissionVo.getMasterUid(), false, false, true); - giftDialog.setGiftDialogBtnClickListener(this); - giftDialog.setOnDismissListener(dialog -> giftDialog = null); - } - if (!giftDialog.isShowing()) { - giftDialog.show(); - } - break; - } - } - - @SuppressLint("CheckResult") - @Override - public void onSendGiftBtnClick(GiftInfo giftInfo, List micMemberInfos, int number, - String msg, boolean isknap, boolean isWholeMic, GiftDialog.SenGiftCallback callback) { - if (giftInfo == null) return; - boolean canUseNobleGiftOrNot = GiftModel.get().canUseNobleGiftOrNot(giftInfo); - if (canUseNobleGiftOrNot) { - GiftModel.get() - .sendPersonalGift(giftInfo.getGiftId(), micMemberInfos.get(0).getAccount(), number, msg, isknap) - .compose(RxHelper.handleSchedulers()) - .flatMap(giftReceiveInfoServiceResult -> - GiftToolbox.sendGiftPrivateChatMessage(giftReceiveInfoServiceResult.getData())) - .doOnError(throwable -> { - if (callback != null) { - callback.onFail(); - } - }) - .subscribe((imMessage, throwable) -> { - if (throwable == null) { - // 手动更新送礼物的消息 - MessageListPanelHelper.getInstance().notifyAddMessage(imMessage); - if (callback != null) { - callback.onSuccess(); - } - } - }); - } else { - UserInfo userInfo = UserModel.get().getCacheLoginUserInfo(); - int currentLevel = userInfo == null ? 0 : userInfo.getNobleInfo() == null ? 0 : userInfo.getNobleInfo().getLevel(); - new OpenNobleDialog(context, currentLevel, giftInfo.getLevel(), "送该礼物").show(); - } - } - - @Override - public void onSendMagicBtnClick(MagicInfo magicInfo, long targetUid, GiftDialog.SenGiftCallback callback) { - //赠送魔法的回调 - MagicModel.get().sendMagic(magicInfo.getMagicId(), targetUid) - .subscribe(new BeanObserver() { - @Override - public void onErrorMsg(String error) { - SingleToastUtil.showToast(error); - if (callback != null) { - callback.onFail(); - } - } - - @Override - public void onSuccess(MagicReceivedInfo info) { - PayModel.get().decreaseLocalGold(magicInfo.getPrice()); - if (callback != null) { - callback.onSuccess(); - } - } - }); - } - -} diff --git a/app/src/module_mentoring_relationship/java/com/yizhuan/tutu/mentoring_relationship/viewholder/MasterMissionFourViewHolder.java b/app/src/module_mentoring_relationship/java/com/yizhuan/tutu/mentoring_relationship/viewholder/MasterMissionFourViewHolder.java deleted file mode 100644 index 838d03b62..000000000 --- a/app/src/module_mentoring_relationship/java/com/yizhuan/tutu/mentoring_relationship/viewholder/MasterMissionFourViewHolder.java +++ /dev/null @@ -1,103 +0,0 @@ -package com.yizhuan.tutu.mentoring_relationship.viewholder; - -import android.annotation.SuppressLint; -import android.widget.TextView; - -import com.netease.nim.uikit.common.ui.recyclerview.adapter.BaseMultiItemFetchLoadAdapter; -import com.netease.nimlib.sdk.msg.model.IMMessage; -import com.yizhuan.erban.R; -import com.yizhuan.xchat_android_core.manager.IMNetEaseManager; -import com.yizhuan.xchat_android_core.mentoring_relationship.attachment.MentoringMasterMissionFourAttachment; -import com.yizhuan.xchat_android_core.mentoring_relationship.bean.MissionVo; -import com.yizhuan.xchat_android_core.mentoring_relationship.model.MentoringRelationshipModel; -import com.yizhuan.xchat_android_core.statistic.StatisticManager; -import com.yizhuan.xchat_android_core.statistic.protocol.StatisticsProtocol; -import com.yizhuan.xchat_android_core.utils.net.RxHelper; -import com.yizhuan.xchat_android_library.utils.SingleToastUtil; - -import java.util.Map; - -public class MasterMissionFourViewHolder extends MissionViewHolderBase { - - private MissionVo missionVo; - private Map localExtension; - - MasterMissionFourViewHolder(BaseMultiItemFetchLoadAdapter adapter) { - super(adapter); - } - - @Override - protected int getContentResId() { - return R.layout.view_holder_master_mission_four; - } - - @Override - protected void inflateContentView() { - super.inflateContentView(); - IMMessage imMessage = IMNetEaseManager.get().queryMessageByUuid(message.getUuid()); - if (imMessage != null) { - localExtension = imMessage.getLocalExtension(); - } - MentoringMasterMissionFourAttachment attachment = - (MentoringMasterMissionFourAttachment) message.getAttachment(); - missionVo = attachment.getMissionVo(); - } - - @Override - protected void bindContentView() { - super.bindContentView(); - title.setText(missionVo.getTitle()); - tips.setText(missionVo.getTips()); - content.removeAllViews(); - for (Object s : missionVo.getContent()) { - TextView textView = new TextView(context); - textView.setText("·" + s.toString() + "·"); - textView.setTextSize(14); - content.addView(textView); - } - if (localExtension != null) { - boolean hasInvited = (boolean) localExtension - .get(MentoringRelationshipModel.KEY_HAS_INVITED); - if (hasInvited) { - button.setEnabled(false); - button.setText(R.string.btn_has_send_invitation); - } else { - button.setEnabled(true); - button.setText(R.string.btn_send_invitation); - } - } - } - - @SuppressLint("CheckResult") - @Override - protected void onButtonClick() { - StatisticManager.Instance().onEvent(StatisticsProtocol.Event.NEWS_TASK_FOUR_START, - "任务四开始"); - // 发送请求,触发建立师徒关系的消息 - MentoringRelationshipModel.get() - .sendInvitation(missionVo.getMasterUid(), missionVo.getApprenticeUid()) - .compose(RxHelper.handleSchedulers()) - .doOnSubscribe(disposable -> { - if (isHandling) { - disposable.dispose(); - } else { - isHandling = true; - } - }) - .subscribe((s, throwable) -> { - if (throwable == null) { - // 更新 UI - button.setEnabled(false); - button.setText(R.string.btn_has_send_invitation); - // 更新 localExt - localExtension = MentoringRelationshipModel.get() - .updateInviteState(message); - message.setLocalExtension(localExtension); - IMNetEaseManager.get().updateMessageToLocal(message); - } else { - SingleToastUtil.showToast(throwable.getMessage()); - } - isHandling = false; - }); - } -} diff --git a/app/src/module_mentoring_relationship/java/com/yizhuan/tutu/mentoring_relationship/viewholder/MasterMissionOneViewHolder.java b/app/src/module_mentoring_relationship/java/com/yizhuan/tutu/mentoring_relationship/viewholder/MasterMissionOneViewHolder.java deleted file mode 100644 index 766c20956..000000000 --- a/app/src/module_mentoring_relationship/java/com/yizhuan/tutu/mentoring_relationship/viewholder/MasterMissionOneViewHolder.java +++ /dev/null @@ -1,151 +0,0 @@ -package com.yizhuan.tutu.mentoring_relationship.viewholder; - -import android.annotation.SuppressLint; -import android.view.View; -import android.widget.TextView; - -import com.netease.nim.uikit.business.session.helper.MessageListPanelHelper; -import com.netease.nim.uikit.common.ui.recyclerview.adapter.BaseMultiItemFetchLoadAdapter; -import com.netease.nimlib.sdk.msg.MessageBuilder; -import com.netease.nimlib.sdk.msg.constant.MsgStatusEnum; -import com.netease.nimlib.sdk.msg.constant.SessionTypeEnum; -import com.netease.nimlib.sdk.msg.model.IMMessage; -import com.yizhuan.erban.R; -import com.yizhuan.erban.UIHelper; -import com.yizhuan.erban.ui.user.UserInfoActivity; -import com.yizhuan.erban.ui.utils.ImageLoadUtils; -import com.yizhuan.erban.ui.widget.magicindicator.buildins.UIUtil; -import com.yizhuan.xchat_android_constants.XChatConstants; -import com.yizhuan.xchat_android_core.manager.IMNetEaseManager; -import com.yizhuan.xchat_android_core.mentoring_relationship.attachment.MentoringMasterMissionOneAttachment; -import com.yizhuan.xchat_android_core.mentoring_relationship.bean.MissionVo; -import com.yizhuan.xchat_android_core.mentoring_relationship.bean.SimpleUserVo; -import com.yizhuan.xchat_android_core.mentoring_relationship.model.MentoringRelationshipModel; -import com.yizhuan.xchat_android_core.user.bean.UserInfo; -import com.yizhuan.xchat_android_library.utils.SingleToastUtil; - -import java.util.Map; - -import io.reactivex.Single; - -public class MasterMissionOneViewHolder extends MissionViewHolderBase { - - private MissionVo simpleUserVoMissionVo; - private SimpleUserVo simpleUserVo; - private Map localExtension; - private TextView report; - - public MasterMissionOneViewHolder(BaseMultiItemFetchLoadAdapter adapter) { - super(adapter); - } - - @Override - protected int getContentResId() { - return R.layout.view_holder_master_mission_one; - } - - @Override - protected void inflateContentView() { - super.inflateContentView(); - IMMessage imMessage = IMNetEaseManager.get().queryMessageByUuid(message.getUuid()); - if (imMessage != null) { - localExtension = imMessage.getLocalExtension(); - } - MentoringMasterMissionOneAttachment attachment = - (MentoringMasterMissionOneAttachment) message.getAttachment(); - simpleUserVoMissionVo = attachment.getSimpleUserVoMissionVo(); - simpleUserVo = simpleUserVoMissionVo.getData(); - report = findViewById(R.id.tv_report); - } - - @Override - protected void bindContentView() { - super.bindContentView(); - title.setText(simpleUserVoMissionVo.getTitle()); - tips.setText(simpleUserVoMissionVo.getTips()); - ImageLoadUtils.loadAvatar(context, simpleUserVo.getAvatar(), pic, true); - name.setText(simpleUserVo.getNick()); - int resId = simpleUserVo.getGender() == UserInfo.GENDER_MALE ? R.drawable.ic_gender_male : R.drawable.ic_gender_female; - name.setCompoundDrawablesWithIntrinsicBounds(0, 0, resId, 0); - content.removeAllViews(); - for (String s : simpleUserVoMissionVo.getContent()) { - TextView textView = new TextView(context); - textView.setText(s); - textView.setCompoundDrawablesWithIntrinsicBounds(R.drawable.shape_dot_app_color, 0, 0, 0); - textView.setCompoundDrawablePadding(UIUtil.dip2px(context, 5)); - textView.setTextSize(14); - content.addView(textView); - } - if (localExtension != null) { - boolean result = (boolean) localExtension - .get(MentoringRelationshipModel.KEY_HAS_FOLLOWED); - if (result) { - button.setEnabled(false); - button.setText(R.string.btn_has_said_hi); - } else { - button.setEnabled(true); - button.setText(R.string.btn_say_hi); - } - } - report.setOnClickListener(this); - pic.setOnClickListener(this); - } - - @Override - public void onClick(View view) { - super.onClick(view); - switch (view.getId()) { - case R.id.tv_report: - UIHelper.showReportPage(context, simpleUserVoMissionVo.getApprenticeUid(), XChatConstants.REPORT_TYPE_MISSION); - break; - - case R.id.iv_pic: - UserInfoActivity.Companion.start(context, simpleUserVoMissionVo.getApprenticeUid()); - break; - } - } - - @SuppressLint("CheckResult") - @Override - protected void onButtonClick() { - message.setStatus(MsgStatusEnum.success); - MentoringRelationshipModel.get() - .sayHi(simpleUserVoMissionVo.getMasterUid(), - simpleUserVoMissionVo.getApprenticeUid()) - .doOnSubscribe(disposable -> { - if (isHandling) { - disposable.dispose(); - } else { - isHandling = true; - } - }) - .flatMap(s -> { - // 更新 UI - button.setEnabled(false); - button.setText(R.string.btn_has_said_hi); - // 更新 localExt - localExtension = MentoringRelationshipModel.get() - .updateFollowState(message); - message.setLocalExtension(localExtension); - IMNetEaseManager.get().updateMessageToLocal(message); - return Single.just(message); - }) - .flatMap(imMessage -> { - // 给徒弟打招呼 - IMMessage helloMessage = MessageBuilder.createTextMessage( - String.valueOf(simpleUserVoMissionVo.getApprenticeUid()), - SessionTypeEnum.P2P, simpleUserVoMissionVo.getMessage()); - return IMNetEaseManager.get().sendMessageSingle(helloMessage); - }) - .subscribe((imMessage, throwable) -> { - if (throwable == null) { - //手动刷新 UI - MessageListPanelHelper.getInstance().notifyAddMessage(imMessage); - } else { - SingleToastUtil.showToast(throwable.getMessage()); - } - isHandling = false; - }); - - } -} diff --git a/app/src/module_mentoring_relationship/java/com/yizhuan/tutu/mentoring_relationship/viewholder/MasterMissionThreeViewHolder.java b/app/src/module_mentoring_relationship/java/com/yizhuan/tutu/mentoring_relationship/viewholder/MasterMissionThreeViewHolder.java deleted file mode 100644 index 7401b0d2f..000000000 --- a/app/src/module_mentoring_relationship/java/com/yizhuan/tutu/mentoring_relationship/viewholder/MasterMissionThreeViewHolder.java +++ /dev/null @@ -1,376 +0,0 @@ -package com.yizhuan.tutu.mentoring_relationship.viewholder; - -import android.annotation.SuppressLint; -import androidx.core.content.ContextCompat; -import android.text.Spannable; -import android.text.SpannableStringBuilder; -import android.text.style.ForegroundColorSpan; -import android.widget.TextView; - -import com.netease.nim.uikit.business.session.helper.MessageListPanelHelper; -import com.netease.nim.uikit.common.ui.recyclerview.adapter.BaseMultiItemFetchLoadAdapter; -import com.netease.nimlib.sdk.msg.MessageBuilder; -import com.netease.nimlib.sdk.msg.constant.SessionTypeEnum; -import com.netease.nimlib.sdk.msg.model.IMMessage; -import com.yizhuan.erban.R; -import com.yizhuan.erban.avroom.activity.AVRoomActivity; -import com.yizhuan.erban.common.widget.dialog.DialogManager; -import com.yizhuan.erban.home.dialog.CreateRoomDialog; -import com.yizhuan.erban.ui.webview.CommonWebViewActivity; -import com.yizhuan.xchat_android_core.UriProvider; -import com.yizhuan.xchat_android_core.auth.AuthModel; -import com.yizhuan.xchat_android_core.certification.CertificationModel; -import com.yizhuan.xchat_android_core.manager.IMNetEaseManager; -import com.yizhuan.xchat_android_core.mentoring_relationship.attachment.MentoringMasterMissionThreeAttachment; -import com.yizhuan.xchat_android_core.mentoring_relationship.attachment.MentoringSharingRoomAttachment; -import com.yizhuan.xchat_android_core.mentoring_relationship.bean.MentoringSharingRoomInfo; -import com.yizhuan.xchat_android_core.mentoring_relationship.bean.MissionVo; -import com.yizhuan.xchat_android_core.mentoring_relationship.model.MentoringRelationshipModel; -import com.yizhuan.xchat_android_core.miniworld.model.MiniWorldModel; -import com.yizhuan.xchat_android_core.room.bean.RoomInfo; -import com.yizhuan.xchat_android_core.room.model.AvRoomModel; -import com.yizhuan.xchat_android_core.statistic.StatisticManager; -import com.yizhuan.xchat_android_core.statistic.protocol.StatisticsProtocol; -import com.yizhuan.xchat_android_core.user.UserModel; -import com.yizhuan.xchat_android_core.user.bean.UserInfo; -import com.yizhuan.xchat_android_core.utils.net.BeanObserver; -import com.yizhuan.xchat_android_core.utils.net.RxHelper; -import com.yizhuan.xchat_android_library.utils.SingleToastUtil; - -import java.util.Map; - -import io.reactivex.Single; - -import static com.yizhuan.xchat_android_core.certification.CertificationModel.CER_TYPE_FORCE; -import static com.yizhuan.xchat_android_core.certification.CertificationModel.CER_TYPE_GUIDE; -import static com.yizhuan.xchat_android_core.certification.CertificationModel.CER_TYPE_NONE; - -public class MasterMissionThreeViewHolder extends MissionViewHolderBase { - - private MissionVo missionVo; - private Map localExtension; - private DialogManager dialogManager; - private CreateRoomDialog createRoomDialog; - private int roomType; - - MasterMissionThreeViewHolder(BaseMultiItemFetchLoadAdapter adapter) { - super(adapter); - } - - @Override - protected int getContentResId() { - return R.layout.view_holder_master_mission_three; - } - - @Override - protected void inflateContentView() { - super.inflateContentView(); - IMMessage imMessage = IMNetEaseManager.get().queryMessageByUuid(message.getUuid()); - if (imMessage != null) { - localExtension = imMessage.getLocalExtension(); - } - MentoringMasterMissionThreeAttachment attachment = - (MentoringMasterMissionThreeAttachment) message.getAttachment(); - missionVo = attachment.getMissionVo(); - dialogManager = new DialogManager(context); - } - - @Override - protected void bindContentView() { - super.bindContentView(); - title.setText(missionVo.getTitle()); - tips.setText(missionVo.getTips()); - content.removeAllViews(); - for (Object s : missionVo.getContent()) { - TextView textView = new TextView(context); - textView.setText(s.toString()); - textView.setCompoundDrawablesWithIntrinsicBounds(R.drawable.shape_dot_app_color, 0, 0, 0); - textView.setCompoundDrawablePadding(5); - textView.setTextSize(14); - content.addView(textView); - } - if (localExtension != null) { - boolean hasInvited = (boolean) localExtension - .get(MentoringRelationshipModel.KEY_HAS_INVITED); - if (hasInvited) { - button.setEnabled(false); - button.setText(R.string.btn_has_invite_entering_room); - } else { - button.setEnabled(true); - button.setText(R.string.btn_invite_entering_room); - } - } - } - - @SuppressLint("CheckResult") - @Override - protected void onButtonClick() { - if (isHandling) return; - isHandling = true; - handleInviteRoomEvent(); - } - - private void handleCertification() { - UserInfo userInfo = UserModel.get().getCacheLoginUserInfo(); - if (userInfo != null && !userInfo.isCertified()) { - switch (CertificationModel.get().getCertificationType()) { - default: - case CER_TYPE_NONE: - // do nothing - openCreateRoomDialog(); - break; - - case CER_TYPE_FORCE: - dialogManager.showTipsDialog(getCertificationTips(), - context.getString(R.string.go_to_certification), - new DialogManager.OkCancelDialogListener() { - @Override - public void onCancel() { - isHandling = false; - } - - @Override - public void onOk() { - // 跳去实名认证页面 - CommonWebViewActivity.start(context, - UriProvider.getTutuRealNamePage()); - isHandling = false; - } - }); - break; - - case CER_TYPE_GUIDE: - dialogManager.showTipsDialog(getCertificationTips(), - context.getString(R.string.go_to_certification), - new DialogManager.OkCancelDialogListener() { - @Override - public void onCancel() { - openCreateRoomDialog(); - } - - @Override - public void onOk() { - // 跳去实名认证页面 - CommonWebViewActivity.start(context, - UriProvider.getTutuRealNamePage()); - isHandling = false; - } - }); - break; - } - } else { - openCreateRoomDialog(); - } - } - - @SuppressLint("CheckResult") - private void handleInviteRoomEvent() { - AvRoomModel.get() - .requestRoomInfo(String.valueOf(AuthModel.get().getCurrentUid())) - .compose(RxHelper.handleSchedulers()) - .subscribe((roomInfo, throwable) -> { - if (throwable == null) { - // 先验证是否有已经开好房间 - if (roomInfo != null && roomInfo.isValid()) { - // 记录 roomType,方便后面埋点 - roomType = roomInfo.getType(); - changeRoomState(roomInfo.getWorldId(), roomInfo.getUid()); - // 已经开好房间了就直接分享出去 -// shareRoom(); - } else { - // 还没开好房间,需要先检验实名认证弹窗提示选择房间类型然后开房间 - handleCertification(); - } - } else { - isHandling = false; -// Toast.makeText(context, "发生异常", Toast.LENGTH_SHORT).show(); - SingleToastUtil.showToastShort("发生异常"); - } - }); - } - - private void changeRoomState(long worldId, long roomUid) { - if (worldId == 0) { - shareRoom(); - - } else { - MiniWorldModel.getInstance().roomWorldModeClose(roomUid).subscribe(new BeanObserver() { - @Override - public void onErrorMsg(String error) { - isHandling = false; -// Toast.makeText(context, "发生异常", Toast.LENGTH_SHORT).show(); - SingleToastUtil.showToastShort("发生异常"); - } - - @Override - public void onSuccess(String s) { - shareRoom(); - } - }); - } - } - - private SpannableStringBuilder getCertificationTips() { - String tips = context.getString(R.string.tips_need_to_certification); - SpannableStringBuilder builder = new SpannableStringBuilder(tips); - builder.setSpan(new ForegroundColorSpan(ContextCompat.getColor(context, R.color.appColor)), - tips.length() - 4, tips.length(), Spannable.SPAN_INCLUSIVE_EXCLUSIVE); - return builder; - } - - private void openCreateRoomDialog() { - if (createRoomDialog != null && createRoomDialog.isShowing()) return; - createRoomDialog = new CreateRoomDialog(context, new CreateRoomDialog.OpenRoomListener() { - @Override - public void onNormalRoom() { - roomType = RoomInfo.ROOMTYPE_HOME_PARTY; - getRoomInfo(RoomInfo.ROOMTYPE_HOME_PARTY); - } - - @Override - public void onCpRoom() { - roomType = RoomInfo.ROOMTYPE_CP; - getRoomInfo(RoomInfo.ROOMTYPE_CP); - } - }); - createRoomDialog.setOnCancelListener(dialogInterface -> isHandling = false); - createRoomDialog.openDialog(); - } - - @SuppressLint("CheckResult") - private void shareRoom() { - MentoringRelationshipModel.get() - .inviteEnable(missionVo.getMasterUid(), missionVo.getApprenticeUid()) - .flatMap(roomInfo -> { - // 更新 UI - button.setEnabled(false); - button.setText(R.string.btn_has_invite_entering_room); - // 更新 localExt - localExtension = MentoringRelationshipModel.get() - .updateInviteState(message); - message.setLocalExtension(localExtension); - IMNetEaseManager.get().updateMessageToLocal(message); - return Single.just(roomInfo); - }) - .flatMap(roomInfo -> { - // 分享房间邀请链接 - return sendSharingRoomMessage(String.valueOf(missionVo.getApprenticeUid())); - }) - .subscribe((imMessage, throwable) -> { - if (throwable == null) { - switch (roomType) { - case RoomInfo.ROOMTYPE_HOME_PARTY: - // 任务三邀请进房-普通房,打点 - StatisticManager.Instance().onEvent(StatisticsProtocol.Event.NEWS_TASK_THREE_ORDINARY_ROOM, - "任务三邀请进房-普通房"); - break; - - case RoomInfo.ROOMTYPE_CP: - // 任务三邀请进房-陪伴房,打点 - StatisticManager.Instance().onEvent(StatisticsProtocol.Event.NEWS_TASK_THREE_ACCOMPANYING_ROOM, - "任务三邀请进房-陪伴房"); - break; - } - isHandling = false; - //手动刷新 UI - MessageListPanelHelper.getInstance().notifyAddMessage(imMessage); - // 跳进去自己的房间 - AVRoomActivity.start(context, missionVo.getMasterUid()); - } else { - isHandling = false; -// Toast.makeText(context, throwable.getMessage(), Toast.LENGTH_SHORT).show(); - SingleToastUtil.showToastShort(throwable.getMessage()); - } - }); - } - - @SuppressLint("CheckResult") - private void getRoomInfo(int roomType) { - AvRoomModel.get() - .requestRoomInfo(String.valueOf(AuthModel.get().getCurrentUid())) - .compose(RxHelper.handleSchedulers()) - .subscribe((roomInfo, throwable) -> { - if (throwable == null) { - if (roomInfo != null) { - if (roomInfo.getType() != 0 - && roomInfo.getType() != roomType - && roomInfo.isValid()) { - // 已选房间类型跟当前开好的房间类型不一致,弹窗提示 - String message = roomType == RoomInfo.ROOMTYPE_CP ? "创建陪伴房,将关闭当前房间并解散房间内的用户" - : "创建普通房,将关闭当前房间并解散房间内的用户"; - dialogManager.showOkCancelDialog( - message, - "确认", - "取消", - new DialogManager.OkCancelDialogListener() { - @Override - public void onCancel() { - isHandling = false; - } - - @Override - public void onOk() { - openRoom(roomType); - } - }); - } else { - // 已选房间类型跟当前开好房间类型一致,直接开房间 - openRoom(roomType); - } - } else { - // 无房间信息,直接开房间 - openRoom(roomType); - } - } else { - isHandling = false; -// Toast.makeText(context, "发生异常", Toast.LENGTH_SHORT).show(); - SingleToastUtil.showToastShort("发生异常"); - } - }); - } - - @SuppressLint("CheckResult") - private void openRoom(int roomType) { - AvRoomModel.get().openRoom( - AuthModel.get().getCurrentUid(), roomType, null, null, null, null) - .compose(RxHelper.handleSchedulers()) - .subscribe((roomResult, throwable) -> { - if (throwable != null) { - isHandling = false; -// Toast.makeText(context, "发生异常", Toast.LENGTH_SHORT).show(); - SingleToastUtil.showToastShort("发生异常"); - } else if (roomResult != null && roomResult.isSuccess()) { - shareRoom(); - } else if (roomResult != null && !roomResult.isSuccess()) { - if (roomResult.getCode() == 1500) { - // 房间已经开过了,直接分享出去 - shareRoom(); - } else { - isHandling = false; -// Toast.makeText(context, roomResult.getError(), Toast.LENGTH_SHORT).show(); - SingleToastUtil.showToastShort(roomResult.getError()); - } - } else { - isHandling = false; -// Toast.makeText(context, "未知错误", Toast.LENGTH_SHORT).show(); - SingleToastUtil.showToastShort("未知错误"); - } - }); - } - - private Single sendSharingRoomMessage(String sessionId) { - MentoringSharingRoomInfo mentoringSharingRoomInfo = new MentoringSharingRoomInfo(); - UserInfo userInfo = UserModel.get().getCacheLoginUserInfo(); - mentoringSharingRoomInfo.setAvatar(userInfo.getAvatar()); - mentoringSharingRoomInfo.setNick(userInfo.getNick()); - mentoringSharingRoomInfo.setExpired(false); - mentoringSharingRoomInfo.setRoomUid(Long.toString(userInfo.getUid())); - mentoringSharingRoomInfo.setMasterUid(Long.toString(missionVo.getMasterUid())); - mentoringSharingRoomInfo.setApprenticeUid(Long.toString(missionVo.getApprenticeUid())); - MentoringSharingRoomAttachment attachment = new MentoringSharingRoomAttachment(); - attachment.setMentoringSharingRoomInfo(mentoringSharingRoomInfo); - IMMessage message = MessageBuilder.createCustomMessage(sessionId, SessionTypeEnum.P2P, attachment); - return IMNetEaseManager.get() - .sendMessageSingle(message); - } -} diff --git a/app/src/module_mentoring_relationship/java/com/yizhuan/tutu/mentoring_relationship/viewholder/MasterMissionTwoViewHolder.java b/app/src/module_mentoring_relationship/java/com/yizhuan/tutu/mentoring_relationship/viewholder/MasterMissionTwoViewHolder.java deleted file mode 100644 index b506b5cfa..000000000 --- a/app/src/module_mentoring_relationship/java/com/yizhuan/tutu/mentoring_relationship/viewholder/MasterMissionTwoViewHolder.java +++ /dev/null @@ -1,149 +0,0 @@ -package com.yizhuan.tutu.mentoring_relationship.viewholder; - -import android.annotation.SuppressLint; -import android.widget.TextView; - -import com.netease.nim.uikit.business.session.helper.MessageListPanelHelper; -import com.netease.nim.uikit.common.ui.recyclerview.adapter.BaseMultiItemFetchLoadAdapter; -import com.netease.nimlib.sdk.msg.MessageBuilder; -import com.netease.nimlib.sdk.msg.constant.SessionTypeEnum; -import com.netease.nimlib.sdk.msg.model.IMMessage; -import com.yizhuan.erban.R; -import com.yizhuan.erban.ui.utils.ImageLoadUtils; -import com.yizhuan.xchat_android_core.gift.bean.GiftInfo; -import com.yizhuan.xchat_android_core.gift.bean.GiftMultiReceiverInfo; -import com.yizhuan.xchat_android_core.gift.exception.GiftOutOfDateException; -import com.yizhuan.xchat_android_core.gift.toolbox.GiftToolbox; -import com.yizhuan.xchat_android_core.manager.IMNetEaseManager; -import com.yizhuan.xchat_android_core.mentoring_relationship.attachment.MentoringMasterMissionTwoAttachment; -import com.yizhuan.xchat_android_core.mentoring_relationship.bean.MissionVo; -import com.yizhuan.xchat_android_core.mentoring_relationship.bean.SimpleGiftVo; -import com.yizhuan.xchat_android_core.mentoring_relationship.model.MentoringRelationshipModel; -import com.yizhuan.xchat_android_core.utils.net.BalanceNotEnoughExeption; -import com.yizhuan.xchat_android_library.utils.SingleToastUtil; - -import java.util.Map; - -import io.reactivex.Single; - -public class MasterMissionTwoViewHolder extends MissionViewHolderBase { - - private MissionVo simpleGiftVoMissionVo; - private SimpleGiftVo simpleGiftVo; - private Map localExtension; - - MasterMissionTwoViewHolder(BaseMultiItemFetchLoadAdapter adapter) { - super(adapter); - } - - @Override - protected int getContentResId() { - return R.layout.view_holder_master_mission_two; - } - - @Override - protected void inflateContentView() { - super.inflateContentView(); - IMMessage imMessage = IMNetEaseManager.get().queryMessageByUuid(message.getUuid()); - if (imMessage != null) { - localExtension = imMessage.getLocalExtension(); - } - MentoringMasterMissionTwoAttachment attachment = - (MentoringMasterMissionTwoAttachment) message.getAttachment(); - simpleGiftVoMissionVo = attachment.getSimpleGiftVoMissionVo(); - simpleGiftVo = simpleGiftVoMissionVo.getData(); - } - - @Override - protected void bindContentView() { - super.bindContentView(); - title.setText(simpleGiftVoMissionVo.getTitle()); - tips.setText(simpleGiftVoMissionVo.getTips()); - ImageLoadUtils.loadAvatar(context, simpleGiftVo.getPicUrl(), pic, true); - name.setText(simpleGiftVo.getGiftName()); - content.removeAllViews(); - for (String s : simpleGiftVoMissionVo.getContent()) { - TextView textView = new TextView(context); - textView.setText(s); - textView.setCompoundDrawablesWithIntrinsicBounds(R.drawable.shape_dot_app_color, 0, 0, 0); - textView.setCompoundDrawablePadding(5); - textView.setTextSize(14); - content.addView(textView); - } - if (localExtension != null) { - boolean isHandsel = (boolean) localExtension - .get(MentoringRelationshipModel.KEY_HAS_HANDSEL_GIFT); - if (isHandsel) { - button.setEnabled(false); - button.setText(R.string.btn_has_handsel); - } else { - button.setEnabled(true); - button.setText(R.string.btn_handsel_now); - } - } - } - - @SuppressLint("CheckResult") - @Override - protected void onButtonClick() { - MentoringRelationshipModel.get() - .sendGift(simpleGiftVo.getGiftId(), - simpleGiftVoMissionVo.getApprenticeUid(), - 1, "") - .flatMap(giftReceiveInfoServiceResult -> { - // 更新 UI - button.setEnabled(false); - button.setText(R.string.btn_has_handsel); - // 更新 localExt - localExtension = MentoringRelationshipModel.get() - .updateHandselState(message); - message.setLocalExtension(localExtension); - IMNetEaseManager.get().updateMessageToLocal(message); - return Single.just(giftReceiveInfoServiceResult); - }) - .flatMap(giftReceiveInfoServiceResult -> { - GiftMultiReceiverInfo giftMultiReceiverInfo = - GiftToolbox.transformToGiftMultiReceiverInfo(giftReceiveInfoServiceResult.getData()); - GiftInfo giftInfo = new GiftInfo(); - giftInfo.setGiftId(simpleGiftVo.getGiftId()); - giftInfo.setGiftName(simpleGiftVo.getGiftName()); - giftInfo.setGiftUrl(simpleGiftVo.getPicUrl()); - giftMultiReceiverInfo.setGift(giftInfo); - giftMultiReceiverInfo.setGiftId(simpleGiftVo.getGiftId()); - giftMultiReceiverInfo.setGiftNum(giftReceiveInfoServiceResult.getData().getGiftNum()); - return GiftToolbox.sendGiftPrivateChatMessage(giftMultiReceiverInfo); - }) - .flatMap(imMessage -> { - //手动刷新 UI - MessageListPanelHelper.getInstance().notifyAddMessage(imMessage); - // 发送送礼物引导信息 - IMMessage giftGuideMessage = MessageBuilder.createTextMessage( - String.valueOf(simpleGiftVoMissionVo.getApprenticeUid()), - SessionTypeEnum.P2P, simpleGiftVoMissionVo.getMessage()); - return IMNetEaseManager.get().sendMessageSingle(giftGuideMessage); - }) - .doOnError(throwable -> { - if (throwable instanceof BalanceNotEnoughExeption) { - SingleToastUtil.showToast(throwable.getMessage()); - } else if (throwable instanceof GiftOutOfDateException) { - GiftOutOfDateException exception = (GiftOutOfDateException) throwable; - SingleToastUtil.showToast(exception.getMessage()); - } - }) - .doOnSubscribe(disposable -> { - if (isHandling) { - disposable.dispose(); - } else { - isHandling = true; - } - }) - .subscribe((imMessage, throwable) -> { - if (throwable == null) { - //手动刷新 UI - MessageListPanelHelper.getInstance().notifyAddMessage(imMessage); - } - isHandling = false; - }); - } - -} diff --git a/app/src/module_mentoring_relationship/java/com/yizhuan/tutu/mentoring_relationship/viewholder/MentoringSharingRoomViewHolder.java b/app/src/module_mentoring_relationship/java/com/yizhuan/tutu/mentoring_relationship/viewholder/MentoringSharingRoomViewHolder.java deleted file mode 100644 index a2a56e3a3..000000000 --- a/app/src/module_mentoring_relationship/java/com/yizhuan/tutu/mentoring_relationship/viewholder/MentoringSharingRoomViewHolder.java +++ /dev/null @@ -1,160 +0,0 @@ -package com.yizhuan.tutu.mentoring_relationship.viewholder; - -import android.view.View; -import android.widget.ImageView; -import android.widget.TextView; -import android.widget.Toast; - -import com.netease.nim.uikit.business.session.viewholder.MsgViewHolderBase; -import com.netease.nim.uikit.common.ui.recyclerview.adapter.BaseMultiItemFetchLoadAdapter; -import com.netease.nimlib.sdk.msg.model.IMMessage; -import com.yizhuan.erban.R; -import com.yizhuan.erban.avroom.activity.AVRoomActivity; -import com.yizhuan.erban.ui.user.UserInfoActivity; -import com.yizhuan.erban.ui.utils.ImageLoadUtils; -import com.yizhuan.xchat_android_core.auth.AuthModel; -import com.yizhuan.xchat_android_core.exception.FailReasonException; -import com.yizhuan.xchat_android_core.manager.IMNetEaseManager; -import com.yizhuan.xchat_android_core.mentoring_relationship.attachment.MentoringSharingRoomAttachment; -import com.yizhuan.xchat_android_core.mentoring_relationship.bean.MentoringSharingRoomInfo; -import com.yizhuan.xchat_android_core.mentoring_relationship.model.MentoringRelationshipModel; -import com.yizhuan.xchat_android_library.utils.JavaUtil; -import com.yizhuan.xchat_android_library.utils.SingleToastUtil; - -import java.util.Map; -import java.util.Objects; - -public class MentoringSharingRoomViewHolder extends MsgViewHolderBase implements View.OnClickListener { - - private ImageView avatar; - private TextView nick; - private TextView button; - private MentoringSharingRoomInfo mentoringSharingRoomInfo; - private Map localExtension; - - public MentoringSharingRoomViewHolder(BaseMultiItemFetchLoadAdapter adapter) { - super(adapter); - } - - @Override - protected boolean isMiddleItem() { - return true; - } - - @Override - protected boolean isShowHeadImage() { - return false; - } - - @Override - protected boolean shouldDisplayNick() { - return false; - } - - @Override - protected int getContentResId() { - return R.layout.view_holder_mentoring_sharing_room; - } - - @Override - protected boolean shouldDisplayReceipt() { - return false; - } - - @Override - protected void inflateContentView() { - IMMessage imMessage = IMNetEaseManager.get().queryMessageByUuid(message.getUuid()); - if (imMessage != null) { - localExtension = imMessage.getLocalExtension(); - } - MentoringSharingRoomAttachment attachment = - (MentoringSharingRoomAttachment) message.getAttachment(); - mentoringSharingRoomInfo = attachment.getMentoringSharingRoomInfo(); - avatar = findViewById(R.id.iv_avatar); - nick = findViewById(R.id.tv_name); - button = findViewById(R.id.btn_action); - button.setOnClickListener(this); - avatar.setOnClickListener(this); - } - - @Override - protected void bindContentView() { - ImageLoadUtils.loadAvatar(context, mentoringSharingRoomInfo.getAvatar(), avatar, true); - nick.setText(mentoringSharingRoomInfo.getNick()); - if (Objects.equals(mentoringSharingRoomInfo.getMasterUid(), - String.valueOf(AuthModel.get().getCurrentUid()))) { - // 如果是师父,直接置灰并显示已邀请 - button.setEnabled(false); - button.setText(R.string.btn_has_invite_entering_room); - } else { - // 如果是徒弟,走以前的逻辑 - if (localExtension != null && localExtension - .get(MentoringRelationshipModel.KEY_ROOM_INVITATION_EXPIRED) != null) { - boolean hasInvited = (boolean) localExtension - .get(MentoringRelationshipModel.KEY_ROOM_INVITATION_EXPIRED); - if (hasInvited) { - button.setEnabled(false); - } else { - button.setEnabled(true); - } - } - } - } - - @Override - public void onClick(View view) { - switch (view.getId()) { - case R.id.btn_action: - MentoringRelationshipModel.get() - .inviteEnable(JavaUtil.str2long(mentoringSharingRoomInfo.getMasterUid()), - JavaUtil.str2long(mentoringSharingRoomInfo.getApprenticeUid())) - .subscribe((s, throwable) -> { - if (throwable == null) { - if (Objects.equals(mentoringSharingRoomInfo.getApprenticeUid(), - String.valueOf(AuthModel.get().getCurrentUid()))) { - AVRoomActivity.startForMentoring(context, JavaUtil.str2long(mentoringSharingRoomInfo.getMasterUid())); - } else { - AVRoomActivity.start(context, JavaUtil.str2long(mentoringSharingRoomInfo.getMasterUid())); - } - } else { - if (throwable instanceof FailReasonException) { - FailReasonException failReasonException = (FailReasonException) throwable; - switch (failReasonException.getCode()) { - case MentoringRelationshipModel.CODE_ALREADY_HAS_MASTER: - // 更新 UI - button.setEnabled(false); - // 更新 localExt - localExtension = MentoringRelationshipModel.get() - .updateRoomInvitationState(message); - message.setLocalExtension(localExtension); - IMNetEaseManager.get().updateMessageToLocal(message); -// Toast.makeText(context, throwable.getMessage(), Toast.LENGTH_SHORT).show(); - SingleToastUtil.showToastShort(throwable.getMessage()); - break; - - case MentoringRelationshipModel.CODE_MISSION_ALREADY_EXPIRED: - // 更新 UI - button.setEnabled(false); - // 更新 localExt - localExtension = MentoringRelationshipModel.get() - .updateRoomInvitationState(message); - message.setLocalExtension(localExtension); - IMNetEaseManager.get().updateMessageToLocal(message); -// Toast.makeText(context, throwable.getMessage(), Toast.LENGTH_SHORT).show(); - SingleToastUtil.showToastShort(throwable.getMessage()); - break; - } - } else { -// Toast.makeText(context, "发送异常", Toast.LENGTH_SHORT).show(); - SingleToastUtil.showToastShort("发送异常"); - } - } - }); - break; - - case R.id.iv_avatar: - UserInfoActivity.Companion.start(context, JavaUtil.str2long(mentoringSharingRoomInfo.getRoomUid())); - break; - } - } -} diff --git a/app/src/module_mentoring_relationship/java/com/yizhuan/tutu/mentoring_relationship/viewholder/MentoringTipsViewHolder.java b/app/src/module_mentoring_relationship/java/com/yizhuan/tutu/mentoring_relationship/viewholder/MentoringTipsViewHolder.java deleted file mode 100644 index 946ed0fce..000000000 --- a/app/src/module_mentoring_relationship/java/com/yizhuan/tutu/mentoring_relationship/viewholder/MentoringTipsViewHolder.java +++ /dev/null @@ -1,46 +0,0 @@ -package com.yizhuan.tutu.mentoring_relationship.viewholder; - -import android.widget.TextView; - -import com.netease.nim.uikit.business.session.viewholder.MsgViewHolderBase; -import com.netease.nim.uikit.common.ui.recyclerview.adapter.BaseMultiItemFetchLoadAdapter; -import com.yizhuan.erban.R; - -public class MentoringTipsViewHolder extends MsgViewHolderBase { - - private TextView tips; - - public MentoringTipsViewHolder(BaseMultiItemFetchLoadAdapter adapter) { - super(adapter); - } - - @Override - protected boolean isMiddleItem() { - return true; - } - - @Override - protected boolean isShowBubble() { - return false; - } - - @Override - protected boolean shouldDisplayReceipt() { - return false; - } - - @Override - protected int getContentResId() { - return R.layout.view_holder_mentoring_tips; - } - - @Override - protected void inflateContentView() { - tips = findViewById(R.id.message_tips_label); - } - - @Override - protected void bindContentView() { - tips.setText(message.getContent()); - } -} diff --git a/app/src/module_mentoring_relationship/java/com/yizhuan/tutu/mentoring_relationship/viewholder/MissionViewHolderBase.java b/app/src/module_mentoring_relationship/java/com/yizhuan/tutu/mentoring_relationship/viewholder/MissionViewHolderBase.java deleted file mode 100644 index 96d851f07..000000000 --- a/app/src/module_mentoring_relationship/java/com/yizhuan/tutu/mentoring_relationship/viewholder/MissionViewHolderBase.java +++ /dev/null @@ -1,93 +0,0 @@ -package com.yizhuan.tutu.mentoring_relationship.viewholder; - -import android.view.View; -import android.widget.ImageView; -import android.widget.LinearLayout; -import android.widget.TextView; - -import com.netease.nim.uikit.business.session.viewholder.MsgViewHolderBase; -import com.netease.nim.uikit.common.ui.recyclerview.adapter.BaseMultiItemFetchLoadAdapter; -import com.yizhuan.erban.R; -import com.yizhuan.erban.ui.webview.CommonWebViewActivity; -import com.yizhuan.xchat_android_core.UriProvider; - -public class MissionViewHolderBase extends MsgViewHolderBase implements View.OnClickListener { - - protected TextView title; - protected TextView tips; - protected LinearLayout content; - protected ImageView pic; - protected TextView name; - protected TextView button; - protected volatile boolean isHandling = false; - protected TextView raiders; - - MissionViewHolderBase(BaseMultiItemFetchLoadAdapter adapter) { - super(adapter); - } - - @Override - protected int getContentResId() { - return 0; - } - - @Override - protected void inflateContentView() { - title = findViewById(R.id.tv_title); - tips = findViewById(R.id.tv_tips); - content = findViewById(R.id.ll_mission_steps); - pic = findViewById(R.id.iv_pic); - name = findViewById(R.id.tv_nick); - button = findViewById(R.id.btn_action); - raiders = findViewById(R.id.tv_raiders); - } - - @Override - protected void bindContentView() { - button.setOnClickListener(this); - if (raiders != null) { - raiders.setOnClickListener(this); - } - } - - @Override - protected boolean isMiddleItem() { - // 居中显示 - return true; - } - - @Override - protected boolean isShowHeadImage() { - // 不显示头像 - return false; - } - - @Override - protected boolean isShowBubble() { - // 不显示气泡背景 - return false; - } - - @Override - protected boolean shouldDisplayReceipt() { - // 不显示已读回执 - return false; - } - - @Override - public void onClick(View view) { - switch (view.getId()) { - case R.id.btn_action: - onButtonClick(); - break; - - case R.id.tv_raiders: - CommonWebViewActivity.start(context, UriProvider.getMentoringRelationshipGuide()); - break; - } - } - - protected void onButtonClick() { - // - } -} diff --git a/app/src/module_music/res/layout/activity_local_music_list.xml b/app/src/module_music/res/layout/activity_local_music_list.xml index 7071961a6..8c537c7ad 100644 --- a/app/src/module_music/res/layout/activity_local_music_list.xml +++ b/app/src/module_music/res/layout/activity_local_music_list.xml @@ -21,7 +21,6 @@ android:id="@+id/in_empty_bg" android:layout_width="match_parent" android:layout_height="match_parent" - android:layout_above="@id/music_box_layout" android:layout_below="@id/title_layout" layout="@layout/layout_bg_music_empty"/> diff --git a/app/src/module_music/res/layout/fragment_music_list.xml b/app/src/module_music/res/layout/fragment_music_list.xml index ca46e276f..d4e48762b 100644 --- a/app/src/module_music/res/layout/fragment_music_list.xml +++ b/app/src/module_music/res/layout/fragment_music_list.xml @@ -88,7 +88,6 @@ layout="@layout/layout_bg_music_empty" android:layout_width="match_parent" android:layout_height="match_parent" - android:layout_below="@+id/title_layout" android:layout_alignParentStart="true" android:layout_marginTop="0dp" /> @@ -97,7 +96,6 @@ android:layout_width="match_parent" android:layout_height="match_parent" android:layout_above="@id/music_box_layout" - android:layout_below="@+id/title_layout" android:orientation="vertical"> + android:textColor="@color/white" + android:textSize="@dimen/dp_13"/> \ No newline at end of file diff --git a/app/src/module_public_chat_hall/res/layout/nim_msg_fragment.xml b/app/src/module_public_chat_hall/res/layout/nim_msg_fragment.xml index 56555ecd8..502e56129 100644 --- a/app/src/module_public_chat_hall/res/layout/nim_msg_fragment.xml +++ b/app/src/module_public_chat_hall/res/layout/nim_msg_fragment.xml @@ -3,7 +3,7 @@ android:id="@+id/messageActivityLayout" android:layout_width="match_parent" android:layout_height="match_parent" - android:background="@color/color_message_default_bg" + android:background="@color/color_1c1b22" android:orientation="vertical"> diff --git a/app/src/module_treasure_box/res/layout/activity_box_help.xml b/app/src/module_treasure_box/res/layout/activity_box_help.xml index 121ab423d..228e09a63 100644 --- a/app/src/module_treasure_box/res/layout/activity_box_help.xml +++ b/app/src/module_treasure_box/res/layout/activity_box_help.xml @@ -56,7 +56,6 @@ android:layout_marginLeft="21dp" android:layout_marginRight="21dp" android:layout_marginBottom="16dp" - app:layout_constraintTop_toBottomOf="@id/tv_title" app:layout_constraintBottom_toBottomOf="parent"> RQUUFBT3NQ^6U5lZbw!Y%kIFZ%4GnSgpwIZet1(Zy$M2rk1B*rZf&}ln7YZF)# zVHinB*ir;Al#qa2gk~&4=OP?q5iS?u8H?~qL~LYjK8heB3K7y8GAtj5rTjiA6k`#p zT(PaJ*z)L-XSf_@^4F?QAgaKHj!|&JUF9Tj%`9lzZF&Vct3#BS8JQ00000 LNkvXXu0mjfl3Hak diff --git a/nim_uikit/res/drawable-hdpi/nim_message_input_emotion.png b/nim_uikit/res/drawable-hdpi/nim_message_input_emotion.png deleted file mode 100644 index bdf1d564c118e73bd25c6fd56f8ca2307149adf9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1644 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 t_~HiYUcc-`>OxSd@9FC2vd$@?2>_^c%VPil diff --git a/nim_uikit/res/drawable-hdpi/nim_message_input_keyboard.png b/nim_uikit/res/drawable-hdpi/nim_message_input_keyboard.png deleted file mode 100644 index ec6ac919d7ab15c4d70ee2669bbc56b380081498..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1756 zcmZXV2~g5$7>5xr64A6^!=m-bHauF7GSgfW?{vLu%OlZBExb0-(j5!WRy3o`in7*r zGB)hc=s+<|Q9;F9Ga}El*6lDIkJZL?-}XPlIPN#Y$NPJ}=lx!W;XmZ~c)8-#bktBN z6wckv$q(L5zP>Puu#*G1mM9eZp^s;PGelTROG^v}gUjVYQBzaHX0s&{2}GGp1`&$J z#zr2G2e6`|qO-FTV10ePSS%I@1OOolg+e}`4_Z}KRZ~+F5a4xnbqx&-K%jsKEx>DQ zYnz*!fr~^UFabgVR{?=`Fp(M@h;Re~6v#M)AcEY4(Qpdwz?WYIT;7O`Lq;Gn>>vY? zYslpYL`=DlKtzCDULaS2_J0!`fY1o*zmBg_4v_-kE9&LGyak-)d_@Zq5qZTC@)_WB z%K3^rAtDQLUTZv!sR<6AQAZidnTvO%01x$7yJ4uGZ4lUbANHT0G$!B2i}piS(_m-gjgp z6Vt6*&CJX#wpm$Q+t}{RHY6+B#uFQw8~GFgBBz~Io( z@W`9dvGKp&zyI*z$JO*Lx6S5A?j|0;Hiko z{`KG6rO=Z-LNBnxalO4b5^whPK;V0WvyS8w&ws~?N`vWzSv%Je zrCEja;60k52X!Q8oXG_NbBnn-`hTQT%HK_R`$kZHGF}%y67@u%aJhuEi)fN()Oh3P z#7pL?R-$sE=QCf%$lCmesyO~)$Yilb(}vn2*D*gnK6iAWHBFF7{v2qx@v*x42)<8$ ze{uAkH9R7Qae%YEcv$vJPbMq8V6i~2oEUF^ErS)_)+4()#0sW+rKRbzY^%HoZpk;! z9nwWRg=nHH`EU6cb7t1LM;LSQg9n*e#Ukc`ebh^fRSoxtl)`Lc?%A6h8J*}jY$g~( zkFiO~3-rPbtefRyPyH%FDINsh;N{MOQPP0uPy0fNUZ`_rd5=0Vr2W>S(e~ax@u{in8J~c(6W@KuaXd!&7vHy`} zMJqc>BSPwVeHfF(4eLY4UAZ=YHOVYEc8IF0Rz?Upax$RRttdQOBDzJc?t1Q36nLqQ zrXHlVk$$y9#r+iFV?r2}X)DR7Ix8S9MAoLa#rJh{unz3qiSzzS*5L{sGX)%rO%pF1 zm=|r!+|m@CZbdgc<$mg&>i9D|!#~OAD3(e$jyBD%kj5=p#8asBg9$j5d}T|=65i}F z^Y}gzL4UKE((F^TW8K{GZRSj2Y$nQmyd=^PQ;N4M!xhb^PjJe${8|X7jkUF3`D^H` z_PbjXV`HCLa{RcFUW0#ol(5cZ)J1u~)41rgK{mdPoXj%Lca3@VQG3(Te=22oKK|Wc z^jlYBN#w{D$xJ6Up?I$rXYRH*oQuyLOxo@P&#(Q8%BGawu!<67=6?s(!n_2zRj5i=$zx(fi!G^-{ZL lY2G)22e%sv9k8u?QOuj9N9!l^2fqGExjTC~-KS8~{{=~?`Skz* diff --git a/nim_uikit/res/drawable-hdpi/nim_message_input_plus.png b/nim_uikit/res/drawable-hdpi/nim_message_input_plus.png deleted file mode 100644 index 96dfd43652c52f2513a6f6b475ee57caf2edf8b0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1542 zcmZ8hdozr(Z z!c=zEA!deQm@$*lWRzA$jYrrrmO9yMzvs+xy64QD&;8ub{oMP<@AoSthV0hUS*wG= zVDth5{6gU$xBSyqgX|c|*n+{R#u0IUEj%kzin802siKK@1vb z@pwEK>Fn(6?d=6#BoYAt9}qwbG(Z9aflT`P`Tzq7UDyr*07_T~yP$Yw zQ41LYMpMv50yqQd!3O{Y@W|x<(Pcf9Xp53ZVzdSMfDEhvqYPlB2H7Gjr5;L%Z%P

QO#V4Fm712Gk(rrw z>hzhMoZP&#XV1}SwEXi01%>pYUyDmhE?l^H=~C&{>t$u-zg1M;x?9btsja(T-_X#= zWHvQFdCKN+xxIXWP$&{T@9!56ypX(nIVhFBdi8qv&EF%VGWq!U#Kh#})Q9Prnb}XD z=H?WN`F|G{7C(Rf^0nNOO@mh{FVN3B49`14_EM=3<$o>S(q#2x%jxvg`rmQe)sn4~ zNt@q38~K{wefe_tVhc@ctTZxcgxF2ld6+l8eoN9xZ#M$L&HJPiv%*BWamQ>7soPGN z8GG!a3*%PK^q6g>PVoE0g~@?h`gPVwBbRclQk}$++|KwUXC6+qtVy1)!WviC%huJf zr>5KQPy)tgHmnnvb=F1TWyISCLnjnFd9!~|$OcYBaz2)_r&beB|xRjD?D zS0!F%*K1Af2@P+$BhP5cE&Q=;hob>E9<-Am3M%lNj_jYzRn3mAsg5`qV(h!Obyo^~ z!xMM&qhej7>awORPnIIcZN!)vJ4MDHY}b~}`URJ3YG?_LpL4zPCSiv{{c?=Buv$RQ zySFxgo)Pw}qAj^{A4cOlK`_nL3Qy*9hq_$ON9g|(<`f$*x83~S&b`^($28H$hosXf*l4b{LBa)xxf-nL5aJNSD6F23cR(USJrGYou1;3ew$; zy6E=eEWB}@fv#jiWz`g)(i~6UmQ+gAppMOXJues;O!kox=CjfwW@S&SiRL#$+a7v& z;#^9I{DxT4u0-4Uch-R)uUR>;>+ne@^qeCPzb?At^1|D>CpY}B2T{iMw0q%pEmeE0bTba!To*F8W`KvGU{Ekn|GH#=Yjqq Ke)oOIdH(@s|CJg5 diff --git a/nim_uikit/res/drawable-hdpi/nim_message_input_plus_pressed.webp b/nim_uikit/res/drawable-hdpi/nim_message_input_plus_pressed.webp deleted file mode 100644 index 7600fcbea6b24f2ce812b9802d4c372f66ddadab..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1328 zcmV-01<(3YNk&E}1pok7MM6+kP&il$0000G0000h001ih06|PpNCE=@00CFUplu{a z@7bc~Pq{;gh&=p_VIxF!(t%l|q$Guomk{6O7FSa!sN(ESd5J69Gu|N4+BU^${vp{m zHUVO|yE_DTcXxNKx436*UDDf>G8BNDE%wDU19y^$C`7%__7Ow_k}`|) zfjbRFK-=Qr17zc_zjtv!-{N?lWayF%9A}@`P>Fh83|}x+(j|A=WN|F(Xrxm|Ki7RJ zP{Jd363R4~UEjSaRKJ&Nj)EzYS&mIafZMJ1ac?sJy_P6rGFj3!cNBpDKw4yWEbEA( zjqy4|A5r`xcMu3}J<80kuU;gr$AOZuGX()&;&x(@JCL_q450+_lLZVJPelac%(*B8 zAIsBIqy%|ydI0s-o%csVdY-a60MJ_-#lndzj0FGy(m$u+!iBM`vVXwudRe&T+aPd@ z^lw8-VQ|-5vB(|Zep`o^5V+CQ?*$*r#!N#(bQx!4K*}^fuSGEYh{KlOx@AC)^KXu8 zHGFthu(!pYKr8b9Z8|H&H1fPt<7$uyc$DVuzMgkR`>SPQ0FhMXAKiNL#umtcXHCxR zq0#VXy0@jJXX^K!@pwV60|6BQ@lC(j7l-5Z@K1AmAO=cSP&gm}0ssJT3ILq}Dl7mj z06vjKpGzg9qM@US0I(7XX#f?#3~*U8nOBM5s=b0bGXBPiuztZ`-NTO}RzD-H6j6Oe zUOZ)wCP&a`0vh+^4?(v=vQ0M>v{^hSkM~;z_Gwnl(PS*J=E#6$L zFZD(<@stdG*t(&6sJRW&rK?5G)L|#_P3VwZI5C(&dY)b#G?lm+nh!HQqk1{^h6d$H zq%9k2@sStN3$*j3*fyn)kz#-W;lIWHfy`-dD|s&XsLVwx2jRAJP3VDRqV3?jS@6mH z5mxLvkkV~F=r(`<^(0GQbHnm_zq_K@I2AI)K&tJ>F;^H)(|?mEWZyZ2oAu}EZTuYU zkGIS;PgrH7)K>GuBxIAb^m9%8voq|_$dK_C+t=35i2U-K3QO= z-%|O@ac4x1Kz0G*yJVi$61SuA>yY-*;gn>N^KM(xl>Jq2ITzo1aO04D^e3@zvU2j| zc{y^@6Xr>oZNZQ5zW-LxqgjMUzL7`g?|zi70L3jiimkv~so~NQ7&v}Cc> mublNksD#1zuAX$&yBk+M?Ju70VGljNEWOxuK&C%xfB*nAf{gh9 diff --git a/nim_uikit/res/drawable-hdpi/nim_message_input_voice_pressed.png b/nim_uikit/res/drawable-hdpi/nim_message_input_voice_pressed.png deleted file mode 100644 index d143c18f9d7439d0f3c5f5e214c03efa2e019f18..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1965 zcmZvd2~g5$7{)O)6GSv6wROA4@=810sI4*0Bg#C`w6e@(wR9!5)Gjkbtrgm|vcz1^ z)@<>pB!yDJL{OA4Ges9~v)whbJkq>izvi1^n5O>>AJ6l9pZDPp14FWhn+pcD9ECt2 zFoeC1MDT3+^|1sAPO~G-EeOP-Ne@?VCt$&)P$(!A3X{nMg2&@!WMqiNVqhyODr7Pl zAV3R+LKce!__JrvT3T8FtgEYQXlSUctOO9)=H_NTpU>fNK(eZ;N+c2i2u8KFwGxR$ zAP@iuNMmCoAb^8)kOTy50Sf~4_4Qy2STF(_l!E{W0|6jd1Qv{7623YhUpqhjuaKms*dFLPlHRQ@u6@m=> zG*k;gQndt*lu&gYb}Dy)`0n((5N_Fz5+8vt{ah5$%?qKXwg`z-*U(t3skuZ;3xz_X zwJ|zatgf!!(xv+P1_n6XGD9OHW8>vNn5&?uqHg2@G*|gPm8y>%7r^6m6 zXTpBh1MZ%lL@)1yhYlY(>VN!rK){K>K+-QkCr^chgocKljyM|?9TRiz{Dq6LmoLXr z;;9LVNmsA^mQ15xzyAA;l+@IlH*cq<-MO32$jG>t`A1exZeD&t!Gi~d%%Y;=;*!$G zPs&&o?B|tLH81#e0%3halcf0-_!+)_{kru{TU)zS+R@S3`L|5g)!p6G+t)uZF!*-p zzv1`qM@Bx3j(+_3X>5FQ^7GWxmoGCjvvYIv^9ypEf36sTK#~cL_TKm=QowGtE?RpA z8oP6Ld}yq{;8}a)PHj&7Q+KJHeR7*6qoZ?sq3 zyyq4&bFf3~!zVSzOdwq zlaZDl72?krhR}AN8@R!tScI0btB8S z-oY#L1Ao_18_$~-tx3iP)8+RMe;ivlxMpjq>4J6wTDn4d@^RcCZS+v{`zTfIcPmsim; zwflZEd)M9@pt{SV^32F{>yexYfiZG%Hn*wvAYbokQcp75b z&`@vt&elBxKgxD&B=G zl9{dxiRZG(9GsM!ZA$TBJmPyYGV=}J?JgQPog+%G_qNEsFzH6aKi@#_X=JA_Z3)G` zU`&L!FMksFBz0ThN4kaW)Wx#-8hl{??H1M}{Pg%KDncix;hL-6*t-U%8D?nc^KIW1 zv1fyWIh(U}aqZ{Kk427jvcs+2O3lx1-hCE_xbU;Z-rmA$*RTJ&1SdDgQilNQ|K)g+ ATL1t6 diff --git a/nim_uikit/res/drawable-xhdpi/arrow_left_white.png b/nim_uikit/res/drawable-xhdpi/arrow_left_white.png new file mode 100644 index 0000000000000000000000000000000000000000..7297e478d13ad46fdd152e13924f194e73671164 GIT binary patch literal 407 zcmV;I0cie-P)d55J9%}Ei6QQ0dWgO#6}bgD;rhqhz6JK8DLt{OU@|Ov%L+R0+Yarr2WiF0&VXAoznVQNgvT* z1@;NFBz;GL71$53D(N9=%eHrcv(h#*tS#w2>QF+lpbBHKS}+zH3Z`I{U@A5cY=ZTH zO|c$u6xcs#yA9mbHEqZsk?kqq8JH_9==%afux^F6SAe@wU^#dI92dZjq`lCJ%I{?r zZUGmC2d}`Qq_-3_16x3bOca18U^xZt&O_Trz+tJPBs2%dfGc3FDf&OLZI1(&P0^kR z7zNswDNWIVA=Lz}OubZeXpE+ywYh9Ns-}NB(_X{aV&?Sp)gY^Ia002ovPDHLkV1jc( Bth)dJ literal 0 HcmV?d00001 diff --git a/nim_uikit/res/drawable-xhdpi/nim_message_input_emotion.png b/nim_uikit/res/drawable-xhdpi/nim_message_input_emotion.png new file mode 100644 index 0000000000000000000000000000000000000000..c03d8a74f0a111bc77001d479276ed4e652a34fa GIT binary patch literal 2619 zcmV-B3dHq^P)o2;p?Is(F$y#dFHindCpI9kPO zokDIXDpINS5jMHGL20LUsv=-JRvmT9R69PZjErbi(3Q>ZJzwYC+|ca8lAF6>mvMUj z$shN7{m%1yg|H7sDwT?s%ZGiJh^D&0WMcj@h$aCT3*aDM2CB~APIto9B>9HQ3R0QDt66hzTif-USHl=F z7|-w4#AiB`|#&}*v+zT3+*uX&J$#jAxuL3Xz!0Q4u$F?(n-j@Ie$~KJjnG$?A zfMWn`2VtgDu<}7{2m~~qG)8DZJ!#$uiN)SdCBD8?$lg{@=x}_GB{~-p(=WWsN??(bw{F^--n{}fjC7|2tJ!je zpqX|)vwAo{1l3_A)0axg_oYhtv2*bxlv0*9nH&#@iurqT^Wq z8Yp8opy!-3zqO^+-3Z{D0P>D)DTiRcA2FkI4T0L#)6-klrmkDJw5QhS-GIiD>7S6~ zo7EH2+S2!pTyDij`#nm}rR+Gkr#JGvdU}{}L#bdX47)}@pt0DzV@Q+AryMOnXASo| zIn)XD-`U3jbh9gtFO`H{{O49cSeZZ$O{Pa}EB+(nW2f$PSn`BGh?0pr%gw>_T%_l)P4a75?LiV>6pmB2@2xo)P z;S?+t9qe`Jaq~|goK+=a@Dn9FJFOmHnD1eA#gpmTEctFQ|IsOC&n6W}_wshdZ}2)6!Bgb43tiymM2I+zY}~Fg8Urnw`&Q z-VDOqD9uoG>4v!!z&rsgq*y%t01;m-fZ4Wfsetw~GxS7y7MK;Lm88ebO(2}45l$@> ztfxOSC;=oA<|!^?J(xF;9#6js;zcwMrZ%aD8%!k8|Ej~vf%cy-J_mZwQ6TGR&6jD9UUDlTi=aTYo^_f zZ5M#)TtYRUna-?;K9yi|x;Rr=Yj7j@CNKYoyNB2ptRM8k)oT7DPT_XX+ z6P+`eX{F~dgmD3Pg+N}tkk7U4?7AR|!_pW==Q$Gen9m<5lvK3+T)Fbih#-7=GJOjqUtgi6I~_Z-AP`@zQy(Twi^t6v6P(IU!se1~eI8>NQ>nh-tRH z?1_4OVZIy2yfY-^Uwqyj+sAfK2y*%D7I=F=6XqN+R)F!8Q?yPGVvrs;vmng%FNkNH zqNVx|JTI$>Lj@fhRnSp6Cc#6=|D{qYSrgCgJMX;Caas#)0ni4C$$P3@3^d;BVPLTt zgf{g}5-(U=$llpRkeHt6yho>8=!t0BvHAScx9bV@FESOwe%q(*6@nMo`RuYGY-5^km}vp1-O=K&=CiHQZ6^n5 z(5OjZw`wF$sJ874EJ-{}zz-TJNhFi=kL;7K>SdT*ofrn5rb-pMdWqDVGw-{eG^eq| zVggR7VR$7Xv@?TDyyB^rBp7(4WLv8D$s0{6GM$?;Cq~LBf$*&Xh+YM#1mX=Eu(@33 zt)oZ3r-BG{cONz;8l{P@dN!C&1~>-b*na$sXZxavJ(jbSLtl3UE;4yD60&Tl>Z;l( zcd?N8@vbdb*R(+idZoax+)uSd1M8fFaWqsmR6=SC!3^#y+1c|OvA4aw^NVE{R}<)m zH4TnIMeJbk@1h!h+0~U*DUiUU;X<%?Rw||azpI|2u%&(FRE+!RfV27}P9b7dJwF=2 zc-1c8TdxYts*UbVW_m6n@bm`dy2;wmXp8h5h z`W}#KB#|U=VKHy5*^~JHx8GD}C6?%1L`*+d@1g*%vu$fh6Bi`3sOgFHHG)|+cMZLv zs%nLi?3^zp-Bk%cu|`mI&d9dN^{xOo<@FW`zS7QTRq0``BXEk-Z?IAs2(Rf8f@V1R z%v1FgH1oS3JF7bGzG-@_8teBts0&KnqAF6kFCw&`1@&6Og7&>Hb$n)eTXkQyu~v=r z8k76RUqcL)Rj4#3v%H@pa!IpW0=$Xs)2;#0Wy9K-T)QHJwVIPgs|BM_C}iFbvw|uY zD+vj9`O=zJa|UP)yR@*jcc>BhfzRk*LI?TtfD7O`|IY(24gB+fN?&f-q8-@QhH+BT z=UvcbFrUDnsRUNt-Ck(swU&?cp9cm4Po*wDr0lk)q(st>KEnSU1lT|VT~Vzkm&@Jz zpGH=0Fxnxn=$-_7ajHAvBq8}E2}}X=6ec>HfN?dw4<9q2BL8g+yvBqV1<}S;C`% literal 0 HcmV?d00001 diff --git a/nim_uikit/res/drawable-xhdpi/nim_message_input_emotion_pressed.png b/nim_uikit/res/drawable-xhdpi/nim_message_input_emotion_pressed.png new file mode 100644 index 0000000000000000000000000000000000000000..ff5c90c1f0334df35403796dfaa4ae3984290d6e GIT binary patch literal 2768 zcmV;>3NQ7EP)45875>hBW5*8JoYZf|4S}X=NNE7Ikb2(r*r66krASl?`%(k}f+$-l0Rkl^xW5pQPZ4cTnN`i_oSnJW2= zm^NXc(P-irA!r3a=KyH*xGMl}0V*a0-eMO2a^38jCr$q3)VCZTqh({f;XF>Ir@hzzLpmFJ!YrH+6K( z{ZB0c7W3-q`D~t2b*q_iuJ`UuBAipn!ukdpizSy5(bE8C0QiVmEpKZJ{p~;kEan}H zB~Bs|j{%quU>Cs4qzt~~M+aX(9VdAuGyM*L0r1BD{`yNgJDYa+5m0NI;oE)i34l%q z;1cn*mKA)soSd>i9VdAkGu;7z0o)>`d2czUlkwiRQ!4@dQeRd?yvnkIcaA4_T%bKY z$sfBe>D6+T;$@LYaP4G(@GB!4O+hcOLR60c_dw#mu3h?3>#32%&BbheH~}zA*x5Jf4`Z zl+ZrqRAzPZWZTJ!E~sZ`UjwjL2z5+29Qr8Fa|BSwN&bnM&LiUIEGu~aLSEVH{70IQXu-9^`} z`v5?_5Oj1n+^ql4MFzQH+o{I^TuQ_bSyu4sv6SuV;y`0#>V9UrvZTEtemD>?uUovB zhN=Nv3mJ}+e2|&0B2rIUR_M}wK)bus(+z`r^|wicg{7Qj+fHde^D-X*9+%Qw?t^X= zNiAe}=27qDUe~3T_V(u8xgE9b)I|WE*2mAX%q3$fXxqsMK>Lm*5x>_-fX){} zT^0_9o~Y!g9qP1>le&Z%PiQkkj+3&PVG*IDR>uBNSpe;HFy|bZDA{)U6M&BZ-1*g} z5)Tz%#d>(Y`-cEN*5BwZT_$i{nxPHrp{jH>dd1_P&QYrVzW}ytpgI=>Db2F^qiTd5 z%sHOv9MG1cDxk4gZ>tb=f$P%qkx0;<3^37XQVPN6GxOTEww4}0GK+!cj&6THrswM- z<(SxZO8dnj00}A0mU8s9cyHVL92Va)i;iyPmr?$>Pv()YM&^jis2cNP+o><}Wx@Xb zFB>~M=l9oQ*Glo&vW4r0hSK?(>0T+#!~DoAGB3jp0}(ErU#Gs1iESs>0Cc_g?C$Y=-)g~)T-e0j%;J{eXMCTO!4-b^ zj&SPzhG`>#CQbvypNF5(`%*T4%a7n{X>2?FPk@gep09o=W$5K{yhep-dV=F5|H4e) z7eXx$heJAdH16o?`lz9y;V>PydW{!ur<5&!FE_86_qN^pJ;3Pl=I-wA|I+kx`Hc#^ zH3QpDECU*+@{M~e&+h6VP=ZQ(=i=%c)K}nC^_=D z=Tj-eS(BXGw|Vo9ra)luGXM?DIBKlgMX_?ahXF8jdbB~m6M|QS!@>Lfg78BZk0-BJ ziq?3v{eXM4pTMIaIo6-e*3Z?QEd}Y$;3nc{EGwuJfBW;gUcToY00TtE0?V4CZRNOQ_#)E@ zYyPfBI3xsCw6-=sSnV;^$F-*?eU(zsr=!mMG`38io{sow&?rb?PfzB_KaOATmz! zv+#Pt{!F4;CuKN#g2MT_Mk@qPYi%`kHm~gPU1ZXnsx2E1*HvfS0nktLN3N`9r3r=r z{!J#cYgKWbv(%J|%7&UrVIf#|YgtzC%t{pAygB*xKma!Y^rM0XN53p~1N_Hq7QgQ3 z2X zkNb~tu76fvP{-?|Or)Ly>VDzZYpE8r_P&6j+nL2O&&fG(ZLE1Ey~gAll@hw5mTydc zh6t-G>7VrjS~rjYd?T~CXi^)K3zaL?YEGoq0@;n>@ZsD2fGMWYxmX~ulv!L@&}z=Q z%1*>93wwtu;qUt!Eyc9Nj|W_U-XP)_k$R{2#{)Wj+1Iyo8ZgjQS4Us<0)pe1Ndm09 zyLBO1kAwf?fnwmX*tXe*QGXUQPG=?^eN literal 0 HcmV?d00001 diff --git a/nim_uikit/res/drawable-xhdpi/nim_message_input_keyboard.png b/nim_uikit/res/drawable-xhdpi/nim_message_input_keyboard.png index c58009d7d1dd002e71232279058d4250d0bda52f..7f6c144d222083c44bccf319ed10245ebea2d92a 100644 GIT binary patch delta 2072 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 literal 1199 zcmeAS@N?(olHy`uVBq!ia0vp^Rv^s53?#3m?vi3)V9X2f32_B-&zw1P<;s=Yw{HW< z8#itMx#!QHzjW!+)vH%eo;-Q(+_{TjaO%`4pcIe`lm!Z$K7IPwv14b?o&|C*fB{et zr~oJeR09M+2AmD#0+qqJKsJO65dpG+3XUH?e)Q;3h&V_;surLWvUWHds0_}AGr+n* zHbNL^Tr_29vJfsr4bX!?fMyP|nLuR_HOPWM5eOH~0CFMhXZ3UJfFWK{666=mz{op=Tc%&wuVURhQCGs<) ze)D$wS>jhVDd##I-*hPIlsfm%AX6>vU6a4ns?CqT-p!Xg@wZ*&o3hTM3A=BybnEz@ zVB*$_|0c2Kuin+x)$c;PR3Cqh7mCUKdNz2j(dL)ITF+SUV*}h(8V{_FH z*3`0_j=z8KrYuhXvSD3z`{LekvuxcLcdMj#UvHZBGV9OliFTDHw~QX}OyMAbl+}D)Dsx!h-OxGvVcHumri38T#Nw2Q6_fva|6$x2$#D3RW3yuI&D&LB9f{ zHET5=9In+3RhlC%64^g9z4=$BE-;cG&idU}U-ou!*0Y-o410^$N6TyHKdU;cHd|T1 p`@QV^dGqJX)t@-R{7Lg4BbUdkjDEw|H^6+r;OXk;vd$@?2>_9lt=|9u diff --git a/nim_uikit/res/drawable-xhdpi/nim_message_input_plus_pressed.png b/nim_uikit/res/drawable-xhdpi/nim_message_input_plus_pressed.png index 3ce83659762515d7330f6a7100f98d18406ae29e..1c42ca04622117bcc248c6c11a56d83711c1a81b 100644 GIT binary patch delta 2272 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 diff --git a/nim_uikit/res/drawable-xhdpi/nim_message_input_voice_pressed.png b/nim_uikit/res/drawable-xhdpi/nim_message_input_voice_pressed.png index 0b8a0b05a1a2ca1af555fad96b2640d5c0733770..c8710118e5443b002e6fc02da1e6fd41dd1b8292 100644 GIT binary patch literal 2945 zcmV-{3x4#8P)hhnH6+JR%*IuQH-R5s2D3Mp}S{xF;o(@v?}olYBT~0F-9#@3E(R}V^mB^ zqb5cSK4TOGNtF>b54Qwnx@WVB&!mj;1sbM%!R1xVvO9fG>dy4YuLYpB(tp<>w5(lK__s9om}(OJyY3}F8O^4>|rYnXXOp)hKBbMx4a0rJ^n z*`R@@)45}Wpq~IV3&7}ry9DqCATvVX4QBD4?-w?7bwxMNn4#@ZG%YP&eO+B)TqF{m zKqMziiLU`738;S|0zP?wmr2RLN~IF-3RVW;!cSjES%Y;3vDf*y`0A<8^i741m7J40SS;j*^I1Fw2FO)%fv1_=X0m?%$3b<9;foxW4oSsSDsI zh;XNAYVQw3iN4l2jyH)JivYS1;5q<#A>?iK^_%Ysdyhi_4Fo?0;DkWAWrafb!sg~f z)(<7Xp1fLHKbs(BY%w#=4d&JnVOE%ptr=)00SU4fLC^Q*3F$UqhU)e0*0EVWZk=#0(2$- zpNOwCP5rmkCWvqz!2Gi7U?N4sMKwDeg zANoG2-SVa6IjNNX#7KasRYp4PUMK`TqE1>Q!k0~(ra#cv+CG8WwtFT(�$^h%Yrw zeMzkfj3k}oxbvCmcj^g}l4qq-`ikD<_X;$V@xDTYHUI|^;TqG_?ieoRZQHvIz(OLv zd;NOtnwc}n4=c-YysMdu$9NkvPDm!T|McXs7tmF!-rujG;h+qF;{krovUKGT4BN16 zuLZz2lmH^RDjKajf9lkOw}utyIPUVmd0E%dvDG^D)JeN4dF%x=o6TJ-rBJ*4Q7jfc zZXiO#D7j{h`{ig`AC+Trzl>&kJFl(v{hmFDtFQMWB&$FCj=d37;*Lg zVq{Ppw(b2Mz{N!T8`IP;55s&YX)~EkM-oY8@ecs-G4rmYlgSDBFfts+y`PzWL?j$fygvnu? zO|`5m(*)0>`jR_+pBkH*;@gW~)V95g06ePVNz>G(hhbWc*0#N$1Gr8JWyb7eQhT=A znwA!hjvl?~4RwTxuqB_zgmS=MZEbnpalBWVp|H%hEbXxXsQY5c;>r1zl~B>akPX}R zW&(J+96&S63zEr%3ibLO>2&T~Aw-c*2wY(p+WpnmRL*C!xl5!J4-xUprm3GoDv;i` zEw1u1qotIIR4UGCIMn$%BtZAAG zW*$xO8P#HQ4ebvMvB(9J!L)1S;6vhKN9Jl*qa*}L>a|=lMwPc!$|z1f1uvo z%(zNfPs`FmW&g9;Psd4Fw+X;z1ytpNU|Cw#{84WTmDle*C%6Q|GrzenyK#IIgYEU0V;~|ElZ1r zIdMIK7LRUcCk_njW+|cBtapW!P^r+0!GE`kf4jq!c@dNmKp zw%xw~^lgCtX<6}N_*U!K!x#<4^HQr|MOQXnMA&E;@k5D7Ro?o!qn?VY5`cWhvJ$Fd zSM%ucyp$XUBFr^SP31_3ZDca;=|r?r2_TZUn`YwL{y}a$9EcRtA-&~+swwI?-W+B; zTyz*l$^~p~^%A}hWt_$X*iOWgOjCFJQ?~M$Gy6s|+1OeQT;=>8F5pNw^{VC>i$z`m zaEwxcosr|Uxn#%dT!ZbDMIPOc#baE}`K8&!E@o^sj=+ctH{D<}Hwb`{~;~mF+ zmYL30J0m4eN~QD7Vd(d&(pR-L z71v2^&I;4i72r@~cPgcnH7UA%Yu0ROh(^0U12BpiNAy;^2qk3@#44HA-5qNK_$UCo z3I#s8xmj0^dCj9DIo4Sy)E%NaTPo6>?xO%*1jzd>D{)25T!)y@adJzU#oXYi-)frr z4Pix;tt}BhZkoDE{O!)`2CmuLY8QzjlT35mr(p#QmVWnBS2RF&J|CZ6E#1;nW<>&f zKPlz0<+hzYA{N`uEd#{NeNmFIZBM0fejO<877E?d!sdtq!&)q>^z@|md69{kDVz1~ zVpdIA#j%Zun@v+!iLFqh<|32gI?`psbUOE4A;g~oMD0@gr=?Pj{|JQ;K&Y~zVqRGY z9;j&#qhzVp!fAj%D-`(juoku~D|8`PEey=F@=M1IcWFP&ru0QSpwfPsSvu{VEkv=D zAcT1RjuTB#~0$+*C?a6@k6R|J!dW&i)O|bhGj~h2X0VLti|QogeBo z*{r)jN>a^TgKwxRD;LCt_XIsh%k%lVdHb?OZuID`CCqe=I<7+CD#Ot3tG1Cfr#OQK zE0uvLHa$v-*{PJax|)EYoDZCRRj(PIrpMjKxY$3d43sM2F_C-(h}}5c?xN#tJ{0J_ znOV#U+}7c1V=aRX8j}}DDO44^+?f105f%?+OMsH68b|2TVSgA<%SQYUlz6>lJ3uxo00000NkvXXu0mjfteUG8 literal 1750 zcmbVMdpMJO9A6tXw+y-DUQ5ZP@=S=xWwb5i*3xkwBe~_Yq!gZt<5s7L&~2036qTpB zr6w~Qk7=8w!-EhxhmCPUGjZP2&a=l;|DE6Syx-sF`un|qyw98M<#|*|URxdn0x6+U zNFQLg{r7=FfZ304(FTFQJH6cfTmicNebv;|P^r|Oo*o{L*U-?=+1UwT4u=DX9UUD^ zCKI3lrqO7C)z#J2-ri29(*eD^yIV2=3s4vg2H;9CkOVA%0w(|%n39S_mrwvp#Elfd zz&U^pxWJNN36<(nDpjP(@1_4*KZrkDKwTnA4+OwQEUj#eNiZ-s-Y#iL^HRDoBdJI; z5&%r;jZ)?3jMS38vsC#3NU#1u|38#Z8UVf$3c<(I7qkfsk&)fJMNVEpQE96(Ohr{q zT|-k#S5M!-aK}#gE~DLhj7`nO}O zkBo{w6B`$waF%dB=|b|Qlq;#}SFc^q$jr*l$<6!yR(`>qyCtRf?mu`$B$Yibuc)l5 zCf7W9T3bhHY-(l+9t%v}msU^1M88t|N` zDd%FH%LxT%KGgB};?*=(J;E*_X@tMZ7Kcrxw7%x*4?giQ zTPyGwCS^FZ=vAZT2pG?ltjS0}@+$dZtR4 zR5=6kc(32n5D`PJ4~QHikLlZ{z?vR)_f@`x&;|xu^gQzt`t4Ys6Kxb;Zkq(_o5_WV z^`Vn*$9;)~BtZx|5o2yAL;54DFIQFY5bi@duk}!{OBMTS~^UEq23egq!>)h?;;kK}f{+wWo*Ta_R zztcsy!Gv2OVmTTHuX_Hds)CzM=fF6xg9G5_=%xGd#O=oU6BmRY z&E^n;EQJ?}1op|<3=uOAQe$+{{&07k+*eP~Qp!{S9h*%qn4s|8)FQ7D)y}bXsSdET z^Dv&5W-%0g^fL3!#Y;+|g%hk|pS0(L?h(&EvFN8o2@}cFwBkW`r`|C4rGtTGRFaF} zK2~>hMh7KbE443hZDq=1GQz1zu1o1msJ?U7{_w;x$Qdp=_DMK*L$NY!ftXa1(#T>k}|C%@Lp+|H8xik z_RC;PL)Et=50->Y3>vn^7r(MH%X?>O5UT~t3)HzB6Fm^Vh_84SOXh?kPMPp;E+1K2 j70s`m2q<(FXRU+0ajDaLqOHAwUk?cF>WQp#4!!yholWC% diff --git a/nim_uikit/res/drawable/bg_message_input.xml b/nim_uikit/res/drawable/bg_message_input.xml index d105a55ea..352cd26ad 100644 --- a/nim_uikit/res/drawable/bg_message_input.xml +++ b/nim_uikit/res/drawable/bg_message_input.xml @@ -1,5 +1,5 @@ - + \ No newline at end of file diff --git a/nim_uikit/res/drawable/bg_nim_water_drop_other.xml b/nim_uikit/res/drawable/bg_nim_water_drop_other.xml index 29ab10fb3..6b1f87bc8 100644 --- a/nim_uikit/res/drawable/bg_nim_water_drop_other.xml +++ b/nim_uikit/res/drawable/bg_nim_water_drop_other.xml @@ -13,6 +13,6 @@ android:topLeftRadius="4dp" android:topRightRadius="20dp"/> - + \ No newline at end of file diff --git a/nim_uikit/res/drawable/bg_nim_water_drop_self.xml b/nim_uikit/res/drawable/bg_nim_water_drop_self.xml index 5be71157f..aa7827887 100644 --- a/nim_uikit/res/drawable/bg_nim_water_drop_self.xml +++ b/nim_uikit/res/drawable/bg_nim_water_drop_self.xml @@ -13,6 +13,6 @@ android:bottomRightRadius="20dp" android:bottomLeftRadius="20dp"/> - + \ No newline at end of file diff --git a/nim_uikit/res/drawable/nim_bg_message_tip.xml b/nim_uikit/res/drawable/nim_bg_message_tip.xml new file mode 100644 index 000000000..57ee44fad --- /dev/null +++ b/nim_uikit/res/drawable/nim_bg_message_tip.xml @@ -0,0 +1,8 @@ + + + + + \ No newline at end of file diff --git a/nim_uikit/res/layout/nim_message_activity_bottom_layout.xml b/nim_uikit/res/layout/nim_message_activity_bottom_layout.xml index d5b13356c..fdf9e0265 100644 --- a/nim_uikit/res/layout/nim_message_activity_bottom_layout.xml +++ b/nim_uikit/res/layout/nim_message_activity_bottom_layout.xml @@ -4,6 +4,7 @@ xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="wrap_content" + android:background="@color/color_2a2a39" android:orientation="vertical"> diff --git a/nim_uikit/res/layout/nim_message_activity_text_layout.xml b/nim_uikit/res/layout/nim_message_activity_text_layout.xml index 9792b3b76..f32e2f686 100644 --- a/nim_uikit/res/layout/nim_message_activity_text_layout.xml +++ b/nim_uikit/res/layout/nim_message_activity_text_layout.xml @@ -4,7 +4,6 @@ android:id="@+id/textMessageLayout" android:layout_width="match_parent" android:layout_height="wrap_content" - android:background="@drawable/nim_message_view_bottom" android:gravity="center_vertical" android:paddingBottom="@dimen/bottom_component_margin_vertical" android:paddingTop="@dimen/bottom_component_margin_vertical"> diff --git a/nim_uikit/res/layout/nim_message_fragment.xml b/nim_uikit/res/layout/nim_message_fragment.xml index 6d7ee11d1..3a4e20b63 100644 --- a/nim_uikit/res/layout/nim_message_fragment.xml +++ b/nim_uikit/res/layout/nim_message_fragment.xml @@ -3,7 +3,6 @@ android:id="@+id/messageActivityLayout" android:layout_width="match_parent" android:layout_height="match_parent" - android:background="@color/color_message_default_bg" android:orientation="vertical"> - - - - - - - - - - - - - - - - - - diff --git a/nim_uikit/res/layout/nim_message_item.xml b/nim_uikit/res/layout/nim_message_item.xml index f4b9994a8..238daa1d1 100644 --- a/nim_uikit/res/layout/nim_message_item.xml +++ b/nim_uikit/res/layout/nim_message_item.xml @@ -19,8 +19,7 @@ android:paddingLeft="7dip" android:paddingRight="7dip" android:textColor="#ffffff" - android:textSize="12sp" - android:textStyle="bold" + android:textSize="10sp" android:visibility="gone" /> + android:layout_width="wrap_content" + android:layout_height="wrap_content" + android:layout_gravity="center_vertical"> + + android:textColor="@color/white" + android:textSize="13sp" /> \ No newline at end of file diff --git a/nim_uikit/res/values/colors-ptr.xml b/nim_uikit/res/values/colors-ptr.xml index fcd16ad5a..7a1e5529d 100644 --- a/nim_uikit/res/values/colors-ptr.xml +++ b/nim_uikit/res/values/colors-ptr.xml @@ -2,5 +2,6 @@ #7f01020a #7f01020b - #2A2A39 + #dbdbdb + #2A2A39 \ No newline at end of file diff --git a/nim_uikit/src/com/netease/nim/uikit/api/wrapper/NimToolBarOptions.java b/nim_uikit/src/com/netease/nim/uikit/api/wrapper/NimToolBarOptions.java index 86e949ed4..b81c92f4a 100644 --- a/nim_uikit/src/com/netease/nim/uikit/api/wrapper/NimToolBarOptions.java +++ b/nim_uikit/src/com/netease/nim/uikit/api/wrapper/NimToolBarOptions.java @@ -10,7 +10,7 @@ public class NimToolBarOptions extends ToolBarOptions { public NimToolBarOptions() { //logoId = R.drawable.nim_actionbar_nest_dark_logo; - navigateId = R.drawable.nim_actionbar_dark_back_icon; + navigateId = R.drawable.arrow_left_white; titleString = ""; isNeedNavigate = true; } diff --git a/nim_uikit/src/com/netease/nim/uikit/business/session/viewholder/MsgViewHolderText.java b/nim_uikit/src/com/netease/nim/uikit/business/session/viewholder/MsgViewHolderText.java index e0f112fcf..faee7426d 100644 --- a/nim_uikit/src/com/netease/nim/uikit/business/session/viewholder/MsgViewHolderText.java +++ b/nim_uikit/src/com/netease/nim/uikit/business/session/viewholder/MsgViewHolderText.java @@ -36,40 +36,13 @@ public class MsgViewHolderText extends MsgViewHolderBase { @Override protected void bindContentView() { - layoutDirection(); - bodyTextView.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - onItemClick(); - } - }); + bodyTextView.setOnClickListener(v -> onItemClick()); MoonUtil.identifyFaceExpression(NimUIKit.getContext(), bodyTextView, getDisplayText(), ImageSpan.ALIGN_BOTTOM); bodyTextView.setMovementMethod(LinkMovementMethod.getInstance()); bodyTextView.setOnLongClickListener(longClickListener); bodyTextView.setLinkTextColor(Color.parseColor("#522f0c")); } - private void layoutDirection() { - if (isReceivedMessage()) { - bodyTextView.setBackgroundResource(NimUIKitImpl.getOptions().messageLeftBackground); - bodyTextView.setTextColor(Color.parseColor("#5F45D6")); - } else { - bodyTextView.setBackgroundResource(NimUIKitImpl.getOptions().messageRightBackground); - bodyTextView.setTextColor(Color.parseColor("#666666")); - } -// bodyTextView.setPadding(ScreenUtil.dip2px(10), ScreenUtil.dip2px(14), ScreenUtil.dip2px(10), ScreenUtil.dip2px(14)); - } - - @Override - protected int leftBackground() { - return 0; - } - - @Override - protected int rightBackground() { - return 0; - } - protected String getDisplayText() { return message.getContent(); }