From 09b24b36f2bfede25ea6b72d2436d99b3c5ce949 Mon Sep 17 00:00:00 2001 From: Imran Remtulla Date: Sat, 6 Jan 2024 23:37:27 -0500 Subject: [PATCH 1/2] Removed Steam Source (existing apps auto-switched to HTML) (#1244) + bugfixes --- README.md | 1 - lib/components/generated_form.dart | 2 +- lib/providers/apps_provider.dart | 10 +++++++--- lib/providers/source_provider.dart | 22 +++++++++++++++++++--- 4 files changed, 27 insertions(+), 8 deletions(-) diff --git a/README.md b/README.md index 44f7cf6..648bf53 100644 --- a/README.md +++ b/README.md @@ -34,7 +34,6 @@ Currently supported App sources: - Other - App-Specific: - [WhatsApp](https://whatsapp.com) - [Telegram App](https://telegram.org) - - [Steam Mobile Apps](https://store.steampowered.com/mobile) - [Neutron Code](https://neutroncode.com) - "HTML" (Fallback): Any other URL that returns an HTML page with links to APK files diff --git a/lib/components/generated_form.dart b/lib/components/generated_form.dart index 3eb2865..02ecc29 100644 --- a/lib/components/generated_form.dart +++ b/lib/components/generated_form.dart @@ -123,7 +123,7 @@ class GeneratedFormSubForm extends GeneratedFormItem { final List> items; GeneratedFormSubForm(super.key, this.items, - {super.label, super.belowWidgets, super.defaultValue}); + {super.label, super.belowWidgets, super.defaultValue = const []}); @override ensureType(val) { diff --git a/lib/providers/apps_provider.dart b/lib/providers/apps_provider.dart index 043f399..3a53819 100644 --- a/lib/providers/apps_provider.dart +++ b/lib/providers/apps_provider.dart @@ -527,9 +527,10 @@ class AppsProvider with ChangeNotifier { ? 0 : 1; case InstallMethodSettings.root: - code = (await NativeFeatures.installWithRoot(apkFilePath: file.file.path)) - ? 0 - : 1; + code = + (await NativeFeatures.installWithRoot(apkFilePath: file.file.path)) + ? 0 + : 1; } bool installed = false; if (code != null && code != 0 && code != 3) { @@ -1300,6 +1301,9 @@ class AppsProvider with ChangeNotifier { settingsProvider.prefs?.setInt(key, value); } else if (value is bool) { settingsProvider.prefs?.setBool(key, value); + } else if (value is List) { + settingsProvider.prefs + ?.setStringList(key, value.map((e) => e as String).toList()); } else { settingsProvider.prefs?.setString(key, value as String); } diff --git a/lib/providers/source_provider.dart b/lib/providers/source_provider.dart index 8f4e648..aef2e00 100644 --- a/lib/providers/source_provider.dart +++ b/lib/providers/source_provider.dart @@ -163,6 +163,24 @@ appJSONCompatibilityModifiers(Map json) { return e['customLinkFilterRegex']?.isNotEmpty == true; }).toList(); } + // Steam source apps should be converted to HTML (#1244) + var legacySteamSourceApps = SteamMobile().apks.keys; + if (legacySteamSourceApps.contains(additionalSettings['app'] ?? '')) { + json['url'] = '${json['url']}/mobile'; + var replacementAdditionalSettings = getDefaultValuesFromFormItems( + HTML().combinedAppSpecificSettingFormItems); + for (var s in replacementAdditionalSettings.keys) { + if (additionalSettings.containsKey(s)) { + replacementAdditionalSettings[s] = additionalSettings[s]; + } + } + replacementAdditionalSettings['customLinkFilterRegex'] = + '/${additionalSettings['app']}-(([0-9]+\\.?){1,})\\.apk'; + replacementAdditionalSettings['versionExtractionRegEx'] = + replacementAdditionalSettings['customLinkFilterRegex']; + replacementAdditionalSettings['matchGroupToUse'] = '\$1'; + additionalSettings = replacementAdditionalSettings; + } } json['additionalSettings'] = jsonEncode(additionalSettings); // F-Droid no longer needs cloudflare exception since override can be used - migrate apps appropriately @@ -658,13 +676,11 @@ class SourceProvider { APKMirror(), HuaweiAppGallery(), Jenkins(), - // APKCombo(), // Can't get past their scraping blocking yet (get 403 Forbidden) Mullvad(), Signal(), VLC(), - WhatsApp(), // As of 2023-03-20 this is unusable as the version on the webpage is months out of date + WhatsApp(), TelegramApp(), - SteamMobile(), NeutronCode(), HTML() // This should ALWAYS be the last option as they are tried in order ]; From 9640e43bc5e0abe14e4b176731ef63e7a0bcbc6f Mon Sep 17 00:00:00 2001 From: Imran Remtulla Date: Sat, 6 Jan 2024 23:38:36 -0500 Subject: [PATCH 2/2] Upgrade packages, increment version --- lib/main.dart | 12 +++++------- pubspec.lock | 52 +++++++++++++++++++++++++-------------------------- pubspec.yaml | 2 +- 3 files changed, 32 insertions(+), 34 deletions(-) diff --git a/lib/main.dart b/lib/main.dart index 4ddb3e9..23779ad 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -19,7 +19,7 @@ import 'package:easy_localization/src/easy_localization_controller.dart'; // ignore: implementation_imports import 'package:easy_localization/src/localization.dart'; -const String currentVersion = '0.15.4'; +const String currentVersion = '0.15.5'; const String currentReleaseTag = 'v$currentVersion-beta'; // KEEP THIS IN SYNC WITH GITHUB RELEASES @@ -236,17 +236,15 @@ class _ObtainiumState extends State { colorScheme: settingsProvider.theme == ThemeSettings.dark ? darkColorScheme : lightColorScheme, - fontFamily: settingsProvider.useSystemFont - ? 'SystemFont' - : 'Metropolis'), + fontFamily: + settingsProvider.useSystemFont ? 'SystemFont' : 'Metropolis'), darkTheme: ThemeData( useMaterial3: true, colorScheme: settingsProvider.theme == ThemeSettings.light ? lightColorScheme : darkColorScheme, - fontFamily: settingsProvider.useSystemFont - ? 'SystemFont' - : 'Metropolis'), + fontFamily: + settingsProvider.useSystemFont ? 'SystemFont' : 'Metropolis'), home: Shortcuts(shortcuts: { LogicalKeySet(LogicalKeyboardKey.select): const ActivateIntent(), }, child: const HomePage())); diff --git a/pubspec.lock b/pubspec.lock index c1f6125..894a4a9 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -30,10 +30,10 @@ packages: dependency: "direct main" description: name: animations - sha256: "708e4b68c23228c264b038fe7003a2f5d01ce85fc64d8cae090e86b27fcea6c5" + sha256: d3d6dcfb218225bbe68e87ccf6378bbb2e32a94900722c5f81611dad089911cb url: "https://pub.dev" source: hosted - version: "2.0.10" + version: "2.0.11" app_links: dependency: "direct main" description: @@ -328,10 +328,10 @@ packages: dependency: "direct main" description: name: flutter_markdown - sha256: "35108526a233cc0755664d445f8a6b4b61e6f8fe993b3658b80b4a26827fc196" + sha256: "30088ce826b5b9cfbf9e8bece34c716c8a59fa54461dcae1e4ac01a94639e762" url: "https://pub.dev" source: hosted - version: "0.6.18+2" + version: "0.6.18+3" flutter_plugin_android_lifecycle: dependency: transitive description: @@ -610,18 +610,18 @@ packages: dependency: transitive description: name: platform - sha256: "0a279f0707af40c890e80b1e9df8bb761694c074ba7e1d4ab1bc4b728e200b59" + sha256: "12220bb4b65720483f8fa9450b4332347737cf8213dd2840d8b2c823e47243ec" url: "https://pub.dev" source: hosted - version: "3.1.3" + version: "3.1.4" plugin_platform_interface: dependency: transitive description: name: plugin_platform_interface - sha256: f4f88d4a900933e7267e2b353594774fc0d07fb072b47eedcd5b54e1ea3269f8 + sha256: "4820fbfdb9478b1ebae27888254d445073732dae3d6ea81f0b7e06d5dedc3f02" url: "https://pub.dev" source: hosted - version: "2.1.7" + version: "2.1.8" pointycastle: dependency: transitive description: @@ -831,18 +831,18 @@ packages: dependency: transitive description: name: url_launcher_android - sha256: "31222ffb0063171b526d3e569079cf1f8b294075ba323443fdc690842bfd4def" + sha256: c0766a55ab42cefaa728cabc951e82919ab41a3a4fee0aaa96176ca82da8cc51 url: "https://pub.dev" source: hosted - version: "6.2.0" + version: "6.2.1" url_launcher_ios: dependency: transitive description: name: url_launcher_ios - sha256: bba3373219b7abb6b5e0d071b0fe66dfbe005d07517a68e38d4fc3638f35c6d3 + sha256: "46b81e3109cbb2d6b81702ad3077540789a3e74e22795eb9f0b7d494dbaa72ea" url: "https://pub.dev" source: hosted - version: "6.2.1" + version: "6.2.2" url_launcher_linux: dependency: transitive description: @@ -863,18 +863,18 @@ packages: dependency: transitive description: name: url_launcher_platform_interface - sha256: "980e8d9af422f477be6948bdfb68df8433be71f5743a188968b0c1b887807e50" + sha256: "4aca1e060978e19b2998ee28503f40b5ba6226819c2b5e3e4d1821e8ccd92198" url: "https://pub.dev" source: hosted - version: "2.2.0" + version: "2.3.0" url_launcher_web: dependency: transitive description: name: url_launcher_web - sha256: "7286aec002c8feecc338cc33269e96b73955ab227456e9fb2a91f7fab8a358e9" + sha256: fff0932192afeedf63cdd50ecbb1bc825d31aed259f02bb8dba0f3b729a5e88b url: "https://pub.dev" source: hosted - version: "2.2.2" + version: "2.2.3" url_launcher_windows: dependency: transitive description: @@ -911,18 +911,18 @@ packages: dependency: "direct main" description: name: webview_flutter - sha256: "42393b4492e629aa3a88618530a4a00de8bb46e50e7b3993fedbfdc5352f0dbf" + sha256: "60e23976834e995c404c0b21d3b9db37ecd77d3303ef74f8b8d7a7b19947fc04" url: "https://pub.dev" source: hosted - version: "4.4.2" + version: "4.4.3" webview_flutter_android: dependency: transitive description: name: webview_flutter_android - sha256: b54c89fe14a6d26a2a46e24880da0441cdd2bf1f6d01a5b3e1d39558feb1de0b + sha256: "161af93c2abaf94ef2192bffb53a3658b2d721a3bf99b69aa1e47814ee18cc96" url: "https://pub.dev" source: hosted - version: "3.13.1" + version: "3.13.2" webview_flutter_platform_interface: dependency: transitive description: @@ -935,18 +935,18 @@ packages: dependency: transitive description: name: webview_flutter_wkwebview - sha256: eebfabfa8a115b535b52031b8b26f7a4b58ceceab378bc9db8762b0fb46f7b5d + sha256: "02d8f3ebbc842704b2b662377b3ee11c0f8f1bbaa8eab6398262f40049819160" url: "https://pub.dev" source: hosted - version: "3.10.0" + version: "3.10.1" win32: dependency: transitive description: name: win32 - sha256: b0f37db61ba2f2e9b7a78a1caece0052564d1bc70668156cf3a29d676fe4e574 + sha256: "464f5674532865248444b4c3daca12bd9bf2d7c47f759ce2617986e7229494a8" url: "https://pub.dev" source: hosted - version: "5.1.1" + version: "5.2.0" win32_registry: dependency: transitive description: @@ -959,10 +959,10 @@ packages: dependency: transitive description: name: xdg_directories - sha256: "589ada45ba9e39405c198fe34eb0f607cddb2108527e658136120892beac46d2" + sha256: faea9dee56b520b55a566385b84f2e8de55e7496104adada9962e0bd11bcff1d url: "https://pub.dev" source: hosted - version: "1.0.3" + version: "1.0.4" xml: dependency: transitive description: diff --git a/pubspec.yaml b/pubspec.yaml index 1ceb551..4f0a1e9 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -17,7 +17,7 @@ publish_to: 'none' # Remove this line if you wish to publish to pub.dev # https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html # In Windows, build-name is used as the major, minor, and patch parts # of the product and file versions while build-number is used as the build suffix. -version: 0.15.4+240 # When changing this, update the tag in main() accordingly +version: 0.15.5+241 # When changing this, update the tag in main() accordingly environment: sdk: '>=3.0.0 <4.0.0'