mirror of
				https://github.com/ImranR98/Obtainium.git
				synced 2025-10-30 21:13:28 +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