logo和名称替换

This commit is contained in:
谢宇宁
2026-10-14 11:23:36 +07:00
parent 1cb514cd02
commit c5c04a7967
478 changed files with 8990 additions and 4948 deletions
+33 -23
View File
@@ -5,21 +5,21 @@ import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:get/get.dart';
import 'package:hgmj/hj_page/main_page/provider/bottom_bar_provider.dart';
import 'package:hgmj/hj_page/pre_sale/limit_time_provider.dart';
import 'package:hgmj/hj_page/pre_sale/pre_sale_provider.dart';
import 'package:hgmj/hj_page/splash/splash_page.dart';
import 'package:hgmj/hj_utils/codec_support.dart';
import 'package:hgmj/hj_utils/video_view_type.dart';
import 'package:hgmj/routers/router_map.dart';
import 'package:wydj/hj_page/main_page/provider/bottom_bar_provider.dart';
import 'package:wydj/hj_page/pre_sale/limit_time_provider.dart';
import 'package:wydj/hj_page/pre_sale/pre_sale_provider.dart';
import 'package:wydj/hj_page/splash/splash_page.dart';
import 'package:wydj/hj_utils/codec_support.dart';
import 'package:wydj/hj_utils/video_view_type.dart';
import 'package:wydj/routers/router_map.dart';
import 'package:visibility_detector/visibility_detector.dart';
import 'package:hgmj/tools_base/debug_log.dart';
import 'package:hgmj/tools_base/global_store/store.dart';
import 'package:hgmj/tools_base/headphone_monitor.dart';
import 'package:hgmj/tools_base/net/http_manager.dart';
import 'package:hgmj/tools_base/video_download/video_download_manager.dart';
import 'package:hgmj/track_event_manager/device_service.dart';
import 'package:hgmj/track_event_manager/track_session.dart';
import 'package:wydj/tools_base/debug_log.dart';
import 'package:wydj/tools_base/global_store/store.dart';
import 'package:wydj/tools_base/headphone_monitor.dart';
import 'package:wydj/tools_base/net/http_manager.dart';
import 'package:wydj/tools_base/video_download/video_download_manager.dart';
import 'package:wydj/track_event_manager/device_service.dart';
import 'package:wydj/track_event_manager/track_session.dart';
// 只引 OKToast 挂载所需符号:oktoast 也导出同名 showToast,全量 import 会与自家 toast.dart 冲突
import 'package:oktoast/oktoast.dart' show OKToast, ToastPosition;
import 'package:provider/provider.dart';
@@ -35,14 +35,16 @@ import 'hj_page/main_page/provider/msg_provider.dart';
import 'hj_page/mine/mine_vip/vip_product_manager.dart';
import 'hj_utils/light_model.dart';
final RouteObserver<ModalRoute<void>> routeObserver = RouteObserver<ModalRoute<void>>();
final RouteObserver<ModalRoute<void>> routeObserver =
RouteObserver<ModalRoute<void>>();
void main() async {
runZonedGuarded(() async {
WidgetsFlutterBinding.ensureInitialized();
// 可见性回调默认攒 500ms 才发,短视频切 tab 会拖半秒才静音;压到 100ms(听不出延迟)。
// 不设 0:那样滚动中每帧都回调
VisibilityDetectorController.instance.updateInterval = const Duration(milliseconds: 100);
VisibilityDetectorController.instance.updateInterval =
const Duration(milliseconds: 100);
VideoDownloadManager.instance.init();
await lightKV.init(); //初始化本地存储(lightKV/MMKV),其余初始化都依赖它,必须最先
httpManager.initDefault();
@@ -53,7 +55,8 @@ void main() async {
initVideoViewType(), //视频渲染方式:读本机持久化标记,决定 textureView/platformView
CodecSupport.init(), //H.265 硬解能力:查芯片能力 + 读本机禁用标记,决定选 265 还是回落 264
]);
await TrackSessionManager().onAppColdStart(); //初始化请求头 sid(依赖 DeviceInfoService)
await TrackSessionManager()
.onAppColdStart(); //初始化请求头 sid(依赖 DeviceInfoService)
WidgetsBinding.instance.addObserver(_TrackLifecycleObserver());
PromoCountdown.reset(); //优惠倒计时(场景3/4):app 启动时设定一次起点,全局仅此一次,进程存活期间自然倒数、不重置
HeadphoneMonitor.instance.start(); //耳机/蓝牙断开、来电等自动暂停视频,防止音频外放泄露隐私
@@ -109,9 +112,12 @@ class MyApp extends StatelessWidget {
ChangeNotifierProvider.value(value: HomeBottomProvider()),
ChangeNotifierProvider.value(value: DarkwebBottomProvider()),
ChangeNotifierProvider.value(value: CommunityBottomProvider()),
ChangeNotifierProvider.value(value: MineMsgProvider()), //消息中心红点,新人倒计时
ChangeNotifierProvider.value(value: HomeUpdateMarkerProvider()), //首页最新/今日最新红点
ChangeNotifierProvider.value(value: vipProductManager), //会员卡列表统一数据源
ChangeNotifierProvider.value(
value: MineMsgProvider()), //消息中心红点,新人倒计时
ChangeNotifierProvider.value(
value: HomeUpdateMarkerProvider()), //首页最新/今日最新红点
ChangeNotifierProvider.value(
value: vipProductManager), //会员卡列表统一数据源
ChangeNotifierProvider.value(value: LimitTimeProvider()), //限时活动
],
child: GetMaterialApp(
@@ -159,7 +165,8 @@ class MyApp extends StatelessWidget {
),
// 全局 BackButton 用 iOS 经典风格箭头(与项目历史 BaseAppBar 视觉一致)
actionIconTheme: ActionIconThemeData(
backButtonIconBuilder: (context) => const Icon(Icons.arrow_back_ios),
backButtonIconBuilder: (context) =>
const Icon(Icons.arrow_back_ios),
),
),
builder: (context, child) => OKToast(
@@ -167,7 +174,8 @@ class MyApp extends StatelessWidget {
backgroundColor: Colors.black.withValues(alpha: .85),
radius: 8,
textStyle: const TextStyle(color: Colors.white, fontSize: 14),
textPadding: const EdgeInsets.symmetric(horizontal: 16, vertical: 12),
textPadding:
const EdgeInsets.symmetric(horizontal: 16, vertical: 12),
child: child!,
),
),
@@ -183,7 +191,9 @@ class _TrackLifecycleObserver extends WidgetsBindingObserver {
@override
void didChangeAppLifecycleState(AppLifecycleState state) {
super.didChangeAppLifecycleState(state);
if (state == AppLifecycleState.paused || state == AppLifecycleState.inactive || state == AppLifecycleState.detached) {
if (state == AppLifecycleState.paused ||
state == AppLifecycleState.inactive ||
state == AppLifecycleState.detached) {
TrackSessionManager().onAppPause();
} else if (state == AppLifecycleState.resumed) {
TrackSessionManager().onAppResume();