Merge pull request #199 from ente-io/email_fix

show dialog with email address initiating share files
This commit is contained in:
Vishnu Mohandas 2022-03-08 13:19:18 +05:30 committed by GitHub
commit 2712fd73c5
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 37 additions and 24 deletions

View file

@ -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) {

View file

@ -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: () {});
}
},
);
}

View file

@ -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]);
}
}