mirror of
https://github.com/cake-tech/cake_wallet.git
synced 2025-02-03 19:56:39 +00:00
Enhance file loading in exception handler
This commit is contained in:
parent
1823d3f7b2
commit
2612c9afcf
1 changed files with 16 additions and 10 deletions
|
@ -16,11 +16,15 @@ import 'package:shared_preferences/shared_preferences.dart';
|
|||
class ExceptionHandler {
|
||||
static bool _hasError = false;
|
||||
static const _coolDownDurationInDays = 7;
|
||||
static File? _file;
|
||||
|
||||
static void _saveException(String? error, StackTrace? stackTrace, {String? library}) async {
|
||||
final appDocDir = await getApplicationDocumentsDirectory();
|
||||
if (_file == null) {
|
||||
final appDocDir = await getApplicationDocumentsDirectory();
|
||||
|
||||
_file = File('${appDocDir.path}/error.txt');
|
||||
}
|
||||
|
||||
final file = File('${appDocDir.path}/error.txt');
|
||||
final exception = {
|
||||
"${DateTime.now()}": {
|
||||
"Error": "$error\n\n",
|
||||
|
@ -33,14 +37,14 @@ class ExceptionHandler {
|
|||
==========================================================\n\n''';
|
||||
|
||||
/// don't save existing errors
|
||||
if (file.existsSync()) {
|
||||
final String fileContent = await file.readAsString();
|
||||
if (_file!.existsSync()) {
|
||||
final String fileContent = await _file!.readAsString();
|
||||
if (fileContent.contains("${exception.values.first}")) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
file.writeAsStringSync(
|
||||
_file!.writeAsStringSync(
|
||||
"$exception $separator",
|
||||
mode: FileMode.append,
|
||||
);
|
||||
|
@ -48,16 +52,18 @@ class ExceptionHandler {
|
|||
|
||||
static void _sendExceptionFile() async {
|
||||
try {
|
||||
final appDocDir = await getApplicationDocumentsDirectory();
|
||||
if (_file == null) {
|
||||
final appDocDir = await getApplicationDocumentsDirectory();
|
||||
|
||||
final file = File('${appDocDir.path}/error.txt');
|
||||
_file = File('${appDocDir.path}/error.txt');
|
||||
}
|
||||
|
||||
await _addDeviceInfo(file);
|
||||
await _addDeviceInfo(_file!);
|
||||
|
||||
final MailOptions mailOptions = MailOptions(
|
||||
subject: 'Mobile App Issue',
|
||||
recipients: ['support@cakewallet.com'],
|
||||
attachments: [file.path],
|
||||
attachments: [_file!.path],
|
||||
);
|
||||
|
||||
final result = await FlutterMailer.send(mailOptions);
|
||||
|
@ -67,7 +73,7 @@ class ExceptionHandler {
|
|||
if (result.name == MailerResponse.sent.name ||
|
||||
result.name == MailerResponse.saved.name ||
|
||||
result.name == MailerResponse.android.name) {
|
||||
file.writeAsString("", mode: FileMode.write);
|
||||
_file!.writeAsString("", mode: FileMode.write);
|
||||
}
|
||||
} catch (e, s) {
|
||||
_saveException(e.toString(), s);
|
||||
|
|
Loading…
Reference in a new issue