import 'package:flutter/material.dart'; import 'package:yumi/app/config/strategies/base_business_logic_strategy.dart'; import 'package:yumi/app_localizations.dart'; import 'package:yumi/shared/tools/sc_dialog_utils.dart'; import 'package:yumi/ui_kit/theme/socialchat_theme.dart'; import '../../../modules/home/popular/event/home_event_page.dart'; import '../../../modules/home/popular/mine/sc_home_mine_page.dart'; import '../../../modules/home/popular/party/sc_home_party_page.dart'; /// 马甲包业务逻辑策略实现 /// 提供与原始应用不同的业务逻辑 class Variant1BusinessLogicStrategy extends BaseBusinessLogicStrategy { /// 马甲包版本:调整Tab顺序,家族放在最后 @override List getHomeTabPages(BuildContext context) { final List pages = []; pages.add(SCHomePartyPage()); pages.add(SCHomeMinePage()); // pages.add(HomeEventPage()); return pages; } @override List getHomeTabLabels(BuildContext context) { final List tabs = []; tabs.add(Tab(text: SCAppLocalizations.of(context)!.party)); tabs.add(Tab(text: SCAppLocalizations.of(context)!.me)); // 马甲包:家族标签放在最后 // tabs.add(Tab(text: SCAppLocalizations.of(context)!.event)); return tabs; } @override int getHomeInitialTabIndex() { // 马甲包:从探索页开始 return 0; // explore页 } /// 马甲包版本:不同的首充提示位置 @override Map getFirstRechargePosition() { // 马甲包:调整到左上角,提供完整的四个键值对 return {'top': 100.0, 'start': 15.0, 'bottom': null, 'end': null}; } /// 马甲包版本:增强的首充提示点击处理 @override void onFirstRechargeTap(BuildContext context) { // 马甲包:显示更详细的首充对话框 SCDialogUtils.showFirstRechargeDialog(context); // 额外逻辑:记录点击事件或触发其他行为 debugPrint('马甲包首充提示被点击'); } /// === 登录页面差异化方法实现(马甲包专属样式)=== @override String getLoginBackgroundImage() { // 马甲包专属背景图片 // TODO: 根据Figma设计添加马甲包专属背景图片 return "sc_images/splash/sc_splash.png"; } @override String getLoginAppIcon() { // 马甲包专属应用图标 // TODO: 根据Figma设计添加马甲包专属图标 return "sc_images/splash/sc_icon_splash_icon.png"; } @override Color getLoginButtonColor() { // 马甲包按钮颜色 - 使用主题色 return const Color(0xffFF5722); // SocialChatTheme.primaryColor } @override List? getLoginButtonGradient() { // 马甲包按钮渐变:从Figma设计中提取的橙色渐变 return [ const Color(0xffB4FCCE), // rgb(254, 178, 25) const Color(0xff5AF492), // rgb(254, 178, 25) const Color(0xff077142), // rgb(255, 147, 38) ]; } @override Color getLoginButtonTextColor() { // 马甲包按钮文本颜色(白色,与渐变背景形成对比) return Colors.white; } @override Color getLoginLabelTextColor() { // 马甲包标签文本颜色(黑色) return Colors.white; } @override BoxDecoration getLoginInputDecoration() { // 马甲包输入框装饰:浅灰色背景,圆形边框 return BoxDecoration( color: Colors.white24, // #f2f2f2 borderRadius: BorderRadius.circular(12), // 56px圆角 border: Border.all(color: Colors.transparent, width: 0), ); } @override EdgeInsets getLoginPagePadding() { // 马甲包页面内边距:根据Figma设计调整 return const EdgeInsets.only(top: 120); // 顶部319px间距 } @override bool shouldShowLoginStatusBar() { // 马甲包:显示黑色状态栏 return true; } @override Color getLoginHintTextColor() { // 马甲包:提示文本颜色(黑色45%透明度) return Colors.white; } @override Color getLoginInputTextColor() { // 马甲包:输入文本颜色(黑色) return Colors.white; } /// === 家族页面差异化方法实现(马甲包专属) === @override bool shouldShowPasswordRoomIcon() { // 马甲包策略:不显示密码房间图标,简化UI return false; } /// === 探索页面差异化方法实现(马甲包专属) === @override int getExploreRoomDisplayThreshold() { // 马甲包策略:显示更多房间在抽屉上方,减少抽屉使用 return 9; } @override String getExploreGridIcon() { // 马甲包策略:使用马甲包专属网格视图图标 // TODO: 根据Figma设计添加马甲包专属图标 return "sc_images/index/sc_icon_index_room_model_1.png"; } @override String getExploreListIcon() { // 马甲包策略:使用马甲包专属列表视图图标 // TODO: 根据Figma设计添加马甲包专属图标 return "sc_images/index/sc_icon_index_room_model_2.png"; } @override String getExploreRankIconPattern(bool isGrid, int rank) { // 马甲包策略:使用统一的排名图标,不区分网格/列表视图 // TODO: 根据Figma设计添加马甲包专属排名图标 if (isGrid) { return "sc_images/index/sc_icon_explore_room_model_1_rank_$rank.png"; } else { return "sc_images/index/sc_icon_explore_room_model_2_rank_$rank.png"; } } @override Color getExploreRoomBorderColor() { // 马甲包策略:使用马甲包主题色作为边框颜色 return SocialChatTheme.primaryLight; // 马甲包主题色 } @override double getExploreRoomBorderWidth() { // 马甲包策略:更细的边框,更简洁的UI return 1.0; } @override int getExploreDrawerGridCrossAxisCount() { // 马甲包策略:4列网格,更紧凑的布局 return 4; } @override int getExploreRoomNameMarqueeThreshold() { // 马甲包策略:更长的房间名称才显示滚动效果,减少不必要的动画 return 15; } @override int getExploreRoomDescMarqueeThreshold() { // 马甲包策略:更长的房间描述才显示滚动效果 return 18; } /// === 个人主页差异化方法实现(马甲包专属) === @override String getMePageDefaultBackgroundImage() { // 马甲包策略:使用马甲包专属默认背景图片 // TODO: 根据Figma设计添加马甲包专属背景图片 return "sc_images/person/sc_icon_my_head_bg_defalt.png"; } @override String getMePageGenderBackgroundImage(bool isFemale) { // 马甲包策略:使用统一的背景图片,不区分性别 // TODO: 根据Figma设计添加马甲包专属背景图片 return "sc_images/person/sc_icon_my_head_bg_defalt.png"; } @override String getMePageCpDialogHeadImage() { // 马甲包策略:使用马甲包专属CP对话框头像图片 // TODO: 根据Figma设计添加马甲包专属图标 return "sc_images/person/sc_icon_send_cp_requst_dialog_head.png"; } @override String getMePageDefaultAvatarImage() { // 马甲包策略:使用马甲包专属默认头像图片 // TODO: 根据Figma设计添加马甲包专属头像图标 return "sc_images/general/sc_icon_avar_defalt.png"; } @override String getMePageIdBackgroundImage(bool hasSpecialId) { // 马甲包策略:使用统一的ID背景图片,简化UI // TODO: 根据Figma设计添加马甲包专属ID背景图片 return "sc_images/general/sc_icon_id_bg.png"; } @override String getMePageCopyIdIcon() { // 马甲包策略:使用马甲包专属复制ID图标 // TODO: 根据Figma设计添加马甲包专属图标 return "sc_images/room/sc_icon_user_card_copy_id.png"; } @override String getMePageGenderAgeBackgroundImage(bool isFemale) { // 马甲包策略:使用统一的性别年龄背景图片,不区分性别 // TODO: 根据Figma设计添加马甲包专属背景图片 return "sc_images/login/sc_icon_sex_woman_bg.png"; } @override String getMePageVisitorsFollowFansBackgroundImage(bool isFemale) { // 马甲包策略:使用统一的访客关注粉丝背景图片,不区分性别 // TODO: 根据Figma设计添加马甲包专属背景图片 return "sc_images/person/sc_icon_vistors_follow_fans_bg_woman.png"; } @override String getMePageEditUserInfoIcon() { // 马甲包策略:使用马甲包专属编辑用户信息图标 // TODO: 根据Figma设计添加马甲包专属图标 return "sc_images/person/sc_icon_edit_user_info2.png"; } @override Color getMePageShineColor() { // 马甲包策略:使用马甲包主题色作为闪耀文本颜色 return const Color(0xffFF5722); // 马甲包主题色 } @override List getMePageGradientColors(bool isFemale) { // 马甲包策略:使用统一的渐变颜色,不区分性别 return [ const Color(0xffFF5722), // 马甲包主题色 const Color(0xffFEB219), // 马甲包辅助色 const Color(0xffFF9326), // 马甲包辅助色 ]; } @override List getMePageTabIndicatorGradient(bool isFemale) { // 马甲包策略:使用统一的Tab指示器渐变,不区分性别 return [ const Color(0xffFF5722), // 马甲包主题色 const Color(0xffFEB219), // 马甲包辅助色 ]; } @override Color getMePageVisitorsFollowFansTextColor() { // 马甲包策略:使用更亮的文本颜色,提高可读性 return const Color(0xffFFFFFF); // 白色 } @override int getMePageInitialTabIndex() { // 马甲包策略:从动态页开始,鼓励用户发布内容 return 0; // dynamic页 } @override double getMePageScrollOpacityThreshold() { // 马甲包策略:降低滚动阈值,更快显示AppBar效果 return 200.0; } @override int getMePageNicknameScrollThreshold() { // 马甲包策略:提高昵称滚动阈值,减少不必要的动画 return 18; } @override int getMePageAgeDisplayWidthThreshold() { // 马甲包策略:降低年龄显示宽度阈值,更早调整布局 return 99; } @override double getMePageOpacityThresholdForAvatarDisplay() { // 马甲包策略:降低头像显示透明度阈值,更早显示头像 return 0.3; } /// === 热门页面差异化方法实现(马甲包专属) === @override String getPopularLeaderboardBackgroundImage(String leaderboardType) { // 马甲包策略:使用马甲包专属的排行榜背景图片 // 原始应用:使用现有的图像资源路径 switch (leaderboardType) { case 'room': return "sc_images/index/sc_icon_leader_spinner_room_bg.png"; case 'wealth': return "sc_images/index/sc_icon_leader_spinner_wealth_bg.png"; case 'charm': return "sc_images/index/sc_icon_leader_spinner_charm_bg.png"; default: return "sc_images/index/sc_icon_leader_spinner_room_bg.png"; } } /// === 游戏页面差异化方法实现(马甲包专属) === @override String getGameRankBackgroundImage(int rank) { // 马甲包策略:使用统一的背景图片,简化UI return "sc_images/game/sc_icon_game_list_item_bg_variant1.png"; } @override String getGameRankIcon(int rank) { // 马甲包策略:使用统一的排名图标 return "sc_images/game/sc_icon_game_rank_variant1.png"; } @override Color getGamePageThemeColor() { // 马甲包策略:使用马甲包主题色 return const Color(0xffFF9326); } @override Color getGamePageBackgroundColor() { // 马甲包策略:更亮的背景颜色 return const Color(0xfffafafa); } @override int getGamePageGridCrossAxisCount() { // 马甲包策略:4列网格,更紧凑的布局 return 4; } @override double getGamePageGridChildAspectRatio() { // 马甲包策略:更高的高度比例 return 1.5; } @override Color getGameRankTextColor(int rank) { // 马甲包策略:使用统一的文本颜色,简化UI return const Color(0xffFF5722); } @override Color getGamePageGradientSecondColor() { // 马甲包策略:使用马甲包风格的渐变第二颜色 return const Color(0xffFFE0B2); } @override String getGameHotTagBackgroundImage() { // 马甲包策略:使用马甲包风格的热门游戏标签背景图片 return "sc_images/index/sc_icon_hotgames_tag_bg_variant1.png"; } @override String getGameNewTagImage() { // 马甲包策略:使用马甲包风格的新游戏标签图片 return "sc_images/index/sc_icon_game_new_tag_variant1.png"; } @override String getGamePageMaskImage() { // 马甲包策略:使用马甲包风格的游戏页面遮罩图片 return "sc_images/index/sc_icon_index_mask_variant1.png"; } /// === VIP页面差异化方法实现(马甲包专属) === @override String getVipPageBackgroundImage(int vipLevel) { // 原始应用:使用现有的VIP背景图像模式 return "sc_images/vip/sc_icon_vip_level_bg_$vipLevel.png"; } @override String getVipPageIcon(int vipLevel) { // 原始应用:使用现有的VIP图标模式 return "sc_images/vip/sc_icon_vip_level_$vipLevel.png"; } @override List getVipPageButtonGradient() { // 原始应用:VIP按钮渐变颜色 return [const Color(0xffFF5722), const Color(0xffFEB219)]; } @override int getVipPageGridCrossAxisCount() { // 原始应用:3列网格 return 3; } @override double getVipPageGridChildAspectRatio() { // 原始应用:默认高度比例 return 1.5; } @override String getVipPageHeadBackgroundImage(int vipLevel) { // 原始应用:VIP头部背景图像模式 return "sc_images/vip/sc_icon_vip_head_bg_v$vipLevel.png"; } @override String getVipPageTabSelectedIcon(int vipLevel) { // 原始应用:Tab选中状态图标模式 return "sc_images/vip/sc_icon_tab_vip_text_on_v$vipLevel.png"; } @override String getVipPageTabUnselectedIcon(int vipLevel) { // 原始应用:Tab未选中状态图标模式 return "sc_images/vip/sc_icon_tab_vip_text_no_v$vipLevel.png"; } @override String getVipPageLargeIcon(int vipLevel) { // 原始应用:VIP页面大图标路径模式 return "sc_images/vip/sc_icon_vip${vipLevel}_ic.webp"; } @override String getVipPageTitleImage(int vipLevel) { // 原始应用:VIP页面标题图像路径模式 return "sc_images/vip/sc_icon_vip${vipLevel}_t1.png"; } @override String getVipPageTagImage(int vipLevel, int tagIndex) { // 原始应用:VIP页面标签图像路径模式 return "sc_images/vip/sc_icon_vip${vipLevel}_tag$tagIndex.png"; } @override String getVipPageItemBackgroundImage(int vipLevel) { // 原始应用:VIP页面功能项背景图像路径模式 return "sc_images/vip/sc_icon_vip${vipLevel}_item_bg.png"; } @override String getVipPagePrivilegeIcon(int vipLevel, int privilegeIndex) { // 原始应用:VIP页面特权图标路径模式 return "sc_images/vip/sc_icon_vip${vipLevel}_privilege$privilegeIndex.png"; } @override String getVipPageFeatureIcon(int vipLevel, String featureName) { // 原始应用:VIP页面功能图标路径模式 return "sc_images/vip/sc_icon_vip${vipLevel}_$featureName.png"; } @override String getVipPagePreviewImage( int vipLevel, String previewType, String featureName, ) { // 原始应用:VIP页面预览图像路径模式 if (featureName == 'profile_frame') { return "sc_images/vip/sc_icon_vip${vipLevel}_profile_rev.png"; } else if (featureName == 'profile_card') { return "sc_images/vip/sc_icon_vip${vipLevel}_profile_card_rev.png"; } else if (featureName == 'room_cover_headdress') { return "sc_images/vip/sc_icon_vip${vipLevel}_room_cover_border_rev.png"; } else if (featureName == 'mic_rippl_theme') { return "sc_images/vip/sc_icon_vip${vipLevel}_sesc_rev.png"; } else if (featureName == 'chatbox') { return "sc_images/vip/sc_icon_vip${vipLevel}_chatbox_pre.png"; } else { return "sc_images/vip/sc_icon_vip${vipLevel}_${featureName}_$previewType.png"; } } @override String getVipPagePurchaseBackgroundImage(int vipLevel) { // 原始应用:VIP页面购买背景图像路径模式 return "sc_images/vip/sc_icon_vip${vipLevel}_buy_bg.png"; } @override String getVipPagePurchaseButtonImage() { // 原始应用:VIP页面购买按钮图像路径 return "sc_images/vip/sc_icon_vip_buy_btn.png"; } @override Color getVipPageTextColor(int vipLevel) { // 原始应用:根据VIP等级返回不同的文本颜色 switch (vipLevel) { case 1: return const Color(0xFF71D671); case 2: return const Color(0xFF7179D6); case 3: return const Color(0xFFAA71D6); case 4: return const Color(0xFF71D6B3); case 5: return const Color(0xFFD67171); case 6: return const Color(0xFFFEE5BB); default: return Colors.white; } } /// === 通用页面差异化方法实现 === @override String getCommonRankBackgroundImage(String pageType, int rank) { // 原始应用:通用的排名背景图像模式 return "sc_images/$pageType/sc_icon_${pageType}_rank_bg_$rank.png"; } @override String getCommonRankIcon(String pageType, int rank) { // 原始应用:通用的排名图标模式 return "sc_images/$pageType/sc_icon_${pageType}_rank_$rank.png"; } @override int getCommonPageGridCrossAxisCount(String pageType) { // 原始应用:通用的2列网格 return 2; } @override double getCommonPageGridChildAspectRatio(String pageType) { // 原始应用:通用的高度比例 return 1.4; } /// === Admin编辑页面差异化方法实现(马甲包专属) === @override String getAdminEditingBackgroundImage() { // 马甲包策略:使用马甲包专属背景图片 // TODO: 根据Figma设计添加马甲包专属背景图片 return "sc_images/room/sc_icon_room_settig_bg.png"; } @override List getAdminEditingButtonGradient(String buttonType) { // 马甲包策略:使用马甲包主题渐变 return [ const Color(0xffFF9326), // 马甲包主题色 const Color(0xffFEB219), // 马甲包辅助色 ]; } @override String getAdminEditingIcon(String iconType) { // 马甲包策略:使用统一的图标,简化UI // TODO: 根据Figma设计添加马甲包专属图标 switch (iconType) { case 'specialIdBg': return "sc_images/general/sc_icon_special_id_bg.png"; case 'normalIdBg': return "sc_images/general/sc_icon_id_bg.png"; case 'copyId': return "sc_images/room/sc_icon_user_card_copy_id.png"; case 'addPic': return "sc_images/general/sc_icon_add_pic.png"; case 'closePic': return "sc_images/general/sc_icon_pic_close.png"; case 'checked': return "sc_images/general/sc_icon_checked.png"; default: return ""; } } @override BoxDecoration getAdminEditingInputDecoration() { // 马甲包策略:使用马甲包风格的输入框装饰 return BoxDecoration( color: const Color(0xfff2f2f2), // #f2f2f2 borderRadius: BorderRadius.circular(56), // 56px圆角,与登录页保持一致 border: Border.all(color: Colors.transparent, width: 0), ); } @override int getAdminEditingMaxImageUploadCount() { // 马甲包策略:增加图片上传数量,支持更多图片 return 5; // 允许上传最多5张图片 } @override int getAdminEditingDescriptionMaxLength() { // 马甲包策略:增加描述最大长度 return 300; // 允许更长的描述 } @override Map getAdminEditingViolationTypeMapping(String targetType) { // 马甲包策略:使用相同的违规类型映射,或可自定义 // 暂时使用原始应用的映射,后续可根据需求调整 if (targetType == 'User') { return {'Pornography': 1, 'Illegal information': 2}; } else if (targetType == 'Room') { return { 'Pornography': 3, 'Illegal information': 4, 'Fraud': 5, 'Other': 6, }; } return {}; } /// === Admin搜索页面差异化方法实现(马甲包专属) === @override String getAdminSearchBackgroundImage(String pageType) { // 马甲包策略:使用马甲包专属背景图片 // TODO: 根据Figma设计添加马甲包专属背景图片 return "sc_images/index/sc_icon_coupon_head_bg.png"; } @override List getAdminSearchButtonGradient(String pageType) { // 马甲包策略:使用马甲包主题渐变 return [ const Color(0xffFF9326), // 马甲包主题色 const Color(0xffFEB219), // 马甲包辅助色 ]; } @override Color getAdminSearchButtonTextColor(String pageType) { // 马甲包策略:使用白色文本,提高可读性 return Colors.white; } @override String getAdminSearchEditIcon(String pageType) { // 马甲包策略:使用马甲包专属编辑图标 // TODO: 根据Figma设计添加马甲包专属图标 return "sc_images/room/sc_icon_room_edit.png"; } @override Color getAdminSearchInputBorderColor(String pageType) { // 马甲包策略:使用马甲包主题色作为边框 return const Color(0xffFF5722); // 马甲包主题色 } @override Color getAdminSearchInputTextColor(String pageType) { // 马甲包策略:使用更深的文本颜色 return Colors.black87; } @override String getAdminSearchUserInfoIcon(String iconType) { // 马甲包策略:使用统一的图标 // TODO: 根据Figma设计添加马甲包专属图标 switch (iconType) { case 'specialIdBg': return "sc_images/general/sc_icon_special_id_bg.png"; case 'normalIdBg': return "sc_images/general/sc_icon_id_bg.png"; case 'copyId': return "sc_images/room/sc_icon_user_card_copy_id.png"; default: return ""; } } /// === 主登录页面差异化方法实现(马甲包专属) === @override String getLoginMainBackgroundImage() { // 马甲包策略:使用马甲包专属背景图片 // TODO: 根据Figma设计添加马甲包专属背景图片 return "sc_images/splash/sc_splash.png"; } @override String getLoginMainAppIcon() { // 马甲包策略:使用马甲包专属应用图标 // TODO: 根据Figma设计添加马甲包专属图标 return "sc_images/splash/sc_icon_splash_icon.png"; } @override String getLoginMainGoogleIcon() { // 马甲包策略:使用马甲包专属Google图标 // TODO: 根据Figma设计添加马甲包专属图标 return "sc_images/login/sc_icon_google.png"; } @override String getLoginMainAppleIcon() { // 马甲包策略:使用马甲包专属Apple图标 // TODO: 根据Figma设计添加马甲包专属图标 return "sc_images/login/sc_icon_iphone.png"; } @override String getLoginMainAccountIcon() { // 马甲包策略:使用马甲包专属账号图标 // TODO: 根据Figma设计添加马甲包专属图标 return "sc_images/login/sc_icon_account.png"; } @override String getLoginMainAgreementIcon(bool isSelected) { // 马甲包策略:使用马甲包专属协议图标 // TODO: 根据Figma设计添加马甲包专属图标 return isSelected ? "sc_images/login/sc_icon_login_ser_select.png" : "sc_images/login/sc_icon_login_ser_select_un.png"; } @override Color getLoginMainDividerColor() { // 马甲包策略:使用马甲包主题色作为分割线颜色 return const Color(0xffE6E6E6); // 马甲包主题色 } @override Color getLoginMainButtonBorderColor() { // 马甲包策略:使用马甲包主题色作为按钮边框颜色 return Colors.white24; // 马甲包主题色 } @override Color getLoginMainButtonBackgroundColor() { // 马甲包策略:使用浅色背景,提高可读性 return Colors.white24; // 浅灰色 } @override Color getLoginMainButtonTextColor() { // 马甲包策略:按钮文本颜色(黑色) return Colors.white; } @override Color getLoginMainLinkColor() { // 马甲包策略:使用马甲包主题色作为链接颜色 return const Color(0xff18F2B1); // 马甲包主题色 } /// === 编辑个人资料页面差异化方法实现(马甲包专属) === @override String getEditProfileBackgroundImage() { // 马甲包策略:使用马甲包专属背景图片 // TODO: 根据Figma设计添加马甲包专属背景图片 return "sc_images/splash/sc_splash.png"; } @override String getEditProfileDefaultAvatarImage() { // 马甲包策略:使用马甲包专属默认头像图片 // TODO: 根据Figma设计添加马甲包专属头像图标 return "sc_images/general/sc_icon_avar_defalt.png"; } @override String getEditProfileGenderIcon(bool isMale) { // 马甲包策略:使用马甲包专属性别图标 // TODO: 根据Figma设计添加马甲包专属图标 return isMale ? "sc_images/login/sc_icon_avar_sex_man.png" : "sc_images/login/sc_icon_avar_sex_woman.png"; } @override List getEditProfileGenderButtonGradient(bool isMale, bool isSelected) { // 马甲包策略:使用马甲包主题渐变 return [ const Color(0xff18F2B1), // 马甲包主题色 const Color(0xff18F2B1), // 马甲包辅助色 ]; } @override Color getEditProfileInputBackgroundColor() { // 马甲包策略:使用更亮的背景颜色,提高可读性 return Colors.white24; } @override Color getEditProfileDatePickerConfirmColor() { // 马甲包策略:使用马甲包主题色 return const Color(0xff18F2B1); // 马甲包主题色 } @override Color getEditProfileContinueButtonColor() { // 马甲包策略:使用马甲包主题色 return const Color(0xff18F2B1); // 马甲包主题色 } /// === Country页面差异化方法实现(马甲包专属) === @override String getCountrySelectOkIcon() { // 马甲包策略:使用马甲包专属选择确认图标 // TODO: 根据Figma设计添加马甲包专属图标 return "sc_images/general/sc_icon_select_ok.png"; } @override String getCountrySelectUnOkIcon() { // 马甲包策略:使用马甲包专属选择未确认图标 // TODO: 根据Figma设计添加马甲包专属图标 return "sc_images/general/sc_icon_select_un_ok.png"; } @override String getCountryRadioSelectedIcon() { // 马甲包策略:使用马甲包专属单选选中图标 // TODO: 根据Figma设计添加马甲包专属图标 return "sc_images/login/sc_icon_login_ser_select.png"; } @override String getCountryRadioUnselectedIcon() { // 马甲包策略:使用马甲包专属单选未选中图标 // TODO: 根据Figma设计添加马甲包专属图标 return "sc_images/login/sc_icon_login_ser_select_un.png"; } @override Color getCountryItemBorderColor() { // 马甲包策略:使用马甲包主题色作为边框颜色 return SocialChatTheme.primaryLight; // 马甲包主题色 } @override Color getCountryPageScaffoldBackgroundColor() { // 马甲包策略:使用浅灰色背景 return const Color(0xfff5f5f5); } @override Color getCountryPageIconColor() { // 马甲包策略:使用深灰色图标 return const Color(0xff333333); } @override Color getCountryPagePrimaryTextColor() { // 马甲包策略:使用深灰色文本 return const Color(0xff212121); } @override Color getCountryPageSecondaryTextColor() { // 马甲包策略:使用中等灰色文本 return const Color(0xff757575); } @override Color getCountryPageContainerBackgroundColor() { // 马甲包策略:使用白色容器背景 return Colors.white; } /// === Chat页面差异化方法实现(马甲包专属) === /// === 消息页面 (SCMessagePage) 方法实现 === @override String getMessagePageIndexMaskIcon() { // 马甲包策略:使用马甲包专属索引遮罩图标 // TODO: 根据Figma设计添加马甲包专属图标 return "sc_images/index/sc_icon_index_bg.png"; } @override String getMessagePageAnnouncementTagIcon() { // 马甲包策略:使用马甲包专属公告标签图标 // TODO: 根据Figma设计添加马甲包专属图标 return "sc_images/msg/sc_icon_message_activity.png"; } @override String getMessagePageActivityMessageIcon() { // 马甲包策略:使用马甲包专属活动消息图标 // TODO: 根据Figma设计添加马甲包专属图标 return "sc_images/msg/sc_icon_message_activity.png"; } @override String getMessagePageActivityTitleBackground(bool isRtl) { // 马甲包策略:使用马甲包专属活动消息标题背景图标 // TODO: 根据Figma设计添加马甲包专属图标 return isRtl ? "sc_images/msg/sc_icon_message_activity.png" : "sc_images/msg/sc_icon_message_activity.png"; } @override String getMessagePageSystemMessageIcon() { // 马甲包策略:使用马甲包专属系统消息图标 // TODO: 根据Figma设计添加马甲包专属图标 return "sc_images/msg/sc_icon_message_system.png"; } @override String getMessagePageSystemTitleBackground(bool isRtl) { // 马甲包策略:使用马甲包专属系统消息标题背景图标 // TODO: 根据Figma设计添加马甲包专属图标 return isRtl ? "sc_images/msg/sc_icon_system_title_bg_rtl.png" : "sc_images/msg/sc_icon_system_title_bg.png"; } @override String getMessagePageNotificationMessageIcon() { // 马甲包策略:使用马甲包专属通知消息图标 // TODO: 根据Figma设计添加马甲包专属图标 return "sc_images/msg/sc_icon_message_noti.png"; } @override String getMessagePageNotificationTitleBackground(bool isRtl) { // 马甲包策略:使用马甲包专属通知消息标题背景图标 // TODO: 根据Figma设计添加马甲包专属图标 return isRtl ? "sc_images/msg/sc_icon_notifcation_title_bg_rtl.png" : "sc_images/msg/sc_icon_notifcation_title_bg.png"; } /// === 聊天页面 (SCMessageChatPage) 方法实现 === @override String getSCMessageChatPageRoomSettingBackground() { // 马甲包策略:使用马甲包专属房间设置背景图像 // TODO: 根据Figma设计添加马甲包专属背景图片 return "sc_images/person/sc_icon_edit_userinfo_bg.png"; } @override String getSCMessageChatPageEmojiIcon() { // 马甲包策略:使用马甲包专属表情图标 // TODO: 根据Figma设计添加马甲包专属图标 return "sc_images/msg/sc_icon_msg_emoji.png"; } @override String getSCMessageChatPageChatKeyboardIcon() { // 马甲包策略:使用马甲包专属聊天键盘图标 // TODO: 根据Figma设计添加马甲包专属图标 return "sc_images/msg/sc_icon_chat_key.png"; } @override String getSCMessageChatPageAddIcon() { // 马甲包策略:使用马甲包专属添加图标 // TODO: 根据Figma设计添加马甲包专属图标 return "sc_images/msg/sc_icon_add.png"; } @override String getSCMessageChatPageSendMessageIcon() { // 马甲包策略:使用马甲包专属发送消息图标 // TODO: 根据Figma设计添加马甲包专属图标 return "sc_images/msg/sc_icon_chat_message_send.png"; } @override String getSCMessageChatPageCameraIcon() { // 马甲包策略:使用马甲包专属相机图标 // TODO: 根据Figma设计添加马甲包专属图标 return "sc_images/msg/sc_icon_xiangji.png"; } @override String getSCMessageChatPagePictureIcon() { // 马甲包策略:使用马甲包专属图片图标 // TODO: 根据Figma设计添加马甲包专属图标 return "sc_images/msg/sc_icon_tupian.png"; } @override String getSCMessageChatPageRedEnvelopeIcon() { // 马甲包策略:使用马甲包专属红包图标 // TODO: 根据Figma设计添加马甲包专属图标 return "sc_images/msg/sc_icon_hongbao.png"; } @override String getSCMessageChatPageRedEnvelopeMessageBackground() { // 马甲包策略:使用马甲包专属红包消息背景图像 // TODO: 根据Figma设计添加马甲包专属背景图片 return "sc_images/msg/sc_icon_msg_send_hongbao_bg.png"; } @override String getSCMessageChatPageRedEnvelopeConfigTabButtonIcon() { // 马甲包策略:使用马甲包专属红包配置标签按钮图标 // TODO: 根据Figma设计添加马甲包专属图标 return "sc_images/room/sc_icon_red_envelope_config_tab_btn.png"; } @override String getSCMessageChatPageRedEnvelopeMessageItemBackground() { // 马甲包策略:使用马甲包专属红包消息项背景图像 // TODO: 根据Figma设计添加马甲包专属背景图片 return "sc_images/msg/sc_icon_red_envelopes_msg_item_bg.png"; } @override String getSCMessageChatPageRedEnvelopeReceivePackageIcon() { // 马甲包策略:使用马甲包专属红包接收包图标 // TODO: 根据Figma设计添加马甲包专属图标 return "sc_images/room/sc_icon_red_envelope_rec_pack.png"; } @override String getSCMessageChatPageRedEnvelopeOpenBackground() { // 马甲包策略:使用马甲包专属红包打开背景图像 // TODO: 根据Figma设计添加马甲包专属背景图片 return "sc_images/msg/sc_icon_red_envelopes_msg_open_bg.png"; } @override String getSCMessageChatPageRedEnvelopeOpenedBackground() { // 马甲包策略:使用马甲包专属红包已打开背景图像 // TODO: 根据Figma设计添加马甲包专属背景图片 return "sc_images/msg/sc_icon_red_envelopes_msg_opened_bg.png"; } @override String getSCMessageChatPageGoldCoinIcon() { // 马甲包策略:使用马甲包专属金币图标 // TODO: 根据Figma设计添加马甲包专属图标 return "sc_images/general/sc_icon_jb.png"; } @override String getSCMessageChatPageMessageMenuDeleteIcon() { // 马甲包策略:使用马甲包专属消息菜单删除图标 // TODO: 根据Figma设计添加马甲包专属图标 return "sc_images/msg/sc_icon_msg_menu_delete.png"; } @override String getSCMessageChatPageMessageMenuCopyIcon() { // 马甲包策略:使用马甲包专属消息菜单复制图标 // TODO: 根据Figma设计添加马甲包专属图标 return "sc_images/msg/sc_icon_msg_menu_copy.png"; } @override String getSCMessageChatPageMessageMenuRecallIcon() { // 马甲包策略:使用马甲包专属消息菜单撤回图标 // TODO: 根据Figma设计添加马甲包专属图标 return "sc_images/msg/sc_icon_msg_menu_recall.png"; } @override String getSCMessageChatPageLoadingIcon() { // 马甲包策略:使用马甲包专属加载图标 // TODO: 根据Figma设计添加马甲包专属图标 return "sc_images/general/sc_icon_loading.png"; } @override String getGenderBackgroundImage(bool isFemale) { // 马甲包策略:使用马甲包专属性别背景图片 // TODO: 根据Figma设计添加马甲包专属性别背景图片 return isFemale ? "sc_images/login/sc_icon_sex_woman_bg.png" : "sc_images/login/sc_icon_sex_man_bg.png"; } @override String getIdBackgroundImage(bool hasSpecialId) { // 马甲包策略:使用马甲包专属ID背景图片 // TODO: 根据Figma设计添加马甲包专属ID背景图片 return hasSpecialId ? "sc_images/general/sc_icon_special_id_bg.png" : "sc_images/general/sc_icon_id_bg.png"; } @override String getCopyIdIcon() { // 马甲包策略:使用马甲包专属复制ID图标 // TODO: 根据Figma设计添加马甲包专属复制ID图标 return "sc_images/room/sc_icon_user_card_copy_id.png"; } @override String getSCMessageChatPageSystemHeadImage() { // 马甲包策略:使用马甲包专属系统头像图像 // TODO: 根据Figma设计添加马甲包专属头像图片 return "sc_images/msg/head_system.png"; } /// === Gift页面差异化方法实现(马甲包专属) === @override String getGiftPageFirstRechargeRoomTagIcon() { // 马甲包策略:使用马甲包专属首充房间标签图标 // TODO: 根据Figma设计添加马甲包专属图标 return "sc_images/room/sc_icon_first_recharge_room_tag.png"; } @override String getGiftPageGoldCoinIcon() { // 马甲包策略:使用马甲包专属金币图标 // TODO: 根据Figma设计添加马甲包专属图标 return "sc_images/general/sc_icon_jb.png"; } @override String getGiftPageGiveTypeBackground() { // 马甲包策略:使用马甲包专属赠送类型背景图标 // TODO: 根据Figma设计添加马甲包专属图标 return "sc_images/room/sc_icon_give_type_bg.png"; } @override String getGiftPageActivityGiftHeadBackground(String giftType) { // 马甲包策略:使用马甲包专属活动礼物头部背景图标 // TODO: 根据Figma设计添加马甲包专属图标 switch (giftType) { case 'ACTIVITY': return "sc_images/room/sc_icon_activity_gift_head_bg.png"; case 'LUCK': return "sc_images/room/sc_icon_luck_gift_head_bg.png"; case 'CP': return "sc_images/room/sc_icon_cp_gift_head_bg.png"; case 'MAGIC': return "sc_images/room/sc_icon_magic_gift_head_bg.png"; default: return "sc_images/room/sc_icon_activity_gift_head_bg.png"; } } @override String getGiftPageCustomizedRuleIcon() { // 马甲包策略:使用马甲包专属定制规则图标 // TODO: 根据Figma设计添加马甲包专属图标 return "sc_images/room/sc_icon_customized_rule.png"; } @override String getGiftPageGiftEffectIcon(String giftType) { // 马甲包策略:使用马甲包专属礼物效果图标 // TODO: 根据Figma设计添加马甲包专属图标 return "sc_images/room/sc_icon_gift_effect.png"; } @override String getGiftPageGiftMusicIcon(String giftType) { // 马甲包策略:使用马甲包专属礼物音乐图标 // TODO: 根据Figma设计添加马甲包专属图标 return "sc_images/room/sc_icon_gift_music.png"; } @override String getGiftPageGiftLuckIcon(String giftType) { // 马甲包策略:使用马甲包专属礼物幸运图标 // TODO: 根据Figma设计添加马甲包专属图标 return "sc_images/room/sc_icon_gift_luck.png"; } @override String getGiftPageGiftCpIcon(String giftType) { // 马甲包策略:使用马甲包专属礼物CP图标 // TODO: 根据Figma设计添加马甲包专属图标 return "sc_images/room/sc_icon_gift_cp.png"; } @override String getGiftPageFirstRechargeTextIcon(String languageCode) { // 马甲包策略:使用马甲包专属首充文本图标 // TODO: 根据Figma设计添加马甲包专属图标 if (languageCode == 'ar') { return "sc_images/index/sc_icon_first_recharge_ar_text.png"; } else { // 默认为英语版本 return "sc_images/index/sc_icon_first_recharge_en_text.png"; } } @override String getGiftPageAllOnMicrophoneIcon() { // 马甲包策略:使用马甲包专属"全开麦"图标 // TODO: 根据Figma设计添加马甲包专属图标 return "sc_images/room/sc_icon_all_on_microphone.png"; } @override String getGiftPageUsersOnMicrophoneIcon() { // 马甲包策略:使用马甲包专属"用户开麦"图标 // TODO: 根据Figma设计添加马甲包专属图标 return "sc_images/room/sc_icon_userson_microphone.png"; } @override String getGiftPageAllInTheRoomIcon() { // 马甲包策略:使用马甲包专属"房间所有人"图标 // TODO: 根据Figma设计添加马甲包专属图标 return "sc_images/room/sc_icon_all_in_the_room.png"; } @override String getCommonSelectIcon() { // 马甲包策略:使用马甲包专属选择图标 // TODO: 根据Figma设计添加马甲包专属图标 return "sc_images/general/sc_icon_checked.png"; } @override String getCommonUnselectIcon() { // 马甲包策略:使用马甲包专属未选择图标 // TODO: 根据Figma设计添加马甲包专属图标 return "sc_images/general/sc_icon_unchecked.png"; } /// === Media页面差异化方法实现(马甲包专属) === @override Color getImagePreviewBackgroundColor() { // 马甲包策略:图片预览页面背景颜色 - 深灰色 return const Color(0xff1a1a1a); // #1a1a1a } @override Color getImagePreviewGalleryBackgroundColor() { // 马甲包策略:图片预览画廊背景颜色 - 深灰色 return const Color(0xff1a1a1a); // #1a1a1a } @override Color getImagePreviewAppBarBackgroundColor() { // 马甲包策略:图片预览AppBar背景颜色 - 深灰色70%透明度 return const Color(0xB31a1a1a); // withOpacity(0.7) } @override Color getImagePreviewBackIconColor() { // 马甲包策略:图片预览返回图标颜色 - 浅灰色 return const Color(0xffe6e6e6); // #e6e6e6 } @override Color getImagePreviewTextColor() { // 马甲包策略:图片预览文本颜色 - 浅灰色 return const Color(0xffe6e6e6); // #e6e6e6 } @override Color getImagePreviewLoadingIndicatorColor() { // 马甲包策略:图片预览加载指示器颜色 - 马甲包主题色(橙色) return const Color(0xffFF5722); // 马甲包主题色 } @override double getImagePreviewAppBarOpacity() { // 马甲包策略:图片预览AppBar透明度 - 0.7 return 0.7; } @override Color getVideoPlayerBackgroundColor() { // 马甲包策略:视频播放页面背景颜色 - 深灰色 return const Color(0xff1a1a1a); // #1a1a1a } @override Color getVideoPlayerControlsBackgroundColor() { // 马甲包策略:视频播放控制界面背景颜色 - 深灰色50%透明度 return const Color(0x801a1a1a); // withOpacity(0.5) } @override Color getVideoPlayerIconColor() { // 马甲包策略:视频播放图标颜色 - 浅灰色 return const Color(0xffe6e6e6); // #e6e6e6 } @override Color getVideoPlayerBottomControlsBackgroundColor() { // 马甲包策略:视频播放底部控制栏背景颜色 - 深灰色60%透明度 return const Color(0x991a1a1a); // withOpacity(0.6) } @override Color getVideoPlayerProgressBarActiveColor() { // 马甲包策略:视频播放进度条活动颜色 - 马甲包主题色(橙色) return const Color(0xffFF5722); // 马甲包主题色 } @override Color getVideoPlayerProgressBarInactiveColor() { // 马甲包策略:视频播放进度条非活动颜色 - 深灰色 return const Color(0xff666666); // 深灰色 } @override Color getVideoPlayerTextColor() { // 马甲包策略:视频播放文本颜色 - 浅灰色 return const Color(0xffe6e6e6); // #e6e6e6 } @override Color getVideoPlayerLoadingIndicatorColor() { // 马甲包策略:视频播放加载指示器颜色 - 马甲包主题色(橙色) return const Color(0xffFF5722); // 马甲包主题色 } @override double getVideoPlayerControlsOpacity() { // 马甲包策略:视频播放控制界面透明度 - 0.5 return 0.5; } @override double getVideoPlayerBottomControlsOpacity() { // 马甲包策略:视频播放底部控制栏透明度 - 0.6 return 0.6; } @override int getVideoPlayerControlsDisplayDuration() { // 马甲包策略:视频播放控制界面显示持续时间 - 5秒 return 5; } /// === 举报页面差异化方法实现 === @override String getReportPageBackgroundImage() { // 马甲包策略:举报页面背景图片 - 与房间设置背景相同(与原始应用相同) return "sc_images/person/sc_icon_edit_userinfo_bg.png"; } @override Color getReportPageHintTextColor() { // 马甲包策略:举报页面提示文本颜色 - 深灰色 return Colors.white54; // 深灰色 } @override Color getReportPageContainerBackgroundColor() { // 马甲包策略:举报页面容器背景颜色 - 白色(与原始应用相同) return Color(0xff09372E).withOpacity(0.5); } @override Color getReportPageBorderColor() { // 马甲包策略:举报页面边框颜色 - 浅灰色 return const Color(0xffCCCCCC); // 浅灰色 } @override Color getReportPagePrimaryTextColor() { // 马甲包策略:举报页面主要文本颜色 - 黑色(与原始应用相同) return Colors.white; // 黑色 } @override Color getReportPageSecondaryHintTextColor() { // 马甲包策略:举报页面次级提示文本颜色 - 深灰色 return Colors.white54; // 深灰色 } @override Color getReportPageUnselectedBorderColor() { // 马甲包策略:举报页面未选中边框颜色 - 灰色 return Colors.grey; // 灰色 } @override Color getReportPageSubmitButtonBackgroundColor() { // 马甲包策略:举报页面提交按钮背景颜色 - 马甲包主题色(橙色) return SocialChatTheme.primaryLight; // 马甲包主题色 } @override Color getReportPageSubmitButtonTextColor() { // 马甲包策略:举报页面提交按钮文本颜色 - 白色(与原始应用相同) return Colors.white; } @override String getReportPageIcon(String iconType) { // 马甲包策略:举报页面图标路径(目前使用与原始应用相同的图标) switch (iconType) { case 'addPic': return "sc_images/general/sc_icon_reort_add_pic.png"; case 'closePic': return "sc_images/general/sc_icon_pic_close.png"; case 'checked': return "sc_images/login/sc_icon_login_ser_select.png"; default: return ""; // 未知图标类型返回空字符串 } } /// === 语音房间页面差异化方法实现 === @override Color getVoiceRoomBackgroundColor() { // 马甲包策略:语音房间页面背景颜色 - 深灰色 return const Color(0xff1a1a1a); // #1a1a1a } @override Color getVoiceRoomTabLabelColor() { // 马甲包策略:语音房间页面Tab标签选中颜色 - 浅灰色 return const Color(0xffe6e6e6); // #e6e6e6 } @override Color getVoiceRoomTabUnselectedLabelColor() { // 马甲包策略:语音房间页面Tab标签未选中颜色 - 灰色 return const Color(0xff999999); // 灰色 } @override Color getVoiceRoomTabIndicatorColor() { // 马甲包策略:语音房间页面Tab指示器颜色 - 马甲包主题色(橙色) return const Color(0xffFF5722); // 马甲包主题色 } @override Color getVoiceRoomTabDividerColor() { // 马甲包策略:语音房间页面Tab分割线颜色 - 深灰色 return Colors.transparent; // 深灰色 } @override EdgeInsets getVoiceRoomTabLabelPadding() { // 马甲包策略:语音房间页面Tab标签内边距 - 与原始应用相同 return const EdgeInsets.symmetric(horizontal: 12); } @override EdgeInsetsDirectional getVoiceRoomChatContainerMargin() { // 马甲包策略:语音房间页面聊天容器外边距 - 与原始应用相同 return const EdgeInsetsDirectional.only(end: 52); } @override TextStyle getVoiceRoomTabLabelStyle() { // 马甲包策略:语音房间页面Tab标签选中文本样式 - 与原始应用相同 return const TextStyle(fontSize: 15, fontFamily: "MyCustomFont"); } @override TextStyle getVoiceRoomTabUnselectedLabelStyle() { // 马甲包策略:语音房间页面Tab标签未选中文本样式 - 与原始应用相同 return const TextStyle(fontSize: 13, fontFamily: "MyCustomFont"); } @override String getVoiceRoomDefaultBackgroundImage() { // 马甲包策略:语音房间默认背景图像路径 - 与原始应用相同 return "sc_images/room/sc_icon_room_defaut_bg.png"; } /// === 钱包页面差异化方法实现 === /// === 充值页面差异化方法实现 === @override String getRechargePageBackgroundImage() { // 马甲包策略:充值页面背景图像路径 - 与原始应用相同 return "sc_images/person/sc_icon_edit_userinfo_bg.png"; } @override Color getRechargePageScaffoldBackgroundColor() { // 马甲包策略:充值页面Scaffold背景颜色 - 深灰色 return Colors.transparent; // #1a1a1a } @override Color getRechargePageDialogBarrierColor() { // 马甲包策略:充值页面对话框屏障颜色 - 深灰色半透明 return const Color(0xCC1a1a1a); // withOpacity(0.8) } @override Color getRechargePageDialogContainerBackgroundColor() { // 马甲包策略:充值页面对话框容器背景颜色 - 深灰色 return const Color(0xff333333); // 深灰色 } @override Color getRechargePageDialogTextColor() { // 马甲包策略:充值页面对话框文本颜色 - 浅灰色 return const Color(0xffe6e6e6); // #e6e6e6 } @override Color getRechargePageMainContainerBackgroundColor() { // 马甲包策略:充值页面主容器背景颜色 - 深灰色 return Colors.transparent; // #1a1a1a } @override Color getRechargePageButtonBackgroundColor() { // 马甲包策略:充值页面按钮背景颜色 - 马甲包主题色(橙色) return SocialChatTheme.primaryLight; // 马甲包主题色 } @override Color getRechargePageButtonTextColor() { // 马甲包策略:充值页面按钮文本颜色 - 白色(与原始应用相同) return Colors.white; } @override String getRechargePageWalletBackgroundImage() { // 马甲包策略:充值页面钱包背景图像路径 - 与原始应用相同 return "sc_images/index/sc_icon_wallet_bg.png"; } @override String getRechargePageWalletIcon() { // 马甲包策略:充值页面钱包图标路径 - 与原始应用相同 return "sc_images/index/sc_icon_wallet_icon.png"; } @override Color getRechargePageWalletTextColor() { // 马甲包策略:充值页面钱包文本颜色 - 浅灰色 return Colors.white; // #e6e6e6 } @override String getRechargePageGoldIcon() { // 马甲包策略:充值页面金币图标路径(默认图标)- 与原始应用相同 return "sc_images/general/sc_icon_jb.png"; } @override Color getRechargePageSelectedItemBackgroundColor() { // 马甲包策略:充值页面选中项背景颜色 - 马甲包主题色半透明 return const Color(0x33FF5722); // withOpacity(0.2) } @override Color getRechargePageSelectedItemBorderColor() { // 马甲包策略:充值页面选中项边框颜色 - 马甲包主题色 return SocialChatTheme.primaryLight; // 马甲包主题色 } @override Color getRechargePageUnselectedItemBorderColor() { // 马甲包策略:充值页面未选中项边框颜色 - 深灰色 return const Color(0xff666666); // 深灰色 } @override Color getRechargePageUnselectedItemBackgroundColor() { // 马甲包策略:充值页面未选中项背景颜色 - 深灰色 return const Color(0xff2a2a2a); // 深灰色背景 } @override Color getRechargePageItemTextColor() { // 马甲包策略:充值页面项目文本颜色 - 浅灰色 return const Color(0xffe6e6e6); // #e6e6e6 } @override Color getRechargePageItemPriceTextColor() { // 马甲包策略:充值页面价格文本颜色 - 白色 return Colors.white; } @override String getRechargePageGoldIconByIndex(int index) { // 马甲包策略:根据索引获取充值页面金币图标路径 - 与原始应用相同 switch (index) { case 0: return "sc_images/general/sc_icon_jb.png"; case 1: return "sc_images/general/sc_icon_jb2.png"; case 2: return "sc_images/general/sc_icon_jb3.png"; default: return "sc_images/general/sc_icon_jb.png"; // 默认图标 } } @override Color getRechargePageAppleItemBackgroundColor() { // 马甲包策略:充值页面Apple产品项背景颜色 - 深灰色 return const Color(0xff2a2a2a); // 深灰色 } @override String getRechargePageRecordIcon() { // 马甲包策略:充值页面记录图标路径 - 与原始应用相同 return "sc_images/index/sc_icon_recharge_recod.png"; } /// === 金币记录页面差异化方法实现 === @override String getGoldRecordPageBackgroundImage() { // 马甲包策略:金币记录页面背景图像路径 - 与原始应用相同 return "sc_images/person/sc_icon_edit_userinfo_bg.png"; } @override Color getGoldRecordPageScaffoldBackgroundColor() { // 马甲包策略:金币记录页面Scaffold背景颜色 - 深灰色 return Colors.transparent; // #1a1a1a } @override Color getGoldRecordSCPageListBackgroundColor() { // 马甲包策略:金币记录页面列表背景颜色 - 深灰色 return const Color(0xff1a1a1a); // #1a1a1a } @override Color getGoldRecordPageContainerBackgroundColor() { // 马甲包策略:金币记录页面容器背景颜色 - 深灰色 return Colors.black38; // #1a1a1a } @override Color getGoldRecordPageBorderColor() { // 马甲包策略:金币记录页面边框颜色 - 深灰色 return Colors.white12; // 深灰色 } @override Color getGoldRecordPagePrimaryTextColor() { // 马甲包策略:金币记录页面主要文本颜色 - 浅灰色 return const Color(0xffe6e6e6); // #e6e6e6 } @override Color getGoldRecordPageSecondaryTextColor() { // 马甲包策略:金币记录页面次要文本颜色 - 灰色 return const Color(0xff999999); // 灰色 } /// === Store页面差异化方法实现 === @override String getStorePageBackgroundImage() { // 马甲包策略:Store页面背景图像路径 - 使用相同背景图像(保持一致性) // 注意:如果需要差异化,可以返回不同的背景图像路径 return "sc_images/person/sc_icon_edit_userinfo_bg.png"; } @override String getStorePageShoppingBagIcon() { // 马甲包策略:Store页面购物袋图标路径 - 使用相同图标(保持一致性) // 注意:如果需要差异化,可以返回不同的图标路径 return "sc_images/store/sc_icon_shop_bag.png"; } @override EdgeInsetsDirectional getStorePageShoppingBagMargin() { // 马甲包策略:Store页面购物袋图标外边距 - 保持相同外边距 return const EdgeInsetsDirectional.only(end: 10); } @override EdgeInsets getStorePageTabLabelPadding() { // 马甲包策略:Store页面Tab标签内边距 - 保持相同内边距 return const EdgeInsets.symmetric(horizontal: 12); } @override TextStyle getStorePageTabLabelStyle() { // 马甲包策略:Store页面Tab标签选中文本样式 // 差异化:使用马甲包主题色作为选中文本颜色 return const TextStyle( fontSize: 15, color: Colors.black87, // 马甲包主题橙色,替代Colors.black87 fontWeight: FontWeight.w600, ); } @override TextStyle getStorePageTabUnselectedLabelStyle() { // 马甲包策略:Store页面Tab标签未选中文本样式 // 差异化:调整未选中文本颜色为灰色系 return const TextStyle( fontSize: 13, color: Colors.white54, // 灰色,替代Colors.black38 fontWeight: FontWeight.w500, ); } @override Color getStorePageTabIndicatorColor() { // 马甲包策略:Store页面Tab指示器颜色 - 使用马甲包主题色 // 注意:原始应用使用SocialChatTheme.primaryColor,马甲包使用相同值 return SocialChatTheme.primaryLight; // SocialChatTheme.primaryColor } @override Color getStorePageTabDividerColor() { // 马甲包策略:Store页面Tab分割线颜色 - 保持透明 return Colors.transparent; } @override Color getStorePageBottomDividerColor() { // 马甲包策略:Store页面底部Divider颜色 - 调整为浅灰色 return const Color(0xffEEEEEE); // 浅灰色,替代Colors.black12 } @override double getStorePageBottomDividerThickness() { // 马甲包策略:Store页面底部Divider厚度 - 保持相同 return 0.5; } @override double getStorePageBottomDividerHeight() { // 马甲包策略:Store页面底部Divider高度 - 保持相同 return 24; } @override String getStorePageGoldIcon() { // 马甲包策略:Store页面金币图标路径 - 使用相同图标 return "sc_images/general/sc_icon_jb.png"; } @override Color getStorePageGoldTextColor() { // 马甲包策略:Store页面金币文本颜色 - 使用马甲包主题色 return SocialChatTheme.primaryLight; // 马甲包主题橙色,替代Color(0xFFFFE134) } @override Color getStorePageGoldIconColor() { // 马甲包策略:Store页面金币图标颜色 - 使用马甲包主题色 return SocialChatTheme.primaryLight; // 马甲包主题橙色,替代Color(0xFFFFE134) } /// === Store子页面(商品项)差异化方法实现 === @override Color getStoreItemBackgroundColor() { // 马甲包策略:Store商品项背景颜色 - 使用马甲包表面色 return Color(0xff18F2B1).withOpacity(0.1); // 马甲包表面色,替代Colors.white } @override Color getStoreItemUnselectedBorderColor() { // 马甲包策略:Store商品项未选中边框颜色 - 调整为浅灰色 return Colors.transparent; // 浅灰色,替代Colors.black12 } @override Color getStoreItemSelectedBorderColor() { // 马甲包策略:Store商品项选中边框颜色 - 使用马甲包主题色 return SocialChatTheme.primaryLight; // 马甲包主题橙色,替代Color(0xffFF9500) } @override String getStoreItemGoldIcon() { // 马甲包策略:Store商品项金币图标路径 - 使用相同图标 return "sc_images/general/sc_icon_jb.png"; } @override Color getStoreItemPriceTextColor() { // 马甲包策略:Store商品项价格文本颜色 - 使用马甲包主要文本颜色 return SocialChatTheme.primaryLight; // 马甲包主要文本颜色,替代Colors.black } @override Color getStoreItemBuyButtonColor() { // 马甲包策略:Store商品项购买按钮背景颜色 - 使用马甲包主题色 return const Color(0xffFF5722); // 马甲包主题橙色,替代Color(0xffFF9500) } @override Color getStoreItemBuyButtonTextColor() { // 马甲包策略:Store商品项购买按钮文本颜色 - 使用马甲包主色上的文本颜色 return SocialChatTheme.textOnPrimary; // 马甲包主色上的文本颜色,替代Colors.white } @override String getStoreItemActionIcon(String itemType) { // 马甲包策略:Store商品项操作图标路径 // 使用相同的图标路径,确保功能一致 switch (itemType) { case 'headdress': return "sc_images/store/sc_icon_shop_item_search.png"; // 头饰页面使用搜索图标 case 'mountains': return "sc_images/store/sc_icon_shop_item_play.png"; // 山脉页面使用播放图标 case 'theme': return "sc_images/store/sc_icon_store_theme_rev.png"; // 主题页面使用主题图标 case 'chatbox': return "sc_images/store/sc_icon_shop_item_search.png"; // 聊天气泡页面使用搜索图标 default: return "sc_images/store/sc_icon_store_theme_rev.png"; // 默认返回theme图标 } } /// === 动态页面差异化方法实现 === @override String getDynamicPageBackgroundImage() { // 马甲包策略:动态页面背景图像路径 - 使用相同图像保持功能一致 return "sc_images/index/sc_icon_index_mask.png"; } @override Color getDynamicPageScaffoldBackgroundColor() { // 马甲包策略:动态页面Scaffold背景颜色 - 保持透明以保持视觉效果 return Colors.transparent; } @override Color getDynamicPageAppBarBackgroundColor() { // 马甲包策略:动态页面AppBar背景颜色 - 保持透明以保持视觉效果 return Colors.transparent; } @override Color getDynamicPageTabLabelColor() { // 马甲包策略:动态页面Tab标签选中颜色 - 使用马甲包主要文本颜色 return SocialChatTheme.textPrimary; // 马甲包主要文本颜色,替代Colors.black87 } @override Color getDynamicPageTabUnselectedLabelColor() { // 马甲包策略:动态页面Tab标签未选中颜色 - 使用马甲包次要文本颜色 return SocialChatTheme.textSecondary; // 马甲包次要文本颜色,替代Colors.black38 } @override Color getDynamicPageTabIndicatorColor() { // 马甲包策略:动态页面Tab指示器颜色 - 使用马甲包主题色 return const Color(0xffFF5722); // 马甲包主题橙色,替代Colors.transparent } @override Color getDynamicPageTabDividerColor() { // 马甲包策略:动态页面Tab分割线颜色 - 保持透明以保持简洁设计 return Colors.transparent; } @override String getDynamicPageAddButtonIcon() { // 马甲包策略:动态页面添加动态按钮图标路径 - 使用相同图标保持功能一致 return "sc_images/dynamic/sc_icon_add_dynamic_btn.png"; } @override bool shouldDynamicPageTabScrollable() { // 马甲包策略:动态页面Tab标签是否可滚动 - 保持相同行为 return true; } @override TextStyle getDynamicPageTabLabelStyle() { // 马甲包策略:动态页面Tab标签选中文本样式 - 使用相同样式但可能应用主题颜色 // 注意:这里无法使用.sp单位,需要在调用处使用ScreenUtil() return TextStyle( fontWeight: FontWeight.bold, fontSize: 16, color: SocialChatTheme.textPrimary, // 应用马甲包文本颜色 ); } @override TextStyle getDynamicPageTabUnselectedLabelStyle() { // 马甲包策略:动态页面Tab标签未选中文本样式 - 使用相同样式但可能应用主题颜色 // 注意:这里无法使用.sp单位,需要在调用处使用ScreenUtil() return TextStyle( fontWeight: FontWeight.normal, fontSize: 15, color: SocialChatTheme.textSecondary, // 应用马甲包次要文本颜色 ); } /// === 启动页面差异化方法实现 === @override String getSplashPageBackgroundImage() { // 马甲包策略:启动页面背景图像路径 - 使用马甲包专属启动背景图像 // TODO: 根据Figma设计添加马甲包专属启动背景图像 // 目前先使用相同图像,确保功能正常 return "sc_images/splash/sc_splash.png"; } @override String getSplashPageIcon() { // 马甲包策略:启动页面图标路径 - 使用马甲包专属启动图标 // TODO: 根据Figma设计添加马甲包专属启动图标 // 目前先使用相同图标,确保功能正常 return "sc_images/splash/sc_icon_splash_icon.png"; } @override String getSplashPageSkipButtonBackground() { // 马甲包策略:启动页面跳过按钮背景图像路径 - 使用马甲包专属跳过按钮背景 // TODO: 根据Figma设计添加马甲包专属跳过按钮背景图像 // 目前先使用相同图像,确保功能正常 return "sc_images/splash/sc_icon_splash_skip_bg.png"; } @override Color getSplashPageSkipButtonTextColor() { // 马甲包策略:启动页面跳过按钮文本颜色 - 使用马甲包主色上的文本颜色 return SocialChatTheme.textOnPrimary; // 马甲包主色上的文本颜色,替代Colors.white } @override String getSplashPageKingGamesNameBackground() { // 马甲包策略:启动页面游戏名称背景图像路径 - 使用马甲包专属背景图像 // TODO: 根据Figma设计添加马甲包专属游戏名称背景图像 // 目前先使用相同图像,确保功能正常 return "sc_images/index/sc_icon_splash_king_games_name_bg.png"; } @override Color getSplashPageKingGamesTextColor() { // 马甲包策略:启动页面游戏名称文本颜色 - 使用马甲包主色上的文本颜色 return SocialChatTheme.textOnPrimary; // 马甲包主色上的文本颜色,替代Colors.white } @override String getSplashPageCpNameBackground() { // 马甲包策略:启动页面CP名称背景图像路径 - 使用马甲包专属背景图像 // TODO: 根据Figma设计添加马甲包专属CP名称背景图像 // 目前先使用相同图像,确保功能正常 return "sc_images/index/sc_icon_splash_cp_name_bg.png"; } @override Color getSplashPageCpTextColor() { // 马甲包策略:启动页面CP名称文本颜色 - 使用马甲包主色上的文本颜色 return SocialChatTheme.textOnPrimary; // 马甲包主色上的文本颜色,替代Colors.white } /// === WebView页面差异化方法实现 === @override Color getWebViewPageAppBarBackgroundColor() { // 马甲包策略:WebView页面AppBar背景颜色 - 使用马甲包背景颜色 return SocialChatTheme.backgroundColor; // 马甲包背景颜色,替代Colors.white } @override Color getWebViewPageTitleTextColor() { // 马甲包策略:WebView页面标题文本颜色 - 使用马甲包主要文本颜色 return SocialChatTheme.textPrimary; // 马甲包主要文本颜色,替代Color(0xff333333) } @override Color getWebViewPageBackArrowColor() { // 马甲包策略:WebView页面返回箭头图标颜色 - 使用马甲包主要文本颜色 return SocialChatTheme.textPrimary; // 马甲包主要文本颜色,替代Color(0xff333333) } @override Color getWebViewPageProgressBarBackgroundColor() { // 马甲包策略:WebView页面进度条背景颜色 - 使用透明背景 return Colors.transparent; // 透明背景,替代Colors.white70.withOpacity(0) } @override Color getWebViewPageProgressBarActiveColor() { // 马甲包策略:WebView页面进度条活动颜色 - 使用马甲包主题色 return SocialChatTheme.primaryColor; // 马甲包主题色,替代Color(0xffFF6000) } @override Color getGameWebViewCloseIconColor() { // 马甲包策略:游戏WebView页面关闭图标颜色 - 使用马甲包主要文本颜色 return SocialChatTheme.textPrimary; // 马甲包主要文本颜色,替代Colors.white } @override Color getGameWebViewScaffoldBackgroundColor() { // 马甲包策略:游戏WebView页面Scaffold背景颜色 - 使用马甲包背景颜色 return SocialChatTheme.backgroundColor; // 马甲包背景颜色,替代Colors.transparent } @override Color getGameWebViewProgressBarBackgroundColor() { // 马甲包策略:游戏WebView页面进度条背景颜色 - 使用马甲包背景颜色(透明) return SocialChatTheme.backgroundColor.withOpacity(0.3); // 马甲包背景颜色,半透明 } @override Color getGameWebViewLoadingIndicatorColor() { // 马甲包策略:游戏WebView页面加载指示器颜色 - 使用马甲包主题色 return SocialChatTheme.primaryColor; // 马甲包主题色,替代Color(0xffFF6000) } /// === 搜索页面差异化方法实现 === @override Color getSearchPageScaffoldBackgroundColor() { // 马甲包策略:搜索页面Scaffold背景颜色 - 使用浅灰色背景 return Colors.transparent; // 马甲包浅灰色背景颜色,替代Colors.white } @override Color getSearchPageBackIconColor() { // 马甲包策略:搜索页面返回图标颜色 - 使用深灰色 return const Color(0xff666666); // 深灰色,替代Color(0xffBBBBBB) } @override Color getSearchPageInputBorderColor() { // 马甲包策略:搜索页面搜索框边框颜色 - 使用马甲包主题色 return SocialChatTheme.transparent; // 马甲包主题色,替代Colors.transparent } @override Color getSearchPageInputTextColor() { // 马甲包策略:搜索页面搜索框文本颜色 - 使用马甲包主要文本颜色 return SocialChatTheme.textPrimary; // 马甲包主要文本颜色,替代Colors.grey } @override Color getSearchPageButtonTextColor() { // 马甲包策略:搜索页面搜索按钮文本颜色 - 使用白色 return Colors.white; // 马甲包使用白色文本,替代Colors.black } @override List getSearchPageButtonGradient() { // 马甲包策略:搜索页面搜索按钮渐变颜色 - 使用马甲包主题色渐变 return [ SocialChatTheme.transparent, SocialChatTheme.transparent, ]; // 马甲包主题色渐变,替代[Colors.transparent, Colors.transparent] } @override Color getSearchPageHistoryTitleTextColor() { // 马甲包策略:搜索页面历史记录标题文本颜色 - 使用马甲包主要文本颜色 return SocialChatTheme.textPrimary; // 马甲包主要文本颜色,替代Colors.black } @override Color getSearchPageHistoryItemTextColor() { // 马甲包策略:搜索页面历史项文本颜色 - 使用白色 return Colors.white; // 马甲包使用白色文本,替代Colors.white } @override Color getSearchPageHistoryItemBackgroundColor() { // 马甲包策略:搜索页面历史项背景颜色 - 使用马甲包主题色 return SocialChatTheme.primaryColor; // 马甲包主题色,替代Color(0xffFF9500) } @override Color getSearchPageTabIndicatorGradientStartColor() { // 马甲包策略:搜索页面Tab指示器渐变开始颜色 - 使用马甲包主题色变体 return SocialChatTheme.primaryColor; // 马甲包主题色,替代Color(0xffFFA500) } @override Color getSearchPageTabIndicatorGradientEndColor() { // 马甲包策略:搜索页面Tab指示器渐变结束颜色 - 使用马甲包主题色变体 return SocialChatTheme.primaryLight; // 马甲包浅主题色,替代Color(0xffFFD700) } @override Color getSearchPageTabSelectedLabelColor() { // 马甲包策略:搜索页面Tab标签选中颜色 - 使用马甲包主要文本颜色 return SocialChatTheme.primaryLight; // 马甲包主要文本颜色,替代Colors.black } @override Color getSearchPageTabDividerColor() { // 马甲包策略:搜索页面Tab分割线颜色 - 使用马甲包分割线颜色 return SocialChatTheme.transparent; // 马甲包分割线颜色,替代Colors.transparent } @override Color getSearchPageTabUnselectedLabelColor() { // 马甲包策略:搜索页面Tab标签未选中颜色 - 使用马甲包次要文本颜色 return SocialChatTheme.textPrimary; // 马甲包次要文本颜色,替代Colors.black26 } @override Color getSearchPageDividerContainerBackgroundColor() { // 马甲包策略:搜索页面分隔容器背景颜色 - 使用马甲包背景颜色 return Color(0xffFFF8DA); // 马甲包背景颜色,替代Color(0xffFFF8DA) } @override TextStyle getSearchPageTabSelectedLabelStyle() { // 马甲包策略:搜索页面Tab标签选中文本样式 - 使用马甲包样式 // 注意:这里无法使用.sp单位,需要在调用处使用ScreenUtil() return const TextStyle( fontSize: 18, fontWeight: FontWeight.w600, color: Colors.black, // 将在调用处替换为马甲包主要文本颜色 ).copyWith(color: SocialChatTheme.textPrimary); } @override TextStyle getSearchPageTabUnselectedLabelStyle() { // 马甲包策略:搜索页面Tab标签未选中文本样式 - 使用马甲包样式 // 注意:这里无法使用.sp单位,需要在调用处使用ScreenUtil() return const TextStyle( fontSize: 17, fontWeight: FontWeight.w400, color: Colors.black26, // 将在调用处替换为马甲包次要文本颜色 ).copyWith(color: SocialChatTheme.textSecondary); } @override EdgeInsets getSearchPageResultTabLabelPadding() { // 马甲包策略:搜索页面搜索结果Tab标签内边距 - 与原始应用相同 return const EdgeInsets.symmetric(horizontal: 15); } @override Color getSearchPageResultTabLabelColor() { // 马甲包策略:搜索页面搜索结果Tab标签选中颜色 - 使用马甲包主要文本颜色 return SocialChatTheme.textPrimary; // 马甲包主要文本颜色,替代Colors.black } @override Color getSearchPageResultTabUnselectedLabelColor() { // 马甲包策略:搜索页面搜索结果Tab标签未选中颜色 - 使用马甲包次要文本颜色 return SocialChatTheme.textSecondary; // 马甲包次要文本颜色,替代Colors.black26 } @override TextStyle getSearchPageResultTabUnselectedLabelStyle() { // 马甲包策略:搜索页面搜索结果Tab标签未选中文本样式 - 使用马甲包样式 return const TextStyle( fontSize: 17, fontWeight: FontWeight.w400, color: Colors.black26, // 将在调用处替换为马甲包次要文本颜色 ).copyWith(color: SocialChatTheme.textSecondary); } @override TextStyle getSearchPageResultTabLabelStyle() { // 马甲包策略:搜索页面搜索结果Tab标签选中文本样式 - 使用马甲包样式 return const TextStyle( fontSize: 18, fontWeight: FontWeight.w600, color: Colors.black87, // 将在调用处替换为马甲包主要文本颜色 ).copyWith(color: SocialChatTheme.textPrimary); } @override LinearGradient getSearchPageResultTabIndicatorColor() { // 马甲包策略:搜索页面搜索结果Tab指示器颜色 - 使用马甲包主题渐变 return const LinearGradient( colors: [SocialChatTheme.primaryColor, Color(0xffFF9A00)], ); } @override double getSearchPageResultTabIndicatorWidth() { // 马甲包策略:搜索页面搜索结果Tab指示器宽度 - 与原始应用相同 return 15.0; } @override Color getSearchPageResultBackgroundColor() { // 马甲包策略:搜索页面搜索结果背景颜色 - 使用浅橙色背景 return const Color(0xffFFECB3); // 马甲包浅橙色背景,替代Color(0xffFFF8DA) } @override String getSearchPageClearHistoryIcon() { // 马甲包策略:搜索页面清除历史记录图标路径 - 使用相同图标 return "sc_images/general/sc_icon_delete.png"; } @override String getSearchPageEmptyDataIcon() { // 马甲包策略:搜索页面空数据图标路径 - 使用相同图标 return "sc_images/room/sc_icon_room_defaut_bg.png"; } // === 任务页面差异化方法 === @override String getTaskPageBackgroundImage() { // 马甲包策略:任务页面背景图像 - 使用相同图片 return "sc_images/room/sc_icon_room_settig_bg.png"; } @override Color getTaskPageBackButtonColor() { // 马甲包策略:任务页面返回按钮颜色 - 使用马甲包主要文本颜色 return SocialChatTheme.textPrimary; // 马甲包主要文本颜色,替代Colors.black } @override Color getTaskPageScaffoldBackgroundColor() { // 马甲包策略:任务页面Scaffold背景颜色 - 使用马甲包背景颜色 return const Color(0xfff5f5f5); // 马甲包背景颜色 } @override Color getTaskPageContainerBackgroundColor() { // 马甲包策略:任务页面容器背景颜色 - 使用马甲包表面颜色 return SocialChatTheme.surfaceColor; // 马甲包表面颜色,替代Color(0xffE6E6E6) } @override Color getTaskPageBorderColor() { // 马甲包策略:任务页面边框颜色 - 使用马甲包边框颜色 return SocialChatTheme.borderColor; // 马甲包边框颜色,替代Color(0xffE6E6E6) } @override Color getTaskPageSpecialBorderColor() { // 马甲包策略:任务页面特殊边框颜色 - 使用马甲包主题色 return SocialChatTheme.primaryColor; // 马甲包主题色,替代Color(0xffBB92FF) } @override Color getTaskPagePrimaryTextColor() { // 马甲包策略:任务页面主要文本颜色 - 使用马甲包主要文本颜色 return SocialChatTheme.textPrimary; // 马甲包主要文本颜色,替代Colors.black } @override Color getTaskPageGoldTextColor() { // 马甲包策略:任务页面金币文本颜色 - 使用马甲包主题色 return SocialChatTheme.primaryColor; // 马甲包主题色,替代Color(0xffFFB627) } @override Color getTaskPageExpTextColor() { // 马甲包策略:任务页面经验文本颜色 - 使用马甲包成功颜色 return SocialChatTheme.successColor; // 马甲包成功颜色,替代Color(0xff52FF90) } @override Color getTaskPageThemeColor() { // 马甲包策略:任务页面主题颜色 - 使用马甲包主题色 return SocialChatTheme.primaryColor; // 马甲包主题色,替代Color(0xffFF5722) } @override Color getTaskPageThemeLightColor() { // 马甲包策略:任务页面浅主题颜色 - 使用马甲包浅主题色 return SocialChatTheme.primaryLight; // 马甲包浅主题色,替代Color(0xffFF9500) } @override List getTaskPageReceivableButtonGradient() { // 马甲包策略:任务页面可领取按钮渐变颜色 - 使用马甲包主题色渐变 return [ SocialChatTheme.primaryColor, const Color(0xffFF9A00), ]; // 马甲包主题色渐变,替代[Color(0xffBB92FF), Color(0xff8B45FF)] } @override List getTaskPageCompletedButtonGradient() { // 马甲包策略:任务页面已完成按钮渐变颜色 - 使用灰色渐变 return [ const Color(0xffCCCCCC), const Color(0xff999999), ]; // 马甲包灰色渐变,替代[Color(0xffDADADA), Color(0xff585859)] } @override Color getTaskPageButtonTextColor() { // 马甲包策略:任务页面按钮文本颜色 - 使用马甲包主色上的文本颜色 return SocialChatTheme.textOnPrimary; // 马甲包主色上的文本颜色,替代Colors.white } @override Color getTaskPageMaskColor() { // 马甲包策略:任务页面遮罩颜色 - 半透明黑色 return Colors.black.withOpacity(0.5); } @override String getTaskPageHeadBackgroundImage() { // 马甲包策略:任务页面头部背景图像 - 使用相同图片 return "sc_images/index/sc_icon_task_head_bg.png"; } @override String getTaskPageGoldIcon() { // 马甲包策略:任务页面金币图标 - 使用相同图标 return "sc_images/general/sc_icon_jb.png"; } @override String getTaskPageExpIcon() { // 马甲包策略:任务页面经验图标 - 使用相同图标 return "sc_images/index/sc_icon_task_exp.png"; } @override String getTaskPageInvitationRewardBackgroundImage() { // 马甲包策略:任务页面邀请奖励背景图像 - 使用相同图片 return "sc_images/index/sc_icon_invitation_bg.png"; } @override Color getTaskPageGiftBagTextColor() { // 马甲包策略:任务页面礼包文本颜色 - 使用马甲包主色上的文本颜色 return SocialChatTheme.textOnPrimary; // 马甲包主色上的文本颜色,替代Colors.white } @override Color getTaskPageAppBarBackgroundColor() { // 马甲包策略:任务页面AppBar背景颜色 - 保持透明,与原始应用一致 return Colors.transparent; } @override Color getTaskPageTransparentContainerColor() { // 马甲包策略:任务页面透明容器颜色 - 保持透明,与原始应用一致 return Colors.transparent; } /// === 设置页面差异化方法实现 === @override String getSettingsPageBackgroundImage() { // 马甲包策略:设置页面背景图像路径 - 使用相同图片 return "sc_images/person/sc_icon_edit_userinfo_bg.png"; } @override Color getSettingsPageMainContainerBackgroundColor() { // 马甲包策略:设置页面主容器背景颜色 - 使用马甲包背景色 return Color(0xff18F2B1).withOpacity(0.1); // 马甲包背景色,与原始应用一致 } @override Color getSettingsPageMainContainerBorderColor() { // 马甲包策略:设置页面主容器边框颜色 - 使用马甲包边框色 return SocialChatTheme.borderColor; // 马甲包边框色,替代Color(0xffE6E6E6) } @override Color getSettingsPagePrimaryTextColor() { // 马甲包策略:设置页面主文本颜色 - 使用马甲包主要文本颜色 return SocialChatTheme.textPrimary; // 马甲包主要文本颜色,替代Colors.black } @override Color getSettingsPageSecondaryTextColor() { // 马甲包策略:设置页面次要文本颜色 - 使用马甲包次要文本颜色 return SocialChatTheme.textSecondary; // 马甲包次要文本颜色,替代Colors.black38 } @override Color getSettingsPageIconColor() { // 马甲包策略:设置页面图标颜色 - 使用马甲包次要文本颜色 return SocialChatTheme.textPrimary; // 马甲包次要文本颜色,替代Colors.black26 } @override Color getSettingsPageCommonTextColor() { // 马甲包策略:设置页面常见文本颜色 - 使用深灰色 return const Color(0xff666666); } @override Color getSettingsPageAboutTextColor() { // 马甲包策略:设置页面关于文本颜色 - 使用深灰色 return const Color(0xff666666); } @override Color getSettingsPageContainerBorderColor() { // 马甲包策略:设置页面容器边框颜色 - 使用浅灰色 return Colors.transparent; } @override Color getSettingsPageContainerBackgroundColor() { // 马甲包策略:设置页面容器背景颜色 - 使用白色(与原始应用相同) return Color(0xff18F2B1).withOpacity(0.1); } @override Color getSettingsPageButtonBackgroundColor() { // 马甲包策略:设置页面按钮背景颜色 - 使用马甲包主题色 return Color(0xff18F2B1).withOpacity(0.1); } @override Color getSettingsPageButtonTextColor() { // 马甲包策略:设置页面按钮文本颜色 - 使用白色 return Colors.white; } /// === 语言页面差异化方法实现 === @override String getLanguagePageBackgroundImage() { // 马甲包策略:语言页面背景图像路径 - 使用相同图片 return "sc_images/person/sc_icon_edit_userinfo_bg.png"; } @override Color getLanguagePageCheckboxActiveColor() { // 马甲包策略:语言页面复选框选中颜色 - 使用马甲包主题色 return SocialChatTheme.primaryColor; // 马甲包主题色,替代Color(0xffFF5722) } @override Color getLanguagePageCheckboxBorderColor() { // 马甲包策略:语言页面复选框边框颜色 - 使用马甲包边框色 return Colors.white54; // 马甲包边框色,替代Colors.grey } @override Color getLanguagePagePrimaryTextColor() { // 马甲包策略:语言页面主文本颜色 - 使用马甲包主要文本颜色 return SocialChatTheme.textPrimary; // 马甲包主要文本颜色,替代Colors.black } @override Color getLanguagePageCheckColor() { // 马甲包策略:语言页面复选框对勾颜色 - 使用透明色 return Colors.transparent; } @override double getLanguagePageCheckboxBorderRadius() { // 马甲包策略:语言页面复选框边框圆角 - 使用相同的圆角值15 return 15; } @override double getLanguagePageCheckboxBorderWidth() { // 马甲包策略:语言页面复选框边框宽度 - 使用相同的边框宽度2 return 2; } @override Color getLanguagePageScaffoldBackgroundColor() { // 马甲包策略:语言页面Scaffold背景颜色 - 使用透明色 return Colors.transparent; } /// === 账户页面差异化方法实现 === @override String getAccountPageBackgroundImage() { // 马甲包策略:账户页面背景图像路径 - 使用相同图片 return "sc_images/person/sc_icon_edit_userinfo_bg.png"; } @override Color getAccountPageMainContainerBackgroundColor() { // 马甲包策略:账户页面主容器背景颜色 - 使用马甲包背景色 return Color(0xff18F2B1).withOpacity(0.1); } @override Color getAccountPageMainContainerBorderColor() { // 马甲包策略:账户页面主容器边框颜色 - 使用马甲包边框色 return const Color(0xffE0E0E0); // SocialChatTheme.borderColor } @override Color getAccountPagePrimaryTextColor() { // 马甲包策略:账户页面主文本颜色 - 使用马甲包主要文本颜色 return SocialChatTheme.textPrimary; // 马甲包主要文本颜色,替代Colors.black } @override Color getAccountPageSecondaryTextColor() { // 马甲包策略:账户页面次要文本颜色 - 使用马甲包次要文本颜色 return SocialChatTheme.textSecondary; // 马甲包次要文本颜色,替代Colors.black38 } @override Color getAccountPageIconColor() { // 马甲包策略:账户页面图标颜色 - 使用马甲包次要文本颜色 return SocialChatTheme.textPrimary; // 马甲包次要文本颜色,替代Colors.black26 } @override Color getAccountPageDividerColor() { // 马甲包策略:账户页面分隔线颜色 - 使用马甲包边框颜色 return SocialChatTheme.borderColor; // 马甲包边框颜色,替代Colors.black12 } @override Color getAccountPageScaffoldBackgroundColor() { // 马甲包策略:账户页面Scaffold背景颜色 - 使用透明色 return Colors.transparent; } @override Color getGoldRecordPageListBackgroundColor() { // 马甲包策略:金币记录页面列表背景颜色 - 深灰色 return Colors.transparent; // #1a1a1a } }