mirror of
https://github.com/Auties00/Reboot-Launcher.git
synced 2026-01-13 19:22:22 +01:00
34 lines
1.1 KiB
Dart
34 lines
1.1 KiB
Dart
import 'package:fluent_ui/fluent_ui.dart';
|
|
import 'package:reboot_common/common.dart';
|
|
import 'package:reboot_launcher/src/messenger/abstract/dialog.dart';
|
|
import 'package:reboot_launcher/src/page/pages.dart';
|
|
import 'package:reboot_launcher/src/util/translations.dart';
|
|
|
|
String? lastError;
|
|
|
|
void onError(Object exception, StackTrace? stackTrace, bool framework) {
|
|
log("[ERROR] $exception");
|
|
log("[STACKTRACE] $stackTrace");
|
|
if(pageKey.currentContext == null || pageKey.currentState?.mounted == false){
|
|
return;
|
|
}
|
|
|
|
if(lastError == exception.toString()){
|
|
return;
|
|
}
|
|
|
|
lastError = exception.toString();
|
|
final route = ModalRoute.of(pageKey.currentContext!);
|
|
if(route != null && !route.isCurrent){
|
|
Navigator.of(pageKey.currentContext!).pop(false);
|
|
}
|
|
|
|
WidgetsBinding.instance.addPostFrameCallback((timeStamp) => showRebootDialog(
|
|
builder: (context) =>
|
|
ErrorDialog(
|
|
exception: exception,
|
|
stackTrace: stackTrace,
|
|
errorMessageBuilder: (exception) => translations.uncaughtErrorMessage(exception.toString())
|
|
)
|
|
));
|
|
} |