Skip to content

Commit 8ae0cc1

Browse files
committed
dispose AnimationController before super.dispose()
1 parent dc6977a commit 8ae0cc1

File tree

6 files changed

+26
-24
lines changed

6 files changed

+26
-24
lines changed

lib/pages/home/change_password/change_password_bottomsheet.dart

Lines changed: 21 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
1-
import 'dart:async';
2-
31
import 'package:flutter/material.dart';
42
import 'package:flutter_bloc_pattern/flutter_bloc_pattern.dart';
3+
import 'package:flutter_disposebag/flutter_disposebag.dart';
54
import 'package:node_auth/pages/home/change_password/change_password.dart';
65
import 'package:node_auth/widgets/password_textfield.dart';
6+
import 'package:rxdart_ext/rxdart_ext.dart';
77

88
class ChangePasswordBottomSheet extends StatefulWidget {
99
const ChangePasswordBottomSheet({Key key}) : super(key: key);
@@ -14,11 +14,13 @@ class ChangePasswordBottomSheet extends StatefulWidget {
1414
}
1515

1616
class _ChangePasswordBottomSheetState extends State<ChangePasswordBottomSheet>
17-
with SingleTickerProviderStateMixin<ChangePasswordBottomSheet> {
17+
with
18+
SingleTickerProviderStateMixin<ChangePasswordBottomSheet>,
19+
DisposeBagMixin {
1820
AnimationController fadeMessageController;
1921
Animation<double> messageOpacity;
22+
Object listen;
2023

21-
StreamSubscription<void> subscription;
2224
final newPasswordFocusNode = FocusNode();
2325

2426
@override
@@ -44,28 +46,28 @@ class _ChangePasswordBottomSheetState extends State<ChangePasswordBottomSheet>
4446
void didChangeDependencies() {
4547
super.didChangeDependencies();
4648

47-
subscription ??= BlocProvider.of<ChangePasswordBloc>(context)
49+
listen ??= BlocProvider.of<ChangePasswordBloc>(context)
4850
.changePasswordState$
49-
.listen((state) async {
50-
if (state.message != null) {
51-
final navigatorState = Navigator.of(context);
52-
53-
fadeMessageController.reset();
54-
await fadeMessageController.forward();
55-
56-
if (state?.error == null) {
57-
navigatorState.pop();
58-
}
59-
}
60-
});
51+
.flatMap((state) async* {
52+
if (state.message != null) {
53+
fadeMessageController.reset();
54+
await fadeMessageController.forward();
55+
yield null;
56+
57+
if (state?.error == null) {
58+
Navigator.of(context).pop();
59+
}
60+
}
61+
})
62+
.collect()
63+
.disposedBy(bag);
6164
}
6265

6366
@override
6467
void dispose() {
65-
super.dispose();
66-
subscription.cancel();
6768
fadeMessageController.dispose();
6869
newPasswordFocusNode.dispose();
70+
super.dispose();
6971
}
7072

7173
@override

lib/pages/login/login_page.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -72,9 +72,9 @@ class _MyLoginPageState extends State<LoginPage>
7272

7373
@override
7474
void dispose() {
75-
super.dispose();
7675
passwordFocusNode.dispose();
7776
loginButtonController.dispose();
77+
super.dispose();
7878
}
7979

8080
@override

lib/pages/register/register_page.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,10 +67,10 @@ class _RegisterPageState extends State<RegisterPage>
6767

6868
@override
6969
void dispose() {
70-
super.dispose();
7170
registerButtonController.dispose();
7271
emailFocusNode.dispose();
7372
passwordFocusNode.dispose();
73+
super.dispose();
7474
}
7575

7676
@override

lib/pages/reset_password/input_token/input_token_and_reset_password_page.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -79,10 +79,10 @@ class _InputTokenAndResetPasswordPageState
7979

8080
@override
8181
void dispose() {
82-
super.dispose();
8382
fadeController.dispose();
8483
tokenFocusNode.dispose();
8584
passwordFocusNode.dispose();
85+
super.dispose();
8686
}
8787

8888
@override

lib/pages/reset_password/reset_password_page.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -91,8 +91,8 @@ class _ResetPasswordPageState extends State<ResetPasswordPage>
9191

9292
@override
9393
void dispose() {
94-
super.dispose();
9594
animationController.dispose();
95+
super.dispose();
9696
}
9797

9898
void onToggle() => requestEmailS.add(null);

lib/pages/reset_password/send_email/send_email_page.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,8 +58,8 @@ class _SendEmailPageState extends State<SendEmailPage>
5858

5959
@override
6060
void dispose() {
61-
super.dispose();
6261
fadeController.dispose();
62+
super.dispose();
6363
}
6464

6565
@override

0 commit comments

Comments
 (0)