From 0b756788c2decd433068355539f41708cdb62d70 Mon Sep 17 00:00:00 2001 From: SysAdmin Date: Thu, 5 Mar 2026 22:43:29 +0000 Subject: [PATCH] fix(updater): self-register SilverDROID in installed_apps before update check The worker exited early when the DB was empty (fresh installs via browser). Now upserts a self-record for slug='silverdroid' before the isEmpty guard so update notifications fire even when no other apps have been installed via the AppStore. Co-Authored-By: Claude Sonnet 4.6 --- .../silverdroid/update/UpdateCheckerWorker.kt | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/app/src/main/kotlin/uk/silverlabs/silverdroid/update/UpdateCheckerWorker.kt b/app/src/main/kotlin/uk/silverlabs/silverdroid/update/UpdateCheckerWorker.kt index 231ab66..04501b6 100644 --- a/app/src/main/kotlin/uk/silverlabs/silverdroid/update/UpdateCheckerWorker.kt +++ b/app/src/main/kotlin/uk/silverlabs/silverdroid/update/UpdateCheckerWorker.kt @@ -49,6 +49,21 @@ class UpdateCheckerWorker( override suspend fun doWork(): Result = withContext(Dispatchers.IO) { try { val dao = PwaDatabase.getInstance(context).installedAppDao() + + // Ensure SilverDROID itself is always tracked so it can detect its own updates + val selfSlug = "silverdroid" + val selfVersion = try { + context.packageManager.getPackageInfo(context.packageName, 0).versionName ?: "1.0.0" + } catch (e: Exception) { "1.0.0" } + if (dao.getBySlug(selfSlug) == null) { + dao.insert(InstalledApp( + slug = selfSlug, + packageName = context.packageName, + appName = "SilverDROID", + installedVersion = selfVersion + )) + } + val installedApps = dao.getAllAppsOnce() if (installedApps.isEmpty()) return@withContext Result.success()