15 Commits
Author SHA1 Message Date
编码工程师andmultica-agent a007e8f694 chore(mobile): 支持 --dart-define=AUTH_HOST 本地联调覆盖登录地址(默认不变)
Co-authored-by: multica-agent <github@multica.ai>
2026-08-16 16:54:38 +08:00
编码工程师andmultica-agent 7eab7d5e23 chore: bump mobile 1.0.6 / PC 1.0.2 for B-52 fix packages
Co-authored-by: multica-agent <github@multica.ai>
2026-08-16 16:43:33 +08:00
编码工程师andmultica-agent c73e19c792 style(mobile): new_friends_screen 去掉无效空合并(dart analyze 清洁)
Co-authored-by: multica-agent <github@multica.ai>
2026-08-16 03:06:19 +08:00
编码工程师andmultica-agent b50ee2464c fix(mobile): 新的同事页合并发出/收到申请并按方向渲染(视觉审查 🔴1/🔴2)
- 合并 getFriendApplicationListAsApplicant(我发出的)+ AsRecipient(我收到的),
  按 fromUserID 是否等于自己判断方向
- 我发出的待处理 → 灰字「等待对方通过」且无操作按钮;我收到的待处理才渲染
  「接受/拒绝」;已同意→已添加、已拒绝→已拒绝(视觉规范 5.1)
- 接受/拒绝按钮 shape 复用 theme.dart 新增的统一 8px Token(AppRadius.button),
  不再用 Material3 默认胶囊圆角,页面内零魔法数值
- 窄屏(<360)按钮组/状态字换第二行右对齐不挤压姓名;非窄屏状态区固定 132px

双机实测:A(t2001)发→A 侧 AsApplicant 显示 handleResult=0(等待对方通过、无按钮);
B(t2002)收→AsRecipient 显示接受/拒绝按钮,点接受后双方 handleResult=1(已添加)

Co-authored-by: multica-agent <github@multica.ai>
2026-08-16 03:03:11 +08:00
编码工程师andmultica-agent c5516b8eb8 fix(mobile): 登录后等待会话同步完成再刷新(补 B-52 根因修复)
refreshConversations 在登录态守卫与 SDK 10009(登录未完成)间竞争:
- login 后立即刷新会拿到 10009;改为等待 onSyncServerFinish
  (conversationsLoaded)后再拉取,最多 10s 超时兜底
- refreshConversations 内部对 10009 做 5 次短重试

验证:干净登录后 onSyncServerFinish -> getAllConversationList
返回 si_t1001_t1002(Test Two),会话列表不再停空态

Co-authored-by: multica-agent <github@multica.ai>
2026-08-16 02:37:10 +08:00
编码工程师andmultica-agent 12b0a1c943 feat(mobile,account-service): 统一发送服务 + 员工目录接口 + 好友申请五态/验证消息(B-52 施工 2/3)
- message_send_service:所有消息走统一门禁(登录/连接/空接收方/好友校验),
  失败打印 SDK 原始 code 并映射中文提示,不再只吞异常
- chat_screen 接入统一发送服务,失败提示真实原因
- account-service 新增 GET /api/directory(登录用户可读启用员工,用于添加同事)
- add_friend_screen 增加可编辑验证消息(视觉规范 4.2)
- new_friends_screen 五态 + 窄屏(<360)按钮组换行不挤压姓名(视觉规范 5.3)

Co-authored-by: multica-agent <github@multica.ai>
2026-08-16 02:16:00 +08:00
编码工程师andmultica-agent d6ef6eb9a4 fix(mobile): 通讯录进会话空对方 + 登录后会话列表空态(B-52 无法发送消息根因)
- contacts_screen 用 f.friendUserID(SDK 恒为空)打开会话,导致建出
  si__<空对方> 会话,所有消息发给空 userID 全部失败;改用 f.userID
- login 后补一次 refreshConversations:SDK 登录期间同步回调先于
  loggedIn=true 触发,refreshConversations 因登录态守卫提前返回,
  会话列表永久停在空态

双机实测:修复前 sendMessage userID='' 失败;修复后 A→B 消息
正常送达(B 端 onRecvNewMessage 收到 fixverify999)

Co-authored-by: multica-agent <github@multica.ai>
2026-08-16 02:14:13 +08:00
KIMI 9074b5d1d7 fix: 修复 release 包消息组件永久无响应(B-58 用户手机登录卡死的根因)
根因两条,叠加导致 release 包 initSDK 永不返回:
1. AGP 9 默认开启 R8 混淆,OpenIM 插件用反射按字段名分发方法
   (getDeclaredField("imManager")),混淆后抛 NoSuchFieldException 被静默吞掉,
   Dart 侧 Future 永远 pending —— 表现为「消息组件初始化超时」
