diff --git a/app/src/main/java/com/yizhuan/erban/MainActivity.java b/app/src/main/java/com/yizhuan/erban/MainActivity.java index 1214a5c2a..89c0f7368 100644 --- a/app/src/main/java/com/yizhuan/erban/MainActivity.java +++ b/app/src/main/java/com/yizhuan/erban/MainActivity.java @@ -16,7 +16,6 @@ import android.util.SparseArray; import android.view.KeyEvent; import android.view.MotionEvent; import android.view.View; -import android.view.ViewStub; import android.view.animation.LinearInterpolator; import android.widget.LinearLayout; import android.widget.TextView; @@ -25,16 +24,9 @@ import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.fragment.app.Fragment; import androidx.fragment.app.FragmentTransaction; -import androidx.lifecycle.Observer; import androidx.lifecycle.ViewModelProvider; import com.netease.nim.uikit.StatusBarUtil; -import com.netease.nim.uikit.api.NimUIKit; -import com.netease.nim.uikit.api.model.contact.ContactEventListener; -import com.netease.nim.uikit.api.model.session.SessionCustomization; -import com.netease.nim.uikit.api.model.session.SessionEventListener; -import com.netease.nim.uikit.business.session.actions.BaseAction; -import com.netease.nim.uikit.business.session.actions.ImageAction; import com.netease.nim.uikit.common.util.log.LogUtil; import com.netease.nim.uikit.common.util.string.StringUtil; import com.netease.nim.uikit.impl.cache.NimUserInfoCache; @@ -42,7 +34,6 @@ import com.netease.nimlib.sdk.NIMClient; import com.netease.nimlib.sdk.RequestCallbackWrapper; import com.netease.nimlib.sdk.chatroom.model.ChatRoomKickOutEvent; import com.netease.nimlib.sdk.msg.constant.SessionTypeEnum; -import com.netease.nimlib.sdk.msg.model.IMMessage; import com.netease.nimlib.sdk.msg.model.RecentContact; import com.netease.nimlib.sdk.team.TeamService; import com.netease.nimlib.sdk.team.constant.TeamMessageNotifyTypeEnum; @@ -53,16 +44,12 @@ import com.tencent.bugly.crashreport.CrashReport; import com.trello.rxlifecycle3.android.ActivityEvent; import com.yizhuan.erban.application.ActivityStackManager; import com.yizhuan.erban.avroom.activity.AVRoomActivity; -import com.yizhuan.erban.avroom.firstcharge.FirstChargePrizeDialog; import com.yizhuan.erban.avroom.ktv.KtvMusicManager; import com.yizhuan.erban.avroom.newuserchargegift.NewUserChargeGiftDialog; -import com.yizhuan.erban.avroom.newuserchargegift.NewUserChargePrizeDialog; import com.yizhuan.erban.base.BaseMvpActivity; import com.yizhuan.erban.common.widget.CircleImageView; import com.yizhuan.erban.common.widget.DragLayout; import com.yizhuan.erban.community.dynamic.view.DynamicDetailActivity; -import com.yizhuan.erban.community.holder.DynamicSysHolder; -import com.yizhuan.erban.community.im.WorldDynamicShareViewHolder; import com.yizhuan.erban.community.publish.view.PublishActivity; import com.yizhuan.erban.community.square.SquareFragment; import com.yizhuan.erban.family.view.activity.FamilyHomeActivity; @@ -75,48 +62,23 @@ import com.yizhuan.erban.home.fragment.MeFragment; import com.yizhuan.erban.home.presenter.MainPresenter; import com.yizhuan.erban.home.view.IMainView; import com.yizhuan.erban.home.widget.AnchorCardView; -import com.yizhuan.erban.luckymoney.viewholder.LuckyMoneyMsgViewHolder; -import com.yizhuan.erban.luckymoney.viewholder.LuckyMoneyTipsViewHolder; import com.yizhuan.erban.main.helper.NoticationsUiHelper; import com.yizhuan.erban.miniworld.activity.MiniWorldGuestPageActivity; import com.yizhuan.erban.module.Extras; -import com.yizhuan.erban.module_hall.HallDataManager; import com.yizhuan.erban.module_hall.secretcode.PwdCodeMgr; -import com.yizhuan.erban.public_chat_hall.msg.viewholder.MsgViewHolderAitMe; import com.yizhuan.erban.quick_pass.QuickPassLoginAct; -import com.yizhuan.erban.radish.signin.SignDialogTimeManager; import com.yizhuan.erban.service.DaemonService; -import com.yizhuan.erban.share.viewholder.InAppSharingMsgViewHolder; -import com.yizhuan.erban.ui.im.actions.GiftAction; +import com.yizhuan.erban.ui.im.ImInitHelper; import com.yizhuan.erban.ui.im.avtivity.NimP2PMessageActivity; -import com.yizhuan.erban.ui.im.chat.MsgViewHolderAudioParty; -import com.yizhuan.erban.ui.im.chat.MsgViewHolderChatHint; -import com.yizhuan.erban.ui.im.chat.MsgViewHolderContent; -import com.yizhuan.erban.ui.im.chat.MsgViewHolderGift; -import com.yizhuan.erban.ui.im.chat.MsgViewHolderHello; -import com.yizhuan.erban.ui.im.chat.MsgViewHolderLevel; -import com.yizhuan.erban.ui.im.chat.MsgViewHolderLottery; -import com.yizhuan.erban.ui.im.chat.MsgViewHolderMatch; -import com.yizhuan.erban.ui.im.chat.MsgViewHolderOnline; -import com.yizhuan.erban.ui.im.chat.MsgViewHolderRedPackage; -import com.yizhuan.erban.ui.im.chat.MsgViewHolderRedPacket; -import com.yizhuan.erban.ui.im.chat.MsgViewHolderSkill; -import com.yizhuan.erban.ui.im.chat.MsgViewHolderText; -import com.yizhuan.erban.ui.im.chat.SignInNoticeMsgViewHolder; -import com.yizhuan.erban.ui.im.chat.SysMsgV2ViewHolder; -import com.yizhuan.erban.ui.im.chat.SysMsgViewHolder; import com.yizhuan.erban.ui.login.BindPhoneActivity; import com.yizhuan.erban.ui.login.fragment.AddUserInfoFragment; import com.yizhuan.erban.ui.patriarch.help.LimitEnterRoomHelper; import com.yizhuan.erban.ui.patriarch.help.PmDialogShowMrg; -import com.yizhuan.erban.ui.user.UserInfoActivity; import com.yizhuan.erban.ui.utils.ImageLoadUtils; import com.yizhuan.erban.ui.utils.ImageLoadUtilsV2; import com.yizhuan.erban.ui.webview.CommonWebViewActivity; -import com.yizhuan.erban.ui.widget.LevelUpDialog; import com.yizhuan.erban.ui.widget.LivingIconView; import com.yizhuan.erban.ui.widget.MainTabLayout; -import com.yizhuan.erban.ui.widget.RecallDialog; import com.yizhuan.erban.utils.CleanLeakUtils; import com.yizhuan.erban.utils.PushMessageHandler; import com.yizhuan.xchat_android_core.Constants; @@ -127,43 +89,14 @@ import com.yizhuan.xchat_android_core.auth.event.KickOutEvent; import com.yizhuan.xchat_android_core.auth.event.LoginEvent; import com.yizhuan.xchat_android_core.auth.event.LogoutEvent; import com.yizhuan.xchat_android_core.channel_page.model.ChannelPageModel; -import com.yizhuan.xchat_android_core.community.attachment.DynamicSysAttachment; import com.yizhuan.xchat_android_core.community.event.SquareTaskEvent; import com.yizhuan.xchat_android_core.community.event.UnReadCountEvent; -import com.yizhuan.xchat_android_core.community.im.WorldDynamicAttachment; import com.yizhuan.xchat_android_core.home.bean.MainTabType; import com.yizhuan.xchat_android_core.home.event.RefreshHomeDataEvent; import com.yizhuan.xchat_android_core.home.event.VisitorUnreadCountEvent; import com.yizhuan.xchat_android_core.home.model.GameHomeModel; import com.yizhuan.xchat_android_core.home.model.HomeModel; -import com.yizhuan.xchat_android_core.im.custom.bean.AssistantAttachment; -import com.yizhuan.xchat_android_core.im.custom.bean.CarAttachment; -import com.yizhuan.xchat_android_core.im.custom.bean.CarveUpGoldThirdLevelAttachment; -import com.yizhuan.xchat_android_core.im.custom.bean.ChatHintAttachment; -import com.yizhuan.xchat_android_core.im.custom.bean.CpInviteAttachment; -import com.yizhuan.xchat_android_core.im.custom.bean.GiftAttachment; -import com.yizhuan.xchat_android_core.im.custom.bean.InAppSharingFamilyAttachment; -import com.yizhuan.xchat_android_core.im.custom.bean.InAppSharingMiniWorldAttachment; -import com.yizhuan.xchat_android_core.im.custom.bean.InAppSharingRoomAttachment; -import com.yizhuan.xchat_android_core.im.custom.bean.InAppSharingTeamAttachment; -import com.yizhuan.xchat_android_core.im.custom.bean.LevelUpAttachment; -import com.yizhuan.xchat_android_core.im.custom.bean.LotteryAttachment; -import com.yizhuan.xchat_android_core.im.custom.bean.LuckyMoneyAttachment; -import com.yizhuan.xchat_android_core.im.custom.bean.LuckyMoneyTipsAttachment; -import com.yizhuan.xchat_android_core.im.custom.bean.MatchAttachment; -import com.yizhuan.xchat_android_core.im.custom.bean.NewbieHelloAttachment; -import com.yizhuan.xchat_android_core.im.custom.bean.NobleAttachment; -import com.yizhuan.xchat_android_core.im.custom.bean.NoticeAttachment; -import com.yizhuan.xchat_android_core.im.custom.bean.OpenRoomNotiAttachment; -import com.yizhuan.xchat_android_core.im.custom.bean.OpenSignInAttachment; -import com.yizhuan.xchat_android_core.im.custom.bean.RedPackageAttachment; -import com.yizhuan.xchat_android_core.im.custom.bean.RedPacketAttachment; -import com.yizhuan.xchat_android_core.im.custom.bean.SkillMsgAttachment; -import com.yizhuan.xchat_android_core.im.custom.bean.SysMsgAttachment; -import com.yizhuan.xchat_android_core.im.custom.bean.SysMsgV2Attachment; import com.yizhuan.xchat_android_core.initial.InitialModel; -import com.yizhuan.xchat_android_core.level.event.CharmLevelUpEvent; -import com.yizhuan.xchat_android_core.level.event.LevelUpEvent; import com.yizhuan.xchat_android_core.linked.LinkedModel; import com.yizhuan.xchat_android_core.linked.bean.LinkedInfo; import com.yizhuan.xchat_android_core.manager.AudioEngineManager; @@ -171,17 +104,9 @@ import com.yizhuan.xchat_android_core.manager.AvRoomDataManager; import com.yizhuan.xchat_android_core.manager.IMBroadcastManager; import com.yizhuan.xchat_android_core.manager.IMMessageManager; import com.yizhuan.xchat_android_core.manager.RoomEvent; -import com.yizhuan.xchat_android_core.miniworld.bean.OpenAudioPartyAttachment; import com.yizhuan.xchat_android_core.patriarch.event.CloseMinRoomEvent; import com.yizhuan.xchat_android_core.patriarch.event.ImPushMsgPmLimitTimeEvent; import com.yizhuan.xchat_android_core.patriarch.event.PmDismissAllLimitDialogEvent; -import com.yizhuan.xchat_android_core.pay.bean.ShowCommonWebEvent; -import com.yizhuan.xchat_android_core.pay.event.FirstChargeEvent; -import com.yizhuan.xchat_android_core.pay.event.NewUserChargeEvent; -import com.yizhuan.xchat_android_core.public_chat_hall.attachment.AitMeAttachment; -import com.yizhuan.xchat_android_core.recall.bean.CheckLostUserInfo; -import com.yizhuan.xchat_android_core.recall.event.CheckLostUserEvent; -import com.yizhuan.xchat_android_core.room.bean.AnchorInfo; import com.yizhuan.xchat_android_core.room.bean.RoomInfo; import com.yizhuan.xchat_android_core.statistic.StatisticManager; import com.yizhuan.xchat_android_core.statistic.protocol.StatisticsProtocol; @@ -204,7 +129,6 @@ import org.greenrobot.eventbus.ThreadMode; import org.jetbrains.annotations.NotNull; import java.lang.ref.WeakReference; -import java.util.ArrayList; import java.util.List; import java.util.concurrent.TimeUnit; @@ -246,34 +170,7 @@ public class MainActivity extends BaseMvpActivity private boolean mResumed = false; @Nullable private Fragment tempFragment = null; - private ContactEventListener listener1 = new ContactEventListener() { - @Override - public void onItemClick(Context context, String account) { - NimP2PMessageActivity.start(context, account); - } - @Override - public void onItemLongClick(Context context, String account) { - - } - - @Override - public void onAvatarClick(Context context, String account) { - UserInfoActivity.Companion.start(MainActivity.this, Long.parseLong(account)); - } - }; - private SessionEventListener listener = new SessionEventListener() { - @Override - public void onAvatarClicked(Context context, IMMessage message) { - if (message == null) return; - UserInfoActivity.Companion.start(MainActivity.this, Long.parseLong(message.getFromAccount())); - } - - @Override - public void onAvatarLongClicked(Context context, IMMessage message) { - - } - }; @Nullable private Runnable touchRunnable; @@ -334,8 +231,7 @@ public class MainActivity extends BaseMvpActivity onParseIntent(); updateDatas(); updateRoomState(); - initP2PSessionCustomization(); - initTeamSessionCustomization(); + ImInitHelper.get().init(); EventBus.getDefault().register(this); otherModelInit(); @@ -396,82 +292,6 @@ public class MainActivity extends BaseMvpActivity avatarLayout.setVisibility(View.GONE); } - private void initP2PSessionCustomization() { - SessionCustomization sessionCustomization = new SessionCustomization(); - ArrayList actions = new ArrayList<>(); - actions.add(new ImageAction()); - actions.add(new GiftAction()); - sessionCustomization.actions = actions; - sessionCustomization.withSticker = true; - NimUIKit.setCommonP2PSessionCustomization(sessionCustomization); - - // 语音派对 - NimUIKit.registerMsgItemViewHolder(OpenAudioPartyAttachment.class, MsgViewHolderAudioParty.class); - - NimUIKit.registerMsgItemViewHolder(OpenRoomNotiAttachment.class, MsgViewHolderOnline.class); - NimUIKit.registerMsgItemViewHolder(GiftAttachment.class, MsgViewHolderGift.class); - NimUIKit.registerMsgItemViewHolder(NoticeAttachment.class, MsgViewHolderContent.class); - NimUIKit.registerMsgItemViewHolder(RedPacketAttachment.class, MsgViewHolderRedPacket.class); - NimUIKit.registerMsgItemViewHolder(NewbieHelloAttachment.class, MsgViewHolderHello.class); - NimUIKit.registerMsgItemViewHolder(LotteryAttachment.class, MsgViewHolderLottery.class); - NimUIKit.registerMsgItemViewHolder(NobleAttachment.class, MsgViewHolderText.class); - NimUIKit.registerMsgItemViewHolder(CarAttachment.class, MsgViewHolderText.class); - NimUIKit.registerMsgItemViewHolder(AssistantAttachment.class, MsgViewHolderText.class); - NimUIKit.registerMsgItemViewHolder(InAppSharingRoomAttachment.class, InAppSharingMsgViewHolder.class); - NimUIKit.registerMsgItemViewHolder(InAppSharingFamilyAttachment.class, InAppSharingMsgViewHolder.class); - NimUIKit.registerMsgItemViewHolder(InAppSharingMiniWorldAttachment.class, InAppSharingMsgViewHolder.class); - NimUIKit.registerMsgItemViewHolder(InAppSharingTeamAttachment.class, InAppSharingMsgViewHolder.class); - NimUIKit.registerMsgItemViewHolder(SysMsgAttachment.class, SysMsgViewHolder.class); - //V2系统消息,废弃23 V1 - NimUIKit.registerMsgItemViewHolder(SysMsgV2Attachment.class, SysMsgV2ViewHolder.class); - NimUIKit.registerMsgItemViewHolder(LevelUpAttachment.class, MsgViewHolderLevel.class); - NimUIKit.registerMsgItemViewHolder(AitMeAttachment.class, MsgViewHolderAitMe.class); - NimUIKit.registerMsgItemViewHolder(RedPackageAttachment.class, MsgViewHolderRedPackage.class); - //模厅模块 - HallDataManager.get().mainNimOnCreate(); - //签到 - NimUIKit.registerMsgItemViewHolder(OpenSignInAttachment.class, SignInNoticeMsgViewHolder.class); - //瓜分钻石 三级 - NimUIKit.registerMsgItemViewHolder(CarveUpGoldThirdLevelAttachment.class, MsgViewHolderText.class); - - // 社区动态 - NimUIKit.registerMsgItemViewHolder(DynamicSysAttachment.class, DynamicSysHolder.class); // 动态审核, 违规删除 - //世界动态分享 - NimUIKit.registerMsgItemViewHolder(WorldDynamicAttachment.class, WorldDynamicShareViewHolder.class); - - NimUIKit.registerMsgItemViewHolder(ChatHintAttachment.class, MsgViewHolderChatHint.class); - - NimUIKit.registerMsgItemViewHolder(MatchAttachment.class, MsgViewHolderMatch.class); - - //技能卡 - NimUIKit.registerMsgItemViewHolder(SkillMsgAttachment.class, MsgViewHolderSkill.class); - //CP - NimUIKit.registerMsgItemViewHolder(CpInviteAttachment.class, MsgViewHolderText.class); - NimUIKit.setSessionListener(listener); - NimUIKit.setContactEventListener(listener1); - } - - private void initTeamSessionCustomization() { - SessionCustomization sessionCustomization = new SessionCustomization(); - ArrayList actions = new ArrayList<>(); - actions.add(new ImageAction()); - sessionCustomization.actions = actions; - sessionCustomization.withSticker = true; - NimUIKit.setCommonTeamSessionCustomization(sessionCustomization); - - NimUIKit.registerMsgItemViewHolder(LuckyMoneyAttachment.class, LuckyMoneyMsgViewHolder.class); - NimUIKit.registerMsgItemViewHolder(InAppSharingRoomAttachment.class, InAppSharingMsgViewHolder.class); - NimUIKit.registerMsgItemViewHolder(InAppSharingFamilyAttachment.class, InAppSharingMsgViewHolder.class); - NimUIKit.registerMsgItemViewHolder(InAppSharingMiniWorldAttachment.class, InAppSharingMsgViewHolder.class); - NimUIKit.registerMsgItemViewHolder(InAppSharingTeamAttachment.class, InAppSharingMsgViewHolder.class); - NimUIKit.registerMsgItemViewHolder(LuckyMoneyTipsAttachment.class, LuckyMoneyTipsViewHolder.class); - //邀请 -// NimUIKit.registerMsgItemViewHolder(RoomInviteFansAttachment.class, LuckyMoneyTipsViewHolder.class); - - NimUIKit.setSessionListener(listener); - NimUIKit.setContactEventListener(listener1); - } - @Override protected void onResume() { super.onResume(); @@ -549,13 +369,11 @@ public class MainActivity extends BaseMvpActivity anchorCardView = findViewById(R.id.vs_anchor_card); } - private void updateDatas() { mMainTabLayout.setDefaultTabType(mCurrentTabType); handleNimIntent(); } - @Override protected void onNewIntent(Intent intent) { super.onNewIntent(intent); @@ -572,7 +390,6 @@ public class MainActivity extends BaseMvpActivity } } - private void onParseIntent() { Intent intent = getIntent(); if (intent.hasExtra(EXTRA_APP_QUIT)) { @@ -595,19 +412,13 @@ public class MainActivity extends BaseMvpActivity avatarImage.setOnClickListener(this); llDragInfo.setOnClickListener(this); viewClose.setOnClickListener(this); - - } @Override protected void onDestroy() { CleanLeakUtils.fixInputMethodManagerLeak(MainActivity.this); super.onDestroy(); - listener = null; - listener1 = null; - NimUIKit.setSessionListener(null); - NimUIKit.setContactEventListener(null); - + ImInitHelper.get().unInit(); EventBus.getDefault().unregister(this); stopRoomMinAnim(); if (limitEnterRoomHelper != null) { @@ -690,30 +501,12 @@ public class MainActivity extends BaseMvpActivity @Subscribe(threadMode = ThreadMode.MAIN) public void onLoadLoginUserInfoEvent(LoadLoginUserInfoEvent event) { - //签到弹窗 -// handleSign(); firstLoadedUserInfo(); } - private void handleSign() { - //检查是否需要弹 签到框 - //如果是新用户,因为有资料未完善,所以先不弹签到框 - UserInfo loginUserInfo = UserModel.get().getCacheLoginUserInfo(); - if (loginUserInfo == null) { - //弹出去绑定用户 - - return; - } - if (!TextUtils.isEmpty(loginUserInfo.getNick()) && !TextUtils.isEmpty(loginUserInfo.getAvatar())) { - //noinspection ResultOfMethodCallIgnored - SignDialogTimeManager.checkSignDialog(this, false); - } - } - public void onLogout() { Logger.e(TAG, "onLogout Success ~~~~"); getMvpPresenter().exitRoom(); -// LoginActivity.start(MainActivity.this); QuickPassLoginAct.start(MainActivity.this); PmDialogShowMrg.get().onLogout(); } @@ -760,18 +553,6 @@ public class MainActivity extends BaseMvpActivity mMainTabLayout.setMsgNum(unreadCount); } - @Subscribe(threadMode = ThreadMode.MAIN) - public void onReceiveLevelUpActivity(LevelUpEvent event) { - if (AvRoomDataManager.get().isSelfGamePlaying()) return; - LevelUpDialog.start(this, event.getLevelName(), true); - } - - @Subscribe(threadMode = ThreadMode.MAIN) - public void onReceiveCharmLevelUpActivity(CharmLevelUpEvent event) { - if (AvRoomDataManager.get().isSelfGamePlaying()) return; - LevelUpDialog.start(this, event.getLevelName(), false); - } - @SuppressLint("CheckResult") private void updateRoomState() { RoomInfo roomInfo = AvRoomDataManager.get().mCurrentRoomInfo; @@ -866,26 +647,6 @@ public class MainActivity extends BaseMvpActivity DaemonService.stop(MainActivity.this); } - - @Subscribe(threadMode = ThreadMode.MAIN) - public void onReceiveRecallStatus(CheckLostUserEvent event) { - //如果没有获取到当前登录用户的信息,不弹出提示 - if (UserModel.get().getCacheLoginUserInfo() == null) { - return; - } - - CheckLostUserInfo checkLostUserInfo = (CheckLostUserInfo) event.getData(); - - boolean goBackOnce = (boolean) SharedPreferenceUtils.get(RecallDialog.GO_BACK_ONCE, false); - - if (!goBackOnce && !event.isFailed() && checkLostUserInfo.isLostUser() && !checkLostUserInfo.isClaimedAward()) - RecallDialog.start(this); - } - - public boolean isShowMeTab() { - return mCurrentTabType == MainTabType.TAB_TYPE_ME; - } - /** * 第一次加载到用户信息 */ @@ -1106,11 +867,6 @@ public class MainActivity extends BaseMvpActivity } } - @Subscribe(threadMode = ThreadMode.MAIN) - public void onNewUserChargeEvent(NewUserChargeEvent event) { - new NewUserChargePrizeDialog(this, event.getChargeProdTitle(), event.getFirstChargeRewardList()).openDialog(); - } - /** * 处理开房限制时长 */ @@ -1168,11 +924,6 @@ public class MainActivity extends BaseMvpActivity checkBindPhone(); } - @Subscribe(threadMode = ThreadMode.MAIN) - public void onShowCommonWebEvent(ShowCommonWebEvent event) { - CommonWebViewActivity.start(event.getContext(), event.getUrl()); - } - @Subscribe(threadMode = ThreadMode.MAIN, sticky = true) public void onVisitorUnreadCountEvent(VisitorUnreadCountEvent event) { if (mMainTabLayout != null) { diff --git a/app/src/main/java/com/yizhuan/erban/application/GlobalHandleManager.java b/app/src/main/java/com/yizhuan/erban/application/GlobalHandleManager.java index f4d83917e..0891c0595 100644 --- a/app/src/main/java/com/yizhuan/erban/application/GlobalHandleManager.java +++ b/app/src/main/java/com/yizhuan/erban/application/GlobalHandleManager.java @@ -4,14 +4,26 @@ import android.app.Activity; import com.tencent.bugly.beta.Beta; import com.trello.rxlifecycle3.components.support.RxAppCompatActivity; +import com.yizhuan.erban.avroom.newuserchargegift.NewUserChargePrizeDialog; import com.yizhuan.erban.relation.cp.dialog.CpGlobalDialog; +import com.yizhuan.erban.ui.webview.CommonWebViewActivity; +import com.yizhuan.erban.ui.widget.LevelUpDialog; +import com.yizhuan.erban.ui.widget.RecallDialog; import com.yizhuan.erban.ui.widget.lottery_dialog.LotteryDialogManager; import com.yizhuan.erban.vip.VipUpgradeDialog; import com.yizhuan.xchat_android_core.activity.bean.LotteryInfo; +import com.yizhuan.xchat_android_core.level.event.CharmLevelUpEvent; +import com.yizhuan.xchat_android_core.level.event.LevelUpEvent; +import com.yizhuan.xchat_android_core.manager.AvRoomDataManager; +import com.yizhuan.xchat_android_core.pay.bean.ShowCommonWebEvent; +import com.yizhuan.xchat_android_core.pay.event.NewUserChargeEvent; +import com.yizhuan.xchat_android_core.recall.bean.CheckLostUserInfo; +import com.yizhuan.xchat_android_core.recall.event.CheckLostUserEvent; import com.yizhuan.xchat_android_core.relation.cp.CpInviteInfo; import com.yizhuan.xchat_android_core.upgrade.event.ImPushUpdateAppEvent; import com.yizhuan.xchat_android_core.user.UserModel; import com.yizhuan.xchat_android_core.utils.ActivityUtil; +import com.yizhuan.xchat_android_core.utils.SharedPreferenceUtils; import com.yizhuan.xchat_android_core.vip.VipUpgradeEvent; import org.greenrobot.eventbus.EventBus; @@ -82,6 +94,51 @@ public class GlobalHandleManager { CpGlobalDialog.newInstance(entity, activity).openDialog(); } + @Subscribe(threadMode = ThreadMode.MAIN) + public void onNewUserChargeEvent(NewUserChargeEvent event) { + Activity activity = getActivity(); + if (activity == null) return; + new NewUserChargePrizeDialog(activity, event.getChargeProdTitle(), event.getFirstChargeRewardList()).openDialog(); + } + + @Subscribe(threadMode = ThreadMode.MAIN) + public void onShowCommonWebEvent(ShowCommonWebEvent event) { + CommonWebViewActivity.start(event.getContext(), event.getUrl()); + } + + @Subscribe(threadMode = ThreadMode.MAIN) + public void onReceiveRecallStatus(CheckLostUserEvent event) { + Activity activity = getActivity(); + if (activity == null) return; + //如果没有获取到当前登录用户的信息,不弹出提示 + if (UserModel.get().getCacheLoginUserInfo() == null) { + return; + } + + CheckLostUserInfo checkLostUserInfo = (CheckLostUserInfo) event.getData(); + + boolean goBackOnce = (boolean) SharedPreferenceUtils.get(RecallDialog.GO_BACK_ONCE, false); + + if (!goBackOnce && !event.isFailed() && checkLostUserInfo.isLostUser() && !checkLostUserInfo.isClaimedAward()) + RecallDialog.start(activity); + } + + @Subscribe(threadMode = ThreadMode.MAIN) + public void onReceiveLevelUpActivity(LevelUpEvent event) { + Activity activity = getActivity(); + if (activity == null) return; + if (AvRoomDataManager.get().isSelfGamePlaying()) return; + LevelUpDialog.start(activity, event.getLevelName(), true); + } + + @Subscribe(threadMode = ThreadMode.MAIN) + public void onReceiveCharmLevelUpActivity(CharmLevelUpEvent event) { + Activity activity = getActivity(); + if (activity == null) return; + if (AvRoomDataManager.get().isSelfGamePlaying()) return; + LevelUpDialog.start(activity, event.getLevelName(), false); + } + private static final class Helper { private static final GlobalHandleManager INSTANCE = new GlobalHandleManager(); } diff --git a/app/src/main/java/com/yizhuan/erban/ui/im/ImInitHelper.java b/app/src/main/java/com/yizhuan/erban/ui/im/ImInitHelper.java new file mode 100644 index 000000000..280f0bb82 --- /dev/null +++ b/app/src/main/java/com/yizhuan/erban/ui/im/ImInitHelper.java @@ -0,0 +1,195 @@ +package com.yizhuan.erban.ui.im; + +import android.content.Context; + +import com.netease.nim.uikit.api.NimUIKit; +import com.netease.nim.uikit.api.model.contact.ContactEventListener; +import com.netease.nim.uikit.api.model.session.SessionCustomization; +import com.netease.nim.uikit.api.model.session.SessionEventListener; +import com.netease.nim.uikit.business.session.actions.BaseAction; +import com.netease.nim.uikit.business.session.actions.ImageAction; +import com.netease.nimlib.sdk.msg.model.IMMessage; +import com.yizhuan.erban.community.holder.DynamicSysHolder; +import com.yizhuan.erban.community.im.WorldDynamicShareViewHolder; +import com.yizhuan.erban.luckymoney.viewholder.LuckyMoneyMsgViewHolder; +import com.yizhuan.erban.luckymoney.viewholder.LuckyMoneyTipsViewHolder; +import com.yizhuan.erban.module_hall.HallDataManager; +import com.yizhuan.erban.public_chat_hall.msg.viewholder.MsgViewHolderAitMe; +import com.yizhuan.erban.share.viewholder.InAppSharingMsgViewHolder; +import com.yizhuan.erban.ui.im.actions.GiftAction; +import com.yizhuan.erban.ui.im.avtivity.NimP2PMessageActivity; +import com.yizhuan.erban.ui.im.chat.MsgViewHolderAudioParty; +import com.yizhuan.erban.ui.im.chat.MsgViewHolderChatHint; +import com.yizhuan.erban.ui.im.chat.MsgViewHolderContent; +import com.yizhuan.erban.ui.im.chat.MsgViewHolderGift; +import com.yizhuan.erban.ui.im.chat.MsgViewHolderHello; +import com.yizhuan.erban.ui.im.chat.MsgViewHolderLevel; +import com.yizhuan.erban.ui.im.chat.MsgViewHolderLottery; +import com.yizhuan.erban.ui.im.chat.MsgViewHolderMatch; +import com.yizhuan.erban.ui.im.chat.MsgViewHolderOnline; +import com.yizhuan.erban.ui.im.chat.MsgViewHolderRedPackage; +import com.yizhuan.erban.ui.im.chat.MsgViewHolderRedPacket; +import com.yizhuan.erban.ui.im.chat.MsgViewHolderSkill; +import com.yizhuan.erban.ui.im.chat.MsgViewHolderText; +import com.yizhuan.erban.ui.im.chat.SignInNoticeMsgViewHolder; +import com.yizhuan.erban.ui.im.chat.SysMsgV2ViewHolder; +import com.yizhuan.erban.ui.im.chat.SysMsgViewHolder; +import com.yizhuan.erban.ui.user.UserInfoActivity; +import com.yizhuan.xchat_android_core.community.attachment.DynamicSysAttachment; +import com.yizhuan.xchat_android_core.community.im.WorldDynamicAttachment; +import com.yizhuan.xchat_android_core.im.custom.bean.AssistantAttachment; +import com.yizhuan.xchat_android_core.im.custom.bean.CarAttachment; +import com.yizhuan.xchat_android_core.im.custom.bean.CarveUpGoldThirdLevelAttachment; +import com.yizhuan.xchat_android_core.im.custom.bean.ChatHintAttachment; +import com.yizhuan.xchat_android_core.im.custom.bean.CpInviteAttachment; +import com.yizhuan.xchat_android_core.im.custom.bean.GiftAttachment; +import com.yizhuan.xchat_android_core.im.custom.bean.InAppSharingFamilyAttachment; +import com.yizhuan.xchat_android_core.im.custom.bean.InAppSharingMiniWorldAttachment; +import com.yizhuan.xchat_android_core.im.custom.bean.InAppSharingRoomAttachment; +import com.yizhuan.xchat_android_core.im.custom.bean.InAppSharingTeamAttachment; +import com.yizhuan.xchat_android_core.im.custom.bean.LevelUpAttachment; +import com.yizhuan.xchat_android_core.im.custom.bean.LotteryAttachment; +import com.yizhuan.xchat_android_core.im.custom.bean.LuckyMoneyAttachment; +import com.yizhuan.xchat_android_core.im.custom.bean.LuckyMoneyTipsAttachment; +import com.yizhuan.xchat_android_core.im.custom.bean.MatchAttachment; +import com.yizhuan.xchat_android_core.im.custom.bean.NewbieHelloAttachment; +import com.yizhuan.xchat_android_core.im.custom.bean.NobleAttachment; +import com.yizhuan.xchat_android_core.im.custom.bean.NoticeAttachment; +import com.yizhuan.xchat_android_core.im.custom.bean.OpenRoomNotiAttachment; +import com.yizhuan.xchat_android_core.im.custom.bean.OpenSignInAttachment; +import com.yizhuan.xchat_android_core.im.custom.bean.RedPackageAttachment; +import com.yizhuan.xchat_android_core.im.custom.bean.RedPacketAttachment; +import com.yizhuan.xchat_android_core.im.custom.bean.SkillMsgAttachment; +import com.yizhuan.xchat_android_core.im.custom.bean.SysMsgAttachment; +import com.yizhuan.xchat_android_core.im.custom.bean.SysMsgV2Attachment; +import com.yizhuan.xchat_android_core.miniworld.bean.OpenAudioPartyAttachment; +import com.yizhuan.xchat_android_core.public_chat_hall.attachment.AitMeAttachment; + +import java.util.ArrayList; + +public class ImInitHelper { + private final ContactEventListener listener1 = new ContactEventListener() { + @Override + public void onItemClick(Context context, String account) { + NimP2PMessageActivity.start(context, account); + } + + @Override + public void onItemLongClick(Context context, String account) { + + } + + @Override + public void onAvatarClick(Context context, String account) { + UserInfoActivity.Companion.start(context, Long.parseLong(account)); + } + }; + private final SessionEventListener listener = new SessionEventListener() { + @Override + public void onAvatarClicked(Context context, IMMessage message) { + if (message == null) return; + UserInfoActivity.Companion.start(context, Long.parseLong(message.getFromAccount())); + } + + @Override + public void onAvatarLongClicked(Context context, IMMessage message) { + + } + }; + + private ImInitHelper() { + + } + + public static ImInitHelper get() { + return Helper.INSTANCE; + } + + public void init() { + initP2PSessionCustomization(); + initTeamSessionCustomization(); + } + + public void unInit(){ + NimUIKit.setSessionListener(null); + NimUIKit.setContactEventListener(null); + } + + private void initP2PSessionCustomization() { + SessionCustomization sessionCustomization = new SessionCustomization(); + ArrayList actions = new ArrayList<>(); + actions.add(new ImageAction()); + actions.add(new GiftAction()); + sessionCustomization.actions = actions; + sessionCustomization.withSticker = true; + NimUIKit.setCommonP2PSessionCustomization(sessionCustomization); + + // 语音派对 + NimUIKit.registerMsgItemViewHolder(OpenAudioPartyAttachment.class, MsgViewHolderAudioParty.class); + + NimUIKit.registerMsgItemViewHolder(OpenRoomNotiAttachment.class, MsgViewHolderOnline.class); + NimUIKit.registerMsgItemViewHolder(GiftAttachment.class, MsgViewHolderGift.class); + NimUIKit.registerMsgItemViewHolder(NoticeAttachment.class, MsgViewHolderContent.class); + NimUIKit.registerMsgItemViewHolder(RedPacketAttachment.class, MsgViewHolderRedPacket.class); + NimUIKit.registerMsgItemViewHolder(NewbieHelloAttachment.class, MsgViewHolderHello.class); + NimUIKit.registerMsgItemViewHolder(LotteryAttachment.class, MsgViewHolderLottery.class); + NimUIKit.registerMsgItemViewHolder(NobleAttachment.class, MsgViewHolderText.class); + NimUIKit.registerMsgItemViewHolder(CarAttachment.class, MsgViewHolderText.class); + NimUIKit.registerMsgItemViewHolder(AssistantAttachment.class, MsgViewHolderText.class); + NimUIKit.registerMsgItemViewHolder(InAppSharingRoomAttachment.class, InAppSharingMsgViewHolder.class); + NimUIKit.registerMsgItemViewHolder(InAppSharingFamilyAttachment.class, InAppSharingMsgViewHolder.class); + NimUIKit.registerMsgItemViewHolder(InAppSharingMiniWorldAttachment.class, InAppSharingMsgViewHolder.class); + NimUIKit.registerMsgItemViewHolder(InAppSharingTeamAttachment.class, InAppSharingMsgViewHolder.class); + NimUIKit.registerMsgItemViewHolder(SysMsgAttachment.class, SysMsgViewHolder.class); + //V2系统消息,废弃23 V1 + NimUIKit.registerMsgItemViewHolder(SysMsgV2Attachment.class, SysMsgV2ViewHolder.class); + NimUIKit.registerMsgItemViewHolder(LevelUpAttachment.class, MsgViewHolderLevel.class); + NimUIKit.registerMsgItemViewHolder(AitMeAttachment.class, MsgViewHolderAitMe.class); + NimUIKit.registerMsgItemViewHolder(RedPackageAttachment.class, MsgViewHolderRedPackage.class); + //模厅模块 + HallDataManager.get().mainNimOnCreate(); + //签到 + NimUIKit.registerMsgItemViewHolder(OpenSignInAttachment.class, SignInNoticeMsgViewHolder.class); + //瓜分钻石 三级 + NimUIKit.registerMsgItemViewHolder(CarveUpGoldThirdLevelAttachment.class, MsgViewHolderText.class); + + // 社区动态 + NimUIKit.registerMsgItemViewHolder(DynamicSysAttachment.class, DynamicSysHolder.class); // 动态审核, 违规删除 + //世界动态分享 + NimUIKit.registerMsgItemViewHolder(WorldDynamicAttachment.class, WorldDynamicShareViewHolder.class); + + NimUIKit.registerMsgItemViewHolder(ChatHintAttachment.class, MsgViewHolderChatHint.class); + + NimUIKit.registerMsgItemViewHolder(MatchAttachment.class, MsgViewHolderMatch.class); + + //技能卡 + NimUIKit.registerMsgItemViewHolder(SkillMsgAttachment.class, MsgViewHolderSkill.class); + //CP + NimUIKit.registerMsgItemViewHolder(CpInviteAttachment.class, MsgViewHolderText.class); + NimUIKit.setSessionListener(listener); + NimUIKit.setContactEventListener(listener1); + } + + private void initTeamSessionCustomization() { + SessionCustomization sessionCustomization = new SessionCustomization(); + ArrayList actions = new ArrayList<>(); + actions.add(new ImageAction()); + sessionCustomization.actions = actions; + sessionCustomization.withSticker = true; + NimUIKit.setCommonTeamSessionCustomization(sessionCustomization); + + NimUIKit.registerMsgItemViewHolder(LuckyMoneyAttachment.class, LuckyMoneyMsgViewHolder.class); + NimUIKit.registerMsgItemViewHolder(InAppSharingRoomAttachment.class, InAppSharingMsgViewHolder.class); + NimUIKit.registerMsgItemViewHolder(InAppSharingFamilyAttachment.class, InAppSharingMsgViewHolder.class); + NimUIKit.registerMsgItemViewHolder(InAppSharingMiniWorldAttachment.class, InAppSharingMsgViewHolder.class); + NimUIKit.registerMsgItemViewHolder(InAppSharingTeamAttachment.class, InAppSharingMsgViewHolder.class); + NimUIKit.registerMsgItemViewHolder(LuckyMoneyTipsAttachment.class, LuckyMoneyTipsViewHolder.class); + + NimUIKit.setSessionListener(listener); + NimUIKit.setContactEventListener(listener1); + } + + private static final class Helper { + private static final ImInitHelper INSTANCE = new ImInitHelper(); + } +}