diff --git a/app/src/main/java/foundation/e/apps/manager/workmanager/InstallAppWorker.kt b/app/src/main/java/foundation/e/apps/manager/workmanager/InstallAppWorker.kt index 6dca817c3ecbdfd48094464f7f02fedb51538703..95649acec120a2aeb150af63eabd5d2727d3c6d0 100644 --- a/app/src/main/java/foundation/e/apps/manager/workmanager/InstallAppWorker.kt +++ b/app/src/main/java/foundation/e/apps/manager/workmanager/InstallAppWorker.kt @@ -100,7 +100,7 @@ class InstallAppWorker @AssistedInject constructor( fusedDownload = databaseRepository.getDownloadById(fusedDownloadString) Timber.d(">>> dowork started for Fused download name " + fusedDownload?.name + " " + fusedDownloadString) fusedDownload?.let { - isItUpdateWork = params.inputData.getBoolean(IS_UPDATE_WORK, false) + isItUpdateWork = params.inputData.getBoolean(IS_UPDATE_WORK, false) && packageManagerModule.isInstalled(it.packageName) if (fusedDownload.status != Status.AWAITING) { @@ -136,8 +136,12 @@ class InstallAppWorker @AssistedInject constructor( ) { if (isItUpdateWork) { fusedDownload?.let { - val actualFusedDownload = databaseRepository.getDownloadById(it.id) - if (actualFusedDownload?.status == Status.INSTALLED) { + val packageStatus = packageManagerModule.getPackageStatus( + fusedDownload.packageName, + fusedDownload.versionCode + ) + + if (packageStatus == Status.INSTALLED) { UpdatesDao.addSuccessfullyUpdatedApp(it) } @@ -152,7 +156,12 @@ class InstallAppWorker @AssistedInject constructor( private suspend fun isUpdateCompleted(): Boolean { val downloadListWithoutAnyIssue = databaseRepository.getDownloadList() - .filter { !listOf(Status.INSTALLATION_ISSUE, Status.PURCHASE_NEEDED).contains(it.status) } + .filter { + !listOf( + Status.INSTALLATION_ISSUE, + Status.PURCHASE_NEEDED + ).contains(it.status) + } return UpdatesDao.successfulUpdatedApps.isNotEmpty() && downloadListWithoutAnyIssue.isEmpty() } @@ -282,7 +291,7 @@ class InstallAppWorker @AssistedInject constructor( val notificationManager = context.getSystemService(Context.NOTIFICATION_SERVICE) as - NotificationManager + NotificationManager // Create a Notification channel if necessary if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { val mChannel = NotificationChannel(