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>
This commit is contained in:
2026-03-05 22:43:29 +00:00
parent df58e3b0df
commit 0b756788c2

View File

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