mirror of
https://gitlab.com/nkming2/nc-photos.git
synced 2025-02-24 18:38:48 +01:00
Simplify File datetime access
This commit is contained in:
parent
1b2d36bcab
commit
9c08e5a635
4 changed files with 10 additions and 14 deletions
|
@ -9,9 +9,7 @@ import 'package:nc_photos/or_null.dart';
|
||||||
import 'package:nc_photos/string_extension.dart';
|
import 'package:nc_photos/string_extension.dart';
|
||||||
|
|
||||||
int compareFileDateTimeDescending(File x, File y) {
|
int compareFileDateTimeDescending(File x, File y) {
|
||||||
final xDate = x.metadata?.exif?.dateTimeOriginal ?? x.lastModified;
|
final tmp = y.bestDateTime.compareTo(x.bestDateTime);
|
||||||
final yDate = y.metadata?.exif?.dateTimeOriginal ?? y.lastModified;
|
|
||||||
final tmp = yDate.compareTo(xDate);
|
|
||||||
if (tmp != 0) {
|
if (tmp != 0) {
|
||||||
return tmp;
|
return tmp;
|
||||||
} else {
|
} else {
|
||||||
|
@ -394,6 +392,12 @@ class File with EquatableMixin {
|
||||||
final bool isArchived;
|
final bool isArchived;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
extension FileExtension on File {
|
||||||
|
DateTime get bestDateTime {
|
||||||
|
return metadata?.exif?.dateTimeOriginal ?? lastModified;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
class FileRepo {
|
class FileRepo {
|
||||||
FileRepo(this.dataSrc);
|
FileRepo(this.dataSrc);
|
||||||
|
|
||||||
|
|
|
@ -392,9 +392,7 @@ class _HomeAlbumsState extends State<HomeAlbums> {
|
||||||
.where((element) => file_util.isSupportedFormat(element))
|
.where((element) => file_util.isSupportedFormat(element))
|
||||||
.sorted(compareFileDateTimeDescending)
|
.sorted(compareFileDateTimeDescending)
|
||||||
.first;
|
.first;
|
||||||
return Tuple2(
|
return Tuple2(lastItem.bestDateTime, e);
|
||||||
lastItem.metadata?.exif?.dateTimeOriginal ?? lastItem.lastModified,
|
|
||||||
e);
|
|
||||||
} catch (_) {
|
} catch (_) {
|
||||||
return Tuple2(e.lastUpdated, e);
|
return Tuple2(e.lastUpdated, e);
|
||||||
}
|
}
|
||||||
|
|
|
@ -455,7 +455,7 @@ class _HomePhotosState extends State<HomePhotos>
|
||||||
final f = _backingFiles[i];
|
final f = _backingFiles[i];
|
||||||
|
|
||||||
String newDateStr;
|
String newDateStr;
|
||||||
final date = f.metadata?.exif?.dateTimeOriginal ?? f.lastModified;
|
final date = f.bestDateTime;
|
||||||
if (date == null) {
|
if (date == null) {
|
||||||
newDateStr = "";
|
newDateStr = "";
|
||||||
} else if (_thumbZoomLevel >= 0) {
|
} else if (_thumbZoomLevel >= 0) {
|
||||||
|
|
|
@ -59,7 +59,7 @@ class _ViewerDetailPaneState extends State<ViewerDetailPane> {
|
||||||
|
|
||||||
@override
|
@override
|
||||||
build(BuildContext context) {
|
build(BuildContext context) {
|
||||||
final dateTime = (_dateTime ?? widget.file.lastModified).toLocal();
|
final dateTime = widget.file.bestDateTime.toLocal();
|
||||||
final dateStr = DateFormat(DateFormat.YEAR_ABBR_MONTH_DAY).format(dateTime);
|
final dateStr = DateFormat(DateFormat.YEAR_ABBR_MONTH_DAY).format(dateTime);
|
||||||
final timeStr = DateFormat(DateFormat.HOUR_MINUTE).format(dateTime);
|
final timeStr = DateFormat(DateFormat.HOUR_MINUTE).format(dateTime);
|
||||||
|
|
||||||
|
@ -265,11 +265,6 @@ class _ViewerDetailPaneState extends State<ViewerDetailPane> {
|
||||||
|
|
||||||
void _updateMetadataExif(Exif exif) {
|
void _updateMetadataExif(Exif exif) {
|
||||||
_log.info("[_updateMetadataExif] $exif");
|
_log.info("[_updateMetadataExif] $exif");
|
||||||
if (exif.dateTimeOriginal != null) {
|
|
||||||
setState(() {
|
|
||||||
_dateTime = exif.dateTimeOriginal;
|
|
||||||
});
|
|
||||||
}
|
|
||||||
if (exif.make != null && exif.model != null) {
|
if (exif.make != null && exif.model != null) {
|
||||||
setState(() {
|
setState(() {
|
||||||
_model = "${exif.make} ${exif.model}";
|
_model = "${exif.make} ${exif.model}";
|
||||||
|
@ -362,7 +357,6 @@ class _ViewerDetailPaneState extends State<ViewerDetailPane> {
|
||||||
int _width;
|
int _width;
|
||||||
int _height;
|
int _height;
|
||||||
// EXIF data
|
// EXIF data
|
||||||
DateTime _dateTime;
|
|
||||||
String _model;
|
String _model;
|
||||||
double _fNumber;
|
double _fNumber;
|
||||||
String _exposureTime;
|
String _exposureTime;
|
||||||
|
|
Loading…
Reference in a new issue