UpdatesFragment: Move updateAll logic to viewmodel
Also switch to extension everywhere to check if app needs storage manager permission Signed-off-by: Aayush Gupta <aayushgupta219@gmail.com>
This commit is contained in:
@@ -95,10 +95,6 @@ object PathUtil {
|
||||
return File(getObbDownloadDir(packageName), file.name)
|
||||
}
|
||||
|
||||
fun needsStorageManagerPerm(fileList: List<GPlayFile>): Boolean {
|
||||
return fileList.any { it.type == GPlayFile.FileType.OBB || it.type == GPlayFile.FileType.PATCH }
|
||||
}
|
||||
|
||||
fun getSpoofDirectory(context: Context): File {
|
||||
return File(context.filesDir, SPOOF)
|
||||
}
|
||||
|
||||
@@ -45,6 +45,7 @@ import com.aurora.Constants
|
||||
import com.aurora.Constants.EXODUS_SUBMIT_PAGE
|
||||
import com.aurora.extensions.browse
|
||||
import com.aurora.extensions.hide
|
||||
import com.aurora.extensions.requiresObbDir
|
||||
import com.aurora.extensions.runOnUiThread
|
||||
import com.aurora.extensions.share
|
||||
import com.aurora.extensions.show
|
||||
@@ -582,7 +583,7 @@ class AppDetailsFragment : BaseFragment<FragmentDetailsBinding>() {
|
||||
bottomSheetBehavior.state = BottomSheetBehavior.STATE_COLLAPSED
|
||||
updateActionState(State.PROGRESS)
|
||||
|
||||
if (PathUtil.needsStorageManagerPerm(app.fileList)) {
|
||||
if (app.fileList.requiresObbDir()) {
|
||||
if (permissionProvider.isGranted(PermissionType.STORAGE_MANAGER)) {
|
||||
viewModel.download(app)
|
||||
} else {
|
||||
|
||||
@@ -26,6 +26,7 @@ import androidx.lifecycle.lifecycleScope
|
||||
import androidx.navigation.fragment.findNavController
|
||||
import com.aurora.Constants
|
||||
import com.aurora.extensions.browse
|
||||
import com.aurora.extensions.requiresObbDir
|
||||
import com.aurora.store.MobileNavigationDirections
|
||||
import com.aurora.store.PermissionType
|
||||
import com.aurora.store.R
|
||||
@@ -34,7 +35,6 @@ import com.aurora.store.data.providers.PermissionProvider
|
||||
import com.aurora.store.data.room.download.Download
|
||||
import com.aurora.store.data.room.update.Update
|
||||
import com.aurora.store.databinding.FragmentUpdatesBinding
|
||||
import com.aurora.store.util.PathUtil
|
||||
import com.aurora.store.view.epoxy.views.UpdateHeaderViewModel_
|
||||
import com.aurora.store.view.epoxy.views.app.AppUpdateViewModel_
|
||||
import com.aurora.store.view.epoxy.views.app.NoAppViewModel_
|
||||
@@ -156,7 +156,7 @@ class UpdatesFragment : BaseFragment<FragmentUpdatesBinding>() {
|
||||
if (viewModel.updateAllEnqueued) {
|
||||
cancelAll()
|
||||
} else {
|
||||
appList.keys.forEach { updateSingle(it, true) }
|
||||
updateAll()
|
||||
}
|
||||
requestModelBuild()
|
||||
}
|
||||
@@ -188,10 +188,8 @@ class UpdatesFragment : BaseFragment<FragmentUpdatesBinding>() {
|
||||
}
|
||||
}
|
||||
|
||||
private fun updateSingle(update: Update, updateAll: Boolean = false) {
|
||||
viewModel.updateAllEnqueued = updateAll
|
||||
|
||||
if (PathUtil.needsStorageManagerPerm(update.fileList)) {
|
||||
private fun updateSingle(update: Update) {
|
||||
if (update.fileList.requiresObbDir()) {
|
||||
if (permissionProvider.isGranted(PermissionType.STORAGE_MANAGER)) {
|
||||
viewModel.download(update)
|
||||
} else {
|
||||
@@ -202,6 +200,19 @@ class UpdatesFragment : BaseFragment<FragmentUpdatesBinding>() {
|
||||
}
|
||||
}
|
||||
|
||||
private fun updateAll() {
|
||||
viewModel.updateAllEnqueued = true
|
||||
if (viewModel.updates.value?.any { it.fileList.requiresObbDir() } == true) {
|
||||
if (permissionProvider.isGranted(PermissionType.STORAGE_MANAGER)) {
|
||||
viewModel.downloadAll()
|
||||
} else {
|
||||
permissionProvider.request(PermissionType.STORAGE_MANAGER)
|
||||
}
|
||||
} else {
|
||||
viewModel.downloadAll()
|
||||
}
|
||||
}
|
||||
|
||||
private fun cancelSingle(update: Update) {
|
||||
viewModel.cancelDownload(update.packageName)
|
||||
}
|
||||
|
||||
@@ -49,6 +49,12 @@ class UpdatesViewModel @Inject constructor(
|
||||
viewModelScope.launch { downloadHelper.enqueueUpdate(update) }
|
||||
}
|
||||
|
||||
fun downloadAll() {
|
||||
viewModelScope.launch {
|
||||
updates.value?.forEach { downloadHelper.enqueueUpdate(it) }
|
||||
}
|
||||
}
|
||||
|
||||
fun cancelDownload(packageName: String) {
|
||||
viewModelScope.launch { downloadHelper.cancelDownload(packageName) }
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user