fix: danmaku block

Signed-off-by: bggRGjQaUbCoE <githubaccount56556@proton.me>
This commit is contained in:
bggRGjQaUbCoE
2024-12-26 18:10:30 +08:00
parent d3c7b3830f
commit 79da08b285
59 changed files with 207 additions and 303 deletions

View File

@@ -2,22 +2,18 @@ import 'package:flutter/material.dart';
import 'package:flutter_inappwebview/flutter_inappwebview.dart';
import 'package:flutter_smart_dialog/flutter_smart_dialog.dart';
import 'package:get/get.dart';
import 'package:hive/hive.dart';
import 'package:PiliPalaX/http/init.dart';
import 'package:PiliPalaX/models/common/theme_type.dart';
import 'package:PiliPalaX/utils/feed_back.dart';
import 'package:PiliPalaX/utils/login.dart';
import 'package:PiliPalaX/utils/storage.dart';
import 'package:hive/hive.dart';
import '../../models/common/dynamic_badge_mode.dart';
import '../../models/common/nav_bar_config.dart';
import '../main/index.dart';
import 'widgets/select_dialog.dart';
class SettingController extends GetxController {
Box userInfoCache = GStorage.userInfo;
Box setting = GStorage.setting;
Box localCache = GStorage.localCache;
RxBool userLogin = false.obs;
RxBool hiddenSettingUnlocked = false.obs;
RxBool feedBackEnable = false.obs;
@@ -29,10 +25,12 @@ class SettingController extends GetxController {
Rx<DynamicBadgeMode> dynamicBadgeType = DynamicBadgeMode.number.obs;
RxInt defaultHomePage = 0.obs;
Box get setting => GStorage.setting;
@override
void onInit() {
super.onInit();
userInfo = userInfoCache.get('userInfoCache');
userInfo = GStorage.userInfo.get('userInfoCache');
userLogin.value = userInfo != null;
hiddenSettingUnlocked.value =
setting.get(SettingBoxKey.hiddenSettingUnlocked, defaultValue: false);
@@ -71,8 +69,8 @@ class SettingController extends GetxController {
await CookieManager().deleteAllCookies();
Request.dio.options.headers['cookie'] = '';
// 清空本地存储的用户标识
userInfoCache.put('userInfoCache', null);
localCache.put(LocalCacheKey.accessKey,
GStorage.userInfo.put('userInfoCache', null);
GStorage.localCache.put(LocalCacheKey.accessKey,
{'mid': -1, 'value': '', 'refresh': ''});
userLogin.value = false;
if (Get.isRegistered<MainController>()) {

View File

@@ -7,11 +7,11 @@ import 'package:PiliPalaX/utils/global_data.dart';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:get/get.dart';
import 'package:hive/hive.dart';
import 'package:PiliPalaX/models/common/dynamics_type.dart';
import 'package:PiliPalaX/models/common/reply_sort_type.dart';
import 'package:PiliPalaX/pages/setting/widgets/select_dialog.dart';
import 'package:PiliPalaX/utils/storage.dart';
import 'package:hive/hive.dart';
import 'package:material_design_icons_flutter/material_design_icons_flutter.dart';
import '../home/index.dart';
@@ -26,7 +26,6 @@ class ExtraSetting extends StatefulWidget {
}
class _ExtraSettingState extends State<ExtraSetting> {
Box setting = GStorage.setting;
final SettingController settingController = Get.put(SettingController());
late dynamic defaultReplySort;
late dynamic defaultDynamicType;
@@ -36,6 +35,8 @@ class _ExtraSettingState extends State<ExtraSetting> {
late String defaultSystemProxyPort;
bool userLogin = false;
Box get setting => GStorage.setting;
@override
void initState() {
super.initState();
@@ -201,8 +202,8 @@ class _ExtraSettingState extends State<ExtraSetting> {
TextButton(
onPressed: () {
Get.back();
GStorage.setting
.put(SettingBoxKey.dynamicPeriod, dynamicPeriod);
setting.put(
SettingBoxKey.dynamicPeriod, dynamicPeriod);
Get.find<MainController>().dynamicPeriod =
dynamicPeriod;
},

View File

@@ -219,13 +219,14 @@ class _ColorSelectPageState extends State<ColorSelectPage> {
}
class ColorSelectController extends GetxController {
Box setting = GStorage.setting;
RxBool dynamicColor = true.obs;
RxInt type = 0.obs;
late final List<Map<String, dynamic>> colorThemes;
RxInt currentColor = 0.obs;
RxDouble currentTextScale = 1.0.obs;
Box get setting => GStorage.setting;
@override
void onInit() {
colorThemes = colorThemeTypes;

View File

@@ -16,7 +16,8 @@ class _SetDisplayModeState extends State<SetDisplayMode> {
List<DisplayMode> modes = <DisplayMode>[];
DisplayMode? active;
DisplayMode? preferred;
Box setting = GStorage.setting;
Box get setting => GStorage.setting;
final ValueNotifier<int> page = ValueNotifier<int>(0);
late final PageController controller = PageController()

View File

@@ -11,13 +11,14 @@ class FontSizeSelectPage extends StatefulWidget {
}
class _FontSizeSelectPageState extends State<FontSizeSelectPage> {
Box setting = GStorage.setting;
List<double> list = List.generate(16, (index) => 0.85 + index * 0.05);
//[0.85, 0.9, 0.95, 1.0, 1.05, 1.1, 1.15, 1.2, 1.25, 1.3, 1.35];
late double minSize;
late double maxSize;
late double currentSize;
Box get setting => GStorage.setting;
@override
void initState() {
super.initState();

View File

@@ -1,6 +1,5 @@
import 'package:flutter/material.dart';
import 'package:flutter_smart_dialog/flutter_smart_dialog.dart';
import 'package:hive/hive.dart';
import 'package:PiliPalaX/models/common/tab_type.dart';
import 'package:PiliPalaX/utils/storage.dart';
@@ -12,7 +11,6 @@ class TabbarSetPage extends StatefulWidget {
}
class _TabbarSetPageState extends State<TabbarSetPage> {
Box settingStorage = GStorage.setting;
late List defaultTabs;
late List<String> tabbarSort;
@@ -20,7 +18,7 @@ class _TabbarSetPageState extends State<TabbarSetPage> {
void initState() {
super.initState();
defaultTabs = tabsConfig;
tabbarSort = settingStorage
tabbarSort = GStorage.setting
.get(SettingBoxKey.tabbarSort,
defaultValue: ['live', 'rcmd', 'hot', 'rank', 'bangumi'])
.map<String>((i) => i.toString())
@@ -43,7 +41,7 @@ class _TabbarSetPageState extends State<TabbarSetPage> {
.where((i) => tabbarSort.contains((i['type'] as TabType).id))
.map<String>((i) => (i['type'] as TabType).id)
.toList();
settingStorage.put(SettingBoxKey.tabbarSort, sortedTabbar);
GStorage.setting.put(SettingBoxKey.tabbarSort, sortedTabbar);
SmartDialog.showToast('保存成功,下次启动时生效');
}

View File

@@ -3,8 +3,8 @@ import 'package:flutter/services.dart';
import 'package:flutter_smart_dialog/flutter_smart_dialog.dart';
import 'package:get/get.dart';
import 'package:PiliPalaX/pages/setting/widgets/switch_item.dart';
import 'package:PiliPalaX/plugin/pl_player/index.dart';
import 'package:PiliPalaX/utils/storage.dart';
import 'package:hive/hive.dart';
class PlaySpeedPage extends StatefulWidget {
const PlaySpeedPage({super.key});
@@ -45,15 +45,17 @@ class _PlaySpeedPageState extends State<PlaySpeedPage> {
},
];
Box get video => GStorage.video;
@override
void initState() {
super.initState();
// 默认倍速
playSpeedDefault =
videoStorage.get(VideoBoxKey.playSpeedDefault, defaultValue: 1.0);
video.get(VideoBoxKey.playSpeedDefault, defaultValue: 1.0);
// 默认长按倍速
longPressSpeedDefault =
videoStorage.get(VideoBoxKey.longPressSpeedDefault, defaultValue: 3.0);
video.get(VideoBoxKey.longPressSpeedDefault, defaultValue: 3.0);
// 倍速
speedList = GStorage.speedList;
enableAutoLongPressSpeed = GStorage.setting
@@ -113,7 +115,7 @@ class _PlaySpeedPageState extends State<PlaySpeedPage> {
Get.back();
speedList.add(customSpeed);
speedList.sort();
await videoStorage.put(VideoBoxKey.speedsList, speedList);
await video.put(VideoBoxKey.speedsList, speedList);
setState(() {});
}
},
@@ -165,12 +167,11 @@ class _PlaySpeedPageState extends State<PlaySpeedPage> {
if (id == 1) {
// 设置默认倍速
playSpeedDefault = speed;
videoStorage.put(VideoBoxKey.playSpeedDefault, playSpeedDefault);
video.put(VideoBoxKey.playSpeedDefault, playSpeedDefault);
} else if (id == 2) {
// 设置默认长按倍速
longPressSpeedDefault = speed;
videoStorage.put(
VideoBoxKey.longPressSpeedDefault, longPressSpeedDefault);
video.put(VideoBoxKey.longPressSpeedDefault, longPressSpeedDefault);
} else if (id == -1) {
if ([
1.0,
@@ -181,7 +182,7 @@ class _PlaySpeedPageState extends State<PlaySpeedPage> {
return;
}
speedList.removeAt(index);
await videoStorage.put(VideoBoxKey.speedsList, speedList);
await video.put(VideoBoxKey.speedsList, speedList);
}
setState(() {});
}
@@ -194,7 +195,7 @@ class _PlaySpeedPageState extends State<PlaySpeedPage> {
actions: [
TextButton(
onPressed: () async {
await videoStorage.delete(VideoBoxKey.speedsList);
await video.delete(VideoBoxKey.speedsList);
speedList = GStorage.speedList;
setState(() {});
},

View File

@@ -3,11 +3,11 @@ import 'dart:io';
import 'package:flutter/material.dart';
import 'package:flutter_smart_dialog/flutter_smart_dialog.dart';
import 'package:get/get.dart';
import 'package:hive/hive.dart';
import 'package:PiliPalaX/pages/setting/widgets/select_dialog.dart';
import 'package:PiliPalaX/plugin/pl_player/index.dart';
import 'package:PiliPalaX/services/service_locator.dart';
import 'package:PiliPalaX/utils/storage.dart';
import 'package:hive/hive.dart';
import '../../models/video/play/subtitle.dart';
import 'widgets/switch_item.dart';
@@ -20,11 +20,12 @@ class PlaySetting extends StatefulWidget {
}
class _PlaySettingState extends State<PlaySetting> {
Box setting = GStorage.setting;
late String defaultSubtitlePreference;
late int defaultFullScreenMode;
late int defaultBtmProgressBehavior;
Box get setting => GStorage.setting;
@override
void initState() {
super.initState();

View File

@@ -1,7 +1,6 @@
import 'package:flutter/material.dart';
import 'package:flutter_smart_dialog/flutter_smart_dialog.dart';
import 'package:get/get.dart';
import 'package:hive/hive.dart';
import 'package:PiliPalaX/http/interceptor_anonymity.dart';
import 'package:PiliPalaX/utils/storage.dart';
@@ -17,14 +16,13 @@ class PrivacySetting extends StatefulWidget {
class _PrivacySettingState extends State<PrivacySetting> {
bool userLogin = false;
Box userInfoCache = GStorage.userInfo;
UserInfoData? userInfo;
late bool hiddenSettingUnlocked;
@override
void initState() {
super.initState();
userInfo = userInfoCache.get('userInfoCache');
userInfo = GStorage.userInfo.get('userInfoCache');
userLogin = userInfo != null;
hiddenSettingUnlocked = GStorage.setting
.get(SettingBoxKey.hiddenSettingUnlocked, defaultValue: false);

View File

@@ -19,10 +19,7 @@ class RecommendSetting extends StatefulWidget {
}
class _RecommendSettingState extends State<RecommendSetting> {
Box setting = GStorage.setting;
static Box localCache = GStorage.localCache;
late dynamic defaultRcmdType;
Box userInfoCache = GStorage.userInfo;
late dynamic userInfo;
bool userLogin = false;
late dynamic accessKeyInfo;
@@ -31,15 +28,18 @@ class _RecommendSettingState extends State<RecommendSetting> {
late int minLikeRatioForRecommend;
late String banWordForRecommend;
Box get setting => GStorage.setting;
@override
void initState() {
super.initState();
// 首页默认推荐类型
defaultRcmdType =
setting.get(SettingBoxKey.defaultRcmdType, defaultValue: 'app');
userInfo = userInfoCache.get('userInfoCache');
userInfo = GStorage.userInfo.get('userInfoCache');
userLogin = userInfo != null;
accessKeyInfo = localCache.get(LocalCacheKey.accessKey, defaultValue: null);
accessKeyInfo =
GStorage.localCache.get(LocalCacheKey.accessKey, defaultValue: null);
// filterUnfollowedRatio = setting
// .get(SettingBoxKey.filterUnfollowedRatio, defaultValue: 0);
minDurationForRcmd =

View File

@@ -11,6 +11,7 @@ import 'package:dio/dio.dart';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:get/get.dart';
import 'package:hive/hive.dart';
import 'package:material_design_icons_flutter/material_design_icons_flutter.dart';
import 'package:uuid/uuid.dart';
@@ -33,6 +34,8 @@ class _SponsorBlockPageState extends State<SponsorBlockPage> {
late bool _blockTrack;
bool? _serverStatus;
Box get setting => GStorage.setting;
@override
void initState() {
super.initState();
@@ -116,8 +119,7 @@ class _SponsorBlockPageState extends State<SponsorBlockPage> {
Get.back();
_blockLimit = max(
0.0, double.tryParse(_textController.text) ?? 0.0);
await GStorage.setting
.put(SettingBoxKey.blockLimit, _blockLimit);
await setting.put(SettingBoxKey.blockLimit, _blockLimit);
setState(() {});
},
child: Text('确定'),
@@ -180,8 +182,7 @@ class _SponsorBlockPageState extends State<SponsorBlockPage> {
onPressed: () async {
Get.back();
_userId = Uuid().v4().replaceAll('-', '');
await GStorage.setting
.put(SettingBoxKey.blockUserID, _userId);
await setting.put(SettingBoxKey.blockUserID, _userId);
setState(() {});
},
child: Text('随机'),
@@ -200,8 +201,7 @@ class _SponsorBlockPageState extends State<SponsorBlockPage> {
if (key.currentState?.validate() == true) {
Get.back();
_userId = _textController.text;
await GStorage.setting
.put(SettingBoxKey.blockUserID, _userId);
await setting.put(SettingBoxKey.blockUserID, _userId);
setState(() {});
}
},
@@ -216,13 +216,13 @@ class _SponsorBlockPageState extends State<SponsorBlockPage> {
void _updateBlockToast() async {
_blockToast = !_blockToast;
await GStorage.setting.put(SettingBoxKey.blockToast, _blockToast);
await setting.put(SettingBoxKey.blockToast, _blockToast);
setState(() {});
}
void _updateBlockTrack() async {
_blockTrack = !_blockTrack;
await GStorage.setting.put(SettingBoxKey.blockTrack, _blockTrack);
await setting.put(SettingBoxKey.blockTrack, _blockTrack);
setState(() {});
}
@@ -298,8 +298,8 @@ class _SponsorBlockPageState extends State<SponsorBlockPage> {
onPressed: () async {
Get.back();
_blockServer = HttpString.sponsorBlockBaseUrl;
await GStorage.setting
.put(SettingBoxKey.blockServer, _blockServer);
await setting.put(
SettingBoxKey.blockServer, _blockServer);
setState(() {});
},
child: Text('重置'),
@@ -317,8 +317,8 @@ class _SponsorBlockPageState extends State<SponsorBlockPage> {
onPressed: () async {
Get.back();
_blockServer = _textController.text;
await GStorage.setting
.put(SettingBoxKey.blockServer, _blockServer);
await setting.put(
SettingBoxKey.blockServer, _blockServer);
setState(() {});
},
child: Text('确定'),
@@ -439,7 +439,7 @@ class _SponsorBlockPageState extends State<SponsorBlockPage> {
callback: (Color? color) async {
_blockColor[index] =
color ?? _blockSettings[index].first.color;
await GStorage.setting.put(
await setting.put(
SettingBoxKey.blockColor,
_blockColor
.map((item) =>
@@ -491,7 +491,7 @@ class _SponsorBlockPageState extends State<SponsorBlockPage> {
initialValue: _blockSettings[index].second,
onSelected: (item) async {
_blockSettings[index].second = item;
await GStorage.setting.put(SettingBoxKey.blockSettings,
await setting.put(SettingBoxKey.blockSettings,
_blockSettings.map((item) => item.second.index).toList());
setState(() {});
},

View File

@@ -4,13 +4,13 @@ import 'package:auto_orientation/auto_orientation.dart';
import 'package:flutter/material.dart';
import 'package:flutter_smart_dialog/flutter_smart_dialog.dart';
import 'package:get/get.dart';
import 'package:hive/hive.dart';
import 'package:PiliPalaX/models/common/theme_type.dart';
import 'package:PiliPalaX/pages/setting/pages/color_select.dart';
import 'package:PiliPalaX/pages/setting/widgets/select_dialog.dart';
import 'package:PiliPalaX/pages/setting/widgets/slide_dialog.dart';
import 'package:PiliPalaX/utils/global_data.dart';
import 'package:PiliPalaX/utils/storage.dart';
import 'package:hive/hive.dart';
import '../../models/common/dynamic_badge_mode.dart';
import '../../models/common/up_panel_position.dart';
@@ -31,11 +31,12 @@ class _StyleSettingState extends State<StyleSetting> {
final ColorSelectController colorSelectController =
Get.put(ColorSelectController());
Box setting = GStorage.setting;
late ThemeType _tempThemeValue;
late double maxRowWidth;
late UpPanelPosition upPanelPosition;
Box get setting => GStorage.setting;
@override
void initState() {
super.initState();

View File

@@ -18,7 +18,6 @@ class VideoSetting extends StatefulWidget {
}
class _VideoSettingState extends State<VideoSetting> {
Box setting = GStorage.setting;
late dynamic defaultVideoQa;
late dynamic defaultVideoQaCellular;
late dynamic defaultAudioQa;
@@ -29,6 +28,8 @@ class _VideoSettingState extends State<VideoSetting> {
late dynamic videoSync;
late dynamic defaultCDNService;
Box get setting => GStorage.setting;
@override
void initState() {
super.initState();

View File

@@ -1,7 +1,7 @@
import 'package:flutter/material.dart';
import 'package:hive/hive.dart';
import 'package:PiliPalaX/models/video/play/quality.dart';
import 'package:PiliPalaX/utils/storage.dart';
import 'package:hive/hive.dart';
class SetSelectItem extends StatefulWidget {
final String? title;
@@ -19,12 +19,13 @@ class SetSelectItem extends StatefulWidget {
}
class _SetSelectItemState extends State<SetSelectItem> {
Box setting = GStorage.setting;
late dynamic currentVal;
late int currentIndex;
late List menus;
late List<PopupMenuEntry> popMenuItems;
Box get setting => GStorage.setting;
@override
void initState() {
super.initState();