Linloir 0bb71791da
More Functions
- User Profile page available
- Search user avavilable
- Tested Message page
- Tested Contact page
2022-10-14 12:32:19 +08:00

49 lines
1.4 KiB
Dart

/*
* @Author : Linloir
* @Date : 2022-10-14 10:54:57
* @LastEditTime : 2022-10-14 11:44:12
* @Description :
*/
import 'dart:async';
import 'package:bloc/bloc.dart';
import 'package:shared_preferences/shared_preferences.dart';
import 'package:tcp_client/home/view/profile_page/cubit/log_out_state.dart';
import 'package:tcp_client/repositories/tcp_repository/models/tcp_request.dart';
import 'package:tcp_client/repositories/tcp_repository/models/tcp_response.dart';
import 'package:tcp_client/repositories/tcp_repository/tcp_repository.dart';
class LogOutCubit extends Cubit<LogOutStatus> {
LogOutCubit({
required this.tcpRepository
}): super(LogOutStatus.none) {
subscription = tcpRepository.responseStreamBroadcast.listen(_onResponse);
}
final TCPRepository tcpRepository;
late final StreamSubscription subscription;
void _onResponse(TCPResponse response) {
if(response.type == TCPResponseType.logout) {
if(response.status == TCPResponseStatus.ok) {
emit(LogOutStatus.done);
}
else {
emit(LogOutStatus.none);
}
}
}
void onLogout() async {
tcpRepository.pushRequest(LogoutRequest(token: (await SharedPreferences.getInstance()).getInt('token')));
}
//Override dispose to cancel the subscription
@override
Future<void> close() {
subscription.cancel();
return super.close();
}
}