fluffychat/lib/utils/sentry_controller.dart

38 lines
1.1 KiB
Dart

import 'package:flutter/foundation.dart';
import 'package:flutter/material.dart';
import 'package:matrix/matrix.dart';
import 'package:sentry/sentry.dart';
import 'package:fluffychat/config/app_config.dart';
import '../config/setting_keys.dart';
import 'famedlysdk_store.dart';
abstract class SentryController {
static Future<void> toggleSentryAction(
BuildContext context, bool enableSentry) async {
if (!AppConfig.enableSentry) return;
final storage = Store();
await storage.setItem(SettingKeys.sentry, enableSentry.toString());
return;
}
static Future<bool> getSentryStatus() async {
if (!AppConfig.enableSentry) return false;
final storage = Store();
return await storage.getItemBool(SettingKeys.sentry);
}
static final sentry = SentryClient(SentryOptions(dsn: AppConfig.sentryDns));
static void captureException(error, stackTrace) async {
Logs().e('Capture exception', error, stackTrace);
if (!kDebugMode && await getSentryStatus()) {
await sentry.captureException(
error,
stackTrace: stackTrace,
);
}
}
}