Release textEditingController listeners in dispose.

This commit is contained in:
xsahil03x
2020-11-19 18:40:45 +05:30
parent 1cbb10942f
commit 822547b644
+34 -20
View File
@@ -284,22 +284,24 @@ class _NewChatScreenState extends State<NewChatScreen> {
Channel channel; Channel channel;
void _userNameListener() {
setState(() {
_userNameQuery = _controller.text;
_isSearchActive = _userNameQuery.isNotEmpty;
});
}
@override @override
void initState() { void initState() {
super.initState(); super.initState();
channel = StreamChat.of(context).client.channel('messaging'); channel = StreamChat.of(context).client.channel('messaging');
_controller = TextEditingController() _controller = TextEditingController()..addListener(_userNameListener);
..addListener(() {
setState(() {
_userNameQuery = _controller.text;
_isSearchActive = _userNameQuery.isNotEmpty;
});
});
} }
@override @override
void dispose() { void dispose() {
_controller?.clear(); _controller?.clear();
_controller?.removeListener(_userNameListener);
_controller?.dispose(); _controller?.dispose();
super.dispose(); super.dispose();
} }
@@ -489,21 +491,23 @@ class _NewGroupChatScreenState extends State<NewGroupChatScreen> {
bool _isSearchActive = false; bool _isSearchActive = false;
void _userNameListener() {
setState(() {
_userNameQuery = _controller.text;
_isSearchActive = _userNameQuery.isNotEmpty;
});
}
@override @override
void initState() { void initState() {
super.initState(); super.initState();
_controller = TextEditingController() _controller = TextEditingController()..addListener(_userNameListener);
..addListener(() {
setState(() {
_userNameQuery = _controller.text;
_isSearchActive = _userNameQuery.isNotEmpty;
});
});
} }
@override @override
void dispose() { void dispose() {
_controller?.clear(); _controller?.clear();
_controller?.removeListener(_userNameListener);
_controller?.dispose(); _controller?.dispose();
super.dispose(); super.dispose();
} }
@@ -723,18 +727,28 @@ class _GroupChatDetailsScreenState extends State<GroupChatDetailsScreen> {
int get _totalUsers => _selectedUsers.length; int get _totalUsers => _selectedUsers.length;
void _groupNameListener() {
final name = _groupNameController.text;
setState(() {
_isGroupNameEmpty = name.isEmpty;
});
}
@override @override
void initState() { void initState() {
super.initState(); super.initState();
_channel = StreamChat.of(context).client.channel('messaging'); _channel = StreamChat.of(context).client.channel('messaging');
_selectedUsers.addAll(widget.selectedUsers); _selectedUsers.addAll(widget.selectedUsers);
_groupNameController = TextEditingController() _groupNameController = TextEditingController()
..addListener(() { ..addListener(_groupNameListener);
final name = _groupNameController.text; }
setState(() {
_isGroupNameEmpty = name.isEmpty; @override
}); void dispose() {
}); _groupNameController?.clear();
_groupNameController?.removeListener(_groupNameListener);
_groupNameController?.dispose();
super.dispose();
} }
@override @override