mirror of
https://github.com/revanced/revanced-manager.git
synced 2025-06-12 12:47:37 +02:00
feat: disable changing patches selection by default (#1132)
Co-authored-by: oSumAtrIX <johan.melkonyan1@web.de>
This commit is contained in:
@ -19,6 +19,7 @@ class PatchItem extends StatefulWidget {
|
||||
required this.isNew,
|
||||
required this.isSelected,
|
||||
required this.onChanged,
|
||||
required this.isChangeEnabled,
|
||||
this.child,
|
||||
}) : super(key: key);
|
||||
final String name;
|
||||
@ -30,6 +31,7 @@ class PatchItem extends StatefulWidget {
|
||||
final bool isNew;
|
||||
bool isSelected;
|
||||
final Function(bool) onChanged;
|
||||
final bool isChangeEnabled;
|
||||
final Widget? child;
|
||||
final toast = locator<Toast>();
|
||||
final _managerAPI = locator<ManagerAPI>();
|
||||
@ -58,11 +60,13 @@ class _PatchItemState extends State<PatchItem> {
|
||||
!widget._managerAPI.areExperimentalPatchesEnabled()) {
|
||||
widget.isSelected = false;
|
||||
widget.toast.showBottom('patchItem.unsupportedPatchVersion');
|
||||
} else {
|
||||
} else if (widget.isChangeEnabled) {
|
||||
widget.isSelected = !widget.isSelected;
|
||||
}
|
||||
});
|
||||
widget.onChanged(widget.isSelected);
|
||||
if (!widget.isUnsupported || widget._managerAPI.areExperimentalPatchesEnabled()) {
|
||||
widget.onChanged(widget.isSelected);
|
||||
}
|
||||
},
|
||||
child: Column(
|
||||
children: <Widget>[
|
||||
@ -124,11 +128,13 @@ class _PatchItemState extends State<PatchItem> {
|
||||
widget.toast.showBottom(
|
||||
'patchItem.unsupportedPatchVersion',
|
||||
);
|
||||
} else {
|
||||
} else if (widget.isChangeEnabled) {
|
||||
widget.isSelected = newValue!;
|
||||
}
|
||||
});
|
||||
widget.onChanged(widget.isSelected);
|
||||
if (!widget.isUnsupported || widget._managerAPI.areExperimentalPatchesEnabled()) {
|
||||
widget.onChanged(widget.isSelected);
|
||||
}
|
||||
},
|
||||
),
|
||||
),
|
||||
|
@ -5,6 +5,7 @@ import 'package:flutter_i18n/widgets/I18nText.dart';
|
||||
import 'package:revanced_manager/ui/views/settings/settingsFragment/settings_manage_api_url.dart';
|
||||
import 'package:revanced_manager/ui/views/settings/settingsFragment/settings_manage_sources.dart';
|
||||
import 'package:revanced_manager/ui/views/settings/settings_viewmodel.dart';
|
||||
import 'package:revanced_manager/ui/widgets/settingsView/settings_enable_patches_selection.dart';
|
||||
import 'package:revanced_manager/ui/widgets/settingsView/settings_auto_update_patches.dart';
|
||||
import 'package:revanced_manager/ui/widgets/settingsView/settings_experimental_patches.dart';
|
||||
import 'package:revanced_manager/ui/widgets/settingsView/settings_experimental_universal_patches.dart';
|
||||
@ -25,6 +26,7 @@ class SAdvancedSection extends StatelessWidget {
|
||||
SManageSourcesUI(),
|
||||
// SManageKeystorePasswordUI(),
|
||||
SAutoUpdatePatches(),
|
||||
SEnablePatchesSelection(),
|
||||
SExperimentalUniversalPatches(),
|
||||
SExperimentalPatches(),
|
||||
ListTile(
|
||||
|
@ -0,0 +1,37 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_i18n/widgets/I18nText.dart';
|
||||
import 'package:revanced_manager/ui/views/settings/settings_viewmodel.dart';
|
||||
|
||||
class SEnablePatchesSelection extends StatefulWidget {
|
||||
const SEnablePatchesSelection({super.key});
|
||||
|
||||
@override
|
||||
State<SEnablePatchesSelection> createState() => _SEnablePatchesSelectionState();
|
||||
}
|
||||
|
||||
final _settingsViewModel = SettingsViewModel();
|
||||
|
||||
class _SEnablePatchesSelectionState extends State<SEnablePatchesSelection> {
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return SwitchListTile(
|
||||
contentPadding: const EdgeInsets.symmetric(horizontal: 20.0),
|
||||
title: I18nText(
|
||||
'settingsView.enablePatchesSelectionLabel',
|
||||
child: const Text(
|
||||
'',
|
||||
style: TextStyle(
|
||||
fontSize: 20,
|
||||
fontWeight: FontWeight.w500,
|
||||
),
|
||||
),
|
||||
),
|
||||
subtitle: I18nText('settingsView.enablePatchesSelectionHint'),
|
||||
value: _settingsViewModel.isPatchesChangeEnabled(),
|
||||
onChanged: (value) async {
|
||||
await _settingsViewModel.showPatchesChangeEnableDialog(value, context);
|
||||
setState(() {});
|
||||
},
|
||||
);
|
||||
}
|
||||
}
|
@ -43,7 +43,7 @@ class SExportSection extends StatelessWidget {
|
||||
),
|
||||
),
|
||||
subtitle: I18nText('settingsView.importPatchesHint'),
|
||||
onTap: () => _settingsViewModel.importPatches(),
|
||||
onTap: () => _settingsViewModel.importPatches(context),
|
||||
),
|
||||
ListTile(
|
||||
contentPadding: const EdgeInsets.symmetric(horizontal: 20.0),
|
||||
@ -73,10 +73,10 @@ class SExportSection extends StatelessWidget {
|
||||
),
|
||||
),
|
||||
subtitle: I18nText('settingsView.importKeystoreHint'),
|
||||
onTap: () async{
|
||||
onTap: () async {
|
||||
await _settingsViewModel.importKeystore();
|
||||
final sManageKeystorePassword = SManageKeystorePassword();
|
||||
if(context.mounted){
|
||||
if (context.mounted) {
|
||||
sManageKeystorePassword.showKeystoreDialog(context);
|
||||
}
|
||||
},
|
||||
|
Reference in New Issue
Block a user