mirror of
https://git.selfprivacy.org/kherel/selfprivacy.org.app.git
synced 2025-01-08 17:11:14 +00:00
feat: cleaned up connection status bloc code
This commit is contained in:
parent
00545c34b4
commit
acc007894c
|
@ -1,7 +1,7 @@
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:flutter_bloc/flutter_bloc.dart';
|
import 'package:flutter_bloc/flutter_bloc.dart';
|
||||||
import 'package:selfprivacy/logic/bloc/backups/backups_bloc.dart';
|
import 'package:selfprivacy/logic/bloc/backups/backups_bloc.dart';
|
||||||
import 'package:selfprivacy/logic/bloc/connection_status/connection_status_bloc.dart';
|
import 'package:selfprivacy/logic/bloc/connection_status_bloc.dart';
|
||||||
import 'package:selfprivacy/logic/bloc/devices/devices_bloc.dart';
|
import 'package:selfprivacy/logic/bloc/devices/devices_bloc.dart';
|
||||||
import 'package:selfprivacy/logic/bloc/recovery_key/recovery_key_bloc.dart';
|
import 'package:selfprivacy/logic/bloc/recovery_key/recovery_key_bloc.dart';
|
||||||
import 'package:selfprivacy/logic/bloc/server_jobs/server_jobs_bloc.dart';
|
import 'package:selfprivacy/logic/bloc/server_jobs/server_jobs_bloc.dart';
|
||||||
|
|
|
@ -1,39 +0,0 @@
|
||||||
import 'dart:async';
|
|
||||||
|
|
||||||
import 'package:equatable/equatable.dart';
|
|
||||||
import 'package:flutter_bloc/flutter_bloc.dart';
|
|
||||||
import 'package:selfprivacy/config/get_it_config.dart';
|
|
||||||
|
|
||||||
part 'connection_status_event.dart';
|
|
||||||
part 'connection_status_state.dart';
|
|
||||||
|
|
||||||
class ConnectionStatusBloc
|
|
||||||
extends Bloc<ConnectionStatusEvent, ConnectionStatusState> {
|
|
||||||
ConnectionStatusBloc()
|
|
||||||
: super(
|
|
||||||
const ConnectionStatusState(
|
|
||||||
connectionStatus: ConnectionStatus.nonexistent,
|
|
||||||
),
|
|
||||||
) {
|
|
||||||
on<ConnectionStatusChanged>((final event, final emit) {
|
|
||||||
emit(ConnectionStatusState(connectionStatus: event.connectionStatus));
|
|
||||||
});
|
|
||||||
final apiConnectionRepository = getIt<ApiConnectionRepository>();
|
|
||||||
_apiConnectionStatusSubscription =
|
|
||||||
apiConnectionRepository.connectionStatusStream.listen(
|
|
||||||
(final ConnectionStatus connectionStatus) {
|
|
||||||
add(
|
|
||||||
ConnectionStatusChanged(connectionStatus),
|
|
||||||
);
|
|
||||||
},
|
|
||||||
);
|
|
||||||
}
|
|
||||||
|
|
||||||
StreamSubscription? _apiConnectionStatusSubscription;
|
|
||||||
|
|
||||||
@override
|
|
||||||
Future<void> close() {
|
|
||||||
_apiConnectionStatusSubscription?.cancel();
|
|
||||||
return super.close();
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,14 +0,0 @@
|
||||||
part of 'connection_status_bloc.dart';
|
|
||||||
|
|
||||||
sealed class ConnectionStatusEvent extends Equatable {
|
|
||||||
const ConnectionStatusEvent();
|
|
||||||
}
|
|
||||||
|
|
||||||
class ConnectionStatusChanged extends ConnectionStatusEvent {
|
|
||||||
const ConnectionStatusChanged(this.connectionStatus);
|
|
||||||
|
|
||||||
final ConnectionStatus connectionStatus;
|
|
||||||
|
|
||||||
@override
|
|
||||||
List<Object?> get props => [connectionStatus];
|
|
||||||
}
|
|
|
@ -1,12 +0,0 @@
|
||||||
part of 'connection_status_bloc.dart';
|
|
||||||
|
|
||||||
class ConnectionStatusState extends Equatable {
|
|
||||||
const ConnectionStatusState({
|
|
||||||
required this.connectionStatus,
|
|
||||||
});
|
|
||||||
|
|
||||||
final ConnectionStatus connectionStatus;
|
|
||||||
|
|
||||||
@override
|
|
||||||
List<Object> get props => [connectionStatus];
|
|
||||||
}
|
|
27
lib/logic/bloc/connection_status_bloc.dart
Normal file
27
lib/logic/bloc/connection_status_bloc.dart
Normal file
|
@ -0,0 +1,27 @@
|
||||||
|
import 'dart:async';
|
||||||
|
|
||||||
|
import 'package:flutter_bloc/flutter_bloc.dart';
|
||||||
|
import 'package:selfprivacy/config/get_it_config.dart';
|
||||||
|
|
||||||
|
/// basically, a bus for other blocs to listen to server status updates
|
||||||
|
class ConnectionStatusBloc extends Bloc<ConnectionStatus, ConnectionStatus> {
|
||||||
|
ConnectionStatusBloc() : super(ConnectionStatus.nonexistent) {
|
||||||
|
on<ConnectionStatus>(
|
||||||
|
(final newStatus, final emit) => emit(newStatus),
|
||||||
|
);
|
||||||
|
|
||||||
|
final apiConnectionRepository = getIt<ApiConnectionRepository>();
|
||||||
|
_apiConnectionStatusSubscription =
|
||||||
|
apiConnectionRepository.connectionStatusStream.listen(
|
||||||
|
(final ConnectionStatus newStatus) => add(newStatus),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
StreamSubscription? _apiConnectionStatusSubscription;
|
||||||
|
|
||||||
|
@override
|
||||||
|
Future<void> close() {
|
||||||
|
_apiConnectionStatusSubscription?.cancel();
|
||||||
|
return super.close();
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in a new issue