hotfix: Capture Exception

This commit is contained in:
Christian Pauly 2020-10-04 11:52:06 +02:00
parent c8d3c9d614
commit 028b1e4ed8
3 changed files with 28 additions and 22 deletions

View file

@ -15,6 +15,7 @@ import 'package:localstorage/localstorage.dart';
import 'package:universal_html/prefer_universal/html.dart' as html;
import 'package:url_launcher/url_launcher.dart';
import '../main.dart';
import '../utils/app_route.dart';
import '../utils/beautify_string_extension.dart';
import '../utils/famedlysdk_store.dart';
@ -83,15 +84,20 @@ class MatrixState extends State<Matrix> {
void _initWithStore() async {
var initLoginState = client.onLoginStateChanged.stream.first;
client.database = await getDatabase(client);
client.connect();
if (await initLoginState == LoginState.logged && PlatformInfos.isMobile) {
await FirebaseController.setupFirebase(
this,
widget.clientName,
);
try {
client.database = await getDatabase(client);
client.connect();
if (await initLoginState == LoginState.logged && PlatformInfos.isMobile) {
await FirebaseController.setupFirebase(
this,
widget.clientName,
);
}
_cleanUpUserStatus(userStatuses);
} catch (e, s) {
client.onLoginStateChanged.sink.addError(e, s);
captureException(e, s);
}
_cleanUpUserStatus(userStatuses);
}
Map<String, dynamic> getAuthByPassword(String password, [String session]) => {

View file

@ -18,23 +18,25 @@ import 'views/chat_list.dart';
final sentry = SentryClient(dsn: '8591d0d863b646feb4f3dda7e5dcab38');
void captureException(error, stackTrace) async {
final storage = LocalStorage('LocalStorage');
await storage.ready;
debugPrint(error.toString());
debugPrint(stackTrace.toString());
if (storage.getItem('sentry') == true) {
await sentry.captureException(
exception: error,
stackTrace: stackTrace,
);
}
}
void main() {
SystemChrome.setSystemUIOverlayStyle(
SystemUiOverlayStyle(statusBarColor: Colors.transparent));
runZonedGuarded(
() => runApp(App()),
(error, stackTrace) async {
final storage = LocalStorage('LocalStorage');
await storage.ready;
debugPrint(error.toString());
debugPrint(stackTrace.toString());
if (storage.getItem('sentry') == true) {
await sentry.captureException(
exception: error,
stackTrace: stackTrace,
);
}
},
captureException,
);
}

View file

@ -36,8 +36,6 @@ Future<Database> getDatabase(Client client) async {
await store.setItem('database-password', password);
}
return _db;
} catch (_) {
rethrow;
} finally {
_generateDatabaseLock = false;
}