Merge pull request #199 from ente-io/email_fix
show dialog with email address initiating share files
This commit is contained in:
commit
2712fd73c5
|
@ -86,6 +86,12 @@ class _EnteAppState extends State<EnteApp> with WidgetsBindingObserver {
|
|||
);
|
||||
}
|
||||
|
||||
@override
|
||||
void dispose() {
|
||||
WidgetsBinding.instance.removeObserver(this);
|
||||
super.dispose();
|
||||
}
|
||||
|
||||
@override
|
||||
void didChangeAppLifecycleState(AppLifecycleState state) {
|
||||
if (state == AppLifecycleState.resumed) {
|
||||
|
|
|
@ -1,29 +1,27 @@
|
|||
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:photos/utils/email_util.dart';
|
||||
|
||||
PopupMenuButton<dynamic> reportBugPopupMenu(BuildContext context) {
|
||||
return PopupMenuButton(
|
||||
itemBuilder: (context) {
|
||||
final List<PopupMenuItem> items = [];
|
||||
items.add(
|
||||
PopupMenuItem(
|
||||
value: 1,
|
||||
child: Row(
|
||||
children: const [
|
||||
Text("contact support"),
|
||||
],
|
||||
),
|
||||
return PopupMenuButton(
|
||||
itemBuilder: (context) {
|
||||
final List<PopupMenuItem> items = [];
|
||||
items.add(
|
||||
PopupMenuItem(
|
||||
value: 1,
|
||||
child: Row(
|
||||
children: const [
|
||||
Text("contact support"),
|
||||
],
|
||||
),
|
||||
);
|
||||
return items;
|
||||
},
|
||||
onSelected: (value) async {
|
||||
if (value == 1) {
|
||||
await sendLogs(context, "contact support", "support@ente.io", postShare: () {
|
||||
|
||||
});
|
||||
}
|
||||
},
|
||||
);
|
||||
}
|
||||
),
|
||||
);
|
||||
return items;
|
||||
},
|
||||
onSelected: (value) async {
|
||||
if (value == 1) {
|
||||
await sendLogs(context, "contact support", "support@ente.io",
|
||||
postShare: () {});
|
||||
}
|
||||
},
|
||||
);
|
||||
}
|
||||
|
|
|
@ -3,16 +3,19 @@ import 'dart:io';
|
|||
import 'package:archive/archive_io.dart';
|
||||
import 'package:email_validator/email_validator.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter/services.dart';
|
||||
import 'package:flutter/widgets.dart';
|
||||
import 'package:flutter_email_sender/flutter_email_sender.dart';
|
||||
import 'package:logging/logging.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/utils/dialog_util.dart';
|
||||
import 'package:share_plus/share_plus.dart';
|
||||
import 'package:super_logging/super_logging.dart';
|
||||
|
||||
final Logger _logger = Logger('email_util');
|
||||
|
||||
bool isValidEmail(String email) {
|
||||
return EmailValidator.validate(email);
|
||||
}
|
||||
|
@ -133,6 +136,12 @@ Future<void> _sendLogs(
|
|||
await FlutterEmailSender.send(email);
|
||||
} catch (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]);
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue