Ask storage permission only if the downloads has OBB/Patch file
This commit is contained in:
@@ -379,7 +379,7 @@ class AppDetailsActivity : BaseDetailsActivity() {
|
|||||||
var filesExist = true
|
var filesExist = true
|
||||||
|
|
||||||
it.downloads.forEach { download ->
|
it.downloads.forEach { download ->
|
||||||
filesExist = filesExist && FileUtils.getFile(download.file).exists()
|
filesExist = filesExist && FileUtils.getFile(download.file).exists()
|
||||||
}
|
}
|
||||||
|
|
||||||
if (filesExist)
|
if (filesExist)
|
||||||
@@ -396,6 +396,7 @@ class AppDetailsActivity : BaseDetailsActivity() {
|
|||||||
|
|
||||||
private fun purchase() {
|
private fun purchase() {
|
||||||
updateActionState(ActionButton.State.PROGRESS)
|
updateActionState(ActionButton.State.PROGRESS)
|
||||||
|
|
||||||
task {
|
task {
|
||||||
val authData = AuthProvider
|
val authData = AuthProvider
|
||||||
.with(this)
|
.with(this)
|
||||||
@@ -404,9 +405,20 @@ class AppDetailsActivity : BaseDetailsActivity() {
|
|||||||
PurchaseHelper(authData)
|
PurchaseHelper(authData)
|
||||||
.using(HttpClient.getPreferredClient())
|
.using(HttpClient.getPreferredClient())
|
||||||
.purchase(app.packageName, app.versionCode, app.offerType)
|
.purchase(app.packageName, app.versionCode, app.offerType)
|
||||||
} successUi {
|
} successUi { files ->
|
||||||
if (it.isNotEmpty()) {
|
if (files.isNotEmpty()) {
|
||||||
enqueue(it)
|
var hasOBB = false
|
||||||
|
|
||||||
|
files.forEach { file ->
|
||||||
|
if (file.type == File.FileType.OBB || file.type == File.FileType.PATCH) {
|
||||||
|
hasOBB = true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (hasOBB)
|
||||||
|
enqueueWithStoragePermission(files)
|
||||||
|
else
|
||||||
|
enqueue(files)
|
||||||
} else {
|
} else {
|
||||||
Log.e("Failed to download : ${app.displayName}")
|
Log.e("Failed to download : ${app.displayName}")
|
||||||
updateActionState(ActionButton.State.IDLE)
|
updateActionState(ActionButton.State.IDLE)
|
||||||
@@ -418,10 +430,14 @@ class AppDetailsActivity : BaseDetailsActivity() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun enqueue(files: List<File>) = runWithPermissions(
|
private fun enqueueWithStoragePermission(files: List<File>) = runWithPermissions(
|
||||||
Manifest.permission.READ_EXTERNAL_STORAGE,
|
Manifest.permission.READ_EXTERNAL_STORAGE,
|
||||||
Manifest.permission.WRITE_EXTERNAL_STORAGE
|
Manifest.permission.WRITE_EXTERNAL_STORAGE
|
||||||
) {
|
) {
|
||||||
|
enqueue(files)
|
||||||
|
}
|
||||||
|
|
||||||
|
private fun enqueue(files: List<File>) {
|
||||||
val requestList = files
|
val requestList = files
|
||||||
.filter { it.url.isNotEmpty() }
|
.filter { it.url.isNotEmpty() }
|
||||||
.map {
|
.map {
|
||||||
|
|||||||
Reference in New Issue
Block a user