From e6b05d50b95f0e7ab70299c474850c36c6219762 Mon Sep 17 00:00:00 2001 From: Imran Remtulla Date: Tue, 4 Apr 2023 19:59:35 -0400 Subject: [PATCH] Scrolling bugfix #392, custom name #420, search archive label #421 --- lib/app_sources/github.dart | 8 +++++--- lib/pages/add_app.dart | 16 ++++++++-------- lib/pages/app.dart | 2 +- lib/providers/apps_provider.dart | 3 +++ lib/providers/source_provider.dart | 13 +++++++------ 5 files changed, 24 insertions(+), 18 deletions(-) diff --git a/lib/app_sources/github.dart b/lib/app_sources/github.dart index 9506453..39fbf2f 100644 --- a/lib/app_sources/github.dart +++ b/lib/app_sources/github.dart @@ -185,9 +185,11 @@ class GitHub extends AppSource { Map urlsWithDescriptions = {}; for (var e in (jsonDecode(res.body)['items'] as List)) { urlsWithDescriptions.addAll({ - e['html_url'] as String: e['description'] != null - ? e['description'] as String - : tr('noDescription') + e['html_url'] as String: + ((e['archived'] == true ? '[ARCHIVED] ' : '') + + (e['description'] != null + ? e['description'] as String + : tr('noDescription'))) }); } return urlsWithDescriptions; diff --git a/lib/pages/add_app.dart b/lib/pages/add_app.dart index 64d7f3c..f4f6c0e 100644 --- a/lib/pages/add_app.dart +++ b/lib/pages/add_app.dart @@ -334,11 +334,10 @@ class _AddAppPageState extends State { ], ); - Widget getSourcesListWidget() => Expanded( - child: Column( - crossAxisAlignment: CrossAxisAlignment.center, - mainAxisAlignment: MainAxisAlignment.center, - children: [ + Widget getSourcesListWidget() => Column( + crossAxisAlignment: CrossAxisAlignment.center, + mainAxisAlignment: MainAxisAlignment.center, + children: [ const SizedBox( height: 48, ), @@ -365,16 +364,17 @@ class _AddAppPageState extends State { fontStyle: FontStyle.italic), ))) .toList() - ])); + ]); return Scaffold( backgroundColor: Theme.of(context).colorScheme.surface, - body: CustomScrollView(slivers: [ + body: CustomScrollView(shrinkWrap: true, slivers: [ CustomAppBar(title: tr('addApp')), - SliverFillRemaining( + SliverToBoxAdapter( child: Padding( padding: const EdgeInsets.all(16), child: Column( + mainAxisSize: MainAxisSize.min, crossAxisAlignment: CrossAxisAlignment.stretch, children: [ getUrlInputRow(), diff --git a/lib/pages/app.dart b/lib/pages/app.dart index 3e015de..3f54294 100644 --- a/lib/pages/app.dart +++ b/lib/pages/app.dart @@ -147,7 +147,7 @@ class _AppPageState extends State { height: 25, ), Text( - app?.installedInfo?.name ?? app?.app.name ?? tr('app'), + app?.app.name ?? tr('app'), textAlign: TextAlign.center, style: Theme.of(context).textTheme.displayLarge, ), diff --git a/lib/providers/apps_provider.dart b/lib/providers/apps_provider.dart index 28a0fc1..4815129 100644 --- a/lib/providers/apps_provider.dart +++ b/lib/providers/apps_provider.dart @@ -670,6 +670,9 @@ class AppsProvider with ChangeNotifier { for (var app in apps) { AppInfo? info = await getInstalledInfo(app.id); app.name = info?.name ?? app.name; + if (app.additionalSettings['appName']?.toString().isNotEmpty == true) { + app.name = app.additionalSettings['appName'].toString().trim(); + } if (attemptToCorrectInstallStatus) { app = getCorrectedInstallStatusAppIfPossible(app, info) ?? app; } diff --git a/lib/providers/source_provider.dart b/lib/providers/source_provider.dart index be18176..1239eef 100644 --- a/lib/providers/source_provider.dart +++ b/lib/providers/source_provider.dart @@ -278,7 +278,8 @@ class AppSource { return regExValidator(value); } ]) - ] + ], + [GeneratedFormTextField('appName', label: tr('appName'), required: false)] ]; // Previous 2 variables combined into one at runtime for convenient usage @@ -427,8 +428,10 @@ class SourceProvider { throw NoAPKError(); } String apkVersion = apk.version.replaceAll('/', '-'); - var name = currentApp?.name.trim() ?? - apk.names.name[0].toUpperCase() + apk.names.name.substring(1); + var name = currentApp != null ? currentApp.name.trim() : ''; + name = name.isNotEmpty + ? name + : apk.names.name[0].toUpperCase() + apk.names.name.substring(1); return App( currentApp?.id ?? source.tryInferringAppId(standardUrl, @@ -436,9 +439,7 @@ class SourceProvider { generateTempID(standardUrl, additionalSettings), standardUrl, apk.names.author[0].toUpperCase() + apk.names.author.substring(1), - name.trim().isNotEmpty - ? name - : apk.names.name[0].toUpperCase() + apk.names.name.substring(1), + name, currentApp?.installedVersion, apkVersion, apk.apkUrls,