diff --git a/lib/app_sources/fdroidrepo.dart b/lib/app_sources/fdroidrepo.dart index 2872459..a1eb51a 100644 --- a/lib/app_sources/fdroidrepo.dart +++ b/lib/app_sources/fdroidrepo.dart @@ -86,6 +86,27 @@ class FDroidRepo extends AppSource { } } + @override + void runOnAddAppInputChange(String userInput) { + this.additionalSourceAppSpecificSettingFormItems = + this.additionalSourceAppSpecificSettingFormItems.map((row) { + row = row.map((item) { + if (item.key == 'appIdOrName') { + try { + var appId = Uri.parse(userInput).queryParameters['appId']; + if (appId != null && item is GeneratedFormTextField) { + item.required = false; + } + } catch (e) { + // + } + } + return item; + }).toList(); + return row; + }).toList(); + } + @override App endOfGetAppChanges(App app) { var uri = Uri.parse(app.url); diff --git a/lib/pages/add_app.dart b/lib/pages/add_app.dart index 3da2829..1b35f79 100644 --- a/lib/pages/add_app.dart +++ b/lib/pages/add_app.dart @@ -71,6 +71,7 @@ class AddAppPageState extends State { if (pickedSource.runtimeType != source.runtimeType || (prevHost != null && prevHost != source?.hosts[0])) { pickedSource = source; + pickedSource?.runOnAddAppInputChange(userInput); additionalSettings = source != null ? getDefaultValuesFromFormItems( source.combinedAppSpecificSettingFormItems) diff --git a/lib/providers/source_provider.dart b/lib/providers/source_provider.dart index fded867..9de017f 100644 --- a/lib/providers/source_provider.dart +++ b/lib/providers/source_provider.dart @@ -463,6 +463,10 @@ abstract class AppSource { } } + void runOnAddAppInputChange(String inputUrl) { + // + } + String sourceSpecificStandardizeURL(String url) { throw NotImplementedError(); }