Compare commits

...

9 Commits

Author SHA1 Message Date
dom
b7b40c557e Release 2.0.7
Signed-off-by: dom <githubaccount56556@proton.me>
2026-05-05 10:41:19 +08:00
dom
d0373da5ca fix get video part dimension
Signed-off-by: dom <githubaccount56556@proton.me>
2026-05-05 10:41:19 +08:00
dom
31aeab3516 fix ios build
Signed-off-by: dom <githubaccount56556@proton.me>
2026-05-04 21:28:35 +08:00
My-Responsitories
4228f918d7 fix: html numeric character (#1972) 2026-05-04 19:16:45 +08:00
dom
0f07dccc4b upgrade deps
Signed-off-by: dom <githubaccount56556@proton.me>
2026-05-04 19:15:54 +08:00
dom
9b0c9e9276 navigator patch
Closes #1947

Signed-off-by: dom <githubaccount56556@proton.me>
2026-05-04 19:02:17 +08:00
dom
ac9631462a flutter 3.41.9
Signed-off-by: dom <githubaccount56556@proton.me>
2026-05-04 11:59:56 +08:00
dom
d5bf3487f8 add audio volume button & slider on desktop
Closes #1950

Signed-off-by: dom <githubaccount56556@proton.me>
2026-05-04 11:59:56 +08:00
dom
9259e84d5c upgrade deps
Signed-off-by: dom <githubaccount56556@proton.me>
2026-05-03 14:27:21 +08:00
13 changed files with 2987 additions and 97 deletions

2
.fvmrc
View File

@@ -1,3 +1,3 @@
{
"flutter": "3.41.6"
"flutter": "3.41.9"
}

View File

@@ -1,5 +1,5 @@
# Uncomment this line to define a global platform for your project
platform :ios, '13.0'
platform :ios, '14.0'
# CocoaPods analytics sends network stats synchronously affecting flutter build latency.
ENV['COCOAPODS_DISABLE_STATS'] = 'true'

View File

@@ -14,40 +14,9 @@ PODS:
- Flutter
- device_info_plus (0.0.1):
- Flutter
- DKImagePickerController/Core (4.3.9):
- DKImagePickerController/ImageDataManager
- DKImagePickerController/Resource
- DKImagePickerController/ImageDataManager (4.3.9)
- DKImagePickerController/PhotoGallery (4.3.9):
- DKImagePickerController/Core
- DKPhotoGallery
- DKImagePickerController/Resource (4.3.9)
- DKPhotoGallery (0.0.19):
- DKPhotoGallery/Core (= 0.0.19)
- DKPhotoGallery/Model (= 0.0.19)
- DKPhotoGallery/Preview (= 0.0.19)
- DKPhotoGallery/Resource (= 0.0.19)
- SDWebImage
- SwiftyGif
- DKPhotoGallery/Core (0.0.19):
- DKPhotoGallery/Model
- DKPhotoGallery/Preview
- SDWebImage
- SwiftyGif
- DKPhotoGallery/Model (0.0.19):
- SDWebImage
- SwiftyGif
- DKPhotoGallery/Preview (0.0.19):
- DKPhotoGallery/Model
- DKPhotoGallery/Resource
- SDWebImage
- SwiftyGif
- DKPhotoGallery/Resource (0.0.19):
- SDWebImage
- SwiftyGif
- file_picker (0.0.1):
- DKImagePickerController/PhotoGallery
- Flutter
- FlutterMacOS
- Flutter (1.0.0)
- flutter_inappwebview_ios (0.0.1):
- Flutter
@@ -67,7 +36,7 @@ PODS:
- gt3_flutter_plugin (0.0.9):
- Flutter
- GT3Captcha-iOS
- GT3Captcha-iOS (0.15.8.3)
- GT3Captcha-iOS (0.15.9)
- image_cropper (0.0.5):
- Flutter
- TOCropViewController (~> 3.1.2)
@@ -92,9 +61,6 @@ PODS:
- Flutter
- screen_brightness_ios (0.1.0):
- Flutter
- SDWebImage (5.21.3):
- SDWebImage/Core (= 5.21.3)
- SDWebImage/Core (5.21.3)
- share_plus (0.0.1):
- Flutter
- shared_preferences_foundation (0.0.1):
@@ -103,7 +69,6 @@ PODS:
- sqflite_darwin (0.0.4):
- Flutter
- FlutterMacOS
- SwiftyGif (5.4.5)
- TOCropViewController (3.1.2)
- url_launcher_ios (0.0.1):
- Flutter
@@ -118,7 +83,7 @@ DEPENDENCIES:
- chat_bottom_container (from `.symlinks/plugins/chat_bottom_container/ios`)
- connectivity_plus (from `.symlinks/plugins/connectivity_plus/ios`)
- device_info_plus (from `.symlinks/plugins/device_info_plus/ios`)
- file_picker (from `.symlinks/plugins/file_picker/ios`)
- file_picker (from `.symlinks/plugins/file_picker/darwin`)
- Flutter (from `Flutter`)
- flutter_inappwebview_ios (from `.symlinks/plugins/flutter_inappwebview_ios/ios`)
- flutter_mailer (from `.symlinks/plugins/flutter_mailer/ios`)
@@ -145,12 +110,8 @@ DEPENDENCIES:
SPEC REPOS:
trunk:
- DKImagePickerController
- DKPhotoGallery
- GT3Captcha-iOS
- OrderedSet
- SDWebImage
- SwiftyGif
- TOCropViewController
EXTERNAL SOURCES:
@@ -169,7 +130,7 @@ EXTERNAL SOURCES:
device_info_plus:
:path: ".symlinks/plugins/device_info_plus/ios"
file_picker:
:path: ".symlinks/plugins/file_picker/ios"
:path: ".symlinks/plugins/file_picker/darwin"
Flutter:
:path: Flutter
flutter_inappwebview_ios:
@@ -225,9 +186,7 @@ SPEC CHECKSUMS:
chat_bottom_container: f1eb8323db77a87db50f361142c679f11e892d1b
connectivity_plus: cb623214f4e1f6ef8fe7403d580fdad517d2f7dd
device_info_plus: 21fcca2080fbcd348be798aa36c3e5ed849eefbe
DKImagePickerController: 946cec48c7873164274ecc4624d19e3da4c1ef3c
DKPhotoGallery: b3834fecb755ee09a593d7c9e389d8b5d6deed60
file_picker: a0560bc09d61de87f12d246fc47d2119e6ef37be
file_picker: 70164d9778c42c47218d6cd79ce435de0856b11a
Flutter: cabc95a1d2626b1b06e7179b784ebcf0c0cde467
flutter_inappwebview_ios: b89ba3482b96fb25e00c967aae065701b66e9b99
flutter_mailer: 3a8cd4f36c960fb04528d5471097270c19fec1c4
@@ -235,7 +194,7 @@ SPEC CHECKSUMS:
flutter_volume_controller: c2be490cb0487e8b88d0d9fc2b7e1c139a4ebccb
fluttertoast: 2c67e14dce98bbdb200df9e1acf610d7a6264ea1
gt3_flutter_plugin: 37090e5fa66ff2a52939eb9d208fc36fa49d36e5
GT3Captcha-iOS: 5e3b1077834d8a9d6f4d64a447a30af3e14affe6
GT3Captcha-iOS: aeb6fed2e8594099821430a89208679e5a55b740
image_cropper: fca51f94982730acae168c4b5d691e0f11aeb259
image_picker_ios: e0ece4aa2a75771a7de3fa735d26d90817041326
live_photo_maker: 29280ca88323bd5a33aafd00d98624d5cf522176
@@ -248,15 +207,13 @@ SPEC CHECKSUMS:
permission_handler_apple: 4ed2196e43d0651e8ff7ca3483a069d469701f2d
saver_gallery: af2d0c762dafda254e0ad025ef0dabd6506cd490
screen_brightness_ios: 9953fd7da5bd480f1a93990daeec2eb42d4f3b52
SDWebImage: 16309af6d214ba3f77a7c6f6fdda888cb313a50a
share_plus: 50da8cb520a8f0f65671c6c6a99b3617ed10a58a
shared_preferences_foundation: 7036424c3d8ec98dfe75ff1667cb0cd531ec82bb
sqflite_darwin: 20b2a3a3b70e43edae938624ce550a3cbf66a3d0
SwiftyGif: 706c60cf65fa2bc5ee0313beece843c8eb8194d4
TOCropViewController: a916930c465b5d9445a74d95e0c0da931771b4df
url_launcher_ios: 7a95fa5b60cc718a708b8f2966718e93db0cef1b
wakelock_plus: e29112ab3ef0b318e58cfa5c32326458be66b556
PODFILE CHECKSUM: f62db4fb414ebdecb264109948f76dfef35fdc3d
PODFILE CHECKSUM: 5e755568c318fde60f7b59d132a4ba634d53bf27
COCOAPODS: 1.16.2

File diff suppressed because it is too large Load Diff

View File

@@ -23,6 +23,7 @@ import 'package:PiliPlus/pages/sponsor_block/block_mixin.dart';
import 'package:PiliPlus/pages/video/controller.dart';
import 'package:PiliPlus/pages/video/introduction/ugc/widgets/triple_mixin.dart';
import 'package:PiliPlus/pages/video/pay_coins/view.dart';
import 'package:PiliPlus/plugin/pl_player/controller.dart';
import 'package:PiliPlus/plugin/pl_player/models/play_repeat.dart';
import 'package:PiliPlus/plugin/pl_player/models/play_status.dart';
import 'package:PiliPlus/services/service_locator.dart';
@@ -36,6 +37,8 @@ import 'package:PiliPlus/utils/id_utils.dart';
import 'package:PiliPlus/utils/page_utils.dart';
import 'package:PiliPlus/utils/platform_utils.dart';
import 'package:PiliPlus/utils/share_utils.dart';
import 'package:PiliPlus/utils/storage.dart';
import 'package:PiliPlus/utils/storage_key.dart';
import 'package:PiliPlus/utils/storage_pref.dart';
import 'package:PiliPlus/utils/utils.dart';
import 'package:PiliPlus/utils/video_utils.dart';
@@ -94,6 +97,34 @@ class AudioController extends GetxController
ListOrder order = ListOrder.ORDER_NORMAL;
double? _lastVolume;
late final RxDouble desktopVolume = RxDouble(Pref.desktopVolume);
void toggleVolume() {
if (_lastVolume == null) {
_lastVolume = desktopVolume.value;
setVolume(0, clearLastVolme: false);
} else {
setVolume(_lastVolume!);
}
}
void setVolume(double volume, {bool clearLastVolme = true}) {
if (clearLastVolme) {
_lastVolume = null;
}
desktopVolume.value = volume;
player?.setVolume(volume * 100);
}
void syncVolume([_]) {
final volume = desktopVolume.value;
PlPlayerController.instance
?..volume.value = volume
..videoPlayerController?.setVolume(volume * 100);
GStorage.setting.put(SettingBoxKey.desktopVolume, volume.toPrecision(3));
}
@override
void onInit() {
super.onInit();
@@ -296,7 +327,13 @@ class AudioController extends GetxController
if (_hasInit) return;
_hasInit = true;
assert(player == null, _subscriptions = null);
player = await Player.create();
player = await Player.create(
configuration: PlatformUtils.isDesktop
? PlayerConfiguration(
options: {'volume': (desktopVolume.value * 100).toString()},
)
: const PlayerConfiguration(),
);
if (isClosed) {
player!.dispose();
player = null;

View File

@@ -13,6 +13,7 @@ import 'package:PiliPlus/grpc/bilibili/app/listener/v1.pb.dart';
import 'package:PiliPlus/models/common/image_preview_type.dart';
import 'package:PiliPlus/models/common/image_type.dart';
import 'package:PiliPlus/pages/audio/controller.dart';
import 'package:PiliPlus/pages/audio/volume_button.dart';
import 'package:PiliPlus/pages/video/introduction/ugc/widgets/action_item.dart';
import 'package:PiliPlus/plugin/pl_player/models/play_repeat.dart';
import 'package:PiliPlus/services/shutdown_timer_service.dart';
@@ -29,6 +30,7 @@ import 'package:PiliPlus/utils/platform_utils.dart';
import 'package:PiliPlus/utils/storage.dart';
import 'package:PiliPlus/utils/storage_key.dart';
import 'package:PiliPlus/utils/utils.dart';
import 'package:flutter/foundation.dart' show kDebugMode;
import 'package:flutter/material.dart' hide DraggableScrollableSheet;
import 'package:font_awesome_flutter/font_awesome_flutter.dart';
import 'package:get/get.dart';
@@ -795,6 +797,15 @@ class _AudioPageState extends State<AudioPage> {
],
);
}
if (kDebugMode || PlatformUtils.isDesktop) {
child = Row(
spacing: 10,
children: [
Expanded(child: child),
VolumeButton(controller: _controller),
],
);
}
return child;
}

