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:
@@ -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<App, Download?>?) {
|
||||
binding.recycler.withModels {
|
||||
setFilterDuplicates(true)
|
||||
|
||||
Reference in New Issue
Block a user