Skip to content

Commit

Permalink
Merge pull request #1228 from ImranR98/dev
Browse files Browse the repository at this point in the history
 Save Search Preferences (#1226)
  • Loading branch information
ImranR98 authored Jan 1, 2024
2 parents c032808 + 5d9645e commit 4f42b5a
Show file tree
Hide file tree
Showing 3 changed files with 23 additions and 5 deletions.
5 changes: 4 additions & 1 deletion lib/pages/add_app.dart
Original file line number Diff line number Diff line change
Expand Up @@ -286,10 +286,14 @@ class AddAppPageState extends State<AddAppPage> {
selectedByDefault: true,
onlyOneSelectionAllowed: false,
titlesAreLinks: false,
deselectThese: settingsProvider.searchDeselected,
);
}) ??
[];
if (searchSources.isNotEmpty) {
settingsProvider.searchDeselected = sourceStrings.keys
.where((s) => !searchSources.contains(s))
.toList();
var results = await Future.wait(sourceProvider.sources
.where((e) => searchSources.contains(e.name))
.map((e) async {
Expand All @@ -306,7 +310,6 @@ class AddAppPageState extends State<AddAppPage> {
}
}));

// .then((results) async {
// Interleave results instead of simple reduce
Map<String, List<String>> res = {};
var si = 0;
Expand Down
14 changes: 10 additions & 4 deletions lib/pages/import_export.dart
Original file line number Diff line number Diff line change
Expand Up @@ -604,11 +604,13 @@ class SelectionModal extends StatefulWidget {
this.selectedByDefault = true,
this.onlyOneSelectionAllowed = false,
this.titlesAreLinks = true,
this.title});
this.title,
this.deselectThese = const []});

String? title;
Map<String, List<String>> entries;
bool selectedByDefault;
List<String> deselectThese;
bool onlyOneSelectionAllowed;
bool titlesAreLinks;

Expand All @@ -622,9 +624,13 @@ class _SelectionModalState extends State<SelectionModal> {
@override
void initState() {
super.initState();
for (var url in widget.entries.entries) {
entrySelections.putIfAbsent(url,
() => widget.selectedByDefault && !widget.onlyOneSelectionAllowed);
for (var entry in widget.entries.entries) {
entrySelections.putIfAbsent(
entry,
() =>
widget.selectedByDefault &&
!widget.onlyOneSelectionAllowed &&
!widget.deselectThese.contains(entry.key));
}
if (widget.selectedByDefault && widget.onlyOneSelectionAllowed) {
selectOnlyOne(widget.entries.entries.first.key);
Expand Down
9 changes: 9 additions & 0 deletions lib/providers/settings_provider.dart
Original file line number Diff line number Diff line change
Expand Up @@ -446,4 +446,13 @@ class SettingsProvider with ChangeNotifier {
prefs?.setBool('parallelDownloads', val);
notifyListeners();
}

List<String> get searchDeselected {
return prefs?.getStringList('searchDeselected') ?? [];
}

set searchDeselected(List<String> list) {
prefs?.setStringList('searchDeselected', list);
notifyListeners();
}
}

0 comments on commit 4f42b5a

Please sign in to comment.