From 1d3a7306a57809667e07a4d7753cbf4e8669f509 Mon Sep 17 00:00:00 2001 From: klockky Date: Tue, 2 Jun 2026 16:10:41 +0000 Subject: [PATCH] =?UTF-8?q?feat:=20=D0=BE=D1=82=D0=BA=D1=80=D1=8B=D1=82?= =?UTF-8?q?=D0=B8=D0=B5=20=D0=B4=D0=B5=D0=B2-=D0=BC=D0=B5=D0=BD=D1=8E=20?= =?UTF-8?q?=D0=BF=D0=BE=207=20=D1=82=D0=B0=D0=BF=D0=B0=D0=BC=20=D0=BF?= =?UTF-8?q?=D0=BE=20=D0=B8=D0=BA=D0=BE=D0=BD=D0=BA=D0=B5=20=D0=BD=D0=B0=20?= =?UTF-8?q?=D1=8D=D0=BA=D1=80=D0=B0=D0=BD=D0=B5=20=D0=B2=D1=85=D0=BE=D0=B4?= =?UTF-8?q?=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/frontend/screens/auth/login_screen.dart | 32 ++++++++++++++++++--- 1 file changed, 28 insertions(+), 4 deletions(-) diff --git a/lib/frontend/screens/auth/login_screen.dart b/lib/frontend/screens/auth/login_screen.dart index aca0e81..40fb36b 100644 --- a/lib/frontend/screens/auth/login_screen.dart +++ b/lib/frontend/screens/auth/login_screen.dart @@ -13,6 +13,7 @@ import 'select_country_screen.dart'; import 'proxy_settings_sheet.dart'; import 'server_settings_sheet.dart'; import '../profile/spoof_screen.dart'; +import '../profile/debug_menu_screen.dart'; import '../../widgets/custom_notification.dart'; import '../../widgets/adaptive_shell.dart'; import '../../../backend/api.dart'; @@ -34,6 +35,8 @@ class _LoginScreenState extends State { bool _isTOSRead = false; String? _phoneError; Timer? _phoneErrorTimer; + int _logoTapCount = 0; + Timer? _logoTapTimer; @override void initState() { @@ -74,6 +77,7 @@ class _LoginScreenState extends State { @override void dispose() { _phoneErrorTimer?.cancel(); + _logoTapTimer?.cancel(); _phoneController.dispose(); super.dispose(); } @@ -87,6 +91,22 @@ class _LoginScreenState extends State { } } + void _onLogoTap() { + _logoTapTimer?.cancel(); + _logoTapTimer = Timer(const Duration(milliseconds: 600), () { + _logoTapCount = 0; + }); + _logoTapCount++; + if (_logoTapCount >= 7) { + _logoTapTimer?.cancel(); + _logoTapCount = 0; + Navigator.push( + context, + MaterialPageRoute(builder: (context) => const DebugMenuScreen()), + ); + } + } + Future _markTOSRead() async { final prefs = await SharedPreferences.getInstance(); await prefs.setBool('IsReadeTOS', true); @@ -728,10 +748,14 @@ class _LoginScreenState extends State { Center( child: Column( children: [ - Image.asset( - 'assets/komet.png', - height: 80, - color: cs.onSurface, + GestureDetector( + behavior: HitTestBehavior.opaque, + onTap: _onLogoTap, + child: Image.asset( + 'assets/komet.png', + height: 80, + color: cs.onSurface, + ), ), const SizedBox(height: 16), Text(