Merge pull request #651 from ente-io/select-all-bug-fix
bug fix : selected files thumbnail not getting refreshed on 'cancel'
This commit is contained in:
commit
264a7433fc
3 changed files with 16 additions and 0 deletions
3
lib/events/clear_selections.dart
Normal file
3
lib/events/clear_selections.dart
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
import 'package:photos/events/event.dart';
|
||||||
|
|
||||||
|
class ClearSelections extends Event {}
|
|
@ -1,5 +1,7 @@
|
||||||
import 'package:collection/collection.dart' show IterableExtension;
|
import 'package:collection/collection.dart' show IterableExtension;
|
||||||
import 'package:flutter/foundation.dart';
|
import 'package:flutter/foundation.dart';
|
||||||
|
import 'package:flutter/rendering.dart';
|
||||||
|
import 'package:photos/core/event_bus.dart';
|
||||||
import 'package:photos/models/file.dart';
|
import 'package:photos/models/file.dart';
|
||||||
|
|
||||||
class SelectedFiles extends ChangeNotifier {
|
class SelectedFiles extends ChangeNotifier {
|
||||||
|
@ -51,6 +53,7 @@ class SelectedFiles extends ChangeNotifier {
|
||||||
}
|
}
|
||||||
|
|
||||||
void clearAll() {
|
void clearAll() {
|
||||||
|
Bus.instance.fire(const ClearSelectionEvent());
|
||||||
lastSelections.addAll(files);
|
lastSelections.addAll(files);
|
||||||
files.clear();
|
files.clear();
|
||||||
notifyListeners();
|
notifyListeners();
|
||||||
|
|
|
@ -5,9 +5,11 @@ import 'dart:math';
|
||||||
|
|
||||||
import 'package:flutter/foundation.dart';
|
import 'package:flutter/foundation.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
|
import 'package:flutter/rendering.dart';
|
||||||
import 'package:flutter/services.dart';
|
import 'package:flutter/services.dart';
|
||||||
import 'package:logging/logging.dart';
|
import 'package:logging/logging.dart';
|
||||||
import 'package:photos/core/constants.dart';
|
import 'package:photos/core/constants.dart';
|
||||||
|
import 'package:photos/core/event_bus.dart';
|
||||||
import 'package:photos/events/files_updated_event.dart';
|
import 'package:photos/events/files_updated_event.dart';
|
||||||
import 'package:photos/models/file.dart';
|
import 'package:photos/models/file.dart';
|
||||||
import 'package:photos/models/selected_files.dart';
|
import 'package:photos/models/selected_files.dart';
|
||||||
|
@ -291,12 +293,19 @@ class LazyLoadingGridView extends StatefulWidget {
|
||||||
|
|
||||||
class _LazyLoadingGridViewState extends State<LazyLoadingGridView> {
|
class _LazyLoadingGridViewState extends State<LazyLoadingGridView> {
|
||||||
bool _shouldRender;
|
bool _shouldRender;
|
||||||
|
StreamSubscription<ClearSelectionEvent> _clearSelectionEvent;
|
||||||
|
|
||||||
@override
|
@override
|
||||||
void initState() {
|
void initState() {
|
||||||
_shouldRender = widget.shouldRender;
|
_shouldRender = widget.shouldRender;
|
||||||
widget.shouldSelectAll.addListener(_shouldSelectAllListener);
|
widget.shouldSelectAll.addListener(_shouldSelectAllListener);
|
||||||
widget.selectedFiles.addListener(_selectedFilesListener);
|
widget.selectedFiles.addListener(_selectedFilesListener);
|
||||||
|
_clearSelectionEvent =
|
||||||
|
Bus.instance.on<ClearSelectionEvent>().listen((event) {
|
||||||
|
if (mounted) {
|
||||||
|
setState(() {});
|
||||||
|
}
|
||||||
|
});
|
||||||
super.initState();
|
super.initState();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -304,6 +313,7 @@ class _LazyLoadingGridViewState extends State<LazyLoadingGridView> {
|
||||||
void dispose() {
|
void dispose() {
|
||||||
widget.selectedFiles.removeListener(_selectedFilesListener);
|
widget.selectedFiles.removeListener(_selectedFilesListener);
|
||||||
widget.shouldSelectAll.removeListener(_shouldSelectAllListener);
|
widget.shouldSelectAll.removeListener(_shouldSelectAllListener);
|
||||||
|
_clearSelectionEvent.cancel();
|
||||||
super.dispose();
|
super.dispose();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue