fullscreen: evict UriImage cache on image change

This commit is contained in:
Thibault Deckers 2020-03-18 09:55:18 +09:00
parent 8b8056b179
commit ec51b1878a

View file

@ -5,6 +5,7 @@ import 'package:aves/model/collection_lens.dart';
import 'package:aves/model/image_entry.dart'; import 'package:aves/model/image_entry.dart';
import 'package:aves/widgets/fullscreen/fullscreen_action_delegate.dart'; import 'package:aves/widgets/fullscreen/fullscreen_action_delegate.dart';
import 'package:aves/widgets/fullscreen/image_page.dart'; import 'package:aves/widgets/fullscreen/image_page.dart';
import 'package:aves/widgets/fullscreen/image_uri.dart';
import 'package:aves/widgets/fullscreen/info/info_page.dart'; import 'package:aves/widgets/fullscreen/info/info_page.dart';
import 'package:aves/widgets/fullscreen/overlay/bottom.dart'; import 'package:aves/widgets/fullscreen/overlay/bottom.dart';
import 'package:aves/widgets/fullscreen/overlay/top.dart'; import 'package:aves/widgets/fullscreen/overlay/top.dart';
@ -291,6 +292,8 @@ class _FullscreenVerticalPageViewState extends State<FullscreenVerticalPageView>
bool get hasCollection => collection != null; bool get hasCollection => collection != null;
ImageEntry get entry => widget.entry;
@override @override
void initState() { void initState() {
super.initState(); super.initState();
@ -325,7 +328,8 @@ class _FullscreenVerticalPageViewState extends State<FullscreenVerticalPageView>
} }
void _onImageChange() async { void _onImageChange() async {
await FileImage(File(widget.entry.path)).evict(); await UriImage(entry.uri).evict();
if (entry.path != null) await FileImage(File(entry.path)).evict();
// rebuild to refresh the Image inside ImagePage // rebuild to refresh the Image inside ImagePage
setState(() {}); setState(() {});
} }
@ -347,7 +351,7 @@ class _FullscreenVerticalPageViewState extends State<FullscreenVerticalPageView>
videoControllers: widget.videoControllers, videoControllers: widget.videoControllers,
) )
: SingleImagePage( : SingleImagePage(
entry: widget.entry, entry: entry,
onScaleChanged: onScaleChanged, onScaleChanged: onScaleChanged,
onTap: widget.onImageTap, onTap: widget.onImageTap,
videoControllers: widget.videoControllers, videoControllers: widget.videoControllers,
@ -359,7 +363,7 @@ class _FullscreenVerticalPageViewState extends State<FullscreenVerticalPageView>
}, },
child: InfoPage( child: InfoPage(
collection: collection, collection: collection,
entry: widget.entry, entry: entry,
visibleNotifier: _infoPageVisibleNotifier, visibleNotifier: _infoPageVisibleNotifier,
), ),
), ),