82 lines
2.4 KiB
Dart
82 lines
2.4 KiB
Dart
import 'dart:developer';
|
|
import 'dart:io';
|
|
|
|
import 'package:device_info_plus/device_info_plus.dart';
|
|
import 'package:dio/dio.dart';
|
|
import 'package:permission_handler/permission_handler.dart';
|
|
import 'package:regroup/Utils/dialogs.dart';
|
|
|
|
class Downloadpdfnew {
|
|
Future openFile({
|
|
required String url,
|
|
String? fileName,
|
|
}) async {
|
|
var status;
|
|
// Permission.manageExternalStorage.request();
|
|
final deviceInfo = await DeviceInfoPlugin().androidInfo;
|
|
if (deviceInfo.version.sdkInt > 32) {
|
|
status = await Permission.photos.request().isGranted;
|
|
|
|
await Permission.manageExternalStorage.request();
|
|
} else {
|
|
status = await Permission.storage.request().isGranted;
|
|
await Permission.manageExternalStorage.request();
|
|
}
|
|
if (status) {
|
|
await downloadFile(url, fileName!);
|
|
// if (file == null) {
|
|
// log("Error 3333333333333");
|
|
// } else {
|
|
// await OpenFile.open(file.path).then((value) {
|
|
// print("RUNNING THIS");
|
|
// if (value.type == ResultType.noAppToOpen) {
|
|
// ScaffoldMessenger.of(context).showSnackBar(Helper.displaySnackBar(
|
|
// "type",
|
|
// "error",
|
|
// "You do not have any application to open this file"));
|
|
|
|
// //Navigator.pop(context);
|
|
// } else {
|
|
// log(value.message);
|
|
// }
|
|
// });
|
|
|
|
// // if (message.toString() != "done") {
|
|
// // displaySnackBar("login", "error", message.message.toString());
|
|
// // }
|
|
// }
|
|
} else {
|
|
openAppSettings();
|
|
}
|
|
}
|
|
|
|
static Future<File?> downloadFile(String url, String name) async {
|
|
final appStorage = Directory("/storage/emulated/0/Download");
|
|
final file = File('${appStorage.path}/$name');
|
|
|
|
try {
|
|
utils.showToast("Downloading...");
|
|
final response = await Dio().get(
|
|
url,
|
|
options: Options(
|
|
// headers: requestHeaders,
|
|
responseType: ResponseType.bytes,
|
|
followRedirects: false,
|
|
// receiveTimeout: 0,
|
|
),
|
|
);
|
|
final raf = file.openSync(mode: FileMode.write);
|
|
raf.writeFromSync(response.data);
|
|
await raf.close();
|
|
utils.showToast("Download Completed !");
|
|
|
|
return file;
|
|
} catch (e) {
|
|
log(e.toString());
|
|
utils.showToast("Download Error! Please try again");
|
|
|
|
return null;
|
|
}
|
|
}
|
|
}
|