From 4e5c4169faaac0fa045fd467cb6e246a48c96198 Mon Sep 17 00:00:00 2001 From: bggRGjQaUbCoE Date: Tue, 22 Jul 2025 12:19:48 +0800 Subject: [PATCH] opt get sdkInt Signed-off-by: bggRGjQaUbCoE --- .../interactiveviewer_gallery.dart | 4 +--- lib/plugin/pl_player/utils/fullscreen.dart | 5 ++--- lib/utils/image_util.dart | 4 +--- lib/utils/utils.dart | 10 ++++++++++ 4 files changed, 14 insertions(+), 9 deletions(-) diff --git a/lib/common/widgets/interactiveviewer_gallery/interactiveviewer_gallery.dart b/lib/common/widgets/interactiveviewer_gallery/interactiveviewer_gallery.dart index 592a28c3..7ba92e2b 100644 --- a/lib/common/widgets/interactiveviewer_gallery/interactiveviewer_gallery.dart +++ b/lib/common/widgets/interactiveviewer_gallery/interactiveviewer_gallery.dart @@ -9,7 +9,6 @@ import 'package:PiliPlus/utils/image_util.dart'; import 'package:PiliPlus/utils/storage_pref.dart'; import 'package:PiliPlus/utils/utils.dart'; import 'package:cached_network_image/cached_network_image.dart'; -import 'package:device_info_plus/device_info_plus.dart'; import 'package:easy_debounce/easy_throttle.dart'; import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; @@ -131,8 +130,7 @@ class _InteractiveviewerGalleryState extends State SystemUiMode.immersiveSticky, ); } - if (Platform.isAndroid && - (await DeviceInfoPlugin().androidInfo).version.sdkInt < 29) { + if (Platform.isAndroid && (await Utils.sdkInt < 29)) { mode = SystemUiMode.manual; } } diff --git a/lib/plugin/pl_player/utils/fullscreen.dart b/lib/plugin/pl_player/utils/fullscreen.dart index d64e4e8b..6459e8b2 100644 --- a/lib/plugin/pl_player/utils/fullscreen.dart +++ b/lib/plugin/pl_player/utils/fullscreen.dart @@ -2,8 +2,8 @@ import 'dart:async'; import 'dart:io'; import 'package:PiliPlus/utils/storage_pref.dart'; +import 'package:PiliPlus/utils/utils.dart'; import 'package:auto_orientation/auto_orientation.dart'; -import 'package:device_info_plus/device_info_plus.dart'; import 'package:flutter/foundation.dart'; import 'package:flutter/services.dart'; @@ -76,8 +76,7 @@ Future showStatusBar() async { if (kIsWeb) { document.exitFullscreen(); } else if (Platform.isAndroid || Platform.isIOS) { - if (Platform.isAndroid && - (await DeviceInfoPlugin().androidInfo).version.sdkInt < 29) { + if (Platform.isAndroid && (await Utils.sdkInt < 29)) { mode = SystemUiMode.manual; } await SystemChrome.setEnabledSystemUIMode( diff --git a/lib/utils/image_util.dart b/lib/utils/image_util.dart index 6ceda2bc..e8a5a2d6 100644 --- a/lib/utils/image_util.dart +++ b/lib/utils/image_util.dart @@ -4,7 +4,6 @@ import 'package:PiliPlus/http/init.dart'; import 'package:PiliPlus/utils/extension.dart'; import 'package:PiliPlus/utils/global_data.dart'; import 'package:PiliPlus/utils/utils.dart'; -import 'package:device_info_plus/device_info_plus.dart'; import 'package:dio/dio.dart'; import 'package:flutter/material.dart'; import 'package:flutter_smart_dialog/flutter_smart_dialog.dart'; @@ -90,8 +89,7 @@ class ImageUtil { static Future checkPermissionDependOnSdkInt( BuildContext context) async { if (Platform.isAndroid) { - final androidInfo = await DeviceInfoPlugin().androidInfo; - if (androidInfo.version.sdkInt <= 32) { + if (await Utils.sdkInt <= 32) { if (!context.mounted) return false; return requestStoragePer(context); } else { diff --git a/lib/utils/utils.dart b/lib/utils/utils.dart index cd55efaa..5229a37d 100644 --- a/lib/utils/utils.dart +++ b/lib/utils/utils.dart @@ -15,6 +15,16 @@ class Utils { static const channel = MethodChannel("PiliPlus"); + static int? _sdkInt; + + static Future get sdkInt async { + if (_sdkInt != null) { + return _sdkInt!; + } + _sdkInt = (await DeviceInfoPlugin().androidInfo).version.sdkInt; + return _sdkInt!; + } + static bool? _isIpad; static Future isIpad() async {