// SPDX-FileCopyrightText: 2019-Present Christian Kußowski // SPDX-FileCopyrightText: 2019-Present Contributors to FluffyChat // // SPDX-License-Identifier: AGPL-3.0-or-later import 'package:tatchat/l10n/l10n.dart'; import 'package:tatchat/utils/platform_infos.dart'; import 'package:flutter/services.dart'; import 'package:material_ui/material_ui.dart'; import 'package:share_plus/share_plus.dart'; import '../widgets/matrix.dart'; abstract class TatuShare { static Future share( String text, BuildContext context, { bool copyOnly = false, }) async { final l10n = L10n.of(context); final scaffoldMessenger = ScaffoldMessenger.of(context); if (PlatformInfos.isMobile && !copyOnly) { final box = context.findRenderObject() as RenderBox; await SharePlus.instance.share( ShareParams( text: text, sharePositionOrigin: box.localToGlobal(Offset.zero) & box.size, ), ); return; } await Clipboard.setData(ClipboardData(text: text)); if (!PlatformInfos.isMobile) { scaffoldMessenger.showSnackBar( SnackBar(showCloseIcon: true, content: Text(l10n.copiedToClipboard)), ); } return; } static Future shareInviteLink(BuildContext context) async { final l10n = L10n.of(context); final client = Matrix.of(context).client; final ownProfile = await client.fetchOwnProfile(); if (!context.mounted) return; await TatuShare.share( l10n.inviteText( ownProfile.displayName ?? client.userID!, 'https://matrix.to/#/${client.userID}?client=im.tatuchat', ), context, ); } }