2020-11-14 09:08:13 +00:00
|
|
|
import 'package:adaptive_dialog/adaptive_dialog.dart';
|
2020-12-19 12:06:31 +00:00
|
|
|
import 'package:famedlysdk/famedlysdk.dart';
|
2020-11-14 07:54:26 +00:00
|
|
|
import 'package:flushbar/flushbar_helper.dart';
|
2020-12-11 13:14:33 +00:00
|
|
|
import 'package:fluffychat/app_config.dart';
|
2020-09-08 08:55:32 +00:00
|
|
|
import 'package:flutter/material.dart';
|
2020-10-28 17:13:04 +00:00
|
|
|
import 'package:flutter/foundation.dart';
|
2020-10-03 11:11:07 +00:00
|
|
|
import 'package:flutter_gen/gen_l10n/l10n.dart';
|
2020-10-28 09:56:24 +00:00
|
|
|
import 'package:sentry/sentry.dart';
|
2020-10-13 10:20:13 +00:00
|
|
|
|
|
|
|
import 'famedlysdk_store.dart';
|
2020-11-07 11:00:41 +00:00
|
|
|
import '../config/setting_keys.dart';
|
2020-09-08 08:55:32 +00:00
|
|
|
|
|
|
|
abstract class SentryController {
|
|
|
|
static Future<void> toggleSentryAction(BuildContext context) async {
|
2020-12-11 13:14:33 +00:00
|
|
|
if (!AppConfig.enableSentry) return;
|
2020-11-14 09:08:13 +00:00
|
|
|
final enableSentry = await showOkCancelAlertDialog(
|
|
|
|
context: context,
|
|
|
|
title: L10n.of(context).sendBugReports,
|
|
|
|
message: L10n.of(context).sentryInfo,
|
|
|
|
okLabel: L10n.of(context).ok,
|
|
|
|
cancelLabel: L10n.of(context).no,
|
|
|
|
) ==
|
|
|
|
OkCancelResult.ok;
|
2020-10-25 15:59:55 +00:00
|
|
|
final storage = Store();
|
2020-11-07 11:00:41 +00:00
|
|
|
await storage.setItem(SettingKeys.sentry, enableSentry.toString());
|
2020-11-14 09:08:13 +00:00
|
|
|
// ignore: unawaited_futures
|
|
|
|
FlushbarHelper.createSuccess(message: L10n.of(context).changesHaveBeenSaved)
|
2020-11-14 07:54:26 +00:00
|
|
|
.show(context);
|
2020-09-08 08:55:32 +00:00
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
|
|
|
static Future<bool> getSentryStatus() async {
|
2020-12-11 13:14:33 +00:00
|
|
|
if (!AppConfig.enableSentry) return false;
|
2020-10-25 15:59:55 +00:00
|
|
|
final storage = Store();
|
2020-11-07 11:00:41 +00:00
|
|
|
return await storage.getItemBool(SettingKeys.sentry);
|
2020-09-08 08:55:32 +00:00
|
|
|
}
|
2020-10-28 09:56:24 +00:00
|
|
|
|
2020-12-11 13:14:33 +00:00
|
|
|
static final sentry = SentryClient(dsn: AppConfig.sentryDns);
|
2020-10-28 09:56:24 +00:00
|
|
|
|
|
|
|
static void captureException(error, stackTrace) async {
|
2020-12-19 12:06:31 +00:00
|
|
|
Logs().e('Capture exception', error, stackTrace);
|
2020-10-28 17:13:04 +00:00
|
|
|
if (!kDebugMode && await getSentryStatus()) {
|
2020-10-28 09:56:24 +00:00
|
|
|
await sentry.captureException(
|
|
|
|
exception: error,
|
|
|
|
stackTrace: stackTrace,
|
|
|
|
);
|
|
|
|
}
|
|
|
|
}
|
2020-09-08 08:55:32 +00:00
|
|
|
}
|