error report
This commit is contained in:
@@ -2,10 +2,12 @@ import 'package:filcnaplo/api/providers/user_provider.dart';
|
||||
import 'package:filcnaplo/api/providers/database_provider.dart';
|
||||
import 'package:filcnaplo/database/init.dart';
|
||||
import 'package:filcnaplo/models/settings.dart';
|
||||
import 'package:flutter/foundation.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:filcnaplo/app.dart';
|
||||
import 'package:flutter/services.dart';
|
||||
import 'package:filcnaplo_mobile_ui/screens/error_screen.dart';
|
||||
import 'package:filcnaplo_mobile_ui/screens/error_report_screen.dart';
|
||||
|
||||
void main() async {
|
||||
// Initalize
|
||||
@@ -39,12 +41,24 @@ class Startup {
|
||||
}
|
||||
}
|
||||
|
||||
bool errorShown = false;
|
||||
String lastException = '';
|
||||
|
||||
Widget errorBuilder(FlutterErrorDetails details) {
|
||||
return Builder(builder: (context) {
|
||||
if (Navigator.of(context).canPop()) Navigator.pop(context);
|
||||
|
||||
WidgetsBinding.instance?.addPostFrameCallback((_) {
|
||||
Navigator.of(context, rootNavigator: true).push(MaterialPageRoute(builder: (ctx) => ErrorScreen(details)));
|
||||
if (!errorShown && details.exceptionAsString() != lastException) {
|
||||
errorShown = true;
|
||||
lastException = details.exceptionAsString();
|
||||
Navigator.of(context, rootNavigator: true).push(MaterialPageRoute(builder: (context) {
|
||||
if (kReleaseMode)
|
||||
return ErrorReportScreen(details);
|
||||
else
|
||||
return ErrorScreen(details);
|
||||
})).then((_) => errorShown = false);
|
||||
}
|
||||
});
|
||||
|
||||
return Container();
|
||||
|
||||
Reference in New Issue
Block a user