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)
|
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 {
|
fun getSpoofDirectory(context: Context): File {
|
||||||
return File(context.filesDir, SPOOF)
|
return File(context.filesDir, SPOOF)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -45,6 +45,7 @@ import com.aurora.Constants
|
|||||||
import com.aurora.Constants.EXODUS_SUBMIT_PAGE
|
import com.aurora.Constants.EXODUS_SUBMIT_PAGE
|
||||||
import com.aurora.extensions.browse
|
import com.aurora.extensions.browse
|
||||||
import com.aurora.extensions.hide
|
import com.aurora.extensions.hide
|
||||||
|
import com.aurora.extensions.requiresObbDir
|
||||||
import com.aurora.extensions.runOnUiThread
|
import com.aurora.extensions.runOnUiThread
|
||||||
import com.aurora.extensions.share
|
import com.aurora.extensions.share
|
||||||
import com.aurora.extensions.show
|
import com.aurora.extensions.show
|
||||||
@@ -582,7 +583,7 @@ class AppDetailsFragment : BaseFragment<FragmentDetailsBinding>() {
|
|||||||
bottomSheetBehavior.state = BottomSheetBehavior.STATE_COLLAPSED
|
bottomSheetBehavior.state = BottomSheetBehavior.STATE_COLLAPSED
|
||||||
updateActionState(State.PROGRESS)
|
updateActionState(State.PROGRESS)
|
||||||
|
|
||||||
if (PathUtil.needsStorageManagerPerm(app.fileList)) {
|
if (app.fileList.requiresObbDir()) {
|
||||||
if (permissionProvider.isGranted(PermissionType.STORAGE_MANAGER)) {
|
if (permissionProvider.isGranted(PermissionType.STORAGE_MANAGER)) {
|
||||||
viewModel.download(app)
|
viewModel.download(app)
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
@@ -26,6 +26,7 @@ import androidx.lifecycle.lifecycleScope
|
|||||||
import androidx.navigation.fragment.findNavController
|
import androidx.navigation.fragment.findNavController
|
||||||
import com.aurora.Constants
|
import com.aurora.Constants
|
||||||
import com.aurora.extensions.browse
|
import com.aurora.extensions.browse
|
||||||
|
import com.aurora.extensions.requiresObbDir
|
||||||
import com.aurora.store.MobileNavigationDirections
|
import com.aurora.store.MobileNavigationDirections
|
||||||
import com.aurora.store.PermissionType
|
import com.aurora.store.PermissionType
|
||||||
import com.aurora.store.R
|
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.download.Download
|
||||||
import com.aurora.store.data.room.update.Update
|
import com.aurora.store.data.room.update.Update
|
||||||
import com.aurora.store.databinding.FragmentUpdatesBinding
|
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.UpdateHeaderViewModel_
|
||||||
import com.aurora.store.view.epoxy.views.app.AppUpdateViewModel_
|
import com.aurora.store.view.epoxy.views.app.AppUpdateViewModel_
|
||||||
import com.aurora.store.view.epoxy.views.app.NoAppViewModel_
|
import com.aurora.store.view.epoxy.views.app.NoAppViewModel_
|
||||||
@@ -156,7 +156,7 @@ class UpdatesFragment : BaseFragment<FragmentUpdatesBinding>() {
|
|||||||
if (viewModel.updateAllEnqueued) {
|
if (viewModel.updateAllEnqueued) {
|
||||||
cancelAll()
|
cancelAll()
|
||||||
} else {
|
} else {
|
||||||
appList.keys.forEach { updateSingle(it, true) }
|
updateAll()
|
||||||
}
|
}
|
||||||
requestModelBuild()
|
requestModelBuild()
|
||||||
}
|
}
|
||||||
@@ -188,10 +188,8 @@ class UpdatesFragment : BaseFragment<FragmentUpdatesBinding>() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun updateSingle(update: Update, updateAll: Boolean = false) {
|
private fun updateSingle(update: Update) {
|
||||||
viewModel.updateAllEnqueued = updateAll
|
if (update.fileList.requiresObbDir()) {
|
||||||
|
|
||||||
if (PathUtil.needsStorageManagerPerm(update.fileList)) {
|
|
||||||
if (permissionProvider.isGranted(PermissionType.STORAGE_MANAGER)) {
|
if (permissionProvider.isGranted(PermissionType.STORAGE_MANAGER)) {
|
||||||
viewModel.download(update)
|
viewModel.download(update)
|
||||||
} else {
|
} 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) {
|
private fun cancelSingle(update: Update) {
|
||||||
viewModel.cancelDownload(update.packageName)
|
viewModel.cancelDownload(update.packageName)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -49,6 +49,12 @@ class UpdatesViewModel @Inject constructor(
|
|||||||
viewModelScope.launch { downloadHelper.enqueueUpdate(update) }
|
viewModelScope.launch { downloadHelper.enqueueUpdate(update) }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fun downloadAll() {
|
||||||
|
viewModelScope.launch {
|
||||||
|
updates.value?.forEach { downloadHelper.enqueueUpdate(it) }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
fun cancelDownload(packageName: String) {
|
fun cancelDownload(packageName: String) {
|
||||||
viewModelScope.launch { downloadHelper.cancelDownload(packageName) }
|
viewModelScope.launch { downloadHelper.cancelDownload(packageName) }
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user