fix: request storage permission for novels

This commit is contained in:
rebelonion 2024-04-05 20:02:36 -05:00
parent 594b71dc16
commit dd994dcfab
5 changed files with 40 additions and 20 deletions

View file

@ -434,7 +434,7 @@ class AnimeWatchFragment : Fragment() {
isDownload = true isDownload = true
) )
} else { } else {
snackString("Permission is required to download") snackString(getString(R.string.download_permission_required))
} }
} }
} else { } else {

View file

@ -490,7 +490,7 @@ open class MangaReadFragment : Fragment(), ScanlatorSelectionListener {
if (success) { if (success) {
continueDownload() continueDownload()
} else { } else {
snackString("Permission is required to download") snackString(getString(R.string.download_permission_required))
} }
} }
} else { } else {

View file

@ -20,6 +20,7 @@ import androidx.fragment.app.activityViewModels
import androidx.lifecycle.lifecycleScope import androidx.lifecycle.lifecycleScope
import androidx.recyclerview.widget.ConcatAdapter import androidx.recyclerview.widget.ConcatAdapter
import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.LinearLayoutManager
import ani.dantotsu.R
import ani.dantotsu.currContext import ani.dantotsu.currContext
import ani.dantotsu.databinding.FragmentAnimeWatchBinding import ani.dantotsu.databinding.FragmentAnimeWatchBinding
import ani.dantotsu.download.DownloadedType import ani.dantotsu.download.DownloadedType
@ -27,12 +28,16 @@ import ani.dantotsu.download.DownloadsManager
import ani.dantotsu.download.novel.NovelDownloaderService import ani.dantotsu.download.novel.NovelDownloaderService
import ani.dantotsu.download.novel.NovelServiceDataSingleton import ani.dantotsu.download.novel.NovelServiceDataSingleton
import ani.dantotsu.media.Media import ani.dantotsu.media.Media
import ani.dantotsu.media.MediaDetailsActivity
import ani.dantotsu.media.MediaDetailsViewModel import ani.dantotsu.media.MediaDetailsViewModel
import ani.dantotsu.media.MediaType import ani.dantotsu.media.MediaType
import ani.dantotsu.media.novel.novelreader.NovelReaderActivity import ani.dantotsu.media.novel.novelreader.NovelReaderActivity
import ani.dantotsu.navBarHeight import ani.dantotsu.navBarHeight
import ani.dantotsu.parsers.ShowResponse import ani.dantotsu.parsers.ShowResponse
import ani.dantotsu.snackString
import ani.dantotsu.util.Logger import ani.dantotsu.util.Logger
import ani.dantotsu.util.StoragePermissions
import ani.dantotsu.util.StoragePermissions.Companion.accessAlertDialog
import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.launch import kotlinx.coroutines.launch
@ -62,6 +67,8 @@ class NovelReadFragment : Fragment(),
override fun downloadTrigger(novelDownloadPackage: NovelDownloadPackage) { override fun downloadTrigger(novelDownloadPackage: NovelDownloadPackage) {
Logger.log("novel link: ${novelDownloadPackage.link}") Logger.log("novel link: ${novelDownloadPackage.link}")
activity?.let {
fun continueDownload() {
val downloadTask = NovelDownloaderService.DownloadTask( val downloadTask = NovelDownloaderService.DownloadTask(
title = media.mainName(), title = media.mainName(),
chapter = novelDownloadPackage.novelName, chapter = novelDownloadPackage.novelName,
@ -81,7 +88,19 @@ class NovelReadFragment : Fragment(),
} }
NovelServiceDataSingleton.isServiceRunning = true NovelServiceDataSingleton.isServiceRunning = true
} }
}
}
if (!StoragePermissions.hasDirAccess(it)) {
(it as MediaDetailsActivity).accessAlertDialog(it.launcher) { success ->
if (success) {
continueDownload()
} else {
snackString(getString(R.string.download_permission_required))
}
}
} else {
continueDownload()
}
} }
} }

View file

@ -65,7 +65,7 @@ internal class ExtensionGithubApi {
val repos = val repos =
PrefManager.getVal<Set<String>>(PrefName.MangaExtensionRepos).toMutableList() PrefManager.getVal<Set<String>>(PrefName.MangaExtensionRepos).toMutableList()
if (repos.isEmpty()) { if (repos.isEmpty()) {
repos.add("https://raw.githubusercontent.com/keiyoushi/extensions/main") repos.add("https://raw.githubusercontent.com/aniyomiorg/aniyomi-extensions/repo")
PrefManager.setVal(PrefName.MangaExtensionRepos, repos.toSet()) PrefManager.setVal(PrefName.MangaExtensionRepos, repos.toSet())
} }

View file

@ -886,4 +886,5 @@ Non quae tempore quo provident laudantium qui illo dolor vel quia dolor et exerc
<string name="report">Report</string> <string name="report">Report</string>
<string name="ban">Ban</string> <string name="ban">Ban</string>
<string name="voice_actors">Voice Actors</string> <string name="voice_actors">Voice Actors</string>
<string name="download_permission_required">Permission is required to download</string>
</resources> </resources>