From 1b89c349f730e50f47f1169b1281b13879cd9eaf Mon Sep 17 00:00:00 2001 From: Vincent Paulin Date: Thu, 6 Jun 2024 15:18:58 +0200 Subject: [PATCH] feat: back button disabled --- lib/pages/login/change_username_page.dart | 51 ++++++++++++++--------- 1 file changed, 32 insertions(+), 19 deletions(-) diff --git a/lib/pages/login/change_username_page.dart b/lib/pages/login/change_username_page.dart index 54f52c9eff..5f87f2c39b 100644 --- a/lib/pages/login/change_username_page.dart +++ b/lib/pages/login/change_username_page.dart @@ -1,5 +1,6 @@ import 'dart:convert'; +import 'package:back_button_interceptor/back_button_interceptor.dart'; import 'package:dio/dio.dart'; import 'package:flutter/foundation.dart'; import 'package:flutter/material.dart'; @@ -34,6 +35,28 @@ class _ChangeUsernamePageState extends State { bool _loadingUpdateUsername = false; bool _loadingCreateUser = false; + @override + void initState() { + super.initState(); + BackButtonInterceptor.add(myInterceptor); + + if (isUsernameSet()) { + _usernameController.text = widget.queueStatus['username']; + } + } + + @override + void dispose() { + BackButtonInterceptor.remove(myInterceptor); + _usernameController.dispose(); + super.dispose(); + } + + Future myInterceptor( + bool stopDefaultButtonEvent, RouteInfo info) async { + return true; + } + bool isUsernameSet() { return widget.queueStatus['username'] != null && widget.queueStatus['username'] != ""; @@ -157,15 +180,6 @@ class _ChangeUsernamePageState extends State { } } - @override - void initState() { - super.initState(); - - if (isUsernameSet()) { - _usernameController.text = widget.queueStatus['username']; - } - } - void _onSubmitButtonPressed() async { if (widget.queueStatus['username'] != _usernameController.text) { final newUsername = _usernameController.text; @@ -209,6 +223,7 @@ class _ChangeUsernamePageState extends State { return Scaffold( appBar: AppBar( title: Text(L10n.of(context)!.usernamePageTitle), + automaticallyImplyLeading: false, ), body: Padding( padding: const EdgeInsets.all(16.0), @@ -244,8 +259,8 @@ class _ChangeUsernamePageState extends State { const SizedBox(height: 10), Text( widget.queueStatus['userState'] == 'IN_QUEUE' - ? L10n.of(context)!.usernameInQueueChangeUsername - : L10n.of(context)!.usernameChangeUsername, + ? L10n.of(context)!.usernameInQueueChangeUsername + : L10n.of(context)!.usernameChangeUsername, style: const TextStyle(fontSize: 18), textAlign: TextAlign.center, ), @@ -274,7 +289,9 @@ class _ChangeUsernamePageState extends State { const SizedBox(height: 20), ElevatedButton( onPressed: _isLoading() ? null : _onSubmitButtonPressed, - child: _loadingUpdateUsername ? const LinearProgressIndicator() : Text(L10n.of(context)!.usernameSubmit), + child: _loadingUpdateUsername + ? const LinearProgressIndicator() + : Text(L10n.of(context)!.usernameSubmit), ), const SizedBox(height: 50), isUsernameSet() @@ -287,7 +304,9 @@ class _ChangeUsernamePageState extends State { isUsernameSet() && _isAccepted() ? ElevatedButton( onPressed: _isLoading() ? null : _onNextButtonPressed, - child: _loadingCreateUser ? const LinearProgressIndicator() : Text(L10n.of(context)!.next), + child: _loadingCreateUser + ? const LinearProgressIndicator() + : Text(L10n.of(context)!.next), ) : Container(), ], @@ -296,12 +315,6 @@ class _ChangeUsernamePageState extends State { ), ); } - - @override - void dispose() { - _usernameController.dispose(); - super.dispose(); - } } // Custom TextInputFormatter to convert to lower case