From 21c1da5c77e661bb27fe13b892e92be135c55cea Mon Sep 17 00:00:00 2001 From: Sergej Nekrasov <130226127+SergejWinston@users.noreply.github.com> Date: Mon, 6 Apr 2026 21:10:31 +0000 Subject: [PATCH] Revert "feat(auth): integrate SmartAuth for SMS code auto-fill and update localization strings" This reverts commit 37e320a52b0476946df15d2ebc4659d714c90d8c. --- android/gradle.properties | 4 -- .../auth/code_confirmation_screen.dart | 65 ++----------------- lib/frontend/screens/auth/login_screen.dart | 9 +++ lib/l10n/app_en.arb | 15 +++-- lib/l10n/app_localizations.dart | 20 ++++-- lib/l10n/app_localizations_en.dart | 18 ++--- lib/l10n/app_localizations_ru.dart | 9 ++- lib/l10n/app_ru.arb | 6 +- pubspec.lock | 8 --- pubspec.yaml | 1 - 10 files changed, 54 insertions(+), 101 deletions(-) diff --git a/android/gradle.properties b/android/gradle.properties index 398cde8..492b2f1 100644 --- a/android/gradle.properties +++ b/android/gradle.properties @@ -2,7 +2,3 @@ org.gradle.jvmargs=-Xmx8G -XX:MaxMetaspaceSize=4G -XX:ReservedCodeCacheSize=512m android.useAndroidX=true kotlin.incremental=false dev.steenbakker.mobile_scanner.useUnbundled=true -systemProp.socksProxyHost=127.0.0.1 -systemProp.socksProxyPort=10808 -systemProp.https.proxyHost=127.0.0.1 -systemProp.https.proxyPort=10808 diff --git a/lib/frontend/screens/auth/code_confirmation_screen.dart b/lib/frontend/screens/auth/code_confirmation_screen.dart index 21a2194..3840751 100644 --- a/lib/frontend/screens/auth/code_confirmation_screen.dart +++ b/lib/frontend/screens/auth/code_confirmation_screen.dart @@ -1,10 +1,8 @@ import 'dart:async'; -import 'package:flutter/foundation.dart'; import 'package:flutter/material.dart'; import 'package:komet/l10n/app_localizations.dart'; import 'package:flutter/services.dart'; import 'package:google_fonts/google_fonts.dart'; -import 'package:smart_auth/smart_auth.dart'; import '../chats/chat_list_screen.dart'; import 'password_2fa_screen.dart'; import '../../../main.dart'; @@ -28,11 +26,9 @@ class _CodeConfirmationScreenState extends State with TickerProviderStateMixin { final TextEditingController _codeController = TextEditingController(); final FocusNode _focusNode = FocusNode(); - final SmartAuth _smartAuth = SmartAuth.instance; int _timerSeconds = 30; Timer? _timer; Timer? _errorTimer; - bool _isListeningSmsConsent = false; String? _errorMessage; late AnimationController _shakeController; @@ -45,7 +41,6 @@ class _CodeConfirmationScreenState extends State WidgetsBinding.instance.addPostFrameCallback((_) { _focusNode.requestFocus(); }); - _startSmsCodeListener(); _shakeController = AnimationController( vsync: this, @@ -61,63 +56,10 @@ class _CodeConfirmationScreenState extends State ]).animate(CurvedAnimation(parent: _shakeController, curve: Curves.linear)); } - Future _startSmsCodeListener() async { - if (defaultTargetPlatform != TargetPlatform.android) return; - if (_isListeningSmsConsent) return; - - _isListeningSmsConsent = true; - final result = await _smartAuth.getSmsWithUserConsentApi(matcher: r'\d{6}'); - _isListeningSmsConsent = false; - - if (!mounted || !result.hasData) return; - - final receivedCode = result.data?.code; - if (receivedCode == null || receivedCode.isEmpty) return; - - _applyAutoFillCode(receivedCode); - } - - Future _restartSmsCodeListener() async { - if (defaultTargetPlatform != TargetPlatform.android) return; - await _smartAuth.removeUserConsentApiListener(); - _isListeningSmsConsent = false; - await _startSmsCodeListener(); - } - - void _handleCodeChanged(String value) { - setState(() { - if (_errorMessage != null) { - _errorMessage = null; - } - }); - if (value.length == 6) { - _verifyCode(); - } - } - - void _applyAutoFillCode(String rawCode) { - final digitsOnly = rawCode.replaceAll(RegExp(r'\D'), ''); - if (digitsOnly.isEmpty) return; - - final nextCode = digitsOnly.length <= 6 - ? digitsOnly - : digitsOnly.substring(0, 6); - - if (_codeController.text == nextCode) return; - - _codeController.value = TextEditingValue( - text: nextCode, - selection: TextSelection.collapsed(offset: nextCode.length), - ); - - _handleCodeChanged(nextCode); - } - @override void dispose() { _timer?.cancel(); _errorTimer?.cancel(); - unawaited(_smartAuth.removeUserConsentApiListener()); _shakeController.dispose(); _codeController.dispose(); _focusNode.dispose(); @@ -150,7 +92,6 @@ class _CodeConfirmationScreenState extends State void _resendCode() { if (_timerSeconds == 0) { _startTimer(); - unawaited(_restartSmsCodeListener()); } } @@ -265,7 +206,11 @@ class _CodeConfirmationScreenState extends State FilteringTextInputFormatter.digitsOnly, LengthLimitingTextInputFormatter(6), ], - onChanged: _handleCodeChanged, + onChanged: (value) { + if (hasError) setState(() => _errorMessage = null); + setState(() {}); + if (value.length == 6) _verifyCode(); + }, ), ), ), diff --git a/lib/frontend/screens/auth/login_screen.dart b/lib/frontend/screens/auth/login_screen.dart index 08f74e8..579f250 100644 --- a/lib/frontend/screens/auth/login_screen.dart +++ b/lib/frontend/screens/auth/login_screen.dart @@ -795,6 +795,15 @@ class _LoginScreenState extends State { height: 1.4, ), children: [ + TextSpan( + text: l10n.loginTermsIntro, + style: GoogleFonts.inter( + color: cs.onSurface, + fontSize: 14, + height: 1.4, + fontWeight: FontWeight.w400, + ), + ), TextSpan( text: l10n.loginTermsLink, style: GoogleFonts.inter( diff --git a/lib/l10n/app_en.arb b/lib/l10n/app_en.arb index 7ec3f63..aa424d8 100644 --- a/lib/l10n/app_en.arb +++ b/lib/l10n/app_en.arb @@ -1,22 +1,23 @@ { "@@locale": "en", - "loginTitle": "Log in to Komet", + "loginTitle": "Sign in to Komet", "loginSubtitle": "Check your country code and enter your\nphone number.", "loginCountry": "Country", "loginPhoneNumber": "Phone number", "loginPhoneHint": "(000) 000-00-00", "loginOtherSignInMethods": "Other sign-in methods", - "loginTermsLink": "Terms of Use «Komet»", - "loginTermsOfUse": "Terms of Use «Komet»", + "loginTermsIntro": "By continuing, you agree to \n", + "loginTermsLink": "the terms of use", + "loginTermsOfUse": "Terms of use", "loginConfirmPhoneTitle": "Is this the correct number?", "loginEdit": "Change", "loginDone": "Done", - "loginReadTermsNotification": "Please read the Terms of Use «Komet»", + "loginReadTermsNotification": "Please read the terms of use first", "loginSpoofRedacted": "Spoof redaction", "loginProxy": "Proxy", - "loginSignInWithQr": "Log in with QR code", - "loginSignInWithToken": "Log in with token", - "loginSignInWithSessionFile": "Log in with session file", + "loginSignInWithQr": "Sign in with QR code", + "loginSignInWithToken": "Sign in with token", + "loginSignInWithSessionFile": "Sign in with session file", "loginLanguage": "Language", "languageNameRu": "Русский", "languageNameEn": "English", diff --git a/lib/l10n/app_localizations.dart b/lib/l10n/app_localizations.dart index 67816f8..b0614d5 100644 --- a/lib/l10n/app_localizations.dart +++ b/lib/l10n/app_localizations.dart @@ -101,7 +101,7 @@ abstract class AppLocalizations { /// No description provided for @loginTitle. /// /// In en, this message translates to: - /// **'Log in to Komet'** + /// **'Sign in to Komet'** String get loginTitle; /// No description provided for @loginSubtitle. @@ -134,16 +134,22 @@ abstract class AppLocalizations { /// **'Other sign-in methods'** String get loginOtherSignInMethods; + /// No description provided for @loginTermsIntro. + /// + /// In en, this message translates to: + /// **'By continuing, you agree to \n'** + String get loginTermsIntro; + /// No description provided for @loginTermsLink. /// /// In en, this message translates to: - /// **'Terms of Use «Komet»'** + /// **'the terms of use'** String get loginTermsLink; /// No description provided for @loginTermsOfUse. /// /// In en, this message translates to: - /// **'Terms of Use «Komet»'** + /// **'Terms of use'** String get loginTermsOfUse; /// No description provided for @loginConfirmPhoneTitle. @@ -167,7 +173,7 @@ abstract class AppLocalizations { /// No description provided for @loginReadTermsNotification. /// /// In en, this message translates to: - /// **'Please read the Terms of Use «Komet»'** + /// **'Please read the terms of use first'** String get loginReadTermsNotification; /// No description provided for @loginSpoofRedacted. @@ -185,19 +191,19 @@ abstract class AppLocalizations { /// No description provided for @loginSignInWithQr. /// /// In en, this message translates to: - /// **'Log in with QR code'** + /// **'Sign in with QR code'** String get loginSignInWithQr; /// No description provided for @loginSignInWithToken. /// /// In en, this message translates to: - /// **'Log in with token'** + /// **'Sign in with token'** String get loginSignInWithToken; /// No description provided for @loginSignInWithSessionFile. /// /// In en, this message translates to: - /// **'Log in with session file'** + /// **'Sign in with session file'** String get loginSignInWithSessionFile; /// No description provided for @loginLanguage. diff --git a/lib/l10n/app_localizations_en.dart b/lib/l10n/app_localizations_en.dart index 3f6e67e..5ddbe9b 100644 --- a/lib/l10n/app_localizations_en.dart +++ b/lib/l10n/app_localizations_en.dart @@ -9,7 +9,7 @@ class AppLocalizationsEn extends AppLocalizations { AppLocalizationsEn([String locale = 'en']) : super(locale); @override - String get loginTitle => 'Log in to Komet'; + String get loginTitle => 'Sign in to Komet'; @override String get loginSubtitle => @@ -28,10 +28,13 @@ class AppLocalizationsEn extends AppLocalizations { String get loginOtherSignInMethods => 'Other sign-in methods'; @override - String get loginTermsLink => 'Terms of Use «Komet»'; + String get loginTermsIntro => 'By continuing, you agree to \n'; @override - String get loginTermsOfUse => 'Terms of Use «Komet»'; + String get loginTermsLink => 'the terms of use'; + + @override + String get loginTermsOfUse => 'Terms of use'; @override String get loginConfirmPhoneTitle => 'Is this the correct number?'; @@ -43,8 +46,7 @@ class AppLocalizationsEn extends AppLocalizations { String get loginDone => 'Done'; @override - String get loginReadTermsNotification => - 'Please read the Terms of Use «Komet»'; + String get loginReadTermsNotification => 'Please read the terms of use first'; @override String get loginSpoofRedacted => 'Spoof redaction'; @@ -53,13 +55,13 @@ class AppLocalizationsEn extends AppLocalizations { String get loginProxy => 'Proxy'; @override - String get loginSignInWithQr => 'Log in with QR code'; + String get loginSignInWithQr => 'Sign in with QR code'; @override - String get loginSignInWithToken => 'Log in with token'; + String get loginSignInWithToken => 'Sign in with token'; @override - String get loginSignInWithSessionFile => 'Log in with session file'; + String get loginSignInWithSessionFile => 'Sign in with session file'; @override String get loginLanguage => 'Language'; diff --git a/lib/l10n/app_localizations_ru.dart b/lib/l10n/app_localizations_ru.dart index 63d6d7d..e63e96d 100644 --- a/lib/l10n/app_localizations_ru.dart +++ b/lib/l10n/app_localizations_ru.dart @@ -28,10 +28,13 @@ class AppLocalizationsRu extends AppLocalizations { String get loginOtherSignInMethods => 'Другие способы входа'; @override - String get loginTermsLink => 'Условия использования «Komet»'; + String get loginTermsIntro => 'Продолжая, вы соглашаетесь с \n'; @override - String get loginTermsOfUse => 'Условия использования «Komet»'; + String get loginTermsLink => 'пользовательскими соглашениями'; + + @override + String get loginTermsOfUse => 'Условия использования'; @override String get loginConfirmPhoneTitle => 'Это правильный номер?'; @@ -44,7 +47,7 @@ class AppLocalizationsRu extends AppLocalizations { @override String get loginReadTermsNotification => - 'Сначала прочитайте условия использования «Komet»'; + 'Сначала прочитайте условия использования'; @override String get loginSpoofRedacted => 'Подделка спуфа'; diff --git a/lib/l10n/app_ru.arb b/lib/l10n/app_ru.arb index 49ded61..a53ed02 100644 --- a/lib/l10n/app_ru.arb +++ b/lib/l10n/app_ru.arb @@ -7,12 +7,12 @@ "loginPhoneHint": "(000) 000-00-00", "loginOtherSignInMethods": "Другие способы входа", "loginTermsIntro": "Продолжая, вы соглашаетесь с \n", - "loginTermsLink": "Условия использования «Komet»", - "loginTermsOfUse": "Условия использования «Komet»", + "loginTermsLink": "пользовательскими соглашениями", + "loginTermsOfUse": "Условия использования", "loginConfirmPhoneTitle": "Это правильный номер?", "loginEdit": "Изменить", "loginDone": "Готово", - "loginReadTermsNotification": "Сначала прочитайте условия использования «Komet»", + "loginReadTermsNotification": "Сначала прочитайте условия использования", "loginSpoofRedacted": "Подделка спуфа", "loginProxy": "Прокси", "loginSignInWithQr": "По QR code", diff --git a/pubspec.lock b/pubspec.lock index acfb34b..62a257f 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -530,14 +530,6 @@ packages: description: flutter source: sdk version: "0.0.0" - smart_auth: - dependency: "direct main" - description: - name: smart_auth - sha256: a536423c50d71e9a311d16027346634d0deadd07dafc5b5606b46719cf6fb2b6 - url: "https://pub.dev" - source: hosted - version: "3.2.0" source_span: dependency: transitive description: diff --git a/pubspec.yaml b/pubspec.yaml index 7af58b7..0341c9a 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -53,7 +53,6 @@ dependencies: shared_preferences: ^2.5.4 package_info_plus: ^9.0.1 mobile_scanner: ^7.2.0 - smart_auth: ^3.2.0 dev_dependencies: flutter_test: