mirror of
https://github.com/fumiama/copymanga.git
synced 2026-06-13 04:13:14 +08:00
v1.2.1
This commit is contained in:
@@ -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"
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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) {
|
||||
|
||||
@@ -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()
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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
|
||||
|
||||
@@ -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"
|
||||
|
||||
Reference in New Issue
Block a user