fix: improve Aria2c session handling and adjust translation timer

This commit is contained in:
xkeyC 2025-11-15 20:57:52 +08:00
parent 3219129094
commit d82cfb41aa
2 changed files with 15 additions and 12 deletions

View File

@ -21,7 +21,7 @@ part 'aria2c.freezed.dart';
@freezed
abstract class Aria2cModelState with _$Aria2cModelState {
const factory Aria2cModelState({required String aria2cDir, Aria2c? aria2c, Aria2GlobalStat? aria2globalStat}) =
_Aria2cModelState;
_Aria2cModelState;
}
extension Aria2cModelExt on Aria2cModelState {
@ -52,15 +52,16 @@ class Aria2cModel extends _$Aria2cModel {
try {
final sessionFile = File("$aria2cDir\\aria2.session");
//
if (await sessionFile.exists() && (await sessionFile.readAsString()).trim().isNotEmpty) {
dPrint("launch Aria2c daemon");
await launchDaemon(appGlobalState.applicationBinaryModuleDir!);
} else {
dPrint("LazyLoad Aria2c daemon");
}
} catch (e) {
dPrint("Aria2cManager.checkLazyLoad Error:$e");
}
if (await sessionFile.exists ()
&& (await sessionFile.readAsString()).trim().isNotEmpty) {
dPrint("launch Aria2c daemon");
await launchDaemon(appGlobalState.applicationBinaryModuleDir!);
} else {
dPrint("LazyLoad Aria2c daemon");
}
} catch (e) {
dPrint("Aria2cManager.checkLazyLoad Error:$e");
}
}();
return Aria2cModelState(aria2cDir: aria2cDir);
@ -212,7 +213,9 @@ class Aria2cModel extends _$Aria2cModel {
if (aria2c == null) return false;
for (var value in [...await aria2c.tellActive(), ...await aria2c.tellWaiting(0, 100000)]) {
final t = HomeDownloaderUIModel.getTaskTypeAndName(value);
return (t.key == "torrent" && t.value.contains(name));
if (t.key == "torrent" && t.value.contains(name)) {
return true;
}
}
return false;
}

View File

@ -171,7 +171,7 @@ class InputMethodDialogUIModel extends _$InputMethodDialogUIModel {
if (state.isEnableAutoTranslate) {
if (_translateTimer != null) _translateTimer?.cancel();
state = state.copyWith(isAutoTranslateWorking: true);
_translateTimer = Timer(Duration(milliseconds: webMessage ? 1 : 400), () async {
_translateTimer = Timer(Duration(milliseconds: webMessage ? 150 : 400), () async {
try {
final inputText = sourceText.replaceAll("\n", " ");
final r = await doTranslateText(inputText);