2. 插件 manifest 漏声明 ACCESS_NETWORK_STATE,onAttachedToEngine 里
   registerDefaultNetworkCallback 抛 SecurityException,注册中断

修复:
- release 关闭 isMinifyEnabled / isShrinkResources(与官方样板工程配置一致)
- App manifest 补 ACCESS_NETWORK_STATE

已在模拟器上用同版本 SDK 最小复现 App 验证:修复前 release 必现卡死,
修复后 initSDK 返回 true、connect SUCCESS、login 成功。debug 包之前正常
(debug 不混淆),与此结论一致。版本号 1.0.5+6
2026-08-15 16:38:33 +08:00
KIMI 107325f6d1 mobile v1.0.4:初始化步骤打点,超时可区分卡在 存储目录/建目录/SDK内核;初始化超时放宽到 30s(B-58) 2026-08-15 16:07:03 +08:00
KIMI a5b3a0e35f mobile v1.0.3:登录卡死定位增强(B-58)
- SDK 初始化与登录拆成两步分别超时,提示语区分卡在哪一步
- 登录失败时读取并展示 OpenIM SDK 日志文件结尾(去 ANSI 颜色码),用户拍照即可回传诊断信息
- 模拟器实测(Android 15 x86_64):initSDK+login 对 192.168.200.11 全流程正常,排除服务端与代码逻辑问题
- libgojni arm64 已验证 16KB 页对齐,排除新机型兼容性问题
2026-08-15 15:42:31 +08:00
KIMI e2cc59d8c1 mobile: APK 压缩打包 native 库(useLegacyPackaging),arm64 包从 52MB 降到 23MB,绕开附件平台 50MB 上传上限 2026-08-15 15:21:33 +08:00
KIMI a8cb84f4c7 fix: 登录失败自动自检三个服务端口并展示 SDK 原始错误(B-58)
- IMService 记录 onConnectFailed 的 code/error(lastConnectError)
- SDK 未初始化成功时 login 直接抛错,不再无限等待
- 登录页失败提示下附自检结果:账号服务/消息接口/消息长连接 通不通
- 版本号 1.0.2+3
2026-08-15 15:12:20 +08:00
KIMI 3b5c76cac4 fix: 修复手机连不上服务器时启动页无限转圈(B-58)
- 启动页先读本地凭证:无凭证(首次打开)直接进登录页,不再先等 SDK 初始化
- SDK init/login 加 20s 超时;init 用共享 Future 防止超时后重复触发 initSDK
- 登录页对 IM 登录超时给出明确提示(确认手机连着公司内网 WiFi)
- 修复 flutter create 模板遗留的 widget_test(引用不存在的 MyApp),改为登录页渲染冒烟测试
- 版本号 1.0.1+2
2026-08-15 14:54:52 +08:00
KIMI d481e1bc2f mobile: 提交 android/ios 平台脚手架与打包配置(B-58)
- flutter create 生成的 android/ ios/ 脚手架入库,服务器/使用者无需再装 Flutter
- AndroidManifest:补 INTERNET/录音/存储权限,应用名改「畅联」,开 usesCleartextTraffic(内网 http/ws)
- iOS Info.plist:麦克风/相册用途说明、ATS 放行内网明文、显示名「畅联」
- gradle:阿里云镜像优先(本网络 maven.google.com 不可达);统一 Java/Kotlin 编译目标 17;
  抬升 livekit_client compileSdk 到 36 以满足 flutter_webrtc 的 AAR 校验
- README 更新为「直接打包」流程
2026-08-15 13:22:25 +08:00
KIMI b95159f7eb 新增 mobile/:畅联手机端 Flutter 工程(B-58)
- 登录:工号+密码走 account-service /api/login,自动登录、被踢下线回登录页
- 消息:会话列表(未读角标/免打扰/时间)、单聊群聊、文字/语音/图片/文件消息、失败重发、历史分页
- 通讯录:新的同事/我的群聊入口、按部门分组(好友 ex 字段)、搜索
- 通话:一对一语音通话(信令走 OpenIM 自定义消息 + LiveKit,token 走 /api/rtc_token)
- 界面按确认效果图 m1/m2/m3 实现,主色 #3B87F5,四态视图齐全,无英文残留
2026-08-09 01:28:12 +08:00