Somewhat working

This commit is contained in:
tom5079
2020-09-27 14:29:02 +09:00
parent 1490035893
commit 7a9507be01
14 changed files with 255 additions and 8281 deletions

View File

@@ -32,7 +32,6 @@ import androidx.appcompat.app.AlertDialog
import androidx.appcompat.app.AppCompatDelegate
import androidx.cardview.widget.CardView
import androidx.core.view.GravityCompat
import com.bumptech.glide.Glide
import com.google.android.material.appbar.AppBarLayout
import com.google.android.material.navigation.NavigationView
import com.google.android.material.snackbar.Snackbar
@@ -156,7 +155,7 @@ class MainActivity :
override fun onDestroy() {
super.onDestroy()
(main_recyclerview?.adapter as? GalleryBlockAdapter)?.timer?.cancel()
(main_recyclerview?.adapter as? GalleryBlockAdapter)?.update = false
}
override fun onKeyDown(keyCode: Int, event: KeyEvent?): Boolean {
@@ -263,11 +262,7 @@ class MainActivity :
if (it?.isEmpty() == false) {
val galleryID = it.random()
GalleryDialog(
this@MainActivity,
Glide.with(this@MainActivity),
galleryID
).apply {
GalleryDialog(this@MainActivity, galleryID).apply {
onChipClickedHandler.add {
runOnUiThread {
query = it.toQuery()
@@ -318,7 +313,7 @@ class MainActivity :
@SuppressLint("ClickableViewAccessibility")
private fun setupRecyclerView() {
with(main_recyclerview) {
adapter = GalleryBlockAdapter(Glide.with(this@MainActivity), galleries).apply {
adapter = GalleryBlockAdapter(galleries).apply {
onChipClickedHandler.add {
runOnUiThread {
query = it.toQuery()
@@ -381,11 +376,7 @@ class MainActivity :
val galleryID = galleries[position]
GalleryDialog(
this@MainActivity,
Glide.with(this@MainActivity),
galleryID
).apply {
GalleryDialog(this@MainActivity, galleryID).apply {
onChipClickedHandler.add {
runOnUiThread {
query = it.toQuery()
@@ -984,14 +975,4 @@ class MainActivity :
}
}
}
override fun onLowMemory() {
super.onLowMemory()
Glide.get(this).onLowMemory()
}
override fun onTrimMemory(level: Int) {
super.onTrimMemory(level)
Glide.get(this).onTrimMemory(level)
}
}

View File

@@ -43,7 +43,6 @@ import androidx.recyclerview.widget.PagerSnapHelper
import androidx.recyclerview.widget.RecyclerView
import androidx.vectordrawable.graphics.drawable.Animatable2Compat
import androidx.vectordrawable.graphics.drawable.AnimatedVectorDrawableCompat
import com.bumptech.glide.Glide
import com.google.android.material.snackbar.Snackbar
import com.google.firebase.crashlytics.FirebaseCrashlytics
import com.google.mlkit.vision.face.Face
@@ -99,7 +98,6 @@ class ReaderActivity : BaseActivity() {
}
}
private val timer = Timer()
private val snapHelper = PagerSnapHelper()
private var menu: Menu? = null
@@ -239,8 +237,7 @@ class ReaderActivity : BaseActivity() {
override fun onDestroy() {
super.onDestroy()
timer.cancel()
(reader_recyclerview?.adapter as? ReaderAdapter)?.timer?.cancel()
update = false
}
override fun onBackPressed() {
@@ -275,44 +272,53 @@ class ReaderActivity : BaseActivity() {
}
}
private var update = true
private fun initDownloadListener() {
timer.schedule(1000, 1000) {
val downloader = downloader ?: return@schedule
CoroutineScope(Dispatchers.Main).launch {
while (update) {
delay(1000)
if (!downloader.progress.containsKey(galleryID)) //loading
return@schedule
val downloader = downloader ?: continue
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)
.show()
}
if (!downloader.progress.containsKey(galleryID)) //loading
continue
histories.add(galleryID)
if (downloader.progress[galleryID]?.isEmpty() == true) { //Gallery not found
update = false
Snackbar
.make(reader_layout, R.string.reader_failed_to_find_gallery, Snackbar.LENGTH_INDEFINITE)
.show()
return@launch
}
histories.add(galleryID)
runOnUiThread {
reader_download_progressbar.max = reader_recyclerview.adapter?.itemCount ?: 0
reader_download_progressbar.progress = downloader.progress[galleryID]?.count { it.isInfinite() } ?: 0
reader_download_progressbar.progress =
downloader.progress[galleryID]?.count { it.isInfinite() } ?: 0
if (title == getString(R.string.reader_loading)) {
val reader = cache.metadata.reader
if (reader != null) {
with (reader_recyclerview.adapter as ReaderAdapter) {
with(reader_recyclerview.adapter as ReaderAdapter) {
this.reader = reader
notifyDataSetChanged()
}
title = reader.galleryInfo.title
menu?.findItem(R.id.reader_menu_page_indicator)?.title = "$currentPage/${reader.galleryInfo.files.size}"
menu?.findItem(R.id.reader_menu_page_indicator)?.title =
"$currentPage/${reader.galleryInfo.files.size}"
menu?.findItem(R.id.reader_type)?.icon = ContextCompat.getDrawable(this@ReaderActivity,
menu?.findItem(R.id.reader_type)?.icon = ContextCompat.getDrawable(
this@ReaderActivity,
when (reader.code) {
Code.HITOMI -> R.drawable.hitomi
Code.HIYOBI -> R.drawable.ic_hiyobi
else -> android.R.color.transparent
})
}
)
}
}
@@ -602,14 +608,4 @@ class ReaderActivity : BaseActivity() {
}
}
}
override fun onLowMemory() {
super.onLowMemory()
Glide.get(this).onLowMemory()
}
override fun onTrimMemory(level: Int) {
super.onTrimMemory(level)
Glide.get(this).onTrimMemory(level)
}
}

View File

@@ -20,16 +20,17 @@ package xyz.quaver.pupil.ui.dialog
import android.content.Context
import android.content.Intent
import android.net.Uri
import android.os.Bundle
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.widget.LinearLayout.LayoutParams
import androidx.appcompat.app.AlertDialog
import androidx.core.content.ContextCompat
import androidx.recyclerview.widget.LinearLayoutManager
import androidx.recyclerview.widget.RecyclerView
import androidx.viewpager2.widget.ViewPager2
import com.bumptech.glide.RequestManager
import com.google.android.material.snackbar.Snackbar
import kotlinx.android.synthetic.main.dialog_gallery.*
import kotlinx.android.synthetic.main.dialog_gallery_details.view.*
@@ -54,7 +55,7 @@ import xyz.quaver.pupil.util.ItemClickSupport
import xyz.quaver.pupil.util.downloader.Cache
import xyz.quaver.pupil.util.wordCapitalize
class GalleryDialog(context: Context, private val glide: RequestManager, private val galleryID: Int) : AlertDialog(context) {
class GalleryDialog(context: Context, private val galleryID: Int) : AlertDialog(context) {
val onChipClickedHandler = ArrayList<((Tag) -> (Unit))>()
@@ -105,12 +106,7 @@ class GalleryDialog(context: Context, private val glide: RequestManager, private
}
}
glide
.load(gallery.cover)
.apply {
if (BuildConfig.CENSOR)
override(5, 8)
}.into(gallery_cover)
gallery_cover.showImage(Uri.parse(gallery.cover))
addDetails(gallery)
addThumbnails(gallery)
@@ -195,7 +191,8 @@ class GalleryDialog(context: Context, private val glide: RequestManager, private
gallery_details.setText(R.string.gallery_thumbnails)
val pager = ViewPager2(context).apply {
adapter = ThumbnailPageAdapter(glide, gallery.thumbnails)
adapter = ThumbnailPageAdapter(gallery.thumbnails)
layoutParams = ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT)
}
gallery_details_contents.addView(
@@ -215,7 +212,7 @@ class GalleryDialog(context: Context, private val glide: RequestManager, private
val inflater = LayoutInflater.from(context)
val galleries = ArrayList<Int>()
val adapter = GalleryBlockAdapter(glide, galleries).apply {
val adapter = GalleryBlockAdapter(galleries).apply {
onChipClickedHandler.add { tag ->
this@GalleryDialog.onChipClickedHandler.forEach { handler ->
handler.invoke(tag)
@@ -238,11 +235,7 @@ class GalleryDialog(context: Context, private val glide: RequestManager, private
histories.add(galleries[position])
}
onItemLongClickListener = { _, position, _ ->
GalleryDialog(
context,
glide,
galleries[position]
).apply {
GalleryDialog(context, galleries[position]).apply {
onChipClickedHandler.add { tag ->
this@GalleryDialog.onChipClickedHandler.forEach { it.invoke(tag) }
}