Fix initial value of collection sort not read from pref

This commit is contained in:
Ming Ming 2024-06-13 23:50:40 +08:00
parent f554bc212a
commit 3be4851425
4 changed files with 21 additions and 14 deletions

View file

@ -3,6 +3,7 @@
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
import 'package:logging/logging.dart'; import 'package:logging/logging.dart';
import 'package:nc_photos/di_container.dart'; import 'package:nc_photos/di_container.dart';
import 'package:nc_photos/entity/collection/util.dart';
import 'package:nc_photos/entity/pref.dart'; import 'package:nc_photos/entity/pref.dart';
import 'package:nc_photos/language_util.dart'; import 'package:nc_photos/language_util.dart';
import 'package:nc_photos/object_extension.dart'; import 'package:nc_photos/object_extension.dart';
@ -38,9 +39,9 @@ class PrefController {
value: value, value: value,
); );
Future<bool> setHomeAlbumsSort(int value) => _set<int>( Future<bool> setHomeAlbumsSort(CollectionSort value) => _set<CollectionSort>(
controller: _homeAlbumsSortController, controller: _homeAlbumsSortController,
setter: (pref, value) => pref.setHomeAlbumsSort(value), setter: (pref, value) => pref.setHomeAlbumsSort(value.index),
value: value, value: value,
); );
@ -190,8 +191,8 @@ class PrefController {
late final _albumBrowserZoomLevelController = late final _albumBrowserZoomLevelController =
BehaviorSubject.seeded(_c.pref.getAlbumBrowserZoomLevelOr(0)); BehaviorSubject.seeded(_c.pref.getAlbumBrowserZoomLevelOr(0));
@npSubjectAccessor @npSubjectAccessor
late final _homeAlbumsSortController = late final _homeAlbumsSortController = BehaviorSubject.seeded(
BehaviorSubject.seeded(_c.pref.getHomeAlbumsSortOr(0)); CollectionSort.values[_c.pref.getHomeAlbumsSortOr(0)]);
@npSubjectAccessor @npSubjectAccessor
late final _isEnableExifController = late final _isEnableExifController =
BehaviorSubject.seeded(_c.pref.isEnableExifOr(true)); BehaviorSubject.seeded(_c.pref.isEnableExifOr(true));

View file

@ -38,10 +38,12 @@ extension $PrefControllerNpSubjectAccessor on PrefController {
albumBrowserZoomLevel.distinct().skip(1); albumBrowserZoomLevel.distinct().skip(1);
int get albumBrowserZoomLevelValue => _albumBrowserZoomLevelController.value; int get albumBrowserZoomLevelValue => _albumBrowserZoomLevelController.value;
// _homeAlbumsSortController // _homeAlbumsSortController
ValueStream<int> get homeAlbumsSort => _homeAlbumsSortController.stream; ValueStream<CollectionSort> get homeAlbumsSort =>
Stream<int> get homeAlbumsSortNew => homeAlbumsSort.skip(1); _homeAlbumsSortController.stream;
Stream<int> get homeAlbumsSortChange => homeAlbumsSort.distinct().skip(1); Stream<CollectionSort> get homeAlbumsSortNew => homeAlbumsSort.skip(1);
int get homeAlbumsSortValue => _homeAlbumsSortController.value; Stream<CollectionSort> get homeAlbumsSortChange =>
homeAlbumsSort.distinct().skip(1);
CollectionSort get homeAlbumsSortValue => _homeAlbumsSortController.value;
// _isEnableExifController // _isEnableExifController
ValueStream<bool> get isEnableExif => _isEnableExifController.stream; ValueStream<bool> get isEnableExif => _isEnableExifController.stream;
Stream<bool> get isEnableExifNew => isEnableExif.skip(1); Stream<bool> get isEnableExifNew => isEnableExif.skip(1);

View file

@ -6,7 +6,9 @@ class _Bloc extends Bloc<_Event, _State> with BlocLogger {
required this.account, required this.account,
required this.controller, required this.controller,
required this.prefController, required this.prefController,
}) : super(_State.init()) { }) : super(_State.init(
sort: prefController.homeAlbumsSortValue,
)) {
on<_LoadCollections>(_onLoad); on<_LoadCollections>(_onLoad);
on<_ReloadCollections>(_onReload); on<_ReloadCollections>(_onReload);
on<_TransformItems>(_onTransformItems); on<_TransformItems>(_onTransformItems);
@ -21,7 +23,7 @@ class _Bloc extends Bloc<_Event, _State> with BlocLogger {
on<_SetError>(_onSetError); on<_SetError>(_onSetError);
_subscriptions.add(prefController.homeAlbumsSortChange.listen((event) { _subscriptions.add(prefController.homeAlbumsSortChange.listen((event) {
add(_UpdateCollectionSort(collection_util.CollectionSort.values[event])); add(_UpdateCollectionSort(event));
})); }));
_subscriptions.add(controller.stream.listen((event) { _subscriptions.add(controller.stream.listen((event) {
for (final s in _itemSubscriptions) { for (final s in _itemSubscriptions) {
@ -120,7 +122,7 @@ class _Bloc extends Bloc<_Event, _State> with BlocLogger {
void _onSetCollectionSort(_SetCollectionSort ev, Emitter<_State> emit) { void _onSetCollectionSort(_SetCollectionSort ev, Emitter<_State> emit) {
_log.info(ev); _log.info(ev);
prefController.setHomeAlbumsSort(ev.sort.index); prefController.setHomeAlbumsSort(ev.sort);
} }
void _onSetItemCount(_SetItemCount ev, Emitter<_State> emit) { void _onSetItemCount(_SetItemCount ev, Emitter<_State> emit) {

View file

@ -14,10 +14,12 @@ class _State {
required this.removeError, required this.removeError,
}); });
factory _State.init() { factory _State.init({
return const _State( required collection_util.CollectionSort sort,
}) {
return _State(
collections: [], collections: [],
sort: collection_util.CollectionSort.dateDescending, sort: sort,
isLoading: false, isLoading: false,
transformedItems: [], transformedItems: [],
selectedItems: {}, selectedItems: {},