fix: patch selection while scrolling

This commit is contained in:
Alberto Ponces
2022-08-17 23:06:02 +01:00
parent cff27872eb
commit 492aa848ff
5 changed files with 23 additions and 22 deletions

View File

@ -62,10 +62,7 @@ class _PatchesSelectorViewState extends State<PatchesSelectorView> {
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(12),
),
onPressed: () {
model.selectPatches(patches);
Navigator.of(context).pop();
},
onPressed: () => Navigator.of(context).pop(),
child: I18nText('patchesSelectorView.fabButton'),
),
],

View File

@ -22,17 +22,17 @@ class PatchesSelectorViewModel extends BaseViewModel {
patches = await patcherAPI.getFilteredPatches(app);
}
void selectPatches(List<PatchItem> patchItems) {
selectedPatches.clear();
for (PatchItem item in patchItems) {
if (item.isSelected) {
Patch patch =
patches.firstWhere((element) => element.name == item.name);
if (!selectedPatches.contains(patch)) {
selectedPatches.add(patch);
}
}
void selectPatch(PatchItem item) {
Patch patch = locator<PatchesSelectorViewModel>()
.patches
.firstWhere((p) => p.name == item.name);
if (item.isSelected &&
!locator<PatchesSelectorViewModel>().selectedPatches.contains(patch)) {
locator<PatchesSelectorViewModel>().selectedPatches.add(patch);
} else {
locator<PatchesSelectorViewModel>().selectedPatches.remove(patch);
}
locator<PatchesSelectorViewModel>().notifyListeners();
locator<PatcherViewModel>().notifyListeners();
}
}