selfprivacy.org.app/lib/logic/cubit/providers/providers_state.dart

45 lines
1.1 KiB
Dart
Raw Normal View History

2020-12-10 22:33:19 +02:00
part of 'providers_cubit.dart';
class ProvidersState extends Equatable {
const ProvidersState(this.all);
final List<ProviderModel> all;
ProvidersState updateElement(
final ProviderModel provider,
final StateType newState,
) {
2022-06-05 22:36:32 +03:00
final List<ProviderModel> newList = [...all];
final int index = newList.indexOf(provider);
2020-12-10 22:33:19 +02:00
newList[index] = provider.updateState(newState);
return ProvidersState(newList);
}
List<ProviderModel> get connected => all
.where((final service) => service.state != StateType.uninitialized)
.toList();
2020-12-10 22:33:19 +02:00
List<ProviderModel> get uninitialized => all
.where((final service) => service.state == StateType.uninitialized)
.toList();
2020-12-10 22:33:19 +02:00
bool get isFullyInitialized => uninitialized.isEmpty;
@override
List<Object> get props => all;
}
2020-12-30 16:13:25 +02:00
class InitialProviderState extends ProvidersState {
InitialProviderState()
: super(
ProviderType.values
.map(
2022-06-05 22:36:32 +03:00
(final type) => ProviderModel(
2020-12-30 16:13:25 +02:00
state: StateType.uninitialized,
type: type,
),
)
.toList(),
);
}