Broke GeneratedFormItem into sub-types

Prep for "chips" input type
This commit is contained in:
Imran Remtulla
2022-12-21 18:23:25 -05:00
parent 3cbaac2f5d
commit 9072862862
21 changed files with 238 additions and 188 deletions

View File

@@ -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) {

View File

@@ -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(

View File

@@ -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) {

View File

@@ -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];

View File

@@ -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) {

View File

@@ -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(

View File

@@ -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) {

View File

@@ -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'));

View File

@@ -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) {

View File

@@ -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();
}