diff --git a/lib/bloc/bloc_util.dart b/lib/bloc/bloc_util.dart new file mode 100644 index 00000000..5fae82b7 --- /dev/null +++ b/lib/bloc/bloc_util.dart @@ -0,0 +1,7 @@ +import 'package:nc_photos/account.dart'; + +String getInstNameForAccount(String className, Account account) => + "$className(${account.scheme}://${account.username}@${account.address})"; + +String getInstNameForRootAwareAccount(String className, Account account) => + "$className(${account.scheme}://${account.username}@${account.address}?${account.roots.join('&')})"; diff --git a/lib/bloc/list_album.dart b/lib/bloc/list_album.dart index 83952a64..7e1b6471 100644 --- a/lib/bloc/list_album.dart +++ b/lib/bloc/list_album.dart @@ -2,6 +2,7 @@ import 'package:bloc/bloc.dart'; import 'package:kiwi/kiwi.dart'; import 'package:logging/logging.dart'; import 'package:nc_photos/account.dart'; +import 'package:nc_photos/bloc/bloc_util.dart' as bloc_util; import 'package:nc_photos/di_container.dart'; import 'package:nc_photos/entity/album.dart'; import 'package:nc_photos/entity/file.dart'; @@ -141,10 +142,10 @@ class ListAlbumBloc extends Bloc { static bool require(DiContainer c) => true; static ListAlbumBloc of(Account account) { - final id = "${account.scheme}://${account.username}@${account.address}"; + final name = bloc_util.getInstNameForAccount("ListAlbumBloc", account); try { - _log.fine("[of] Resolving bloc for '$id'"); - return KiwiContainer().resolve("ListAlbumBloc($id)"); + _log.fine("[of] Resolving bloc for '$name'"); + return KiwiContainer().resolve(name); } catch (_) { // no created instance for this account, make a new one _log.info("[of] New bloc instance for account: $account"); @@ -154,8 +155,7 @@ class ListAlbumBloc extends Bloc { albumRepo: OrNull(AlbumRepo(AlbumAppDbDataSource(c.appDb))), ); final bloc = ListAlbumBloc(c, offlineC); - KiwiContainer() - .registerInstance(bloc, name: "ListAlbumBloc($id)"); + KiwiContainer().registerInstance(bloc, name: name); return bloc; } } diff --git a/lib/bloc/list_person.dart b/lib/bloc/list_person.dart index dadc3e0d..54d5b2c2 100644 --- a/lib/bloc/list_person.dart +++ b/lib/bloc/list_person.dart @@ -2,6 +2,7 @@ import 'package:bloc/bloc.dart'; import 'package:kiwi/kiwi.dart'; import 'package:logging/logging.dart'; import 'package:nc_photos/account.dart'; +import 'package:nc_photos/bloc/bloc_util.dart' as bloc_util; import 'package:nc_photos/entity/person.dart'; import 'package:nc_photos/entity/person/data_source.dart'; @@ -72,17 +73,15 @@ class ListPersonBloc extends Bloc { ListPersonBloc() : super(ListPersonBlocInit()); static ListPersonBloc of(Account account) { - final id = - "${account.scheme}://${account.username}@${account.address}?${account.roots.join('&')}"; + final name = bloc_util.getInstNameForAccount("ListPersonBloc", account); try { - _log.fine("[of] Resolving bloc for '$id'"); - return KiwiContainer().resolve("ListPersonBloc($id)"); + _log.fine("[of] Resolving bloc for '$name'"); + return KiwiContainer().resolve(name); } catch (_) { // no created instance for this account, make a new one _log.info("[of] New bloc instance for account: $account"); final bloc = ListPersonBloc(); - KiwiContainer().registerInstance(bloc, - name: "ListPersonBloc($id)"); + KiwiContainer().registerInstance(bloc, name: name); return bloc; } } diff --git a/lib/bloc/list_sharee.dart b/lib/bloc/list_sharee.dart index 2c62f884..6e1ecf1e 100644 --- a/lib/bloc/list_sharee.dart +++ b/lib/bloc/list_sharee.dart @@ -2,6 +2,7 @@ import 'package:bloc/bloc.dart'; import 'package:kiwi/kiwi.dart'; import 'package:logging/logging.dart'; import 'package:nc_photos/account.dart'; +import 'package:nc_photos/bloc/bloc_util.dart' as bloc_util; import 'package:nc_photos/entity/sharee.dart'; import 'package:nc_photos/entity/sharee/data_source.dart'; @@ -72,16 +73,15 @@ class ListShareeBloc extends Bloc { ListShareeBloc() : super(ListShareeBlocInit()); static ListShareeBloc of(Account account) { - final id = "${account.scheme}://${account.username}@${account.address}"; + final name = bloc_util.getInstNameForAccount("ListShareeBloc", account); try { - _log.fine("[of] Resolving bloc for '$id'"); - return KiwiContainer().resolve("ListShareeBloc($id)"); + _log.fine("[of] Resolving bloc for '$name'"); + return KiwiContainer().resolve(name); } catch (_) { // no created instance for this account, make a new one _log.info("[of] New bloc instance for account: $account"); final bloc = ListShareeBloc(); - KiwiContainer() - .registerInstance(bloc, name: "ListShareeBloc($id)"); + KiwiContainer().registerInstance(bloc, name: name); return bloc; } } diff --git a/lib/bloc/list_sharing.dart b/lib/bloc/list_sharing.dart index d4c2385e..76a66e2e 100644 --- a/lib/bloc/list_sharing.dart +++ b/lib/bloc/list_sharing.dart @@ -2,6 +2,7 @@ import 'package:bloc/bloc.dart'; import 'package:kiwi/kiwi.dart'; import 'package:logging/logging.dart'; import 'package:nc_photos/account.dart'; +import 'package:nc_photos/bloc/bloc_util.dart' as bloc_util; import 'package:nc_photos/di_container.dart'; import 'package:nc_photos/entity/album.dart'; import 'package:nc_photos/entity/file.dart'; @@ -173,17 +174,16 @@ class ListSharingBloc extends Bloc { DiContainer.has(c, DiType.shareRepo); static ListSharingBloc of(Account account) { - final id = - "${account.scheme}://${account.username}@${account.address}?${account.roots.join('&')}"; + final name = + bloc_util.getInstNameForRootAwareAccount("ListSharingBloc", account); try { - _log.fine("[of] Resolving bloc for '$id'"); - return KiwiContainer().resolve("ListSharingBloc($id)"); + _log.fine("[of] Resolving bloc for '$name'"); + return KiwiContainer().resolve(name); } catch (_) { // no created instance for this account, make a new one _log.info("[of] New bloc instance for account: $account"); final bloc = ListSharingBloc(KiwiContainer().resolve()); - KiwiContainer().registerInstance(bloc, - name: "ListSharingBloc($id)"); + KiwiContainer().registerInstance(bloc, name: name); return bloc; } } diff --git a/lib/bloc/ls_trashbin.dart b/lib/bloc/ls_trashbin.dart index 2d10aae7..a32b1901 100644 --- a/lib/bloc/ls_trashbin.dart +++ b/lib/bloc/ls_trashbin.dart @@ -2,6 +2,7 @@ import 'package:bloc/bloc.dart'; import 'package:kiwi/kiwi.dart'; import 'package:logging/logging.dart'; import 'package:nc_photos/account.dart'; +import 'package:nc_photos/bloc/bloc_util.dart' as bloc_util; import 'package:nc_photos/entity/file.dart'; import 'package:nc_photos/entity/file/data_source.dart'; import 'package:nc_photos/entity/file_util.dart' as file_util; @@ -108,16 +109,15 @@ class LsTrashbinBloc extends Bloc { } static LsTrashbinBloc of(Account account) { - final id = "${account.scheme}://${account.username}@${account.address}"; + final name = bloc_util.getInstNameForAccount("LsTrashbinBloc", account); try { - _log.fine("[of] Resolving bloc for '$id'"); - return KiwiContainer().resolve("LsTrashbinBloc($id)"); + _log.fine("[of] Resolving bloc for '$name'"); + return KiwiContainer().resolve(name); } catch (_) { // no created instance for this account, make a new one _log.info("[of] New bloc instance for account: $account"); final bloc = LsTrashbinBloc(); - KiwiContainer() - .registerInstance(bloc, name: "LsTrashbinBloc($id)"); + KiwiContainer().registerInstance(bloc, name: name); return bloc; } } diff --git a/lib/bloc/scan_account_dir.dart b/lib/bloc/scan_account_dir.dart index 5295487b..664fe6ea 100644 --- a/lib/bloc/scan_account_dir.dart +++ b/lib/bloc/scan_account_dir.dart @@ -5,6 +5,7 @@ import 'package:kiwi/kiwi.dart'; import 'package:logging/logging.dart'; import 'package:nc_photos/account.dart'; import 'package:nc_photos/app_db.dart'; +import 'package:nc_photos/bloc/bloc_util.dart' as bloc_util; import 'package:nc_photos/debug_util.dart'; import 'package:nc_photos/di_container.dart'; import 'package:nc_photos/entity/file.dart'; @@ -113,18 +114,16 @@ class ScanAccountDirBloc } static ScanAccountDirBloc of(Account account) { - final id = - "${account.scheme}://${account.username}@${account.address}?${account.roots.join('&')}"; + final name = + bloc_util.getInstNameForRootAwareAccount("ScanAccountDirBloc", account); try { - _log.fine("[of] Resolving bloc for '$id'"); - return KiwiContainer() - .resolve("ScanAccountDirBloc($id)"); + _log.fine("[of] Resolving bloc for '$name'"); + return KiwiContainer().resolve(name); } catch (_) { // no created instance for this account, make a new one _log.info("[of] New bloc instance for account: $account"); final bloc = ScanAccountDirBloc._(account); - KiwiContainer().registerInstance(bloc, - name: "ScanAccountDirBloc($id)"); + KiwiContainer().registerInstance(bloc, name: name); return bloc; } } diff --git a/lib/widget/home_photos.dart b/lib/widget/home_photos.dart index a886514c..c9778f5d 100644 --- a/lib/widget/home_photos.dart +++ b/lib/widget/home_photos.dart @@ -9,6 +9,7 @@ import 'package:logging/logging.dart'; import 'package:nc_photos/account.dart'; import 'package:nc_photos/api/api_util.dart' as api_util; import 'package:nc_photos/app_localizations.dart'; +import 'package:nc_photos/bloc/bloc_util.dart' as bloc_util; import 'package:nc_photos/bloc/scan_account_dir.dart'; import 'package:nc_photos/di_container.dart'; import 'package:nc_photos/download_handler.dart'; @@ -638,18 +639,16 @@ class _HomePhotosState extends State } Primitive get _hasFiredMetadataTask { - final blocId = - "${widget.account.scheme}://${widget.account.username}@${widget.account.address}"; + final name = bloc_util.getInstNameForRootAwareAccount( + "HomePhotosState.hasFiredMetadataTask", widget.account); try { - _log.fine("[_hasFiredMetadataTask] Resolving bloc for '$blocId'"); - return KiwiContainer().resolve>( - "HomePhotosState.hasFiredMetadataTask($blocId)"); + _log.fine("[_hasFiredMetadataTask] Resolving for '$name'"); + return KiwiContainer().resolve>(name); } catch (_) { _log.info( - "[_hasFiredMetadataTask] New bloc instance for account: ${widget.account}"); + "[_hasFiredMetadataTask] New instance for account: ${widget.account}"); final obj = Primitive(false); - KiwiContainer().registerInstance>(obj, - name: "HomePhotosState.hasFiredMetadataTask($blocId)"); + KiwiContainer().registerInstance>(obj, name: name); return obj; } }