mirror of
https://github.com/ImranR98/Obtainium.git
synced 2025-08-21 05:29:29 +02:00
Compare commits
4 Commits
v0.8.8-bet
...
v0.8.10-be
Author | SHA1 | Date | |
---|---|---|---|
|
481204665c | ||
|
317b5ac83a | ||
|
f3b1ca4541 | ||
|
a00cfa2ba6 |
@@ -170,6 +170,7 @@
|
|||||||
"pleaseAllowInstallPerm": "Please allow Obtainium to install Apps",
|
"pleaseAllowInstallPerm": "Please allow Obtainium to install Apps",
|
||||||
"trackOnly": "Track-Only",
|
"trackOnly": "Track-Only",
|
||||||
"errorWithHttpStatusCode": "Error {}",
|
"errorWithHttpStatusCode": "Error {}",
|
||||||
|
"versionCorrectionDisabled": "Version correction disabled (plugin doesn't seem to work)",
|
||||||
"tooManyRequestsTryAgainInMinutes": {
|
"tooManyRequestsTryAgainInMinutes": {
|
||||||
"one": "Too many requests (rate limited) - try again in {} minute",
|
"one": "Too many requests (rate limited) - try again in {} minute",
|
||||||
"other": "Too many requests (rate limited) - try again in {} minutes"
|
"other": "Too many requests (rate limited) - try again in {} minutes"
|
||||||
|
@@ -21,7 +21,7 @@ import 'package:easy_localization/src/easy_localization_controller.dart';
|
|||||||
// ignore: implementation_imports
|
// ignore: implementation_imports
|
||||||
import 'package:easy_localization/src/localization.dart';
|
import 'package:easy_localization/src/localization.dart';
|
||||||
|
|
||||||
const String currentVersion = '0.8.8';
|
const String currentVersion = '0.8.10';
|
||||||
const String currentReleaseTag =
|
const String currentReleaseTag =
|
||||||
'v$currentVersion-beta'; // KEEP THIS IN SYNC WITH GITHUB RELEASES
|
'v$currentVersion-beta'; // KEEP THIS IN SYNC WITH GITHUB RELEASES
|
||||||
|
|
||||||
@@ -85,7 +85,7 @@ Future<void> bgUpdateCheck(int taskId, Map<String, dynamic>? params) async {
|
|||||||
if (e is RateLimitError || e is SocketException) {
|
if (e is RateLimitError || e is SocketException) {
|
||||||
var remainingMinutes = e is RateLimitError ? e.remainingMinutes : 15;
|
var remainingMinutes = e is RateLimitError ? e.remainingMinutes : 15;
|
||||||
logs.add(plural('bgUpdateGotErrorRetryInMinutes', remainingMinutes,
|
logs.add(plural('bgUpdateGotErrorRetryInMinutes', remainingMinutes,
|
||||||
args: [e.runtimeType.toString()]));
|
args: [e.runtimeType.toString(), remainingMinutes.toString()]));
|
||||||
AndroidAlarmManager.oneShot(Duration(minutes: remainingMinutes),
|
AndroidAlarmManager.oneShot(Duration(minutes: remainingMinutes),
|
||||||
Random().nextInt(pow(2, 31) as int), bgUpdateCheck, params: {
|
Random().nextInt(pow(2, 31) as int), bgUpdateCheck, params: {
|
||||||
'ignoreAfterMicroseconds': nextIgnoreAfter.microsecondsSinceEpoch
|
'ignoreAfterMicroseconds': nextIgnoreAfter.microsecondsSinceEpoch
|
||||||
|
@@ -427,6 +427,19 @@ class AppsProvider with ChangeNotifier {
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Future<bool> doesInstalledAppsPluginWork() async {
|
||||||
|
bool res = false;
|
||||||
|
try {
|
||||||
|
res = (await InstalledApps.getAppInfo(obtainiumId)).versionName != null;
|
||||||
|
} catch (e) {
|
||||||
|
//
|
||||||
|
}
|
||||||
|
if (!res) {
|
||||||
|
logs.add(tr('versionCorrectionDisabled'));
|
||||||
|
}
|
||||||
|
return res;
|
||||||
|
}
|
||||||
|
|
||||||
// If the App says it is installed but installedInfo is null, set it to not installed
|
// If the App says it is installed but installedInfo is null, set it to not installed
|
||||||
// If there is any other mismatch between installedInfo and installedVersion, try reconciling them intelligently
|
// If there is any other mismatch between installedInfo and installedVersion, try reconciling them intelligently
|
||||||
// If that fails, just set it to the actual version string (all we can do at that point)
|
// If that fails, just set it to the actual version string (all we can do at that point)
|
||||||
@@ -550,21 +563,25 @@ class AppsProvider with ChangeNotifier {
|
|||||||
}
|
}
|
||||||
loadingApps = false;
|
loadingApps = false;
|
||||||
notifyListeners();
|
notifyListeners();
|
||||||
List<App> modifiedApps = [];
|
if (await doesInstalledAppsPluginWork()) {
|
||||||
for (var app in apps.values) {
|
List<App> modifiedApps = [];
|
||||||
var moddedApp =
|
for (var app in apps.values) {
|
||||||
getCorrectedInstallStatusAppIfPossible(app.app, app.installedInfo);
|
var moddedApp =
|
||||||
if (moddedApp != null) {
|
getCorrectedInstallStatusAppIfPossible(app.app, app.installedInfo);
|
||||||
modifiedApps.add(moddedApp);
|
if (moddedApp != null) {
|
||||||
|
modifiedApps.add(moddedApp);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (modifiedApps.isNotEmpty) {
|
||||||
|
await saveApps(modifiedApps, attemptToCorrectInstallStatus: false);
|
||||||
}
|
}
|
||||||
}
|
|
||||||
if (modifiedApps.isNotEmpty) {
|
|
||||||
await saveApps(modifiedApps, attemptToCorrectInstallStatus: false);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Future<void> saveApps(List<App> apps,
|
Future<void> saveApps(List<App> apps,
|
||||||
{bool attemptToCorrectInstallStatus = true}) async {
|
{bool attemptToCorrectInstallStatus = true}) async {
|
||||||
|
attemptToCorrectInstallStatus =
|
||||||
|
attemptToCorrectInstallStatus && (await doesInstalledAppsPluginWork());
|
||||||
for (var app in apps) {
|
for (var app in apps) {
|
||||||
AppInfo? info = await getInstalledInfo(app.id);
|
AppInfo? info = await getInstalledInfo(app.id);
|
||||||
app.name = info?.name ?? app.name;
|
app.name = info?.name ?? app.name;
|
||||||
|
@@ -36,7 +36,7 @@ class UpdateNotification extends ObtainiumNotification {
|
|||||||
: updates.length == 1
|
: updates.length == 1
|
||||||
? tr('xHasAnUpdate', args: [updates[0].name])
|
? tr('xHasAnUpdate', args: [updates[0].name])
|
||||||
: plural('xAndNMoreUpdatesAvailable', updates.length - 1,
|
: plural('xAndNMoreUpdatesAvailable', updates.length - 1,
|
||||||
args: [updates[0].name]);
|
args: [updates[0].name, (updates.length - 1).toString()]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -48,7 +48,7 @@ class SilentUpdateNotification extends ObtainiumNotification {
|
|||||||
? tr('xWasUpdatedToY',
|
? tr('xWasUpdatedToY',
|
||||||
args: [updates[0].name, updates[0].latestVersion])
|
args: [updates[0].name, updates[0].latestVersion])
|
||||||
: plural('xAndNMoreUpdatesInstalled', updates.length - 1,
|
: plural('xAndNMoreUpdatesInstalled', updates.length - 1,
|
||||||
args: [updates[0].name]);
|
args: [updates[0].name, (updates.length - 1).toString()]);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -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
|
# 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
|
# 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.
|
# of the product and file versions while build-number is used as the build suffix.
|
||||||
version: 0.8.8+71 # When changing this, update the tag in main() accordingly
|
version: 0.8.10+74 # When changing this, update the tag in main() accordingly
|
||||||
|
|
||||||
environment:
|
environment:
|
||||||
sdk: '>=2.18.2 <3.0.0'
|
sdk: '>=2.18.2 <3.0.0'
|
||||||
|
Reference in New Issue
Block a user