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
|
@override
|
||||||
void didChangeAppLifecycleState(AppLifecycleState state) {
|
void didChangeAppLifecycleState(AppLifecycleState state) {
|
||||||
if (state == AppLifecycleState.resumed) {
|
if (state == AppLifecycleState.resumed) {
|
||||||
|
|
|
@ -1,29 +1,27 @@
|
||||||
|
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:photos/utils/email_util.dart';
|
import 'package:photos/utils/email_util.dart';
|
||||||
|
|
||||||
PopupMenuButton<dynamic> reportBugPopupMenu(BuildContext context) {
|
PopupMenuButton<dynamic> reportBugPopupMenu(BuildContext context) {
|
||||||
return PopupMenuButton(
|
return PopupMenuButton(
|
||||||
itemBuilder: (context) {
|
itemBuilder: (context) {
|
||||||
final List<PopupMenuItem> items = [];
|
final List<PopupMenuItem> items = [];
|
||||||
items.add(
|
items.add(
|
||||||
PopupMenuItem(
|
PopupMenuItem(
|
||||||
value: 1,
|
value: 1,
|
||||||
child: Row(
|
child: Row(
|
||||||
children: const [
|
children: const [
|
||||||
Text("contact support"),
|
Text("contact support"),
|
||||||
],
|
],
|
||||||
),
|
|
||||||
),
|
),
|
||||||
);
|
),
|
||||||
return items;
|
);
|
||||||
},
|
return items;
|
||||||
onSelected: (value) async {
|
},
|
||||||
if (value == 1) {
|
onSelected: (value) async {
|
||||||
await sendLogs(context, "contact support", "support@ente.io", postShare: () {
|
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: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]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue