MainActivity整理

This commit is contained in:
huangjian
2022-08-25 15:42:36 +08:00
parent ed0a5b018f
commit 352ad516bf
3 changed files with 255 additions and 252 deletions

View File

@@ -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<IMainView, MainPresenter>
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<IMainView, MainPresenter>
onParseIntent();
updateDatas();
updateRoomState();
initP2PSessionCustomization();
initTeamSessionCustomization();
ImInitHelper.get().init();
EventBus.getDefault().register(this);
otherModelInit();
@@ -396,82 +292,6 @@ public class MainActivity extends BaseMvpActivity<IMainView, MainPresenter>
avatarLayout.setVisibility(View.GONE);
}
private void initP2PSessionCustomization() {
SessionCustomization sessionCustomization = new SessionCustomization();
ArrayList<BaseAction> 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<BaseAction> 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<IMainView, MainPresenter>
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<IMainView, MainPresenter>
}
}
private void onParseIntent() {
Intent intent = getIntent();
if (intent.hasExtra(EXTRA_APP_QUIT)) {
@@ -595,19 +412,13 @@ public class MainActivity extends BaseMvpActivity<IMainView, MainPresenter>
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<IMainView, MainPresenter>
@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<IMainView, MainPresenter>
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<IMainView, MainPresenter>
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<IMainView, MainPresenter>
}
}
@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<IMainView, MainPresenter>
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) {

View File

@@ -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();
}

View File

@@ -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<BaseAction> 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<BaseAction> 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();
}
}