mirror of
https://github.com/tachiyomiorg/tachiyomi.git
synced 2024-12-23 12:11:49 +01:00
Laxing on the all files permission for a11
The permission will now show only once, aside from trying to download manga or trying to read local manga close #910
This commit is contained in:
parent
70fc7c3b3b
commit
2ac761729d
@ -16,6 +16,8 @@ object PreferenceKeys {
|
||||
|
||||
const val backToStart = "back_to_start"
|
||||
|
||||
const val deniedA11FilePermission = "denied_a11_file_permission"
|
||||
|
||||
const val rotation = "pref_rotation_type_key"
|
||||
|
||||
const val enableTransitions = "pref_enable_transitions_key"
|
||||
|
@ -106,6 +106,8 @@ class PreferencesHelper(val context: Context) {
|
||||
fun startingTab() = flowPrefs.getInt(Keys.startingTab, 0)
|
||||
fun backReturnsToStart() = flowPrefs.getBoolean(Keys.backToStart, true)
|
||||
|
||||
fun hasDeniedA11FilePermission() = flowPrefs.getBoolean(Keys.deniedA11FilePermission, false)
|
||||
|
||||
fun clear() = prefs.edit().clear().apply()
|
||||
|
||||
fun oldTheme() = prefs.getInt(Keys.theme, 5)
|
||||
|
@ -214,7 +214,7 @@ class MangaDetailsController :
|
||||
presenter.onCreate()
|
||||
binding.swipeRefresh.isRefreshing = presenter.isLoading
|
||||
binding.swipeRefresh.setOnRefreshListener { presenter.refreshAll() }
|
||||
requestFilePermissionsSafe(301)
|
||||
requestFilePermissionsSafe(301, presenter.preferences, presenter.manga.isLocal())
|
||||
}
|
||||
|
||||
/** Check if device is tablet, and use a second recycler to hold the details header if so */
|
||||
|
@ -367,7 +367,7 @@ class RecentsController(bundle: Bundle? = null) :
|
||||
binding.downloadBottomSheet.dlBottomSheet.sheetBehavior?.expand()
|
||||
}
|
||||
setPadding(binding.downloadBottomSheet.dlBottomSheet.sheetBehavior?.isHideable == true)
|
||||
requestFilePermissionsSafe(301)
|
||||
requestFilePermissionsSafe(301, presenter.preferences)
|
||||
}
|
||||
|
||||
fun updateTitleAndMenu() {
|
||||
|
@ -42,7 +42,7 @@ class SettingsBackupController : SettingsController() {
|
||||
|
||||
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
||||
super.onViewCreated(view, savedInstanceState)
|
||||
requestFilePermissionsSafe(500)
|
||||
requestFilePermissionsSafe(500, preferences)
|
||||
}
|
||||
|
||||
override fun setupPreferenceScreen(screen: PreferenceScreen) = screen.apply {
|
||||
|
@ -160,7 +160,7 @@ class BrowseController :
|
||||
updateTitleAndMenu()
|
||||
}
|
||||
|
||||
requestFilePermissionsSafe(301)
|
||||
requestFilePermissionsSafe(301, preferences)
|
||||
binding.bottomSheet.root.onCreate(this)
|
||||
|
||||
binding.shadow.alpha =
|
||||
|
@ -38,6 +38,7 @@ import eu.kanade.tachiyomi.util.system.dpToPx
|
||||
import eu.kanade.tachiyomi.util.system.openInBrowser
|
||||
import eu.kanade.tachiyomi.util.view.applyBottomAnimatedInsets
|
||||
import eu.kanade.tachiyomi.util.view.inflate
|
||||
import eu.kanade.tachiyomi.util.view.requestFilePermissionsSafe
|
||||
import eu.kanade.tachiyomi.util.view.scrollViewWith
|
||||
import eu.kanade.tachiyomi.util.view.setOnQueryTextChangeListener
|
||||
import eu.kanade.tachiyomi.util.view.snack
|
||||
@ -131,6 +132,7 @@ open class BrowseSourceController(bundle: Bundle) :
|
||||
binding.fab.isVisible = presenter.sourceFilters.isNotEmpty()
|
||||
binding.fab.setOnClickListener { showFilters() }
|
||||
binding.progress.isVisible = true
|
||||
requestFilePermissionsSafe(301, preferences, presenter.source is LocalSource)
|
||||
}
|
||||
|
||||
override fun onDestroyView(view: View) {
|
||||
|
@ -492,7 +492,11 @@ fun Controller.requestPermissionsSafe(permissions: Array<String>, requestCode: I
|
||||
}
|
||||
}
|
||||
|
||||
fun Controller.requestFilePermissionsSafe(requestCode: Int) {
|
||||
fun Controller.requestFilePermissionsSafe(
|
||||
requestCode: Int,
|
||||
preferences: PreferencesHelper,
|
||||
showA11PermissionAnyway: Boolean = false
|
||||
) {
|
||||
val activity = activity ?: return
|
||||
val permissions = mutableListOf(Manifest.permission.WRITE_EXTERNAL_STORAGE)
|
||||
permissions.forEach { permission ->
|
||||
@ -504,9 +508,12 @@ fun Controller.requestFilePermissionsSafe(requestCode: Int) {
|
||||
requestPermissions(arrayOf(permission), requestCode)
|
||||
}
|
||||
}
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R &&
|
||||
!Environment.isExternalStorageManager()
|
||||
if (
|
||||
Build.VERSION.SDK_INT >= Build.VERSION_CODES.R &&
|
||||
!Environment.isExternalStorageManager() &&
|
||||
(!preferences.hasDeniedA11FilePermission().get() || showA11PermissionAnyway)
|
||||
) {
|
||||
preferences.hasDeniedA11FilePermission().set(true)
|
||||
MaterialDialog(activity)
|
||||
.title(R.string.all_files_permission_required)
|
||||
.message(R.string.external_storage_permission_notice)
|
||||
|
Loading…
Reference in New Issue
Block a user