package cn.rongcloud.im.message.module; import java.lang.reflect.Constructor; import java.util.ArrayList; import java.util.List; import io.rong.imkit.DefaultExtensionModule; import io.rong.imkit.RongExtension; import io.rong.imkit.emoticon.IEmoticonTab; import io.rong.imkit.plugin.DefaultLocationPlugin; import io.rong.imkit.plugin.IPluginModule; import io.rong.imkit.plugin.ImagePlugin; import io.rong.imkit.widget.provider.FilePlugin; import io.rong.imlib.model.Conversation; import io.rong.imlib.model.Message; public class SealExtensionModule extends DefaultExtensionModule { @Override public void onInit(String appKey) { super.onInit(appKey); } @Override public void onDisconnect() { super.onDisconnect(); } @Override public void onConnect(String token) { super.onConnect(token); } @Override public void onAttachedToExtension(RongExtension extension) { super.onAttachedToExtension(extension); } @Override public void onDetachedFromExtension() { super.onDetachedFromExtension(); } @Override public void onReceivedMessage(Message message) { super.onReceivedMessage(message); } @Override public List<IPluginModule> getPluginModules(Conversation.ConversationType conversationType) { if (conversationType.equals(Conversation.ConversationType.PUBLIC_SERVICE)) { List<IPluginModule> pluginModuleList = new ArrayList<>(); IPluginModule image = new ImagePlugin(); IPluginModule locationPlugin = new DefaultLocationPlugin(); pluginModuleList.add(image); pluginModuleList.add(locationPlugin); try { String clsName = "com.iflytek.cloud.SpeechUtility"; Class<?> cls = Class.forName(clsName); if (cls != null) { cls = Class.forName("io.rong.recognizer.RecognizePlugin"); Constructor<?> constructor = cls.getConstructor(); IPluginModule recognizer = (IPluginModule) constructor.newInstance(); pluginModuleList.add(recognizer); } } catch (Exception e) { e.printStackTrace(); } return pluginModuleList; } else if (conversationType == Conversation.ConversationType.CUSTOMER_SERVICE) { List<IPluginModule> pluginModules = super.getPluginModules(conversationType); if (conversationType == Conversation.ConversationType.CUSTOMER_SERVICE) { if (pluginModules != null) { for (IPluginModule module : pluginModules) { if (module instanceof FilePlugin) { pluginModules.remove(module); break; } } } } return pluginModules; } else { return super.getPluginModules(conversationType); } } @Override public List<IEmoticonTab> getEmoticonTabs() { return super.getEmoticonTabs(); } }