commit
e12a16d043
|
@ -4,7 +4,7 @@ import 'package:dio/dio.dart';
|
|||
import 'package:flutter_user_agent/flutter_user_agent.dart';
|
||||
import 'package:package_info_plus/package_info_plus.dart';
|
||||
|
||||
int kConnectTimeout = 5000;
|
||||
int kConnectTimeout = 15000;
|
||||
class Network {
|
||||
Dio _dio;
|
||||
|
||||
|
|
|
@ -418,9 +418,10 @@ class CollectionsService {
|
|||
.then((value) async {
|
||||
// insert files to new collection
|
||||
await _filesDB.insertMultiple(files);
|
||||
// remove files from old collection
|
||||
await _filesDB.removeFromCollection(
|
||||
fromCollectionID, files.map((e) => e.uploadedFileID).toList());
|
||||
Bus.instance.fire(CollectionUpdatedEvent(toCollectionID, files));
|
||||
// todo: remove files from existing collection locally.
|
||||
// Ideally, remoteSync should take care of it.
|
||||
Bus.instance.fire(CollectionUpdatedEvent(fromCollectionID, files,
|
||||
type: EventType.deleted));
|
||||
});
|
||||
|
|
|
@ -30,7 +30,8 @@ class RemoteSyncService {
|
|||
|
||||
static const kDiffLimit = 2500;
|
||||
static const kHasSyncedArchiveKey = "has_synced_archive";
|
||||
static const kArchiveFeatureReleaseTime = 1632100000000000;
|
||||
// 28 Sept, 2021 9:03:20 AM IST
|
||||
static const kArchiveFeatureReleaseTime = 1632800000000000;
|
||||
|
||||
static final RemoteSyncService instance =
|
||||
RemoteSyncService._privateConstructor();
|
||||
|
|
|
@ -216,7 +216,7 @@ class _CollectionsGalleryWidgetState extends State<CollectionsGalleryWidget>
|
|||
ArchivePage(),
|
||||
);
|
||||
}),
|
||||
Padding(padding: EdgeInsets.all(12)),
|
||||
Padding(padding: EdgeInsets.fromLTRB(12, 12, 12, 36)),
|
||||
],
|
||||
),
|
||||
),
|
||||
|
|
|
@ -259,12 +259,21 @@ class _GalleryAppBarWidgetState extends State<GalleryAppBarWidget> {
|
|||
// skip add button for incoming collection till this feature is implemented
|
||||
if (Configuration.instance.hasConfiguredAccount() &&
|
||||
widget.type != GalleryAppBarType.shared_collection) {
|
||||
String msg = "add";
|
||||
IconData iconData =
|
||||
Platform.isAndroid ? Icons.add_outlined : CupertinoIcons.add;
|
||||
// show upload icon instead of add for files selected in local gallery
|
||||
if (widget.type == GalleryAppBarType.local_folder) {
|
||||
msg = "upload";
|
||||
iconData = Platform.isAndroid
|
||||
? Icons.cloud_upload
|
||||
: CupertinoIcons.cloud_upload;
|
||||
}
|
||||
actions.add(
|
||||
Tooltip(
|
||||
message: "add",
|
||||
message: msg,
|
||||
child: IconButton(
|
||||
icon: Icon(
|
||||
Platform.isAndroid ? Icons.add_outlined : CupertinoIcons.add),
|
||||
icon: Icon(iconData),
|
||||
onPressed: () {
|
||||
_createAlbum();
|
||||
},
|
||||
|
@ -273,7 +282,8 @@ class _GalleryAppBarWidgetState extends State<GalleryAppBarWidget> {
|
|||
);
|
||||
}
|
||||
if (Configuration.instance.hasConfiguredAccount() &&
|
||||
widget.type == GalleryAppBarType.owned_collection) {
|
||||
widget.type == GalleryAppBarType.owned_collection &&
|
||||
widget.collection.type != CollectionType.favorites) {
|
||||
actions.add(
|
||||
Tooltip(
|
||||
message: "move",
|
||||
|
|
|
@ -3,12 +3,18 @@ import 'dart:io' as io;
|
|||
import 'package:exif/exif.dart';
|
||||
import 'package:photos/models/file.dart';
|
||||
import 'package:photos/utils/file_util.dart';
|
||||
import 'package:logging/logging.dart';
|
||||
|
||||
Future<Map<String, IfdTag>> getExif(File file) async {
|
||||
final originFile = await getFile(file, isOrigin: true);
|
||||
final exif = await readExifFromFile(originFile);
|
||||
if (!file.isRemoteFile() && io.Platform.isIOS) {
|
||||
originFile.delete();
|
||||
try {
|
||||
final originFile = await getFile(file, isOrigin: true);
|
||||
final exif = await readExifFromFile(originFile);
|
||||
if (!file.isRemoteFile() && io.Platform.isIOS) {
|
||||
await originFile.delete();
|
||||
}
|
||||
return exif;
|
||||
} catch (e) {
|
||||
Logger("getExif").severe("failed to getExif", e);
|
||||
rethrow;
|
||||
}
|
||||
return exif;
|
||||
}
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
import 'dart:async';
|
||||
import 'dart:io' as io;
|
||||
import 'dart:io';
|
||||
import 'dart:typed_data';
|
||||
|
||||
import 'package:archive/archive.dart';
|
||||
|
@ -46,7 +47,11 @@ Future<io.File> getFile(
|
|||
liveVideo: liveVideo,
|
||||
isOrigin: isOrigin,
|
||||
);
|
||||
FileLruCache.put(key, diskFile);
|
||||
// do not cache origin file for IOS as they are immediately deleted
|
||||
// after usage
|
||||
if (!(isOrigin && Platform.isIOS)) {
|
||||
FileLruCache.put(key, diskFile);
|
||||
}
|
||||
return diskFile;
|
||||
}
|
||||
return cachedFile;
|
||||
|
|
Loading…
Reference in a new issue