info: null metadata handling

This commit is contained in:
Thibault Deckers 2019-08-15 14:43:15 +09:00
parent a3ac7d8f22
commit e40136d646
5 changed files with 9 additions and 8 deletions

View file

@ -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

View file

@ -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'];

View file

@ -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 {

View file

@ -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();
}

View file

@ -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),