2.3 KiB
2.3 KiB
临时呼叫界面优化与 pocGid 逻辑对接设计规约 (Design Spec)
1. 需求概述
为 StandAPP 临时呼叫功能做进一步改进与视觉优化:
- pocGid 解析与覆盖:异步查询接口
/api/vid-pull-record/my-list后,若返回数据包含pocGid字段且有效,需要用其覆盖当前的currentTempGroupId缓存,并通知前端接口startPullGroupLock(pocGid)。 - 第一排“临时群组”显示为 null 的修复:防范传递的 Intent Extra
"group_name"出现为空、null或"null"字符串的情形,确保兜底展示为"临时会话"。 - 界面字体、颜色与确认按钮样式优化:美化拉动记录卡片排版,包括增大标题字号、加粗、改变按钮背景与宽度、调整配色提升对比度等。
2. 方案设计
2.1 pocGid 覆盖机制
在 TempCallActivity.kt 的 fetchPullRecord() 成功响应体处理中:
val pocGid = record.optString("pocGid", "")
if (pocGid.isNotEmpty()) {
currentTempGroupId = pocGid
MainActivity.executeJs("if(window.startPullGroupLock){ window.startPullGroupLock('$currentTempGroupId'); }")
}
2.2 null 值防御
在 onCreate() 中,对 intent 传入的群组名称进行过滤判断:
val rawGroupName = intent.getStringExtra("group_name")
val groupName = if (rawGroupName.isNullOrEmpty() || rawGroupName == "null") "临时会话" else rawGroupName
currentGroupName = groupName
2.3 UI 优化
- 布局文件:
app/src/main/res/layout/activity_temp_call.xml - 拉动记录区域样式优化:
tv_pull_title(标题):字体设为#FFFFFF,textSize="18sp",加粗,layout_marginTop="12dp"。tv_pull_source_unit(发送单位):字体设为#CCFFFFFF,textSize="13sp",layout_marginTop="6dp"。tv_pull_time(拉动时间):字体设为#99FFFFFF,textSize="12sp",layout_marginTop="2dp"。tv_pull_content(拉动内容):字体设为警示的红色#EF4444或黄色#FBBF24,textSize="14sp",加粗,layout_marginTop="10dp"。
- 确认按钮样式优化:
- 修改为固定宽度
layout_width="160dp"(居中显示),高为40dp。 - 背景使用带有圆角的深蓝或半透明按钮背景,字体颜色为纯白,字号为
14sp。
- 修改为固定宽度