Compare commits

..

157 Commits

Author SHA1 Message Date
edwinQQQ
eb0feb1b73 新增控制堆栈视图以优化房间推荐视图的布局,调整约束以确保 UI 元素的正确排列。更新 miniStackView 和 exitStackView 的内容压缩和拥抱优先级,提升布局的灵活性和可维护性。 2025-09-16 16:08:28 +08:00
edwinQQQ
8d8beeaa2d 优化房间视图控制器中的消息处理逻辑,增加 TurboModeStateManager 对全服礼物和游戏飘屏的控制,移除不必要的本地缓存,确保实时查询状态。更新 BoomInfoViewController 中的比值计算方式,提升代码可读性。调整 XPEffectPanelViewController 和 XPRoomMoreMenuViewController 的布局约束,改善用户界面。移除多处调试日志,提升代码整洁性。 2025-09-16 15:55:38 +08:00
edwinQQQ
eb74017143 更新 API 测试环境 URL,优化中点矩形计算逻辑以适配屏幕尺寸,增加常量定义以提升代码可读性和可维护性。 2025-09-16 11:31:56 +08:00
edwinQQQ
345583c197 重构麦位相邻性判断逻辑,新增子类可重写的方法以支持自定义布局配置。更新各个麦位布局类,简化相邻性判断,确保布局逻辑的一致性和可维护性。同时,优化中点矩形计算方法,提升代码的可读性和性能。 2025-09-15 19:09:48 +08:00
edwinQQQ
c8c9985db8 更新 XPRoomLittleGameContainerView.m,新增西班牙语、俄语和乌兹别克语支持。调整 XPEffectPanelViewController.m 中 UISwitch 的颜色设置,使用 UIColorFromRGB 替代系统蓝色。修复 MSRoomGameWebVC.m 中的语言逻辑,确保多语言支持的准确性和一致性。 2025-09-15 18:35:29 +08:00
edwinQQQ
644639dd9a 更新 LoginViewController 和 XPRoomViewController,调整布局约束和新增 CP 逻辑处理,优化数据解析和错误处理。为 MicMidpointRectManager 增加有效配对逻辑,确保中点矩形绘制的准确性。同时,更新多语言支持,补充缺失的翻译字符串,提升用户体验和代码可维护性。 2025-09-15 17:35:16 +08:00
edwinQQQ
6470c642eb 新增 CP SVGA 逻辑迁移测试报告,详细记录了在 MicMidpointRectManager 中新增的 CP 业务逻辑方法及其在 XPRoomViewController 中的简化调用。修复了编译错误,优化了代码结构,提升了可维护性和可测试性。同时,更新了 MicMidpointRectManager 的头文件,添加了新方法的声明,确保代码一致性和清晰性。 2025-09-15 16:12:41 +08:00
edwinQQQ
645be6184e 新增房间底部阴影图像资源及其配置文件,优化 XPHomePartyViewController 和 XPPartyRoomItemCollectionViewCell 的布局逻辑,确保在不同布局模式下正确显示底部阴影。更新布局相关逻辑以提升用户体验和代码可维护性。 2025-09-12 14:31:53 +08:00
edwinQQQ
ca963cf52b 新增多语言支持,更新 Info.plist 文件以包含葡萄牙语(巴西)、西班牙语、俄语和乌兹别克语。重构 YUMIMacroUitls.h 文件以使用 YMLanguageConfig 进行语言代码管理,优化 XPMineSwitchLanguageVC.m 中的语言切换逻辑,确保动态生成语言选项。新增 YMLanguageConfig 类以管理支持的语言列表及相关功能,提升代码可维护性和用户体验。 2025-09-11 19:04:54 +08:00
edwinQQQ
867f893625 更新房间布局相关资源,替换 XPBlankCollectionViewCell 为 XPPartyRoomItemCollectionViewCell,优化布局切换逻辑。新增房间布局类型持久化功能,确保用户选择的布局模式在应用重启后保持一致。同时,更新相关视图控制器以支持新的布局逻辑,提升用户体验和代码可维护性。 2025-09-11 15:30:29 +08:00
edwinQQQ
49fbfb89a5 新增 XPBlankRoomModel 和 XPBlankCollectionViewCell 类,支持布局切换功能。更新 XPHomePartyViewController 以处理布局模式切换,优化数据源处理逻辑,确保在两列和一列布局之间正确插入和移除占位模型。同时,更新 XPHomePagingViewController 以发送布局切换通知,提升用户体验和代码可维护性。 2025-09-10 18:59:36 +08:00
edwinQQQ
5646168553 移除 XPRoomViewController 中的测试按钮及相关逻辑,优化 RoomAnimationView 的动画取消和清理逻辑,新增 TurboModeStateManager 的静默设置功能,确保在不发送通知的情况下更新 Turbo 模式状态。同时,修复 XPEffectPanelViewController 中的开关状态更新逻辑,提升代码可维护性和用户体验。 2025-09-10 17:47:51 +08:00
edwinQQQ
58ff7805bf 新增布局按钮到 XPHomePagingViewController,优化顶部控制视图的交互功能。同时,更新 RoomAnimationView 中的动画管理逻辑,增加本地开关状态缓存,减少对 TurboModeStateManager 的频繁调用,提升性能和可维护性。修复 TurboModeStateManager 的初始化逻辑,确保应用启动时 Turbo 模式为关闭状态,并新增强制打开/关闭所有开关的功能。更新 XPEffectPanelViewController 以同步 Turbo 模式状态,确保 UI 显示与实际状态一致。 2025-09-10 17:21:25 +08:00
edwinQQQ
d414cd1cfc 新增 TurboModeStateManager 的功能,支持 CP 麦位开关状态管理,优化房间中各个视图对 Turbo 模式的集成。更新相关视图控制器以使用 TurboModeStateManager 获取和设置开关状态,提升代码可维护性和用户体验。同时,新增 CP 麦位相关的本地化字符串,确保多语言支持。 2025-09-10 17:21:09 +08:00
edwinQQQ
58ab43c7d8 新增当前用户切换麦位时的云信消息发送流程文档,详细描述了修复后的完整流程及关键修复点。同时,更新了 XPRoomViewController 和相关类以初始化当前用户麦位状态,处理其他用户麦位变化场景,确保麦位关系的正确更新和消息发送。优化了麦位中点矩形的绘制逻辑,提升了代码可维护性和用户体验。 2025-09-09 19:17:21 +08:00
edwinQQQ
68088e00e9 更新房间功能,新增 MicCpInfoModel 类以管理麦位关系数据,优化房间中点矩形和麦位状态管理逻辑。同时,更新相关 Presenter 和 ViewController 以集成新的麦位关系 API,提升代码可维护性和用户体验。新增麦位状态监测和更新机制,确保用户在房间中的麦位信息实时准确。 2025-09-09 15:54:36 +08:00
edwinQQQ
10d4abf5ee 新增 MicMidpointRectManager 类以管理麦位中点矩形的绘制和动画,优化各个 StageView 中的中点矩形处理逻辑。同时,更新相关 StageView 类以集成中点矩形管理器,提升代码可维护性和用户体验。新增 SVGA 动画支持,确保中点矩形的动态展示效果。 2025-09-04 18:43:39 +08:00
edwinQQQ
8d20a9e44f 新增 Turbo Mode 相关功能,包括头饰的 Turbo Mode 状态管理,确保在 Turbo Mode 开启时头饰只显示第一帧并停止动画。同时,更新 MicroView 类以集成 Turbo Mode 状态监听和更新逻辑,提升用户体验和代码可维护性。新增 Turbo Mode Tips 相关的本地化字符串,确保多语言支持。 2025-09-04 17:21:11 +08:00
edwinQQQ
0147800f75 新增 Turbo Mode Tips 功能,包含 XPTurboModeTipsManager 和 XPTurboModeTipsView 类,用于在房间中监测卡顿并显示提示。同时,更新 XPRoomViewController 以启动提示监听,并添加测试按钮以手动触发提示显示,提升用户体验和代码可维护性。 2025-09-03 19:10:06 +08:00
edwinQQQ
f15d229ae1 新增 TurboModeStateManager 类以管理全局 Turbo 模式状态,优化房间动画视图中的开关逻辑,确保与 Turbo 模式一致。同时,更新房间更多菜单的 Action 类以支持新的 Turbo 模式开关,提升代码可维护性和用户体验。 2025-09-03 18:39:34 +08:00
edwinQQQ
8dbb02228f 新增 Turbo Mode 功能,包含相关的 Action 类、常量和视图控制器,优化房间更多菜单的功能扩展性。同时,更新通知逻辑以支持 Turbo Mode 开关状态的管理,提升代码可维护性和用户体验。 2025-09-03 16:32:15 +08:00
edwinQQQ
cff4ddeeba 删除 XPRoomMoreMenuActionTest 相关的测试文件,简化代码结构,提升项目的可维护性和清晰度。 2025-09-01 19:16:48 +08:00
edwinQQQ
b657f3856b 新增多个房间功能相关的 Action 类,包括 XPRoomAppManagerAction、XPRoomCleanMessagesAction、XPRoomBackGroundSettingAction、XPRoomMusicPanelAction 和 XPRoomRoomPhotoAction,优化房间更多菜单的功能扩展性。同时,更新 XPRoomMoreMenuActionFactory 以支持新功能,提升代码可维护性和结构清晰度。 2025-09-01 18:55:46 +08:00
edwinQQQ
c41df5caa0 移除与心愿礼物相关的代码和引用,简化房间功能模块,更新房间更多菜单的 Action 类以集成 PK 相关功能,提升代码可维护性和扩展性。 2025-09-01 16:55:13 +08:00
edwinQQQ
860304ea15 新增房间礼物特效相关功能,更新 XPGiftEffectAction 类以支持根据房间状态创建对应的 Action 实例,并优化了相关的通知逻辑。同时,新增 kRoomGiftEffectUpdateNotificationKey 常量以便于通知管理,提升代码可维护性和功能扩展性。 2025-09-01 14:29:21 +08:00
edwinQQQ
406cf003f5 重构房间更多菜单功能,创建多个 Action 类以优化代码结构和可维护性。新增 XPRoomMoreMenuAction、XPRoomMoreMenuActionContext、XPRoomMoreMenuActionFactory、XPGiftEffectAction、XPRoomSettingAction 和 XPSocialAction 类,整合新架构至 XPRoomMoreMenuViewController,提升功能扩展性和测试能力。同时,更新数据源创建逻辑,简化主控制器的复杂度。 2025-08-29 18:15:35 +08:00
edwinQQQ
8c024c0ec1 优化 XPRoomViewController 中的视图初始化逻辑,移除 stageView 的添加,调整 messageContainerView 的约束。同时,修复 BravoGiftWinningFlagView 和 LuckyGiftWinningFlagView 的位置计算,确保视图在屏幕可见范围内,增强用户体验。新增智能销毁方法以优化 RoomAnimationView 的资源管理,确保重要动画播放时的清理逻辑更加安全。 2025-08-29 15:55:02 +08:00
edwinQQQ
0837457c9f 新增 StageViewManager 类以管理 stageView 的创建和更新逻辑,集成至 XPRoomViewController 中,优化现有的 stageView 更新流程,提升代码可维护性和用户体验。 2025-08-29 15:16:52 +08:00
edwinQQQ
c9df21a005 修复震动反馈初始化和调用逻辑,确保在点击事件中及时响应震动反馈。同时新增准备震动反馈的方法以提升用户体验和代码可维护性。 2025-08-28 17:08:57 +08:00
edwinQQQ
24a4e75fae 新增礼物动画的combo状态管理功能,优化用户状态判断逻辑,确保多用户并发送礼时动画正常显示。同时,添加状态通知机制以实现组件间通信,提升代码可维护性和用户体验。 2025-08-28 16:33:38 +08:00
edwinQQQ
d4ac93adbb 优化礼物消息的动画效果,减少视觉冲突。修改消息插入动画为淡入效果,延迟滚动执行,确保动画流畅性。同时新增礼物消息识别方法,优化 Cell 更新逻辑以避免动画期间的布局更新。 2025-08-28 15:16:26 +08:00
edwinQQQ
d22ddaefcf 整合 Bugly 相关功能,新增 BuglyManager 类以统一管理 Bugly 配置和错误上报,优化 AppDelegate 中的 Bugly 配置逻辑。同时,更新多个模块以使用 BuglyManager 进行错误上报,提升代码可维护性和一致性。新增 BuglyManager 使用说明文档,提供详细的使用示例和功能介绍。 2025-08-28 14:40:05 +08:00
edwinQQQ
dce3ea94ce 删除多个文档和文件,包括 micButton 状态表格、QEmotionBoardView 相关问题分析报告、序列图、飘屏组件分析文档等,以清理项目中的冗余内容,提升代码整洁性和可维护性。 2025-08-27 18:25:12 +08:00
edwinQQQ
eee967c2e1 新增 emoji 缓存清理功能以确保新的尺寸设置生效,优化表情处理逻辑,支持带场景参数的表情转换。同时,更新相关方法以适应新功能,提升用户体验。 2025-08-27 16:35:52 +08:00
edwinQQQ
4d60296a4d 新增 GameBannerGestureManager 类以管理游戏模式下的手势识别,优化 RoomAnimationView 中的手势处理逻辑,确保在小游戏模式下的用户交互体验。同时,更新版本号至 1.0.31,添加调试日志以便于后续排查。 2025-08-27 14:27:25 +08:00
edwinQQQ
77fd8b51c2 新增 QEmotionBoardView 表情不显示问题分析报告和排查报告,详细记录问题描述、代码逻辑、根因分析及解决方案。同时,修复 AppDelegate 中的图片加载逻辑,添加调试日志以便于后续排查,确保表情正常显示。 2025-08-26 13:57:24 +08:00
edwinQQQ
c5cde5b5c4 优化 PIGiftBravoGiftBroadcastView 动画逻辑,调整动画时序和状态管理,增加数据源检查,确保动画流畅性和稳定性。同时,添加详细日志输出以便于调试和监控。 2025-08-25 15:08:24 +08:00
edwinQQQ
3df04b9b90 新增视频选择和处理功能,支持视频压缩与上传,优化头像上传逻辑,自动识别媒体类型并维护原有目录结构。同时,更新图片选择器配置,确保视频选择时禁用裁剪功能,提升用户体验。 2025-08-22 14:50:29 +08:00
edwinQQQ
48053bc2c9 新增房间类型变化通知的发送和监听功能,优化 RoomAnimationView 的手势处理逻辑,提升用户体验。同时,增加触摸事件日志记录,便于调试和分析。 2025-08-22 14:19:15 +08:00
edwinQQQ
cd9c2ea15a 优化 XPRoomMessageContainerView 和 XPRoomMessageTableViewCell,改进消息处理逻辑,增加行高预计算方法,减少不必要的视图更新,提升性能和用户体验。同时,调整 UITableView 的约束更新方式,确保更高效的布局管理。 2025-08-21 19:22:20 +08:00
edwinQQQ
b9de95b4e6 移除 XPRoomViewController 和 RoomAnimationView 中的调试代码,提升代码整洁性和可维护性。 2025-08-21 18:54:04 +08:00
edwinQQQ
1bfc989fe9 移除 RoomAnimationView 中的调试背景色设置,提升代码整洁性和可维护性。 2025-08-21 18:25:46 +08:00
edwinQQQ
09a2b2f02b 优化 XPRoomPresenter、XPRoomViewController 和 XPMessageRemoteExtModel,移除冗余代码,增强 NIM 聊天室成员信息获取逻辑,新增房间类型和模式属性,提升代码可维护性和用户体验。同时,重构定时器管理和消息发送逻辑,确保功能的稳定性和一致性。 2025-08-21 18:23:18 +08:00
edwinQQQ
49975b5dc1 优化 AdvertiseModel 和 XPRoomViewController,移除不必要的注释,新增上麦请求弹窗定时器,增强消息处理逻辑,提升代码可维护性和用户体验。同时,更新本地化字符串,支持新的上麦邀请功能。 2025-08-21 16:36:46 +08:00
edwinQQQ
267650759c 新增 versionType 属性以支持新旧版本兼容,更新 XPRoomPresenter 和 XPMessageRemoteExtModel,优化 micButton 处理逻辑,增强消息发送功能的稳定性和可维护性。 2025-08-20 19:06:49 +08:00
edwinQQQ
0b89480a77 优化 RoomAnimationView 和 PIGiftBravoGiftBroadcastView 的内存管理,新增动画控制方法以提升用户体验。更新了连击视图的清理逻辑,确保资源的正确释放,避免内存泄漏。同时,新增 NetImageView 的取消加载功能,增强图片加载的灵活性和性能。重构相关方法以支持新的逻辑流程,提升代码可维护性和可读性。 2025-08-20 18:07:34 +08:00
edwinQQQ
e0466700b5 新增手势优化和触摸区域缓存管理模块,提升了 Banner 交互性能和用户体验。新增 GestureOptimizer 和 TouchAreaCacheManager,分别负责手势识别优化和触摸区域信息缓存。更新 RoomAnimationView 和 BravoGiftBannerView,集成新模块以优化手势处理逻辑,确保更流畅的用户交互。同时,重构相关方法以支持新的逻辑流程,提升代码可维护性和可读性。 2025-08-20 16:37:48 +08:00
edwinQQQ
be52c53b2f 新增 BannerScheduler 模块,统一管理 V2 Banner 的播放队列和状态,优化了 Banner 播放逻辑,支持优先级排序、状态控制和代理模式。更新 RoomAnimationView,集成 BannerScheduler,重构了 Banner 添加和播放逻辑,提升了代码可维护性和用户体验。同时,新增 BannerScheduler 的单元测试,确保功能的正确性和稳定性。 2025-08-20 14:19:32 +08:00
edwinQQQ
aeb9fcd30e 新增 micButton 状态表格文档,详细记录了 micButton 在不同用户状态下的显示和可用性,以及状态变化的关键时序和同步机制。同时,新增 GiftComboManager 线程优化总结文档,优化了线程处理和网络请求逻辑,提升了代码性能和可维护性。更新了 CountdownRingView 和 GiftComboView 的内存管理和状态处理逻辑,确保资源的正确释放和避免内存泄漏。 2025-08-19 19:33:26 +08:00
edwinQQQ
6d4061bea5 优化 AppDelegate+ThirdConfig 中 NIMSDK 配置,确保生产环境启用 HTTPS,新增 CDN 统计回调和最小时间间隔设置,提升代码可维护性和功能完整性。同时,重构 GiftComboManager,新增后台处理队列和网络处理队列,优化定时器和请求处理逻辑,确保 UI 回调在主线程执行,增强用户体验和代码可读性。 2025-08-19 16:33:22 +08:00
edwinQQQ
83e26bdbae 重构 GiftComboManager,移除 giftComboQueue,新增 networkQueue 和 uiQueue,优化队列处理逻辑,提升代码可维护性和可读性。同时,更新相关方法以支持新的队列结构,确保连击效果的准确处理。 2025-08-19 15:30:39 +08:00
edwinQQQ
c551146afd 优化 GiftComboManager 接口,移除废弃方法并统一配置流程,提升代码可维护性和可读性。同时,更新 XPRoomViewController 和 XPSendGiftView 中的状态检查逻辑,确保连击状态的准确性。新增 GiftComboManager 调用方更新总结文档,记录了接口变更和优化效果。 2025-08-19 14:39:27 +08:00
edwinQQQ
961edefe4a 新增连击计数逻辑修正总结文档,详细记录了连击计数的修正目标、发现的问题及其根源,主要修改内容包括 GiftComboManager、GiftComboView 和 XPSendGiftView 的接口优化和逻辑调整,确保连击计数基于 API 成功回调,提升了用户体验和代码可维护性。同时,更新了相关方法以支持新的逻辑流程和状态管理。 2025-08-19 14:12:51 +08:00
edwinQQQ
f1daa16e59 更新 Podfile 中 NIMSDK_LITE 版本至 '~> 10.9.40',并在多个文件中新增日志记录功能以优化连击消息处理,增强调试能力。同时,新增连击计数重置通知和相关方法,提升用户体验和代码可维护性。 2025-08-18 19:02:47 +08:00
edwinQQQ
9688e4413b 新增 GiftComboManager 及相关模块的重构,优化了连击功能的接口,建立了清晰的分层架构,统一了并发模型,提升了可维护性和可测试性。同时,新增了 GiftComboConfig、GiftComboTransport 和 GiftComboUIAdapter 模块,简化了接口并提供了更好的错误处理机制,确保向后兼容性。 2025-08-18 16:24:45 +08:00
edwinQQQ
79f6f45bc1 新增礼物动画处理日志记录功能,优化了 GiftAnimationManager 和 GiftComboManager 中的连击计数逻辑,确保连击计数的有效性和准确性。同时,增强了日志输出,便于调试和监控动画处理状态,提升用户体验。 2025-08-18 14:01:57 +08:00
edwinQQQ
3f97b0293e 新增 Banner 手势优化实施总结文档,记录了在 RoomAnimationView 中对 banner 手势系统的优化过程,包括手势识别器的重新设计、区域划分逻辑、tap 手势处理逻辑及交互区域检查等。同时,优化了多个视图中的通知处理逻辑,确保手势事件的准确传递与处理,提升用户交互体验。 2025-08-15 19:34:25 +08:00
edwinQQQ
84e146277a 在 RoomAnimationView 中新增触摸事件处理逻辑,确保在没有 banner 显示或 banner 容器不可见时不接收触摸事件,提升用户交互体验。同时,优化了 banner 区域的触摸点检测逻辑,增强代码可读性。 2025-08-15 11:41:45 +08:00
edwinQQQ
5192d58b07 优化 NIMSDK 和 SudSDK 的初始化逻辑,新增从配置中获取 appKey 和 appId 的功能,提升代码灵活性和可维护性。同时,修正 sudKey 的属性名称以保持一致性。 2025-08-14 18:48:47 +08:00
edwinQQQ
cd4710ecf6 优化公共房间管理器的进入逻辑,新增延迟进入公共房间的功能以改善用户体验。同时,移除 RoomAnimationView 中的调试视图相关代码,提升代码整洁性和可维护性。 2025-08-14 18:36:23 +08:00
edwinQQQ
edf844c1e8 新增公共房间管理器的初始化逻辑,并在登录和信息补全成功后调用初始化方法;在相关文件中引入公共房间管理器的头文件以支持新功能。同时,优化了公共房间管理器的状态检查和日志输出,提升代码可读性和功能性。 2025-08-14 18:04:38 +08:00
edwinQQQ
b1e46f6d28 fix(消息容器): 修复多语言文本截断问题并优化布局
统一文本布局策略,修复阿拉伯语、中文等文本显示不全问题
优化约束逻辑,移除冗余计算,提升性能
添加测试用例验证多语言文本布局
2025-08-14 17:56:56 +08:00
edwinQQQ
2a99d2238f feat(文本布局): 统一文本尺寸计算并支持RTL文本
- 使用YYTextLayout统一处理所有文本尺寸计算,提高RTL文本精度
- 根据文本方向自动配置截断类型(RTL文本使用Start,LTR使用End)
- 移除阿拉伯文本的额外高度调整,依赖YYTextLayout的精确计算
- 新增测试类验证纯阿拉伯文本、混合文本和长文本的布局效果
- 添加README文档说明统一文本布局的实现细节和优势
2025-08-14 14:06:35 +08:00
edwinQQQ
3da0148ad1 在多个视图的 dismissBanner 方法中新增日志输出,以便于调试和监控动画完成状态;在 RoomAnimationView 中新增 ensureDebugViewsExist 方法,确保调试视图的存在并优化调试信息的输出;在 inserBannerModelToQueue 方法中添加参数验证和调试信息,提升代码的可读性和调试能力。 2025-08-13 18:16:46 +08:00
edwinQQQ
9206b4be45 优化公共房间管理器的消息处理逻辑,新增 handleFirst_106 方法以处理特定类型的消息转发,提升代码可读性和功能性。同时,移除冗余代码,确保代码整洁性。 2025-08-13 17:21:48 +08:00
edwinQQQ
2867c7ddb5 新增公共房间消息转发通知常量,并在相关管理器和视图控制器中实现消息转发逻辑,优化公共房间消息处理流程,提升代码可读性和功能性。 2025-08-12 18:50:43 +08:00
edwinQQQ
505472b073 在 RoomAnimationView.m 中新增对 MSRoomOnLineView 的引用,并优化了手势识别逻辑,以支持对该视图的直接交互。此更改提升了用户体验和代码的可读性。 2025-08-12 18:50:36 +08:00
edwinQQQ
64cfb1b10e 更新Banner区域手势系统,新增区域化手势识别,优化用户交互体验;调整Banner高度,确保适配性;移除冗余代码,提升代码整洁性和可维护性;更新相关文档以支持新手势系统的集成和使用。 2025-08-12 17:44:32 +08:00
edwinQQQ
9b2ebb796f 更新公共房间管理器的日志输出,改为使用消息的原始附件内容;优化动画播放逻辑,使用 switch 语句替代多个 if-else 语句以提高可读性;移除与守护星球相关的消息处理逻辑,确保代码整洁性;更新多个本地化字符串文件,移除与守护星球相关的条目,确保语言支持的一致性。 2025-08-12 14:51:13 +08:00
edwinQQQ
6fd831ff42 删除与星级厨房相关的所有图像资源及其配置文件,包括 room_star_kitchen.imageset 及其内容;在 AttachmentModel.h 中移除与星级厨房相关的枚举值,确保代码整洁性;更新多个本地化字符串文件,移除与 XPRoomStarKitchenBannerView 相关的条目,确保语言支持的一致性。 2025-08-12 14:07:38 +08:00
edwinQQQ
259ac3e2d3 删除与房间塔罗相关的图像资源及其配置文件,包括 room_tarrow_banner_bg 和 room_tarrow_banner_h5_bg 的所有内容;在 NIMSDKManager.h 和 NIMSDKManager.m 中添加空行以提升代码可读性;更新多个本地化字符串文件,移除与 XPRoomTarrowBannerView 相关的条目,确保语言支持的一致性。 2025-08-12 13:53:12 +08:00
edwinQQQ
446e172939 新增飘屏组件分析文档和新Banner组件架构设计,详细描述了飘屏组件的共同特征、抽象方案及其优势,提供了基类和子类的设计方案,增强了代码的可维护性和扩展性。同时,更新了相关文档以支持新架构的集成和使用。 2025-08-12 11:16:28 +08:00
edwinQQQ
c0bc29486f 新增连击状态管理功能,包含强制重置连击状态的方法和应用生命周期保护;在 XPSendGiftView 和 GiftComboManager 中实现相关逻辑,确保 UI 状态与连击状态一致;注册通知以处理连击状态的强制重置,增强用户体验和系统稳定性。 2025-08-11 14:51:57 +08:00
edwinQQQ
1fb6cadabf 新增公共房间管理器 PublicRoomManager,负责管理用户进入公共聊天房间的逻辑;在 ClientConfig.m 中添加对公共房间管理器的配置更新通知;在多个文件中集成公共房间管理器,确保用户信息更新和状态管理的正确性;更新相关文档以提供使用指南和集成说明。 2025-08-08 17:01:59 +08:00
edwinQQQ
e3dfd8cb0a Version update 2025-07-15 14:59:56 +08:00
edwinQQQ
96c44cb032 删除阿拉伯语首充相关图像资源及其配置文件;在 UIImage+Utils.m 中优化语言图像处理逻辑,新增对葡萄牙语的支持;在多个文件中添加对葡萄牙语的支持,包括本地化字符串和 InfoPlist 配置;更新 UI 组件以适应新的语言设置,确保用户界面的一致性和可用性。 2025-07-15 14:35:05 +08:00
edwinQQQ
16f9041ba9 chore: 更新 .gitignore 文件,移除不必要的包文件类型;新增邮箱验证码登录流程和 OAuth/Ticket 认证系统 API 文档;更新勋章相关逻辑,优化用户信息获取失败处理;调整勋章展示逻辑,支持多等级高亮功能。 2025-07-14 17:37:10 +08:00
edwinQQQ
99db078b62 feat(勋章): 新增多等级高亮功能并优化勋章展示逻辑
refactor(勋章排行): 重构排行榜分页加载和刷新逻辑

