提交图

14 次代码提交

作者 SHA1 备注 提交日期
徐勤民
f7d68681b5 feat(sdk): 添加认证仓库和登录会话管理功能
- 新增 AuthRepository 处理用户认证和加密存储
- 实现 SDK 登录会话管理和自动通知模块
- 添加 IM SDK 登录集成和会话传递
- 更新 API 响应结构支持 userSig 字段
- 添加文件存储服务和上传功能
- 完善文档说明 SDK 架构和集成方式
2026-04-27 19:23:11 +08:00
徐勤民
34c02b9832 feat(sample): 添加示例应用的核心功能模块
- 集成依赖管理配置文件 libs.versions.toml,统一管理项目依赖版本
- 实现演示 API 接口定义,包含登录、注册、用户管理等 RESTful 端点
- 创建认证仓库 AuthRepository,处理用户会话管理和加密存储
- 开发登录和注册界面,实现用户身份验证流程
- 构建聊天界面 ChatScreen,支持消息收发和历史记录显示
- 实现联系人管理功能,包含好友搜索和添加删除操作
- 添加会话列表界面,展示最近聊天记录和未读消息提示
2026-04-27 19:00:54 +08:00
徐勤民
173c3cbddd feat(sdk): 初始化 Android SDK 核心功能模块
- 添加 SDK 配置管理、网络请求客户端和令牌存储功能
- 实现即时通讯 IM 模块,包括消息收发、群组管理和会话功能
- 集成推送服务和应用更新功能模块
- 创建示例应用演示 SDK 使用方法
- 配置项目依赖管理和构建设置
2026-04-27 17:18:55 +08:00
徐勤民
b31a91f924 feat: add member to group via UserSearch — pass addToGroupId param from GroupSettings
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-27 13:42:48 +08:00
徐勤民
8aab9d078f fix: resolve all TypeScript errors — AudioRecorderPlayer singleton, PhotoQuality, missing symbols
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-27 13:38:03 +08:00
徐勤民
fd1ebbfdca feat: real image/audio rendering, avatar upload, pinned convs, proper group management
- MessageBubble: IMAGE renders actual <Image> with aspect ratio clamping (min 80, max screenW-120)
- MessageBubble: VIDEO shows thumbnail with play overlay; AUDIO shows waveform + play/stop
- MessageBubble: per-message sender avatar (letter fallback when no uri)
- ConversationItem: show real avatar when available; pinned indicator; muted dot badge
- ConversationListScreen: sort pinned conversations to top; long-press for pin/mute actions
- ContactsScreen, UserSearchScreen, GroupMembersScreen: real avatar images with fallback
- ProfileScreen: show real avatar image, tap to edit
- EditProfileScreen: avatar upload via uploadFile() to file-service before saving profile
- GroupSettingsScreen: real leaveGroup() call via SDK, removes user from group server-side
- GroupListScreen, GroupMembersScreen: parse memberIds as JSON array (was comma-split)
- SingleChatScreen: remove redundant handleLongPress (now handled inside MessageBubble)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-27 11:58:07 +08:00
徐勤民
536759c14a feat(app): update check flow, friend-based contacts, global disconnect banner
- AuthContext: post-login checkAppUpdate + silent RN update
- ContactsScreen: ImSDK.listFriends + demoApi profiles, useFocusEffect
- UserSearchScreen: addFriend via ImSDK
- DisconnectBanner moved to AppStack level (global, not per-screen)
- Remove DisconnectBanner from SingleChatScreen and GroupChatScreen

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-25 17:27:22 +08:00
徐勤民
e5adc00b44 feat: complete production chat demo — all screens, real media, SDK remote init
- App.tsx: replaced dev console with AuthProvider + AppNavigator
- Auth: Login, Register, ResetPassword screens via demo-service
- Conversations: reactive WatermelonDB subscription with user profile enrichment
- Chat: SingleChat + GroupChat with full media (image/video/audio/file), revoke, pull-up load more
- Contacts: local contacts list + UserSearch with debounced fuzzy search
- Groups: GroupList, CreateGroup (fuzzy member picker), GroupMembers, GroupSettings
- Profile: view + EditProfile (nickname, gender)
- MessageSearch: local DB full-text search across conversations
- ChatInput: text, 20-emoji picker, image/video/audio/file send, tap-to-record audio
- DisconnectBanner: connection status with reconnect
- AuthContext: uses await XuqmSDK.initialize({ appId, serverUrl }) for remote config

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-25 16:41:54 +08:00
徐勤民
37c591be9d feat(sample): 集成 Sentry 异常监控功能
- 添加 Sentry Android SDK 依赖 (版本 8.39.1)
- 在 sample-app 中集成 Sentry 监控插件
- 添加 Sentry 初始化配置到应用 Application 类
- 在 MainActivity 中添加异常上报测试按钮
- 添加闪退测试功能用于验证 Sentry 监控
- 更新 AndroidManifest.xml 配置应用入口点
- 添加新的 gradle wrapper 文件支持项目构建
- 创建 sdk-core、sdk-im、sdk-push、sdk-update 模块基础结构
- 配置各 SDK 模块的 build.gradle.kts 文件
- 更新 libs.versions.toml 添加 Sentry 版本定义
2026-04-24 16:46:38 +08:00
徐勤民
734aaf256b refactor: adopt new SDK API (no URLs/token in init, auto version)
- XuqmSDK.init now takes only { appId, debug } — no URLs or appSecret
- Add plugin.json for plugin self-registration
- UpdateSDK._devSetAppVersion(1) as simulator fallback
- UpdatePanel: remove appVersionCode/rnCurrentVersion props,
  use UpdateSDK.getAppVersionCode() and getRegisteredPluginVersion()
- Add .nvmrc (node 22)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-24 16:16:50 +08:00
徐勤民
e2bd914dd3 docs: 更新 README 至 V3.0,补充群聊演示和分步热更新说明
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-24 11:23:23 +08:00
徐勤民
681902ab34 feat(demo): 添加群聊演示和完整热更新流程演示
群聊(Section 3):
- 新增 GroupChatPanel 组件,支持创建群组、加载群列表、切换群组
- 群聊支持全 12 种消息类型发送和撤回
- 订阅群 topic 接收实时群消息

升级演示(Section 4):
- 新增 UpdatePanel 组件,按步骤展示:
  - App 整包更新:检查版本 → 显示下载链接/App Store
  - RN 插件热更新:检查 → 下载 bundle → 写入 AsyncStorage
- 每步骤显示状态图标(○/⟳/✓/✗)和详细信息

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-24 11:14:26 +08:00
徐勤民
85c23b34a4 feat(chat-demo): 扩展为全消息类型演示,支持 12 种类型发送与渲染
- 新增 MessageBubble 组件,按 msgType 智能渲染:TEXT/IMAGE/VIDEO/AUDIO/
  FILE/CUSTOM/LOCATION/NOTIFY/RICH_TEXT/CALL_AUDIO/CALL_VIDEO/FORWARD/REVOKED
- 新增 MessageComposer 组件:消息类型选择器 + 类型专属演示内容 + 一键发全类型
- App.tsx 集成撤回功能(长按弹框 → revokeMessage API → 气泡就地更新)
- 活动日志增加时间戳和收发方向标注
- 更新 docs/README.md,补充消息类型表格和演示步骤

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-24 11:03:30 +08:00
徐勤民
bc512a17cb chore: init RN chat demo project
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-24 10:58:27 +08:00