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:
@@ -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()
|
||||
|
||||
Reference in New Issue
Block a user