diff --git a/app/lib/widget/export_collection_dialog.dart b/app/lib/widget/export_collection_dialog.dart index 34d1a572..d58d33b9 100644 --- a/app/lib/widget/export_collection_dialog.dart +++ b/app/lib/widget/export_collection_dialog.dart @@ -8,6 +8,7 @@ import 'package:nc_photos/account.dart'; import 'package:nc_photos/app_localizations.dart'; import 'package:nc_photos/controller/account_controller.dart'; import 'package:nc_photos/controller/collections_controller.dart'; +import 'package:nc_photos/controller/server_controller.dart'; import 'package:nc_photos/entity/collection.dart'; import 'package:nc_photos/entity/collection/exporter.dart'; import 'package:nc_photos/entity/collection_item.dart'; @@ -40,6 +41,14 @@ class ExportCollectionDialog extends StatelessWidget { context.read().collectionsController, collection: collection, items: items, + supportedProviders: { + _ProviderOption.appAlbum, + if (context + .read() + .serverController + .isSupported(ServerFeature.ncAlbum)) + _ProviderOption.ncAlbum, + }, ), child: const _WrappedExportCollectionDialog(), ); @@ -171,7 +180,9 @@ class _ProviderDropdown extends StatelessWidget { builder: (context, state) => DropdownButtonHideUnderline( child: DropdownButtonFormField<_ProviderOption>( value: state.formValue.provider, - items: _ProviderOption.values + items: context + .read<_Bloc>() + .supportedProviders .map((e) => DropdownMenuItem<_ProviderOption>( value: e, child: Text(e.toValueString(context)), diff --git a/app/lib/widget/export_collection_dialog/bloc.dart b/app/lib/widget/export_collection_dialog/bloc.dart index 6e8faa3c..6e1ea713 100644 --- a/app/lib/widget/export_collection_dialog/bloc.dart +++ b/app/lib/widget/export_collection_dialog/bloc.dart @@ -7,6 +7,7 @@ class _Bloc extends Bloc<_Event, _State> { required this.collectionsController, required this.collection, required this.items, + required this.supportedProviders, }) : super(_State.init()) { on<_FormEvent>(_onFormEvent); @@ -78,6 +79,8 @@ class _Bloc extends Bloc<_Event, _State> { final CollectionsController collectionsController; final Collection collection; final List items; + @keep + final Set<_ProviderOption> supportedProviders; var _isHandlingError = false; }