mirror of
				https://github.com/ImranR98/Obtainium.git
				synced 2025-11-03 23:03:29 +01:00 
			
		
		
		
	App name overrides more consistent (#450)
This commit is contained in:
		@@ -153,7 +153,7 @@ class _AppPageState extends State<AppPage> {
 | 
				
			|||||||
              height: 25,
 | 
					              height: 25,
 | 
				
			||||||
            ),
 | 
					            ),
 | 
				
			||||||
            Text(
 | 
					            Text(
 | 
				
			||||||
              app?.app.name ?? tr('app'),
 | 
					              app?.name ?? tr('app'),
 | 
				
			||||||
              textAlign: TextAlign.center,
 | 
					              textAlign: TextAlign.center,
 | 
				
			||||||
              style: Theme.of(context).textTheme.displayLarge,
 | 
					              style: Theme.of(context).textTheme.displayLarge,
 | 
				
			||||||
            ),
 | 
					            ),
 | 
				
			||||||
@@ -386,7 +386,7 @@ class _AppPageState extends State<AppPage> {
 | 
				
			|||||||
                                      scrollable: true,
 | 
					                                      scrollable: true,
 | 
				
			||||||
                                      content: getInfoColumn(),
 | 
					                                      content: getInfoColumn(),
 | 
				
			||||||
                                      title: Text(
 | 
					                                      title: Text(
 | 
				
			||||||
                                          '${app.app.name} ${tr('byX', args: [
 | 
					                                          '${app.name} ${tr('byX', args: [
 | 
				
			||||||
                                            app.app.author
 | 
					                                            app.app.author
 | 
				
			||||||
                                          ])}'),
 | 
					                                          ])}'),
 | 
				
			||||||
                                      actions: [
 | 
					                                      actions: [
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -94,8 +94,7 @@ class AppsPageState extends State<AppsPage> {
 | 
				
			|||||||
            .toList();
 | 
					            .toList();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        for (var t in nameTokens) {
 | 
					        for (var t in nameTokens) {
 | 
				
			||||||
          var name = app.installedInfo?.name ?? app.app.name;
 | 
					          if (!app.name.toLowerCase().contains(t.toLowerCase())) {
 | 
				
			||||||
          if (!name.toLowerCase().contains(t.toLowerCase())) {
 | 
					 | 
				
			||||||
            return false;
 | 
					            return false;
 | 
				
			||||||
          }
 | 
					          }
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
@@ -120,13 +119,11 @@ class AppsPageState extends State<AppsPage> {
 | 
				
			|||||||
    }).toList();
 | 
					    }).toList();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    listedApps.sort((a, b) {
 | 
					    listedApps.sort((a, b) {
 | 
				
			||||||
      var nameA = a.installedInfo?.name ?? a.app.name;
 | 
					 | 
				
			||||||
      var nameB = b.installedInfo?.name ?? b.app.name;
 | 
					 | 
				
			||||||
      int result = 0;
 | 
					      int result = 0;
 | 
				
			||||||
      if (settingsProvider.sortColumn == SortColumnSettings.authorName) {
 | 
					      if (settingsProvider.sortColumn == SortColumnSettings.authorName) {
 | 
				
			||||||
        result = (a.app.author + nameA).compareTo(b.app.author + nameB);
 | 
					        result = (a.app.author + a.name).compareTo(b.app.author + b.name);
 | 
				
			||||||
      } else if (settingsProvider.sortColumn == SortColumnSettings.nameAuthor) {
 | 
					      } else if (settingsProvider.sortColumn == SortColumnSettings.nameAuthor) {
 | 
				
			||||||
        result = (nameA + a.app.author).compareTo(nameB + b.app.author);
 | 
					        result = (a.name + a.app.author).compareTo(b.name + b.app.author);
 | 
				
			||||||
      } else if (settingsProvider.sortColumn ==
 | 
					      } else if (settingsProvider.sortColumn ==
 | 
				
			||||||
          SortColumnSettings.releaseDate) {
 | 
					          SortColumnSettings.releaseDate) {
 | 
				
			||||||
        result = (a.app.releaseDate)?.compareTo(
 | 
					        result = (a.app.releaseDate)?.compareTo(
 | 
				
			||||||
@@ -481,8 +478,7 @@ class AppsPageState extends State<AppsPage> {
 | 
				
			|||||||
            leading: getAppIcon(index),
 | 
					            leading: getAppIcon(index),
 | 
				
			||||||
            title: Text(
 | 
					            title: Text(
 | 
				
			||||||
              maxLines: 1,
 | 
					              maxLines: 1,
 | 
				
			||||||
              listedApps[index].installedInfo?.name ??
 | 
					              listedApps[index].name,
 | 
				
			||||||
                  listedApps[index].app.name,
 | 
					 | 
				
			||||||
              style: TextStyle(
 | 
					              style: TextStyle(
 | 
				
			||||||
                overflow: TextOverflow.ellipsis,
 | 
					                overflow: TextOverflow.ellipsis,
 | 
				
			||||||
                fontWeight: listedApps[index].app.pinned
 | 
					                fontWeight: listedApps[index].app.pinned
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -36,6 +36,8 @@ class AppInMemory {
 | 
				
			|||||||
  AppInMemory(this.app, this.downloadProgress, this.installedInfo);
 | 
					  AppInMemory(this.app, this.downloadProgress, this.installedInfo);
 | 
				
			||||||
  AppInMemory deepCopy() =>
 | 
					  AppInMemory deepCopy() =>
 | 
				
			||||||
      AppInMemory(app.deepCopy(), downloadProgress, installedInfo);
 | 
					      AppInMemory(app.deepCopy(), downloadProgress, installedInfo);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  String get name => app.overrideName ?? installedInfo?.name ?? app.finalName;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
class DownloadedApk {
 | 
					class DownloadedApk {
 | 
				
			||||||
@@ -163,7 +165,7 @@ class AppsProvider with ChangeNotifier {
 | 
				
			|||||||
  Future<DownloadedApk> downloadApp(App app, BuildContext? context) async {
 | 
					  Future<DownloadedApk> downloadApp(App app, BuildContext? context) async {
 | 
				
			||||||
    NotificationsProvider? notificationsProvider =
 | 
					    NotificationsProvider? notificationsProvider =
 | 
				
			||||||
        context?.read<NotificationsProvider>();
 | 
					        context?.read<NotificationsProvider>();
 | 
				
			||||||
    var notifId = DownloadNotification(app.name, 0).id;
 | 
					    var notifId = DownloadNotification(app.finalName, 0).id;
 | 
				
			||||||
    if (apps[app.id] != null) {
 | 
					    if (apps[app.id] != null) {
 | 
				
			||||||
      apps[app.id]!.downloadProgress = 0;
 | 
					      apps[app.id]!.downloadProgress = 0;
 | 
				
			||||||
      notifyListeners();
 | 
					      notifyListeners();
 | 
				
			||||||
@@ -173,7 +175,7 @@ class AppsProvider with ChangeNotifier {
 | 
				
			|||||||
          .getSource(app.url)
 | 
					          .getSource(app.url)
 | 
				
			||||||
          .apkUrlPrefetchModifier(app.apkUrls[app.preferredApkIndex].value);
 | 
					          .apkUrlPrefetchModifier(app.apkUrls[app.preferredApkIndex].value);
 | 
				
			||||||
      var fileName = '${app.id}-${downloadUrl.hashCode}.apk';
 | 
					      var fileName = '${app.id}-${downloadUrl.hashCode}.apk';
 | 
				
			||||||
      var notif = DownloadNotification(app.name, 100);
 | 
					      var notif = DownloadNotification(app.finalName, 100);
 | 
				
			||||||
      notificationsProvider?.cancel(notif.id);
 | 
					      notificationsProvider?.cancel(notif.id);
 | 
				
			||||||
      int? prevProg;
 | 
					      int? prevProg;
 | 
				
			||||||
      File downloadedFile =
 | 
					      File downloadedFile =
 | 
				
			||||||
@@ -183,7 +185,7 @@ class AppsProvider with ChangeNotifier {
 | 
				
			|||||||
          apps[app.id]!.downloadProgress = progress;
 | 
					          apps[app.id]!.downloadProgress = progress;
 | 
				
			||||||
          notifyListeners();
 | 
					          notifyListeners();
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        notif = DownloadNotification(app.name, prog ?? 100);
 | 
					        notif = DownloadNotification(app.finalName, prog ?? 100);
 | 
				
			||||||
        if (prog != null && prevProg != prog) {
 | 
					        if (prog != null && prevProg != prog) {
 | 
				
			||||||
          notificationsProvider?.notify(notif);
 | 
					          notificationsProvider?.notify(notif);
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
@@ -641,7 +643,7 @@ class AppsProvider with ChangeNotifier {
 | 
				
			|||||||
        sp.getSource(newApps[i].url);
 | 
					        sp.getSource(newApps[i].url);
 | 
				
			||||||
        apps[newApps[i].id] = AppInMemory(newApps[i], null, info);
 | 
					        apps[newApps[i].id] = AppInMemory(newApps[i], null, info);
 | 
				
			||||||
      } catch (e) {
 | 
					      } catch (e) {
 | 
				
			||||||
        errors.add([newApps[i].id, newApps[i].name, e.toString()]);
 | 
					        errors.add([newApps[i].id, newApps[i].finalName, e.toString()]);
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
    if (errors.isNotEmpty) {
 | 
					    if (errors.isNotEmpty) {
 | 
				
			||||||
@@ -675,9 +677,6 @@ class AppsProvider with ChangeNotifier {
 | 
				
			|||||||
      var app = a.deepCopy();
 | 
					      var app = a.deepCopy();
 | 
				
			||||||
      AppInfo? info = await getInstalledInfo(app.id);
 | 
					      AppInfo? info = await getInstalledInfo(app.id);
 | 
				
			||||||
      app.name = info?.name ?? app.name;
 | 
					      app.name = info?.name ?? app.name;
 | 
				
			||||||
      if (app.additionalSettings['appName']?.toString().isNotEmpty == true) {
 | 
					 | 
				
			||||||
        app.name = app.additionalSettings['appName'].toString().trim();
 | 
					 | 
				
			||||||
      }
 | 
					 | 
				
			||||||
      if (attemptToCorrectInstallStatus) {
 | 
					      if (attemptToCorrectInstallStatus) {
 | 
				
			||||||
        app = getCorrectedInstallStatusAppIfPossible(app, info) ?? app;
 | 
					        app = getCorrectedInstallStatusAppIfPossible(app, info) ?? app;
 | 
				
			||||||
      }
 | 
					      }
 | 
				
			||||||
@@ -945,7 +944,7 @@ class _APKPickerState extends State<APKPicker> {
 | 
				
			|||||||
      scrollable: true,
 | 
					      scrollable: true,
 | 
				
			||||||
      title: Text(tr('pickAnAPK')),
 | 
					      title: Text(tr('pickAnAPK')),
 | 
				
			||||||
      content: Column(children: [
 | 
					      content: Column(children: [
 | 
				
			||||||
        Text(tr('appHasMoreThanOnePackage', args: [widget.app.name])),
 | 
					        Text(tr('appHasMoreThanOnePackage', args: [widget.app.finalName])),
 | 
				
			||||||
        const SizedBox(height: 16),
 | 
					        const SizedBox(height: 16),
 | 
				
			||||||
        ...widget.app.apkUrls.map(
 | 
					        ...widget.app.apkUrls.map(
 | 
				
			||||||
          (u) => RadioListTile<String>(
 | 
					          (u) => RadioListTile<String>(
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -34,9 +34,9 @@ class UpdateNotification extends ObtainiumNotification {
 | 
				
			|||||||
    message = updates.isEmpty
 | 
					    message = updates.isEmpty
 | 
				
			||||||
        ? tr('noNewUpdates')
 | 
					        ? tr('noNewUpdates')
 | 
				
			||||||
        : updates.length == 1
 | 
					        : updates.length == 1
 | 
				
			||||||
            ? tr('xHasAnUpdate', args: [updates[0].name])
 | 
					            ? tr('xHasAnUpdate', args: [updates[0].finalName])
 | 
				
			||||||
            : plural('xAndNMoreUpdatesAvailable', updates.length - 1,
 | 
					            : plural('xAndNMoreUpdatesAvailable', updates.length - 1,
 | 
				
			||||||
                args: [updates[0].name, (updates.length - 1).toString()]);
 | 
					                args: [updates[0].finalName, (updates.length - 1).toString()]);
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -46,9 +46,9 @@ class SilentUpdateNotification extends ObtainiumNotification {
 | 
				
			|||||||
            tr('appsUpdatedNotifDescription'), Importance.defaultImportance) {
 | 
					            tr('appsUpdatedNotifDescription'), Importance.defaultImportance) {
 | 
				
			||||||
    message = updates.length == 1
 | 
					    message = updates.length == 1
 | 
				
			||||||
        ? tr('xWasUpdatedToY',
 | 
					        ? tr('xWasUpdatedToY',
 | 
				
			||||||
            args: [updates[0].name, updates[0].latestVersion])
 | 
					            args: [updates[0].finalName, updates[0].latestVersion])
 | 
				
			||||||
        : plural('xAndNMoreUpdatesInstalled', updates.length - 1,
 | 
					        : plural('xAndNMoreUpdatesInstalled', updates.length - 1,
 | 
				
			||||||
            args: [updates[0].name, (updates.length - 1).toString()]);
 | 
					            args: [updates[0].finalName, (updates.length - 1).toString()]);
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -80,6 +80,15 @@ class App {
 | 
				
			|||||||
    return 'ID: $id URL: $url INSTALLED: $installedVersion LATEST: $latestVersion APK: $apkUrls PREFERREDAPK: $preferredApkIndex ADDITIONALSETTINGS: ${additionalSettings.toString()} LASTCHECK: ${lastUpdateCheck.toString()} PINNED $pinned';
 | 
					    return 'ID: $id URL: $url INSTALLED: $installedVersion LATEST: $latestVersion APK: $apkUrls PREFERREDAPK: $preferredApkIndex ADDITIONALSETTINGS: ${additionalSettings.toString()} LASTCHECK: ${lastUpdateCheck.toString()} PINNED $pinned';
 | 
				
			||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  String? get overrideName =>
 | 
				
			||||||
 | 
					      additionalSettings['appName']?.toString().trim().isNotEmpty == true
 | 
				
			||||||
 | 
					          ? additionalSettings['appName']
 | 
				
			||||||
 | 
					          : null;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  String get finalName {
 | 
				
			||||||
 | 
					    return overrideName ?? name;
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  App deepCopy() => App(
 | 
					  App deepCopy() => App(
 | 
				
			||||||
      id,
 | 
					      id,
 | 
				
			||||||
      url,
 | 
					      url,
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user