Merge pull request #3618 from kiwix/Issue#3611

Fixed: 3.9.0 Welcome screen does not run, and Kiwix does not prompt for permissions.
This commit is contained in:
Kelson 2023-12-23 10:26:13 +01:00 committed by GitHub
commit 3c17704a07
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 27 additions and 21 deletions

View File

@ -38,7 +38,6 @@ import android.view.ViewGroup
import android.widget.Toast
import androidx.activity.result.ActivityResultLauncher
import androidx.activity.result.contract.ActivityResultContracts
import androidx.annotation.RequiresApi
import androidx.appcompat.app.AppCompatActivity
import androidx.appcompat.view.ActionMode
import androidx.appcompat.widget.Toolbar
@ -139,7 +138,13 @@ class LocalLibraryFragment : BaseFragment() {
private val bookDelegate: BookOnDiskDelegate.BookDelegate by lazy {
BookOnDiskDelegate.BookDelegate(
sharedPreferenceUtil,
{ offerAction(RequestNavigateTo(it)) },
{
if (!requireActivity().isManageExternalStoragePermissionGranted(sharedPreferenceUtil)) {
showManageExternalStoragePermissionDialog()
} else {
offerAction(RequestNavigateTo(it))
}
},
{ offerAction(RequestMultiSelection(it)) },
{ offerAction(RequestSelect(it)) }
)
@ -264,8 +269,11 @@ class LocalLibraryFragment : BaseFragment() {
fragmentDestinationLibraryBinding?.zimSwiperefresh?.isRefreshing = false
} else {
if (!requireActivity().isManageExternalStoragePermissionGranted(sharedPreferenceUtil)) {
@Suppress("NewApi")
showManageExternalStoragePermissionDialog()
// Set loading to false since the dialog is currently being displayed.
// If the user clicks on "No" in the permission dialog,
// the loading icon remains visible infinitely.
fragmentDestinationLibraryBinding?.zimSwiperefresh?.isRefreshing = false
} else {
requestFileSystemCheck()
}
@ -273,14 +281,15 @@ class LocalLibraryFragment : BaseFragment() {
}
}
@RequiresApi(Build.VERSION_CODES.R)
private fun showManageExternalStoragePermissionDialog() {
dialogShower.show(
KiwixDialog.ManageExternalFilesPermissionDialog,
{
this.activity?.let(FragmentActivity::navigateToSettings)
}
)
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {
dialogShower.show(
KiwixDialog.ManageExternalFilesPermissionDialog,
{
this.activity?.let(FragmentActivity::navigateToSettings)
}
)
}
}
private fun getBottomNavigationView() =
@ -303,7 +312,6 @@ class LocalLibraryFragment : BaseFragment() {
fragmentDestinationLibraryBinding?.selectFile?.setOnClickListener {
if (!requireActivity().isManageExternalStoragePermissionGranted(sharedPreferenceUtil)) {
@Suppress("NewApi")
showManageExternalStoragePermissionDialog()
} else {
showFileChooser()

View File

@ -37,7 +37,6 @@ import android.view.View
import android.view.ViewGroup
import android.widget.Toast
import androidx.activity.result.contract.ActivityResultContracts
import androidx.annotation.RequiresApi
import androidx.appcompat.app.AppCompatActivity
import androidx.appcompat.widget.SearchView
import androidx.appcompat.widget.Toolbar
@ -531,7 +530,6 @@ class OnlineLibraryFragment : BaseFragment(), FragmentActivityExtensions {
sharedPreferenceUtil
)
) {
@Suppress("NewApi")
showManageExternalStoragePermissionDialog()
} else {
availableSpaceCalculator.hasAvailableSpaceFor(
@ -579,20 +577,20 @@ class OnlineLibraryFragment : BaseFragment(), FragmentActivityExtensions {
private fun clickOnBookItem() {
if (!requireActivity().isManageExternalStoragePermissionGranted(sharedPreferenceUtil)) {
@Suppress("NewApi")
showManageExternalStoragePermissionDialog()
} else {
downloadBookItem?.let(::onBookItemClick)
}
}
@RequiresApi(Build.VERSION_CODES.R)
private fun showManageExternalStoragePermissionDialog() {
dialogShower.show(
KiwixDialog.ManageExternalFilesPermissionDialog,
{
this.activity?.let(FragmentActivity::navigateToSettings)
}
)
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {
dialogShower.show(
KiwixDialog.ManageExternalFilesPermissionDialog,
{
this.activity?.let(FragmentActivity::navigateToSettings)
}
)
}
}
}