diff --git a/lib/pages/app.dart b/lib/pages/app.dart index 0f9cc8d..080293d 100644 --- a/lib/pages/app.dart +++ b/lib/pages/app.dart @@ -300,7 +300,7 @@ class _AppPageState extends State { ? Theme.of(context).textTheme.displaySmall : Theme.of(context).textTheme.displayLarge, ), - Text(tr('byX', args: [app?.app.author ?? tr('unknown')]), + Text(tr('byX', args: [app?.author ?? tr('unknown')]), textAlign: TextAlign.center, style: small ? Theme.of(context).textTheme.headlineSmall diff --git a/lib/pages/apps.dart b/lib/pages/apps.dart index b5d8c22..59f046e 100644 --- a/lib/pages/apps.dart +++ b/lib/pages/apps.dart @@ -216,7 +216,7 @@ class AppsPageState extends State { } } for (var t in authorTokens) { - if (!app.app.author.toLowerCase().contains(t.toLowerCase())) { + if (!app.author.toLowerCase().contains(t.toLowerCase())) { return false; } } @@ -247,11 +247,11 @@ class AppsPageState extends State { listedApps.sort((a, b) { int result = 0; if (settingsProvider.sortColumn == SortColumnSettings.authorName) { - result = ((a.app.author + a.name).toLowerCase()) - .compareTo((b.app.author + b.name).toLowerCase()); + result = ((a.author + a.name).toLowerCase()) + .compareTo((b.author + b.name).toLowerCase()); } else if (settingsProvider.sortColumn == SortColumnSettings.nameAuthor) { - result = ((a.name + a.app.author).toLowerCase()) - .compareTo((b.name + b.app.author).toLowerCase()); + result = ((a.name + a.author).toLowerCase()) + .compareTo((b.name + b.author).toLowerCase()); } else if (settingsProvider.sortColumn == SortColumnSettings.releaseDate) { result = (a.app.releaseDate)?.compareTo( @@ -570,7 +570,7 @@ class AppsPageState extends State { : FontWeight.normal, ), ), - subtitle: Text(tr('byX', args: [listedApps[index].app.author]), + subtitle: Text(tr('byX', args: [listedApps[index].author]), maxLines: 1, style: TextStyle( overflow: TextOverflow.ellipsis, diff --git a/lib/providers/apps_provider.dart b/lib/providers/apps_provider.dart index b787ab4..bd61c7e 100644 --- a/lib/providers/apps_provider.dart +++ b/lib/providers/apps_provider.dart @@ -53,6 +53,7 @@ class AppInMemory { AppInMemory(app.deepCopy(), downloadProgress, installedInfo, icon); String get name => app.overrideName ?? app.finalName; + String get author => app.overrideAuthor ?? app.finalAuthor; } class DownloadedApk { diff --git a/lib/providers/source_provider.dart b/lib/providers/source_provider.dart index 4a4cdd7..51ab933 100644 --- a/lib/providers/source_provider.dart +++ b/lib/providers/source_provider.dart @@ -330,6 +330,15 @@ class App { return overrideName ?? name; } + String? get overrideAuthor => + additionalSettings['appAuthor']?.toString().trim().isNotEmpty == true + ? additionalSettings['appAuthor'] + : null; + + String get finalAuthor { + return overrideAuthor ?? author; + } + App deepCopy() => App( id, url, @@ -622,6 +631,7 @@ abstract class AppSource { label: tr('autoApkFilterByArch'), defaultValue: true) ], [GeneratedFormTextField('appName', label: tr('appName'), required: false)], + [GeneratedFormTextField('appAuthor', label: tr('author'), required: false)], [ GeneratedFormSwitch('shizukuPretendToBeGooglePlay', label: tr('shizukuPretendToBeGooglePlay'), defaultValue: false)