некое оло
This commit is contained in:
@@ -18,10 +18,9 @@ class SpoofingService {
|
|||||||
'locale': prefs.getString('spoof_locale'),
|
'locale': prefs.getString('spoof_locale'),
|
||||||
'device_id': prefs.getString('spoof_deviceid'),
|
'device_id': prefs.getString('spoof_deviceid'),
|
||||||
'device_type': prefs.getString('spoof_devicetype'),
|
'device_type': prefs.getString('spoof_devicetype'),
|
||||||
'app_version': prefs.getString('spoof_appversion') ?? hardcodedAppVersion,
|
'app_version': hardcodedAppVersion,
|
||||||
'arch': prefs.getString('spoof_arch') ?? 'arm64-v8a',
|
'arch': prefs.getString('spoof_arch') ?? 'arm64-v8a',
|
||||||
'build_number':
|
'build_number': hardcodedBuildNumber,
|
||||||
prefs.getInt('spoof_buildnumber') ?? hardcodedBuildNumber,
|
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -23,8 +23,7 @@ class SpoofScreen extends StatefulWidget {
|
|||||||
|
|
||||||
class _SpoofScreenState extends State<SpoofScreen> {
|
class _SpoofScreenState extends State<SpoofScreen> {
|
||||||
static const String _hardcodedVersion = SpoofingService.hardcodedAppVersion;
|
static const String _hardcodedVersion = SpoofingService.hardcodedAppVersion;
|
||||||
static const int _hardcodedBuildNumber =
|
static const int _hardcodedBuildNumber = SpoofingService.hardcodedBuildNumber;
|
||||||
SpoofingService.hardcodedBuildNumber;
|
|
||||||
|
|
||||||
final _random = Random();
|
final _random = Random();
|
||||||
final _deviceNameController = TextEditingController();
|
final _deviceNameController = TextEditingController();
|
||||||
@@ -219,7 +218,6 @@ class _SpoofScreenState extends State<SpoofScreen> {
|
|||||||
'device_id': prefs.getString('spoof_deviceid') ?? '',
|
'device_id': prefs.getString('spoof_deviceid') ?? '',
|
||||||
'device_type': prefs.getString('spoof_devicetype') ?? 'ANDROID',
|
'device_type': prefs.getString('spoof_devicetype') ?? 'ANDROID',
|
||||||
'arch': prefs.getString('spoof_arch') ?? '',
|
'arch': prefs.getString('spoof_arch') ?? '',
|
||||||
'build_number': prefs.getInt('spoof_buildnumber')?.toString() ?? '',
|
|
||||||
};
|
};
|
||||||
|
|
||||||
final newValues = {
|
final newValues = {
|
||||||
@@ -231,13 +229,8 @@ class _SpoofScreenState extends State<SpoofScreen> {
|
|||||||
'device_id': _deviceIdController.text,
|
'device_id': _deviceIdController.text,
|
||||||
'device_type': _selectedDeviceType,
|
'device_type': _selectedDeviceType,
|
||||||
'arch': _selectedArch,
|
'arch': _selectedArch,
|
||||||
'build_number': _buildNumberController.text,
|
|
||||||
};
|
};
|
||||||
|
|
||||||
final oldAppVersion =
|
|
||||||
prefs.getString('spoof_appversion') ?? _hardcodedVersion;
|
|
||||||
final newAppVersion = _appVersionController.text;
|
|
||||||
|
|
||||||
bool otherDataChanged = false;
|
bool otherDataChanged = false;
|
||||||
for (final key in oldValues.keys) {
|
for (final key in oldValues.keys) {
|
||||||
if (oldValues[key] != newValues[key]) {
|
if (oldValues[key] != newValues[key]) {
|
||||||
@@ -246,33 +239,7 @@ class _SpoofScreenState extends State<SpoofScreen> {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
final appVersionChanged = oldAppVersion != newAppVersion;
|
if (!otherDataChanged) {
|
||||||
final isChangingAwayFromHardcoded = newAppVersion != _hardcodedVersion;
|
|
||||||
|
|
||||||
if (appVersionChanged && isChangingAwayFromHardcoded) {
|
|
||||||
if (!mounted) return;
|
|
||||||
final l10n = AppLocalizations.of(context)!;
|
|
||||||
final confirmed = await showDialog<bool>(
|
|
||||||
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) {
|
|
||||||
await _saveAllData(prefs);
|
await _saveAllData(prefs);
|
||||||
if (mounted) Navigator.of(context).pop();
|
if (mounted) Navigator.of(context).pop();
|
||||||
return;
|
return;
|
||||||
@@ -329,12 +296,7 @@ class _SpoofScreenState extends State<SpoofScreen> {
|
|||||||
await prefs.setString('spoof_locale', _localeController.text);
|
await prefs.setString('spoof_locale', _localeController.text);
|
||||||
await prefs.setString('spoof_deviceid', _deviceIdController.text);
|
await prefs.setString('spoof_deviceid', _deviceIdController.text);
|
||||||
await prefs.setString('spoof_devicetype', _selectedDeviceType);
|
await prefs.setString('spoof_devicetype', _selectedDeviceType);
|
||||||
await prefs.setString('spoof_appversion', _appVersionController.text);
|
|
||||||
await prefs.setString('spoof_arch', _selectedArch);
|
await prefs.setString('spoof_arch', _selectedArch);
|
||||||
await prefs.setInt(
|
|
||||||
'spoof_buildnumber',
|
|
||||||
int.tryParse(_buildNumberController.text) ?? _hardcodedBuildNumber,
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void _generateNewDeviceId() {
|
void _generateNewDeviceId() {
|
||||||
@@ -360,10 +322,7 @@ class _SpoofScreenState extends State<SpoofScreen> {
|
|||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
final l10n = AppLocalizations.of(context)!;
|
final l10n = AppLocalizations.of(context)!;
|
||||||
return Scaffold(
|
return Scaffold(
|
||||||
appBar: AppBar(
|
appBar: AppBar(title: Text(l10n.spoofScreenTitle), centerTitle: true),
|
||||||
title: Text(l10n.spoofScreenTitle),
|
|
||||||
centerTitle: true,
|
|
||||||
),
|
|
||||||
body: _isLoading
|
body: _isLoading
|
||||||
? const Center(child: CircularProgressIndicator())
|
? const Center(child: CircularProgressIndicator())
|
||||||
: SingleChildScrollView(
|
: SingleChildScrollView(
|
||||||
@@ -642,18 +601,21 @@ class _SpoofScreenState extends State<SpoofScreen> {
|
|||||||
TextField(
|
TextField(
|
||||||
controller: _deviceIdController,
|
controller: _deviceIdController,
|
||||||
decoration:
|
decoration:
|
||||||
_inputDecoration(l10n.spoofFieldDeviceId, Icons.tag_outlined)
|
_inputDecoration(
|
||||||
.copyWith(
|
l10n.spoofFieldDeviceId,
|
||||||
suffixIcon: IconButton(
|
Icons.tag_outlined,
|
||||||
icon: const Icon(Icons.autorenew_outlined),
|
).copyWith(
|
||||||
tooltip: l10n.spoofRegenerateIdTooltip,
|
suffixIcon: IconButton(
|
||||||
onPressed: _generateNewDeviceId,
|
icon: const Icon(Icons.autorenew_outlined),
|
||||||
),
|
tooltip: l10n.spoofRegenerateIdTooltip,
|
||||||
),
|
onPressed: _generateNewDeviceId,
|
||||||
|
),
|
||||||
|
),
|
||||||
),
|
),
|
||||||
const SizedBox(height: 16),
|
const SizedBox(height: 16),
|
||||||
TextField(
|
TextField(
|
||||||
controller: _appVersionController,
|
controller: _appVersionController,
|
||||||
|
enabled: false,
|
||||||
decoration: _inputDecoration(
|
decoration: _inputDecoration(
|
||||||
l10n.spoofFieldAppVersion,
|
l10n.spoofFieldAppVersion,
|
||||||
Icons.info_outline_rounded,
|
Icons.info_outline_rounded,
|
||||||
@@ -662,6 +624,7 @@ class _SpoofScreenState extends State<SpoofScreen> {
|
|||||||
const SizedBox(height: 16),
|
const SizedBox(height: 16),
|
||||||
TextField(
|
TextField(
|
||||||
controller: _buildNumberController,
|
controller: _buildNumberController,
|
||||||
|
enabled: false,
|
||||||
keyboardType: TextInputType.number,
|
keyboardType: TextInputType.number,
|
||||||
decoration: _inputDecoration(
|
decoration: _inputDecoration(
|
||||||
l10n.spoofFieldBuildNumber,
|
l10n.spoofFieldBuildNumber,
|
||||||
@@ -693,8 +656,7 @@ class _SpoofScreenState extends State<SpoofScreen> {
|
|||||||
_ChipOption('arm64', 'arm64', Icons.memory_outlined),
|
_ChipOption('arm64', 'arm64', Icons.memory_outlined),
|
||||||
],
|
],
|
||||||
selected: _selectedArch,
|
selected: _selectedArch,
|
||||||
onSelected: (value) =>
|
onSelected: (value) => setState(() => _selectedArch = value),
|
||||||
setState(() => _selectedArch = value),
|
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
|
|||||||
Reference in New Issue
Block a user