mirror of
https://gitlab.com/nkming2/nc-photos.git
synced 2025-02-02 06:46:22 +01:00
Refactor ScanDirBloc construction
This commit is contained in:
parent
81eabdf332
commit
0ff7e29d7a
2 changed files with 18 additions and 15 deletions
|
@ -1,6 +1,7 @@
|
||||||
import 'dart:io';
|
import 'dart:io';
|
||||||
|
|
||||||
import 'package:bloc/bloc.dart';
|
import 'package:bloc/bloc.dart';
|
||||||
|
import 'package:kiwi/kiwi.dart';
|
||||||
import 'package:logging/logging.dart';
|
import 'package:logging/logging.dart';
|
||||||
import 'package:nc_photos/account.dart';
|
import 'package:nc_photos/account.dart';
|
||||||
import 'package:nc_photos/entity/file.dart';
|
import 'package:nc_photos/entity/file.dart';
|
||||||
|
@ -105,6 +106,22 @@ class ScanDirBloc extends Bloc<ScanDirBlocEvent, ScanDirBlocState> {
|
||||||
_fileMetadataUpdatedEventListener.begin();
|
_fileMetadataUpdatedEventListener.begin();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static ScanDirBloc of(Account account) {
|
||||||
|
final id =
|
||||||
|
"${account.scheme}://${account.username}@${account.address}?${account.roots.join('&')}";
|
||||||
|
try {
|
||||||
|
_log.fine("[of] Resolving bloc for '$id'");
|
||||||
|
return KiwiContainer().resolve<ScanDirBloc>("ScanDirBloc($id)");
|
||||||
|
} catch (_) {
|
||||||
|
// no created instance for this account, make a new one
|
||||||
|
_log.info("[of] New bloc instance for account: $account");
|
||||||
|
final bloc = ScanDirBloc();
|
||||||
|
KiwiContainer()
|
||||||
|
.registerInstance<ScanDirBloc>(bloc, name: "ScanDirBloc($id)");
|
||||||
|
return bloc;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
mapEventToState(ScanDirBlocEvent event) async* {
|
mapEventToState(ScanDirBlocEvent event) async* {
|
||||||
_log.info("[mapEventToState] $event");
|
_log.info("[mapEventToState] $event");
|
||||||
|
|
|
@ -61,21 +61,7 @@ class _HomePhotosState extends State<HomePhotos> {
|
||||||
}
|
}
|
||||||
|
|
||||||
void _initBloc() {
|
void _initBloc() {
|
||||||
ScanDirBloc bloc;
|
_bloc = ScanDirBloc.of(widget.account);
|
||||||
final blocId =
|
|
||||||
"${widget.account.scheme}://${widget.account.username}@${widget.account.address}?${widget.account.roots.join('&')}";
|
|
||||||
try {
|
|
||||||
_log.fine("[_initBloc] Resolving bloc for '$blocId'");
|
|
||||||
bloc = KiwiContainer().resolve<ScanDirBloc>("ScanDirBloc($blocId)");
|
|
||||||
} catch (e) {
|
|
||||||
// no created instance for this account, make a new one
|
|
||||||
_log.info("[_initBloc] New bloc instance for account: ${widget.account}");
|
|
||||||
bloc = ScanDirBloc();
|
|
||||||
KiwiContainer()
|
|
||||||
.registerInstance<ScanDirBloc>(bloc, name: "ScanDirBloc($blocId)");
|
|
||||||
}
|
|
||||||
|
|
||||||
_bloc = bloc;
|
|
||||||
if (_bloc.state is ScanDirBlocInit) {
|
if (_bloc.state is ScanDirBlocInit) {
|
||||||
_log.info("[_initBloc] Initialize bloc");
|
_log.info("[_initBloc] Initialize bloc");
|
||||||
_reqQuery();
|
_reqQuery();
|
||||||
|
|
Loading…
Reference in a new issue