Try to parse create timestamp from file name when unavailable
This commit is contained in:
parent
b00c6db00c
commit
1279ccbf3d
2 changed files with 17 additions and 4 deletions
|
@ -3,6 +3,7 @@ import 'dart:typed_data';
|
|||
import 'package:flutter_image_compress/flutter_image_compress.dart';
|
||||
import 'package:photo_manager/photo_manager.dart';
|
||||
import 'package:path/path.dart';
|
||||
import 'package:logging/logging.dart';
|
||||
|
||||
class Photo {
|
||||
int generatedId;
|
||||
|
@ -29,9 +30,19 @@ class Photo {
|
|||
photo.localId = asset.id;
|
||||
photo.title = asset.title;
|
||||
photo.pathName = pathEntity.name;
|
||||
photo.createTimestamp = asset.createDateTime.microsecondsSinceEpoch == 0
|
||||
? asset.modifiedDateTime.microsecondsSinceEpoch
|
||||
: asset.createDateTime.microsecondsSinceEpoch;
|
||||
photo.createTimestamp = asset.createDateTime.microsecondsSinceEpoch;
|
||||
if (photo.createTimestamp == 0) {
|
||||
try {
|
||||
final parsedDateTime = DateTime.parse(
|
||||
basenameWithoutExtension(photo.title)
|
||||
.replaceAll("IMG_", "")
|
||||
.replaceAll("DCIM_", "")
|
||||
.replaceAll("_", " "));
|
||||
photo.createTimestamp = parsedDateTime.microsecondsSinceEpoch;
|
||||
} catch (e) {
|
||||
photo.createTimestamp = asset.modifiedDateTime.microsecondsSinceEpoch;
|
||||
}
|
||||
}
|
||||
return photo;
|
||||
}
|
||||
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
import 'dart:async';
|
||||
import 'dart:io';
|
||||
import 'dart:math';
|
||||
|
||||
import 'package:logging/logging.dart';
|
||||
import 'package:photos/core/event_bus.dart';
|
||||
|
@ -57,7 +58,8 @@ class PhotoSyncManager {
|
|||
// "Recents" contain duplicate information on Android
|
||||
var assetList = await pathEntity.assetList;
|
||||
for (AssetEntity entity in assetList) {
|
||||
if (entity.modifiedDateTime.microsecondsSinceEpoch >
|
||||
if (max(entity.createDateTime.microsecondsSinceEpoch,
|
||||
entity.modifiedDateTime.microsecondsSinceEpoch) >
|
||||
lastDBUpdateTimestamp) {
|
||||
try {
|
||||
photos.add(await Photo.fromAsset(pathEntity, entity));
|
||||
|
|
Loading…
Add table
Reference in a new issue