fix: request storage permission for novels
This commit is contained in:
parent
594b71dc16
commit
dd994dcfab
5 changed files with 40 additions and 20 deletions
|
@ -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 {
|
||||||
|
|
|
@ -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 {
|
||||||
|
|
|
@ -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,26 +67,40 @@ 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}")
|
||||||
val downloadTask = NovelDownloaderService.DownloadTask(
|
activity?.let {
|
||||||
title = media.mainName(),
|
fun continueDownload() {
|
||||||
chapter = novelDownloadPackage.novelName,
|
val downloadTask = NovelDownloaderService.DownloadTask(
|
||||||
downloadLink = novelDownloadPackage.link,
|
title = media.mainName(),
|
||||||
originalLink = novelDownloadPackage.originalLink,
|
chapter = novelDownloadPackage.novelName,
|
||||||
sourceMedia = media,
|
downloadLink = novelDownloadPackage.link,
|
||||||
coverUrl = novelDownloadPackage.coverUrl,
|
originalLink = novelDownloadPackage.originalLink,
|
||||||
retries = 2,
|
sourceMedia = media,
|
||||||
)
|
coverUrl = novelDownloadPackage.coverUrl,
|
||||||
NovelServiceDataSingleton.downloadQueue.offer(downloadTask)
|
retries = 2,
|
||||||
CoroutineScope(Dispatchers.IO).launch {
|
)
|
||||||
|
NovelServiceDataSingleton.downloadQueue.offer(downloadTask)
|
||||||
|
CoroutineScope(Dispatchers.IO).launch {
|
||||||
|
|
||||||
if (!NovelServiceDataSingleton.isServiceRunning) {
|
if (!NovelServiceDataSingleton.isServiceRunning) {
|
||||||
val intent = Intent(context, NovelDownloaderService::class.java)
|
val intent = Intent(context, NovelDownloaderService::class.java)
|
||||||
withContext(Dispatchers.Main) {
|
withContext(Dispatchers.Main) {
|
||||||
ContextCompat.startForegroundService(requireContext(), intent)
|
ContextCompat.startForegroundService(requireContext(), intent)
|
||||||
|
}
|
||||||
|
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()
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -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())
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -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>
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue