UpdatesFragment: Listen to install & uninstall events

Similar logic as AppDetailsFragment to update list of updates

Signed-off-by: Aayush Gupta <aayushgupta219@gmail.com>
This commit is contained in:
Aayush Gupta
2023-12-27 18:15:00 +05:30
parent 14c8da2db5
commit e0cda7eadf

View File

@@ -30,10 +30,13 @@ import androidx.activity.result.contract.ActivityResultContracts
import androidx.core.content.ContextCompat import androidx.core.content.ContextCompat
import androidx.fragment.app.viewModels import androidx.fragment.app.viewModels
import androidx.lifecycle.lifecycleScope import androidx.lifecycle.lifecycleScope
import androidx.navigation.fragment.findNavController
import com.aurora.extensions.isRAndAbove import com.aurora.extensions.isRAndAbove
import com.aurora.extensions.toast import com.aurora.extensions.toast
import com.aurora.gplayapi.data.models.App import com.aurora.gplayapi.data.models.App
import com.aurora.store.R 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.data.room.download.Download
import com.aurora.store.databinding.FragmentUpdatesBinding import com.aurora.store.databinding.FragmentUpdatesBinding
import com.aurora.store.util.PathUtil import com.aurora.store.util.PathUtil
@@ -49,6 +52,9 @@ import java.io.File
import kotlinx.coroutines.flow.collectLatest import kotlinx.coroutines.flow.collectLatest
import kotlinx.coroutines.flow.combine import kotlinx.coroutines.flow.combine
import kotlinx.coroutines.launch import kotlinx.coroutines.launch
import org.greenrobot.eventbus.EventBus
import org.greenrobot.eventbus.Subscribe
import org.greenrobot.eventbus.ThreadMode
@AndroidEntryPoint @AndroidEntryPoint
class UpdatesFragment : BaseFragment(R.layout.fragment_updates) { 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) 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?) { override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
super.onViewCreated(view, savedInstanceState) super.onViewCreated(view, savedInstanceState)
_binding = FragmentUpdatesBinding.bind(view) _binding = FragmentUpdatesBinding.bind(view)
@@ -101,6 +112,22 @@ class UpdatesFragment : BaseFragment(R.layout.fragment_updates) {
_binding = null _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<App, Download?>?) { private fun updateController(appList: Map<App, Download?>?) {
binding.recycler.withModels { binding.recycler.withModels {
setFilterDuplicates(true) setFilterDuplicates(true)