diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml
index 2692a13..22362c2 100644
--- a/.github/workflows/release.yml
+++ b/.github/workflows/release.yml
@@ -17,7 +17,6 @@ jobs:
- uses: subosito/flutter-action@v2
with:
channel: stable
- flutter-version: 3.24.5
- uses: actions/setup-java@v4
with:
distribution: 'temurin' # See 'Supported distributions' for available options
diff --git a/.gitignore b/.gitignore
index 15aa17f..4c8ac57 100644
--- a/.gitignore
+++ b/.gitignore
@@ -5,9 +5,11 @@
*.swp
.DS_Store
.atom/
+.build/
.buildlog/
.history
.svn/
+.swiftpm/
migrate_working_dir/
.vscode/
diff --git a/.metadata b/.metadata
index e185b94..b02a7e4 100644
--- a/.metadata
+++ b/.metadata
@@ -1,11 +1,11 @@
# This file tracks properties of this Flutter project.
# Used by Flutter tool to assess capabilities and perform upgrades etc.
#
-# This file should be version controlled.
+# This file should be version controlled and should not be manually edited.
version:
- revision: 543dac2f35de563fcb6905e9146bdce712c44000
- channel: master
+ revision: "17025dd88227cd9532c33fa78f5250d548d87e9a"
+ channel: "stable"
project_type: app
@@ -13,14 +13,26 @@ project_type: app
migration:
platforms:
- platform: root
- create_revision: 543dac2f35de563fcb6905e9146bdce712c44000
- base_revision: 543dac2f35de563fcb6905e9146bdce712c44000
+ create_revision: 17025dd88227cd9532c33fa78f5250d548d87e9a
+ base_revision: 17025dd88227cd9532c33fa78f5250d548d87e9a
- platform: android
- create_revision: 543dac2f35de563fcb6905e9146bdce712c44000
- base_revision: 543dac2f35de563fcb6905e9146bdce712c44000
+ create_revision: 17025dd88227cd9532c33fa78f5250d548d87e9a
+ base_revision: 17025dd88227cd9532c33fa78f5250d548d87e9a
- platform: ios
- create_revision: 543dac2f35de563fcb6905e9146bdce712c44000
- base_revision: 543dac2f35de563fcb6905e9146bdce712c44000
+ create_revision: 17025dd88227cd9532c33fa78f5250d548d87e9a
+ base_revision: 17025dd88227cd9532c33fa78f5250d548d87e9a
+ - platform: linux
+ create_revision: 17025dd88227cd9532c33fa78f5250d548d87e9a
+ base_revision: 17025dd88227cd9532c33fa78f5250d548d87e9a
+ - platform: macos
+ create_revision: 17025dd88227cd9532c33fa78f5250d548d87e9a
+ base_revision: 17025dd88227cd9532c33fa78f5250d548d87e9a
+ - platform: web
+ create_revision: 17025dd88227cd9532c33fa78f5250d548d87e9a
+ base_revision: 17025dd88227cd9532c33fa78f5250d548d87e9a
+ - platform: windows
+ create_revision: 17025dd88227cd9532c33fa78f5250d548d87e9a
+ base_revision: 17025dd88227cd9532c33fa78f5250d548d87e9a
# User provided section
diff --git a/analysis_options.yaml b/analysis_options.yaml
index 61b6c4d..0d29021 100644
--- a/analysis_options.yaml
+++ b/analysis_options.yaml
@@ -13,8 +13,7 @@ linter:
# The lint rules applied to this project can be customized in the
# section below to disable rules from the `package:flutter_lints/flutter.yaml`
# included above or to enable additional rules. A list of all available lints
- # and their documentation is published at
- # https://dart-lang.github.io/linter/lints/index.html.
+ # and their documentation is published at https://dart.dev/lints.
#
# Instead of disabling a lint rule for the entire project in the
# section below, it can also be suppressed for a single line of code
diff --git a/android/.gitignore b/android/.gitignore
index 6f56801..55afd91 100644
--- a/android/.gitignore
+++ b/android/.gitignore
@@ -7,7 +7,7 @@ gradle-wrapper.jar
GeneratedPluginRegistrant.java
# Remember to never publicly share your keystore.
-# See https://flutter.dev/docs/deployment/android#reference-the-keystore-from-the-app
+# See https://flutter.dev/to/reference-keystore
key.properties
**/*.keystore
**/*.jks
diff --git a/android/app/build.gradle b/android/app/build.gradle
index c5a7cdd..d6c5d7b 100644
--- a/android/app/build.gradle
+++ b/android/app/build.gradle
@@ -1,6 +1,7 @@
plugins {
id "com.android.application"
id "kotlin-android"
+ // The Flutter Gradle Plugin must be applied after the Android and Kotlin Gradle plugins.
id "dev.flutter.flutter-gradle-plugin"
}
@@ -29,33 +30,30 @@ if (keystorePropertiesFile.exists()) {
}
android {
- namespace "dev.imranr.obtainium"
- compileSdk flutter.compileSdkVersion
- ndkVersion flutter.ndkVersion
+ namespace = "dev.imranr.obtainium"
+ compileSdk = flutter.compileSdkVersion
+ ndkVersion = flutter.ndkVersion
compileOptions {
- sourceCompatibility JavaVersion.VERSION_1_8
- targetCompatibility JavaVersion.VERSION_1_8
+ sourceCompatibility = JavaVersion.VERSION_1_8
+ targetCompatibility = JavaVersion.VERSION_1_8
}
kotlinOptions {
- jvmTarget = '1.8'
- }
-
- sourceSets {
- main.java.srcDirs += 'src/main/kotlin'
+ jvmTarget = JavaVersion.VERSION_1_8
}
defaultConfig {
- applicationId "dev.imranr.obtainium"
+ // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html).
+ applicationId = "dev.imranr.obtainium"
// You can update the following values to match your application needs.
- // For more information, see: https://docs.flutter.dev/deployment/android#reviewing-the-build-configuration.
- minSdkVersion 24
- targetSdkVersion flutter.targetSdkVersion
- versionCode flutterVersionCode.toInteger()
- versionName flutterVersionName
+ // For more information, see: https://flutter.dev/to/review-gradle-config.
+ minSdk = 24
+ targetSdk = flutter.targetSdkVersion
+ versionCode = flutter.versionCode
+ versionName = flutter.versionName
}
-
+
flavorDimensions "flavor"
productFlavors {
@@ -77,6 +75,7 @@ android {
storePassword keystoreProperties['storePassword']
}
}
+
buildTypes {
release {
signingConfig signingConfigs.release
@@ -89,11 +88,7 @@ android {
}
flutter {
- source '../..'
-}
-
-repositories {
- maven { url 'https://jitpack.io' }
+ source = "../.."
}
ext.abiCodes = ["x86_64": 1, "armeabi-v7a": 2, "arm64-v8a": 3]
diff --git a/android/app/src/main/AndroidManifest.xml b/android/app/src/main/AndroidManifest.xml
index 6ce6efa..d461e3b 100644
--- a/android/app/src/main/AndroidManifest.xml
+++ b/android/app/src/main/AndroidManifest.xml
@@ -12,6 +12,7 @@
android:name=".MainActivity"
android:exported="true"
android:launchMode="singleTop"
+ android:taskAffinity=""
android:theme="@style/LaunchTheme"
android:configChanges="orientation|keyboardHidden|keyboard|screenSize|smallestScreenSize|locale|layoutDirection|fontScale|screenLayout|density|uiMode"
android:hardwareAccelerated="true"
@@ -21,12 +22,12 @@
while the Flutter UI initializes. After that, this theme continues
to determine the Window background behind the Flutter UI. -->
+ android:name="io.flutter.embedding.android.NormalTheme"
+ android:resource="@style/NormalTheme"
+ />
-
-
+
+
-
@@ -71,6 +71,17 @@
\
+ android:maxSdkVersion="29" />
+
+
+
+
+
+
+
diff --git a/android/build.gradle b/android/build.gradle
index 89b0d75..b3f11e5 100644
--- a/android/build.gradle
+++ b/android/build.gradle
@@ -9,12 +9,12 @@ allprojects {
}
}
-rootProject.buildDir = '../build'
+rootProject.buildDir = "../build"
subprojects {
project.buildDir = "${rootProject.buildDir}/${project.name}"
}
subprojects {
- project.evaluationDependsOn(':app')
+ project.evaluationDependsOn(":app")
}
tasks.register("clean", Delete) {
diff --git a/android/gradle.properties b/android/gradle.properties
index f622fd8..2597170 100644
--- a/android/gradle.properties
+++ b/android/gradle.properties
@@ -1,3 +1,3 @@
-org.gradle.jvmargs=-Xmx2048M
+org.gradle.jvmargs=-Xmx4G -XX:MaxMetaspaceSize=2G -XX:+HeapDumpOnOutOfMemoryError
android.useAndroidX=true
android.enableJetifier=true
diff --git a/android/gradle/wrapper/gradle-wrapper.properties b/android/gradle/wrapper/gradle-wrapper.properties
index 3c472b9..7bb2df6 100644
--- a/android/gradle/wrapper/gradle-wrapper.properties
+++ b/android/gradle/wrapper/gradle-wrapper.properties
@@ -2,4 +2,4 @@ distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
-distributionUrl=https\://services.gradle.org/distributions/gradle-7.5-all.zip
+distributionUrl=https\://services.gradle.org/distributions/gradle-8.3-all.zip
diff --git a/android/settings.gradle b/android/settings.gradle
index 5fd7f48..b9e43bd 100644
--- a/android/settings.gradle
+++ b/android/settings.gradle
@@ -18,8 +18,8 @@ pluginManagement {
plugins {
id "dev.flutter.flutter-plugin-loader" version "1.0.0"
- id "com.android.application" version "7.4.2" apply false
- id "org.jetbrains.kotlin.android" version "1.8.10" apply false
+ id "com.android.application" version "8.1.0" apply false
+ id "org.jetbrains.kotlin.android" version "1.8.22" apply false
}
include ":app"
diff --git a/assets/translations/de.json b/assets/translations/de.json
index 9025562..aa50346 100644
--- a/assets/translations/de.json
+++ b/assets/translations/de.json
@@ -31,9 +31,9 @@
"xIsTrackOnly": "{} ist nur zur Nachverfolgung",
"source": "Quelle",
"app": "App",
- "appsFromSourceAreTrackOnly": "Apps aus dieser Quelle sind nur zur Nachverfolgung.",
- "youPickedTrackOnly": "Sie haben die Option „Nur nachverfolgen“ gewählt.",
- "trackOnlyAppDescription": "Die App wird auf Aktualisierungen überwacht, aber Obtainium wird sie nicht herunterladen oder installieren.",
+ "appsFromSourceAreTrackOnly": "Apps aus dieser Quelle sind nur zur Versionsüberwachung.",
+ "youPickedTrackOnly": "Du hast die Option „Nur nachverfolgen“ gewählt.",
+ "trackOnlyAppDescription": "Die App wird auf neue verfügbare Versionen überwacht, aber Obtainium wird sie nicht herunterladen oder installieren.",
"cancelled": "Abgebrochen",
"appAlreadyAdded": "App bereits hinzugefügt",
"alreadyUpToDateQuestion": "App bereits auf dem neuesten Stand?",
@@ -85,8 +85,8 @@
"filter": "Filter",
"filterApps": "Apps filtern",
"appName": "App-Name",
- "author": "Autor",
- "upToDateApps": "Apps mit aktueller Version",
+ "author": "Autor:in",
+ "upToDateApps": "Apps mit aktuellster Version",
"nonInstalledApps": "Nicht installierte Apps",
"importExport": "Import/Export",
"settings": "Einstellungen",
@@ -102,7 +102,7 @@
"searchX": "{} suchen",
"noResults": "Keine Ergebnisse gefunden",
"importX": "{} importieren",
- "importedAppsIdDisclaimer": "Importierte Apps werden manchmal fälschlicherweise als „Nicht installiert“ angezeigt. Um dies zu beheben, installieren Sie sie erneut über Obtainium. Dies hat keine Auswirkungen auf App-Daten. Es betrifft nur URL- und Drittanbieter-Importmethoden.",
+ "importedAppsIdDisclaimer": "Importierte Apps werden manchmal fälschlicherweise als „Nicht installiert“ angezeigt. Um dies zu beheben, installiere sie erneut über Obtainium. Dies hat keine Auswirkungen auf App-Daten. Es betrifft nur URL- und Drittanbieter-Importmethoden.",
"importErrors": "Importfehler",
"importedXOfYApps": "{} von {} Apps importiert.",
"followingURLsHadErrors": "Bei folgenden URLs traten Fehler auf:",
@@ -112,12 +112,12 @@
"theme": "Theme",
"dark": "Dunkel",
"light": "Hell",
- "followSystem": "System folgen",
- "followSystemThemeExplanation": "Das Folgen des Systemthemes ist unter Android < 10 nur mit Hilfe von Drittanbieterapps möglich",
+ "followSystem": "Systemstandard",
+ "followSystemThemeExplanation": "Das Abrufen des Systemdesigns ist unter Android < 10 nur mit Hilfe von Drittanbieterapps möglich",
"useBlackTheme": "Rein schwarzen Hintergrund verwenden",
"appSortBy": "App sortieren nach",
- "authorName": "Autor/Name",
- "nameAuthor": "Name/Autor",
+ "authorName": "Autor:in/Name",
+ "nameAuthor": "Name/Autor:in",
"asAdded": "Wie hinzugefügt",
"appSortOrder": "App sortieren nach",
"ascending": "Aufsteigend",
@@ -138,30 +138,30 @@
"obtainiumExportHyphenatedLowercase": "Obtainium-Export",
"pickAnAPK": "APK auswählen",
"appHasMoreThanOnePackage": "{} verfügt über mehr als ein Paket:",
- "deviceSupportsXArch": "Ihr Gerät unterstützt die CPU-Architektur {}.",
- "deviceSupportsFollowingArchs": "Ihr Gerät unterstützt die folgenden CPU-Architekturen:",
+ "deviceSupportsXArch": "Dein Gerät unterstützt die CPU-Architektur {}.",
+ "deviceSupportsFollowingArchs": "Dein Gerät unterstützt die folgenden CPU-Architekturen:",
"warning": "Warnung",
"sourceIsXButPackageFromYPrompt": "Die App-Quelle ist '{}', aber das Release-Paket stammt von '{}'. Fortfahren?",
"updatesAvailable": "Aktualisierungen verfügbar",
- "updatesAvailableNotifDescription": "Benachrichtigt den Nutzer, dass Aktualisierungen für eine oder mehrere von Obtainium verfolgte Apps verfügbar sind",
+ "updatesAvailableNotifDescription": "Benachrichtigt, wenn Aktualisierungen für eine oder mehrere von Obtainium verfolgte Apps verfügbar sind",
"noNewUpdates": "Keine neuen Aktualisierungen.",
"xHasAnUpdate": "{} hat eine Aktualisierung.",
"appsUpdated": "App wurde aktualisiert",
"appsNotUpdated": "Aktualisierung der Apps fehlgeschlagen",
- "appsUpdatedNotifDescription": "Benachrichtigt den Benutzer, dass Aktualisierungen für eine oder mehrere Apps im Hintergrund durchgeführt wurden",
+ "appsUpdatedNotifDescription": "Benachrichtigt, wenn Aktualisierungen für eine oder mehrere Apps im Hintergrund durchgeführt wurden",
"xWasUpdatedToY": "{} wurde auf {} aktualisiert.",
"xWasNotUpdatedToY": "Die Aktualisierung von {} auf {} ist fehlgeschlagen.",
"errorCheckingUpdates": "Fehler beim Prüfen auf Aktualisierungen",
- "errorCheckingUpdatesNotifDescription": "Eine Benachrichtigung, die angezeigt wird, wenn die Prüfung der Hintergrundaktualisierung fehlschlägt",
+ "errorCheckingUpdatesNotifDescription": "Weist darauf hin, dass die Prüfung der Hintergrundaktualisierung fehlgeschlagen ist",
"appsRemoved": "Apps entfernt",
- "appsRemovedNotifDescription": "Benachrichtigt den Benutzer, dass eine oder mehrere Apps aufgrund von Fehlern beim Laden entfernt wurden",
+ "appsRemovedNotifDescription": "Weist darauf hin, dass eine oder mehrere Apps aufgrund von Fehlern beim Laden entfernt wurden",
"xWasRemovedDueToErrorY": "{} wurde aufgrund des folgenden Fehlers entfernt: {}",
"completeAppInstallation": "App-Installation abschließen",
"obtainiumMustBeOpenToInstallApps": "Obtainium muss geöffnet sein, um Apps zu installieren",
- "completeAppInstallationNotifDescription": "Aufforderung an den Benutzer, zu Obtainium zurückzukehren, um die Installation einer App abzuschließen",
+ "completeAppInstallationNotifDescription": "Aufforderung zu Obtainium zurückzukehren, um die Installation einer App abzuschließen",
"checkingForUpdates": "Nach Aktualisierungen suchen",
"checkingForUpdatesNotifDescription": "Vorübergehende Benachrichtigung, die bei der Suche nach Aktualisierungen angezeigt wird",
- "pleaseAllowInstallPerm": "Bitte erlauben Sie Obtainium die Installation von Apps",
+ "pleaseAllowInstallPerm": "Bitte erlaube Obtainium die Installation von Apps",
"trackOnly": "Nur nachverfolgen",
"errorWithHttpStatusCode": "Fehler {}",
"versionCorrectionDisabled": "Versionskorrektur deaktiviert (Plugin scheint nicht zu funktionieren)",
@@ -190,7 +190,7 @@
"downloadX": "{} herunterladen",
"downloadedX": "{} heruntergeladen",
"releaseAsset": "Release-Asset",
- "downloadNotifDescription": "Benachrichtigt den Nutzer über den Fortschritt beim Herunterladen einer App",
+ "downloadNotifDescription": "Zeigt den Fortschritt beim Herunterladen einer App",
"noAPKFound": "Keine APK gefunden",
"noVersionDetection": "Keine Versionserkennung",
"categorize": "Kategorisieren",
@@ -223,7 +223,7 @@
"autoApkFilterByArch": "Nach Möglichkeit versuchen, APKs nach CPU-Architektur zu filtern",
"overrideSource": "Quelle überschreiben",
"dontShowAgain": "Nicht noch einmal anzeigen",
- "dontShowTrackOnlyWarnings": "Warnung für 'Nur nachverfolgen' nicht anzeigen",
+ "dontShowTrackOnlyWarnings": "Warnung für „Nur nachverfolgen“ nicht anzeigen",
"dontShowAPKOriginWarnings": "Warnung für APK-Herkunft nicht anzeigen",
"moveNonInstalledAppsToBottom": "Nicht installierte Apps ans Ende der App-Ansicht verschieben",
"gitlabPATLabel": "Persönlicher Zugangstoken für GitLab",
@@ -231,7 +231,7 @@
"requiresCredentialsInSettings": "{}: Benötigt zusätzliche Anmeldedaten (in den Einstellungen)",
"checkOnStart": "Einmalig beim Start überprüfen",
"tryInferAppIdFromCode": "Versuchen, die App-ID aus dem Quellcode zu ermitteln",
- "removeOnExternalUninstall": "Automatisches Entfernen von extern deinstallierten Apps",
+ "removeOnExternalUninstall": "Extern deinstallierte Apps automatische entfernen",
"pickHighestVersionCode": "Automatische Auswahl des APK mit höchstem Versionscode",
"checkUpdateOnDetailPage": "Nach Aktualisierungen suchen, wenn eine App-Detailseite geöffnet wird",
"disablePageTransitions": "Animationen für Seitenübergänge deaktivieren",
@@ -241,10 +241,10 @@
"addInfoInSettings": "Diese Information in den Einstellungen hinzufügen.",
"githubSourceNote": "Die GitHub-Ratenbegrenzung kann mit einem API-Schlüssel umgangen werden.",
"sortByLastLinkSegment": "Nur nach dem letzten Teil des Links sortieren",
- "filterReleaseNotesByRegEx": "Versionshinweise nach regulärem Ausdruck filtern",
+ "filterReleaseNotesByRegEx": "Versionshinweise nach regulärem Ausdruck\nfiltern",
"customLinkFilterRegex": "Benutzerdefinierter APK-Linkfilter durch regulären Ausdruck (Standard '.apk$')",
"appsPossiblyUpdated": "App-Aktualisierungen wurden versucht",
- "appsPossiblyUpdatedNotifDescription": "Benachrichtigt den Benutzer, dass Aktualisierungen für eine oder mehrere Apps möglicherweise im Hintergrund durchgeführt wurden",
+ "appsPossiblyUpdatedNotifDescription": "Benachrichtigt, dass Aktualisierungen für eine oder mehrere Apps möglicherweise im Hintergrund durchgeführt wurden",
"xWasPossiblyUpdatedToY": "{} wurde möglicherweise aktualisiert auf {}.",
"enableBackgroundUpdates": "Hintergrundaktualisierungen aktivieren",
"backgroundUpdateReqsExplanation": "Die Hintergrundaktualisierung ist möglicherweise nicht für alle Apps möglich.",
@@ -254,13 +254,13 @@
"filterByLinkText": "Links durch Linktext filtern",
"intermediateLinkNotFound": "„Zwischen“-Link nicht gefunden",
"intermediateLink": "„Zwischen“-Link",
- "exemptFromBackgroundUpdates": "Ausschluss von Hintergrundaktualisierungen (falls aktiviert)",
- "bgUpdatesOnWiFiOnly": "Hintergrundaktualisierungen deaktivieren, wenn kein WLAN vorhanden ist",
- "bgUpdatesWhileChargingOnly": "Hintergrundaktualisierungen deaktivieren, wenn nicht geladen wird",
+ "exemptFromBackgroundUpdates": "Von Hintergrundaktualisierungen (falls aktiviert) ausschließen",
+ "bgUpdatesOnWiFiOnly": "Hintergrundaktualisierungen nur im WLAN ausführen",
+ "bgUpdatesWhileChargingOnly": "Hintergrundaktualisierungen nur ausführen, während das Gerät geladen wird",
"autoSelectHighestVersionCode": "Automatisch höchste APK-Version auswählen",
"versionExtractionRegEx": "Versionsextraktion per RegEx",
"trimVersionString": "Versionszeichenfolge mit RegEx kürzen",
- "matchGroupToUseForX": "Zu verwendende Abgleichsgruppe für „{}“",
+ "matchGroupToUseForX": "Zu verwendende Abgleichsgruppe für\n„{}“",
"matchGroupToUse": "Zu verwendende Gruppe abgleichen",
"highlightTouchTargets": "Weniger offensichtliche Touch-Ziele hervorheben",
"pickExportDir": "Export-Verzeichnis wählen",
@@ -268,7 +268,7 @@
"includeSettings": "Einstellungen einbeziehen",
"filterVersionsByRegEx": "Versionen nach regulären Ausdrücken filtern",
"trySelectingSuggestedVersionCode": "Versuchen, den vorgeschlagenen APK-Versionscode auszuwählen",
- "dontSortReleasesList": "Freigaberelease von der API ordern",
+ "dontSortReleasesList": "Releases-Sortierung der API beibehalten",
"reverseSort": "Umgekehrtes Sortieren",
"takeFirstLink": "Ersten Link verwenden",
"skipSort": "Sortieren überspringen",
@@ -296,8 +296,8 @@
"shizukuOldAndroidWithADB": "Shizuku läuft auf Android < 8.1 mit ADB - aktualisieren Sie Android oder verwenden Sie stattdessen Sui",
"shizukuPretendToBeGooglePlay": "(Mittels Shizuku) Google Play als Installationsquelle registrieren",
"useSystemFont": "Systemschriftart verwenden",
- "useVersionCodeAsOSVersion": "App-Version als erkannte Version vom Betriebssystem verwenden",
- "requestHeader": "Kopfzeile anfordern",
+ "useVersionCodeAsOSVersion": "Versionscode (versionCode) als erkannte Version vom Betriebssystem verwenden",
+ "requestHeader": "Kopfzeile („Header“) anfordern",
"useLatestAssetDateAsReleaseDate": "Letzten Asset-Upload als Veröffentlichungsdatum verwenden",
"defaultPseudoVersioningMethod": "Standardmäßiges Verfahren zur Pseudo-Versionierung",
"partialAPKHash": "Partieller APK-Hash",
@@ -309,9 +309,9 @@
"invertRegEx": "Regulären Ausdruck invertieren",
"note": "Hinweis",
"selfHostedNote": "Das „{}“-Drop-down-Menü kann verwendet werden, um selbst gehostete/angepasste Instanzen einer beliebigen Quelle zu erreichen.",
- "badDownload": "Die APK konnte nicht geparst werden (inkompatibler oder teilweiser Download)",
+ "badDownload": "Die APK konnte nicht gelesen werden (inkompatibler oder unfertiger Download)",
"beforeNewInstallsShareToAppVerifier": "Neue Apps mit AppVerifier teilen (falls verfügbar)",
- "appVerifierInstructionToast": "Geben Sie die Daten an AppVerifier weiter und kehren Sie dann hierher zurück, wenn Sie fertig sind.",
+ "appVerifierInstructionToast": "Teile die Daten mit AppVerifier und kehre im Anschluss hierher zurück.",
"wiki": "Hilfe/Wiki",
"crowdsourcedConfigsLabel": "Crowdsourced App-Konfigurationen (Verwendung auf eigene Gefahr)",
"crowdsourcedConfigsShort": "Crowdsourced App-Konfigurationen",
@@ -323,16 +323,16 @@
"other": "Apps entfernen?"
},
"tooManyRequestsTryAgainInMinutes": {
- "one": "Zu viele Anfragen (Rate begrenzt) – versuchen Sie es in {} Minute erneut",
- "other": "Zu viele Anfragen (Rate begrenzt) – versuchen Sie es in {} Minuten erneut"
+ "one": "Zu viele Anfragen (Rate begrenzt) – versuche es in {} Minute erneut",
+ "other": "Zu viele Anfragen (Rate begrenzt) – versuche es in {} Minuten erneut"
},
"bgUpdateGotErrorRetryInMinutes": {
"one": "Bei der Aktualisierungsprüfung im Hintergrund wurde ein {} festgestellt, eine erneute Prüfung wird in {} Minute geplant",
"other": "Bei der Aktualisierungsprüfung im Hintergrund wurde ein {} festgestellt, eine erneute Prüfung wird in {} Minuten geplant"
},
"bgCheckFoundUpdatesWillNotifyIfNeeded": {
- "one": "Die Hintergrundaktualisierungsprüfung fand {} Aktualisierung – benachrichtigt den Benutzer, falls erforderlich",
- "other": "Die Hintergrundaktualisierungsprüfung fand {} Aktualisierungen – benachrichtigt den Benutzer, falls erforderlich"
+ "one": "Die Aktualisierungsprüfung fand {} Aktualisierung – benachrichtigt, falls erforderlich",
+ "other": "Die Aktualisierungsprüfung fand {} Aktualisierungen – benachrichtigt, falls erforderlich"
},
"apps": {
"one": "{} App",
@@ -359,8 +359,8 @@
"other": "{n} Logs gelöscht (vorher = {before}, nachher = {after})"
},
"xAndNMoreUpdatesAvailable": {
- "one": "{} und 1 weitere App haben Aktualisierungen.",
- "other": "{} und {} weitere Apps haben Aktualisierungen."
+ "one": "{} und 1 weitere App können aktualisiert werden.",
+ "other": "{} und {} weitere Apps können aktualisiert werden."
},
"xAndNMoreUpdatesInstalled": {
"one": "{} und 1 weitere App wurden aktualisiert.",
diff --git a/lib/pages/app.dart b/lib/pages/app.dart
index dc735e9..d369d04 100644
--- a/lib/pages/app.dart
+++ b/lib/pages/app.dart
@@ -182,7 +182,10 @@ class _AppPageState extends State {
Brightness.light
? Theme.of(context).primaryColor
: Theme.of(context).primaryColorLight)
- .withAlpha(20)
+ .withAlpha(Theme.of(context).brightness ==
+ Brightness.light
+ ? 20
+ : 40)
: null),
padding: settingsProvider.highlightTouchTargets
? const EdgeInsetsDirectional.fromSTEB(12, 6, 12, 6)
diff --git a/lib/pages/apps.dart b/lib/pages/apps.dart
index 4279677..09dde14 100644
--- a/lib/pages/apps.dart
+++ b/lib/pages/apps.dart
@@ -481,7 +481,10 @@ class AppsPageState extends State {
? (Theme.of(context).brightness == Brightness.light
? Theme.of(context).primaryColor
: Theme.of(context).primaryColorLight)
- .withAlpha(20)
+ .withAlpha(Theme.of(context).brightness ==
+ Brightness.light
+ ? 20
+ : 40)
: null),
padding: settingsProvider.highlightTouchTargets
? const EdgeInsetsDirectional.fromSTEB(12, 0, 12, 0)
diff --git a/pubspec.lock b/pubspec.lock
index 513057a..a866402 100644
--- a/pubspec.lock
+++ b/pubspec.lock
@@ -14,17 +14,18 @@ packages:
description:
path: "."
ref: main
- resolved-ref: bcad19e964d377da8816718032e5dbf6dd16ba3a
+ resolved-ref: "6109d0b1dc015c016e113ded3dd80ac823f790ab"
url: "https://github.com/ImranR98/android_package_installer"
source: git
version: "0.0.1"
android_package_manager:
dependency: "direct main"
description:
- name: android_package_manager
- sha256: "2de859fae7226a7de1c1ff9a2308f1967599408800330501a1ce97927c051153"
- url: "https://pub.dev"
- source: hosted
+ path: "."
+ ref: master
+ resolved-ref: "18231a8a2343747440b0bfe90f7d56ef7f586099"
+ url: "https://github.com/ImranR98/android_package_manager"
+ source: git
version: "0.7.1"
android_system_font:
dependency: "direct main"
@@ -167,10 +168,10 @@ packages:
dependency: transitive
description:
name: collection
- sha256: ee67cb0715911d28db6bf4af1026078bd6f0128b07a5f66fb2ed94ec6783c09a
+ sha256: a1ace0a119f20aabc852d165077c036cd864315bd99b7eaa10a60100341941bf
url: "https://pub.dev"
source: hosted
- version: "1.18.0"
+ version: "1.19.0"
connectivity_plus:
dependency: "direct main"
description:
@@ -303,10 +304,10 @@ packages:
dependency: "direct main"
description:
name: file_picker
- sha256: c2376a6aae82358a9f9ccdd7d1f4006d08faa39a2767cce01031d9f593a8bd3b
+ sha256: c904b4ab56d53385563c7c39d8e9fa9af086f91495dfc48717ad84a42c3cf204
url: "https://pub.dev"
source: hosted
- version: "8.1.6"
+ version: "8.1.7"
fixnum:
dependency: transitive
description:
@@ -319,18 +320,18 @@ packages:
dependency: "direct main"
description:
name: flex_color_picker
- sha256: "12dc855ae8ef5491f529b1fc52c655f06dcdf4114f1f7fdecafa41eec2ec8d79"
+ sha256: c083b79f1c57eaeed9f464368be376951230b3cb1876323b784626152a86e480
url: "https://pub.dev"
source: hosted
- version: "3.6.0"
+ version: "3.7.0"
flex_seed_scheme:
dependency: transitive
description:
name: flex_seed_scheme
- sha256: "7639d2c86268eff84a909026eb169f008064af0fb3696a651b24b0fa24a40334"
+ sha256: d3ba3c5c92d2d79d45e94b4c6c71d01fac3c15017da1545880c53864da5dfeb0
url: "https://pub.dev"
source: hosted
- version: "3.4.1"
+ version: "3.5.0"
flutter:
dependency: "direct main"
description: flutter
@@ -449,10 +450,10 @@ packages:
dependency: "direct main"
description:
name: flutter_markdown
- sha256: "255b00afa1a7bad19727da6a7780cf3db6c3c12e68d302d85e0ff1fdf173db9e"
+ sha256: e37f4c69a07b07bb92622ef6b131a53c9aae48f64b176340af9e8e5238718487
url: "https://pub.dev"
source: hosted
- version: "0.7.4+3"
+ version: "0.7.5"
flutter_plugin_android_lifecycle:
dependency: transitive
description:
@@ -491,10 +492,10 @@ packages:
dependency: transitive
description:
name: fraction
- sha256: ac0d9904bb8211eb28606bdf623ff9f222c53240d8e9b927a07c149d356eddc2
+ sha256: "7804c9a73d26bd3d5ccf52b7225eecd0af4e33b310729726dc8f8bb14c217716"
url: "https://pub.dev"
source: hosted
- version: "5.0.3"
+ version: "5.0.4"
gtk:
dependency: transitive
description:
@@ -531,10 +532,10 @@ packages:
dependency: transitive
description:
name: http_parser
- sha256: "2aa08ce0341cc9b354a498388e30986515406668dbcc4f7c950c3e715496693b"
+ sha256: "178d74305e7866013777bab2c3d8726205dc5a4dd935297175b19a23a2e66571"
url: "https://pub.dev"
source: hosted
- version: "4.0.2"
+ version: "4.1.2"
image:
dependency: transitive
description:
@@ -563,18 +564,18 @@ packages:
dependency: transitive
description:
name: leak_tracker
- sha256: "3f87a60e8c63aecc975dda1ceedbc8f24de75f09e4856ea27daf8958f2f0ce05"
+ sha256: "7bb2830ebd849694d1ec25bf1f44582d6ac531a57a365a803a6034ff751d2d06"
url: "https://pub.dev"
source: hosted
- version: "10.0.5"
+ version: "10.0.7"
leak_tracker_flutter_testing:
dependency: transitive
description:
name: leak_tracker_flutter_testing
- sha256: "932549fb305594d82d7183ecd9fa93463e9914e1b67cacc34bc40906594a1806"
+ sha256: "9491a714cca3667b60b5c420da8217e6de0d1ba7a5ec322fab01758f6998f379"
url: "https://pub.dev"
source: hosted
- version: "3.0.5"
+ version: "3.0.8"
leak_tracker_testing:
dependency: transitive
description:
@@ -587,10 +588,10 @@ packages:
dependency: transitive
description:
name: lints
- sha256: "3315600f3fb3b135be672bf4a178c55f274bebe368325ae18462c89ac1e3b413"
+ sha256: c35bb79562d980e9a453fc715854e1ed39e24e7d0297a880ef54e17f9874a9d7
url: "https://pub.dev"
source: hosted
- version: "5.0.0"
+ version: "5.1.1"
markdown:
dependency: "direct main"
description:
@@ -843,18 +844,18 @@ packages:
dependency: "direct main"
description:
name: shared_preferences
- sha256: "3c7e73920c694a436afaf65ab60ce3453d91f84208d761fbd83fc21182134d93"
+ sha256: a752ce92ea7540fc35a0d19722816e04d0e72828a4200e83a98cf1a1eb524c9a
url: "https://pub.dev"
source: hosted
- version: "2.3.4"
+ version: "2.3.5"
shared_preferences_android:
dependency: transitive
description:
name: shared_preferences_android
- sha256: "02a7d8a9ef346c9af715811b01fbd8e27845ad2c41148eefd31321471b41863d"
+ sha256: bf808be89fe9dc467475e982c1db6c2faf3d2acf54d526cd5ec37d86c99dbd84
url: "https://pub.dev"
source: hosted
- version: "2.4.0"
+ version: "2.4.1"
shared_preferences_foundation:
dependency: transitive
description:
@@ -898,11 +899,12 @@ packages:
shared_storage:
dependency: "direct main"
description:
- name: shared_storage
- sha256: cf20428d06af065311b71e09cbfbbfe431e979a3bf9180001c1952129b7c708f
- url: "https://pub.dev"
- source: hosted
- version: "0.8.1"
+ path: "."
+ ref: master
+ resolved-ref: "8784c39b909324df8913dd30fa416b8a50d55f49"
+ url: "https://github.com/AlexBacich/shared-storage"
+ source: git
+ version: "0.7.0"
shizuku_apk_installer:
dependency: "direct main"
description:
@@ -916,7 +918,7 @@ packages:
dependency: transitive
description: flutter
source: sdk
- version: "0.0.99"
+ version: "0.0.0"
source_span:
dependency: transitive
description:
@@ -961,10 +963,10 @@ packages:
dependency: transitive
description:
name: sqflite_darwin
- sha256: "96a698e2bc82bd770a4d6aab00b42396a7c63d9e33513a56945cbccb594c2474"
+ sha256: "22adfd9a2c7d634041e96d6241e6e1c8138ca6817018afc5d443fef91dcefa9c"
url: "https://pub.dev"
source: hosted
- version: "2.4.1"
+ version: "2.4.1+1"
sqflite_platform_interface:
dependency: transitive
description:
@@ -977,10 +979,10 @@ packages:
dependency: transitive
description:
name: stack_trace
- sha256: "73713990125a6d93122541237550ee3352a2d84baad52d375a4cad2eb9b7ce0b"
+ sha256: "9f47fd3630d76be3ab26f0ee06d213679aa425996925ff3feffdec504931c377"
url: "https://pub.dev"
source: hosted
- version: "1.11.1"
+ version: "1.12.0"
stream_channel:
dependency: transitive
description:
@@ -993,10 +995,10 @@ packages:
dependency: transitive
description:
name: string_scanner
- sha256: "556692adab6cfa87322a115640c11f13cb77b3f076ddcc5d6ae3c20242bedcde"
+ sha256: "688af5ed3402a4bde5b3a6c15fd768dbf2621a614950b17f04626c431ab3c4c3"
url: "https://pub.dev"
source: hosted
- version: "1.2.0"
+ version: "1.3.0"
synchronized:
dependency: transitive
description:
@@ -1017,10 +1019,10 @@ packages:
dependency: transitive
description:
name: test_api
- sha256: "5b8a98dafc4d5c4c9c72d8b31ab2b23fc13422348d2997120294d3bac86b4ddb"
+ sha256: "664d3a9a64782fcdeb83ce9c6b39e78fd2971d4e37827b9b06c3aa1edc5e760c"
url: "https://pub.dev"
source: hosted
- version: "0.7.2"
+ version: "0.7.3"
timezone:
dependency: transitive
description:
@@ -1097,18 +1099,18 @@ packages:
dependency: transitive
description:
name: url_launcher_web
- sha256: "772638d3b34c779ede05ba3d38af34657a05ac55b06279ea6edd409e323dca8e"
+ sha256: "3ba963161bd0fe395917ba881d320b9c4f6dd3c4a233da62ab18a5025c85f1e9"
url: "https://pub.dev"
source: hosted
- version: "2.3.3"
+ version: "2.4.0"
url_launcher_windows:
dependency: transitive
description:
name: url_launcher_windows
- sha256: "44cf3aabcedde30f2dba119a9dea3b0f2672fbe6fa96e85536251d678216b3c4"
+ sha256: "3284b6d2ac454cf34f114e1d3319866fdd1e19cdc329999057e44ffe936cfa77"
url: "https://pub.dev"
source: hosted
- version: "3.1.3"
+ version: "3.1.4"
uuid:
dependency: transitive
description:
@@ -1129,10 +1131,10 @@ packages:
dependency: transitive
description:
name: vm_service
- sha256: "5c5f338a667b4c644744b661f309fb8080bb94b18a7e91ef1dbd343bed00ed6d"
+ sha256: f6be3ed8bd01289b34d679c2b62226f63c0e69f9fd2e50a6b3c1c729a961041b
url: "https://pub.dev"
source: hosted
- version: "14.2.5"
+ version: "14.3.0"
web:
dependency: transitive
description:
@@ -1169,18 +1171,18 @@ packages:
dependency: transitive
description:
name: webview_flutter_wkwebview
- sha256: b7e92f129482460951d96ef9a46b49db34bd2e1621685de26e9eaafd9674e7eb
+ sha256: "4adc14ea9a770cc9e2c8f1ac734536bd40e82615bd0fa6b94be10982de656cc7"
url: "https://pub.dev"
source: hosted
- version: "3.16.3"
+ version: "3.17.0"
win32:
dependency: transitive
description:
name: win32
- sha256: "8b338d4486ab3fbc0ba0db9f9b4f5239b6697fcee427939a40e720cbb9ee0a69"
+ sha256: "154360849a56b7b67331c21f09a386562d88903f90a1099c5987afc1912e1f29"
url: "https://pub.dev"
source: hosted
- version: "5.9.0"
+ version: "5.10.0"
win32_registry:
dependency: transitive
description:
@@ -1214,5 +1216,5 @@ packages:
source: hosted
version: "3.1.3"
sdks:
- dart: ">=3.5.0 <4.0.0"
- flutter: ">=3.24.0"
+ dart: ">=3.6.0 <4.0.0"
+ flutter: ">=3.27.0"
diff --git a/pubspec.yaml b/pubspec.yaml
index 06f66c5..4c38ce1 100644
--- a/pubspec.yaml
+++ b/pubspec.yaml
@@ -1,6 +1,5 @@
name: obtainium
description: Get Android app updates straight from the source.
-
# The following line prevents the package from being accidentally published to
# pub.dev using `flutter pub publish`. This is preferred for private packages.
publish_to: 'none' # Remove this line if you wish to publish to pub.dev
@@ -17,10 +16,10 @@ 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.37+2294
+version: 1.1.38+2295
environment:
- sdk: '>=3.0.0 <4.0.0'
+ sdk: ^3.6.0
# Dependencies specify other packages that your package needs in order to work.
# To automatically upgrade your package dependencies to the latest versions
@@ -32,7 +31,6 @@ dependencies:
flutter:
sdk: flutter
-
# The following adds the Cupertino Icons font to your application.
# Use with the CupertinoIcons class for iOS style icons.
cupertino_icons: ^1.0.5
@@ -51,11 +49,14 @@ dependencies:
device_info_plus: ^11.0.0
file_picker: ^8.0.0+1
animations: ^2.0.4
- android_package_installer:
+ android_package_installer: # TODO: See if PR will be accepted (dev may not be active), else remove this comment
git:
url: https://github.com/ImranR98/android_package_installer
ref: main
- android_package_manager: ^0.7.0
+ android_package_manager: # TODO: Make PR and switch to upstream
+ git:
+ url: https://github.com/ImranR98/android_package_manager
+ ref: master
share_plus: ^10.0.0
sqflite: ^2.2.0+3
easy_localization: ^3.0.1
@@ -64,7 +65,10 @@ dependencies:
flutter_archive: ^6.0.0
hsluv: ^1.1.3
connectivity_plus: ^6.0.1
- shared_storage: ^0.8.0
+ shared_storage: # TODO: Is this maintained?
+ git:
+ url: https://github.com/AlexBacich/shared-storage
+ ref: master
crypto: ^3.0.3
app_links: ^6.0.1
background_fetch: ^1.2.1
@@ -110,20 +114,20 @@ flutter:
uses-material-design: true
# To add assets to your application, add an assets section, like this:
- # - assets:
+ # assets:
# - images/a_dot_burr.jpeg
# - images/a_dot_ham.jpeg
-
+
assets:
- assets/translations/
- assets/graphics/
- assets/ca/
# An image asset can refer to one or more resolution-specific "variants", see
- # https://flutter.dev/assets-and-images/#resolution-aware
+ # https://flutter.dev/to/resolution-aware-images
# For details regarding adding assets from package dependencies, see
- # https://flutter.dev/assets-and-images/#from-packages
+ # https://flutter.dev/to/asset-from-package
# To add custom fonts to your application, add a fonts section here,
# in this "flutter" section. Each entry in this list should have a
@@ -143,7 +147,7 @@ flutter:
# weight: 700
#
# For details regarding fonts from package dependencies,
- # see https://flutter.dev/custom-fonts/#from-packages
+ # see https://flutter.dev/to/font-from-package
fonts:
- family: Wix-Madefor-Display