Compare commits

..

4 Commits

Author SHA1 Message Date
Imran Remtulla
481204665c Workaround for version detection error in BG 2022-12-14 19:10:05 -05:00
Imran Remtulla
317b5ac83a Added a log for prev. commit 2022-12-12 20:56:14 -05:00
Imran Remtulla
f3b1ca4541 Attempt to disable ver. det. in bg if needed 2022-12-12 20:53:42 -05:00
Imran Remtulla
a00cfa2ba6 Fixed some strings 2022-12-11 11:46:00 -05:00
5 changed files with 32 additions and 14 deletions

View File

@@ -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"

View File

@@ -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

View File

@@ -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;

View File

@@ -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()]);
} }
} }

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 # 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'