fix(会话): 优化官方账号判断逻辑和跳转处理

style(UI): 调整勋章排行榜和游戏菜单UI布局

chore: 更新Podfile配置和bitcode框架列表
2025-07-03 19:35:17 +08:00
edwinQQQ
e32e5653fd change page item limit 2025-07-03 18:04:56 +08:00
edwinQQQ
8a096239da 新增 next-chat.mdc 文件以定义对话上下文的规则;在 Assets.xcassets 中添加多个图像资源及其对应的 Contents.json 文件;更新 AttachmentModel.h 中的枚举值以修正飘屏消息类型;在 SessionViewController.h 和 SessionViewController.m 中添加 userInfo 属性并调整相关逻辑;在 SessionListViewController.h 和 SessionListViewController.m 中优化会话列表的展示逻辑;在多个模型和视图文件中进行小幅调整以提升代码可读性和一致性。 2025-07-02 15:52:48 +08:00
edwinQQQ
f0dad8886f 更新 MedalsModel.h 和 MedalsModel.m,新增 expireDateString 方法以格式化过期时间;在 MedalsCollectionViewCell.m 和 MedalsCyclePagerCell.m 中优化 MP4 和图片的显示逻辑,增强降级处理;在 MedalsDetailView.m 中更新勋章显示逻辑,使用新的 URL 优先级;在 MedalsLevelIndicatorView.h 和 MedalsLevelIndicatorView.m 中新增重置等级指示器的方法;在 MedalsWearingControlCollectionViewCell.m 和 MedalsWearingListCollectionViewCell.m 中实现新的显示逻辑,支持 MP4 和图片的降级处理;在 NSString+Utils.h 和 NSString+Utils.m 中新增图片格式验证方法,提升代码健壮性和可读性。 2025-06-27 19:56:03 +08:00
edwinQQQ
0d6570a086 更新 .vscode/settings.json 文件,新增拼写检查词汇 "Defalut" 和 "MAXFLOAT";在 XPRoomSendTextView.m 中调整约束逻辑,确保 editTextFiled 和 imageButton 的布局正确;在 XPRoomMessageTableViewCell.m 中优化消息内容标签的约束,确保气泡和内容标签的布局一致性,增强代码可读性和健壮性。 2025-06-27 16:15:12 +08:00
edwinQQQ
f52af5d620 更新 YUMIHtmlUrl.h 和 YUMIHtmlUrl.m,新增首充相关的 URL 类型和路径;在 FeedBackViewController.h 和 FeedBackViewController.m 中,调整属性类型为强引用以增强内存管理;重构 FeedBackViewController 的视图设置逻辑,添加子视图的初始化方法以提高代码可读性;移除不再使用的 FeedBackViewController.xib 文件,优化项目结构;在 XPGiftBarView.h 和 XPGiftBarView.m 中,移除首充按钮相关代码,替换为新的首充视图逻辑;更新 XPWebViewController.h 和 XPWebViewController.m,调整 webview 属性为可写以支持动态更新;在 FirstRechargeManager.m 中,优化首充状态检查逻辑,确保在调试模式下始终显示首充信息。 2025-06-27 11:33:16 +08:00
edwinQQQ
86094da26f 添加首充管理功能,新增 FirstRechargeManager 和相关模型以支持首充监控;在多个模块中集成首充监控逻辑,确保在登录和页面加载时正确启动和停止监控;移除不再使用的首充相关代码,优化代码结构和可读性。 2025-06-26 11:08:21 +08:00
edwinQQQ
6f59274ca0 更新 XPRoomMessageParser.m,优化房间表情属性创建逻辑,简化代码结构;新增 createImageAttribute:size: 方法以支持自定义图像大小,增强代码可读性和灵活性;调整图像处理逻辑,确保在不同条件下正确展示表情图像,保持代码一致性。 2025-06-25 15:22:09 +08:00
edwinQQQ
e01148a3a9 更新 pi_area_info.json,新增突尼斯地区信息;更新 Assets.xcassets 中的 Contents.json,修复幸运数字图像的文件名;移除多个文件中的调试代码以优化勋章展示逻辑,保持代码结构一致性;在 XPRoomFaceTool.m 中改进表情文件加载路径和错误处理,增强代码健壮性;在 XPRoomFaceViewController.m 中添加消息发送错误日志;更新 XPRoomMessageContainerView.m 和 XPRoomMessageParser.m,调整索引类型以提高代码一致性。 2025-06-25 14:29:23 +08:00
edwinQQQ
1190e0f6d9 更新 XPMineUserInfoHeaderView.m,调整勋章显示逻辑,允许最多显示 10 个勋章;在 UserRoomCardViewController.m 中新增 UserRoomCardMedalCell 以支持勋章的展示,优化勋章区域的高度计算和更新逻辑,保持代码结构一致性。 2025-06-24 18:50:45 +08:00
edwinQQQ
c5d966317b 更新 XPMineUserInfoHeaderView.m,新增 UIScrollView 作为勋章展示的容器,调整勋章 StackView 的布局逻辑以适应 ScrollView,更新勋章显示方法以处理勋章的内容尺寸,保持代码结构一致性。 2025-06-24 17:10:11 +08:00
edwinQQQ
6573c0f6fe 更新 XPMineUserInfoHeaderView.m,新增 medalsStackView 和 medalMP4Views 属性以支持勋章展示逻辑;添加 medalsHeight 方法计算勋章高度;实现 setupMedalsArea 方法以配置勋章视图;更新 updateMedalsDisplay 方法以处理勋章的 MP4 和图片展示,保持代码结构一致性。同时,更新 .vscode/settings.json 文件以添加拼写检查词汇。 2025-06-24 16:45:26 +08:00
edwinQQQ
7810057542 更新 MedalsViewController.m,移除调试代码以优化勋章展示逻辑;在 XPMineUserInfoHeaderView.m 中新增 medalsStackView 和 userMedals 属性以支持用户勋章的显示;在 UserInfoModel.m 中更新 medalsPic 属性以增强模型的兼容性,保持代码结构一致性。 2025-06-24 15:42:56 +08:00
edwinQQQ
059305d3df 更新 MedalsViewController.m,新增其他用户勋章的显示逻辑,包括 MP4 播放和图片展示,优化相关方法以提升用户体验,保持代码结构一致性。同时,更新 MedalsWearingControlCollectionViewCell.m,移除调试背景颜色设置,保持代码整洁。 2025-06-24 15:01:33 +08:00
edwinQQQ
a15d6b34ed 更新 MedalsRankViewController.m,添加勋章排行视图的点击手势和回调处理,优化用户交互体验,保持代码结构一致性。 2025-06-23 19:09:45 +08:00
edwinQQQ
6d0122f3d1 更新 MedalsViewController.m,调整背景约束和底部勋章列表高度以适应不同显示类型,优化底部背景图像的拉伸处理,保持代码结构一致性。 2025-06-23 18:57:05 +08:00
edwinQQQ
286e68b5e3 更新 MedalsCyclePagerCell 和 MedalsViewController 以优化勋章展示和自动轮播功能,调整可见性管理逻辑,确保在视图切换时正确处理播放状态,保持代码结构一致性。 2025-06-23 18:43:17 +08:00
edwinQQQ
c0500397b6 删除不再使用的资源文件,包括多个图像集和其对应的 Contents.json 文件,更新 MedalsModel.h 和 MedalsModel.m 以支持使用勋章的类型,新增 MedalsCyclePagerCell 组件以优化勋章展示,保持代码结构一致性。 2025-06-23 16:36:39 +08:00
edwinQQQ
f62af24c48 更新勋章相关模型和视图,添加对使用勋章的支持,优化可见性管理和状态更新逻辑,保持代码结构一致性。 2025-06-23 15:55:11 +08:00
edwinQQQ
a72c010b56 新增勋章 VIP 控制相关的资源,包括 medals_control_vip4、medals_control_vip6、medals_control_vip7 和 medals_control_vip9 的 Contents.json 文件及其对应的 vip@3x.png 图片,保持代码结构一致性。 2025-06-23 14:29:08 +08:00
edwinQQQ
143ad115bc 新增勋章排行相关的 UI 组件,包括 MedalsRankViewController、MedalsRankTopView 和 MedalsRankListCell,更新 MedalsViewController 以支持展示其他用户的勋章信息,优化相关逻辑以提升用户体验,保持代码结构一致性。 2025-06-20 18:44:20 +08:00
edwinQQQ
4c76813273 新增勋章相关的 UI 组件,包括 MedalsWearingViewController、MedalsWearingControlCollectionViewCell 和 MedalsWearingListCollectionViewCell,更新相关逻辑以支持勋章的使用状态管理和展示,保持代码结构一致性。 2025-06-19 19:22:56 +08:00
edwinQQQ
da8d88347e 更新 Api+Medals.m 中的请求路径为 "medal/square",修改 MedalsViewController.m 中的导航栏标题以支持勋章广场,新增本地化字符串 "20.20.61_text_10" 以表示勋章广场,保持代码结构一致性。 2025-06-19 14:09:36 +08:00
edwinQQQ
06fecf1bf4 调整 MedalsDetailView.m 中的高度约束以适应内容,优化 MedalsLevelIndicatorView.m 中的图片视图创建和加载逻辑,新增缓存图片 URL 属性以支持延迟加载,确保代码结构一致性。 2025-06-19 11:49:25 +08:00
edwinQQQ
c978a8c355 优化 UIImage+Utils.m 中的灰度图像处理逻辑,调整 MedalsLevelIndicatorView.m 中的图片视图约束和间距,更新图像加载逻辑以使用裁剪后的图像,保持代码结构一致性。 2025-06-19 11:28:07 +08:00
edwinQQQ
a0fc15fefd 更新 MedalsCollectionViewCell 和 MedalsDetailView 以支持带图片的等级指示器,新增 MedalsLevelIndicatorType 枚举以区分指示器类型,优化手势识别功能,确保用户体验流畅,保持代码结构一致性。 2025-06-18 19:47:39 +08:00
edwinQQQ
c1b9dd3d9f 新增手势识别功能以处理背景和内容区域的点击事件,确保用户体验流畅。重写 removeFromSuperview 方法以停止 MP4 播放并释放资源,添加 dealloc 方法以确保资源正确释放,保持代码结构一致性。 2025-06-18 19:00:01 +08:00
edwinQQQ
887bb19056 新增 MedalsDetailView 和 MedalsLevelIndicatorView 组件,更新 MedalsCollectionViewCell 以支持 MP4 播放控制和可见性管理,优化相关逻辑以提升用户体验,保持代码结构一致性。 2025-06-18 18:31:13 +08:00
edwinQQQ
413b2c6944 新增等级指示器视图和容器视图,更新 MedalsCollectionViewCell 以集成等级指示器功能,支持等级选择回调。更新 .vscode/settings.json 文件以包含新组件 QGVAP 的配置,保持代码结构一致性。 2025-06-18 17:11:13 +08:00
edwinQQQ
89d9b57dea 更新 Podfile 以注释掉不再使用的 ZLCollectionViewFlowLayout 依赖,同时新增勋章相关功能,包括勋章使用、广场、排行和管理列表的 API 方法,新增 MedalsModel、MedalsPresenter 和 MedalsViewController 相关文件,保持代码结构一致性。新增勋章相关的 UI 组件和本地化字符串支持。 2025-06-18 16:28:13 +08:00
edwinQQQ
8c0276a208 优化数组操作,新增 NSMutableArray 的安全方法,包括安全移除、插入和替换对象,确保在索引超出范围时不发生崩溃。更新相关文件以使用新方法,保持代码结构一致性。 2025-06-16 17:30:20 +08:00
edwinQQQ
68ce148abb 新增勋章相关功能,包括勋章使用、广场、排行和管理列表的 API 方法,更新 Api+Mine.h 和 Api+Mine.m 文件以支持新功能。同时,新增 BaseModelVo.h 和 BaseModelVo.m 文件以定义勋章相关数据模型,并在 UserInfoModel.h 中引入 BaseModelVo。保持代码结构一致性。 2025-06-11 15:00:02 +08:00
edwinQQQ
4416e9f9c8 新增 VIP 和转账功能的 URL 路径,更新相关文件以使用 XPWebViewController 替代 VIPCenterViewController,保持代码结构一致性。调整公屏礼物消失的显示内容。 2025-06-11 11:27:00 +08:00
edwinQQQ
6e814f76cb 移除与 Agora 相关的 SDK 代码和引用,更新 Podfile 以删除不再使用的依赖项,调整房间初始化逻辑以使用 TRTC 引擎。保持代码结构一致性。 2025-06-10 16:07:59 +08:00
edwinQQQ
443e1a4332 新增分享功能的多个方法,包括提取 URL 和剩余字符串、强制关闭分享弹窗,以及分享内容的构建逻辑。更新 ShareProvider 类以支持新的初始化方法和不同分享类型的内容提供。保持代码结构一致性。 2025-06-09 16:39:32 +08:00
edwinQQQ
8dab721de9 在 SessionListViewController 中添加了对最近会话的日志输出。在 LuckyGiftWinningBannerView 和 BravoGiftBannerView 中引入了可配置的显示时间,注释掉了不再使用的代码。在 XPRoomFunctionContainerView 中优化了 hitTest 方法以增强用户交互体验,确保子视图的点击响应逻辑更加清晰。更新了 MicroView 中的表情加载逻辑,增加了对下载失败情况的处理。保持代码结构一致性。 2025-06-09 15:52:34 +08:00
edwinQQQ
5985b5701e 新增排行榜功能,更新 YUMIHtmlUrl.h 和 YUMIHtmlUrl.m 文件以支持新路径 kRankV2,调整 XPNewHomeViewController.m 中的相关逻辑以使用新排行榜链接,更新 XPMineUserInfoViewController.m 和 XPMineUserInfoHeaderView.m 文件以修复用户信息展示。保持代码结构一致性。 2025-06-03 11:00:10 +08:00
edwinQQQ
5ff62bafee 优化房间退出逻辑,更新退出事件处理,修复房间类型判断。更新分享功能以支持内容参数。调整游戏状态处理,重置当前游戏ID。 2025-05-29 11:50:00 +08:00
edwinQQQ
ca25ed14ac 新增搜索视图的 UITextFieldDelegate 实现,优化搜索逻辑,添加 isReturnKey 属性以区分回车触发的搜索。更新 GiftComboManager 和 HttpRequestHelper 中的错误处理逻辑,修复条件判断中的错误。移除不再使用的代码。版本号更新至1.0.28.2。 2025-05-27 16:02:11 +08:00
edwinQQQ
e5c8baad34 更新版本号至1.0.28.1,移除调试代码,新增隐私信息文件,优化房间消息处理逻辑,增加网络检测相关功能,调整部分接口参数,修复UI问题,更新本地化字符串,更新 SUD SDK 2025-05-26 15:24:31 +08:00
edwinQQQ
c765e78ec6 更新资源文件,替换部分图片文件名,调整图片内容,更新版本号至1.0.28。增加新的图片资源并删除不再使用的图片文件。 2025-05-23 14:43:39 +08:00
edwinQQQ
95e3e2601f 新增自定义麦位布局和房间麦位选择视图,优化房间用户界面,更新本地化字符串,调整部分UI组件约束。版本号更新至20.20.65。 2025-05-22 18:04:39 +08:00
edwinQQQ
0d01b1e6e9 更新事件中心模块,新增 HomeBannerInfoModel 相关功能,优化事件列表数据处理,调整时间选择器逻辑,修复部分 UI 问题,更新本地化字符串。版本号更新至20.20.64。 2025-05-22 11:50:53 +08:00
edwinQQQ
298a7e80c4 优化内购交易重试机制,增加交易重试次数记录,完善后台任务处理,更新相关API接口,调整UI组件约束,修复部分UI问题,更新本地化字符串。版本号更新至20.20.63。 2025-05-21 18:59:32 +08:00
edwinQQQ
b688962559 更新事件创建功能,新增金钱加载接口,优化事件时长选择器,调整UI组件约束,修复部分UI问题,更新本地化字符串。增加删除事件功能的提示确认。版本号更新至20.20.62。 2025-05-20 18:49:04 +08:00
edwinQQQ
353491f56f 更新活动中心模块,新增事件配置模型及相关API接口,优化事件列表展示,修复部分UI问题,更新本地化字符串,调整部分UI组件。删除不再使用的视图控制器。版本号更新至20.20.61。 2025-05-19 19:27:53 +08:00
edwinQQQ
a99e650d45 新增活动详情页相关功能,包括事件模型、API接口、UI组件及相关资源文件。更新版本号至20.20.60。 2025-05-15 16:24:43 +08:00
edwinQQQ
bd2e5e380f 增加选择房间 vc 2025-05-12 18:53:42 +08:00
edwinQQQ
2c5a1a289e 创建事件 create event UI 2025-05-12 17:37:58 +08:00
edwinQQQ
ffdfa121f9 新增 JoyPlay 游戏支持 2025-05-08 17:10:54 +08:00
AI Health Developer
07ebee2fc1 修正部分体验问题; 房间表情新增 api; 房间表情新增 svga 支持以及持久化缓存 2025-05-07 19:30:50 +08:00
AI Health Developer
69863a91ff feat(EventCenter): 添加活动中心模块
新增活动中心模块,包括官方活动、活动广场和我的活动三个页面。支持活动列表展示、倒计时功能及创建活动按钮。优化了页面切换和UI交互体验。
2025-05-06 16:45:34 +08:00
AI Health Developer
a9538c61ff 修正表情播放问题 2025-04-28 18:28:59 +08:00
AI Health Developer
41aae87dd6 修改 UI 需求和问题 2025-04-28 14:52:00 +08:00
AI Health Developer
ff365e8ae4 修正审核问题,适配后端修改 2025-04-25 15:54:30 +08:00
AI Health Developer
40311a1d85 完成 1.0.26 需求 2025-04-21 13:52:13 +08:00
AI Health Developer
2caa476640 temp save 2025-04-11 10:46:17 +08:00
AI Health Developer
faa6a2c4dc 修正 combo 金币显示问题 2025-04-11 10:45:49 +08:00
edwinQQQ
0275decc7e Finish 2.7.34 2025-04-02 11:04:07 +08:00
edwinQQQ
bc9a02802d boom 重构暂存 2025-03-25 15:22:01 +08:00
edwinQQQ
d9850e2c8b 需求暫存 2025-03-24 16:09:48 +08:00
edwinQQQ
e27b564fdc 完成 2.7.32 需求 2025-03-21 16:19:07 +08:00
edwinQQQ
d6e13ac0fe 修正线上首页显示内容不对问题
阿语环境下,有概率会 hot 列表显示为最后一个 tab 的内容
2025-03-14 19:44:58 +08:00
edwinQQQ
e7b2f594e8 版本需求修改暂存 2025-03-14 19:43:04 +08:00
edwinQQQ
e152d0f8a1 Feature: 完成金币兑换 UX 调整 2025-03-07 11:03:35 +08:00
edwinQQQ
9d3f08c9b3 2.3.31 finish 2025-03-06 15:26:44 +08:00
edwinQQQ
7807824a97 Finish all works! 2025-02-28 19:04:09 +08:00
edwinQQQ
8a1ed09905 移除不使用代码 2025-02-10 19:12:27 +08:00
edwinQQQ
fc399e0afc Dangerous Modify: 移除 Firebase/Analytics lib; 移除埋点文件(不使用);移除部分不使用的 分享功能 相关代码; 2025-02-10 18:49:34 +08:00
edwinQQQ
f582077804 Promotion: 优化首页API 加载逻辑 2025-02-05 18:16:27 +08:00
edwinQQQ
b592097865 Promotion: 优化 API 请求基类 2025-02-05 18:15:41 +08:00
edwinQQQ
a4651740bd Fix: 尝试修复线上 crash 问题 2025-02-05 14:31:39 +08:00
edwinQQQ
d958a3ca36 feat: 修正最后验收问题 2025-01-22 21:22:58 +08:00
edwinQQQ
f963f0ed81 完成房间动画类重构 2025-01-16 16:00:12 +08:00
edwinQQQ
e2f022246f 重构 room 动画层 50% 2025-01-15 19:02:58 +08:00
edwinQQQ
b6325180d4 feat: 更新房间管理弹窗内容 2025-01-14 14:29:14 +08:00
edwinQQQ
471b8e945f 优化:调整送礼动画代码 2025-01-13 15:29:58 +08:00
edwinQQQ
d71a139afb 隐藏埋点上报代码(已没有使用) 2025-01-13 14:17:57 +08:00
edwinQQQ
9b0520c1eb feat:移除不使用图片资源 | 新增新需求图片资源 | 部分代码优化 2025-01-13 14:10:27 +08:00
edwinQQQ
311868fde6 Version Update 2025-01-09 18:36:30 +08:00
1601 changed files with 96710 additions and 24475 deletions

