opt: win32 api (#2246)

* tweaks

* opt: win32 api
This commit is contained in:
My-Responsitories
2026-05-31 03:03:15 +00:00
committed by GitHub
parent d4d9fc3405
commit b3e2dcf2c5
7 changed files with 18 additions and 45 deletions

View File

@@ -1,6 +1,5 @@
import 'dart:async' show FutureOr;
import 'dart:convert' show utf8, jsonDecode;
import 'dart:io' show File;
import 'package:PiliPlus/common/style.dart';
import 'package:PiliPlus/utils/extension/theme_ext.dart';
@@ -122,8 +121,7 @@ Future<void> importFromLocalFile<T>({
allowedExtensions: const ['json', 'txt'],
);
if (result != null) {
final path = result.xFile.path;
final data = await File(path).readAsString();
final data = await result.xFile.readAsString();
final T json;
try {
json = jsonDecode(data);
@@ -179,7 +177,7 @@ void importFromInput<T>(
child: Text(
'取消',
style: TextStyle(
color: Theme.of(context).colorScheme.outline,
color: ColorScheme.of(context).outline,
),
),
),

View File

@@ -10,9 +10,9 @@ import 'package:flutter_svg/flutter_svg.dart';
class CachedNetworkSVGImage extends StatefulWidget {
CachedNetworkSVGImage(
String url, {
this._url, {
Key? key,
String? cacheKey,
this._cacheKey,
this._placeholder,
this._errorBuilder,
this._width,
@@ -28,10 +28,8 @@ class CachedNetworkSVGImage extends StatefulWidget {
this._colorFilter,
this._placeholderBuilder,
BaseCacheManager? cacheManager,
}) : _url = url,
_cacheKey = cacheKey,
_cacheManager = cacheManager ?? DefaultCacheManager(),
super(key: key ?? ValueKey(cacheKey ?? url));
}) : _cacheManager = cacheManager ?? DefaultCacheManager(),
super(key: key ?? ValueKey(_cacheKey ?? _url));
final String _url;
final String? _cacheKey;

View File

@@ -87,9 +87,7 @@ Widget videoSeasonWidget(
Colors.black54,
],
),
borderRadius: BorderRadius.vertical(
bottom: Style.imgRadius,
),
borderRadius: .vertical(bottom: Style.imgRadius),
),
child: DefaultTextStyle.merge(
style: TextStyle(
@@ -103,22 +101,16 @@ Widget videoSeasonWidget(
DecoratedBox(
decoration: const BoxDecoration(
color: Colors.black45,
borderRadius: BorderRadius.all(
Radius.circular(4),
),
borderRadius: .all(.circular(4)),
),
child: Text(' $durationText '),
),
const SizedBox(width: 6),
],
if (video.stat case final stat?) ...[
Text(
'${NumUtils.numFormat(stat.play)}播放',
),
Text('${NumUtils.numFormat(stat.play)}播放'),
const SizedBox(width: 6),
Text(
'${NumUtils.numFormat(stat.danmu)}弹幕',
),
Text('${NumUtils.numFormat(stat.danmu)}弹幕'),
],
const Spacer(),
Image.asset(

View File

@@ -26,6 +26,7 @@ import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:get/get.dart';
import 'package:tray_manager/tray_manager.dart';
import 'package:win32/win32.dart' as kernel32;
import 'package:window_manager/window_manager.dart';
class MainApp extends StatefulWidget {
@@ -168,7 +169,11 @@ class _MainAppState extends PopScopeState<MainApp>
await GStorage.close();
await trayManager.destroy();
if (Platform.isWindows) {
const MethodChannel('window_control').invokeMethod('closeWindow');
// flutter_inappwebview
// 6.2.0-beta.2+ https://github.com/pichillilorenzo/flutter_inappwebview/issues/2482
// 6.1.5 https://github.com/pichillilorenzo/flutter_inappwebview/issues/2512#issuecomment-3031039587
final hProcess = kernel32.GetCurrentProcess();
kernel32.TerminateProcess(hProcess, 0);
} else {
exit(0);
}