package com.netease.nim.uikit.session; import android.app.Activity; import android.content.Context; import android.content.Intent; import android.view.View; import com.netease.nim.uikit.session.actions.BaseAction; import com.netease.nimlib.sdk.msg.attachment.MsgAttachment; import java.io.Serializable; import java.util.ArrayList; /** * 聊天界面定制化参数。 可定制:<br> * 1. 聊天背景 <br> * 2. 加号展开后的按钮和动作 <br> * 3. ActionBar右侧按钮。 */ public class SessionCustomization implements Serializable { /** * 聊天背景。优先使用uri,如果没有提供uri,使用color。如果没有color,使用默认。uri暂时支持以下格式:<br> * drawable: android.resource://包名/drawable/资源名 * assets: file:///android_asset/{asset文件路径} * file: file:///文件绝对路径 */ public String backgroundUri; public int backgroundColor; // UIKit public boolean withSticker; /** * 加号展开后的action list。 * 默认已包含图片,视频和地理位置 */ public ArrayList<BaseAction> actions; /** * ActionBar右侧可定制按钮。默认为空。 */ public ArrayList<OptionsButton> buttons; /** * 如果OptionsButton的点击响应中需要startActivityForResult,可在此函数中处理结果。 * 需要注意的是,由于加号中的Action的限制,RequestCode只能使用int的最低8位。 * * @param activity 当前的聊天Activity * @param requestCode 请求码 * @param resultCode 结果码 * @param data 返回的结果数据 */ public void onActivityResult(Activity activity, int requestCode, int resultCode, Intent data) {} // uikit内建了对贴图消息的输入和管理展示,并和emoji表情整合在了一起,但贴图消息的附件定义开发者需要根据自己的扩展 public MsgAttachment createStickerAttachment(String category, String item) { return null; } /** * ActionBar 右侧按钮,可定制icon和点击事件 */ public static abstract class OptionsButton implements Serializable { // 图标drawable id public int iconId; // 响应事件 public abstract void onClick(Context context, View view, String sessionId); } }