Fixed Download Concurrency issue
Fixed image not showing up after reader is paused and resumed
This commit is contained in:
@@ -621,7 +621,7 @@ class MainActivity :
|
||||
else -> {
|
||||
searchHistory.map {
|
||||
Suggestion(it)
|
||||
}.takeLast(20) + FavoriteHistorySwitch(getString(R.string.search_show_tags))
|
||||
}.takeLast(10) + FavoriteHistorySwitch(getString(R.string.search_show_tags))
|
||||
}
|
||||
}.reversed()
|
||||
|
||||
|
||||
@@ -88,7 +88,10 @@ class ReaderActivity : BaseActivity() {
|
||||
var downloader: DownloadService? = null
|
||||
private val conn = object: ServiceConnection {
|
||||
override fun onServiceConnected(name: ComponentName?, service: IBinder?) {
|
||||
downloader = (service as DownloadService.Binder).service
|
||||
downloader = (service as DownloadService.Binder).service.also {
|
||||
if (!it.progress.containsKey(galleryID))
|
||||
DownloadService.download(this@ReaderActivity, galleryID, true)
|
||||
}
|
||||
}
|
||||
|
||||
override fun onServiceDisconnected(name: ComponentName?) {
|
||||
@@ -166,7 +169,7 @@ class ReaderActivity : BaseActivity() {
|
||||
}
|
||||
}
|
||||
} else
|
||||
initDownloader()
|
||||
initDownloadListener()
|
||||
|
||||
initView()
|
||||
}
|
||||
@@ -259,6 +262,9 @@ class ReaderActivity : BaseActivity() {
|
||||
|
||||
if (downloader != null)
|
||||
unbindService(conn)
|
||||
|
||||
if (!DownloadManager.getInstance(this).isDownloading(galleryID))
|
||||
DownloadService.cancel(this, galleryID)
|
||||
}
|
||||
|
||||
override fun onDestroy() {
|
||||
@@ -266,9 +272,6 @@ class ReaderActivity : BaseActivity() {
|
||||
|
||||
timer.cancel()
|
||||
(reader_recyclerview?.adapter as? ReaderAdapter)?.timer?.cancel()
|
||||
|
||||
if (!DownloadManager.getInstance(this).isDownloading(galleryID))
|
||||
DownloadService.cancel(this, galleryID)
|
||||
}
|
||||
|
||||
override fun onBackPressed() {
|
||||
@@ -303,16 +306,14 @@ class ReaderActivity : BaseActivity() {
|
||||
}
|
||||
}
|
||||
|
||||
private fun initDownloader() {
|
||||
DownloadService.download(this, galleryID, true)
|
||||
|
||||
private fun initDownloadListener() {
|
||||
timer.schedule(1000, 1000) {
|
||||
val downloader = downloader ?: return@schedule
|
||||
|
||||
if (downloader.progress.indexOfKey(galleryID) < 0) //loading
|
||||
if (!downloader.progress.containsKey(galleryID)) //loading
|
||||
return@schedule
|
||||
|
||||
if (downloader.progress[galleryID] == null) { //Gallery not found
|
||||
if (downloader.progress[galleryID]?.isEmpty() == true) { //Gallery not found
|
||||
timer.cancel()
|
||||
Snackbar
|
||||
.make(reader_layout, R.string.reader_failed_to_find_gallery, Snackbar.LENGTH_INDEFINITE)
|
||||
|
||||
@@ -39,7 +39,7 @@ class DownloadFolderNameDialogFragment : DialogFragment() {
|
||||
|
||||
@SuppressLint("InflateParams")
|
||||
private fun build(): View {
|
||||
val galleryID = Cache.instances.let { if (it.size() == 0) 1199708 else it.keyAt((0 until it.size()).random()) }
|
||||
val galleryID = Cache.instances.let { if (it.size == 0) 1199708 else it.keys.elementAt((0 until it.size).random()) }
|
||||
val galleryBlock = runBlocking {
|
||||
Cache.getInstance(requireContext(), galleryID).getGalleryBlock()
|
||||
}
|
||||
|
||||
@@ -45,23 +45,24 @@ class TagChip(context: Context, _tag: Tag) : Chip(context) {
|
||||
}.toMap()
|
||||
|
||||
init {
|
||||
chipIcon = when(tag.area) {
|
||||
when(tag.area) {
|
||||
"male" -> {
|
||||
setChipBackgroundColorResource(R.color.material_blue_700)
|
||||
setTextColor(ContextCompat.getColor(context, android.R.color.white))
|
||||
ContextCompat.getDrawable(context, R.drawable.gender_male_white)
|
||||
setCloseIconTintResource(android.R.color.white)
|
||||
chipIcon = ContextCompat.getDrawable(context, R.drawable.gender_male_white)
|
||||
}
|
||||
"female" -> {
|
||||
setChipBackgroundColorResource(R.color.material_pink_600)
|
||||
setTextColor(ContextCompat.getColor(context, android.R.color.white))
|
||||
ContextCompat.getDrawable(context, R.drawable.gender_female_white)
|
||||
setCloseIconTintResource(android.R.color.white)
|
||||
chipIcon = ContextCompat.getDrawable(context, R.drawable.gender_female_white)
|
||||
}
|
||||
else -> null
|
||||
}.also {
|
||||
if (favoriteTags.contains(tag))
|
||||
setChipBackgroundColorResource(R.color.material_orange_500)
|
||||
}
|
||||
|
||||
if (favoriteTags.contains(tag))
|
||||
setChipBackgroundColorResource(R.color.material_orange_500)
|
||||
|
||||
isCloseIconVisible = true
|
||||
closeIcon = ContextCompat.getDrawable(context,
|
||||
if (favoriteTags.contains(tag))
|
||||
|
||||
Reference in New Issue
Block a user