From 8087d55f043d9859b3f699943bb353eebe569e3f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=92=D0=B0=D1=88=D0=B5=20=D0=98=D0=BC=D1=8F?= Date: Sun, 12 Apr 2026 12:18:12 +0700 Subject: [PATCH] =?UTF-8?q?=D0=BD=D0=B5=D0=BA=D0=BE=D0=B5=20=D0=BE=D0=BB?= =?UTF-8?q?=D0=BE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/core/storage/spoofing_service.dart | 5 +- .../screens/profile/spoof_screen.dart | 70 +++++-------------- 2 files changed, 18 insertions(+), 57 deletions(-) diff --git a/lib/core/storage/spoofing_service.dart b/lib/core/storage/spoofing_service.dart index 21a766d..b58cce2 100644 --- a/lib/core/storage/spoofing_service.dart +++ b/lib/core/storage/spoofing_service.dart @@ -18,10 +18,9 @@ class SpoofingService { 'locale': prefs.getString('spoof_locale'), 'device_id': prefs.getString('spoof_deviceid'), 'device_type': prefs.getString('spoof_devicetype'), - 'app_version': prefs.getString('spoof_appversion') ?? hardcodedAppVersion, + 'app_version': hardcodedAppVersion, 'arch': prefs.getString('spoof_arch') ?? 'arm64-v8a', - 'build_number': - prefs.getInt('spoof_buildnumber') ?? hardcodedBuildNumber, + 'build_number': hardcodedBuildNumber, }; } } diff --git a/lib/frontend/screens/profile/spoof_screen.dart b/lib/frontend/screens/profile/spoof_screen.dart index b8bd257..ff16a0c 100644 --- a/lib/frontend/screens/profile/spoof_screen.dart +++ b/lib/frontend/screens/profile/spoof_screen.dart @@ -23,8 +23,7 @@ class SpoofScreen extends StatefulWidget { class _SpoofScreenState extends State { static const String _hardcodedVersion = SpoofingService.hardcodedAppVersion; - static const int _hardcodedBuildNumber = - SpoofingService.hardcodedBuildNumber; + static const int _hardcodedBuildNumber = SpoofingService.hardcodedBuildNumber; final _random = Random(); final _deviceNameController = TextEditingController(); @@ -219,7 +218,6 @@ class _SpoofScreenState extends State { 'device_id': prefs.getString('spoof_deviceid') ?? '', 'device_type': prefs.getString('spoof_devicetype') ?? 'ANDROID', 'arch': prefs.getString('spoof_arch') ?? '', - 'build_number': prefs.getInt('spoof_buildnumber')?.toString() ?? '', }; final newValues = { @@ -231,13 +229,8 @@ class _SpoofScreenState extends State { 'device_id': _deviceIdController.text, 'device_type': _selectedDeviceType, 'arch': _selectedArch, - 'build_number': _buildNumberController.text, }; - final oldAppVersion = - prefs.getString('spoof_appversion') ?? _hardcodedVersion; - final newAppVersion = _appVersionController.text; - bool otherDataChanged = false; for (final key in oldValues.keys) { if (oldValues[key] != newValues[key]) { @@ -246,33 +239,7 @@ class _SpoofScreenState extends State { } } - final appVersionChanged = oldAppVersion != newAppVersion; - final isChangingAwayFromHardcoded = newAppVersion != _hardcodedVersion; - - if (appVersionChanged && isChangingAwayFromHardcoded) { - if (!mounted) return; - final l10n = AppLocalizations.of(context)!; - final confirmed = await showDialog( - context: context, - builder: (context) => AlertDialog( - title: Text(l10n.spoofDialogUnsureTitle), - content: Text(l10n.spoofDialogUnsureContent), - actions: [ - TextButton( - onPressed: () => Navigator.of(context).pop(false), - child: Text(l10n.spoofDialogCancel), - ), - FilledButton( - onPressed: () => Navigator.of(context).pop(true), - child: Text(l10n.spoofDialogYes), - ), - ], - ), - ); - if (confirmed != true) return; - } - - if (appVersionChanged && !otherDataChanged) { + if (!otherDataChanged) { await _saveAllData(prefs); if (mounted) Navigator.of(context).pop(); return; @@ -329,12 +296,7 @@ class _SpoofScreenState extends State { await prefs.setString('spoof_locale', _localeController.text); await prefs.setString('spoof_deviceid', _deviceIdController.text); await prefs.setString('spoof_devicetype', _selectedDeviceType); - await prefs.setString('spoof_appversion', _appVersionController.text); await prefs.setString('spoof_arch', _selectedArch); - await prefs.setInt( - 'spoof_buildnumber', - int.tryParse(_buildNumberController.text) ?? _hardcodedBuildNumber, - ); } void _generateNewDeviceId() { @@ -360,10 +322,7 @@ class _SpoofScreenState extends State { Widget build(BuildContext context) { final l10n = AppLocalizations.of(context)!; return Scaffold( - appBar: AppBar( - title: Text(l10n.spoofScreenTitle), - centerTitle: true, - ), + appBar: AppBar(title: Text(l10n.spoofScreenTitle), centerTitle: true), body: _isLoading ? const Center(child: CircularProgressIndicator()) : SingleChildScrollView( @@ -642,18 +601,21 @@ class _SpoofScreenState extends State { TextField( controller: _deviceIdController, decoration: - _inputDecoration(l10n.spoofFieldDeviceId, Icons.tag_outlined) - .copyWith( - suffixIcon: IconButton( - icon: const Icon(Icons.autorenew_outlined), - tooltip: l10n.spoofRegenerateIdTooltip, - onPressed: _generateNewDeviceId, - ), - ), + _inputDecoration( + l10n.spoofFieldDeviceId, + Icons.tag_outlined, + ).copyWith( + suffixIcon: IconButton( + icon: const Icon(Icons.autorenew_outlined), + tooltip: l10n.spoofRegenerateIdTooltip, + onPressed: _generateNewDeviceId, + ), + ), ), const SizedBox(height: 16), TextField( controller: _appVersionController, + enabled: false, decoration: _inputDecoration( l10n.spoofFieldAppVersion, Icons.info_outline_rounded, @@ -662,6 +624,7 @@ class _SpoofScreenState extends State { const SizedBox(height: 16), TextField( controller: _buildNumberController, + enabled: false, keyboardType: TextInputType.number, decoration: _inputDecoration( l10n.spoofFieldBuildNumber, @@ -693,8 +656,7 @@ class _SpoofScreenState extends State { _ChipOption('arm64', 'arm64', Icons.memory_outlined), ], selected: _selectedArch, - onSelected: (value) => - setState(() => _selectedArch = value), + onSelected: (value) => setState(() => _selectedArch = value), ), ], ),