NimUIKitImpl.java 2.68 KB
Newer Older
konghaorui committed
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61
package com.yidianling.uikit.api;

import android.content.Context;

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.netease.nimlib.sdk.team.constant.TeamTypeEnum;
import com.netease.nimlib.sdk.team.model.Team;
import com.yidianling.nimbase.api.BaseNimUIKitImpl;
import com.yidianling.nimbase.api.model.session.SessionCustomization;
import com.yidianling.uikit.business.contact.selector.activity.ContactSelectActivity;
import com.yidianling.uikit.business.session.activity.YDLP2PMessageActivity;
import com.yidianling.uikit.business.session.activity.YDLTeamMessageActivity;
import com.yidianling.uikit.business.session.viewholder.MsgViewHolderBase;
import com.yidianling.uikit.business.session.viewholder.MsgViewHolderFactory;
import com.yidianling.uikit.business.team.activity.AdvancedTeamInfoActivity;
import com.yidianling.uikit.business.team.activity.NormalTeamInfoActivity;
import com.yidianling.uikit.custom.bridge.IP2PCustomActionHandler;

/**
 * UIKit能力实现类。
 */
public final class NimUIKitImpl extends BaseNimUIKitImpl {


    public static void registerMsgItemViewHolder(Class<? extends MsgAttachment> attach, Class<? extends MsgViewHolderBase> viewHolder) {
        MsgViewHolderFactory.register(attach, viewHolder);
    }

    public static void registerTipMsgViewHolder(Class<? extends MsgViewHolderBase> viewHolder) {
        MsgViewHolderFactory.registerTipMsgViewHolder(viewHolder);
    }

    public static void startChatting(Context context, String id, SessionTypeEnum sessionType, SessionCustomization
            customization, IMMessage anchor,IP2PCustomActionHandler l) {
        if (sessionType == SessionTypeEnum.P2P) {
            YDLP2PMessageActivity.start(context, id, customization, anchor,l);
        } else if (sessionType == SessionTypeEnum.Team) {
            YDLTeamMessageActivity.start(context, id, customization, null, anchor,l);
        }
    }

    public static void startContactSelector(Context context, ContactSelectActivity.Option option, int requestCode) {
        ContactSelectActivity.startActivityForResult(context, option, requestCode);
    }

    public static void startTeamInfo(Context context, String teamId) {
        Team team = NimUIKit.getTeamProvider().getTeamById(teamId);
        if (team == null) {
            return;
        }
        if (team.getType() == TeamTypeEnum.Advanced) {
            AdvancedTeamInfoActivity.start(context, teamId); // 启动固定群资料页
        } else if (team.getType() == TeamTypeEnum.Normal) {
            NormalTeamInfoActivity.start(context, teamId); // 启动讨论组资料页
        }
    }


}