diff --git a/app/src/main/java/com/aurora/store/view/ui/details/AppDetailsActivity.kt b/app/src/main/java/com/aurora/store/view/ui/details/AppDetailsActivity.kt index 24b546d93..91cc6de6e 100644 --- a/app/src/main/java/com/aurora/store/view/ui/details/AppDetailsActivity.kt +++ b/app/src/main/java/com/aurora/store/view/ui/details/AppDetailsActivity.kt @@ -262,6 +262,19 @@ class AppDetailsActivity : BaseDetailsActivity() { } } + private fun verifyAndInstall(files: List) { + var filesExist = true + + files.forEach { download -> + filesExist = filesExist && FileUtils.getFile(download.file).exists() + } + + if (filesExist) + install(files) + else + purchase() + } + @Synchronized private fun install(files: List) { updateActionState(State.IDLE) @@ -394,16 +407,7 @@ class AppDetailsActivity : BaseDetailsActivity() { } Status.COMPLETED -> { fetch.getFetchGroup(app.id) { - var filesExist = true - - it.downloads.forEach { download -> - filesExist = filesExist && FileUtils.getFile(download.file).exists() - } - - if (filesExist) - install(it.downloads) - else - purchase() + verifyAndInstall(it.downloads) } } else -> { @@ -485,6 +489,10 @@ class AppDetailsActivity : BaseDetailsActivity() { .toList() if (requestList.isNotEmpty()) { + /*Remove old fetch group if downloaded earlier, mostly in case of updates*/ + fetch.deleteGroup(app.id) + + /*Enqueue new fetch group*/ fetch.enqueue( requestList ) { @@ -666,7 +674,7 @@ class AppDetailsActivity : BaseDetailsActivity() { if (groupId == app.id && fetchGroup.groupDownloadProgress == 100) { status = download.status flip(0) - install(fetchGroup.downloads) + verifyAndInstall(fetchGroup.downloads) updateProgress(fetchGroup, -1, -1) } }