1 Commits

Author SHA1 Message Date
0b756788c2 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 <noreply@anthropic.com>
2026-03-05 22:43:29 +00:00

View File

@@ -49,6 +49,21 @@ class UpdateCheckerWorker(
override suspend fun doWork(): Result = withContext(Dispatchers.IO) { override suspend fun doWork(): Result = withContext(Dispatchers.IO) {
try { try {
val dao = PwaDatabase.getInstance(context).installedAppDao() 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() val installedApps = dao.getAllAppsOnce()
if (installedApps.isEmpty()) return@withContext Result.success() if (installedApps.isEmpty()) return@withContext Result.success()