|
@@ -3,16 +3,19 @@ import 'dart:io';
|
|
import 'package:archive/archive_io.dart';
|
|
import 'package:archive/archive_io.dart';
|
|
import 'package:email_validator/email_validator.dart';
|
|
import 'package:email_validator/email_validator.dart';
|
|
import 'package:flutter/material.dart';
|
|
import 'package:flutter/material.dart';
|
|
|
|
+import 'package:flutter/services.dart';
|
|
import 'package:flutter/widgets.dart';
|
|
import 'package:flutter/widgets.dart';
|
|
import 'package:flutter_email_sender/flutter_email_sender.dart';
|
|
import 'package:flutter_email_sender/flutter_email_sender.dart';
|
|
import 'package:logging/logging.dart';
|
|
import 'package:logging/logging.dart';
|
|
import 'package:path_provider/path_provider.dart';
|
|
import 'package:path_provider/path_provider.dart';
|
|
|
|
+import 'package:photos/ui/common/dialogs.dart';
|
|
import 'package:photos/ui/log_file_viewer.dart';
|
|
import 'package:photos/ui/log_file_viewer.dart';
|
|
import 'package:photos/utils/dialog_util.dart';
|
|
import 'package:photos/utils/dialog_util.dart';
|
|
import 'package:share_plus/share_plus.dart';
|
|
import 'package:share_plus/share_plus.dart';
|
|
import 'package:super_logging/super_logging.dart';
|
|
import 'package:super_logging/super_logging.dart';
|
|
|
|
|
|
final Logger _logger = Logger('email_util');
|
|
final Logger _logger = Logger('email_util');
|
|
|
|
+
|
|
bool isValidEmail(String email) {
|
|
bool isValidEmail(String email) {
|
|
return EmailValidator.validate(email);
|
|
return EmailValidator.validate(email);
|
|
}
|
|
}
|
|
@@ -133,6 +136,12 @@ Future<void> _sendLogs(
|
|
await FlutterEmailSender.send(email);
|
|
await FlutterEmailSender.send(email);
|
|
} catch (e, s) {
|
|
} catch (e, s) {
|
|
_logger.severe('email sender failed', e, s);
|
|
_logger.severe('email sender failed', e, s);
|
|
|
|
+ final result = await showChoiceDialog(
|
|
|
|
+ context, "email logs", "please send the logs to $toEmail",
|
|
|
|
+ firstAction: "copy email", secondAction: "ok");
|
|
|
|
+ if (result != null && result == DialogUserChoice.firstChoice) {
|
|
|
|
+ await Clipboard.setData(ClipboardData(text: toEmail));
|
|
|
|
+ }
|
|
await Share.shareFiles([zipFilePath]);
|
|
await Share.shareFiles([zipFilePath]);
|
|
}
|
|
}
|
|
}
|
|
}
|