fix: #191 : Download reported has successful on readonly storage

This commit is contained in:
Yannick Mauray 2024-07-25 12:58:43 +02:00
parent 62faac71b4
commit df0d66f71d
No known key found for this signature in database
GPG Key ID: C5C52B9E46D9F148
4 changed files with 65 additions and 10 deletions

View File

@ -190,3 +190,9 @@ msgstr "Loading available downloads"
msgid "Powered by"
msgstr "Powered by"
msgid "Error"
msgstr "Error"
msgid "Could not write to the working directory. Please check the permissions."
msgstr "Could not write to the working directory. Please check the permissions."

View File

@ -185,6 +185,12 @@ msgstr "Nom d'utilisateur SSH"
msgid "Connect"
msgstr "Connecter"
msgid "Error"
msgstr "Erreur"
msgid "Could not write to the working directory. Please check the permissions."
msgstr "Impossible d'écrire dans le répertoire de travail. Veuillez vérifier les permissions."
msgid "Loading available downloads"
msgstr "Chargement des téléchargements disponibles"

View File

@ -187,6 +187,12 @@ msgstr ""
msgid "Connect"
msgstr ""
msgid "Error"
msgstr ""
msgid "Could not write to the working directory. Please check the permissions."
msgstr ""
msgid "Loading available downloads"
msgstr ""

View File

@ -2,6 +2,8 @@ import 'dart:io';
import 'package:flutter/material.dart';
import 'package:gettext_i18n/gettext_i18n.dart';
import 'package:quickgui/src/globals.dart';
import 'package:quickgui/src/mixins/preferences_mixin.dart';
import 'package:tuple/tuple.dart';
import '../../model/operating_system.dart';
@ -19,7 +21,8 @@ class HomePageButtonGroup extends StatefulWidget {
State<HomePageButtonGroup> createState() => _HomePageButtonGroupState();
}
class _HomePageButtonGroupState extends State<HomePageButtonGroup> {
class _HomePageButtonGroupState extends State<HomePageButtonGroup>
with PreferencesMixin {
OperatingSystem? _selectedOperatingSystem;
Version? _selectedVersion;
Option? _selectedOption;
@ -85,16 +88,50 @@ class _HomePageButtonGroupState extends State<HomePageButtonGroup> {
text: context.t('Download'),
onPressed: (_selectedVersion == null)
? null
: () {
Navigator.of(context).push(
MaterialPageRoute(
builder: (context) => Downloader(
operatingSystem: _selectedOperatingSystem!,
version: _selectedVersion!,
option: _selectedOption,
: () async {
final workingDirectory =
await getPreference<String>(prefWorkingDirectory);
final tmpFile = File("$workingDirectory/modecheck.tmp");
if (tmpFile.existsSync()) {
tmpFile.deleteSync();
}
try {
tmpFile.createSync();
} catch (e) {
// Do nothing
}
if (tmpFile.existsSync()) {
tmpFile.deleteSync();
Navigator.of(context).push(
MaterialPageRoute(
builder: (context) => Downloader(
operatingSystem: _selectedOperatingSystem!,
version: _selectedVersion!,
option: _selectedOption,
),
),
),
);
);
} else {
showDialog(
context: context,
builder: (context) => AlertDialog(
title: Text(context.t('Error')),
content: Text(
context.t(
'Could not write to the working directory. Please check the permissions.'),
),
actions: [
TextButton(
onPressed: () {
Navigator.of(context).pop();
},
child: Text(context.t('OK')),
),
],
),
);
}
},
),
],