Remove shitty thumbnail generation

This commit is contained in:
Vishnu Mohandas 2020-03-29 00:04:45 +05:30
parent 53442cbf14
commit 2b238a0df3
3 changed files with 12 additions and 39 deletions

View file

@ -1,15 +1,11 @@
import 'dart:typed_data';
import 'package:flutter/material.dart';
import 'package:logger/logger.dart';
import 'package:myapp/db/db_helper.dart';
import 'package:myapp/models/photo.dart';
import 'package:photo_manager/photo_manager.dart';
class PhotoLoader extends ChangeNotifier {
final logger = Logger();
final _photos = List<Photo>();
final _assetMap = Map<String, AssetEntity>();
PhotoLoader._privateConstructor();
static final PhotoLoader instance = PhotoLoader._privateConstructor();
@ -32,16 +28,4 @@ class PhotoLoader extends ChangeNotifier {
logger.i("Reloading...");
notifyListeners();
}
void addAsset(String path, AssetEntity asset) {
_assetMap[path] = asset;
}
Future<Uint8List> getThumbnail(String path, int size) {
if (!_assetMap.containsKey(path)) {
logger.w("No thumbnail");
return Future.value(null);
}
return _assetMap[path].thumbDataWithSize(size, size);
}
}

View file

@ -1,5 +1,3 @@
import 'dart:typed_data';
import 'package:logger/logger.dart';
import 'package:myapp/db/db_helper.dart';
import 'package:myapp/photo_loader.dart';
@ -28,7 +26,11 @@ class PhotoSyncManager {
Future<void> init() async {
await _updateDatabase();
await _syncPhotos();
try {
_syncPhotos();
} catch (e) {
_logger.e(e);
}
}
Future<bool> _updateDatabase() async {
@ -41,7 +43,6 @@ class PhotoSyncManager {
if (asset.createDateTime.millisecondsSinceEpoch > lastDBUpdateTimestamp) {
await DatabaseHelper.instance.insertPhoto(await Photo.fromAsset(asset));
}
PhotoLoader.instance.addAsset((await asset.originFile).path, asset);
}
return await prefs.setInt(
_lastDBUpdateTimestampKey, DateTime.now().millisecondsSinceEpoch);
@ -55,10 +56,11 @@ class PhotoSyncManager {
}
_logger.i("Last sync timestamp: " + lastSyncTimestamp.toString());
List<Photo> diff = await _getDiff(lastSyncTimestamp);
await _downloadDiff(diff, prefs);
await _uploadDiff(prefs);
_getDiff(lastSyncTimestamp).then((diff) {
_downloadDiff(diff, prefs).then((_) {
_uploadDiff(prefs);
});
});
// TODO: Fix race conditions triggered due to concurrent syncs.
// Add device_id/last_sync_timestamp to the upload request?

View file

@ -51,21 +51,8 @@ class _ImageWidgetState extends State<ImageWidget> {
}
Future<Image> _buildImageWidget(String path, num size) async {
var thumbnail = await photoLoader.getThumbnail(path, size);
if (thumbnail != null) {
return Image.memory(
thumbnail,
width: size.toDouble(),
height: size.toDouble(),
fit: BoxFit.cover,
);
} else {
return Image.file(
File(path),
width: size.toDouble(),
height: size.toDouble(),
fit: BoxFit.cover);
}
return Image.file(File(path),
width: size.toDouble(), height: size.toDouble(), fit: BoxFit.cover);
}
@override