Cache thumbnails to disk
This commit is contained in:
parent
71fd7277b1
commit
90ff5247de
3 changed files with 47 additions and 5 deletions
|
@ -1,9 +1,11 @@
|
|||
import 'package:cached_network_image/cached_network_image.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:photos/core/cache/thumbnail_cache.dart';
|
||||
import 'package:photos/models/file.dart';
|
||||
import 'package:logging/logging.dart';
|
||||
import 'package:photos/core/constants.dart';
|
||||
import 'package:photos/models/file_type.dart';
|
||||
import 'package:photos/ui/loading_widget.dart';
|
||||
|
||||
class ThumbnailWidget extends StatefulWidget {
|
||||
final File photo;
|
||||
|
@ -30,11 +32,10 @@ class _ThumbnailWidgetState extends State<ThumbnailWidget> {
|
|||
@override
|
||||
Widget build(BuildContext context) {
|
||||
if (widget.photo.localId == null) {
|
||||
_loadNetworkImage();
|
||||
} else {
|
||||
_loadLocalImage(context);
|
||||
return _getNetworkImage();
|
||||
}
|
||||
|
||||
_loadLocalImage(context);
|
||||
if (_imageProvider != null) {
|
||||
var image = Image(
|
||||
image: _imageProvider,
|
||||
|
@ -89,11 +90,16 @@ class _ThumbnailWidgetState extends State<ThumbnailWidget> {
|
|||
}
|
||||
}
|
||||
|
||||
void _loadNetworkImage() {
|
||||
Widget _getNetworkImage() {
|
||||
final url = widget.photo.previewURL.isNotEmpty
|
||||
? widget.photo.getThumbnailUrl()
|
||||
: widget.photo.getRemoteUrl();
|
||||
_imageProvider = Image.network(url).image;
|
||||
return CachedNetworkImage(
|
||||
imageUrl: url,
|
||||
placeholder: (context, url) => loadWidget,
|
||||
errorWidget: (context, url, error) => Icon(Icons.error),
|
||||
fit: BoxFit.cover,
|
||||
);
|
||||
}
|
||||
|
||||
@override
|
||||
|
|
35
pubspec.lock
35
pubspec.lock
|
@ -29,6 +29,13 @@ packages:
|
|||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "2.0.0"
|
||||
cached_network_image:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
name: cached_network_image
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "2.2.0+1"
|
||||
characters:
|
||||
dependency: transitive
|
||||
description:
|
||||
|
@ -162,11 +169,25 @@ packages:
|
|||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "1.1.0"
|
||||
file:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: file
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "5.2.0"
|
||||
flutter:
|
||||
dependency: "direct main"
|
||||
description: flutter
|
||||
source: sdk
|
||||
version: "0.0.0"
|
||||
flutter_cache_manager:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: flutter_cache_manager
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "1.4.1"
|
||||
flutter_email_sender:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
|
@ -401,6 +422,13 @@ packages:
|
|||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "1.5.8"
|
||||
rxdart:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: rxdart
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "0.24.1"
|
||||
sensors:
|
||||
dependency: transitive
|
||||
description:
|
||||
|
@ -546,6 +574,13 @@ packages:
|
|||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "3.4.1"
|
||||
uuid:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: uuid
|
||||
url: "https://pub.dartlang.org"
|
||||
source: hosted
|
||||
version: "2.1.0"
|
||||
vector_math:
|
||||
dependency: transitive
|
||||
description:
|
||||
|
|
|
@ -53,6 +53,7 @@ dependencies:
|
|||
extended_image: ^0.9.0
|
||||
video_player: ^0.10.11+1
|
||||
chewie: ^0.9.10
|
||||
cached_network_image: ^2.2.0+1
|
||||
|
||||
dev_dependencies:
|
||||
flutter_test:
|
||||
|
|
Loading…
Add table
Reference in a new issue