From 4c53b58fd8db3bf84e28598677f30d1d461b6738 Mon Sep 17 00:00:00 2001 From: Imran Remtulla Date: Sat, 18 Nov 2023 14:53:43 -0500 Subject: [PATCH] Fix broken thrid-party f-droid search (#1094) --- lib/pages/import_export.dart | 3 ++- lib/providers/apps_provider.dart | 6 ++++-- lib/providers/source_provider.dart | 5 +++-- 3 files changed, 9 insertions(+), 5 deletions(-) diff --git a/lib/pages/import_export.dart b/lib/pages/import_export.dart index f99efb5..d98255f 100644 --- a/lib/pages/import_export.dart +++ b/lib/pages/import_export.dart @@ -214,7 +214,8 @@ class _ImportExportPageState extends State { ); }); if (selectedUrls != null && selectedUrls.isNotEmpty) { - var errors = await appsProvider.addAppsByURL(selectedUrls); + var errors = await appsProvider.addAppsByURL(selectedUrls, + sourceOverride: source); if (errors.isEmpty) { // ignore: use_build_context_synchronously showMessage( diff --git a/lib/providers/apps_provider.dart b/lib/providers/apps_provider.dart index d4085d6..ae0e992 100644 --- a/lib/providers/apps_provider.dart +++ b/lib/providers/apps_provider.dart @@ -1217,9 +1217,11 @@ class AppsProvider with ChangeNotifier { super.dispose(); } - Future>> addAppsByURL(List urls) async { + Future>> addAppsByURL(List urls, + {AppSource? sourceOverride}) async { List results = await SourceProvider().getAppsByURLNaive(urls, - alreadyAddedUrls: apps.values.map((e) => e.app.url).toList()); + alreadyAddedUrls: apps.values.map((e) => e.app.url).toList(), + sourceOverride: sourceOverride); List pps = results[0]; Map errorsMap = results[1]; for (var app in pps) { diff --git a/lib/providers/source_provider.dart b/lib/providers/source_provider.dart index 5736027..f31aa80 100644 --- a/lib/providers/source_provider.dart +++ b/lib/providers/source_provider.dart @@ -706,7 +706,8 @@ class SourceProvider { // Returns errors in [results, errors] instead of throwing them Future> getAppsByURLNaive(List urls, - {List alreadyAddedUrls = const []}) async { + {List alreadyAddedUrls = const [], + AppSource? sourceOverride}) async { List apps = []; Map errors = {}; for (var url in urls) { @@ -714,7 +715,7 @@ class SourceProvider { if (alreadyAddedUrls.contains(url)) { throw ObtainiumError(tr('appAlreadyAdded')); } - var source = getSource(url); + var source = sourceOverride ?? getSource(url); apps.add(await getApp( source, url,