diff --git a/lib/ui/remote_folder_gallery_widget.dart b/lib/ui/remote_folder_gallery_widget.dart index 76b17199e..d28c21012 100644 --- a/lib/ui/remote_folder_gallery_widget.dart +++ b/lib/ui/remote_folder_gallery_widget.dart @@ -1,8 +1,13 @@ +import 'dart:async'; + import 'package:flutter/material.dart'; import 'package:flutter/widgets.dart'; import 'package:logging/logging.dart'; +import 'package:photos/core/configuration.dart'; +import 'package:photos/core/event_bus.dart'; import 'package:photos/db/folder_db.dart'; import 'package:photos/db/photo_db.dart'; +import 'package:photos/events/remote_sync_event.dart'; import 'package:photos/models/folder.dart'; import 'package:photos/ui/loading_widget.dart'; import 'package:photos/ui/remote_folder_page.dart'; @@ -18,6 +23,17 @@ class RemoteFolderGalleryWidget extends StatefulWidget { class _RemoteFolderGalleryWidgetState extends State { Logger _logger = Logger("RemoteFolderGalleryWidget"); + StreamSubscription _subscription; + + @override + void initState() { + _subscription = Bus.instance.on().listen((event) { + if (event.success) { + setState(() {}); + } + }); + super.initState(); + } @override Widget build(BuildContext context) { @@ -60,15 +76,20 @@ class _RemoteFolderGalleryWidgetState extends State { Future> _getRemoteFolders() async { final folders = await FolderDB.instance.getFolders(); + final filteredFolders = List(); for (final folder in folders) { + if (folder.owner == Configuration.instance.getUsername()) { + continue; + } try { folder.thumbnailPhoto = await PhotoDB.instance.getLatestPhotoInRemoteFolder(folder.id); } catch (e) { _logger.warning(e.toString()); } + filteredFolders.add(folder); } - return folders; + return filteredFolders; } Widget _buildFolder(BuildContext context, Folder folder) { @@ -106,4 +127,10 @@ class _RemoteFolderGalleryWidgetState extends State { }, ); } + + @override + void dispose() { + _subscription.cancel(); + super.dispose(); + } }