From a68dd759d83bc3007dbfadd0ce0b7fda07817d5c Mon Sep 17 00:00:00 2001 From: unknown <55922348+55nknown@users.noreply.github.com> Date: Sun, 16 Jan 2022 18:15:26 +0100 Subject: [PATCH] homework attachments --- filcnaplo/lib/helpers/attachment_helper.dart | 26 +++++++++++++++++++- filcnaplo_kreta_api | 2 +- filcnaplo_mobile_ui | 2 +- 3 files changed, 27 insertions(+), 3 deletions(-) diff --git a/filcnaplo/lib/helpers/attachment_helper.dart b/filcnaplo/lib/helpers/attachment_helper.dart index 76edc29..2500fca 100644 --- a/filcnaplo/lib/helpers/attachment_helper.dart +++ b/filcnaplo/lib/helpers/attachment_helper.dart @@ -1,9 +1,11 @@ import 'dart:io'; import 'dart:typed_data'; +import 'package:filcnaplo/api/providers/user_provider.dart'; import 'package:filcnaplo/helpers/storage_helper.dart'; import 'package:filcnaplo_kreta_api/client/client.dart'; import 'package:filcnaplo_kreta_api/models/attachment.dart'; +import 'package:filcnaplo_kreta_api/models/homework.dart'; import 'package:flutter/widgets.dart'; import 'package:open_file/open_file.dart'; import 'package:provider/provider.dart'; @@ -22,7 +24,29 @@ extension AttachmentHelper on Attachment { Future open(BuildContext context) async { String downloads = await StorageHelper.downloadsPath(); - + + if (!await File("$downloads/$name").exists()) await download(context); + var result = await OpenFile.open("$downloads/$name"); + return result.type == ResultType.done; + } +} + +extension HomeworkAttachmentHelper on HomeworkAttachment { + Future download(BuildContext context, {bool overwrite = false}) async { + String downloads = await StorageHelper.downloadsPath(); + + if (!overwrite && await File("$downloads/$name").exists()) return "$downloads/$name"; + + String url = downloadUrl(Provider.of(context, listen: false).instituteCode ?? ""); + Uint8List data = await Provider.of(context, listen: false).getAPI(url, rawResponse: true); + if (!await StorageHelper.write("$downloads/$name", data)) return ""; + + return "$downloads/$name"; + } + + Future open(BuildContext context) async { + String downloads = await StorageHelper.downloadsPath(); + if (!await File("$downloads/$name").exists()) await download(context); var result = await OpenFile.open("$downloads/$name"); return result.type == ResultType.done; diff --git a/filcnaplo_kreta_api b/filcnaplo_kreta_api index 8d3c15f..bab39c9 160000 --- a/filcnaplo_kreta_api +++ b/filcnaplo_kreta_api @@ -1 +1 @@ -Subproject commit 8d3c15fc2a152dab0e9c58cfa65814f67179a676 +Subproject commit bab39c9eb4160b4140b63b6a95b8679b441aabee diff --git a/filcnaplo_mobile_ui b/filcnaplo_mobile_ui index 1fee7db..39bab27 160000 --- a/filcnaplo_mobile_ui +++ b/filcnaplo_mobile_ui @@ -1 +1 @@ -Subproject commit 1fee7db73a7048c6791acada571c449582d893b9 +Subproject commit 39bab27fd3624f2a790fb1576107a10c541a3db8