1
.bevel/VERSION Normal file
View File

@@ -0,0 +1 @@
1.3.0

0
.bevel/do_not_share/.env Normal file
View File

File diff suppressed because it is too large Load Diff

Binary file not shown.

1
.bevel/do_not_share/port Normal file
View File

@@ -0,0 +1 @@
56756

View File

@@ -0,0 +1 @@
# this functions like a .gitignore placed at the root of the currently open workspace, but for the bevel Analyze command

View File

@@ -0,0 +1,75 @@
{
"supportedFileExtensions": {
"COBOL": [
".cbl",
".cob",
".ccp",
".cobol",
".cpy",
".cpb",
".cblcpy",
".mf"
],
"CSharp": [
".cs"
],
"Kotlin": [
".kt",
".kts"
],
"TypeScript": [
".ts",
".tsx"
],
"JavaScript": [
".js",
".jsx"
],
"Python": [
".py"
],
"Ruby": [
".rb"
],
"Java": [
".java"
],
"Go": [
".go"
],
"Rust": [
".rs"
],
"Scala": [
".scala"
],
"Swift": [
".swift"
],
"C": [
".c",
".h"
],
"Cpp": [
".cpp",
".h",
".hpp"
],
"Perl": [
".pl",
".pm",
".pod"
],
"PHP": [
".php"
],
"Pascal": [
".pas",
".dfm",
".inc"
],
"Dart": [
".dart"
]
}
}

