diff --git a/lib/app_sources/jenkins.dart b/lib/app_sources/jenkins.dart index a695b68..366b76d 100644 --- a/lib/app_sources/jenkins.dart +++ b/lib/app_sources/jenkins.dart @@ -5,6 +5,10 @@ import 'package:obtainium/custom_errors.dart'; import 'package:obtainium/providers/source_provider.dart'; class Jenkins extends AppSource { + Jenkins() { + overrideVersionDetectionFormDefault('releaseDateAsVersion', true); + } + @override String trimJobUrl(String url) { RegExp standardUrlRegEx = RegExp('.*/job/[^/]+'); diff --git a/lib/pages/add_app.dart b/lib/pages/add_app.dart index 768f7e7..a81eb9c 100644 --- a/lib/pages/add_app.dart +++ b/lib/pages/add_app.dart @@ -166,7 +166,9 @@ class _AddAppPageState extends State { if (appsProvider.apps.containsKey(app.id)) { throw ObtainiumError(tr('appAlreadyAdded')); } - if (app.additionalSettings['trackOnly'] == true) { + if (app.additionalSettings['trackOnly'] == true || + app.additionalSettings['versionDetection'] != + 'standardVersionDetection') { app.installedVersion = app.latestVersion; } app.categories = pickedCategories; diff --git a/lib/providers/apps_provider.dart b/lib/providers/apps_provider.dart index 4dd7668..9cc445c 100644 --- a/lib/providers/apps_provider.dart +++ b/lib/providers/apps_provider.dart @@ -212,7 +212,7 @@ class AppsProvider with ChangeNotifier { var fn = file.path.split('/').last; if (fn.startsWith('${app.id}-') && fn.endsWith('.apk') && - fn != fileName) { + fn != downloadedFile.path.split('/').last) { file.delete(); } } diff --git a/lib/providers/source_provider.dart b/lib/providers/source_provider.dart index 211e87f..e27cdd8 100644 --- a/lib/providers/source_provider.dart +++ b/lib/providers/source_provider.dart @@ -320,6 +320,22 @@ abstract class AppSource { name = runtimeType.toString(); } + overrideVersionDetectionFormDefault(String vd, bool disableStandard) { + additionalAppSpecificSourceAgnosticSettingFormItems = + additionalAppSpecificSourceAgnosticSettingFormItems.map((e) { + return e.map((e2) { + if (e2.key == 'versionDetection') { + var item = e2 as GeneratedFormDropdown; + item.defaultValue = vd; + if (disableStandard) { + item.disabledOptKeys = ['standardVersionDetection']; + } + } + return e2; + }).toList(); + }).toList(); + } + String standardizeUrl(String url) { url = preStandardizeUrl(url); if (!hostChanged) { @@ -342,7 +358,7 @@ abstract class AppSource { []; // Some additional data may be needed for Apps regardless of Source - final List> + List> additionalAppSpecificSourceAgnosticSettingFormItems = [ [ GeneratedFormSwitch(