mirror of
				https://github.com/ImranR98/Obtainium.git
				synced 2025-10-31 13:33:28 +01:00 
			
		
		
		
	Added App ID Filter
This commit is contained in:
		| @@ -180,6 +180,7 @@ | |||||||
|     "yesMarkUpdated": "Ja, als aktualisiert markieren", |     "yesMarkUpdated": "Ja, als aktualisiert markieren", | ||||||
|     "fdroid": "F-Droid Official", |     "fdroid": "F-Droid Official", | ||||||
|     "appIdOrName": "App ID oder Name", |     "appIdOrName": "App ID oder Name", | ||||||
|  |     "appId": "App ID", | ||||||
|     "appWithIdOrNameNotFound": "Es wurde keine App mit dieser ID oder diesem Namen gefunden", |     "appWithIdOrNameNotFound": "Es wurde keine App mit dieser ID oder diesem Namen gefunden", | ||||||
|     "reposHaveMultipleApps": "Repos können mehrere Apps enthalten", |     "reposHaveMultipleApps": "Repos können mehrere Apps enthalten", | ||||||
|     "fdroidThirdPartyRepo": "F-Droid Third-Party Repo", |     "fdroidThirdPartyRepo": "F-Droid Third-Party Repo", | ||||||
|   | |||||||
| @@ -180,6 +180,7 @@ | |||||||
|     "yesMarkUpdated": "Yes, Mark as Updated", |     "yesMarkUpdated": "Yes, Mark as Updated", | ||||||
|     "fdroid": "F-Droid Official", |     "fdroid": "F-Droid Official", | ||||||
|     "appIdOrName": "App ID or Name", |     "appIdOrName": "App ID or Name", | ||||||
|  |     "appId": "App ID", | ||||||
|     "appWithIdOrNameNotFound": "No App was found with that ID or Name", |     "appWithIdOrNameNotFound": "No App was found with that ID or Name", | ||||||
|     "reposHaveMultipleApps": "Repos may contain multiple Apps", |     "reposHaveMultipleApps": "Repos may contain multiple Apps", | ||||||
|     "fdroidThirdPartyRepo": "F-Droid Third-Party Repo", |     "fdroidThirdPartyRepo": "F-Droid Third-Party Repo", | ||||||
|   | |||||||
| @@ -180,6 +180,7 @@ | |||||||
|     "yesMarkUpdated": "Sí, Marcar como Actualizada", |     "yesMarkUpdated": "Sí, Marcar como Actualizada", | ||||||
|     "fdroid": "Repositorio oficial de F-Droid", |     "fdroid": "Repositorio oficial de F-Droid", | ||||||
|     "appIdOrName": "ID o Nombre de la Aplicación", |     "appIdOrName": "ID o Nombre de la Aplicación", | ||||||
|  |     "appId": "ID de la Aplicación", | ||||||
|     "appWithIdOrNameNotFound": "No se han encontrado aplicaciones con esa ID o nombre", |     "appWithIdOrNameNotFound": "No se han encontrado aplicaciones con esa ID o nombre", | ||||||
|     "reposHaveMultipleApps": "Los repositorios pueden contener varias aplicaciones", |     "reposHaveMultipleApps": "Los repositorios pueden contener varias aplicaciones", | ||||||
|     "fdroidThirdPartyRepo": "Rpositorios de terceros de F-Droid", |     "fdroidThirdPartyRepo": "Rpositorios de terceros de F-Droid", | ||||||
|   | |||||||
| @@ -180,6 +180,7 @@ | |||||||
|     "yesMarkUpdated": "بله، علامت گذاری به عنوان به روز شده", |     "yesMarkUpdated": "بله، علامت گذاری به عنوان به روز شده", | ||||||
|     "fdroid": "F-Droid Official", |     "fdroid": "F-Droid Official", | ||||||
|     "appIdOrName": "شناسه یا نام برنامه", |     "appIdOrName": "شناسه یا نام برنامه", | ||||||
|  |     "appId": "App ID", | ||||||
|     "appWithIdOrNameNotFound": "هیچ برنامه ای با آن شناسه یا نام یافت نشد", |     "appWithIdOrNameNotFound": "هیچ برنامه ای با آن شناسه یا نام یافت نشد", | ||||||
|     "reposHaveMultipleApps": "مخازن ممکن است شامل چندین برنامه باشد", |     "reposHaveMultipleApps": "مخازن ممکن است شامل چندین برنامه باشد", | ||||||
|     "fdroidThirdPartyRepo": "مخازن شخص ثالث F-Droid", |     "fdroidThirdPartyRepo": "مخازن شخص ثالث F-Droid", | ||||||
|   | |||||||
| @@ -180,6 +180,7 @@ | |||||||
|     "yesMarkUpdated": "Oui, marquer comme mis à jour", |     "yesMarkUpdated": "Oui, marquer comme mis à jour", | ||||||
|     "fdroid": "F-Droid Official", |     "fdroid": "F-Droid Official", | ||||||
|     "appIdOrName": "ID ou nom de l'application", |     "appIdOrName": "ID ou nom de l'application", | ||||||
|  |     "appId": "ID de l'application", | ||||||
|     "appWithIdOrNameNotFound": "Aucune application n'a été trouvée avec cet identifiant ou ce nom", |     "appWithIdOrNameNotFound": "Aucune application n'a été trouvée avec cet identifiant ou ce nom", | ||||||
|     "reposHaveMultipleApps": "Les dépôts peuvent contenir plusieurs applications", |     "reposHaveMultipleApps": "Les dépôts peuvent contenir plusieurs applications", | ||||||
|     "fdroidThirdPartyRepo": "Dépôt tiers F-Droid", |     "fdroidThirdPartyRepo": "Dépôt tiers F-Droid", | ||||||
|   | |||||||
| @@ -180,6 +180,7 @@ | |||||||
|     "yesMarkUpdated": "Igen, megjelölés frissítettként", |     "yesMarkUpdated": "Igen, megjelölés frissítettként", | ||||||
|     "fdroid": "F-Droid Official", |     "fdroid": "F-Droid Official", | ||||||
|     "appIdOrName": "App ID vagy név", |     "appIdOrName": "App ID vagy név", | ||||||
|  |     "appId": "App ID", | ||||||
|     "appWithIdOrNameNotFound": "Nem található app ezzel az azonosítóval vagy névvel", |     "appWithIdOrNameNotFound": "Nem található app ezzel az azonosítóval vagy névvel", | ||||||
|     "reposHaveMultipleApps": "A repók több alkalmazást is tartalmazhatnak", |     "reposHaveMultipleApps": "A repók több alkalmazást is tartalmazhatnak", | ||||||
|     "fdroidThirdPartyRepo": "F-Droid Harmadik-fél Repo", |     "fdroidThirdPartyRepo": "F-Droid Harmadik-fél Repo", | ||||||
|   | |||||||
| @@ -180,6 +180,7 @@ | |||||||
|     "yesMarkUpdated": "Sì, contrassegna come aggiornato", |     "yesMarkUpdated": "Sì, contrassegna come aggiornato", | ||||||
|     "fdroid": "F-Droid Official", |     "fdroid": "F-Droid Official", | ||||||
|     "appIdOrName": "ID o nome dell'App", |     "appIdOrName": "ID o nome dell'App", | ||||||
|  |     "appId": "ID dell'App", | ||||||
|     "appWithIdOrNameNotFound": "Non è stata trovata alcuna App con quell'ID o nome", |     "appWithIdOrNameNotFound": "Non è stata trovata alcuna App con quell'ID o nome", | ||||||
|     "reposHaveMultipleApps": "I repository possono contenere più App", |     "reposHaveMultipleApps": "I repository possono contenere più App", | ||||||
|     "fdroidThirdPartyRepo": "Repository F-Droid di terze parti", |     "fdroidThirdPartyRepo": "Repository F-Droid di terze parti", | ||||||
|   | |||||||
| @@ -180,6 +180,7 @@ | |||||||
|     "yesMarkUpdated": "はい、アップデート済みとしてマークします", |     "yesMarkUpdated": "はい、アップデート済みとしてマークします", | ||||||
|     "fdroid": "F-Droid Official", |     "fdroid": "F-Droid Official", | ||||||
|     "appIdOrName": "アプリのIDまたは名前", |     "appIdOrName": "アプリのIDまたは名前", | ||||||
|  |     "appId": "App ID", | ||||||
|     "appWithIdOrNameNotFound": "そのIDや名前を持つアプリは見つかりませんでした", |     "appWithIdOrNameNotFound": "そのIDや名前を持つアプリは見つかりませんでした", | ||||||
|     "reposHaveMultipleApps": "リポジトリには複数のアプリが含まれることがあります", |     "reposHaveMultipleApps": "リポジトリには複数のアプリが含まれることがあります", | ||||||
|     "fdroidThirdPartyRepo": "F-Droid サードパーティリポジトリ", |     "fdroidThirdPartyRepo": "F-Droid サードパーティリポジトリ", | ||||||
|   | |||||||
| @@ -180,6 +180,7 @@ | |||||||
|     "yesMarkUpdated": "是,标记为已更新", |     "yesMarkUpdated": "是,标记为已更新", | ||||||
|     "fdroid": "F-Droid 官方存储库", |     "fdroid": "F-Droid 官方存储库", | ||||||
|     "appIdOrName": "应用 ID 或名称", |     "appIdOrName": "应用 ID 或名称", | ||||||
|  |     "appId": "App ID", | ||||||
|     "appWithIdOrNameNotFound": "未找到符合此 ID 或名称的应用", |     "appWithIdOrNameNotFound": "未找到符合此 ID 或名称的应用", | ||||||
|     "reposHaveMultipleApps": "存储库中可能包含多个应用", |     "reposHaveMultipleApps": "存储库中可能包含多个应用", | ||||||
|     "fdroidThirdPartyRepo": "F-Droid 第三方存储库", |     "fdroidThirdPartyRepo": "F-Droid 第三方存储库", | ||||||
|   | |||||||
| @@ -129,6 +129,11 @@ class AppsPageState extends State<AppsPage> { | |||||||
|           } |           } | ||||||
|         } |         } | ||||||
|       } |       } | ||||||
|  |       if (filter.idFilter.isNotEmpty) { | ||||||
|  |         if (!app.app.id.contains(filter.idFilter)) { | ||||||
|  |           return false; | ||||||
|  |         } | ||||||
|  |       } | ||||||
|       if (filter.categoryFilter.isNotEmpty && |       if (filter.categoryFilter.isNotEmpty && | ||||||
|           filter.categoryFilter |           filter.categoryFilter | ||||||
|               .intersection(app.app.categories.toSet()) |               .intersection(app.app.categories.toSet()) | ||||||
| @@ -941,6 +946,12 @@ class AppsPageState extends State<AppsPage> { | |||||||
|                       required: false, |                       required: false, | ||||||
|                       defaultValue: vals['author']) |                       defaultValue: vals['author']) | ||||||
|                 ], |                 ], | ||||||
|  |                 [ | ||||||
|  |                   GeneratedFormTextField('appId', | ||||||
|  |                       label: tr('appId'), | ||||||
|  |                       required: false, | ||||||
|  |                       defaultValue: vals['appId']) | ||||||
|  |                 ], | ||||||
|                 [ |                 [ | ||||||
|                   GeneratedFormSwitch('upToDateApps', |                   GeneratedFormSwitch('upToDateApps', | ||||||
|                       label: tr('upToDateApps'), |                       label: tr('upToDateApps'), | ||||||
| @@ -1072,6 +1083,7 @@ class AppsPageState extends State<AppsPage> { | |||||||
| class AppsFilter { | class AppsFilter { | ||||||
|   late String nameFilter; |   late String nameFilter; | ||||||
|   late String authorFilter; |   late String authorFilter; | ||||||
|  |   late String idFilter; | ||||||
|   late bool includeUptodate; |   late bool includeUptodate; | ||||||
|   late bool includeNonInstalled; |   late bool includeNonInstalled; | ||||||
|   late Set<String> categoryFilter; |   late Set<String> categoryFilter; | ||||||
| @@ -1080,6 +1092,7 @@ class AppsFilter { | |||||||
|   AppsFilter( |   AppsFilter( | ||||||
|       {this.nameFilter = '', |       {this.nameFilter = '', | ||||||
|       this.authorFilter = '', |       this.authorFilter = '', | ||||||
|  |       this.idFilter = '', | ||||||
|       this.includeUptodate = true, |       this.includeUptodate = true, | ||||||
|       this.includeNonInstalled = true, |       this.includeNonInstalled = true, | ||||||
|       this.categoryFilter = const {}, |       this.categoryFilter = const {}, | ||||||
| @@ -1089,6 +1102,7 @@ class AppsFilter { | |||||||
|     return { |     return { | ||||||
|       'appName': nameFilter, |       'appName': nameFilter, | ||||||
|       'author': authorFilter, |       'author': authorFilter, | ||||||
|  |       'appId': idFilter, | ||||||
|       'upToDateApps': includeUptodate, |       'upToDateApps': includeUptodate, | ||||||
|       'nonInstalledApps': includeNonInstalled, |       'nonInstalledApps': includeNonInstalled, | ||||||
|       'sourceFilter': sourceFilter |       'sourceFilter': sourceFilter | ||||||
| @@ -1098,6 +1112,7 @@ class AppsFilter { | |||||||
|   setFormValuesFromMap(Map<String, dynamic> values) { |   setFormValuesFromMap(Map<String, dynamic> values) { | ||||||
|     nameFilter = values['appName']!; |     nameFilter = values['appName']!; | ||||||
|     authorFilter = values['author']!; |     authorFilter = values['author']!; | ||||||
|  |     idFilter = values['appId']!; | ||||||
|     includeUptodate = values['upToDateApps']; |     includeUptodate = values['upToDateApps']; | ||||||
|     includeNonInstalled = values['nonInstalledApps']; |     includeNonInstalled = values['nonInstalledApps']; | ||||||
|     sourceFilter = values['sourceFilter']; |     sourceFilter = values['sourceFilter']; | ||||||
| @@ -1106,6 +1121,7 @@ class AppsFilter { | |||||||
|   bool isIdenticalTo(AppsFilter other, SettingsProvider settingsProvider) => |   bool isIdenticalTo(AppsFilter other, SettingsProvider settingsProvider) => | ||||||
|       authorFilter.trim() == other.authorFilter.trim() && |       authorFilter.trim() == other.authorFilter.trim() && | ||||||
|       nameFilter.trim() == other.nameFilter.trim() && |       nameFilter.trim() == other.nameFilter.trim() && | ||||||
|  |       idFilter.trim() == other.idFilter.trim() && | ||||||
|       includeUptodate == other.includeUptodate && |       includeUptodate == other.includeUptodate && | ||||||
|       includeNonInstalled == other.includeNonInstalled && |       includeNonInstalled == other.includeNonInstalled && | ||||||
|       settingsProvider.setEqual(categoryFilter, other.categoryFilter) && |       settingsProvider.setEqual(categoryFilter, other.categoryFilter) && | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user