mirror of
				https://github.com/ImranR98/Obtainium.git
				synced 2025-11-03 23:03: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