mirror of
				https://github.com/ImranR98/Obtainium.git
				synced 2025-10-31 21:43:29 +01:00 
			
		
		
		
	Broke GeneratedFormItem into sub-types
Prep for "chips" input type
This commit is contained in:
		| @@ -26,7 +26,7 @@ class APKMirror extends AppSource { | ||||
|   @override | ||||
|   Future<APKDetails> getLatestAPKDetails( | ||||
|     String standardUrl, | ||||
|     Map<String, String> additionalSettings, | ||||
|     Map<String, dynamic> additionalSettings, | ||||
|   ) async { | ||||
|     Response res = await get(Uri.parse('$standardUrl/feed')); | ||||
|     if (res.statusCode == 200) { | ||||
|   | ||||
| @@ -32,7 +32,7 @@ class FDroid extends AppSource { | ||||
|  | ||||
|   @override | ||||
|   String? tryInferringAppId(String standardUrl, | ||||
|       {Map<String, String> additionalSettings = const {}}) { | ||||
|       {Map<String, dynamic> additionalSettings = const {}}) { | ||||
|     return Uri.parse(standardUrl).pathSegments.last; | ||||
|   } | ||||
|  | ||||
| @@ -61,7 +61,7 @@ class FDroid extends AppSource { | ||||
|   @override | ||||
|   Future<APKDetails> getLatestAPKDetails( | ||||
|     String standardUrl, | ||||
|     Map<String, String> additionalSettings, | ||||
|     Map<String, dynamic> additionalSettings, | ||||
|   ) async { | ||||
|     String? appId = tryInferringAppId(standardUrl); | ||||
|     return getAPKUrlsFromFDroidPackagesAPIResponse( | ||||
|   | ||||
| @@ -11,7 +11,7 @@ class FDroidRepo extends AppSource { | ||||
|  | ||||
|     additionalSourceAppSpecificSettingFormItems = [ | ||||
|       [ | ||||
|         GeneratedFormItem('appIdOrName', | ||||
|         GeneratedFormTextField('appIdOrName', | ||||
|             label: tr('appIdOrName'), | ||||
|             hint: tr('reposHaveMultipleApps'), | ||||
|             required: true) | ||||
| @@ -33,7 +33,7 @@ class FDroidRepo extends AppSource { | ||||
|   @override | ||||
|   Future<APKDetails> getLatestAPKDetails( | ||||
|     String standardUrl, | ||||
|     Map<String, String> additionalSettings, | ||||
|     Map<String, dynamic> additionalSettings, | ||||
|   ) async { | ||||
|     String? appIdOrName = additionalSettings['appIdOrName']; | ||||
|     if (appIdOrName == null) { | ||||
|   | ||||
| @@ -13,7 +13,7 @@ class GitHub extends AppSource { | ||||
|     host = 'github.com'; | ||||
|  | ||||
|     additionalSourceSpecificSettingFormItems = [ | ||||
|       GeneratedFormItem('github-creds', | ||||
|       GeneratedFormTextField('github-creds', | ||||
|           label: tr('githubPATLabel'), | ||||
|           required: false, | ||||
|           additionalValidators: [ | ||||
| @@ -51,21 +51,16 @@ class GitHub extends AppSource { | ||||
|  | ||||
|     additionalSourceAppSpecificSettingFormItems = [ | ||||
|       [ | ||||
|         GeneratedFormItem('includePrereleases', | ||||
|             label: tr('includePrereleases'), | ||||
|             type: FormItemType.bool, | ||||
|             defaultValue: '') | ||||
|         GeneratedFormSwitch('includePrereleases', | ||||
|             label: tr('includePrereleases'), defaultValue: false) | ||||
|       ], | ||||
|       [ | ||||
|         GeneratedFormItem('fallbackToOlderReleases', | ||||
|             label: tr('fallbackToOlderReleases'), | ||||
|             type: FormItemType.bool, | ||||
|             defaultValue: 'true') | ||||
|         GeneratedFormSwitch('fallbackToOlderReleases', | ||||
|             label: tr('fallbackToOlderReleases'), defaultValue: true) | ||||
|       ], | ||||
|       [ | ||||
|         GeneratedFormItem('filterReleaseTitlesByRegEx', | ||||
|         GeneratedFormTextField('filterReleaseTitlesByRegEx', | ||||
|             label: tr('filterReleaseTitlesByRegEx'), | ||||
|             type: FormItemType.string, | ||||
|             required: false, | ||||
|             additionalValidators: [ | ||||
|               (value) { | ||||
| @@ -111,13 +106,15 @@ class GitHub extends AppSource { | ||||
|   @override | ||||
|   Future<APKDetails> getLatestAPKDetails( | ||||
|     String standardUrl, | ||||
|     Map<String, String> additionalSettings, | ||||
|     Map<String, dynamic> additionalSettings, | ||||
|   ) async { | ||||
|     var includePrereleases = additionalSettings['includePrereleases'] == 'true'; | ||||
|     var fallbackToOlderReleases = | ||||
|         additionalSettings['fallbackToOlderReleases'] == 'true'; | ||||
|     var regexFilter = | ||||
|         additionalSettings['filterReleaseTitlesByRegEx']?.isNotEmpty == true | ||||
|     bool includePrereleases = additionalSettings['includePrereleases']; | ||||
|     bool fallbackToOlderReleases = | ||||
|         additionalSettings['fallbackToOlderReleases']; | ||||
|     String? regexFilter = | ||||
|         (additionalSettings['filterReleaseTitlesByRegEx'] as String?) | ||||
|                     ?.isNotEmpty == | ||||
|                 true | ||||
|             ? additionalSettings['filterReleaseTitlesByRegEx'] | ||||
|             : null; | ||||
|     Response res = await get(Uri.parse( | ||||
| @@ -150,7 +147,7 @@ class GitHub extends AppSource { | ||||
|           continue; | ||||
|         } | ||||
|         var apkUrls = getReleaseAPKUrls(releases[i]); | ||||
|         if (apkUrls.isEmpty && additionalSettings['trackOnly'] != 'true') { | ||||
|         if (apkUrls.isEmpty && additionalSettings['trackOnly'] != true) { | ||||
|           continue; | ||||
|         } | ||||
|         targetRelease = releases[i]; | ||||
|   | ||||
| @@ -26,7 +26,7 @@ class GitLab extends AppSource { | ||||
|   @override | ||||
|   Future<APKDetails> getLatestAPKDetails( | ||||
|     String standardUrl, | ||||
|     Map<String, String> additionalSettings, | ||||
|     Map<String, dynamic> additionalSettings, | ||||
|   ) async { | ||||
|     Response res = await get(Uri.parse('$standardUrl/-/tags?format=atom')); | ||||
|     if (res.statusCode == 200) { | ||||
|   | ||||
| @@ -23,14 +23,14 @@ class IzzyOnDroid extends AppSource { | ||||
|  | ||||
|   @override | ||||
|   String? tryInferringAppId(String standardUrl, | ||||
|       {Map<String, String> additionalSettings = const {}}) { | ||||
|       {Map<String, dynamic> additionalSettings = const {}}) { | ||||
|     return FDroid().tryInferringAppId(standardUrl); | ||||
|   } | ||||
|  | ||||
|   @override | ||||
|   Future<APKDetails> getLatestAPKDetails( | ||||
|     String standardUrl, | ||||
|     Map<String, String> additionalSettings, | ||||
|     Map<String, dynamic> additionalSettings, | ||||
|   ) async { | ||||
|     String? appId = tryInferringAppId(standardUrl); | ||||
|     return FDroid().getAPKUrlsFromFDroidPackagesAPIResponse( | ||||
|   | ||||
| @@ -25,7 +25,7 @@ class Mullvad extends AppSource { | ||||
|   @override | ||||
|   Future<APKDetails> getLatestAPKDetails( | ||||
|     String standardUrl, | ||||
|     Map<String, String> additionalSettings, | ||||
|     Map<String, dynamic> additionalSettings, | ||||
|   ) async { | ||||
|     Response res = await get(Uri.parse('$standardUrl/en/download/android')); | ||||
|     if (res.statusCode == 200) { | ||||
|   | ||||
| @@ -19,7 +19,7 @@ class Signal extends AppSource { | ||||
|   @override | ||||
|   Future<APKDetails> getLatestAPKDetails( | ||||
|     String standardUrl, | ||||
|     Map<String, String> additionalSettings, | ||||
|     Map<String, dynamic> additionalSettings, | ||||
|   ) async { | ||||
|     Response res = | ||||
|         await get(Uri.parse('https://updates.$host/android/latest.json')); | ||||
|   | ||||
| @@ -24,7 +24,7 @@ class SourceForge extends AppSource { | ||||
|   @override | ||||
|   Future<APKDetails> getLatestAPKDetails( | ||||
|     String standardUrl, | ||||
|     Map<String, String> additionalSettings, | ||||
|     Map<String, dynamic> additionalSettings, | ||||
|   ) async { | ||||
|     Response res = await get(Uri.parse('$standardUrl/rss?path=/')); | ||||
|     if (res.statusCode == 200) { | ||||
|   | ||||
| @@ -10,10 +10,7 @@ class SteamMobile extends AppSource { | ||||
|     host = 'store.steampowered.com'; | ||||
|     name = tr('steam'); | ||||
|     additionalSourceAppSpecificSettingFormItems = [ | ||||
|       [ | ||||
|         GeneratedFormItem('app', | ||||
|             label: tr('app'), required: true, opts: apks.entries.toList()) | ||||
|       ] | ||||
|       [GeneratedFormDropdown('app', apks.entries.toList(), label: tr('app'))] | ||||
|     ]; | ||||
|   } | ||||
|  | ||||
| @@ -30,11 +27,11 @@ class SteamMobile extends AppSource { | ||||
|   @override | ||||
|   Future<APKDetails> getLatestAPKDetails( | ||||
|     String standardUrl, | ||||
|     Map<String, String> additionalSettings, | ||||
|     Map<String, dynamic> additionalSettings, | ||||
|   ) async { | ||||
|     Response res = await get(Uri.parse('https://$host/mobile')); | ||||
|     if (res.statusCode == 200) { | ||||
|       var apkNamePrefix = additionalSettings['app']; | ||||
|       var apkNamePrefix = additionalSettings['app'] as String?; | ||||
|       if (apkNamePrefix == null) { | ||||
|         throw NoReleasesError(); | ||||
|       } | ||||
|   | ||||
		Reference in New Issue
	
	Block a user