From e0cda7eadf0244ed8c66a3cba4196d6473e9f6b1 Mon Sep 17 00:00:00 2001 From: Aayush Gupta Date: Wed, 27 Dec 2023 18:15:00 +0530 Subject: [PATCH] UpdatesFragment: Listen to install & uninstall events Similar logic as AppDetailsFragment to update list of updates Signed-off-by: Aayush Gupta --- .../store/view/ui/updates/UpdatesFragment.kt | 27 +++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/app/src/main/java/com/aurora/store/view/ui/updates/UpdatesFragment.kt b/app/src/main/java/com/aurora/store/view/ui/updates/UpdatesFragment.kt index 2c3449fef..537cc8740 100644 --- a/app/src/main/java/com/aurora/store/view/ui/updates/UpdatesFragment.kt +++ b/app/src/main/java/com/aurora/store/view/ui/updates/UpdatesFragment.kt @@ -30,10 +30,13 @@ import androidx.activity.result.contract.ActivityResultContracts import androidx.core.content.ContextCompat import androidx.fragment.app.viewModels import androidx.lifecycle.lifecycleScope +import androidx.navigation.fragment.findNavController import com.aurora.extensions.isRAndAbove import com.aurora.extensions.toast import com.aurora.gplayapi.data.models.App import com.aurora.store.R +import com.aurora.store.data.event.BusEvent +import com.aurora.store.data.event.InstallerEvent import com.aurora.store.data.room.download.Download import com.aurora.store.databinding.FragmentUpdatesBinding import com.aurora.store.util.PathUtil @@ -49,6 +52,9 @@ import java.io.File import kotlinx.coroutines.flow.collectLatest import kotlinx.coroutines.flow.combine import kotlinx.coroutines.launch +import org.greenrobot.eventbus.EventBus +import org.greenrobot.eventbus.Subscribe +import org.greenrobot.eventbus.ThreadMode @AndroidEntryPoint class UpdatesFragment : BaseFragment(R.layout.fragment_updates) { @@ -73,6 +79,11 @@ class UpdatesFragment : BaseFragment(R.layout.fragment_updates) { if (perm) viewModel.download(app) else toast(R.string.permissions_denied) } + override fun onStart() { + super.onStart() + EventBus.getDefault().register(this) + } + override fun onViewCreated(view: View, savedInstanceState: Bundle?) { super.onViewCreated(view, savedInstanceState) _binding = FragmentUpdatesBinding.bind(view) @@ -101,6 +112,22 @@ class UpdatesFragment : BaseFragment(R.layout.fragment_updates) { _binding = null } + override fun onStop() { + EventBus.getDefault().unregister(this) + super.onStop() + } + + @Subscribe(threadMode = ThreadMode.MAIN) + fun onEventMainThread(event: Any) { + when (event) { + is BusEvent.InstallEvent, is BusEvent.UninstallEvent -> { + viewModel.observe() + } + + else -> {} + } + } + private fun updateController(appList: Map?) { binding.recycler.withModels { setFilterDuplicates(true)