diff --git a/lib/ui/app/lists/app_list_tile.dart b/lib/ui/app/lists/app_list_tile.dart index 18f309df2..7cb42ace0 100644 --- a/lib/ui/app/lists/app_list_tile.dart +++ b/lib/ui/app/lists/app_list_tile.dart @@ -31,15 +31,19 @@ class AppListTile extends StatelessWidget { title: Text(title), subtitle: buttons != null ? Padding( - padding: const EdgeInsets.only(top: 8), - child: Row( + padding: const EdgeInsets.only(top: 8), + child: Row( children: buttons, ), - ) + ) : (subtitle == null ? Container() : Text(subtitle)), dense: dense, onTap: onTap, onLongPress: () { + if ((copyValue ?? title ?? '').isEmpty) { + return; + } + Clipboard.setData(ClipboardData(text: copyValue ?? title)); Scaffold.of(context).showSnackBar(SnackBar( content: Text(AppLocalization.of(context) diff --git a/lib/ui/client/view/client_view_details.dart b/lib/ui/client/view/client_view_details.dart index c65e5903c..ba015c9bd 100644 --- a/lib/ui/client/view/client_view_details.dart +++ b/lib/ui/client/view/client_view_details.dart @@ -77,9 +77,16 @@ class _ClientViewDetailsState extends State { )), ], icon: Icons.email, - title: contact.fullName + '\n' + contact.email, + title: (contact.fullName.isEmpty + ? localization.blankContact + : contact.fullName) + + ('\n' + contact.email).trim(), copyValue: contact.email, onTap: () => setState(() { + if ((contact.email ?? '').isEmpty) { + return; + } + _launched = _launchURL(context, 'mailto:' + contact.email); }), )); @@ -87,7 +94,11 @@ class _ClientViewDetailsState extends State { if ((contact.phone ?? '').isNotEmpty) { listTiles.add(AppListTile( icon: Icons.phone, - title: contact.fullName + '\n' + contact.phone, + title: (contact.fullName.isEmpty + ? localization.blankContact + : contact.fullName) + + '\n' + + contact.phone, copyValue: contact.phone, subtitle: localization.phone, onTap: () => setState(() {