Added option to show folders always on top in files

This commit is contained in:
2023-06-08 20:55:57 +02:00
parent 213c815eee
commit 2c10b02e53
7 changed files with 61 additions and 1 deletions

View File

@ -4,6 +4,8 @@ import 'dart:io';
import 'package:flutter/material.dart';
import 'package:loader_overlay/loader_overlay.dart';
import 'package:marianum_mobile/storage/base/settingsProvider.dart';
import 'package:provider/provider.dart';
import '../../../api/marianumcloud/webdav/queries/listFiles/cacheableFile.dart';
import '../../../api/marianumcloud/webdav/queries/listFiles/listFilesCache.dart';
@ -93,7 +95,11 @@ class _FilesState extends State<Files> {
@override
Widget build(BuildContext context) {
List<CacheableFile> files = (data?.files.toList() ?? List.empty())..sort(SortOptions.getOption(currentSort).compare);
List<CacheableFile> files = (data?.files.toList() ?? List.empty())..sort((a, b) {
int directorySort = Provider.of<SettingsProvider>(context).val().fileSettings.sortFoldersToTop ? a.isDirectory ? b.isDirectory ? 0 : 1 : -1 : 0;
if(directorySort == 0) return SortOptions.getOption(currentSort).compare(a, b);
return directorySort;
});
if(currentSortDirection) files = files.reversed.toList();
return Scaffold(

View File

@ -119,6 +119,21 @@ class _SettingsState extends State<Settings> {
const Divider(),
ListTile(
leading: const Icon(Icons.drive_folder_upload_outlined),
title: const Text("Ordner in Dateien nach oben sortieren"),
trailing: Checkbox(
value: settings.val().fileSettings.sortFoldersToTop,
onChanged: (e) {
setState(() {
settings.val(write: true).fileSettings.sortFoldersToTop = e!;
});
},
),
),
const Divider(),
ListTile(
leading: const Icon(Icons.live_help_outlined),
title: const Text("Informationen und Lizenzen"),