fix(emergency): 完善应急就医群聊功能—急救员邀请+图标显示+头像兜底

- TUICallingViewManager 启用 initInviteUserFunction,急救员通话中显示右上角 + 号邀请按钮
- InputActionSetting 新增 firstAid 字段,setter 同步写入 SP 供跨模块读取
- createEmergencySetting 支持 firstAid 参数,急救员进入群聊时传入 true
- TUIGroupChatFragment 右侧抽屉图标仅在 firstAid 为 true 时显示
- GlideEngine 新增 loadImageByDefault 兜底加载方法
- GroupMemberAdapter 头像加载使用兜底图标,修复空 URL 显示异常
- GroupMemberAdapter 修复 administrator 群组的成员过滤逻辑

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
zhanglei
2026-08-04 19:58:25 +08:00
co-authored by Claude Opus 4.7
parent f61d8c90c9
commit adfa40313a
8 changed files with 101 additions and 60 deletions
@@ -159,14 +159,16 @@ public class TUIGroupChatFragment extends TUIBaseChatFragment {
}
});
titleBar.getRightGroup().setVisibility(View.VISIBLE);
titleBar.getRightTitle().setVisibility(View.GONE);
titleBar.getRightIcon().setVisibility(View.VISIBLE);
titleBar.getRightIcon().setImageResource(R.drawable.chat_title_bar_more_menu_lively);
if (inputActionSetting.isFirstAid()) {
titleBar.getRightGroup().setVisibility(View.VISIBLE);
titleBar.getRightTitle().setVisibility(View.GONE);
titleBar.getRightIcon().setVisibility(View.VISIBLE);
titleBar.getRightIcon().setImageResource(R.drawable.chat_title_bar_more_menu_lively);
// 应用缓存的 OnGroupTipsListener,解决 Activity 中提前设置 listener 的时序问题
if (cachedGroupTipsListener != null && chatView != null) {
chatView.setOnGroupTipsListener(cachedGroupTipsListener);
// 应用缓存的 OnGroupTipsListener,解决 Activity 中提前设置 listener 的时序问题
if (cachedGroupTipsListener != null && chatView != null) {
chatView.setOnGroupTipsListener(cachedGroupTipsListener);
}
}
}
@@ -2,6 +2,8 @@ package com.tencent.qcloud.tuikit.tuichat.classicui.setting;
import java.io.Serializable;
import com.tencent.qcloud.tuicore.util.SPUtils;
public class InputActionSetting implements Serializable {
private static InputActionSetting sInstance;
@@ -31,6 +33,7 @@ public class InputActionSetting implements Serializable {
public String packageName="";
public String CurrentResourceHost="";
public boolean disableEvaluate = false;
public boolean firstAid = false;
public String getCurrentResourceHost() {
return CurrentResourceHost == null ? "" : CurrentResourceHost;
@@ -128,6 +131,16 @@ public class InputActionSetting implements Serializable {
this.disableFinishName = disableFinishName;
}
public boolean isFirstAid() {
return firstAid;
}
public void setFirstAid(boolean firstAid) {
this.firstAid = firstAid;
// 同步写入 SP,供 tuicallkit 跨模块读取(控制右上角 + 号是否显示)
SPUtils.getInstance().put("key_first_aid", firstAid);
}
public InputActionSetting copy(){
InputActionSetting inputActionSetting = new InputActionSetting();
inputActionSetting.setDisableArchives(disableArchives);
@@ -138,6 +151,7 @@ public class InputActionSetting implements Serializable {
inputActionSetting.setDisableMedicalExaminationReport(disableMedicalExaminationReport);
inputActionSetting.setDisableFinishSession(disableFinishSession);
inputActionSetting.setDisableFinishName(disableFinishName);
inputActionSetting.setFirstAid(firstAid);
return inputActionSetting;
}
}