Add saveToDownloads

This commit is contained in:
Ashita Prasad
2024-12-09 04:45:28 +05:30
parent e96ca90c38
commit 79b12f4e4a
3 changed files with 35 additions and 22 deletions

View File

@ -1,4 +1,5 @@
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:apidash/utils/utils.dart';
import 'package:apidash/widgets/widgets.dart';
@ -20,3 +21,30 @@ Future<void> saveCollection(
sm.hideCurrentSnackBar();
sm.showSnackBar(getSnackBar(message, small: false));
}
Future<void> saveToDownloads(
ScaffoldMessengerState sm, {
Uint8List? content,
String? mimeType,
String? ext,
String? name,
}) async {
var message = "";
var path = await getFileDownloadpath(
name,
ext ?? getFileExtension(mimeType),
);
if (path != null) {
try {
await saveFile(path, content!);
var sp = getShortPath(path);
message = 'Saved to $sp';
} catch (e) {
message = "An error occurred while saving file.";
}
} else {
message = "Unable to determine the download path.";
}
sm.hideCurrentSnackBar();
sm.showSnackBar(getSnackBar(message, small: false));
}

View File

@ -2,7 +2,6 @@ import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:apidash/utils/utils.dart';
import 'package:apidash/consts.dart';
import "snackbars.dart";
class SaveInDownloadsButton extends StatelessWidget {
const SaveInDownloadsButton({
@ -29,26 +28,13 @@ class SaveInDownloadsButton extends StatelessWidget {
);
const label = kLabelDownload;
final onPressed = (content != null)
? () async {
var message = "";
var path = await getFileDownloadpath(
name,
ext ?? getFileExtension(mimeType),
);
if (path != null) {
try {
await saveFile(path, content!);
var sp = getShortPath(path);
message = 'Saved to $sp';
} catch (e) {
message = "An error occurred while saving file.";
}
} else {
message = "Unable to determine the download path.";
}
sm.hideCurrentSnackBar();
sm.showSnackBar(getSnackBar(message, small: false));
}
? () => saveToDownloads(
sm,
content: content,
mimeType: mimeType,
ext: ext,
name: name,
)
: null;
return showLabel

View File

@ -3,7 +3,6 @@
import 'package:apidash/main.dart';
import 'package:apidash/app.dart';
import 'package:apidash/common/utils.dart';
import 'package:apidash/screens/screens.dart';
void main() {}