Compare commits

...

31 Commits

Author SHA1 Message Date
Imran
344a6efbf6 Merge pull request #1905 from ImranR98/dev
Add some logs to troubleshoot #1550
2024-10-15 16:02:01 -04:00
Imran Remtulla
59a4b88a88 Update packages, increment version 2024-10-15 16:01:53 -04:00
Imran Remtulla
cf7c41bf4c Merge remote-tracking branch 'origin/main' into dev 2024-10-15 16:00:34 -04:00
Imran
d32543b5d0 Merge pull request #1902 from summoner001/main
Update hu.json
2024-10-15 16:00:10 -04:00
Imran Remtulla
892a3b3c30 Add some logs to troubleshoot #1550 2024-10-15 15:56:19 -04:00
summoner001
56c791d3e5 Update hu.json
Fixing coherence
2024-10-14 15:45:41 +02:00
Imran
672bc159cc Merge pull request #1894 from summoner001/main
Update hu.json
2024-10-12 13:36:07 -04:00
Imran
ee5d121bf0 Merge pull request #1889 from strugee/patch-1
Fix typo
2024-10-12 13:35:54 -04:00
Imran
e5d1fafc13 Merge pull request #1882 from Erengun/develop
Add "Community App Sources" translation and button to Add App Screen
2024-10-12 13:35:38 -04:00
summoner001
8bb4f46209 Update hu.json
More fixes
2024-10-09 15:21:10 +02:00
summoner001
504e1d551b Update hu.json
Fix translation
2024-10-09 15:07:03 +02:00
AJ Jordan
5e7e143bba Fix typo 2024-10-06 18:52:16 -04:00
Eren GUN
91a82af418 Refactor translations to use shorter label for crowdsourced app configurations 2024-10-03 12:13:24 +03:00
Eren GUN
7af2145e9a Refactor translations to use shorter label for crowdsourced app configurations 2024-10-03 11:00:00 +03:00
Eren GUN
74b9de3516 Replace the "Community App Sources" button with a text link in the AddAppPage for a cleaner UI.
improving interface consistency.
2024-10-03 10:59:44 +03:00
Eren GUN
f5b540dd8b Add "Community App Sources" button to AddAppPage 2024-10-02 19:19:23 +03:00
Eren GUN
01d701d8cd Add "Community App Sources" translation 2024-10-02 19:16:42 +03:00
Imran
4017253470 Merge pull request #1878 from ImranR98/dev
Add "title as version" option for GitHub (#1875)
2024-10-01 20:05:16 -04:00
Imran Remtulla
b0b6ddb8fd Merge remote-tracking branch 'origin/main' into dev 2024-10-01 20:04:30 -04:00
Imran Remtulla
192b7fc6ce Add "title as version" option for GitHub (#1875) 2024-10-01 20:04:10 -04:00
Imran
b74dbb973c Merge pull request #1870 from robifr/main
Fix indonesian translation
2024-10-01 19:23:26 -04:00
Imran
46ccf8478b Merge pull request #1874 from ImranR98/dev
- App-wide "pretend to be GPlay" option (#1859)
- UI bugfixes on add app page (#1866)
- UI tweaks (#1871, #1872)
- Added "skip latest" option to APKPure (also fallback toggle)
2024-10-01 16:20:55 -05:00
Imran Remtulla
9a354ecf0e Increment version, upgrade package 2024-10-01 17:12:10 -04:00
Imran Remtulla
738dd5649f App-wide "pretend to be GPlay" option (#1859) 2024-10-01 17:07:11 -04:00
Imran Remtulla
9f50d8db2d UI bugfixes on add app page (#1866) 2024-10-01 16:59:28 -04:00
Imran Remtulla
eeb57dbe35 UI tweaks (#1871, #1872) 2024-10-01 15:57:18 -04:00
Imran Remtulla
cbcc8c4eaf Added "skip latest" option to APKPure (also fallback toggle) 2024-10-01 15:49:00 -04:00
robi
f4d27c8494 Fix indonesian translation
Co-authored-by: Kuching Neko <kuchingneko28@gmail.com>
2024-10-02 01:10:31 +07:00
Imran
7507e7bf5c Merge pull request #1867 from ImranR98/dev
Fix broken SourceHut source (#1864)
2024-09-30 15:48:45 -05:00
Imran Remtulla
783e8029b6 Increment version 2024-09-30 16:47:58 -04:00
Imran Remtulla
3554257918 Fix broken SourceHut source (#1864) 2024-09-30 16:43:19 -04:00
35 changed files with 400 additions and 207 deletions

View File

@@ -213,6 +213,7 @@
"uninstallFromDevice": "Deinstaliraj s uređaja",
"onlyWorksWithNonVersionDetectApps": "Radi samo za aplikacije s onemogućenom detekcijom verzije.",
"releaseDateAsVersion": "Koristi datum izdanja kao verziju",
"releaseTitleAsVersion": "Use release title as version string",
"releaseDateAsVersionExplanation": "Ova opcija bi se trebala koristiti samo za aplikacije gdje detekcija verzije ne radi ispravno, ali je datum izdavanja dostupan.",
"changes": "Promjene",
"releaseDate": "Datum izdavanja",
@@ -314,7 +315,9 @@
"appVerifierInstructionToast": "Dijeli sa AppVerifier-om, zatim se vratite kada ste spremni.",
"wiki": "Pomoć/Wiki",
"crowdsourcedConfigsLabel": "Konfiguracije aplikacije obezbeđene pomoću velikog broja ljudi (crowdsourcing) (koristite na svoju odgovornost)",
"crowdsourcedConfigsShort": "Crowdsourced App Configs",
"allowInsecure": "Allow insecure HTTP requests",
"stayOneVersionBehind": "Stay one version behind latest",
"removeAppQuestion": {
"one": "Želite li ukloniti aplikaciju?",
"other": "Želite li ukloniti aplikacije?"

View File

@@ -213,6 +213,7 @@
"uninstallFromDevice": "Odinstalovat ze zařízení",
"onlyWorksWithNonVersionDetectApps": "Funguje pouze pro aplikace s vypnutou detekcí verze.",
"releaseDateAsVersion": "Použít datum vydání jako verzi",
"releaseTitleAsVersion": "Použít název verze jako řetězec verze",
"releaseDateAsVersionExplanation": "Tato možnost by měla být použita pouze u aplikace, kde detekce verzí nefunguje správně, ale je k dispozici datum vydání.",
"changes": "Změny",
"releaseDate": "Datum vydání",
@@ -314,7 +315,9 @@
"appVerifierInstructionToast": "Sdílejte do aplikace AppVerifier a po dokončení se sem vraťte.",
"wiki": "Nápověda/Wiki",
"crowdsourcedConfigsLabel": "Konfigurace aplikací s využitím crowdsourcingu (použití na vlastní nebezpečí)",
"crowdsourcedConfigsShort": "Konfigurace aplikací s využitím crowdsourcingu",
"allowInsecure": "Povolení nezabezpečených požadavků HTTP",
"stayOneVersionBehind": "Zůstaňte o jednu verzi pozadu za nejnovější",
"removeAppQuestion": {
"one": "Odstranit Apku?",
"other": "Odstranit Apky?"

View File

@@ -213,6 +213,7 @@
"uninstallFromDevice": "Afinstaller fra enhed",
"onlyWorksWithNonVersionDetectApps": "Virker kun for apps med versionsregistrering deaktiveret.",
"releaseDateAsVersion": "Brug udgivelsesdato som versionsstreng",
"releaseTitleAsVersion": "Brug udgivelsestitel som versionsstreng",
"releaseDateAsVersionExplanation": "Denne indstilling bør kun bruges til apps, hvor versionsregistrering ikke virker korrekt, men hvor en udgivelsesdato er tilgængelig.",
"changes": "Ændringer",
"releaseDate": "Udgivelsesdato",
@@ -314,7 +315,9 @@
"appVerifierInstructionToast": "Del til AppVerifier, og vend tilbage hertil, når du er klar.",
"wiki": "Hjælp/Wiki",
"crowdsourcedConfigsLabel": "Crowdsourcede app-konfigurationer (brug på egen risiko)",
"crowdsourcedConfigsShort": "Crowdsourcede app-konfigurationer",
"allowInsecure": "Tillad usikre HTTP-anmodninger",
"stayOneVersionBehind": "Vær en version bagud i forhold til den nyeste",
"removeAppQuestion": {
"one": "Fjern app?",
"other": "Fjern apps?"

View File

@@ -213,6 +213,7 @@
"uninstallFromDevice": "Vom Gerät deinstallieren",
"onlyWorksWithNonVersionDetectApps": "Funktioniert nur bei Apps mit deaktivierter Versionserkennung.",
"releaseDateAsVersion": "Veröffentlichungsdatum als Version verwenden",
"releaseTitleAsVersion": "Versionstitel als Versionsstring verwenden",
"releaseDateAsVersionExplanation": "Diese Option sollte nur für Apps verwendet werden, bei denen die Versionserkennung nicht korrekt funktioniert, aber ein Veröffentlichungsdatum verfügbar ist.",
"changes": "Änderungen",
"releaseDate": "Veröffentlichungsdatum",
@@ -314,7 +315,9 @@
"appVerifierInstructionToast": "Geben Sie die Daten an AppVerifier weiter und kehren Sie dann hierher zurück, wenn Sie fertig sind.",
"wiki": "Hilfe/Wiki",
"crowdsourcedConfigsLabel": "Crowdsourced App-Konfigurationen (Verwendung auf eigene Gefahr)",
"crowdsourcedConfigsShort": "Crowdsourced App-Konfigurationen",
"allowInsecure": "Unsichere HTTP-Anfragen zulassen",
"stayOneVersionBehind": "Eine Version hinter der neuesten Version bleiben",
"removeAppQuestion": {
"one": "App entfernen?",
"other": "Apps entfernen?"

View File

@@ -213,6 +213,7 @@
"uninstallFromDevice": "Malinstali el la disponaĵo",
"onlyWorksWithNonVersionDetectApps": "Funkcias nur por apoj kun malaktiva versiodetekto.",
"releaseDateAsVersion": "Uzi eldondato kiel versioĉeno",
"releaseTitleAsVersion": "Use release title as version string",
"releaseDateAsVersionExplanation": "Tiu opcio devas esti uzata nur por apoj, por kiu la versiodetekto ne funkcias ĝuste, sed eldondato estas havebla.",
"changes": "Modifoj",
"releaseDate": "Eldondato",
@@ -314,7 +315,9 @@
"appVerifierInstructionToast": "Diskonigu kun AppVerifier, poste revenu ĉi tie kiam preta.",
"wiki": "Helpo/Vikio",
"crowdsourcedConfigsLabel": "Komunumaj apo-agordoj (uzu kun singardo)",
"crowdsourcedConfigsShort": "Crowdsourced App Configs",
"allowInsecure": "Allow insecure HTTP requests",
"stayOneVersionBehind": "Stay one version behind latest",
"removeAppQuestion": {
"one": "Forigi la aplikaĵon?",
"other": "Forigi la aplikaĵojn?"

View File

@@ -213,6 +213,7 @@
"uninstallFromDevice": "Uninstall from Device",
"onlyWorksWithNonVersionDetectApps": "Only works for Apps with version detection disabled.",
"releaseDateAsVersion": "Use release date as version string",
"releaseTitleAsVersion": "Use release title as version string",
"releaseDateAsVersionExplanation": "This option should only be used for Apps where version detection does not work correctly, but a release date is available.",
"changes": "Changes",
"releaseDate": "Release Date",
@@ -314,7 +315,9 @@
"appVerifierInstructionToast": "Share to AppVerifier, then return here when ready.",
"wiki": "Help/Wiki",
"crowdsourcedConfigsLabel": "Crowdsourced App Configurations (use at your own risk)",
"crowdsourcedConfigsShort": "Crowdsourced App Configs",
"allowInsecure": "Allow insecure HTTP requests",
"stayOneVersionBehind": "Stay one version behind latest",
"removeAppQuestion": {
"one": "Remove App?",
"other": "Remove Apps?"

View File

@@ -213,6 +213,7 @@
"uninstallFromDevice": "Desinstalar del dispositivo",
"onlyWorksWithNonVersionDetectApps": "Solo funciona para aplicaciones con la detección de versiones desactivada.",
"releaseDateAsVersion": "Por fecha de publicación",
"releaseTitleAsVersion": "Utilizar el título de la versión como cadena de versión",
"releaseDateAsVersionExplanation": "Esta opción solo se debería usar con aplicaciones en las que la detección de versiones no funciona pero hay disponible una fecha de publicación.",
"changes": "Cambios",
"releaseDate": "Fecha de publicación",
@@ -314,7 +315,9 @@
"appVerifierInstructionToast": "Comparta con AppVerifier y vuelva aquí cuando esté listo.",
"wiki": "Ayuda/Wiki",
"crowdsourcedConfigsLabel": "Crowdsourced App Configurations (uso bajo su propia responsabilidad)",
"crowdsourcedConfigsShort": "Configuración de aplicaciones por crowdsourcing",
"allowInsecure": "Permitir peticiones HTTP inseguras",
"stayOneVersionBehind": "Mantenerse una versión por detrás de la última",
"removeAppQuestion": {
"one": "¿Eliminar aplicación?",
"other": "¿Eliminar aplicaciones?"

View File

@@ -213,6 +213,7 @@
"uninstallFromDevice": "حذف نصب از دستگاه",
"onlyWorksWithNonVersionDetectApps": "فقط برای برنامه‌هایی کار می‌کند که تشخیص نسخه غیرفعال است.",
"releaseDateAsVersion": "از تاریخ انتشار به عنوان نسخه استفاده کنید",
"releaseTitleAsVersion": "Use release title as version string",
"releaseDateAsVersionExplanation": "این گزینه فقط باید برای برنامه هایی استفاده شود که تشخیص نسخه به درستی کار نمی کند، اما تاریخ انتشار در دسترس است.",
"changes": "تغییرات",
"releaseDate": "تاریخ انتشار",
@@ -314,7 +315,9 @@
"appVerifierInstructionToast": "در AppVerifier به اشتراک بگذارید، سپس پس از آماده شدن به اینجا برگردید.",
"wiki": "راهنما/ویکی",
"crowdsourcedConfigsLabel": "تنظیمات برنامه Crowdsourced (با مسئولیت خود استفاده کنید)",
"crowdsourcedConfigsShort": "Crowdsourced App Configs",
"allowInsecure": "درخواست های HTTP ناامن را مجاز کنید",
"stayOneVersionBehind": "Stay one version behind latest",
"removeAppQuestion": {
"one": "برنامه حذف شود؟",
"other": "برنامه ها حذف شوند؟"

View File

@@ -213,6 +213,7 @@
"uninstallFromDevice": "Désinstaller de l'appareil",
"onlyWorksWithNonVersionDetectApps": "Ne fonctionne que pour les applications dont la détection de la version est désactivée.",
"releaseDateAsVersion": "Utiliser la date de sortie comme version",
"releaseTitleAsVersion": "Utiliser le titre de la version comme chaîne de caractères de la version",
"releaseDateAsVersionExplanation": "Cette option ne doit être utilisée que pour les applications pour lesquelles la détection de la version ne fonctionne pas correctement, mais dont une date de sortie est disponible.",
"changes": "Modifications",
"releaseDate": "Date de sortie",
@@ -314,7 +315,9 @@
"appVerifierInstructionToast": "Partagez avec AppVerifier, puis revenez ici lorsque tout est prêt.",
"wiki": "Aide/Wiki",
"crowdsourcedConfigsLabel": "Configurations d'applications par la communauté (à utiliser à vos risques et périls)",
"crowdsourcedConfigsShort": "Configurations d'applications par la foule",
"allowInsecure": "Autoriser les requêtes HTTP non sécurisées",
"stayOneVersionBehind": "Rester à une version de la dernière",
"removeAppQuestion": {
"one": "Supprimer l'application?",
"other": "Supprimer les applications?"

View File

@@ -9,7 +9,7 @@
"placeholder": "Helyőrző",
"someErrors": "Néhány hiba történt",
"unexpectedError": "Váratlan hiba",
"ok": "Rendben",
"ok": "OK",
"and": "és",
"githubPATLabel": "GitHub személyes hozzáférési token (megnöveli a lekérdezés-korlátozást)",
"includePrereleases": "Tartalmazza az előzetes kiadásokat",
@@ -61,10 +61,10 @@
"xWillBeRemovedButRemainInstalled": "A(z) {} el lesz távolítva az Obtainiumból, de továbbra is telepítve marad az eszközön.",
"removeSelectedAppsQuestion": "A kiválasztott alkalmazások eltávolítása?",
"removeSelectedApps": "A kiválasztott alkalmazások eltávolítása",
"updateX": "A(z) {} frissítése",
"installX": "A(z) {} telepítése",
"updateX": "{} frissítése",
"installX": "{} telepítése",
"markXTrackOnlyAsUpdated": "Megjelölés: {}\n(Csak nyomonkövetés)\nFrissítettként",
"changeX": "{} változtatás",
"changeX": "{}-változás",
"installUpdateApps": "Alkalmazások telepítése/frissítése",
"installUpdateSelectedApps": "A kiválasztott alkalmazások telepítése/frissítése",
"markXSelectedAppsAsUpdated": "A(z) {} kiválasztott alkalmazás megjelölése frissítettként?",
@@ -80,7 +80,7 @@
"shareSelectedAppURLs": "A kiválasztott alkalmazás hivatkozásának megosztása",
"resetInstallStatus": "Telepítési állapot visszaállítása",
"more": "További",
"removeOutdatedFilter": "Elavult-alkalmazás szűrő eltávolítása",
"removeOutdatedFilter": "Elavult alkalmazás-szűrő eltávolítása",
"showOutdatedOnly": "Csak az elavult alkalmazások megjelenítése",
"filter": "Szűrő",
"filterApps": "Alkalmazások szűrése",
@@ -115,11 +115,11 @@
"followSystem": "Rendszerbeállítás használata",
"followSystemThemeExplanation": "A következő rendszer téma csak harmadik féltől származó alkalmazások használatával lehetséges",
"useBlackTheme": "Használjon teljesen fekete sötét témát",
"appSortBy": "Elrendezés",
"appSortBy": "Rendezési szempont",
"authorName": "Szerző/Név",
"nameAuthor": "Név/Szerző",
"asAdded": "Hozzáadás dátuma",
"appSortOrder": "Elrendezés sorrendje",
"appSortOrder": "Rendezési sorrend",
"ascending": "Növekvő",
"descending": "Csökkenő",
"bgUpdateCheckInterval": "Időtartam a frissítések háttérellenőrzése között",
@@ -151,20 +151,20 @@
"appsUpdatedNotifDescription": "Értesíti a felhasználót, hogy egy vagy több alkalmazás frissítése a háttérben történt.",
"xWasUpdatedToY": "A(z) {} frissítve lett a következőre: {}.",
"xWasNotUpdatedToY": "Nem sikerült frissíteni a következőt: {}, erre: {}.",
"errorCheckingUpdates": "Hiba a frissítések keresésekor",
"errorCheckingUpdatesNotifDescription": "Értesítés, amely akkor jelenik meg, ha a háttérfrissítés ellenőrzése nem sikerül",
"errorCheckingUpdates": "Hiba a frissítések ellenőrzésekor",
"errorCheckingUpdatesNotifDescription": "Értesítés, amely akkor jelenik meg, amikor a frissítések ellenőrzése a háttérben nem sikerül",
"appsRemoved": "Alkalmazások eltávolítva",
"appsRemovedNotifDescription": "Értesíti a felhasználót, hogy egy vagy több alkalmazás betöltés közbeni hiba miatt eltávolításra került",
"xWasRemovedDueToErrorY": "A(z) {} eltávolításra került a következő hiba miatt: {}",
"completeAppInstallation": "Teljes alkalmazástelepítés",
"obtainiumMustBeOpenToInstallApps": "Az alkalmazások telepítéséhez az Obtainiumnak megnyitva kell lennie",
"completeAppInstallationNotifDescription": "Megkéri a felhasználót, hogy térjen vissza az Obtainiumhoz, hogy befejezze az alkalmazás telepítését",
"checkingForUpdates": "Frissítések keresése",
"checkingForUpdatesNotifDescription": "Átmeneti értesítés, amely a frissítések keresésekor jelenik meg",
"checkingForUpdates": "Frissítések ellenőrzése",
"checkingForUpdatesNotifDescription": "Átmeneti értesítés, amely a frissítések ellenőrzésekor jelenik meg",
"pleaseAllowInstallPerm": "Engedélyezze az Obtainiumnak az alkalmazások telepítését",
"trackOnly": "Csak nyomonkövetés",
"errorWithHttpStatusCode": "Hiba {}",
"versionCorrectionDisabled": "Verziókorrekció letiltva (úgy tűnik, hogy a bővítmény nem működik)",
"versionCorrectionDisabled": "Verzió-korrekció letiltva (úgy tűnik, hogy a bővítmény nem működik)",
"unknown": "Ismeretlen",
"none": "Semmi",
"never": "Soha",
@@ -186,15 +186,15 @@
"update": "Frissítés",
"markUpdated": "Frissítettnek jelölés",
"additionalOptions": "További beállítások",
"disableVersionDetection": "Verzióérzékelés letiltása",
"noVersionDetectionExplanation": "Ezt a beállítást csak olyan alkalmazásoknál szabad használni, ahol a verzióérzékelés nem működik megfelelően.",
"disableVersionDetection": "Verzió-érzékelés letiltása",
"noVersionDetectionExplanation": "Ezt a beállítást csak olyan alkalmazásoknál szabad használni, ahol a verzió-érzékelés nem működik megfelelően.",
"downloadingX": "{} letöltése",
"downloadX": "{} letöltése",
"downloadedX": "{} letöltve",
"releaseAsset": "Kiadási csomag",
"downloadNotifDescription": "Értesíti a felhasználót az alkalmazás letöltésének előrehaladásáról",
"noAPKFound": "Nem található APK",
"noVersionDetection": "Nincs verzióérzékelés",
"noVersionDetection": "Nincs verzió-érzékelés",
"categorize": "Kategorizálás",
"categories": "Kategóriák",
"category": "Kategória",
@@ -211,15 +211,16 @@
"filterAPKsByRegEx": "Az APK-k szűrése reguláris kifejezéssel",
"removeFromObtainium": "Eltávolítás az Obtainiumból",
"uninstallFromDevice": "Eltávolítás az eszközről",
"onlyWorksWithNonVersionDetectApps": "Csak azoknál az alkalmazásoknál működik, amelyeknél a verzióérzékelés le van tiltva.",
"releaseDateAsVersion": "Használja a kiadás dátumát verzióként",
"releaseDateAsVersionExplanation": "Ezt a beállítást csak olyan alkalmazásoknál szabad használni, ahol a verzióérzékelés nem működik megfelelően, de elérhető a kiadás dátuma.",
"onlyWorksWithNonVersionDetectApps": "Csak azoknál az alkalmazásoknál működik, amelyeknél a verzió-érzékelés le van tiltva.",
"releaseDateAsVersion": "Használja a kiadás dátumát verzió-karakterláncként",
"releaseTitleAsVersion": "Használja a kiadás címét verzió-karakterláncként",
"releaseDateAsVersionExplanation": "Ezt a beállítást csak olyan alkalmazásoknál szabad használni, ahol a verzió-érzékelés nem működik megfelelően, de elérhető a kiadás dátuma.",
"changes": "Változások",
"releaseDate": "Kiadás dátuma",
"importFromURLsInFile": "Importálás fájlban található webcímből (pl. OPML)",
"versionDetectionExplanation": "A verziókarakterlánc egyeztetése az rendszer által észlelt verzióval",
"versionDetection": "Verzióérzékelés",
"standardVersionDetection": "Alapértelmezett verzióérzékelés",
"versionDetectionExplanation": "A verzió-karakterlánc egyeztetése az rendszer által érzékelt verzióval",
"versionDetection": "Verzió-érzékelés",
"standardVersionDetection": "Alapértelmezett verzió-érzékelés",
"groupByCategory": "Csoportosítás kategória alapján",
"autoApkFilterByArch": "Ha lehetséges, próbálja CPU architektúra szerint szűrni az APK-kat",
"overrideSource": "Forrás felülírása",
@@ -230,11 +231,11 @@
"gitlabPATLabel": "GitLab személyes hozzáférési token",
"about": "Névjegy",
"requiresCredentialsInSettings": "A(z) {} alkalmazásnak további hitelesítő adatokra van szüksége (a beállításokban)",
"checkOnStart": "Frissítések keresése indításkor",
"checkOnStart": "Frissítések ellenőrzése az alkalmazás megnyitásakor",
"tryInferAppIdFromCode": "Próbálja meg kikövetkeztetni az alkalmazás azonosítóját a forráskódból",
"removeOnExternalUninstall": "A külsőleg eltávolított alkalmazások automatikus eltávolítása",
"pickHighestVersionCode": "A legmagasabb verziószámú APK automatikus kiválasztása",
"checkUpdateOnDetailPage": "Frissítések keresése az alkalmazás részleteit tartalmazó oldal megnyitásakor",
"checkUpdateOnDetailPage": "Frissítések ellenőrzése az alkalmazás részleteit tartalmazó oldal megnyitásakor",
"disablePageTransitions": "Lap áttűnési animációk letiltása",
"reversePageTransitions": "Fordított lap áttűnési animációk",
"minStarCount": "Minimális csillagozási szám",
@@ -256,10 +257,10 @@
"intermediateLinkNotFound": "Köztes hivatkozás nem található",
"intermediateLink": "Köztes hivatkozás",
"exemptFromBackgroundUpdates": "Mentes a háttérben történő frissítések alól (ha engedélyezett)",
"bgUpdatesOnWiFiOnly": "A háttérben futó frissítések letiltása, ha nincs Wi-Fi",
"autoSelectHighestVersionCode": "A legmagasabb verziószámú APK automatikus kiválasztása",
"versionExtractionRegEx": "Verziókarakterlánc-kivonatolása reguláris kifejezéssel",
"trimVersionString": "Verziókarakterlánc levágása reguláris kifejezéssel",
"bgUpdatesOnWiFiOnly": "A háttérben történő frissítések letiltása, ha nincs Wi-Fi",
"autoSelectHighestVersionCode": "A legmagasabb verziókódú APK automatikus kiválasztása",
"versionExtractionRegEx": "Verzió-karakterlánc kivonatolása reguláris kifejezéssel",
"trimVersionString": "Verzió-karakterlánc levágása reguláris kifejezéssel",
"matchGroupToUseForX": "A(z) „{}” esetén használandó csoport egyeztetése",
"matchGroupToUse": "Verziókarakterlánc-kivonatoláshoz használandó csoport reguláris kifejezéssel való egyeztetése",
"highlightTouchTargets": "A kevésbé nyilvánvaló érintési pontok kiemelése",
@@ -269,23 +270,23 @@
"filterVersionsByRegEx": "Verziók szűrése reguláris kifejezéssel",
"trySelectingSuggestedVersionCode": "Próbálja ki a javasolt verziókódú APK-t",
"dontSortReleasesList": "Az API-ból származó kiadási sorrend megőrzése",
"reverseSort": "Fordított elrendezés",
"reverseSort": "Fordított rendezés",
"takeFirstLink": "Vegye az első hivatkozást",
"skipSort": "Rendezés kihagyása",
"debugMenu": "Hibakereső menü",
"bgTaskStarted": "A háttérfeladat elindult ellenőrizze a naplókat.",
"runBgCheckNow": "Frissítések keresése a háttérben",
"versionExtractWholePage": "„Verziókarakterlánc-kivonatolása reguláris kifejezéssel” alkalmazása az egész oldalra",
"runBgCheckNow": "Frissítések ellenőrzése a háttérben most",
"versionExtractWholePage": "„Verzió-karakterlánc kivonatolása reguláris kifejezéssel” alkalmazása az egész oldalra",
"installing": "Telepítés",
"skipUpdateNotifications": "A frissítési értesítések kihagyása",
"updatesAvailableNotifChannel": "Frissítések érhetők el",
"appsUpdatedNotifChannel": "Alkalmazások frissítve",
"appsPossiblyUpdatedNotifChannel": "Megkísérelt alkalmazás-frissítések",
"errorCheckingUpdatesNotifChannel": "Hiba a frissítések keresésekor",
"errorCheckingUpdatesNotifChannel": "Hiba a frissítések ellenőrzésekor",
"appsRemovedNotifChannel": "Eltávolított alkalmazások",
"downloadingXNotifChannel": "A(z) {} letöltése",
"completeAppInstallationNotifChannel": "Teljes alkalmazás telepítés",
"checkingForUpdatesNotifChannel": "Frissítések keresése",
"checkingForUpdatesNotifChannel": "Frissítések ellenőrzése",
"onlyCheckInstalledOrTrackOnlyApps": "Csak a telepített és a csak nyomonkövethető alkalmazások frissítéseinek ellenőrzése",
"supportFixedAPKURL": "Támogatja a rögzített APK webcímeket",
"selectX": "{} kiválasztása",
@@ -296,7 +297,7 @@
"shizukuOldAndroidWithADB": "A Shizuku csak Android < 8.1 ADB-vel fut - frissítse az Androidot vagy használja a Sui-t helyette",
"shizukuPretendToBeGooglePlay": "Állítsa be a Google Playt telepítési forrásként (ha Shizukut használ)",
"useSystemFont": "A rendszer betűtípusának használata",
"useVersionCodeAsOSVersion": "Az alkalmazás verziókódjának használata a rendszer által észlelt verzióként",
"useVersionCodeAsOSVersion": "Az alkalmazás verziókódjának használata a rendszer által érzékelt verzióként",
"requestHeader": "Kérelemfejléc",
"useLatestAssetDateAsReleaseDate": "A kiadás dátumaként használja a legutóbbi csomagfeltöltést",
"defaultPseudoVersioningMethod": "Alapértelmezett pszeudoverziós módszer",
@@ -314,7 +315,9 @@
"appVerifierInstructionToast": "Ossza meg az AppVerifierrel, majd térjen vissza ide, ha kész.",
"wiki": "Súgó/Wiki",
"crowdsourcedConfigsLabel": "Crowdsource-ből származó alkalmazások beállítása (saját felelősségére használja)",
"crowdsourcedConfigsShort": "Crowdsourced App Configs",
"allowInsecure": "Nem biztonságos HTTP-kérések engedélyezése",
"stayOneVersionBehind": "Maradjon egy verzióval a legújabb mögött",
"removeAppQuestion": {
"one": "Eltávolítja az alkalmazást?",
"other": "Eltávolítja az alkalmazásokat?"
@@ -352,8 +355,8 @@
"other": "{} nap"
},
"clearedNLogsBeforeXAfterY": {
"one": "{n} napló törölve lett ({after} után és {before} előtt)",
"other": "{n} napló törölve lett ({after} után és {before} előtt)"
"one": "{n} napló törölve lett ({after} után, és {before} előtt)",
"other": "{n} napló törölve lett ({after} után, és {before} előtt)"
},
"xAndNMoreUpdatesAvailable": {
"one": "A(z) {} és 1 további alkalmazás frissítést kapott.",

View File

@@ -154,7 +154,7 @@
"errorCheckingUpdates": "Kesalahan dalam memeriksa pembaruan",
"errorCheckingUpdatesNotifDescription": "Notifikasi yang ditampilkan saat pemeriksaan pembaruan latar belakang gagal",
"appsRemoved": "Aplikasi dihapus",
"appsRemovedNotifDescription": "Memberi tahu pengguna bahwa aplikasi aplikasi dihapus karena kesalahan saat memuatnya",
"appsRemovedNotifDescription": "Memberi tahu pengguna bahwa aplikasi dihapus karena kesalahan saat memuatnya",
"xWasRemovedDueToErrorY": "{} dihapus karena kesalahan berikut: {}",
"completeAppInstallation": "Selesaikan pemasangan aplikasi",
"obtainiumMustBeOpenToInstallApps": "Obtainium harus terbuka untuk memasang aplikasi",
@@ -204,7 +204,7 @@
"categoryDeleteWarning": "Semua aplikasi dalam kategori yang dihapus akan diatur sebagai tidak terkategori.",
"addCategory": "Tambah kategori",
"label": "Label",
"language": "Language",
"language": "Bahasa",
"copiedToClipboard": "Disalin ke papan klip",
"storagePermissionDenied": "Izin penyimpanan ditolak",
"selectedCategorizeWarning": "Ini akan mengganti pengaturan kategori yang ada untuk aplikasi terpilih.",
@@ -213,6 +213,7 @@
"uninstallFromDevice": "Copot pemasangan dari perangkat",
"onlyWorksWithNonVersionDetectApps": "Hanya bekerja untuk aplikasi dengan pendeteksi versi yang nonaktif.",
"releaseDateAsVersion": "Gunakan tanggal rilis sebagai versi string",
"releaseTitleAsVersion": "Gunakan judul rilis sebagai string versi",
"releaseDateAsVersionExplanation": "Opsi ini hanya boleh digunakan untuk aplikasi dengan pendeteksi versi yang tidak berfungsi dengan benar, tetapi tanggal rilisnya tersedia.",
"changes": "Perubahan",
"releaseDate": "Tanggal rilis",
@@ -231,8 +232,8 @@
"about": "Tentang",
"requiresCredentialsInSettings": "{} memerlukan kredensial tambahan (dalam pengaturan)",
"checkOnStart": "Periksa pembaruan saat proses memulai",
"tryInferAppIdFromCode": "Coba simpulkan ID aplikasi dari kode sumber",
"removeOnExternalUninstall": "Secara otomatis menghapus aplikasi yang dicopot pemasangannya dari luar",
"tryInferAppIdFromCode": "Coba untuk menebak ID aplikasi dari kode sumber",
"removeOnExternalUninstall": "Hapus otomatis aplikasi yang dicopot pemasangannya dari luar",
"pickHighestVersionCode": "Pilih otomatis APK dengan versi kode tertinggi",
"checkUpdateOnDetailPage": "Periksa pembaruan saat membuka halaman detail aplikasi",
"disablePageTransitions": "Nonaktifkan animasi transisi halaman",
@@ -257,7 +258,7 @@
"intermediateLink": "Tautan perantara",
"exemptFromBackgroundUpdates": "Dikecualikan dari pembaruan latar belakang (jika diaktifkan)",
"bgUpdatesOnWiFiOnly": "Nonaktifkan pembaruan latar belakang saat tidak menggunakan WiFi",
"autoSelectHighestVersionCode": "Secara otomatis pilih APK dengan versi kode tertinggi",
"autoSelectHighestVersionCode": "Pilih otomatis APK dengan versi kode tertinggi",
"versionExtractionRegEx": "Reguler ekspresi terkait ekstraksi versi string",
"trimVersionString": "Potong versi string dengan reguler ekspresi",
"matchGroupToUseForX": "Cocokkan grup yang akan digunakan untuk \"{}\"",
@@ -314,7 +315,9 @@
"appVerifierInstructionToast": "Bagikan ke AppVerifier, lalu kembali ke sini jika sudah siap.",
"wiki": "Bantuan/Wiki",
"crowdsourcedConfigsLabel": "Konfigurasi aplikasi Crowdsourced (risiko penggunaan ditanggung sendiri)",
"crowdsourcedConfigsShort": "Konfigurasi Aplikasi Crowdsourced",
"allowInsecure": "Izinkan permintaan HTTP yang tidak aman",
"stayOneVersionBehind": "Tetap satu versi di belakang versi terbaru",
"removeAppQuestion": {
"one": "Hapus aplikasi?",
"other": "Hapus aplikasi?"
@@ -356,8 +359,8 @@
"other": "Menghapus {n} catatan (sebelum = {before}, setelah = {after})"
},
"xAndNMoreUpdatesAvailable": {
"one": "{} dan 1 aplikasi lainnya mendapat pembaruan.",
"other": "{} dan {} aplikasi lainnya mendapat pembaruan."
"one": "{} dan 1 aplikasi lainnya memiliki pembaruan.",
"other": "{} dan {} aplikasi lainnya memiliki pembaruan."
},
"xAndNMoreUpdatesInstalled": {
"one": "{} dan 1 aplikasi lainnya telah diperbarui.",
@@ -375,4 +378,4 @@
"one": "{} APK",
"other": "{} APK"
}
}
}

View File

@@ -213,6 +213,7 @@
"uninstallFromDevice": "Disinstalla dal dispositivo",
"onlyWorksWithNonVersionDetectApps": "Funziona solo per le app con il rilevamento della versione disattivato.",
"releaseDateAsVersion": "Usa data di rilascio come versione",
"releaseTitleAsVersion": "Usa il titolo della versione come stringa di versione",
"releaseDateAsVersionExplanation": "Questa opzione dovrebbe essere usata solo per le app in cui il rilevamento della versione non funziona correttamente, ma è disponibile una data di rilascio.",
"changes": "Novità",
"releaseDate": "Data di rilascio",
@@ -314,7 +315,9 @@
"appVerifierInstructionToast": "Condividete con AppVerifier, quindi tornate qui quando siete pronti.",
"wiki": "Aiuto/Wiki",
"crowdsourcedConfigsLabel": "Configurazioni di app in crowdsourcing (uso a proprio rischio)",
"crowdsourcedConfigsShort": "Configurazioni di app in crowdsourcing",
"allowInsecure": "Consentire le richieste HTTP non sicure",
"stayOneVersionBehind": "Rimanere una versione indietro rispetto alla più recente",
"removeAppQuestion": {
"one": "Rimuovere l'app?",
"other": "Rimuovere le app?"

View File

@@ -213,6 +213,7 @@
"uninstallFromDevice": "デバイスからアンインストールする",
"onlyWorksWithNonVersionDetectApps": "バージョン検出を無効にしているアプリにのみ動作します。",
"releaseDateAsVersion": "リリース日をバージョンとして使用する",
"releaseTitleAsVersion": "リリースタイトルをバージョン文字列として使用",
"releaseDateAsVersionExplanation": "このオプションは、バージョン検出が正しく機能しないアプリで、リリース日が利用可能な場合にのみ使用する必要があります。",
"changes": "変更点",
"releaseDate": "リリース日",
@@ -314,7 +315,9 @@
"appVerifierInstructionToast": "AppVerifierに共有し、準備ができたらここに戻ってください。",
"wiki": "ヘルプ/ウィキ",
"crowdsourcedConfigsLabel": "クラウドソーシングによるアプリの設定(利用は自己責任で)",
"crowdsourcedConfigsShort": "クラウドソーシングによるアプリの設定",
"allowInsecure": "安全でないHTTPリクエストを許可する",
"stayOneVersionBehind": "最新バージョンから1つ遅れ",
"removeAppQuestion": {
"one": "アプリを削除しますか?",
"other": "アプリを削除しますか?"

View File

@@ -213,6 +213,7 @@
"uninstallFromDevice": "Van apparaat verwijderen",
"onlyWorksWithNonVersionDetectApps": "Werkt alleen voor apps waarbij versieherkenning is uitgeschakeld.",
"releaseDateAsVersion": "Releasedatum als versie gebruiken",
"releaseTitleAsVersion": "Gebruik releasetitel als versiestring",
"releaseDateAsVersionExplanation": "Deze optie moet alleen worden gebruikt voor apps waar versieherkenning niet correct werkt, maar waar wel een releasedatum beschikbaar is.",
"changes": "Aanpassingen",
"releaseDate": "Releasedatum",
@@ -314,7 +315,9 @@
"appVerifierInstructionToast": "Deel het met AppVerifier en keer daarna hier terug.",
"wiki": "Help/Wiki",
"crowdsourcedConfigsLabel": "Crowdsourced App-configuraties (gebruik op eigen risico)",
"crowdsourcedConfigsShort": "App-configuraties door menigte",
"allowInsecure": "Onveilige HTTP-verzoeken toestaan",
"stayOneVersionBehind": "Blijf een versie achter op de nieuwste",
"removeAppQuestion": {
"one": "App verwijderen?",
"other": "Apps verwijderen?"

View File

@@ -213,6 +213,7 @@
"uninstallFromDevice": "Odinstaluj z urządzenia",
"onlyWorksWithNonVersionDetectApps": "Działa tylko w przypadku aplikacji z wyłączonym wykrywaniem wersji.",
"releaseDateAsVersion": "Użyj daty wydania jako wersji",
"releaseTitleAsVersion": "Użyj tytułu wydania jako ciągu znaków wersji",
"releaseDateAsVersionExplanation": "Opcja ta powinna być używana tylko w przypadku aplikacji, w których wykrywanie wersji nie działa poprawnie, ale dostępna jest data wydania.",
"changes": "Zmiany",
"releaseDate": "Data wydania",
@@ -314,7 +315,9 @@
"appVerifierInstructionToast": "Udostępnij w AppVerifier, a następnie wróć tutaj, gdy będziesz gotowy.",
"wiki": "Pomoc/Wiki",
"crowdsourcedConfigsLabel": "Konfiguracje aplikacji pochodzące z crowdsourcingu (korzystanie na własne ryzyko)",
"crowdsourcedConfigsShort": "Konfiguracje aplikacji pochodzące z crowdsourcingu",
"allowInsecure": "Zezwalaj na niezabezpieczone żądania HTTP",
"stayOneVersionBehind": "Pozostań jedną wersję za najnowszą",
"removeAppQuestion": {
"one": "Usunąć aplikację?",
"few": "Usunąć aplikacje?",

View File

@@ -213,6 +213,7 @@
"uninstallFromDevice": "Desinstalar do dispositivo",
"onlyWorksWithNonVersionDetectApps": "Apenas funciona para aplicativos com detecção de versão desativada.",
"releaseDateAsVersion": "Usar data de lançamento como versão",
"releaseTitleAsVersion": "Utilizar o título da versão como cadeia de versões",
"releaseDateAsVersionExplanation": "Esta opção só deve ser usada para aplicativos onde a detecção de versão não funciona corretamente, mas há uma data de lançamento disponível.",
"changes": "Alterações",
"releaseDate": "Data de lançamento",
@@ -314,7 +315,9 @@
"appVerifierInstructionToast": "Partilhe com o AppVerifier e, em seguida, regresse aqui quando estiver pronto.",
"wiki": "Ajuda/Wiki",
"crowdsourcedConfigsLabel": "Configurações de aplicações de crowdsourcing (utilização por sua conta e risco)",
"crowdsourcedConfigsShort": "Configurações de aplicações com base em crowdsourcing",
"allowInsecure": "Permitir pedidos HTTP inseguros",
"stayOneVersionBehind": "Manter-se uma versão atrás da mais recente",
"removeAppQuestion": {
"one": "Remover aplicativo?",
"other": "Remover aplicativos?"

View File

@@ -213,6 +213,7 @@
"uninstallFromDevice": "Удалить с устройства",
"onlyWorksWithNonVersionDetectApps": "Работает только для приложений с отключенным определением версии",
"releaseDateAsVersion": "Дата выпуска вместо версии",
"releaseTitleAsVersion": "Используйте название релиза в качестве строки версии",
"releaseDateAsVersionExplanation": "Этот параметр следует использовать только для приложений, в которых определение версии не работает правильно, но имеется дата выпуска",
"changes": "Изменения",
"releaseDate": "Дата выпуска",
@@ -314,7 +315,9 @@
"appVerifierInstructionToast": "Поделитесь с AppVerifier, а затем вернитесь сюда, когда будете готовы.",
"wiki": "Помощь/Вики",
"crowdsourcedConfigsLabel": "Конфигурации приложений на основе краудсорсинга (используйте на свой страх и риск)",
"crowdsourcedConfigsShort": "Конфиги приложений с помощью краудсорсинга",
"allowInsecure": "Разрешить небезопасные HTTP-запросы",
"stayOneVersionBehind": "Не отставайте от последней версии",
"removeAppQuestion": {
"one": "Удалить приложение?",
"other": "Удалить приложения?"

View File

@@ -213,6 +213,7 @@
"uninstallFromDevice": "Avinstallera från Enheten",
"onlyWorksWithNonVersionDetectApps": "Fungerar bara för Appar med versionsdetektering inaktiverat..",
"releaseDateAsVersion": "Använd releasedatum som version",
"releaseTitleAsVersion": "Använd release-titel som versionssträng",
"releaseDateAsVersionExplanation": "Det här alternativet bör endast användas för appar där versionsidentifiering inte fungerar korrekt, men ett releasedatum är tillgängligt.",
"changes": "Ändringar",
"releaseDate": "Releasedatum",
@@ -314,7 +315,9 @@
"appVerifierInstructionToast": "Dela till AppVerifier och återvänd sedan hit när du är klar.",
"wiki": "Hjälp/Wiki",
"crowdsourcedConfigsLabel": "Crowdsourcade appkonfigurationer (använd på egen risk)",
"crowdsourcedConfigsShort": "Appkonfigurationer med hjälp av crowdsourcing",
"allowInsecure": "Tillåt osäkra HTTP-förfrågningar",
"stayOneVersionBehind": "Håll dig en version bakom den senaste",
"removeAppQuestion": {
"one": "Ta Bort App?",
"other": "Ta Bort Appar?"

View File

@@ -213,6 +213,7 @@
"uninstallFromDevice": "Cihazdan Kaldır",
"onlyWorksWithNonVersionDetectApps": "Yalnızca Sürüm Algılaması Devre Dışı Uygulamalar İçin Çalışır.",
"releaseDateAsVersion": "Sürüm Olarak Yayın Tarihi Kullan",
"releaseTitleAsVersion": "Sürüm dizesi olarak sürüm başlığını kullan",
"releaseDateAsVersionExplanation": "Bu seçenek, sürüm algılamanın doğru çalışmadığı ancak bir sürüm tarihinin mevcut olduğu uygulamalar için kullanılmalıdır.",
"changes": "Değişiklikler",
"releaseDate": "Yayın Tarihi",
@@ -314,7 +315,9 @@
"appVerifierInstructionToast": "AppVerifier ile paylaşın, hazır olduğunuzda buraya dönün.",
"wiki": "Yardım/Wiki",
"crowdsourcedConfigsLabel": "Kitle Kaynaklı Uygulama Yapılandırmaları (riski size ait olmak üzere kullanın)",
"crowdsourcedConfigsShort": "Kitle Kaynaklı Uygulama Yapılandırmaları",
"allowInsecure": "Güvensiz HTTP isteklerine izin ver",
"stayOneVersionBehind": "En son sürümün bir sürüm gerisinde kalın",
"removeAppQuestion": {
"one": "Uygulamayı Kaldır?",
"other": "Uygulamaları Kaldır?"

View File

@@ -213,6 +213,7 @@
"uninstallFromDevice": "Видалити з пристрою",
"onlyWorksWithNonVersionDetectApps": "Працює лише з застосунками з вимкненим визначенням версії.",
"releaseDateAsVersion": "Використовувати дату випуску як рядок версії",
"releaseTitleAsVersion": "Використовувати назву випуску як рядок версії",
"releaseDateAsVersionExplanation": "Цю опцію слід використовувати лише для застосунків, де визначення версії працює неправильно, але є дата випуску.",
"changes": "Зміни",
"releaseDate": "Дата випуску",
@@ -314,7 +315,9 @@
"appVerifierInstructionToast": "Надішліть на AppVerifier, а потім поверніться сюди, коли будете готові.",
"wiki": "Довідка/Вікі",
"crowdsourcedConfigsLabel": "Краудсорсингові конфігурації додатків (використовуйте на свій страх і ризик)",
"crowdsourcedConfigsShort": "Налаштування краудсорсингових додатків",
"allowInsecure": "Дозволити незахищені HTTP-запити",
"stayOneVersionBehind": "Залишайтеся на одну версію актуальнішою",
"removeAppQuestion": {
"one": "Видалити застосунок?",
"other": "Видалити застосунки?"

View File

@@ -213,6 +213,7 @@
"uninstallFromDevice": "Gỡ cài đặt khỏi thiết bị",
"onlyWorksWithNonVersionDetectApps": "Chỉ hoạt động với Ứng dụng đã tắt tính năng phát hiện phiên bản.",
"releaseDateAsVersion": "Sử dụng ngày phát hành làm phiên bản",
"releaseTitleAsVersion": "Use release title as version string",
"releaseDateAsVersionExplanation": "Chỉ nên sử dụng tùy chọn này cho Ứng dụng trong đó tính năng phát hiện phiên bản không hoạt động chính xác nhưng đã có ngày phát hành.",
"changes": "Thay đổi",
"releaseDate": "Ngày phát hành",
@@ -314,7 +315,9 @@
"appVerifierInstructionToast": "Chia sẻ lên AppVerifier, sau đó quay lại đây khi sẵn sàng.",
"wiki": "Trợ giúp/Wiki",
"crowdsourcedConfigsLabel": "Crowdsourced App Configurations (use at your own risk)",
"crowdsourcedConfigsShort": "Crowdsourced App Configs",
"allowInsecure": "Allow insecure HTTP requests",
"stayOneVersionBehind": "Stay one version behind latest",
"removeAppQuestion": {
"one": "Gỡ ứng dụng?",
"other": "Gỡ ứng dụng?"

View File

@@ -213,6 +213,7 @@
"uninstallFromDevice": "從裝置解除安裝",
"onlyWorksWithNonVersionDetectApps": "僅適用於停用版本偵測的應用程式。",
"releaseDateAsVersion": "使用發佈日期作為版本字串",
"releaseTitleAsVersion": "Use release title as version string",
"releaseDateAsVersionExplanation": "此選項僅應用於版本偵測無法正確工作但有發佈日期的應用程式。",
"changes": "變更",
"releaseDate": "發佈日期",
@@ -314,7 +315,9 @@
"appVerifierInstructionToast": "分享至 AppVerifier然後準備好時回到此處。",
"wiki": "幫助/維基",
"crowdsourcedConfigsLabel": "群眾外包的應用程式設定(使用風險自負)",
"crowdsourcedConfigsShort": "Crowdsourced App Configs",
"allowInsecure": "Allow insecure HTTP requests",
"stayOneVersionBehind": "Stay one version behind latest",
"removeAppQuestion": {
"one": "移除應用程式?",
"other": "移除應用程式?"

View File

@@ -213,6 +213,7 @@
"uninstallFromDevice": "从设备中卸载",
"onlyWorksWithNonVersionDetectApps": "仅适用于禁用版本检测的应用。",
"releaseDateAsVersion": "将发行日期作为版本号",
"releaseTitleAsVersion": "使用版本标题作为版本字符串",
"releaseDateAsVersionExplanation": "此选项应该仅用于无法进行版本检测但能够获取发行日期的应用。",
"changes": "更新日志",
"releaseDate": "发行日期",
@@ -314,7 +315,9 @@
"appVerifierInstructionToast": "分享至 AppVerifier完成后返回此处。",
"wiki": "帮助/Wiki",
"crowdsourcedConfigsLabel": "众包应用程序配置(使用风险自负)",
"crowdsourcedConfigsShort": "众包应用程序配置",
"allowInsecure": "允许不安全的 HTTP 请求",
"stayOneVersionBehind": "比最新版本晚一个版本",
"removeAppQuestion": {
"one": "是否删除应用?",
"other": "是否删除应用?"

View File

@@ -1 +1 @@
Get android app updates directly from the source
Get Android app updates directly from the source

View File

@@ -2,6 +2,7 @@ import 'package:device_info_plus/device_info_plus.dart';
import 'package:easy_localization/easy_localization.dart';
import 'package:html/parser.dart';
import 'package:obtainium/app_sources/html.dart';
import 'package:obtainium/components/generated_form.dart';
import 'package:obtainium/custom_errors.dart';
import 'package:obtainium/providers/source_provider.dart';
@@ -26,6 +27,16 @@ class APKPure extends AppSource {
allowSubDomains = true;
naiveStandardVersionDetection = true;
showReleaseDateAsVersionToggle = true;
additionalSourceAppSpecificSettingFormItems = [
[
GeneratedFormSwitch('fallbackToOlderReleases',
label: tr('fallbackToOlderReleases'), defaultValue: true)
],
[
GeneratedFormSwitch('stayOneVersionBehind',
label: tr('stayOneVersionBehind'), defaultValue: false)
]
];
}
@override
@@ -54,6 +65,97 @@ class APKPure extends AppSource {
return Uri.parse(standardUrl).pathSegments.last;
}
getDetailsForVersionLink(
String standardUrl,
String appId,
String host,
List<String> supportedArchs,
String link,
Map<String, dynamic> additionalSettings) async {
var res = await sourceRequest(link, additionalSettings);
if (res.statusCode == 200) {
var html = parse(res.body);
var apksDiv =
html.querySelector('#version-list div div.show-more-content');
DateTime? topReleaseDate;
var apkUrls = apksDiv
?.querySelectorAll('div.group-title')
.map((e) {
String architectureString = e.text.trim();
if (architectureString.toLowerCase() == 'unlimited' ||
architectureString.toLowerCase() == 'universal') {
architectureString = '';
}
List<String> architectures = architectureString
.split(',')
.map((e) => e.trim())
.where((e) => e.isNotEmpty)
.toList();
// Only take the first APK for each architecture, ignore others for now, for simplicity
// Unclear why there can even be multiple APKs for the same version and arch
var apkInfo = e.nextElementSibling?.querySelector('div.info');
String? versionCode = RegExp('[0-9]+')
.firstMatch(apkInfo
?.querySelector('div.info-top span.code')
?.text ??
'')
?.group(0)
?.trim();
var types = apkInfo
?.querySelectorAll('div.info-top span.tag')
.map((e) => e.text.trim())
.map((t) => t == 'APKs' ? 'APK' : t) ??
[];
String type = types.isEmpty
? 'APK'
: types.length == 1
? types.first
: types.last;
String? dateString = apkInfo
?.querySelector('div.info-bottom span.time')
?.text
.trim();
DateTime? releaseDate = parseDateTimeMMMddCommayyyy(dateString);
if (additionalSettings['autoApkFilterByArch'] == true &&
architectures.isNotEmpty &&
architectures
.where((a) => supportedArchs.contains(a))
.isEmpty) {
return const MapEntry('', '');
}
topReleaseDate ??=
releaseDate; // Just use the release date of the first APK in the list as the release date for this version
return MapEntry(
'$appId-$versionCode-$architectureString.${type.toLowerCase()}',
'https://d.${hosts.contains(host) ? 'cdnpure.com' : host}/b/$type/$appId?versionCode=$versionCode');
})
.where((e) => e.key.isNotEmpty)
.toList() ??
[];
if (apkUrls.isEmpty) {
throw NoAPKError();
}
String version = Uri.parse(link).pathSegments.last;
String author = html
.querySelector('span.info-sdk')
?.text
.trim()
.substring(version.length + 4) ??
Uri.parse(standardUrl).pathSegments.reversed.last;
String appName =
html.querySelector('h1.info-title')?.text.trim() ?? appId;
String? changeLog = html
.querySelector('div.module.change-log')
?.innerHtml
.trim()
.replaceAll("<br>", " \n");
return APKDetails(version, apkUrls, AppNames(author, appName),
releaseDate: topReleaseDate, changeLog: changeLog);
} else {
throw getObtainiumHttpError(res);
}
}
@override
Future<APKDetails> getLatestAPKDetails(
String standardUrl,
@@ -80,88 +182,17 @@ class APKPure extends AppSource {
for (var i = 0; i < versionLinks.length; i++) {
var link = versionLinks[i];
var res = await sourceRequest(link.key, additionalSettings);
if (res.statusCode == 200) {
var html = parse(res.body);
var apksDiv =
html.querySelector('#version-list div div.show-more-content');
DateTime? topReleaseDate;
var apkUrls = apksDiv
?.querySelectorAll('div.group-title')
.map((e) {
String architectureString = e.text.trim();
if (architectureString.toLowerCase() == 'unlimited' ||
architectureString.toLowerCase() == 'universal') {
architectureString = '';
}
List<String> architectures = architectureString
.split(',')
.map((e) => e.trim())
.where((e) => e.isNotEmpty)
.toList();
// Only take the first APK for each architecture, ignore others for now, for simplicity
// Unclear why there can even be multiple APKs for the same version and arch
var apkInfo = e.nextElementSibling?.querySelector('div.info');
String? versionCode = RegExp('[0-9]+')
.firstMatch(apkInfo
?.querySelector('div.info-top span.code')
?.text ??
'')
?.group(0)
?.trim();
var types = apkInfo
?.querySelectorAll('div.info-top span.tag')
.map((e) => e.text.trim())
.map((t) => t == 'APKs' ? 'APK' : t) ??
[];
String type = types.isEmpty
? 'APK'
: types.length == 1
? types.first
: types.last;
String? dateString = apkInfo
?.querySelector('div.info-bottom span.time')
?.text
.trim();
DateTime? releaseDate =
parseDateTimeMMMddCommayyyy(dateString);
if (additionalSettings['autoApkFilterByArch'] == true &&
architectures.isNotEmpty &&
architectures
.where((a) => supportedArchs.contains(a))
.isEmpty) {
return const MapEntry('', '');
}
topReleaseDate ??=
releaseDate; // Just use the release date of the first APK in the list as the release date for this version
return MapEntry(
'$appId-$versionCode-$architectureString.${type.toLowerCase()}',
'https://d.${hosts.contains(host) ? 'cdnpure.com' : host}/b/$type/$appId?versionCode=$versionCode');
})
.where((e) => e.key.isNotEmpty)
.toList() ??
[];
if (apkUrls.isEmpty) {
continue;
try {
if (i == 0 && additionalSettings['stayOneVersionBehind'] == true) {
throw NoReleasesError();
}
return await getDetailsForVersionLink(standardUrl, appId, host,
supportedArchs, link.key, additionalSettings);
} catch (e) {
if (additionalSettings['fallbackToOlderReleases'] != true ||
i == versionLinks.length - 1) {
rethrow;
}
String version = Uri.parse(link.key).pathSegments.last;
String author = html
.querySelector('span.info-sdk')
?.text
.trim()
.substring(version.length + 4) ??
Uri.parse(standardUrl).pathSegments.reversed.last;
String appName =
html.querySelector('h1.info-title')?.text.trim() ?? appId;
String? changeLog = html
.querySelector('div.module.change-log')
?.innerHtml
.trim()
.replaceAll("<br>", " \n");
return APKDetails(version, apkUrls, AppNames(author, appName),
releaseDate: topReleaseDate, changeLog: changeLog);
} else {
throw getObtainiumHttpError(res);
}
}
throw NoAPKError();

View File

@@ -81,6 +81,10 @@ class GitHub extends AppSource {
[
GeneratedFormSwitch('useLatestAssetDateAsReleaseDate',
label: tr('useLatestAssetDateAsReleaseDate'), defaultValue: false)
],
[
GeneratedFormSwitch('releaseTitleAsVersion',
label: tr('releaseTitleAsVersion'), defaultValue: false)
]
];
@@ -396,7 +400,9 @@ class GitHub extends AppSource {
targetRelease = releases[i];
targetRelease['apkUrls'] = apkUrls;
targetRelease['version'] =
targetRelease['tag_name'] ?? targetRelease['name'];
additionalSettings['releaseTitleAsVersion'] == true
? nameToFilter
: targetRelease['tag_name'] ?? targetRelease['name'];
if (targetRelease['tarball_url'] != null) {
allAssetUrls.add(MapEntry(
(targetRelease['version'] ?? 'source') + '.tar.gz',

View File

@@ -60,8 +60,17 @@ class SourceHut extends AppSource {
int ind = 0;
for (var entry in parsedHtml.querySelectorAll('item').sublist(0, 6)) {
// Limit 5 for speed
if (!fallbackToOlderReleases && ind > 0) {
ind++;
String releasePage = // querySelector('link') fails for some reason
entry
.querySelector('guid') // Luckily guid is identical
?.innerHtml
.trim() ??
'';
if (!releasePage.startsWith('$standardUrl/refs')) {
continue;
}
if (!fallbackToOlderReleases && ind > 1) {
break;
}
String? version = entry.querySelector('title')?.text.trim();
@@ -69,7 +78,6 @@ class SourceHut extends AppSource {
throw NoVersionError();
}
String? releaseDateString = entry.querySelector('pubDate')?.innerHtml;
String releasePage = '$standardUrl/refs/$version';
DateTime? releaseDate;
try {
releaseDate = releaseDateString != null
@@ -98,7 +106,6 @@ class SourceHut extends AppSource {
AppNames(entry.querySelector('author')?.innerHtml.trim() ?? appName,
appName),
releaseDate: releaseDate));
ind++;
}
if (apkDetailsList.isEmpty) {
throw NoReleasesError();

View File

@@ -30,6 +30,7 @@ class AddAppPageState extends State<AddAppPage> {
String userInput = '';
String searchQuery = '';
String? pickedSourceOverride;
String? previousPickedSourceOverride;
AppSource? pickedSource;
Map<String, dynamic> additionalSettings = {};
bool additionalSettingsValid = true;
@@ -58,6 +59,9 @@ class AddAppPageState extends State<AddAppPage> {
if (overrideSource != null) {
pickedSourceOverride = overrideSource;
}
bool overrideChanged =
pickedSourceOverride != previousPickedSourceOverride;
previousPickedSourceOverride = pickedSourceOverride;
if (updateUrlInput) {
urlInputKey++;
}
@@ -69,6 +73,7 @@ class AddAppPageState extends State<AddAppPage> {
overrideSource: pickedSourceOverride)
: null;
if (pickedSource.runtimeType != source.runtimeType ||
overrideChanged ||
(prevHost != null && prevHost != source?.hosts[0])) {
pickedSource = source;
pickedSource?.runOnAddAppInputChange(userInput);
@@ -487,7 +492,8 @@ class AddAppPageState extends State<AddAppPage> {
height: 16,
),
GeneratedForm(
key: Key(pickedSource.runtimeType.toString()),
key: Key(
'${pickedSource.runtimeType.toString()}-${pickedSource?.hostChanged.toString()}-${pickedSource?.hostIdenticalDespiteAnyChange.toString()}'),
items: [
...pickedSource!.combinedAppSpecificSettingFormItems,
...(pickedSourceOverride != null
@@ -538,6 +544,7 @@ class AddAppPageState extends State<AddAppPage> {
Widget getSourcesListWidget() => Padding(
padding: const EdgeInsets.all(16),
child: Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
GestureDetector(
onTap: () {
@@ -594,7 +601,20 @@ class AddAppPageState extends State<AddAppPage> {
fontWeight: FontWeight.bold,
decoration: TextDecoration.underline,
fontStyle: FontStyle.italic),
))
)),
GestureDetector(
onTap: () {
launchUrlString('https://apps.obtainium.imranr.dev/',
mode: LaunchMode.externalApplication);
},
child: Text(
tr('crowdsourcedConfigsShort'),
style: const TextStyle(
fontWeight: FontWeight.bold,
decoration: TextDecoration.underline,
fontStyle: FontStyle.italic),
),
),
],
),
);

View File

@@ -242,11 +242,11 @@ class _AppPageState extends State<AppPage> {
);
}
getFullInfoColumn() => Column(
getFullInfoColumn({bool small = false}) => Column(
mainAxisAlignment: MainAxisAlignment.center,
crossAxisAlignment: CrossAxisAlignment.stretch,
children: [
const SizedBox(height: 20),
SizedBox(height: small ? 5 : 20),
FutureBuilder(
future:
appsProvider.updateAppIcon(app?.app.id, ignoreCache: true),
@@ -261,24 +261,28 @@ class _AppPageState extends State<AppPage> {
: () => pm.openApp(app.app.id),
child: Image.memory(
app!.icon!,
height: 150,
height: small ? 70 : 150,
gaplessPlayback: true,
),
)
])
: Container();
}),
const SizedBox(
height: 25,
SizedBox(
height: small ? 10 : 25,
),
Text(
app?.name ?? tr('app'),
textAlign: TextAlign.center,
style: Theme.of(context).textTheme.displayLarge,
style: small
? Theme.of(context).textTheme.displaySmall
: Theme.of(context).textTheme.displayLarge,
),
Text(tr('byX', args: [app?.app.author ?? tr('unknown')]),
textAlign: TextAlign.center,
style: Theme.of(context).textTheme.headlineMedium),
style: small
? Theme.of(context).textTheme.headlineSmall
: Theme.of(context).textTheme.headlineMedium),
const SizedBox(
height: 24,
),
@@ -496,11 +500,8 @@ class _AppPageState extends State<AppPage> {
builder: (BuildContext ctx) {
return AlertDialog(
scrollable: true,
content: getInfoColumn(),
title: Text(
'${app.name} ${tr('byX', args: [
app.app.author
])}'),
content: getFullInfoColumn(small: true),
title: Text(app.name),
actions: [
TextButton(
onPressed: () {

View File

@@ -578,6 +578,22 @@ class _SettingsPageState extends State<SettingsPage> {
})
],
),
height16,
Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: [
Flexible(
child: Text(
tr('shizukuPretendToBeGooglePlay'))),
Switch(
value: settingsProvider
.shizukuPretendToBeGooglePlay,
onChanged: (value) {
settingsProvider
.shizukuPretendToBeGooglePlay = value;
})
],
),
height32,
Text(
tr('sourceSpecific'),

View File

@@ -565,9 +565,11 @@ class AppsProvider with ChangeNotifier {
return false;
}
if (app.additionalSettings['exemptFromBackgroundUpdates'] == true) {
logs.add('Exempted from BG updates: ${app.id}');
return false;
}
if (app.apkUrls.length > 1) {
logs.add('Multiple APK URLs: ${app.id}');
return false; // Manual API selection means silent install is not possible
}
@@ -579,6 +581,8 @@ class AppsProvider with ChangeNotifier {
?.installingPackageName
: (await pm.getInstallerPackageName(packageName: app.id));
} catch (e) {
logs.add(
'Failed to get installed package details: ${app.id} (${e.toString()})');
return false; // App probably not installed
}
@@ -587,6 +591,7 @@ class AppsProvider with ChangeNotifier {
// The APK should target a new enough API
// https://developer.android.com/reference/android/content/pm/PackageInstaller.SessionParams#setRequireUserAction(int)
if (!(targetSDK != null && targetSDK >= (osInfo.version.sdkInt - 3))) {
logs.add('Multiple APK URLs: ${app.id}');
return false;
}
@@ -601,8 +606,12 @@ class AppsProvider with ChangeNotifier {
// If we did not install the app, silent install is not possible
return false;
}
// The OS must also be new enough
return osInfo.version.sdkInt >= 31;
if (osInfo.version.sdkInt < 31) {
// The OS must also be new enough
logs.add('Android SDK too old: ${osInfo.version.sdkInt}');
return false;
}
return true;
}
Future<void> waitForUserToReturnToForeground(BuildContext context) async {
@@ -879,22 +888,20 @@ class AppsProvider with ChangeNotifier {
apps[id]?.installedInfo == null ? context : null;
bool needBGWorkaround =
willBeSilent && context == null && !settingsProvider.useShizuku;
bool shizukuPretendToBeGooglePlay = settingsProvider
.shizukuPretendToBeGooglePlay ||
apps[id]!.app.additionalSettings['shizukuPretendToBeGooglePlay'] ==
true;
if (downloadedFile != null) {
if (needBGWorkaround) {
// ignore: use_build_context_synchronously
installApk(downloadedFile, contextIfNewInstall,
needsBGWorkaround: true,
shizukuPretendToBeGooglePlay: apps[id]!
.app
.additionalSettings['shizukuPretendToBeGooglePlay'] ==
true);
shizukuPretendToBeGooglePlay: shizukuPretendToBeGooglePlay);
} else {
// ignore: use_build_context_synchronously
sayInstalled = await installApk(downloadedFile, contextIfNewInstall,
shizukuPretendToBeGooglePlay: apps[id]!
.app
.additionalSettings['shizukuPretendToBeGooglePlay'] ==
true);
shizukuPretendToBeGooglePlay: shizukuPretendToBeGooglePlay);
}
} else {
if (needBGWorkaround) {
@@ -905,10 +912,7 @@ class AppsProvider with ChangeNotifier {
// ignore: use_build_context_synchronously
sayInstalled = await installXApkDir(
downloadedDir!, contextIfNewInstall,
shizukuPretendToBeGooglePlay: apps[id]!
.app
.additionalSettings['shizukuPretendToBeGooglePlay'] ==
true);
shizukuPretendToBeGooglePlay: shizukuPretendToBeGooglePlay);
}
}
if (willBeSilent && context == null) {

View File

@@ -48,7 +48,7 @@ class SettingsProvider with ChangeNotifier {
notifyListeners();
}
bool get useShizuku{
bool get useShizuku {
return prefs?.getBool('useShizuku') ?? false;
}
@@ -69,8 +69,7 @@ class SettingsProvider with ChangeNotifier {
Color get themeColor {
int? colorCode = prefs?.getInt('themeColor');
return (colorCode != null) ?
Color(colorCode) : obtainiumThemeColor;
return (colorCode != null) ? Color(colorCode) : obtainiumThemeColor;
}
set themeColor(Color themeColor) {
@@ -469,4 +468,13 @@ class SettingsProvider with ChangeNotifier {
prefs?.setBool('beforeNewInstallsShareToAppVerifier', val);
notifyListeners();
}
bool get shizukuPretendToBeGooglePlay {
return prefs?.getBool('shizukuPretendToBeGooglePlay') ?? false;
}
set shizukuPretendToBeGooglePlay(bool val) {
prefs?.setBool('shizukuPretendToBeGooglePlay', val);
notifyListeners();
}
}

View File

@@ -414,6 +414,7 @@ HttpClient createHttpClient(bool insecure) {
abstract class AppSource {
List<String> hosts = [];
bool hostChanged = false;
bool hostIdenticalDespiteAnyChange = false;
late String name;
bool enforceTrackOnly = false;
bool changeLogIfAnyIsMarkDown = true;
@@ -628,9 +629,10 @@ abstract class AppSource {
SettingsProvider settingsProvider) async {
Map<String, String> results = {};
for (var e in sourceConfigSettingFormItems) {
var val = hostChanged
var val = hostChanged && !hostIdenticalDespiteAnyChange
? additionalSettings[e.key]
: settingsProvider.getSettingString(e.key);
: additionalSettings[e.key] ??
settingsProvider.getSettingString(e.key);
if (val != null) {
results[e.key] = val;
}
@@ -813,9 +815,14 @@ class SourceProvider {
throw UnsupportedURLError();
}
var res = srcs.first;
res.hosts = [Uri.parse(url).host];
var originalHosts = res.hosts;
var newHost = Uri.parse(url).host;
res.hosts = [newHost];
res.hostChanged = true;
return srcs.first;
if (originalHosts.contains(newHost)) {
res.hostIdenticalDespiteAnyChange = true;
}
return res;
}
AppSource? source;
for (var s in sources.where((element) => element.hosts.isNotEmpty)) {

View File

@@ -87,10 +87,10 @@ packages:
dependency: transitive
description:
name: args
sha256: "7cf60b9f0cc88203c5a190b4cd62a99feea42759a7fa695010eb5de1c0b2252a"
sha256: bf9f5caeea8d8fe6721a9c358dd8a5c1947b27f1cfaa18b39c301273594919e6
url: "https://pub.dev"
source: hosted
version: "2.5.0"
version: "2.6.0"
async:
dependency: transitive
description:
@@ -215,10 +215,10 @@ packages:
dependency: "direct main"
description:
name: device_info_plus
sha256: a7fd703482b391a87d60b6061d04dfdeab07826b96f9abd8f5ed98068acc0074
sha256: db03b2d2a3fa466a4627709e1db58692c3f7f658e36a5942d342d86efedc4091
url: "https://pub.dev"
source: hosted
version: "10.1.2"
version: "11.0.0"
device_info_plus_platform_interface:
dependency: transitive
description:
@@ -279,10 +279,10 @@ packages:
dependency: transitive
description:
name: file
sha256: "5fc22d7c25582e38ad9a8515372cd9a93834027aacf1801cf01164dac0ffa08c"
sha256: a3b4f84adafef897088c160faf7dfffb7696046cb13ae90b508c2cbc95d3b8d4
url: "https://pub.dev"
source: hosted
version: "7.0.0"
version: "7.0.1"
file_picker:
dependency: "direct main"
description:
@@ -433,18 +433,18 @@ packages:
dependency: "direct main"
description:
name: flutter_markdown
sha256: e17575ca576a34b46c58c91f9948891117a1bd97815d2e661813c7f90c647a78
sha256: bd9c475d9aae256369edacafc29d1e74c81f78a10cdcdacbbbc9e3c43d009e4a
url: "https://pub.dev"
source: hosted
version: "0.7.3+2"
version: "0.7.4"
flutter_plugin_android_lifecycle:
dependency: transitive
description:
name: flutter_plugin_android_lifecycle
sha256: "9ee02950848f61c4129af3d6ec84a1cfc0e47931abc746b03e7a3bc3e8ff6eda"
sha256: "9b78450b89f059e96c9ebb355fa6b3df1d6b330436e0b885fb49594c41721398"
url: "https://pub.dev"
source: hosted
version: "2.0.22"
version: "2.0.23"
flutter_test:
dependency: "direct dev"
description: flutter
@@ -611,10 +611,10 @@ packages:
dependency: transitive
description:
name: mime
sha256: "801fd0b26f14a4a58ccb09d5892c3fbdeff209594300a542492cf13fba9d247a"
sha256: "41a20518f0cb1256669420fdba0cd90d21561e560ac240f26ef8322e45bb7ed6"
url: "https://pub.dev"
source: hosted
version: "1.0.6"
version: "2.0.0"
nested:
dependency: transitive
description:
@@ -651,10 +651,10 @@ packages:
dependency: transitive
description:
name: path_provider_android
sha256: "6f01f8e37ec30b07bc424b4deabac37cacb1bc7e2e515ad74486039918a37eb7"
sha256: c464428172cb986b758c6d1724c603097febb8fb855aa265aeecc9280c294d4a
url: "https://pub.dev"
source: hosted
version: "2.2.10"
version: "2.2.12"
path_provider_foundation:
dependency: transitive
description:
@@ -803,18 +803,18 @@ packages:
dependency: "direct main"
description:
name: share_plus
sha256: "468c43f285207c84bcabf5737f33b914ceb8eb38398b91e5e3ad1698d1b72a52"
sha256: fec12c3c39f01e4df1ec6ad92b6e85503c5ca64ffd6e28d18c9ffe53fcc4cb11
url: "https://pub.dev"
source: hosted
version: "10.0.2"
version: "10.0.3"
share_plus_platform_interface:
dependency: transitive
description:
name: share_plus_platform_interface
sha256: "6ababf341050edff57da8b6990f11f4e99eaba837865e2e6defe16d039619db5"
sha256: c57c0bbfec7142e3a0f55633be504b796af72e60e3c791b44d5a017b985f7a48
url: "https://pub.dev"
source: hosted
version: "5.0.0"
version: "5.0.1"
shared_preferences:
dependency: "direct main"
description:
@@ -827,18 +827,18 @@ packages:
dependency: transitive
description:
name: shared_preferences_android
sha256: "480ba4345773f56acda9abf5f50bd966f581dac5d514e5fc4a18c62976bbba7e"
sha256: "3b9febd815c9ca29c9e3520d50ec32f49157711e143b7a4ca039eb87e8ade5ab"
url: "https://pub.dev"
source: hosted
version: "2.3.2"
version: "2.3.3"
shared_preferences_foundation:
dependency: transitive
description:
name: shared_preferences_foundation
sha256: c4b35f6cb8f63c147312c054ce7c2254c8066745125264f0c88739c417fc9d9f
sha256: "07e050c7cd39bad516f8d64c455f04508d09df104be326d8c02551590a0d513d"
url: "https://pub.dev"
source: hosted
version: "2.5.2"
version: "2.5.3"
shared_preferences_linux:
dependency: transitive
description:
@@ -913,18 +913,42 @@ packages:
dependency: "direct main"
description:
name: sqflite
sha256: ff5a2436ef8ebdfda748fbfe957f9981524cb5ff11e7bafa8c42771840e8a788
sha256: "79a297dc3cc137e758c6a4baf83342b039e5a6d2436fcdf3f96a00adaaf2ad62"
url: "https://pub.dev"
source: hosted
version: "2.3.3+2"
version: "2.4.0"
sqflite_android:
dependency: transitive
description:
name: sqflite_android
sha256: "78f489aab276260cdd26676d2169446c7ecd3484bbd5fead4ca14f3ed4dd9ee3"
url: "https://pub.dev"
source: hosted
version: "2.4.0"
sqflite_common:
dependency: transitive
description:
name: sqflite_common
sha256: "2d8e607db72e9cb7748c9c6e739e2c9618320a5517de693d5a24609c4671b1a4"
sha256: "4468b24876d673418a7b7147e5a08a715b4998a7ae69227acafaab762e0e5490"
url: "https://pub.dev"
source: hosted
version: "2.5.4+4"
version: "2.5.4+5"
sqflite_darwin:
dependency: transitive
description:
name: sqflite_darwin
sha256: "769733dddf94622d5541c73e4ddc6aa7b252d865285914b6fcd54a63c4b4f027"
url: "https://pub.dev"
source: hosted
version: "2.4.1-1"
sqflite_platform_interface:
dependency: transitive
description:
name: sqflite_platform_interface
sha256: "8dd4515c7bdcae0a785b0062859336de775e8c65db81ae33dd5445f35be61920"
url: "https://pub.dev"
source: hosted
version: "2.4.0"
stack_trace:
dependency: transitive
description:
@@ -993,18 +1017,18 @@ packages:
dependency: "direct main"
description:
name: url_launcher
sha256: "21b704ce5fa560ea9f3b525b43601c678728ba46725bab9b01187b4831377ed3"
sha256: "9d06212b1362abc2f0f0d78e6f09f726608c74e3b9462e8368bb03314aa8d603"
url: "https://pub.dev"
source: hosted
version: "6.3.0"
version: "6.3.1"
url_launcher_android:
dependency: transitive
description:
name: url_launcher_android
sha256: e35a698ac302dd68e41f73250bd9517fe3ab5fa4f18fe4647a0872db61bacbab
sha256: "8fc3bae0b68c02c47c5c86fa8bfa74471d42687b0eded01b78de87872db745e2"
url: "https://pub.dev"
source: hosted
version: "6.3.10"
version: "6.3.12"
url_launcher_ios:
dependency: transitive
description:
@@ -1089,18 +1113,18 @@ packages:
dependency: "direct main"
description:
name: webview_flutter
sha256: ec81f57aa1611f8ebecf1d2259da4ef052281cb5ad624131c93546c79ccc7736
sha256: "889a0a678e7c793c308c68739996227c9661590605e70b1f6cf6b9a6634f7aec"
url: "https://pub.dev"
source: hosted
version: "4.9.0"
version: "4.10.0"
webview_flutter_android:
dependency: transitive
description:
name: webview_flutter_android
sha256: "6e64fcb1c19d92024da8f33503aaeeda35825d77142c01d0ea2aa32edc79fdc8"
sha256: "74693a212d990b32e0b7055d27db973a18abf31c53942063948cdfaaef9787ba"
url: "https://pub.dev"
source: hosted
version: "3.16.7"
version: "4.0.0"
webview_flutter_platform_interface:
dependency: transitive
description:
@@ -1113,18 +1137,18 @@ packages:
dependency: transitive
description:
name: webview_flutter_wkwebview
sha256: "1942a12224ab31e9508cf00c0c6347b931b023b8a4f0811e5dec3b06f94f117d"
sha256: d4034901d96357beb1b6717ebf7d583c88e40cfc6eb85fe76dd1bf0979a9f251
url: "https://pub.dev"
source: hosted
version: "3.15.0"
version: "3.16.0"
win32:
dependency: transitive
description:
name: win32
sha256: "68d1e89a91ed61ad9c370f9f8b6effed9ae5e0ede22a270bdfa6daf79fc2290a"
sha256: e5c39a90447e7c81cfec14b041cdbd0d0916bd9ebbc7fe02ab69568be703b9bd
url: "https://pub.dev"
source: hosted
version: "5.5.4"
version: "5.6.0"
win32_registry:
dependency: transitive
description:
@@ -1137,10 +1161,10 @@ packages:
dependency: transitive
description:
name: xdg_directories
sha256: faea9dee56b520b55a566385b84f2e8de55e7496104adada9962e0bd11bcff1d
sha256: "7a3f37b05d989967cdddcbb571f1ea834867ae2faa29725fd085180e0883aa15"
url: "https://pub.dev"
source: hosted
version: "1.0.4"
version: "1.1.0"
xml:
dependency: transitive
description:

View File

@@ -17,7 +17,7 @@ publish_to: 'none' # Remove this line if you wish to publish to pub.dev
# https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html
# In Windows, build-name is used as the major, minor, and patch parts
# of the product and file versions while build-number is used as the build suffix.
version: 1.1.24+2281
version: 1.1.27+2284
environment:
sdk: '>=3.0.0 <4.0.0'
@@ -48,7 +48,7 @@ dependencies:
url_launcher: ^6.1.5
permission_handler: ^11.0.0
fluttertoast: ^8.0.9
device_info_plus: ^10.0.1
device_info_plus: ^11.0.0
file_picker: ^8.0.0+1
animations: ^2.0.4
android_package_installer: