Fix uri launch

This commit is contained in:
problematicconsumer
2023-08-25 17:58:04 +03:30
parent cf344e49c5
commit 55635a579e
6 changed files with 60 additions and 37 deletions

View File

@@ -1,5 +1,3 @@
import 'dart:io';
import 'package:dartx/dartx.dart';
import 'package:flutter/material.dart';
import 'package:fpdart/fpdart.dart';
@@ -14,9 +12,7 @@ import 'package:hiddify/services/service_providers.dart';
import 'package:hiddify/utils/utils.dart';
import 'package:hooks_riverpod/hooks_riverpod.dart';
import 'package:recase/recase.dart';
import 'package:share_plus/share_plus.dart';
import 'package:tint/tint.dart';
import 'package:url_launcher/url_launcher.dart';
class LogsPage extends HookConsumerWidget with PresLogger {
const LogsPage({super.key});
@@ -35,18 +31,18 @@ class LogsPage extends HookConsumerWidget with PresLogger {
PopupMenuItem(
child: Text(t.logs.shareCoreLogs.sentenceCase),
onTap: () async {
await shareFileOrOpenDir(
filesEditor.coreLogsPath,
filesEditor.logsDir.uri,
await UriUtils.tryShareOrLaunchFile(
Uri.parse(filesEditor.coreLogsPath),
fileOrDir: filesEditor.logsDir.uri,
);
},
),
PopupMenuItem(
child: Text(t.logs.shareAppLogs.sentenceCase),
onTap: () async {
await shareFileOrOpenDir(
filesEditor.appLogsPath,
filesEditor.logsDir.uri,
await UriUtils.tryShareOrLaunchFile(
Uri.parse(filesEditor.appLogsPath),
fileOrDir: filesEditor.logsDir.uri,
);
},
),
@@ -164,17 +160,4 @@ class LogsPage extends HookConsumerWidget with PresLogger {
return const Scaffold();
}
}
Future<void> shareFileOrOpenDir(String path, Uri dir) async {
try {
if (Platform.isWindows || Platform.isLinux) {
await launchUrl(dir);
} else {
final file = XFile(path, mimeType: "text/plain");
await Share.shareXFiles([file]);
}
} catch (err, stackTrace) {
loggy.warning("error sharing log file", err, stackTrace);
}
}
}