mirror of
https://github.com/kiwix/kiwix-android.git
synced 2025-09-23 04:33:54 -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
|
||||
|
||||
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.util.Log
|
||||
import android.view.Menu
|
||||
import androidx.core.content.ContextCompat
|
||||
import org.kiwix.kiwixmobile.core.extensions.ActivityExtensions.start
|
||||
import org.kiwix.kiwixmobile.core.main.CoreMainActivity
|
||||
import org.kiwix.kiwixmobile.core.main.WebViewCallback
|
||||
@ -35,6 +40,8 @@ import org.kiwix.kiwixmobile.custom.main.ValidationState.HasFile
|
||||
import java.util.Locale
|
||||
import javax.inject.Inject
|
||||
|
||||
const val REQUEST_READ_FOR_OBB = 5002
|
||||
|
||||
class CustomMainActivity : CoreMainActivity() {
|
||||
@Inject lateinit var customFileValidator: CustomFileValidator
|
||||
|
||||
@ -53,6 +60,11 @@ class CustomMainActivity : CoreMainActivity() {
|
||||
override fun onCreate(savedInstanceState: Bundle?) {
|
||||
super.onCreate(savedInstanceState)
|
||||
requireEnforcedLanguage()
|
||||
openObbOrZim()
|
||||
}
|
||||
|
||||
@TargetApi(VERSION_CODES.M)
|
||||
private fun openObbOrZim() {
|
||||
customFileValidator.validate(
|
||||
onFilesFound = {
|
||||
when (it) {
|
||||
@ -64,12 +76,27 @@ class CustomMainActivity : CoreMainActivity() {
|
||||
}
|
||||
},
|
||||
onNoFilesFound = {
|
||||
finish()
|
||||
start<CustomDownloadActivity>()
|
||||
if (ContextCompat.checkSelfPermission(this, READ_EXTERNAL_STORAGE) == PERMISSION_DENIED) {
|
||||
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 {
|
||||
val onCreateOptionsMenu = super.onCreateOptionsMenu(menu)
|
||||
menu?.findItem(R.id.menu_help)?.isVisible = false
|
||||
|
Loading…
x
Reference in New Issue
Block a user