Signed-off-by: dom <githubaccount56556@proton.me>
This commit is contained in:
dom
2026-04-29 12:47:14 +08:00
parent c7864ff4a3
commit cd26cf6d98
104 changed files with 482 additions and 391 deletions

View File

@@ -0,0 +1,41 @@
import 'dart:io' show Platform;
import 'package:PiliPlus/utils/device_utils.dart';
import 'package:PiliPlus/utils/platform_utils.dart';
import 'package:PiliPlus/utils/utils.dart';
import 'package:device_info_plus/device_info_plus.dart';
import 'package:flutter/rendering.dart' show Rect;
import 'package:flutter_smart_dialog/flutter_smart_dialog.dart';
import 'package:share_plus/share_plus.dart';
abstract final class ShareUtils {
static bool? _isIpad;
static Future<bool> get isIpad async {
if (!Platform.isIOS) return false;
return _isIpad ??= (await DeviceInfoPlugin().iosInfo).model
.toLowerCase()
.contains('ipad');
}
static Future<Rect?> get sharePositionOrigin async {
if (await isIpad) {
final screenSize = DeviceUtils.size;
return Rect.fromLTRB(0, 0, screenSize.width, screenSize.height / 2);
}
return null;
}
static Future<void> shareText(String text) async {
if (PlatformUtils.isDesktop) {
Utils.copyText(text);
return;
}
try {
await SharePlus.instance.share(
ShareParams(text: text, sharePositionOrigin: await sharePositionOrigin),
);
} catch (e) {
SmartDialog.showToast(e.toString());
}
}
}