View File

@@ -0,0 +1,243 @@
import 'dart:async' show Timer;
import 'dart:math' as math;
import 'package:PiliPlus/common/widgets/flutter/vertical_slider.dart';
import 'package:PiliPlus/pages/audio/controller.dart';
import 'package:flutter/material.dart';
import 'package:flutter/rendering.dart' show RenderProxyBox, BoxHitTestResult;
import 'package:get/get.dart';
class VolumeButton extends StatefulWidget {
const VolumeButton({
super.key,
required this.controller,
});
final AudioController controller;
@override
State<VolumeButton> createState() => _VolumeButtonState();
}
class _VolumeButtonState extends State<VolumeButton> {
final _controller = OverlayPortalController();
Timer? _timer;
late CardThemeData cardTheme;
late ColorScheme theme;
@override
void didChangeDependencies() {
super.didChangeDependencies();
theme = ColorScheme.of(context);
cardTheme = CardTheme.of(context);
}
void _stopTimer([_]) {
_timer?.cancel();
_timer = null;
}
void _show([_]) {
_stopTimer();
_controller.show();
}
void _scheduleDismiss([_]) {
_timer ??= Timer(const Duration(milliseconds: 100), () {
_controller.hide();
_timer = null;
});
}
@override
void dispose() {
_stopTimer();
if (_controller.isShowing) {
_controller.hide();
}
super.dispose();
}
@override
Widget build(BuildContext context) {
return MouseRegion(
onEnter: _show,
onExit: _scheduleDismiss,
cursor: SystemMouseCursors.click,
child: OverlayPortal.overlayChildLayoutBuilder(
controller: _controller,
overlayChildBuilder: _overlayChildBuilder,
child: Obx(() {
final volume = widget.controller.desktopVolume.value;
return InkWell(
onTapUp: _onTapUp,
customBorder: const CircleBorder(),
child: Padding(
padding: const .all(10.0),
child: Icon(
volume == 0.0
? Icons.volume_off
: volume < 0.5
? Icons.volume_down
: Icons.volume_up,
color: theme.onSurfaceVariant,
size: 22.0,
),
),
);
}),
),
);
}
Widget _overlayChildBuilder(
BuildContext context,
OverlayChildLayoutInfo info,
) {
final offset = MatrixUtils.transformPoint(
info.childPaintTransform,
info.childSize.topCenter(const Offset(0, -6)),
);
return _volumeSlider(offset);
}
Widget _volumeSlider(Offset offset) {
return _VolumeWidget(
offset: offset,
child: MouseRegion(
onEnter: _stopTimer,
onExit: _scheduleDismiss,
child: Container(
padding: const .fromLTRB(6, 8, 6, 2),
decoration: BoxDecoration(
color: ElevationOverlay.applySurfaceTint(
cardTheme.color ?? theme.surfaceContainerLow,
cardTheme.surfaceTintColor,
2,
),
borderRadius: const .all(.circular(6)),
),
child: SliderTheme(
data: const SliderThemeData(
trackHeight: 4,
overlayColor: Colors.transparent,
thumbShape: RoundSliderThumbShape(
enabledThumbRadius: 6,
),
),
child: Obx(
() {
final volume = widget.controller.desktopVolume.value;
return Column(
spacing: 2,
mainAxisSize: .min,
children: [
Text(
'${(volume * 100).round()}',
style: const TextStyle(fontSize: 13),
),
Expanded(
child: VerticalSlider(
year2023: true,
min: 0.0,
max: 2.0,
value: volume,
showValueIndicator: .never,
onChanged: widget.controller.setVolume,
onChangeEnd: widget.controller.syncVolume,
),
),
],
);
},
),
),
),
),
);
}
void _onTapUp(TapUpDetails details) {
switch (details.kind) {
case .mouse:
widget.controller.toggleVolume();
case _:
_showVolumeDialog();
}
}
void _showVolumeDialog() {
final renderBox = context.findRenderObject() as RenderBox;
final offset = renderBox.localToGlobal(
renderBox.size.topCenter(const Offset(0, -6)),
);
Get.key.currentState!.push(
DialogRoute(
context: context,
useSafeArea: false,
barrierColor: Colors.transparent,
builder: (context) {
return _volumeSlider(offset);
},
),
);
}
}
class _VolumeWidget extends SingleChildRenderObjectWidget {
const _VolumeWidget({
required this.offset,
required Widget super.child,
});
final Offset offset;
@override
RenderObject createRenderObject(BuildContext context) {
return _RenderVolumeWidget(offset: offset);
}
}
class _RenderVolumeWidget extends RenderProxyBox {
_RenderVolumeWidget({required this.offset});
final Offset offset;
late Offset _offset;
@override
void performLayout() {
final childSize =
(child!..layout(
const BoxConstraints(maxWidth: 40, maxHeight: 170),
parentUsesSize: true,
))
.size;
size = constraints.biggest;
_offset = Offset(
math.min(offset.dx - (childSize.width / 2), size.width - childSize.width),
math.min(offset.dy, size.height) - childSize.height,
);
}
@override
void paint(PaintingContext context, Offset offset) {
super.paint(context, _offset);
}
@override
bool hitTest(BoxHitTestResult result, {required Offset position}) {
return result.addWithPaintOffset(
offset: _offset,
position: position,
hitTest: (BoxHitTestResult result, Offset transformed) {
assert(transformed == position - _offset);
return child!.hitTest(result, position: transformed);
},
);
}
@override
void applyPaintTransform(covariant RenderObject child, Matrix4 transform) {
transform.translateByDouble(_offset.dx, _offset.dy, 0.0, 1.0);
}
}

View File

@@ -248,13 +248,15 @@ class VideoDetailController extends GetxController
if (width == null || height == null) {
if (isUgc && !isFileSource) {
final ugcIntroCtr = Get.find<UgcIntroController>(tag: heroTag);
final data = ugcIntroCtr.videoDetail.value;
if (data.cid == cid.value) {
final dimension = data.dimension!;
final cid = this.cid.value;
final part = ugcIntroCtr.videoDetail.value.pages?.firstWhereOrNull(
(e) => e.cid == cid,
);
if (part != null) {
final dimension = part.dimension!;
width = dimension.width!;
height = dimension.height!;
} else {
ugcIntroCtr.queryVideoIntro().whenComplete(_setVideoHeight);
return;
}
} else {

View File

@@ -0,0 +1,15 @@
diff --git a/packages/flutter/lib/src/widgets/navigator.dart b/packages/flutter/lib/src/widgets/navigator.dart
index fb7ccc5da2f..54dbc2b6c1d 100644
--- a/packages/flutter/lib/src/widgets/navigator.dart
+++ b/packages/flutter/lib/src/widgets/navigator.dart
@@ -5615,7 +5615,9 @@ class NavigatorState extends State<Navigator> with TickerProviderStateMixin, Res
_debugLocked = false;
return true;
}());
- _afterNavigation(entry.route);
+ if (entry.currentState == _RouteLifecycle.popping) {
+ _afterNavigation(entry.route);
+ }
}
/// Calls [pop] repeatedly until the predicate returns true.

