info: null metadata handling
This commit is contained in:
parent
a3ac7d8f22
commit
e40136d646
5 changed files with 9 additions and 8 deletions
|
@ -1,5 +1,5 @@
|
|||
import 'package:aves/model/image_decode_service.dart';
|
||||
import 'package:aves/model/image_entry.dart';
|
||||
import 'package:aves/model/image_file_service.dart';
|
||||
import 'package:aves/model/image_metadata.dart';
|
||||
import 'package:aves/model/metadata_db.dart';
|
||||
import 'package:aves/widgets/album/all_collection_page.dart';
|
||||
|
@ -59,7 +59,7 @@ class _HomePageState extends State<HomePage> {
|
|||
},
|
||||
onError: (error) => debugPrint('mediastore stream error=$error'),
|
||||
);
|
||||
await ImageDecodeService.getImageEntries();
|
||||
await ImageFileService.getImageEntries();
|
||||
}
|
||||
|
||||
@override
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
import 'dart:collection';
|
||||
|
||||
import 'package:aves/model/image_decode_service.dart';
|
||||
import 'package:aves/model/image_file_service.dart';
|
||||
import 'package:aves/model/image_metadata.dart';
|
||||
import 'package:aves/model/metadata_service.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
|
@ -191,7 +191,7 @@ class ImageEntry with ChangeNotifier {
|
|||
Future<bool> rename(String newName) async {
|
||||
if (newName == filename) return true;
|
||||
|
||||
final newFields = await ImageDecodeService.rename(this, '$newName${extension(this.path)}');
|
||||
final newFields = await ImageFileService.rename(this, '$newName${extension(this.path)}');
|
||||
if (newFields.isEmpty) return false;
|
||||
|
||||
final uri = newFields['uri'];
|
||||
|
|
|
@ -4,7 +4,7 @@ import 'package:aves/model/image_entry.dart';
|
|||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter/services.dart';
|
||||
|
||||
class ImageDecodeService {
|
||||
class ImageFileService {
|
||||
static const platform = const MethodChannel('deckers.thibault/aves/image');
|
||||
|
||||
static getImageEntries() async {
|
|
@ -1,8 +1,8 @@
|
|||
import 'dart:math';
|
||||
import 'dart:typed_data';
|
||||
|
||||
import 'package:aves/model/image_decode_service.dart';
|
||||
import 'package:aves/model/image_entry.dart';
|
||||
import 'package:aves/model/image_file_service.dart';
|
||||
import 'package:aves/widgets/album/thumbnail_tags.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:transparent_image/transparent_image.dart';
|
||||
|
@ -45,12 +45,12 @@ class ThumbnailState extends State<Thumbnail> {
|
|||
|
||||
initByteLoader() {
|
||||
final dim = (widget.extent * widget.devicePixelRatio).round();
|
||||
_byteLoader = ImageDecodeService.getImageBytes(widget.entry, dim, dim);
|
||||
_byteLoader = ImageFileService.getImageBytes(widget.entry, dim, dim);
|
||||
}
|
||||
|
||||
@override
|
||||
void dispose() {
|
||||
ImageDecodeService.cancelGetImageBytes(uri);
|
||||
ImageFileService.cancelGetImageBytes(uri);
|
||||
super.dispose();
|
||||
}
|
||||
|
||||
|
|
|
@ -60,6 +60,7 @@ class MetadataSectionState extends State<MetadataSection> {
|
|||
),
|
||||
...tagKeys.map((tagKey) {
|
||||
final value = directory[tagKey] as String;
|
||||
if (value == null || value.isEmpty) return SizedBox.shrink();
|
||||
return InfoRow(tagKey, value.length > maxValueLength ? '${value.substring(0, maxValueLength)}…' : value);
|
||||
}),
|
||||
SizedBox(height: 16),
|
||||
|
|
Loading…
Reference in a new issue