mirror of
https://github.com/ImranR98/Obtainium.git
synced 2025-08-19 05:00:21 +02:00
Compare commits
15 Commits
Author | SHA1 | Date | |
---|---|---|---|
|
36db226024 | ||
|
6fbdf62afa | ||
|
9344ebbb06 | ||
|
51b66ab983 | ||
|
7f2a9b6fa5 | ||
|
ac6bc4d786 | ||
|
acd30b516c | ||
|
5bc9234101 | ||
|
80d15f5232 | ||
|
eb7c2a9fc4 | ||
|
40175468b2 | ||
|
814b5a71bd | ||
|
38a1e43116 | ||
|
5064b78c79 | ||
|
767350e4e3 |
2
.flutter
2
.flutter
Submodule .flutter updated: 603104015d...dec2ee5c1f
@@ -7,10 +7,12 @@ Get Android app updates straight from the source.
|
||||
Obtainium allows you to install and update apps directly from their releases pages, and receive notifications when new releases are made available.
|
||||
|
||||
More info:
|
||||
- [Obtainium/wiki](https://github.com/ImranR98/Obtainium/wiki)
|
||||
- [Obtainium Wiki](https://github.com/ImranR98/Obtainium/wiki)
|
||||
- [AppVerifier](https://github.com/soupslurpr/AppVerifier) - App verification tool (recommended, integrates with Obtainium)
|
||||
- [apps.obtainium.imranr.dev](https://apps.obtainium.imranr.dev/) - Crowdsourced app configurations
|
||||
- [apps.obtainium.imranr.dev](https://apps.obtainium.imranr.dev/) - Crowdsourced app configurations ([repository](https://github.com/ImranR98/apps.obtainium.imranr.dev))
|
||||
- [Side Of Burritos - You should use this instead of F-Droid | How to use app RSS feed](https://youtu.be/FFz57zNR_M0) - Original motivation for this app
|
||||
- [Website](https://obtainium.imranr.dev) ([repository](https://github.com/ImranR98/obtainium.imranr.dev))
|
||||
- [Source code](https://github.com/ImranR98/Obtainium)
|
||||
|
||||
Currently supported App sources:
|
||||
- Open Source - General:
|
||||
@@ -64,8 +66,6 @@ Verification info:
|
||||
- Note: The above signature is also valid for the F-Droid flavour of Obtainium, thanks to [reproducible builds](https://f-droid.org/docs/Reproducible_Builds/).
|
||||
- [PGP Public Key](https://keyserver.ubuntu.com/pks/lookup?search=contact%40imranr.dev&fingerprint=on&op=index) (to verify APK hashes)
|
||||
|
||||
|
||||
|
||||
## Limitations
|
||||
- For some sources, data is gathered using Web scraping and can easily break due to changes in website design. In such cases, more reliable methods may be unavailable.
|
||||
|
||||
|
@@ -213,7 +213,7 @@
|
||||
"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",
|
||||
"changes": "Változásnapló",
|
||||
"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 érzékelt verzióval",
|
||||
|
@@ -147,21 +147,21 @@
|
||||
"noNewUpdates": "新しいアップデートはありません",
|
||||
"xHasAnUpdate": "{} のアップデートが利用可能です。",
|
||||
"appsUpdated": "アプリをアップデートしました",
|
||||
"appsNotUpdated": "アプリケーションの更新に失敗",
|
||||
"appsNotUpdated": "アプリのアップデートに失敗しました",
|
||||
"appsUpdatedNotifDescription": "1つまたは複数のAppのアップデートがバックグラウンドで適用されたことをユーザーに通知する",
|
||||
"xWasUpdatedToY": "{} が {} にアップデートされました",
|
||||
"xWasNotUpdatedToY": "への更新に失敗しました。",
|
||||
"xWasNotUpdatedToY": "{} の {} へのアップデートに失敗しました",
|
||||
"errorCheckingUpdates": "アップデート確認中のエラー",
|
||||
"errorCheckingUpdatesNotifDescription": "バックグラウンドでのアップデート確認に失敗した際に表示される通知",
|
||||
"appsRemoved": "削除されたアプリ",
|
||||
"appsRemovedNotifDescription": "アプリの読み込み中にエラーが発生したため、1つまたは複数のアプリが削除されたことをユーザーに通知する",
|
||||
"xWasRemovedDueToErrorY": "このエラーのため、{} は削除されました: {}",
|
||||
"completeAppInstallation": "アプリのインストールを完了する",
|
||||
"obtainiumMustBeOpenToInstallApps": "アプリをインストールするにはObtainiumが開いている必要があります",
|
||||
"obtainiumMustBeOpenToInstallApps": "アプリをインストールするにはObtainiumを開く必要があります",
|
||||
"completeAppInstallationNotifDescription": "アプリのインストールを完了するために、Obtainiumに戻る必要があります",
|
||||
"checkingForUpdates": "アップデートを確認中",
|
||||
"checkingForUpdatesNotifDescription": "アップデートを確認する際に表示される一時的な通知",
|
||||
"pleaseAllowInstallPerm": "Obtainiumによるアプリのインストールを許可してください。",
|
||||
"pleaseAllowInstallPerm": "Obtainiumによるアプリのインストールを許可してください",
|
||||
"trackOnly": "追跡のみ",
|
||||
"errorWithHttpStatusCode": "エラー {}",
|
||||
"versionCorrectionDisabled": "バージョン補正無効 (プラグインが動作していません)",
|
||||
@@ -211,7 +211,7 @@
|
||||
"uninstallFromDevice": "デバイスからアンインストールする",
|
||||
"onlyWorksWithNonVersionDetectApps": "バージョン検出を無効にしているアプリにのみ動作します。",
|
||||
"releaseDateAsVersion": "リリース日をバージョンとして使用する",
|
||||
"releaseTitleAsVersion": "リリースタイトルをバージョン文字列として使用",
|
||||
"releaseTitleAsVersion": "リリースタイトルをバージョンとして使用する",
|
||||
"releaseDateAsVersionExplanation": "このオプションは、バージョン検出が正しく機能しないアプリで、リリース日が利用可能な場合にのみ使用する必要があります。",
|
||||
"changes": "変更点",
|
||||
"releaseDate": "リリース日",
|
||||
@@ -256,7 +256,7 @@
|
||||
"intermediateLink": "中間リンク",
|
||||
"exemptFromBackgroundUpdates": "バックグラウンドアップデートを行わない (有効な場合)",
|
||||
"bgUpdatesOnWiFiOnly": "WiFiを使用していない場合、バックグラウンドアップデートを無効にする",
|
||||
"bgUpdatesWhileChargingOnly": "非充電時にバックグラウンド更新を無効にする",
|
||||
"bgUpdatesWhileChargingOnly": "非充電時にバックグラウンドアップデートを無効にする",
|
||||
"autoSelectHighestVersionCode": "最も高いバージョンコードのAPKを自動で選択する",
|
||||
"versionExtractionRegEx": "バージョン抽出の正規表現",
|
||||
"trimVersionString": "正規表現でバージョン文字列をトリムする",
|
||||
@@ -316,7 +316,7 @@
|
||||
"crowdsourcedConfigsLabel": "クラウドソーシングによるアプリの設定(利用は自己責任で)",
|
||||
"crowdsourcedConfigsShort": "クラウドソーシングによるアプリの設定",
|
||||
"allowInsecure": "安全でないHTTPリクエストを許可する",
|
||||
"stayOneVersionBehind": "最新バージョンから1つ遅れ",
|
||||
"stayOneVersionBehind": "最新のバージョンから1つ前のものを使用する",
|
||||
"removeAppQuestion": {
|
||||
"one": "アプリを削除しますか?",
|
||||
"other": "アプリを削除しますか?"
|
||||
@@ -358,23 +358,23 @@
|
||||
"other": "{n} 個のログをクリアしました (前 = {before}, 後 = {after})"
|
||||
},
|
||||
"xAndNMoreUpdatesAvailable": {
|
||||
"one": "{} とさらに {} 個のアプリのアップデートが利用可能です。",
|
||||
"one": "{} とさらに 1 個のアプリのアップデートが利用可能です。",
|
||||
"other": "{} とさらに {} 個のアプリのアップデートが利用可能です。"
|
||||
},
|
||||
"xAndNMoreUpdatesInstalled": {
|
||||
"one": "{} とさらに {} 個のアプリがアップデートされました。",
|
||||
"one": "{} とさらに 1 個のアプリがアップデートされました。",
|
||||
"other": "{} とさらに {} 個のアプリがアップデートされました。"
|
||||
},
|
||||
"xAndNMoreUpdatesFailed": {
|
||||
"one": "更新に失敗しました。",
|
||||
"other": "アプリのアップデートに失敗しました。"
|
||||
"one": "{} とさらに 1 個のアプリのアップデートに失敗しました。",
|
||||
"other": "{} とさらに {} 個のアプリのアップデートに失敗しました。"
|
||||
},
|
||||
"xAndNMoreUpdatesPossiblyInstalled": {
|
||||
"one": "{} とさらに 1 個のアプリがアップデートされた可能性があります。",
|
||||
"other": "{} とさらに {} 個のアプリがアップデートされた可能性があります。"
|
||||
},
|
||||
"apk": {
|
||||
"one": "{}APK",
|
||||
"other": "{}APK"
|
||||
"one": "{} APK",
|
||||
"other": "{} APK"
|
||||
}
|
||||
}
|
||||
|
@@ -1036,8 +1036,17 @@ class AppsProvider with ChangeNotifier {
|
||||
if (apps[id]!.app.apkUrls.isNotEmpty ||
|
||||
apps[id]!.app.otherAssetUrls.isNotEmpty) {
|
||||
// ignore: use_build_context_synchronously
|
||||
fileUrl = await confirmAppFileUrl(apps[id]!.app, context, true,
|
||||
MapEntry<String, String>? tempFileUrl = await confirmAppFileUrl(
|
||||
apps[id]!.app, context, true,
|
||||
evenIfSingleChoice: true);
|
||||
if (tempFileUrl != null) {
|
||||
fileUrl = MapEntry(
|
||||
tempFileUrl.key,
|
||||
await (SourceProvider().getSource(apps[id]!.app.url,
|
||||
overrideSource: apps[id]!.app.overrideSource))
|
||||
.apkUrlPrefetchModifier(tempFileUrl.value, apps[id]!.app.url,
|
||||
apps[id]!.app.additionalSettings));
|
||||
}
|
||||
}
|
||||
if (fileUrl != null) {
|
||||
filesToDownload.add(MapEntry(fileUrl, apps[id]!.app));
|
||||
@@ -1050,18 +1059,7 @@ class AppsProvider with ChangeNotifier {
|
||||
|
||||
Future<void> downloadFn(MapEntry<String, String> fileUrl, App app) async {
|
||||
try {
|
||||
var exportDir = await settingsProvider.getExportDir();
|
||||
String downloadPath = '${await getStorageRootPath()}/Download';
|
||||
bool downloadsAccessible = false;
|
||||
try {
|
||||
Directory(downloadPath).listSync();
|
||||
downloadsAccessible = true;
|
||||
} catch (e) {
|
||||
//
|
||||
}
|
||||
if (!downloadsAccessible && exportDir != null) {
|
||||
downloadPath = exportDir.path;
|
||||
}
|
||||
await downloadFile(fileUrl.value, fileUrl.key, true,
|
||||
(double? progress) {
|
||||
notificationsProvider
|
||||
|
24
pubspec.lock
24
pubspec.lock
@@ -303,10 +303,10 @@ packages:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
name: file_picker
|
||||
sha256: aac85f20436608e01a6ffd1fdd4e746a7f33c93a2c83752e626bdfaea139b877
|
||||
sha256: "16dc141db5a2ccc6520ebb6a2eb5945b1b09e95085c021d9f914f8ded7f1465c"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "8.1.3"
|
||||
version: "8.1.4"
|
||||
fixnum:
|
||||
dependency: transitive
|
||||
description:
|
||||
@@ -420,10 +420,10 @@ packages:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
name: flutter_local_notifications
|
||||
sha256: "725145682706fb0e5a30f93e5cb64f3df7ed7743de749bd555b22bf75ee718c0"
|
||||
sha256: ef41ae901e7529e52934feba19ed82827b11baa67336829564aeab3129460610
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "18.0.0"
|
||||
version: "18.0.1"
|
||||
flutter_local_notifications_linux:
|
||||
dependency: transitive
|
||||
description:
|
||||
@@ -1017,10 +1017,10 @@ packages:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: timezone
|
||||
sha256: "2236ec079a174ce07434e89fcd3fcda430025eb7692244139a9cf54fdcf1fc7d"
|
||||
sha256: ffc9d5f4d1193534ef051f9254063fa53d588609418c84299956c3db9383587d
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "0.9.4"
|
||||
version: "0.10.0"
|
||||
typed_data:
|
||||
dependency: transitive
|
||||
description:
|
||||
@@ -1065,10 +1065,10 @@ packages:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: url_launcher_linux
|
||||
sha256: e2b9622b4007f97f504cd64c0128309dfb978ae66adbe944125ed9e1750f06af
|
||||
sha256: "4e9ba368772369e3e08f231d2301b4ef72b9ff87c31192ef471b380ef29a4935"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "3.2.0"
|
||||
version: "3.2.1"
|
||||
url_launcher_macos:
|
||||
dependency: transitive
|
||||
description:
|
||||
@@ -1145,10 +1145,10 @@ packages:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: webview_flutter_android
|
||||
sha256: dec83a8da0a2dcd8a25418534cc59348dbc2855fa1dd0cc929c62b6029fde392
|
||||
sha256: "86c2d01c37c4578ee46560109cf2e18fb271f0d080a796f09188d0952352e057"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "4.0.1"
|
||||
version: "4.0.2"
|
||||
webview_flutter_platform_interface:
|
||||
dependency: transitive
|
||||
description:
|
||||
@@ -1161,10 +1161,10 @@ packages:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: webview_flutter_wkwebview
|
||||
sha256: f14ee08021772fed913da8daebcfdeb46be457081e521e93e9918fe6cd1ce9e8
|
||||
sha256: "3be297aa4ca78205abdd284cf55f168c35246c75b3079990ad8ba9d257681a30"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "3.16.1"
|
||||
version: "3.16.2"
|
||||
win32:
|
||||
dependency: transitive
|
||||
description:
|
||||
|
@@ -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.30+2287
|
||||
version: 1.1.31+2288
|
||||
|
||||
environment:
|
||||
sdk: '>=3.0.0 <4.0.0'
|
||||
|
Reference in New Issue
Block a user