View File

@@ -20,6 +20,8 @@ $ScrollViewPatch = "lib/scripts/scroll_view.patch"
$TextSelectionPatch = "lib/scripts/text_selection.patch"
$NavigatorPatch = "lib/scripts/navigator.patch"
# TODO: remove
# https://github.com/flutter/flutter/issues/90223
$ModalBarrierPatch = "lib/scripts/modal_barrier.patch"
@@ -46,10 +48,12 @@ switch ($platform.ToLower()) {
$reverts += $NewOverScrollIndicator
$patches += $BottomSheetAndroidPatch
$patches += $ScrollViewPatch
$patches += $NavigatorPatch
}
"ios" {
$patches += $ScrollViewPatch
$patches += $BottomSheetIOSFlutterPatch
$patches += $NavigatorPatch
}
"linux" {
$picks += $ToolTipFix

View File

@@ -1,6 +1,8 @@
abstract final class Em {
static final _exp = RegExp('<[^>]*>([^<]*)</[^>]*>');
static final _htmlRegExp = RegExp(r'&(lt|gt|quot|apos|nbsp|amp);');
static final _htmlRegExp = RegExp(
r'&(lt|gt|quot|apos|nbsp|amp|#x[a-fA-F\d]{2,4});',
);
static String regCate(String origin) {
Iterable<Match> matches = _exp.allMatches(origin);
@@ -29,6 +31,9 @@ abstract final class Em {
'apos' => "'",
'nbsp' => ' ',
'amp' => '&',
var i? when (i.startsWith('#x')) => String.fromCharCode(
int.parse(i.substring(2), radix: 16),
),
_ => m.group(0)!,
},
),

View File

@@ -197,10 +197,10 @@ packages:
dependency: transitive
description:
name: built_value
sha256: "0730c18c770d05636a8f945c32a4d7d81cb6e0f0148c8db4ad12e7748f7e49af"
sha256: "34e4067d30ce212937df995f03b69992eea683539ceeac7f679a1f1eba055b56"
url: "https://pub.dev"
source: hosted
version: "8.12.5"
version: "8.12.6"
cached_network_image:
dependency: "direct main"
description:
@@ -392,18 +392,18 @@ packages:
dependency: "direct main"
description:
name: device_info_plus
sha256: b4fed1b2835da9d670d7bed7db79ae2a94b0f5ad6312268158a9b5479abbacdd
sha256: "6a642e1daa10190af89ba6cb6386c0df7d071a3592080bfe1e44faa63ae1df65"
url: "https://pub.dev"
source: hosted
version: "12.4.0"
version: "13.1.0"
device_info_plus_platform_interface:
dependency: transitive
description:
name: device_info_plus_platform_interface
sha256: e1ea89119e34903dca74b883d0dd78eb762814f97fb6c76f35e9ff74d261a18f
sha256: "04b173a92e2d9161dfead145667037c8d834db725ce2e7b942bfe18fd2f45a46"
url: "https://pub.dev"
source: hosted
version: "7.0.3"
version: "8.1.0"
dio:
dependency: "direct main"
description:
@@ -509,6 +509,14 @@ packages:
url: "https://pub.dev"
source: hosted
version: "2.2.0"
ffi_leak_tracker:
dependency: transitive
description:
name: ffi_leak_tracker
sha256: "4093d4ef9ca06ffe2786e73bfb25e22aa92112b9bb4ec941f11e3e6b61489a97"
url: "https://pub.dev"
source: hosted
version: "0.1.2"
file:
dependency: transitive
description:
@@ -520,12 +528,11 @@ packages:
file_picker:
dependency: "direct main"
description:
path: "."
ref: mod
resolved-ref: d1dde80df07a6ec46d9291cfeba6c01de53b5305
url: "https://github.com/bggRGjQaUbCoE/flutter_file_picker.git"
source: git
version: "11.0.2"
name: file_picker
sha256: "1d4afa261268e59863af47b9f9dd9a230502d4c702b9d9183353646fe6d5b6e1"
url: "https://pub.dev"
source: hosted
version: "12.0.0-beta.1"
file_selector_linux:
dependency: transitive
description:
@@ -1251,7 +1258,7 @@ packages:
description:
path: "."
ref: master
resolved-ref: "4f7ad3c5eebb871873a874c6c9b005e83d4345cf"
resolved-ref: a987a459f17af0002397e49800ba4f68912b375c
url: "https://github.com/bggRGjQaUbCoE/flutter_native_device_orientation.git"
source: git
version: "2.0.5"
@@ -1299,18 +1306,18 @@ packages:
dependency: "direct main"
description:
name: package_info_plus
sha256: "468c26b4254ab01979fa5e4a98cb343ea3631b9acee6f21028997419a80e1a20"
sha256: "4bf625947f6c7713ee242296a682e23e44823c09cf9d79e4f1238923c92db852"
url: "https://pub.dev"
source: hosted
version: "9.0.1"
version: "10.1.0"
package_info_plus_platform_interface:
dependency: transitive
description:
name: package_info_plus_platform_interface
sha256: "202a487f08836a592a6bd4f901ac69b3a8f146af552bbd14407b6b41e1c3f086"
sha256: db762cb2f4f25ee60fb6359773861b0f199e00b90d237bd85a76a1e806b46ef4
url: "https://pub.dev"
source: hosted
version: "3.2.1"
version: "4.1.0"
path:
dependency: "direct main"
description:
@@ -1605,18 +1612,18 @@ packages:
dependency: "direct main"
description:
name: share_plus
sha256: "223873d106614442ea6f20db5a038685cc5b32a2fba81cdecaefbbae0523f7fa"
sha256: a857d8b1479250aff6b57a51b2c02d31ca05848d441817c43f1640c885c286c0
url: "https://pub.dev"
source: hosted
version: "12.0.2"
version: "13.1.0"
share_plus_platform_interface:
dependency: transitive
description:
name: share_plus_platform_interface
sha256: "88023e53a13429bd65d8e85e11a9b484f49d4c190abbd96c7932b74d6927cc9a"
sha256: "7f7ae28cf400d13f811e297ff37742dba83b79e0a6f5dce14eec0248274e6ce9"
url: "https://pub.dev"
source: hosted
version: "6.1.0"
version: "7.1.0"
shared_preferences:
dependency: transitive
description:
@@ -1979,10 +1986,10 @@ packages:
dependency: "direct main"
description:
name: wakelock_plus
sha256: ddf3db70eaa10c37558ff817519b85d527dbd21034fd5d8e1c2e85f31588f1c1
sha256: "2b09acadd7a2862d33c3577e77e7a2aabb684f47ccca1711f1413bd7307a6a72"
url: "https://pub.dev"
source: hosted
version: "1.5.2"
version: "1.6.0"
wakelock_plus_platform_interface:
dependency: transitive
description:
@@ -2044,18 +2051,18 @@ packages:
dependency: transitive
description:
name: win32
sha256: d7cb55e04cd34096cd3a79b3330245f54cb96a370a1c27adb3c84b917de8b08e
sha256: ba7d5750e3441caa1bbe31d9e516348fcf8dfcb32aa29ef87a844a59f4d1f1d0
url: "https://pub.dev"
source: hosted
version: "5.15.0"
version: "6.1.0"
win32_registry:
dependency: transitive
description:
name: win32_registry
sha256: "6f1b564492d0147b330dd794fee8f512cec4977957f310f9951b5f9d83618dae"
sha256: "73b1d78920a9d6e03f8b4e43e612b87bf3152a0e5c5e5150267762b7c4116904"
url: "https://pub.dev"
source: hosted
version: "2.1.0"
version: "3.0.3"
window_manager:
dependency: "direct main"
description:
@@ -2091,4 +2098,4 @@ packages:
version: "3.1.3"
sdks:
dart: ">=3.11.0 <4.0.0"
flutter: "3.41.6"
flutter: "3.41.9"

View File

@@ -17,11 +17,11 @@ publish_to: "none" # Remove this line if you wish to publish to pub.dev
# In Windows, build-name is used as the major, minor, and patch parts
# of the product and file versions while build-number is used as the build suffix.
# update when release
version: 2.0.6+1
version: 2.0.7+1
environment:
sdk: ">=3.10.0"
flutter: 3.41.6 # update `.fvmrc` config
flutter: 3.41.9 # update `.fvmrc` config
# Dependencies specify other packages that your package needs in order to work.
# To automatically upgrade your package dependencies to the latest versions
@@ -49,7 +49,7 @@ dependencies:
# 网络
dio: ^5.9.1
cookie_jar: ^4.0.8
connectivity_plus: ^7.0.0
connectivity_plus: ^7.1.1
dio_http2_adapter: ^2.5.3
# 图片
@@ -66,14 +66,14 @@ dependencies:
hive_ce: ^2.19.3
# 设备信息
device_info_plus: ^12.1.0
device_info_plus: ^13.1.0
# 权限
# permission_handler: ^12.0.0+1
permission_handler_apple: ^9.4.7
permission_handler_android: ^13.0.1
permission_handler_platform_interface: ^4.3.0
# 分享
share_plus: ^12.0.0
share_plus: ^13.1.0
# cookie 管理
# webview_cookie_manager: ^2.0.6
# 浏览器
@@ -142,7 +142,7 @@ dependencies:
# animations: ^2.0.11
# 获取appx信息
package_info_plus: ^9.0.0
package_info_plus: ^10.1.0
url_launcher: ^6.3.1
# 防抖节流
easy_debounce: ^2.0.3
@@ -224,11 +224,7 @@ dependencies:
path: packages/window_manager
ref: main
tray_manager: ^0.5.1
# file_picker: ^10.3.3
file_picker:
git:
url: https://github.com/bggRGjQaUbCoE/flutter_file_picker.git
ref: mod
file_picker: ^12.0.0-beta.1
super_sliver_list:
git:
url: https://github.com/bggRGjQaUbCoE/super_sliver_list.git