chatapp3-flutter/lib/app/config/strategies/variant1_business_logic_strategy.dart
2026-04-09 21:32:23 +08:00

2566 lines
87 KiB
Dart
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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<Widget> getHomeTabPages(BuildContext context) {
final List<Widget> pages = [];
pages.add(SCHomePartyPage());
pages.add(SCHomeMinePage());
// pages.add(HomeEventPage());
return pages;
}
@override
List<Widget> getHomeTabLabels(BuildContext context) {
final List<Widget> 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<String, double?> 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<Color>? 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<Color> getMePageGradientColors(bool isFemale) {
// 马甲包策略:使用统一的渐变颜色,不区分性别
return [
const Color(0xffFF5722), // 马甲包主题色
const Color(0xffFEB219), // 马甲包辅助色
const Color(0xffFF9326), // 马甲包辅助色
];
}
@override
List<Color> 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<Color> 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<Color> 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<String, int> 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<Color> 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<Color> 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<Color> 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<Color> getTaskPageReceivableButtonGradient() {
// 马甲包策略:任务页面可领取按钮渐变颜色 - 使用马甲包主题色渐变
return [
SocialChatTheme.primaryColor,
const Color(0xffFF9A00),
]; // 马甲包主题色渐变,替代[Color(0xffBB92FF), Color(0xff8B45FF)]
}
@override
List<Color> 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
}
}