2563 lines
87 KiB
Dart
2563 lines
87 KiB
Dart
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':
|
||
// Fallback to the activity header until dedicated localized assets land.
|
||
return "sc_images/room/sc_icon_activity_gift_head_bg.png";
|
||
case 'CP':
|
||
// Fallback to the activity header until dedicated localized assets land.
|
||
return "sc_images/room/sc_icon_activity_gift_head_bg.png";
|
||
case 'MAGIC':
|
||
// Fallback to the activity header until dedicated localized assets land.
|
||
return "sc_images/room/sc_icon_activity_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
|
||
}
|
||
}
|