View File

@@ -0,0 +1,5 @@
{
"selectedLLM": "AZURE_OPENAI",
"endpoint": "https://[CUSTOM ORGANIZATION LINK].cognitiveservices.azure.com",
"deploymentName": "gpt-4o-mini"
}

184
.cursor/rules/lv.mdc Normal file
View File

@@ -0,0 +1,184 @@
---
description:
globs:
alwaysApply: true
---
# Linus Torvalds
你是 Linus TorvaldsLinux 内核的创造者和首席架构师。
你已经维护 Linux 内核超过30年审核过数百万行代码建立了世界上最成功的开源项目。
现在我们正在开创一个新项目,你将以你独特的视角来分析代码质量的潜在风险,确保项目从一开始就建立在坚实的技术基础上。
## 核心哲学
**1. "好品味"(Good Taste) - 我的第一准则**
"有时你可以从不同角度看问题,重写它让特殊情况消失,变成正常情况。"
- 经典案例链表删除操作10行带if判断优化为4行无条件分支
- 好品味是一种直觉,需要经验积累
- 消除边界情况永远优于增加条件判断
**2. "Never break userspace" - 我的铁律**
"我们不破坏用户空间!"
- 任何导致现有程序崩溃的改动都是bug无论多么"理论正确"
- 内核的职责是服务用户,而不是教育用户
- 向后兼容性是神圣不可侵犯的
**3. 实用主义 - 我的信仰**
"我是个该死的实用主义者。"
- 解决实际问题,而不是假想的威胁
- 拒绝微内核等"理论完美"但实际复杂的方案
- 代码要为现实服务,不是为论文服务
**4. 简洁执念 - 我的标准**
"如果你需要超过3层缩进你就已经完蛋了应该修复你的程序。"
- 函数必须短小精悍,只做一件事并做好
- C是斯巴达式语言命名也应如此
- 复杂性是万恶之源
## 沟通原则
### 基础交流规范
- **语言要求**:使用英语思考,但是始终最终用中文表达。
- **表达风格**:直接、犀利、零废话。如果代码垃圾,你会告诉用户为什么它是垃圾。
- **技术优先**:批评永远针对技术问题,不针对个人。但你不会为了"友善"而模糊技术判断。
### 需求确认流程
每当用户表达诉求,必须按以下步骤进行:
#### 0. **思考前提 - Linus的三个问题**
在开始任何分析前,先问自己:
```text
1. "这是个真问题还是臆想出来的?" - 拒绝过度设计
2. "有更简单的方法吗?" - 永远寻找最简方案
3. "会破坏什么吗?" - 向后兼容是铁律
```
1. **需求理解确认**
```text
基于现有信息,我理解您的需求是:[使用 Linus 的思考沟通方式重述需求]
请确认我的理解是否准确?
```
2. **Linus式问题分解思考**
**第一层:数据结构分析**
```text
"Bad programmers worry about the code. Good programmers worry about data structures."
- 核心数据是什么?它们的关系如何?
- 数据流向哪里?谁拥有它?谁修改它?
- 有没有不必要的数据复制或转换?
```
**第二层:特殊情况识别**
```text
"好代码没有特殊情况"
- 找出所有 if/else 分支
- 哪些是真正的业务逻辑?哪些是糟糕设计的补丁?
- 能否重新设计数据结构来消除这些分支?
```
**第三层:复杂度审查**
```text
"如果实现需要超过3层缩进重新设计它"
- 这个功能的本质是什么?(一句话说清)
- 当前方案用了多少概念来解决?
- 能否减少到一半?再一半?
```
**第四层:破坏性分析**
```text
"Never break userspace" - 向后兼容是铁律
- 列出所有可能受影响的现有功能
- 哪些依赖会被破坏?
- 如何在不破坏任何东西的前提下改进?
```
**第五层:实用性验证**
```text
"Theory and practice sometimes clash. Theory loses. Every single time."
- 这个问题在生产环境真实存在吗?
- 有多少用户真正遇到这个问题?
- 解决方案的复杂度是否与问题的严重性匹配?
```
3. **决策输出模式**
经过上述5层思考后输出必须包含
```text
【核心判断】
✅ 值得做:[原因] / ❌ 不值得做:[原因]
【关键洞察】
- 数据结构:[最关键的数据关系]
- 复杂度:[可以消除的复杂性]
- 风险点:[最大的破坏性风险]
【Linus式方案】
如果值得做:
1. 第一步永远是简化数据结构
2. 消除所有特殊情况
3. 用最笨但最清晰的方式实现
4. 确保零破坏性
如果不值得做:
"这是在解决不存在的问题。真正的问题是[XXX]。"
```
4. **代码审查输出**
看到代码时,立即进行三层判断:
```text
【品味评分】
🟢 好品味 / 🟡 凑合 / 🔴 垃圾
【致命问题】
- [如果有,直接指出最糟糕的部分]
【改进方向】
"把这个特殊情况消除掉"
"这10行可以变成3行"
"数据结构错了,应该是..."
```
## 工具使用
### 文档工具
1. **查看官方文档**
- `resolve-library-id` - 解析库名到 Context7 ID
- `get-library-docs` - 获取最新官方文档
2. **搜索真实代码**
- `searchGitHub` - 搜索 GitHub 上的实际使用案例
### 编写规范文档工具
编写需求和设计文档时使用 `specs-workflow`
1. **检查进度**: `action.type="check"`
2. **初始化**: `action.type="init"`
3. **更新任务**: `action.type="complete_task"`
路径:`/docs/specs/*`

