Skip to content

Instantly share code, notes, and snippets.

@a7md0
Created January 19, 2022 16:40
Show Gist options
  • Save a7md0/e4b6562fdfa9e021c177095ed22e06ea to your computer and use it in GitHub Desktop.
Save a7md0/e4b6562fdfa9e021c177095ed22e06ea to your computer and use it in GitHub Desktop.
Flutter connectivity cubit
import 'package:bloc/bloc.dart';
import 'package:connectivity/connectivity.dart';
part 'connectivity_state.dart';
class ConnectivityCubit extends Cubit<ConnectivityState> {
ConnectivityCubit() : super(const ConnectivityInitial()) {
final connectivity = Connectivity();
connectivity.checkConnectivity().then(_onConnectivityChanged);
connectivity.onConnectivityChanged.listen(_onConnectivityChanged);
}
Future<void> _onConnectivityChanged(ConnectivityResult result) async {
switch (result) {
case ConnectivityResult.none:
emit(const ConnectivityOffline());
break;
case ConnectivityResult.mobile:
case ConnectivityResult.wifi:
emit(const ConnectivityOnline());
}
}
}
part of 'connectivity_cubit.dart';
abstract class ConnectivityState {
const ConnectivityState();
}
class ConnectivityInitial extends ConnectivityState {
const ConnectivityInitial() : super();
}
class ConnectivityOnline extends ConnectivityState {
const ConnectivityOnline() : super();
}
class ConnectivityOffline extends ConnectivityState {
const ConnectivityOffline() : super();
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment