mirror of
https://github.com/kiwix/kiwix-android.git
synced 2025-09-24 05:04:50 -04:00
Merge pull request #1615 from kiwix/feature/macgills/request-read-before-opening-zim
Require Read Permission be granted before continuing Custom app flow
This commit is contained in:
commit
2fed244666
@ -18,9 +18,14 @@
|
|||||||
|
|
||||||
package org.kiwix.kiwixmobile.custom.main
|
package org.kiwix.kiwixmobile.custom.main
|
||||||
|
|
||||||
|
import android.Manifest.permission.READ_EXTERNAL_STORAGE
|
||||||
|
import android.annotation.TargetApi
|
||||||
|
import android.content.pm.PackageManager.PERMISSION_DENIED
|
||||||
|
import android.os.Build.VERSION_CODES
|
||||||
import android.os.Bundle
|
import android.os.Bundle
|
||||||
import android.util.Log
|
import android.util.Log
|
||||||
import android.view.Menu
|
import android.view.Menu
|
||||||
|
import androidx.core.content.ContextCompat
|
||||||
import org.kiwix.kiwixmobile.core.extensions.ActivityExtensions.start
|
import org.kiwix.kiwixmobile.core.extensions.ActivityExtensions.start
|
||||||
import org.kiwix.kiwixmobile.core.main.CoreMainActivity
|
import org.kiwix.kiwixmobile.core.main.CoreMainActivity
|
||||||
import org.kiwix.kiwixmobile.core.main.WebViewCallback
|
import org.kiwix.kiwixmobile.core.main.WebViewCallback
|
||||||
@ -35,6 +40,8 @@ import org.kiwix.kiwixmobile.custom.main.ValidationState.HasFile
|
|||||||
import java.util.Locale
|
import java.util.Locale
|
||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
|
|
||||||
|
const val REQUEST_READ_FOR_OBB = 5002
|
||||||
|
|
||||||
class CustomMainActivity : CoreMainActivity() {
|
class CustomMainActivity : CoreMainActivity() {
|
||||||
@Inject lateinit var customFileValidator: CustomFileValidator
|
@Inject lateinit var customFileValidator: CustomFileValidator
|
||||||
|
|
||||||
@ -53,6 +60,11 @@ class CustomMainActivity : CoreMainActivity() {
|
|||||||
override fun onCreate(savedInstanceState: Bundle?) {
|
override fun onCreate(savedInstanceState: Bundle?) {
|
||||||
super.onCreate(savedInstanceState)
|
super.onCreate(savedInstanceState)
|
||||||
requireEnforcedLanguage()
|
requireEnforcedLanguage()
|
||||||
|
openObbOrZim()
|
||||||
|
}
|
||||||
|
|
||||||
|
@TargetApi(VERSION_CODES.M)
|
||||||
|
private fun openObbOrZim() {
|
||||||
customFileValidator.validate(
|
customFileValidator.validate(
|
||||||
onFilesFound = {
|
onFilesFound = {
|
||||||
when (it) {
|
when (it) {
|
||||||
@ -64,12 +76,27 @@ class CustomMainActivity : CoreMainActivity() {
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
onNoFilesFound = {
|
onNoFilesFound = {
|
||||||
finish()
|
if (ContextCompat.checkSelfPermission(this, READ_EXTERNAL_STORAGE) == PERMISSION_DENIED) {
|
||||||
start<CustomDownloadActivity>()
|
requestPermissions(arrayOf(READ_EXTERNAL_STORAGE), REQUEST_READ_FOR_OBB)
|
||||||
|
} else {
|
||||||
|
finish()
|
||||||
|
start<CustomDownloadActivity>()
|
||||||
|
}
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
override fun onRequestPermissionsResult(
|
||||||
|
requestCode: Int,
|
||||||
|
permissions: Array<out String>,
|
||||||
|
grantResults: IntArray
|
||||||
|
) {
|
||||||
|
super.onRequestPermissionsResult(requestCode, permissions, grantResults)
|
||||||
|
if (requestCode == REQUEST_READ_FOR_OBB) {
|
||||||
|
openObbOrZim()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
override fun onCreateOptionsMenu(menu: Menu?): Boolean {
|
override fun onCreateOptionsMenu(menu: Menu?): Boolean {
|
||||||
val onCreateOptionsMenu = super.onCreateOptionsMenu(menu)
|
val onCreateOptionsMenu = super.onCreateOptionsMenu(menu)
|
||||||
menu?.findItem(R.id.menu_help)?.isVisible = false
|
menu?.findItem(R.id.menu_help)?.isVisible = false
|
||||||
|
Loading…
x
Reference in New Issue
Block a user