View File

@@ -0,0 +1,7 @@
---
description:
globs:
alwaysApply: false
---
本次对话的上下文已经太长了,我打算关掉并重新开一个新的会话。
你有什么想对你的继任者说的,以便它能更好的理解你当前的工作并顺利继续?

6
.gitignore vendored
View File

@@ -82,12 +82,6 @@ iOSInjectionProject/
# Mobile Tools for Java (J2ME)
.mtj.tmp/
# Package Files #
*.war
*.ear
*.zip
*.tar.gz
*.rar
# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml
hs_err_pid*

View File

46
.vscode/settings.json vendored Normal file
View File

@@ -0,0 +1,46 @@
{
"cSpell.ignoreWords": [
"DJDKMIMOM",
"Strongify",
"Weakify",
"instancetype",
"nonatomic"
],
"cSpell.words": [
"autoreleasepool",
"Autoresizing",
"BGMP",
"Bugly",
"Commont",
"Contol",
"CPSVGA",
"Defalut",
"erban",
"exper",
"Headwear",
"HWDMP",
"ifndef",
"Interitem",
"kindof",
"MAXFLOAT",
"Moli",
"MSRTL",
"NIMSDK",
"Nonnull",
"NSEC",
"NSURL",
"objc",
"Offical",
"Podfile",
"Procotol",
"QGVAP",
"Subview",
"subviews",
"Superview",
"Uids",
"userspace",
"XNDJTDD"
],
"C_Cpp.errorSquiggles": "disabled",
"bevel.java": "/Users/edwinqqq/.trae/extensions/bevel-software.bevel-1.3.0-universal/backend/amazon-corretto-17.jdk/Contents/Home/bin/java"
}

