Files
paperless-mobile/lib/core/bloc/connectivity_cubit.dart
Anton Stubenbord cb797df7d2 Initial commit
2022-10-30 14:15:37 +01:00

30 lines
1015 B
Dart

import 'dart:async';
import 'package:flutter_bloc/flutter_bloc.dart';
import 'package:flutter_paperless_mobile/core/service/connectivity_status.service.dart';
import 'package:injectable/injectable.dart';
@singleton
class ConnectivityCubit extends Cubit<ConnectivityState> {
final ConnectivityStatusService connectivityStatusService;
late final StreamSubscription<bool> _sub;
ConnectivityCubit(this.connectivityStatusService) : super(ConnectivityState.undefined);
Future<void> initialize() async {
final bool isConnected = await connectivityStatusService.isConnectedToInternet();
emit(isConnected ? ConnectivityState.connected : ConnectivityState.notConnected);
_sub = connectivityStatusService.connectivityChanges().listen((isConnected) {
emit(isConnected ? ConnectivityState.connected : ConnectivityState.notConnected);
});
}
@override
Future<void> close() {
_sub.cancel();
return super.close();
}
}
enum ConnectivityState { connected, notConnected, undefined }