1
0
mirror of https://github.com/fumiama/copymanga.git synced 2026-06-13 04:13:14 +08:00
This commit is contained in:
fumiama
2020-12-19 21:14:51 +08:00
parent b03f0d770b
commit 319446036f
6 changed files with 30 additions and 49 deletions

View File

@@ -11,8 +11,8 @@ android {
applicationId "top.fumiama.copymanga"
minSdkVersion 23
targetSdkVersion 30
versionCode 5
versionName '1.1.3'
versionCode 7
versionName '1.2.1'
resConfigs "zh", "zh-rCN"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"

View File

@@ -46,6 +46,7 @@ class DlActivity : Activity() {
private var canDl = false
private lateinit var toolsBox: ToolsBox
lateinit var mangaDlTools: MangaDlTools
var multiSelect = false
@ExperimentalStdlibApi
@@ -92,7 +93,6 @@ class DlActivity : Activity() {
if (!canDl) {
checkedChapter -= dldChapter
dldChapter = 0
Toast.makeText(this, "当前章节下载完成后将会停止", Toast.LENGTH_SHORT).show()
break
}
}
@@ -100,7 +100,7 @@ class DlActivity : Activity() {
haveDlStarted = false
canDl = false
}
handler.sendEmptyMessage(8)
handler.sendEmptyMessage(8) //set dl card color to blue
}
@ExperimentalStdlibApi
@@ -120,11 +120,7 @@ class DlActivity : Activity() {
})
dllazys.onScrollListener = object : LazyScrollView.OnScrollListener {
override fun onBottom() {}
override fun onScroll() {
if (csdwn.translationX == 0f) hideDlCard()
}
override fun onScroll() { if (csdwn.translationX == 0f) hideDlCard() }
override fun onTop() {}
}
cdwn.setOnClickListener {
@@ -136,7 +132,7 @@ class DlActivity : Activity() {
else {
haveDlStarted = true
canDl = true
handler.sendEmptyMessage(9)
handler.sendEmptyMessage(9) //set dl card color to red
Toast.makeText(this, "准备下载...", Toast.LENGTH_SHORT).show()
fillChapters()
Thread { dlThead { downloadChapterPages(it) } }.start()
@@ -147,9 +143,15 @@ class DlActivity : Activity() {
Thread { handler.sendEmptyMessage(4) }.start()
return@setOnLongClickListener true
}
isearch.setOnClickListener { showMultiSelectInfo() }
analyzeStructure()
}
private fun showMultiSelectInfo() {
toolsBox.buildInfo("进入多选模式?", "确定后,长按下载条可选中全部漫画,而不仅限于未下载者。",
"确定", null, "取消", { multiSelect = true })
}
private fun analyzeStructure() {
comicStructure?.let {
for (group in it) {
@@ -226,6 +228,7 @@ class DlActivity : Activity() {
if (zipf.exists()) {
tbv.tbtn.setBackgroundResource(R.drawable.rndbg_checked)
tbv.tbtn.isChecked = false
tbv.tbtn.freezesText = true
}
ltbtn.ltbtn.addView(tbv)
ltbtn.invalidate()

View File

@@ -93,7 +93,7 @@ class ViewMangaActivity : Activity() {
tt.canDo = true
tt.start()
ttitle.text = titleText
isearch.visibility = View.VISIBLE
//isearch.visibility = View.VISIBLE
try {
count = if (mangaZip != null) countZipItems() else imgUrls.size
} catch (e: Exception) {

View File

@@ -2,15 +2,13 @@ package top.fumiama.copymanga.handler
import android.annotation.SuppressLint
import android.os.Handler
import android.os.Looper
import android.os.Message
import android.widget.Toast
import android.widget.ToggleButton
import kotlinx.android.synthetic.main.widget_downloadbar.*
import top.fumiama.copymanga.R
import top.fumiama.copymanga.activity.DlActivity
import top.fumiama.copymanga.activity.ViewMangaActivity.Companion.imgUrls
import top.fumiama.copymanga.tool.MangaDlTools.Companion.wmdlt
import java.io.File
import java.lang.ref.WeakReference
class DlHandler(activity: DlActivity) : Handler() {
@@ -39,20 +37,15 @@ class DlHandler(activity: DlActivity) : Handler() {
-1 -> {
d?.tbtnlist?.get(msg.arg1)?.setBackgroundResource(R.drawable.rndbg_error)
d!!.dldChapter--
//Looper.prepare()
Toast.makeText(
d,
"下载${d.tbtnlist[msg.arg1].textOn}失败",
Toast.LENGTH_SHORT
).show()
//Looper.loop()
Toast.makeText(d, "下载${d.tbtnlist[msg.arg1].textOn}失败", Toast.LENGTH_SHORT).show()
d.updateProgressBar()
}
4 -> {
d?.pdwn?.progress = 0
val selectDownloaded = d?.multiSelect?:false
if (d?.haveSElectAll == true) {
for (i in d.tbtnlist.listIterator()) {
i.setBackgroundResource(R.drawable.toggle_button)
if(i.freezesText) i.setBackgroundResource(R.drawable.rndbg_checked) else i.setBackgroundResource(R.drawable.toggle_button)
i.isChecked = false
}
d.haveSElectAll = false
@@ -60,48 +53,35 @@ class DlHandler(activity: DlActivity) : Handler() {
d.dldChapter = 0
} else {
d?.let {
for (i in it.tbtnlist.listIterator()) {
val checkBtn = { i: ToggleButton, it: DlActivity ->
i.setBackgroundResource(R.drawable.toggle_button)
i.isChecked = true
it.checkedChapter++
}
for (i in it.tbtnlist.listIterator()) {
if(selectDownloaded) checkBtn(i, it)
else if(!i.freezesText) checkBtn(i, it)
}
}
d?.haveSElectAll = true
}
d?.tdwn?.text = "${d?.dldChapter}/${d?.checkedChapter}"
}
5 -> {
d?.updateProgressBar(
msg.arg2,
wmdlt?.get()
?.getImgsCountByHash(d.tbtnUrlList[msg.arg1].substringAfterLast("/")) ?: 0
)
val size = d?.tbtnUrlList?.get(msg.arg1)?.let { wmdlt?.get()?.getImgsCountByHash(it.substringAfterLast("/")) }?:0
d?.updateProgressBar(msg.arg2, size)
if (!(msg.obj as Boolean)) {
//Looper.prepare()
Toast.makeText(
d,
"下载${d?.tbtnlist?.get(msg.arg1)?.textOn}的第${msg.arg2}页失败",
Toast.LENGTH_SHORT
).show()
//Looper.loop()
Toast.makeText(d, "下载${d?.tbtnlist?.get(msg.arg1)?.textOn}的第${msg.arg2}页失败", Toast.LENGTH_SHORT).show()
}else{
val progressTxt = d?.tdwn?.text.toString()
d?.tdwn?.text = "${progressTxt.substringBefore(" ")}${msg.arg2}"
d?.tdwn?.text = "${progressTxt.substringBefore(" ")}${msg.arg2}/${size}"
}
}
6 -> d?.tdwn?.text = "${d?.dldChapter}/${d?.checkedChapter}"
7 -> d?.deleteChapters()
8 -> d?.cdwn?.setCardBackgroundColor(d.resources.getColor(R.color.colorBlue))
9 -> d?.cdwn?.setCardBackgroundColor(d.resources.getColor(R.color.colorRed))
10 -> {
//Looper.prepare()
Toast.makeText(
d,
"下载${d?.tbtnlist?.get(msg.arg1)?.textOn}的第${msg.arg2}页失败,尝试重新下载...",
Toast.LENGTH_SHORT
).show()
//Looper.loop()
}
10 -> Toast.makeText(d, "下载${d?.tbtnlist?.get(msg.arg1)?.textOn}的第${msg.arg2}页失败,尝试重新下载...", Toast.LENGTH_SHORT).show()
}
}
}

View File

@@ -72,7 +72,7 @@ class MangaDlTools(activity: DlActivity) {
sleep(2000)
}
}
if(tryTimes == 0) succeed = false
if(!s && tryTimes <= 0) succeed = false
onDownloadedListener?.handleMessage(s, i + 1)
zip.flush()
if (exit) break

View File

@@ -39,11 +39,9 @@
android:layout_height="28dp"
android:layout_marginEnd="8dp"
android:src="@drawable/ic_edit"
android:visibility="invisible"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent"
tools:visibility="visible" />
app:layout_constraintTop_toTopOf="parent" />
<ImageView
android:id="@+id/ilogo"