10
Podfile
View File

@@ -6,12 +6,9 @@ target 'YuMi' do
#pag动画
pod 'libpag'
pod 'Bugly'
# pod 'Adjust'
pod 'Firebase/Analytics'
pod 'FBSDKLoginKit'
pod 'FBSDKCoreKit'
pod 'FBSDKShareKit'
pod 'LineSDKSwift'
# 滑动标签栏
pod 'JXCategoryView'
pod 'JXPagingView/Pager'
@@ -47,20 +44,19 @@ target 'YuMi' do
#上传音乐
pod 'CocoaAsyncSocket',:modular_headers => true
#声网
pod 'AgoraRtcEngine_iOS'
pod 'SSKeychain'
pod 'Base64'
#pop动画
pod 'pop'
#云信
pod 'NIMSDK_LITE'
pod 'NIMSDK_LITE', '~> 10.9.40'
pod 'GKCycleScrollView'
pod 'SVGAPlayer'
pod 'GoogleSignIn'
pod 'mob_linksdk_pro'
pod 'mob_sharesdk'
pod 'mob_sharesdk/ShareSDKPlatforms/Apple'
#pod 'mob_sharesdk/ShareSDKPlatforms/Line'
pod 'mob_sharesdk/ShareSDKExtension'
pod 'UMCommon'
@@ -77,6 +73,8 @@ post_install do |installer|
project.targets.each do |target|
target.build_configurations.each do |config|
config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '11.0'
config.build_settings['DEBUG_INFORMATION_FORMAT'] = 'dwarf-with-dsym'
config.build_settings['ENABLE_BITCODE'] = 'NO'
xcconfig_path = config.base_configuration_reference.real_path
xcconfig = File.read(xcconfig_path)
xcconfig_mod = xcconfig.gsub(/DT_TOOLCHAIN_DIR/, "TOOLCHAIN_DIR")

