From 3446484d976314cc83b98ca8f2b7ea9ffcadcffa Mon Sep 17 00:00:00 2001 From: My-Responsitories <107370289+My-Responsitories@users.noreply.github.com> Date: Wed, 3 Jun 2026 11:59:11 +0000 Subject: [PATCH] fix: remove hive file (#2276) --- lib/common/widgets/image/cached_network_svg_image.dart | 9 +++------ lib/pages/common/publish/common_rich_text_pub_page.dart | 6 ++++-- lib/pages/member/view.dart | 4 ++-- lib/plugin/pl_player/view/view.dart | 2 +- lib/plugin/pl_player/view/widgets.dart | 3 +-- lib/services/download/download_service.dart | 4 ++-- lib/utils/cache_manager.dart | 6 ++++-- lib/utils/image_utils.dart | 8 ++++---- 8 files changed, 21 insertions(+), 21 deletions(-) diff --git a/lib/common/widgets/image/cached_network_svg_image.dart b/lib/common/widgets/image/cached_network_svg_image.dart index 411c89af1..f7ca210be 100644 --- a/lib/common/widgets/image/cached_network_svg_image.dart +++ b/lib/common/widgets/image/cached_network_svg_image.dart @@ -2,7 +2,7 @@ import 'dart:developer'; -import 'package:cached_network_image_ce/cached_network_image.dart'; +import 'package:PiliPlus/utils/cache_manager.dart'; import 'package:flutter/foundation.dart' show kDebugMode; import 'package:flutter/material.dart'; import 'package:flutter/scheduler.dart'; @@ -27,9 +27,7 @@ class CachedNetworkSVGImage extends StatefulWidget { this._theme = const SvgTheme(), this._colorFilter, this._placeholderBuilder, - BaseCacheManager? cacheManager, - }) : _cacheManager = cacheManager ?? DefaultCacheManager.instance!, - super(key: key ?? ValueKey(_cacheKey ?? _url)); + }) : super(key: key ?? ValueKey(_cacheKey ?? _url)); final String _url; final String? _cacheKey; @@ -47,7 +45,6 @@ class CachedNetworkSVGImage extends StatefulWidget { final SvgTheme _theme; final ColorFilter? _colorFilter; final WidgetBuilder? _placeholderBuilder; - final BaseCacheManager _cacheManager; @override State createState() => _CachedNetworkSVGImageState(); @@ -84,7 +81,7 @@ class _CachedNetworkSVGImageState extends State { Future _loadImage() async { try { - final file = await widget._cacheManager.getSingleFile( + final file = await CacheManager.manager.getSingleFile( widget._url, key: _cacheKey, headers: widget._headers ?? const {}, diff --git a/lib/pages/common/publish/common_rich_text_pub_page.dart b/lib/pages/common/publish/common_rich_text_pub_page.dart index 8a21a1beb..865645505 100644 --- a/lib/pages/common/publish/common_rich_text_pub_page.dart +++ b/lib/pages/common/publish/common_rich_text_pub_page.dart @@ -14,6 +14,7 @@ import 'package:PiliPlus/models_new/emote/emote.dart' as e; import 'package:PiliPlus/models_new/live/live_emote/emoticon.dart'; import 'package:PiliPlus/pages/common/publish/common_publish_page.dart'; import 'package:PiliPlus/pages/dynamics_mention/view.dart'; +import 'package:PiliPlus/utils/cache_manager.dart'; import 'package:PiliPlus/utils/extension/file_ext.dart'; import 'package:PiliPlus/utils/extension/num_ext.dart'; import 'package:PiliPlus/utils/extension/string_ext.dart'; @@ -22,7 +23,8 @@ import 'package:PiliPlus/utils/feed_back.dart'; import 'package:PiliPlus/utils/image_utils.dart'; import 'package:PiliPlus/utils/page_utils.dart'; import 'package:PiliPlus/utils/platform_utils.dart'; -import 'package:cached_network_image_ce/cached_network_image.dart'; +import 'package:cached_network_image_ce/cached_network_image.dart' + hide CacheManager; import 'package:dio/dio.dart' show CancelToken; import 'package:easy_debounce/easy_throttle.dart'; import 'package:flutter/foundation.dart' show kDebugMode; @@ -190,7 +192,7 @@ abstract class CommonRichTextPubPageState path = e.path; case OpusPicModel e: SmartDialog.showLoading(); - path = (await DefaultCacheManager.instance!.getSingleFile( + path = (await CacheManager.manager.getSingleFile( e.url.http2https, )).path; await SmartDialog.dismiss(); diff --git a/lib/pages/member/view.dart b/lib/pages/member/view.dart index ce7dc0da2..8627fda5e 100644 --- a/lib/pages/member/view.dart +++ b/lib/pages/member/view.dart @@ -33,6 +33,7 @@ import 'package:PiliPlus/pages/member_shop/view.dart'; import 'package:PiliPlus/pages/member_video_web/archive/view.dart'; import 'package:PiliPlus/pages/member_video_web/season_series/view.dart'; import 'package:PiliPlus/utils/android/android_helper.dart'; +import 'package:PiliPlus/utils/cache_manager.dart'; import 'package:PiliPlus/utils/date_utils.dart'; import 'package:PiliPlus/utils/extension/context_ext.dart'; import 'package:PiliPlus/utils/extension/string_ext.dart'; @@ -40,7 +41,6 @@ import 'package:PiliPlus/utils/num_utils.dart'; import 'package:PiliPlus/utils/page_utils.dart'; import 'package:PiliPlus/utils/platform_utils.dart'; import 'package:PiliPlus/utils/utils.dart'; -import 'package:cached_network_image_ce/cached_network_image.dart'; import 'package:extended_nested_scroll_view/extended_nested_scroll_view.dart'; import 'package:flutter/material.dart'; import 'package:flutter_smart_dialog/flutter_smart_dialog.dart'; @@ -703,7 +703,7 @@ class _MemberPageState extends State { Future _createShortcutAndroid() async { try { SmartDialog.showLoading(); - final file = (await DefaultCacheManager.instance!.getSingleFile( + final file = (await CacheManager.manager.getSingleFile( '${_userController.userAvatar!}@200w_200h.webp'.http2https, )); SmartDialog.dismiss(); diff --git a/lib/plugin/pl_player/view/view.dart b/lib/plugin/pl_player/view/view.dart index 8656542ac..0aea1f1b3 100644 --- a/lib/plugin/pl_player/view/view.dart +++ b/lib/plugin/pl_player/view/view.dart @@ -53,6 +53,7 @@ import 'package:PiliPlus/plugin/pl_player/widgets/forward_seek.dart'; import 'package:PiliPlus/plugin/pl_player/widgets/mpv_convert_webp.dart'; import 'package:PiliPlus/plugin/pl_player/widgets/play_pause_btn.dart'; import 'package:PiliPlus/utils/android/bindings.g.dart'; +import 'package:PiliPlus/utils/cache_manager.dart'; import 'package:PiliPlus/utils/connectivity_utils.dart'; import 'package:PiliPlus/utils/duration_utils.dart'; import 'package:PiliPlus/utils/extension/num_ext.dart'; @@ -65,7 +66,6 @@ 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:cached_network_image_ce/cached_network_image.dart'; import 'package:canvas_danmaku/canvas_danmaku.dart'; import 'package:collection/collection.dart'; import 'package:easy_debounce/easy_throttle.dart'; diff --git a/lib/plugin/pl_player/view/widgets.dart b/lib/plugin/pl_player/view/widgets.dart index bd3c1a80e..af32960a0 100644 --- a/lib/plugin/pl_player/view/widgets.dart +++ b/lib/plugin/pl_player/view/widgets.dart @@ -153,10 +153,9 @@ class VideoShotImage extends StatefulWidget { } Future _getImg(String url) async { - final cacheManager = DefaultCacheManager.instance!; final cacheKey = Utils.getFileName(url, fileExt: false); try { - final fileInfo = await cacheManager.getSingleFile( + final fileInfo = await CacheManager.manager.getSingleFile( ImageUtils.safeThumbnailUrl(url), key: cacheKey, headers: Constants.baseHeaders, diff --git a/lib/services/download/download_service.dart b/lib/services/download/download_service.dart index 21c31e6f0..6566f5ac1 100644 --- a/lib/services/download/download_service.dart +++ b/lib/services/download/download_service.dart @@ -16,11 +16,11 @@ import 'package:PiliPlus/models_new/video/video_detail/episode.dart' as ugc; import 'package:PiliPlus/models_new/video/video_detail/page.dart'; import 'package:PiliPlus/pages/danmaku/controller.dart'; import 'package:PiliPlus/services/download/download_manager.dart'; +import 'package:PiliPlus/utils/cache_manager.dart'; import 'package:PiliPlus/utils/extension/file_ext.dart'; import 'package:PiliPlus/utils/extension/string_ext.dart'; import 'package:PiliPlus/utils/id_utils.dart'; import 'package:PiliPlus/utils/path_utils.dart'; -import 'package:cached_network_image_ce/cached_network_image.dart'; import 'package:flutter/foundation.dart'; import 'package:flutter_smart_dialog/flutter_smart_dialog.dart'; import 'package:get/get.dart'; @@ -350,7 +350,7 @@ class DownloadService extends GetxService { if (File(filePath).existsSync()) { return true; } - final file = (await DefaultCacheManager.instance!.getFileFromCache( + final file = (await CacheManager.manager.getFileFromCache( entry.cover, ))?.file; if (file != null) { diff --git a/lib/utils/cache_manager.dart b/lib/utils/cache_manager.dart index 7d0befb29..024e90c48 100644 --- a/lib/utils/cache_manager.dart +++ b/lib/utils/cache_manager.dart @@ -72,8 +72,10 @@ abstract final class CacheManager { final tempDirectory = await getTemporaryDirectory(); if (tempDirectory.existsSync()) { - final children = tempDirectory.list(recursive: false); - await for (final file in children) { + await for (final file in tempDirectory.list(recursive: false)) { + if (file is Directory && path.equals(file.path, manager.cacheDir)) { + continue; + } await file.delete(recursive: true); } } diff --git a/lib/utils/image_utils.dart b/lib/utils/image_utils.dart index ea05d9585..a929b9301 100644 --- a/lib/utils/image_utils.dart +++ b/lib/utils/image_utils.dart @@ -5,6 +5,7 @@ import 'dart:typed_data' show Uint8List; import 'package:PiliPlus/common/constants.dart'; import 'package:PiliPlus/http/init.dart'; +import 'package:PiliPlus/utils/cache_manager.dart'; import 'package:PiliPlus/utils/device_utils.dart'; import 'package:PiliPlus/utils/extension/file_ext.dart'; import 'package:PiliPlus/utils/extension/string_ext.dart'; @@ -15,7 +16,6 @@ import 'package:PiliPlus/utils/platform_utils.dart'; import 'package:PiliPlus/utils/share_utils.dart'; import 'package:PiliPlus/utils/storage_pref.dart'; import 'package:PiliPlus/utils/utils.dart'; -import 'package:cached_network_image_ce/cached_network_image.dart'; import 'package:dio/dio.dart'; import 'package:file_picker/file_picker.dart'; import 'package:flutter/material.dart'; @@ -37,7 +37,7 @@ abstract final class ImageUtils { static Future onShareImg(String url) async { try { SmartDialog.showLoading(); - final res = await DefaultCacheManager.instance!.getSingleFile( + final res = await CacheManager.manager.getSingleFile( url.http2https, ); SmartDialog.dismiss(); @@ -110,7 +110,7 @@ abstract final class ImageUtils { if (res.statusCode != 200) throw '${res.statusCode}'; if (Platform.isIOS) { - final imageFile = await DefaultCacheManager.instance!.getSingleFile( + final imageFile = await CacheManager.manager.getSingleFile( url.http2https, ); if (!silentDownImg) SmartDialog.showLoading(msg: '正在保存'); @@ -162,7 +162,7 @@ abstract final class ImageUtils { final futures = imgList.map((url) async { final name = Utils.getFileName(url); - final file = await DefaultCacheManager.instance!.getSingleFile( + final file = await CacheManager.manager.getSingleFile( url.http2https, ); return (filePath: file.path, name: name, statusCode: 200);