mirror of
https://gitlab.com/nkming2/nc-photos.git
synced 2025-02-24 10:28:50 +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';
|
||||
|
||||
int compareFileDateTimeDescending(File x, File y) {
|
||||
final xDate = x.metadata?.exif?.dateTimeOriginal ?? x.lastModified;
|
||||
final yDate = y.metadata?.exif?.dateTimeOriginal ?? y.lastModified;
|
||||
final tmp = yDate.compareTo(xDate);
|
||||
final tmp = y.bestDateTime.compareTo(x.bestDateTime);
|
||||
if (tmp != 0) {
|
||||
return tmp;
|
||||
} else {
|
||||
|
@ -394,6 +392,12 @@ class File with EquatableMixin {
|
|||
final bool isArchived;
|
||||
}
|
||||
|
||||
extension FileExtension on File {
|
||||
DateTime get bestDateTime {
|
||||
return metadata?.exif?.dateTimeOriginal ?? lastModified;
|
||||
}
|
||||
}
|
||||
|
||||
class FileRepo {
|
||||
FileRepo(this.dataSrc);
|
||||
|
||||
|
|
|
@ -392,9 +392,7 @@ class _HomeAlbumsState extends State<HomeAlbums> {
|
|||
.where((element) => file_util.isSupportedFormat(element))
|
||||
.sorted(compareFileDateTimeDescending)
|
||||
.first;
|
||||
return Tuple2(
|
||||
lastItem.metadata?.exif?.dateTimeOriginal ?? lastItem.lastModified,
|
||||
e);
|
||||
return Tuple2(lastItem.bestDateTime, e);
|
||||
} catch (_) {
|
||||
return Tuple2(e.lastUpdated, e);
|
||||
}
|
||||
|
|
|
@ -455,7 +455,7 @@ class _HomePhotosState extends State<HomePhotos>
|
|||
final f = _backingFiles[i];
|
||||
|
||||
String newDateStr;
|
||||
final date = f.metadata?.exif?.dateTimeOriginal ?? f.lastModified;
|
||||
final date = f.bestDateTime;
|
||||
if (date == null) {
|
||||
newDateStr = "";
|
||||
} else if (_thumbZoomLevel >= 0) {
|
||||
|
|
|
@ -59,7 +59,7 @@ class _ViewerDetailPaneState extends State<ViewerDetailPane> {
|
|||
|
||||
@override
|
||||
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 timeStr = DateFormat(DateFormat.HOUR_MINUTE).format(dateTime);
|
||||
|
||||
|
@ -265,11 +265,6 @@ class _ViewerDetailPaneState extends State<ViewerDetailPane> {
|
|||
|
||||
void _updateMetadataExif(Exif exif) {
|
||||
_log.info("[_updateMetadataExif] $exif");
|
||||
if (exif.dateTimeOriginal != null) {
|
||||
setState(() {
|
||||
_dateTime = exif.dateTimeOriginal;
|
||||
});
|
||||
}
|
||||
if (exif.make != null && exif.model != null) {
|
||||
setState(() {
|
||||
_model = "${exif.make} ${exif.model}";
|
||||
|
@ -362,7 +357,6 @@ class _ViewerDetailPaneState extends State<ViewerDetailPane> {
|
|||
int _width;
|
||||
int _height;
|
||||
// EXIF data
|
||||
DateTime _dateTime;
|
||||
String _model;
|
||||
double _fNumber;
|
||||
String _exposureTime;
|
||||
|
|
Loading…
Reference in a new issue