add paynym share

This commit is contained in:
julian 2023-02-01 10:08:30 -06:00
parent bc5dc9a5d7
commit 266a433aa3
7 changed files with 36 additions and 33 deletions

View file

@ -4,6 +4,7 @@ import 'package:flutter/material.dart';
import 'package:flutter/services.dart'; import 'package:flutter/services.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart';
import 'package:flutter_svg/svg.dart'; import 'package:flutter_svg/svg.dart';
import 'package:share_plus/share_plus.dart';
import 'package:stackwallet/notifications/show_flush_bar.dart'; import 'package:stackwallet/notifications/show_flush_bar.dart';
import 'package:stackwallet/pages/paynym/add_new_paynym_follow_view.dart'; import 'package:stackwallet/pages/paynym/add_new_paynym_follow_view.dart';
import 'package:stackwallet/pages/paynym/dialogs/paynym_qr_popup.dart'; import 'package:stackwallet/pages/paynym/dialogs/paynym_qr_popup.dart';
@ -358,8 +359,25 @@ class _PaynymHomeViewState extends ConsumerState<PaynymHomeView> {
.extension<StackColors>()! .extension<StackColors>()!
.textDark, .textDark,
), ),
onPressed: () { onPressed: () async {
// copy to clipboard Rect? sharePositionOrigin;
if (await Util.isIPad) {
final box =
context.findRenderObject() as RenderBox?;
if (box != null) {
sharePositionOrigin =
box.localToGlobal(Offset.zero) & box.size;
}
}
await Share.share(
ref
.read(myPaynymAccountStateProvider.state)
.state!
.codes
.first
.code,
sharePositionOrigin: sharePositionOrigin);
}, },
), ),
), ),

View file

@ -1,5 +1,6 @@
import 'dart:io'; import 'dart:io';
import 'package:device_info_plus/device_info_plus.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
abstract class Util { abstract class Util {
@ -22,6 +23,14 @@ abstract class Util {
return Platform.isLinux || Platform.isMacOS || Platform.isWindows; return Platform.isLinux || Platform.isMacOS || Platform.isWindows;
} }
static Future<bool> get isIPad async {
final deviceInfo = (await DeviceInfoPlugin().deviceInfo);
if (deviceInfo is IosDeviceInfo) {
return (deviceInfo).name?.toLowerCase().contains("ipad") == true;
}
return false;
}
static MaterialColor createMaterialColor(Color color) { static MaterialColor createMaterialColor(Color color) {
List<double> strengths = <double>[.05]; List<double> strengths = <double>[.05];
final swatch = <int, Color>{}; final swatch = <int, Color>{};

View file

@ -14,7 +14,7 @@ import flutter_secure_storage_macos
import isar_flutter_libs import isar_flutter_libs
import package_info_plus_macos import package_info_plus_macos
import path_provider_macos import path_provider_macos
import share_plus_macos import share_plus
import shared_preferences_macos import shared_preferences_macos
import stack_wallet_backup import stack_wallet_backup
import url_launcher_macos import url_launcher_macos

View file

@ -1237,21 +1237,7 @@ packages:
name: share_plus name: share_plus
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "4.5.3" version: "6.3.0"
share_plus_linux:
dependency: transitive
description:
name: share_plus_linux
url: "https://pub.dartlang.org"
source: hosted
version: "3.0.1"
share_plus_macos:
dependency: transitive
description:
name: share_plus_macos
url: "https://pub.dartlang.org"
source: hosted
version: "3.0.1"
share_plus_platform_interface: share_plus_platform_interface:
dependency: transitive dependency: transitive
description: description:
@ -1259,20 +1245,6 @@ packages:
url: "https://pub.dartlang.org" url: "https://pub.dartlang.org"
source: hosted source: hosted
version: "3.2.0" version: "3.2.0"
share_plus_web:
dependency: transitive
description:
name: share_plus_web
url: "https://pub.dartlang.org"
source: hosted
version: "3.1.0"
share_plus_windows:
dependency: transitive
description:
name: share_plus_windows
url: "https://pub.dartlang.org"
source: hosted
version: "3.0.1"
shared_preferences: shared_preferences:
dependency: transitive dependency: transitive
description: description:

View file

@ -126,7 +126,7 @@ dependencies:
tuple: ^2.0.0 tuple: ^2.0.0
flutter_riverpod: ^1.0.3 flutter_riverpod: ^1.0.3
qr_flutter: ^4.0.0 qr_flutter: ^4.0.0
share_plus: ^4.0.10 share_plus: ^6.3.0
emojis: ^0.9.9 emojis: ^0.9.9
pointycastle: ^3.6.0 pointycastle: ^3.6.0
package_info_plus: ^1.4.2 package_info_plus: ^1.4.2

View file

@ -11,6 +11,7 @@
#include <flutter_secure_storage_windows/flutter_secure_storage_windows_plugin.h> #include <flutter_secure_storage_windows/flutter_secure_storage_windows_plugin.h>
#include <isar_flutter_libs/isar_flutter_libs_plugin.h> #include <isar_flutter_libs/isar_flutter_libs_plugin.h>
#include <permission_handler_windows/permission_handler_windows_plugin.h> #include <permission_handler_windows/permission_handler_windows_plugin.h>
#include <share_plus/share_plus_windows_plugin_c_api.h>
#include <stack_wallet_backup/stack_wallet_backup_plugin_c_api.h> #include <stack_wallet_backup/stack_wallet_backup_plugin_c_api.h>
#include <url_launcher_windows/url_launcher_windows.h> #include <url_launcher_windows/url_launcher_windows.h>
#include <window_size/window_size_plugin.h> #include <window_size/window_size_plugin.h>
@ -26,6 +27,8 @@ void RegisterPlugins(flutter::PluginRegistry* registry) {
registry->GetRegistrarForPlugin("IsarFlutterLibsPlugin")); registry->GetRegistrarForPlugin("IsarFlutterLibsPlugin"));
PermissionHandlerWindowsPluginRegisterWithRegistrar( PermissionHandlerWindowsPluginRegisterWithRegistrar(
registry->GetRegistrarForPlugin("PermissionHandlerWindowsPlugin")); registry->GetRegistrarForPlugin("PermissionHandlerWindowsPlugin"));
SharePlusWindowsPluginCApiRegisterWithRegistrar(
registry->GetRegistrarForPlugin("SharePlusWindowsPluginCApi"));
StackWalletBackupPluginCApiRegisterWithRegistrar( StackWalletBackupPluginCApiRegisterWithRegistrar(
registry->GetRegistrarForPlugin("StackWalletBackupPluginCApi")); registry->GetRegistrarForPlugin("StackWalletBackupPluginCApi"));
UrlLauncherWindowsRegisterWithRegistrar( UrlLauncherWindowsRegisterWithRegistrar(

View file

@ -8,6 +8,7 @@ list(APPEND FLUTTER_PLUGIN_LIST
flutter_secure_storage_windows flutter_secure_storage_windows
isar_flutter_libs isar_flutter_libs
permission_handler_windows permission_handler_windows
share_plus
stack_wallet_backup stack_wallet_backup
url_launcher_windows url_launcher_windows
window_size window_size