1
0
mirror of https://github.com/fumiama/copymanga.git synced 2026-06-29 23:30:41 +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" applicationId "top.fumiama.copymanga"
minSdkVersion 23 minSdkVersion 23
targetSdkVersion 30 targetSdkVersion 30
versionCode 5 versionCode 7
versionName '1.1.3' versionName '1.2.1'
resConfigs "zh", "zh-rCN" resConfigs "zh", "zh-rCN"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"

View File

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

View File

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

View File

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

View File

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

View File

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