Refactoring
This commit is contained in:
parent
13cd4ce322
commit
85e011c762
|
@ -193,8 +193,7 @@ class File extends EnteFile {
|
|||
if ((fileType == FileType.image || fileType == FileType.video) &&
|
||||
Platform.isAndroid) {
|
||||
//Fix for missing location data in lower android versions.
|
||||
final exifLocation =
|
||||
(await gpsDataFromExif(exifData)).toLocationObj();
|
||||
final exifLocation = locationFromExif(exifData);
|
||||
if (exifLocation?.latitude != null &&
|
||||
exifLocation?.longitude != null) {
|
||||
location = exifLocation;
|
||||
|
|
|
@ -60,11 +60,9 @@ class _FileDetailsWidgetState extends State<FileDetailsWidget> {
|
|||
_currentUserID = Configuration.instance.getUserID()!;
|
||||
_isImage = widget.file.fileType == FileType.image ||
|
||||
widget.file.fileType == FileType.livePhoto;
|
||||
_exifNotifier.addListener(() async {
|
||||
_exifNotifier.addListener(() {
|
||||
if (_exifNotifier.value != null) {
|
||||
_hasLocationData().then(
|
||||
(value) => hasLocationDataNotifer.value = value,
|
||||
);
|
||||
hasLocationDataNotifer.value = _hasLocationData();
|
||||
}
|
||||
});
|
||||
if (_isImage) {
|
||||
|
@ -234,7 +232,7 @@ class _FileDetailsWidgetState extends State<FileDetailsWidget> {
|
|||
);
|
||||
}
|
||||
|
||||
Future<bool> _hasLocationData() async {
|
||||
bool _hasLocationData() {
|
||||
final fileLocation = widget.file.location;
|
||||
bool hasLocation = (fileLocation != null &&
|
||||
fileLocation.latitude != null &&
|
||||
|
@ -245,14 +243,13 @@ class _FileDetailsWidgetState extends State<FileDetailsWidget> {
|
|||
//missing and the EXIF has location data. This is only happens for a
|
||||
//certain specific minority of devices.
|
||||
if (!hasLocation) {
|
||||
hasLocation = await _setLocationDataFromExif();
|
||||
hasLocation = _setLocationDataFromExif();
|
||||
}
|
||||
return hasLocation;
|
||||
}
|
||||
|
||||
Future<bool> _setLocationDataFromExif() async {
|
||||
final locationDataFromExif =
|
||||
(await gpsDataFromExif(_exifNotifier.value!)).toLocationObj();
|
||||
bool _setLocationDataFromExif() {
|
||||
final locationDataFromExif = locationFromExif(_exifNotifier.value!);
|
||||
if (locationDataFromExif?.latitude != null &&
|
||||
locationDataFromExif?.longitude != null) {
|
||||
widget.file.location = locationDataFromExif;
|
||||
|
|
|
@ -4,6 +4,7 @@ import 'package:exif/exif.dart';
|
|||
import 'package:intl/intl.dart';
|
||||
import 'package:logging/logging.dart';
|
||||
import 'package:photos/models/file.dart';
|
||||
import "package:photos/models/location/location.dart";
|
||||
import "package:photos/services/location_service.dart";
|
||||
import 'package:photos/utils/file_util.dart';
|
||||
|
||||
|
@ -62,7 +63,11 @@ Future<DateTime?> getCreationTimeFromEXIF(
|
|||
return null;
|
||||
}
|
||||
|
||||
Future<GPSData> gpsDataFromExif(Map<String, IfdTag> exif) async {
|
||||
Location? locationFromExif(Map<String, IfdTag> exif) {
|
||||
return _gpsDataFromExif(exif).toLocationObj();
|
||||
}
|
||||
|
||||
GPSData _gpsDataFromExif(Map<String, IfdTag> exif) {
|
||||
final Map<String, dynamic> exifLocationData = {
|
||||
"lat": null,
|
||||
"long": null,
|
||||
|
|
Loading…
Reference in a new issue