chore: remove stale debug logs and spurious getInstalledInfo error logging

- Remove all APPS REFRESH debug logs from apps.dart and
  apps_provider_updates.dart (trace logging for refresh diagnostics no
  longer needed)
- Remove getInstalledInfo error log entirely: "app not installed" is
  always an expected condition, not an error. Remove printErr parameter
  and all printErr: false at call sites
This commit is contained in:
Imran Remtulla
2026-07-07 00:39:57 +01:00
parent 712ab8891d
commit 03dc7ef77b
5 changed files with 7 additions and 70 deletions

View File

@@ -13,7 +13,6 @@ import 'package:obtainium/custom_errors.dart';
import 'package:obtainium/main.dart';
import 'package:obtainium/pages/app.dart';
import 'package:obtainium/providers/apps_provider.dart';
import 'package:obtainium/providers/logs_provider.dart';
import 'package:obtainium/providers/notifications_provider.dart';
import 'package:obtainium/providers/settings_provider.dart';
import 'package:obtainium/providers/source_provider.dart';
@@ -162,37 +161,18 @@ class AppsPageState extends State<AppsPage> {
}
Future<List<App>> refresh() {
unawaited(LogsProvider().add(
'APPS REFRESH: refresh() called, checkUpdates starting',
level: LogLevel.info,
));
settingsProvider.lightImpact();
setState(() {});
final ctx = context;
return appsProvider
.checkUpdates(forceAll: true)
.then((updates) {
unawaited(LogsProvider().add(
'APPS REFRESH: checkUpdates returned ${updates.length} updates',
level: LogLevel.info,
));
return updates;
})
.catchError((e) {
unawaited(LogsProvider().add(
'APPS REFRESH: checkUpdates error: ${e.toString()}',
level: LogLevel.error,
));
if (ctx.mounted) {
showError(e is CheckUpdatesException ? e.errors : e, ctx);
}
return <App>[];
})
.whenComplete(() {
unawaited(LogsProvider().add(
'APPS REFRESH: whenComplete firing',
level: LogLevel.info,
));
setState(() {});
});
}
@@ -1040,10 +1020,6 @@ class AppsPageState extends State<AppsPage> {
settingsProvider.checkOnStart) {
WidgetsBinding.instance.addPostFrameCallback((_) {
if (!mounted) return;
unawaited(LogsProvider().add(
'APPS REFRESH: calling refreshIndicatorKey.currentState?.show()',
level: LogLevel.info,
));
refreshIndicatorKey.currentState?.show();
});
}

View File

@@ -745,25 +745,15 @@ Future<List<PackageInfo>> getAllInstalledInfo() async {
}
Future<PackageInfo?> getInstalledInfo(
String? packageName, {
bool printErr = true,
}) async {
String? packageName,
) async {
if (packageName != null) {
try {
return await packageManager.getPackageInfo(
packageName: packageName,
flags: packageInfoFlags,
);
} catch (e) {
if (printErr) {
unawaited(
LogsProvider().add(
'Failed to get installed info for $packageName: ${e.toString()}',
level: LogLevel.error,
),
);
}
}
} catch (_) {}
}
return null;
}
@@ -778,7 +768,7 @@ class InstallBaseline {
/// Captures the current install state of [appId] to compare against later.
Future<InstallBaseline> captureInstallBaseline(String appId) async {
final info = await getInstalledInfo(appId, printErr: false);
final info = await getInstalledInfo(appId);
return InstallBaseline(info != null, info?.lastUpdateTime);
}
@@ -795,7 +785,7 @@ Future<bool> waitForPackageInstall(
Duration interval = const Duration(milliseconds: 500),
}) async {
for (var attempt = 0; attempt < attempts; attempt++) {
final info = await getInstalledInfo(appId, printErr: false);
final info = await getInstalledInfo(appId);
if (info != null) {
if (!baseline.wasInstalled) return true;
final updateTimeAfter = info.lastUpdateTime;

View File

@@ -131,7 +131,7 @@ extension AppsProviderImportExport on AppsProvider {
await waitForAppsToLoad();
for (var i = 0; i < importedApps.length; i++) {
final a = importedApps[i];
final installedInfo = await getInstalledInfo(a.id, printErr: false);
final installedInfo = await getInstalledInfo(a.id);
importedApps[i] = a.copyWith(
installedVersion: a.settings.getBool('useVersionCodeAsOSVersion')
? installedInfo?.versionCode.toString()

View File

@@ -672,7 +672,7 @@ extension AppsProviderInstall on AppsProvider {
if (!settingsProvider.beforeNewInstallsShareToAppVerifier) return;
var anyInstalled = false;
for (final id in _verifiedAppsPackageIds) {
if (await getInstalledInfo(id, printErr: false) != null) {
if (await getInstalledInfo(id) != null) {
anyInstalled = true;
break;
}

View File

@@ -3,7 +3,6 @@ import 'dart:io';
import 'package:obtainium/custom_errors.dart';
import 'package:obtainium/providers/apps_provider.dart';
import 'package:obtainium/providers/logs_provider.dart';
import 'package:obtainium/providers/settings_provider.dart';
import 'package:obtainium/providers/source_provider.dart';
@@ -95,17 +94,9 @@ extension AppsProviderUpdates on AppsProvider {
}) async {
final SettingsProvider settingsProvider = sp ?? this.settingsProvider;
if (updateCheckCompleter != null) {
unawaited(LogsProvider().add(
'APPS REFRESH: checkUpdates returning existing completer future',
level: LogLevel.info,
));
return updateCheckCompleter!.future;
}
final completer = updateCheckCompleter = Completer<List<App>>();
unawaited(LogsProvider().add(
'APPS REFRESH: checkUpdates created new completer',
level: LogLevel.info,
));
try {
final List<App> updates = [];
final MultiAppMultiError errors = MultiAppMultiError();
@@ -129,10 +120,6 @@ extension AppsProviderUpdates on AppsProvider {
settingsProvider.onlyCheckInstalledOrTrackOnlyApps,
);
}
unawaited(LogsProvider().add(
'APPS REFRESH: checkUpdates checking ${appIds.length} apps (forceAll=$forceAll, specificIds=${specificIds != null})',
level: LogLevel.info,
));
final results = await Future.wait(
appIds.map((appId) async {
final currentApp = apps[appId]?.app;
@@ -165,32 +152,16 @@ extension AppsProviderUpdates on AppsProvider {
if (r.value) updates.add(r.key);
}
if (fetched.isNotEmpty) {
unawaited(LogsProvider().add(
'APPS REFRESH: checkUpdates saving ${fetched.length} fetched apps (${updates.length} have updates)',
level: LogLevel.info,
));
await saveApps(fetched);
}
if (errors.idsByErrorString.isNotEmpty) {
unawaited(LogsProvider().add(
'APPS REFRESH: checkUpdates completed with ${errors.idsByErrorString.length} errors',
level: LogLevel.info,
));
final ex = CheckUpdatesException(updates, errors);
completer.completeError(ex);
throw ex;
}
unawaited(LogsProvider().add(
'APPS REFRESH: checkUpdates completed successfully',
level: LogLevel.info,
));
completer.complete(updates);
return updates;
} catch (e) {
unawaited(LogsProvider().add(
'APPS REFRESH: checkUpdates caught exception: ${e.toString()}',
level: LogLevel.error,
));
if (!completer.isCompleted) {
completer.completeError(e);
}