2021-09-29 13:08:19 +00:00
|
|
|
import 'dart:async';
|
2022-05-24 18:55:39 +00:00
|
|
|
import 'package:flutter_bloc/flutter_bloc.dart';
|
2021-09-29 13:08:19 +00:00
|
|
|
import 'package:equatable/equatable.dart';
|
2022-05-17 13:31:34 +00:00
|
|
|
import 'package:selfprivacy/logic/cubit/server_installation/server_installation_cubit.dart';
|
2021-09-29 13:08:19 +00:00
|
|
|
|
2022-05-17 13:31:34 +00:00
|
|
|
export 'package:selfprivacy/logic/cubit/server_installation/server_installation_cubit.dart';
|
2021-09-29 13:08:19 +00:00
|
|
|
|
|
|
|
part 'authentication_dependend_state.dart';
|
|
|
|
|
2022-05-17 13:31:34 +00:00
|
|
|
abstract class ServerInstallationDependendCubit<
|
|
|
|
T extends ServerInstallationDependendState> extends Cubit<T> {
|
|
|
|
ServerInstallationDependendCubit(
|
2022-05-17 20:08:28 +00:00
|
|
|
this.serverInstallationCubit,
|
2022-06-05 19:36:32 +00:00
|
|
|
final T initState,
|
2021-09-29 13:08:19 +00:00
|
|
|
) : super(initState) {
|
2022-05-17 20:08:28 +00:00
|
|
|
authCubitSubscription =
|
|
|
|
serverInstallationCubit.stream.listen(checkAuthStatus);
|
|
|
|
checkAuthStatus(serverInstallationCubit.state);
|
2021-09-29 13:08:19 +00:00
|
|
|
}
|
|
|
|
|
2022-06-05 19:36:32 +00:00
|
|
|
void checkAuthStatus(final ServerInstallationState state) {
|
2022-05-17 13:31:34 +00:00
|
|
|
if (state is ServerInstallationFinished) {
|
2021-09-29 13:08:19 +00:00
|
|
|
load();
|
2022-05-17 13:31:34 +00:00
|
|
|
} else if (state is ServerInstallationEmpty) {
|
2021-09-29 13:08:19 +00:00
|
|
|
clear();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
late StreamSubscription authCubitSubscription;
|
2022-05-17 20:08:28 +00:00
|
|
|
final ServerInstallationCubit serverInstallationCubit;
|
2021-09-29 13:08:19 +00:00
|
|
|
|
|
|
|
void load();
|
|
|
|
void clear();
|
|
|
|
|
|
|
|
@override
|
|
|
|
Future<void> close() {
|
|
|
|
authCubitSubscription.cancel();
|
|
|
|
return super.close();
|
|
|
|
}
|
|
|
|
}
|