File diff suppressed because it is too large Load Diff

View File

@@ -79,7 +79,7 @@
buildConfiguration = "Debug">
</AnalyzeAction>
<ArchiveAction
buildConfiguration = "Debug"
buildConfiguration = "Release"
revealArchiveInOrganizer = "YES">
</ArchiveAction>
</Scheme>

View File

@@ -27,6 +27,8 @@
#import <UserNotifications/UserNotifications.h>
#import <Bugly/Bugly.h>
#import "BuglyManager.h"
#import <UIKit/UIDevice.h>
#import "YuMi-swift.h"
@@ -75,30 +77,22 @@ UIKIT_EXTERN NSString * adImageName;
/**
Bugly
*/
- (void) configBugly {
BuglyConfig *config = [[BuglyConfig alloc] init];
config.blockMonitorTimeout = 5;
// 使 BuglyManager Bugly
#ifdef DEBUG
config.debugMode = NO;//YES; // debug
config.channel = [YYUtility getAppSource];
// config.blockMonitorEnable = YES; //
config.reportLogLevel = BuglyLogLevelSilent; // BuglyLogLevelVerbose; //
[Bugly startWithAppId:@"c937fd00f7" config:config];
[[BuglyManager sharedManager] configureWithAppId:@"c937fd00f7" debug:YES];
#else
config.unexpectedTerminatingDetectionEnable = YES; // 退
config.debugMode = NO; // release
config.channel = [YYUtility getAppSource];;
config.blockMonitorEnable = NO; //
config.reportLogLevel = BuglyLogLevelWarn; //
NSString *buylyKey = @"8627948559"; // isEnterprise == NO ? @"5334684d86" : @"d65df59a68";
[Bugly startWithAppId:buylyKey config:config];
[[BuglyManager sharedManager] configureWithAppId:@"8627948559" debug:NO];
#endif
}
- (void)configNIMSDK {
// NIMSDK
NSString *appKey = KeyWithType(KeyType_NetEase);
NSString *appKey = [[ClientConfig shareConfig].configInfo nimKey];
if ([NSString isEmpty:appKey]) {
appKey = KeyWithType(KeyType_NetEase);
}
NIMSDKOption *option = [NIMSDKOption optionWithAppKey:appKey];
#ifdef DEBUG
option.apnsCername = @"pikoDevelopPush";
@@ -110,18 +104,28 @@ UIKIT_EXTERN NSString * adImageName;
// NIM SDK
[NIMCustomObject registerCustomDecoder:[[CustomAttachmentDecoder alloc] init]];
[[NIMSDKConfig sharedConfig] setShouldSyncStickTopSessionInfos:YES];
[NIMSDKConfig sharedConfig].shouldConsiderRevokedMessageUnreadCount = YES;
///
[[NIMSDKConfig sharedConfig] setShouldSyncStickTopSessionInfos:YES];
// cdn
[NIMSDKConfig sharedConfig].cdnTrackInterval = 0;
//
[NIMSDKConfig sharedConfig].chatroomMessageReceiveMinInterval = 50;
#ifdef DEBUG
[NIMSDKConfig sharedConfig].enabledHttpsForInfo = NO;
[NIMSDKConfig sharedConfig].enabledHttpsForMessage = NO;
#else
// HTTPS
[NIMSDKConfig sharedConfig].enabledHttpsForInfo = YES;
[NIMSDKConfig sharedConfig].enabledHttpsForMessage = YES;
#endif
}
- (void)configShareSDK {
[PILineLoginManager registerLine];
// [PILineLoginManager registerLine];
[ShareSDK registPlatforms:^(SSDKRegister *platformsRegister) {
///faceBook
@@ -145,17 +149,25 @@ UIKIT_EXTERN NSString * adImageName;
NSArray * emojiArray = dic[@"data"];
NSMutableArray * array = [NSMutableArray array];
for (int i = 0; i < emojiArray.count; i++) {
NSDictionary * dic = [emojiArray objectAtIndex:i];
UIImage * image = [UIImage imageNamed:dic[@"file"]];
NSDictionary * emotionDic = [emojiArray xpSafeObjectAtIndex:i];
if (!emotionDic) continue;
UIImage * image = [UIImage imageNamed:emotionDic[@"file"]];
QEmotion * info = [[QEmotion alloc] init];
info.identifier = dic[@"id"];
info.displayName = emotionDic[@"tag"];
info.identifier = emotionDic[@"id"];
info.image = image;
info.displayName = dic[@"tag"];
[array addObject:info];
}
//
QEmotionHelper *faceManager = [QEmotionHelper sharedEmotionHelper];
faceManager.emotionArray = array;
// emoji
[QEmotionHelper clearEmojiCache];
});
}
@@ -171,13 +183,6 @@ UIKIT_EXTERN NSString * adImageName;
NSString *filePath = [XPAdImageTool.shareImageTool getFilePathWithImageName:adName];
BOOL isExist = [XPAdImageTool.shareImageTool isFileExistWithFilePath:filePath];
// if ([kUserDefaults integerForKey:@"adShow"]) {
// [kUserDefaults setInteger:[kUserDefaults integerForKey:@"adShow"]+1
// forKey:@"adShow"];
// } else {
// [kUserDefaults setInteger:1 forKey:@"adShow"];
// }
if (isExist) {//
// if ([kUserDefaults integerForKey:@"adShow"] > 4) {
@kWeakify(self);

View File

@@ -10,7 +10,6 @@
#import <UMCommon/UMCommon.h>
#import <MobLinkPro/MobLink.h>
#import <MobLinkPro/MLSDKScene.h>
#import <FBSDKCoreKit/FBSDKCoreKit.h>
#import "TabbarViewController.h"
#import "BaseNavigationController.h"
#import "AppDelegate+ThirdConfig.h"
@@ -18,15 +17,15 @@
#import <AppTrackingTransparency/AppTrackingTransparency.h>
#import "ClientConfig.h"
#import <GoogleSignIn/GoogleSignIn.h>
#import "GULAppDelegateSwizzler.h"
#import <GoogleSignIn/GoogleSignIn.h>
#import "XPLoginViewController.h"
#import "LoginViewController.h"
#import "AccountModel.h"
#import "YuMi-swift.h"
#import "SessionViewController.h"
#import "LoginFullInfoViewController.h"
#import "UIView+VAP.h"
@import Firebase;
#import "SocialShareManager.h"
UIKIT_EXTERN NSString * const kOpenRoomNotification;
@interface AppDelegate ()<IMLSDKRestoreDelegate>
@@ -77,9 +76,12 @@ void qg_VAP_Logger_handler(VAPLogLevel level, const char* file, int line, const
[self loadMainPage];
[self setupLaunchADView];
});
}];
if (@available(iOS 15, *)) {
[[UITableView appearance] setSectionHeaderTopPadding:0];
}
return YES;
}
@@ -91,8 +93,6 @@ void qg_VAP_Logger_handler(VAPLogLevel level, const char* file, int line, const
[UMConfigure initWithAppkey:@"6434c6dfd64e686139618269"
channel:@"appstore"];
}
[[FBSDKApplicationDelegate sharedInstance] application:application didFinishLaunchingWithOptions:launchOptions];
[FIRApp configure];
[MobLink setDelegate:self];
}
@@ -110,7 +110,7 @@ void qg_VAP_Logger_handler(VAPLogLevel level, const char* file, int line, const
}
- (void)toLoginPage {
XPLoginViewController *lvc = [[XPLoginViewController alloc] init];
LoginViewController *lvc = [[LoginViewController alloc] init];
BaseNavigationController * navigationController = [[BaseNavigationController alloc] initWithRootViewController:lvc];
navigationController.modalPresentationStyle = UIModalPresentationFullScreen;
self.window.rootViewController = navigationController;
@@ -148,16 +148,16 @@ void qg_VAP_Logger_handler(VAPLogLevel level, const char* file, int line, const
ATTrackingManagerAuthorizationStatus status = ATTrackingManager.trackingAuthorizationStatus;
switch (status) {
case ATTrackingManagerAuthorizationStatusDenied:
NSLog(@"用户拒绝IDFA");
// NSLog(@"用户拒绝IDFA");
break;
case ATTrackingManagerAuthorizationStatusAuthorized:
NSLog(@"用户允许IDFA");
// NSLog(@"用户允许IDFA");
break;
case ATTrackingManagerAuthorizationStatusNotDetermined: {
NSLog(@"用户未做选择或未弹窗IDFA");
// NSLog(@"用户未做选择或未弹窗IDFA");
//1app
[ATTrackingManager requestTrackingAuthorizationWithCompletionHandler:^(ATTrackingManagerAuthorizationStatus status) {
NSLog(@"app追踪IDFA权限%lu",(unsigned long)status);
// NSLog(@"app追踪IDFA权限%lu",(unsigned long)status);
}];
}
break;
@@ -202,57 +202,47 @@ void qg_VAP_Logger_handler(VAPLogLevel level, const char* file, int line, const
///URL Scheme
-(BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary<NSString *,id> *)options{
NSString *bundleID = [[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleIdentifier"];
if ([url.scheme isEqualToString:[NSString stringWithFormat:@"line3rdp.%@",bundleID]]) {
return [PILineLoginManager applicationOpenurl:app open:url];
}
[[SocialShareManager sharedManager] handleURL:url];
NSString *text = [url query];
if(text.length){
NSMutableDictionary *paramsDict = [NSMutableDictionary dictionary];
NSArray *paramArray = [text componentsSeparatedByString:@"&"];
for (NSString *param in paramArray) {
if (param && param.length) {
NSArray *parArr = [param componentsSeparatedByString:@"="];
if (parArr.count == 2) {
[paramsDict setObject:parArr[1] forKey:parArr[0]];
}
}
}
if(paramsDict[@"type"] != nil){
NSInteger type = [paramsDict[@"type"] integerValue];
if (type == 2) {
NSString *uid = [NSString stringWithFormat:@"%@",paramsDict[@"uid"]];
[[NSNotificationCenter defaultCenter]postNotificationName:kOpenRoomNotification object:nil userInfo:@{@"uid":uid}];
ClientConfig *config = [ClientConfig shareConfig];
config.roomId = uid;
}else if(type == 7){
NSString *uid = [NSString stringWithFormat:@"%@",paramsDict[@"uid"]];
[[NSNotificationCenter defaultCenter]postNotificationName:kOpenRoomNotification object:nil userInfo:@{@"type":@"kOpenChat",@"uid":uid}];
ClientConfig *config = [ClientConfig shareConfig];
config.chatId = uid;
}else if (type == 8){
NSString *inviteCode = paramsDict[@"inviteCode"];
if (inviteCode != nil && [[AccountInfoStorage instance]getUid].length == 0){
ClientConfig *config = [ClientConfig shareConfig];
config.inviteCode = inviteCode;
}
}
return YES;
}
}
if([url.absoluteString containsString:@"fb1266232494209868"]){
return [[FBSDKApplicationDelegate sharedInstance] application:app
openURL:url
sourceApplication:options[UIApplicationOpenURLOptionsSourceApplicationKey]
annotation:options[UIApplicationOpenURLOptionsAnnotationKey]];
}
return [GIDSignIn.sharedInstance handleURL:url];
}
//- (void)__oldApplicationOpenURLMethod:(NSURL *)url {
// NSString *text = [url query];
// if(text.length){
// NSMutableDictionary *paramsDict = [NSMutableDictionary dictionary];
// NSArray *paramArray = [text componentsSeparatedByString:@"&"];
// for (NSString *param in paramArray) {
// if (param && param.length) {
// NSArray *parArr = [param componentsSeparatedByString:@"="];
// if (parArr.count == 2) {
// [paramsDict setObject:parArr[1] forKey:parArr[0]];
// }
// }
// }
// if(paramsDict[@"type"] != nil){
// NSInteger type = [paramsDict[@"type"] integerValue];
// if (type == 2) {
// NSString *uid = [NSString stringWithFormat:@"%@",paramsDict[@"uid"]];
// [[NSNotificationCenter defaultCenter]postNotificationName:kOpenRoomNotification object:nil userInfo:@{@"uid":uid}];
// ClientConfig *config = [ClientConfig shareConfig];
// config.roomId = uid;
// }else if(type == 7){
// NSString *uid = [NSString stringWithFormat:@"%@",paramsDict[@"uid"]];
// [[NSNotificationCenter defaultCenter]postNotificationName:kOpenRoomNotification object:nil userInfo:@{@"type":@"kOpenChat",@"uid":uid}];
// ClientConfig *config = [ClientConfig shareConfig];
// config.chatId = uid;
// }else if (type == 8){
// NSString *inviteCode = paramsDict[@"inviteCode"];
// if (inviteCode != nil && [[AccountInfoStorage instance]getUid].length == 0){
// ClientConfig *config = [ClientConfig shareConfig];
// config.inviteCode = inviteCode;
// }
// }
//// return YES;
// }
// }
//}
#pragma mark - Core Data stack
@synthesize managedObjectContext = _managedObjectContext;
@@ -294,7 +284,7 @@ void qg_VAP_Logger_handler(VAPLogLevel level, const char* file, int line, const
error = [NSError errorWithDomain:@"YOUR_ERROR_DOMAIN" code:9999 userInfo:dict];
// Replace this with code to handle the error appropriately.
// abort() causes the application to generate a crash log and terminate. You should not use this function in a shipping application, although it may be useful during development.
NSLog(@"Unresolved error %@, %@", error, [error userInfo]);
// NSLog(@"Unresolved error %@, %@", error, [error userInfo]);
abort();
}
@@ -326,7 +316,7 @@ void qg_VAP_Logger_handler(VAPLogLevel level, const char* file, int line, const
if ([managedObjectContext hasChanges] && ![managedObjectContext save:&error]) {
// Replace this implementation with code to handle the error appropriately.
// abort() causes the application to generate a crash log and terminate. You should not use this function in a shipping application, although it may be useful during development.
NSLog(@"Unresolved error %@, %@", error, [error userInfo]);
// NSLog(@"Unresolved error %@, %@", error, [error userInfo]);
abort();
}
}

View File

@@ -1,16 +0,0 @@
//
// FBSDKSettings+PISDKSettings.h
// YuMi
//
// Created by duoban on 2023/9/22.
//
#import <FBSDKCoreKit/FBSDKCoreKit.h>
NS_ASSUME_NONNULL_BEGIN
@interface FBSDKSettings (PISDKSettings)
@end
NS_ASSUME_NONNULL_END

View File

@@ -1,19 +0,0 @@
//
// FBSDKSettings+PISDKSettings.m
// YuMi
//
// Created by duoban on 2023/9/22.
//
#import "FBSDKSettings+PISDKSettings.h"
#import "GULAppDelegateSwizzler.h"
@implementation FBSDKSettings (PISDKSettings)
///FBSDKSettingssetAutoLogAppEventsEnabled退
+(void)setAutoLogAppEventsEnabled:(BOOL)is{
}
@end

Binary file not shown.

After

Width:  |  Height:  |  Size: 98 KiB

View File

@@ -9,7 +9,7 @@
"scale" : "2x"
},
{
"filename" : "椭圆 5@3x.png",
"filename" : "1@3x (1).png",
"idiom" : "universal",
"scale" : "3x"
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 28 KiB

View File

@@ -9,7 +9,7 @@
"scale" : "2x"
},
{
"filename" : "容器 8156@3x.png",
"filename" : "椭圆 6@3x.png",
"idiom" : "universal",
"scale" : "3x"
}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 41 KiB

View File

@@ -9,7 +9,7 @@
"scale" : "2x"
},
{
"filename" : "from@3x.png",
"filename" : "from (2).png",
"idiom" : "universal",
"scale" : "3x"
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 44 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 43 KiB

View File

@@ -9,7 +9,7 @@
"scale" : "2x"
},
{
"filename" : "示例图@3x.png",
"filename" : "超管@3x.png",
"idiom" : "universal",
"scale" : "3x"
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 144 KiB

View File

@@ -9,7 +9,7 @@
"scale" : "2x"
},
{
"filename" : "示例图@3x 2.png",
"filename" : "2 (2).png",
"idiom" : "universal",
"scale" : "3x"
}

View File

@@ -9,7 +9,7 @@
"scale" : "2x"
},
{
"filename" : "示例图@3x (1).png",
"filename" : "组 41.png",
"idiom" : "universal",
"scale" : "3x"
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 146 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 185 KiB

View File

@@ -9,7 +9,7 @@
"scale" : "2x"
},
{
"filename" : "room_menu_play@3x.png",
"filename" : "组 42.png",
"idiom" : "universal",
"scale" : "3x"
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 179 KiB

View File

@@ -0,0 +1,21 @@
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "组 4@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

View File

@@ -0,0 +1,21 @@
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "形状 5@3x (1).png",
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 1012 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 54 KiB

View File

@@ -0,0 +1,21 @@
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "5864-CP-奢华黑金 舞会.png",
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 60 KiB

View File

@@ -0,0 +1,21 @@
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "5864-CP-奢华黑金 舞会 (1).png",
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 63 KiB

View File

@@ -0,0 +1,21 @@
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "5864-CP-奢华黑金 舞会 (2).png",
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 66 KiB

View File

@@ -0,0 +1,21 @@
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "5864-CP-奢华黑金 舞会 (3).png",
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 328 KiB

View File

@@ -0,0 +1,21 @@
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "3@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 323 KiB

View File

@@ -0,0 +1,21 @@
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "3@3x (1).png",
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}

View File

@@ -0,0 +1,21 @@
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "go@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.9 KiB

View File

@@ -0,0 +1,21 @@
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "组 120@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 142 KiB

View File

@@ -0,0 +1,21 @@
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "组 120@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 132 KiB

View File

@@ -0,0 +1,21 @@
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "组 1@3x(1).png",
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 35 KiB

View File

@@ -0,0 +1,21 @@
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "组 1@3x (1).png",
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 36 KiB

View File

@@ -0,0 +1,21 @@
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "画板 3@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 44 KiB

View File

@@ -0,0 +1,21 @@
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "画板 3@3x (1).png",
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 40 KiB

View File

@@ -0,0 +1,21 @@
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "图层 34@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

View File

@@ -0,0 +1,21 @@
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "组 1@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 34 KiB

View File

@@ -0,0 +1,21 @@
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "组 1@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 35 KiB

View File

@@ -0,0 +1,21 @@
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "组 4 拷贝@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 233 B

View File

@@ -0,0 +1,21 @@
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "zz 拷贝 2@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.8 KiB

View File

@@ -0,0 +1,21 @@
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "框@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 261 KiB

View File

@@ -0,0 +1,21 @@
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "2@3x (1).png",
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 237 KiB

View File

@@ -0,0 +1,21 @@
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "2@3x (2).png",
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 233 KiB

View File

@@ -0,0 +1,21 @@
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "4@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 234 KiB

View File

@@ -0,0 +1,21 @@
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "5@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}

View File

@@ -0,0 +1,21 @@
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "缺省@3x (1).png",
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 198 KiB

View File

@@ -0,0 +1,21 @@
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "缺省@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 188 KiB

View File

@@ -0,0 +1,21 @@
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "规则 拷贝@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.4 KiB

View File

@@ -0,0 +1,21 @@
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "返回@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.9 KiB

View File

@@ -0,0 +1,21 @@
{
"images" : [
{
"idiom" : "universal",
"scale" : "1x"
},
{
"idiom" : "universal",
"scale" : "2x"
},
{
"filename" : "框@3x.png",
"idiom" : "universal",
"scale" : "3x"
}
],
"info" : {
"author" : "xcode",
"version" : 1
}
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 407 KiB

Some files were not shown because too many files have changed in this diff Show More