diff --git a/lib/app_sources/farsroid.dart b/lib/app_sources/farsroid.dart index 6f6e0cd..c4faece 100644 --- a/lib/app_sources/farsroid.dart +++ b/lib/app_sources/farsroid.dart @@ -1,7 +1,9 @@ import 'dart:convert'; +import 'package:easy_localization/easy_localization.dart'; import 'package:html/parser.dart'; import 'package:obtainium/app_sources/html.dart'; +import 'package:obtainium/components/generated_form.dart'; import 'package:obtainium/custom_errors.dart'; import 'package:obtainium/providers/source_provider.dart'; @@ -10,6 +12,16 @@ class Farsroid extends AppSource { hosts = ['farsroid.com']; name = 'Farsroid'; naiveStandardVersionDetection = true; + + additionalSourceAppSpecificSettingFormItems = [ + [ + GeneratedFormSwitch( + 'useFirstApkOfVersion', + label: tr('useFirstApkOfVersion'), + defaultValue: true, + ), + ], + ]; } @override @@ -64,6 +76,16 @@ class Farsroid extends AppSource { additionalSettings, )).map((l) => MapEntry(Uri.parse(l.key).pathSegments.last, l.key)).toList(); + if (additionalSettings['useFirstApkOfVersion'] == true) { + apkLinks = apkLinks + .where( + (l) => l.key.toLowerCase().startsWith( + '$appName-$version'.toLowerCase(), + ), + ) + .toList(); + } + if (apkLinks.isEmpty) { throw NoAPKError(); }