A framework for building convergent cross-platform Nextcloud clients using Flutter.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

42 lines
1.1 KiB

part of '../neon.dart';
typedef Capabilities = CoreServerCapabilities_Ocs_Data;
typedef NextcloudTheme = CoreServerCapabilities_Ocs_Data_Capabilities_Theming;
abstract class CapabilitiesBlocEvents {}
abstract class CapabilitiesBlocStates {
BehaviorSubject<Result<Capabilities>> get capabilities;
}
class CapabilitiesBloc extends InteractiveBloc implements CapabilitiesBlocEvents, CapabilitiesBlocStates {
CapabilitiesBloc(
this._requestManager,
this._client,
) {
unawaited(refresh());
}
final RequestManager _requestManager;
final NextcloudClient _client;
@override
void dispose() {
unawaited(capabilities.close());
super.dispose();
}
@override
BehaviorSubject<Result<Capabilities>> capabilities = BehaviorSubject<Result<Capabilities>>();
@override
Future refresh() async {
await _requestManager.wrapNextcloud<CoreServerCapabilities_Ocs_Data, CoreServerCapabilities>(
_client.id,
'capabilities',
capabilities,
() async => _client.core.getCapabilities(),
(final response) => response.ocs.data,
);
}
}