minor fixes
This commit is contained in:
parent
e7f9537220
commit
80409b1d79
6 changed files with 29 additions and 15 deletions
|
@ -249,7 +249,9 @@ class AvesEntry {
|
||||||
|
|
||||||
bool get is360 => _catalogMetadata?.is360 ?? false;
|
bool get is360 => _catalogMetadata?.is360 ?? false;
|
||||||
|
|
||||||
bool get canEdit => path != null && !trashed;
|
bool get isMediaStoreContentUri => uri.startsWith('content://media/');
|
||||||
|
|
||||||
|
bool get canEdit => path != null && !trashed && isMediaStoreContentUri;
|
||||||
|
|
||||||
bool get canEditDate => canEdit && (canEditExif || canEditXmp);
|
bool get canEditDate => canEdit && (canEditExif || canEditXmp);
|
||||||
|
|
||||||
|
|
|
@ -58,9 +58,13 @@ class EntryDir {
|
||||||
var resolved = vrl.volumePath;
|
var resolved = vrl.volumePath;
|
||||||
final parts = pContext.split(vrl.relativeDir);
|
final parts = pContext.split(vrl.relativeDir);
|
||||||
for (final part in parts) {
|
for (final part in parts) {
|
||||||
final partLower = part.toLowerCase();
|
FileSystemEntity? found;
|
||||||
final childrenDirs = Directory(resolved).listSync().where((v) => v.absolute is Directory).toSet();
|
final dir = Directory(resolved);
|
||||||
final found = childrenDirs.firstWhereOrNull((v) => pContext.basename(v.path).toLowerCase() == partLower);
|
if (dir.existsSync()) {
|
||||||
|
final partLower = part.toLowerCase();
|
||||||
|
final childrenDirs = dir.listSync().where((v) => v.absolute is Directory).toSet();
|
||||||
|
found = childrenDirs.firstWhereOrNull((v) => pContext.basename(v.path).toLowerCase() == partLower);
|
||||||
|
}
|
||||||
resolved = found?.path ?? '$resolved${pContext.separator}$part';
|
resolved = found?.path ?? '$resolved${pContext.separator}$part';
|
||||||
}
|
}
|
||||||
return resolved;
|
return resolved;
|
||||||
|
|
|
@ -18,6 +18,8 @@ class MimeTypes {
|
||||||
static const cdr = 'image/x-coreldraw';
|
static const cdr = 'image/x-coreldraw';
|
||||||
static const djvu = 'image/vnd.djvu';
|
static const djvu = 'image/vnd.djvu';
|
||||||
static const jxl = 'image/jxl';
|
static const jxl = 'image/jxl';
|
||||||
|
static const pat = 'image/x-coreldrawpattern';
|
||||||
|
static const pnm = 'image/x-portable-anymap';
|
||||||
static const psdVnd = 'image/vnd.adobe.photoshop';
|
static const psdVnd = 'image/vnd.adobe.photoshop';
|
||||||
static const psdX = 'image/x-photoshop';
|
static const psdX = 'image/x-photoshop';
|
||||||
|
|
||||||
|
@ -25,7 +27,8 @@ class MimeTypes {
|
||||||
static const cr2 = 'image/x-canon-cr2';
|
static const cr2 = 'image/x-canon-cr2';
|
||||||
static const crw = 'image/x-canon-crw';
|
static const crw = 'image/x-canon-crw';
|
||||||
static const dcr = 'image/x-kodak-dcr';
|
static const dcr = 'image/x-kodak-dcr';
|
||||||
static const dng = 'image/x-adobe-dng';
|
static const dng = 'image/dng';
|
||||||
|
static const dngX = 'image/x-adobe-dng';
|
||||||
static const erf = 'image/x-epson-erf';
|
static const erf = 'image/x-epson-erf';
|
||||||
static const k25 = 'image/x-kodak-k25';
|
static const k25 = 'image/x-kodak-k25';
|
||||||
static const kdc = 'image/x-kodak-kdc';
|
static const kdc = 'image/x-kodak-kdc';
|
||||||
|
@ -53,11 +56,13 @@ class MimeTypes {
|
||||||
static const mkv = 'video/mkv';
|
static const mkv = 'video/mkv';
|
||||||
static const mkvX = 'video/x-matroska';
|
static const mkvX = 'video/x-matroska';
|
||||||
static const mov = 'video/quicktime';
|
static const mov = 'video/quicktime';
|
||||||
|
static const mp2p = 'video/mp2p';
|
||||||
static const mp2t = 'video/mp2t'; // .m2ts, .ts
|
static const mp2t = 'video/mp2t'; // .m2ts, .ts
|
||||||
static const mp2ts = 'video/mp2ts'; // .ts (prefer `mp2t` when possible)
|
static const mp2ts = 'video/mp2ts'; // .ts (prefer `mp2t` when possible)
|
||||||
static const mp4 = 'video/mp4';
|
static const mp4 = 'video/mp4';
|
||||||
static const mpeg = 'video/mpeg';
|
static const mpeg = 'video/mpeg';
|
||||||
static const ogv = 'video/ogg';
|
static const ogv = 'video/ogg';
|
||||||
|
static const realVideo = 'video/x-pn-realvideo';
|
||||||
static const webm = 'video/webm';
|
static const webm = 'video/webm';
|
||||||
static const wmv = 'video/x-ms-wmv';
|
static const wmv = 'video/x-ms-wmv';
|
||||||
|
|
||||||
|
@ -73,14 +78,14 @@ class MimeTypes {
|
||||||
// formats that support transparency
|
// formats that support transparency
|
||||||
static const Set<String> alphaImages = {avif, bmp, bmpX, gif, heic, heif, ico, png, svg, tiff, webp};
|
static const Set<String> alphaImages = {avif, bmp, bmpX, gif, heic, heif, ico, png, svg, tiff, webp};
|
||||||
|
|
||||||
static const Set<String> rawImages = {arw, cr2, crw, dcr, dng, erf, k25, kdc, mrw, nef, nrw, orf, pef, raf, raw, rw2, sr2, srf, srw, x3f};
|
static const Set<String> rawImages = {arw, cr2, crw, dcr, dng, dngX, erf, k25, kdc, mrw, nef, nrw, orf, pef, raf, raw, rw2, sr2, srf, srw, x3f};
|
||||||
|
|
||||||
// TODO TLAD [codec] make it dynamic if it depends on OS/lib versions
|
// TODO TLAD [codec] make it dynamic if it depends on OS/lib versions
|
||||||
static const Set<String> undecodableImages = {art, cdr, crw, djvu, jxl, psdVnd, psdX, octetStream, zip};
|
static const Set<String> undecodableImages = {art, cdr, crw, djvu, jxl, pat, pnm, psdVnd, psdX, octetStream, zip};
|
||||||
|
|
||||||
static const Set<String> _knownOpaqueImages = {jpeg};
|
static const Set<String> _knownOpaqueImages = {jpeg};
|
||||||
|
|
||||||
static const Set<String> _knownVideos = {v3gpp, asf, avi, aviVnd, flv, flvX, mkv, mkvX, mov, mp2t, mp2ts, mp4, mpeg, ogv, webm, wmv};
|
static const Set<String> _knownVideos = {v3gpp, asf, avi, aviVnd, flv, flvX, mkv, mkvX, mov, mp2p, mp2t, mp2ts, mp4, mpeg, ogv, realVideo, webm, wmv};
|
||||||
|
|
||||||
static final Set<String> knownMediaTypes = {
|
static final Set<String> knownMediaTypes = {
|
||||||
anyImage,
|
anyImage,
|
||||||
|
|
|
@ -144,7 +144,7 @@ class PlatformMediaFileService implements MediaFileService {
|
||||||
} on PlatformException catch (e, stack) {
|
} on PlatformException catch (e, stack) {
|
||||||
// do not report issues with simple parameter-less media content
|
// do not report issues with simple parameter-less media content
|
||||||
// as it is likely an obsolete Media Store entry
|
// as it is likely an obsolete Media Store entry
|
||||||
if (!uri.startsWith('content://media/external/') || uri.contains('?')) {
|
if (!uri.startsWith('content://media/') || uri.contains('?')) {
|
||||||
await reportService.recordError(e, stack);
|
await reportService.recordError(e, stack);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -169,6 +169,7 @@ class _GridItemTrackerState<T> extends State<GridItemTracker<T>> with WidgetsBin
|
||||||
|
|
||||||
if (pivotItem != null) {
|
if (pivotItem != null) {
|
||||||
WidgetsBinding.instance.addPostFrameCallback((_) {
|
WidgetsBinding.instance.addPostFrameCallback((_) {
|
||||||
|
if (!mounted) return;
|
||||||
context.read<HighlightInfo>().trackItem(pivotItem, animate: false);
|
context.read<HighlightInfo>().trackItem(pivotItem, animate: false);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
|
@ -169,12 +169,14 @@ class _MagnifierCoreState extends State<MagnifierCore> with TickerProviderStateM
|
||||||
final pps = details.velocity.pixelsPerSecond;
|
final pps = details.velocity.pixelsPerSecond;
|
||||||
if (pps != Offset.zero) {
|
if (pps != Offset.zero) {
|
||||||
final newPosition = clampPosition(position: _position + pps * widget.panInertia);
|
final newPosition = clampPosition(position: _position + pps * widget.panInertia);
|
||||||
final tween = Tween<Offset>(begin: _position, end: newPosition);
|
if (_position != newPosition) {
|
||||||
const curve = Curves.easeOutCubic;
|
final tween = Tween<Offset>(begin: _position, end: newPosition);
|
||||||
_positionAnimation = tween.animate(CurvedAnimation(parent: _positionAnimationController, curve: curve));
|
const curve = Curves.easeOutCubic;
|
||||||
_positionAnimationController
|
_positionAnimation = tween.animate(CurvedAnimation(parent: _positionAnimationController, curve: curve));
|
||||||
..duration = _getAnimationDurationForVelocity(curve: curve, tween: tween, targetPixelPerSecond: pps)
|
_positionAnimationController
|
||||||
..forward(from: 0.0);
|
..duration = _getAnimationDurationForVelocity(curve: curve, tween: tween, targetPixelPerSecond: pps)
|
||||||
|
..forward(from: 0.0);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue