album unique name is now unique for its storage volume only
This commit is contained in:
parent
3fe1d955d6
commit
bd4d792179
3 changed files with 9 additions and 3 deletions
|
@ -6,6 +6,7 @@ import 'package:aves/model/filters/album.dart';
|
|||
import 'package:aves/model/filters/filters.dart';
|
||||
import 'package:aves/model/image_entry.dart';
|
||||
import 'package:aves/model/settings.dart';
|
||||
import 'package:aves/utils/android_file_utils.dart';
|
||||
import 'package:aves/utils/change_notifier.dart';
|
||||
import 'package:collection/collection.dart';
|
||||
import 'package:flutter/foundation.dart';
|
||||
|
@ -170,7 +171,11 @@ class CollectionLens with ChangeNotifier, CollectionActivityMixin, CollectionSel
|
|||
final compare = (a, b) {
|
||||
final ua = source.getUniqueAlbumName(a);
|
||||
final ub = source.getUniqueAlbumName(b);
|
||||
return compareAsciiUpperCase(ua, ub);
|
||||
final c = compareAsciiUpperCase(ua, ub);
|
||||
if (c != 0) return c;
|
||||
final va = androidFileUtils.getStorageVolume(a)?.path ?? '';
|
||||
final vb = androidFileUtils.getStorageVolume(b)?.path ?? '';
|
||||
return compareAsciiUpperCase(va, vb);
|
||||
};
|
||||
sections = SplayTreeMap.of(byAlbum, compare);
|
||||
break;
|
||||
|
|
|
@ -188,7 +188,8 @@ class CollectionSource {
|
|||
bool _isEmptyAlbum(String album) => !_rawEntries.any((entry) => entry.directory == album);
|
||||
|
||||
String getUniqueAlbumName(String album) {
|
||||
final otherAlbums = _folderPaths.where((item) => item != album);
|
||||
final volumeRoot = androidFileUtils.getStorageVolume(album)?.path ?? '';
|
||||
final otherAlbums = _folderPaths.where((item) => item != album && item.startsWith(volumeRoot));
|
||||
final parts = album.split(separator);
|
||||
var partCount = 0;
|
||||
String testName;
|
||||
|
|
|
@ -119,7 +119,7 @@ class TitleSectionHeader extends StatelessWidget {
|
|||
|
||||
static const leadingDimension = 32.0;
|
||||
static const leadingPadding = EdgeInsets.only(right: 8, bottom: 4);
|
||||
static const trailingPadding = EdgeInsets.only(left: 8, bottom: 4);
|
||||
static const trailingPadding = EdgeInsets.only(left: 8, bottom: 2);
|
||||
static const padding = EdgeInsets.all(16);
|
||||
static const widgetSpanAlignment = PlaceholderAlignment.middle;
|
||||
|
||||
|
|
Loading…
Reference in a new issue