[mob][fix] Gracefully handle time value in double instead of int
This commit is contained in:
parent
cc7a516eba
commit
da4aa1b1b2
|
@ -13,6 +13,7 @@ import "package:photos/service_locator.dart";
|
||||||
import 'package:photos/utils/date_time_util.dart';
|
import 'package:photos/utils/date_time_util.dart';
|
||||||
import 'package:photos/utils/exif_util.dart';
|
import 'package:photos/utils/exif_util.dart';
|
||||||
import 'package:photos/utils/file_uploader_util.dart';
|
import 'package:photos/utils/file_uploader_util.dart';
|
||||||
|
import "package:photos/utils/parse.dart";
|
||||||
|
|
||||||
//Todo: files with no location data have lat and long set to 0.0. This should ideally be null.
|
//Todo: files with no location data have lat and long set to 0.0. This should ideally be null.
|
||||||
class EnteFile {
|
class EnteFile {
|
||||||
|
@ -131,8 +132,9 @@ class EnteFile {
|
||||||
localID = metadata["localID"];
|
localID = metadata["localID"];
|
||||||
title = metadata["title"];
|
title = metadata["title"];
|
||||||
deviceFolder = metadata["deviceFolder"];
|
deviceFolder = metadata["deviceFolder"];
|
||||||
creationTime = metadata["creationTime"] ?? 0;
|
creationTime = parseKeyAsInt(metadata, "creationTime", 0);
|
||||||
modificationTime = metadata["modificationTime"] ?? creationTime;
|
modificationTime =
|
||||||
|
parseKeyAsInt(metadata, "modificationTime", creationTime!);
|
||||||
final latitude = double.tryParse(metadata["latitude"].toString());
|
final latitude = double.tryParse(metadata["latitude"].toString());
|
||||||
final longitude = double.tryParse(metadata["longitude"].toString());
|
final longitude = double.tryParse(metadata["longitude"].toString());
|
||||||
if (latitude == null || longitude == null) {
|
if (latitude == null || longitude == null) {
|
||||||
|
|
13
mobile/lib/utils/parse.dart
Normal file
13
mobile/lib/utils/parse.dart
Normal file
|
@ -0,0 +1,13 @@
|
||||||
|
import "package:flutter/foundation.dart";
|
||||||
|
|
||||||
|
int parseKeyAsInt(Map<String, dynamic> map, String key, int defaultValue) {
|
||||||
|
try {
|
||||||
|
return map[key] ?? defaultValue;
|
||||||
|
} catch (e) {
|
||||||
|
if (kDebugMode) {
|
||||||
|
print("Error parsing key $key as int: $e");
|
||||||
|
}
|
||||||
|
final double val = map[key] as double;
|
||||||
|
return val.toInt();
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in a new issue