From 262ee94d8404c8bf61b8a5e25a31de6c4ac1a2c2 Mon Sep 17 00:00:00 2001 From: Aayush Gupta Date: Tue, 9 Jan 2024 19:42:16 +0530 Subject: [PATCH] DownloadFragment: Avoid capturing download object in listener This results in their state never being updated when passed to menu fragment. Store the ongoing downloads in a list and find it when required using the package name instead. Signed-off-by: Aayush Gupta --- .../store/view/ui/downloads/DownloadFragment.kt | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/com/aurora/store/view/ui/downloads/DownloadFragment.kt b/app/src/main/java/com/aurora/store/view/ui/downloads/DownloadFragment.kt index 6b860aad5..93e23c7c7 100644 --- a/app/src/main/java/com/aurora/store/view/ui/downloads/DownloadFragment.kt +++ b/app/src/main/java/com/aurora/store/view/ui/downloads/DownloadFragment.kt @@ -49,6 +49,7 @@ class DownloadFragment : BaseFragment(R.layout.fragment_download) { @Inject lateinit var downloadWorkerUtil: DownloadWorkerUtil + lateinit var downloadList: List private val AURORA_STORE_URL = "https://gitlab.com/AuroraOSS/AuroraStore" @@ -82,7 +83,10 @@ class DownloadFragment : BaseFragment(R.layout.fragment_download) { } viewLifecycleOwner.lifecycleScope.launch { - downloadWorkerUtil.downloadsList.collectLatest { updateController(it) } + downloadWorkerUtil.downloadsList.collectLatest { + downloadList = it + updateController(it) + } } } @@ -113,7 +117,7 @@ class DownloadFragment : BaseFragment(R.layout.fragment_download) { } } .longClick { _ -> - openDownloadMenuSheet(it) + openDownloadMenuSheet(it.packageName) true } ) @@ -123,7 +127,8 @@ class DownloadFragment : BaseFragment(R.layout.fragment_download) { binding.swipeRefreshLayout.isRefreshing = false } - private fun openDownloadMenuSheet(download: Download) { + private fun openDownloadMenuSheet(packageName: String) { + val download = downloadList.find { it.packageName == packageName }!! findNavController().navigate( DownloadFragmentDirections.actionDownloadFragmentToDownloadMenuSheet(download) )