Skip to content

Commit

Permalink
ML-65 [Android] Exception on mailto intent (#66)
Browse files Browse the repository at this point in the history
* added error toast

* lints
  • Loading branch information
vodemn authored May 8, 2023
1 parent 0d3641f commit 4f8a415
Show file tree
Hide file tree
Showing 6 changed files with 41 additions and 4 deletions.
8 changes: 8 additions & 0 deletions android/app/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,14 @@
android:value="2" />
</application>

<queries>
<intent>
<action android:name="android.intent.action.SEND" />
<data android:scheme="mailto" />
<category android:name="android.intent.category.DEFAULT" />
</intent>
</queries>

<uses-permission android:name="android.permission.CAMERA" />
<uses-feature android:name="android.hardware.camera" android:required="true" />

Expand Down
2 changes: 2 additions & 0 deletions lib/l10n/intl_en.arb
Original file line number Diff line number Diff line change
Expand Up @@ -70,6 +70,8 @@
"sourceCode": "Source code",
"reportIssue": "Report an issue",
"writeEmail": "Write an email",
"youDontHaveMailApp": "You don't have any mail app installed.",
"copyEmail": "Copy email",
"version": "Version",
"versionNumber": "{version} ({buildNumber})",
"@versionNumber": {
Expand Down
2 changes: 2 additions & 0 deletions lib/l10n/intl_fr.arb
Original file line number Diff line number Diff line change
Expand Up @@ -70,6 +70,8 @@
"sourceCode": "Code source",
"reportIssue": "Rapporter un problème",
"writeEmail": "Écrire un email",
"youDontHaveMailApp": "Vous n'avez installé aucune application de messagerie.",
"copyEmail": "Copier un e-mail",
"version": "Version",
"versionNumber": "{version} ({buildNumber})",
"@versionNumber": {
Expand Down
2 changes: 2 additions & 0 deletions lib/l10n/intl_ru.arb
Original file line number Diff line number Diff line change
Expand Up @@ -70,6 +70,8 @@
"sourceCode": "Исходный код",
"reportIssue": "Сообщить о проблеме",
"writeEmail": "Написать на почту",
"youDontHaveMailApp": "У вас не установлено почтовое приложение.",
"copyEmail": "Скопировать адрес",
"version": "Версия",
"versionNumber": "{version} ({buildNumber})",
"@versionNumber": {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
import 'package:clipboard/clipboard.dart';
import 'package:flutter/material.dart';
import 'package:lightmeter/environment.dart';
import 'package:lightmeter/generated/l10n.dart';
Expand All @@ -13,10 +14,31 @@ class WriteEmailListTile extends StatelessWidget {
leading: const Icon(Icons.email),
title: Text(S.of(context).writeEmail),
onTap: () {
launchUrl(
Uri.parse('mailto:${context.read<Environment>().contactEmail}?subject=M3 Lightmeter'),
mode: LaunchMode.externalApplication,
);
final email = context.read<Environment>().contactEmail;
final mailToUrl = Uri.parse('mailto:$email?subject=M3 Lightmeter');
canLaunchUrl(mailToUrl).then((canLaunch) {
if (canLaunch) {
launchUrl(
mailToUrl,
mode: LaunchMode.externalApplication,
);
} else {
ScaffoldMessenger.of(context).showSnackBar(
SnackBar(
content: Text(S.of(context).youDontHaveMailApp),
behavior: SnackBarBehavior.floating,
action: SnackBarAction(
label: S.of(context).copyEmail,
onPressed: () {
FlutterClipboard.copy(email).then((_) {
ScaffoldMessenger.of(context).clearSnackBars();
});
},
),
),
);
}
});
},
);
}
Expand Down
1 change: 1 addition & 0 deletions pubspec.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ environment:
dependencies:
app_settings: 4.2.0
camera: 0.10.0+4
clipboard: 0.1.3
exif: 3.1.2
dynamic_color: 1.5.4
firebase_core: 2.11.0
Expand Down

0 comments on commit 4f8a415

Please sign in to comment.