mirror of
https://github.com/fumiama/copymanga.git
synced 2026-06-09 01:10:28 +08:00
1.4.3
修复 1. 漫画缺页 2. 漫画下载
This commit is contained in:
1
.idea/misc.xml
generated
1
.idea/misc.xml
generated
@@ -6,6 +6,7 @@
|
||||
<entry key="../../.gradle/caches/transforms-3/530137dbe1613faf299d06bd64f02665/transformed/jetified-search-2.4.1/res/layout/search_view.xml" value="0.46557971014492755" />
|
||||
<entry key="app/src/main/res/drawable-anydpi/ic_like.xml" value="0.5572916666666666" />
|
||||
<entry key="app/src/main/res/drawable-anydpi/ic_setting_search.xml" value="0.5572916666666666" />
|
||||
<entry key="app/src/main/res/layout/activity_dl.xml" value="0.5025484199796126" />
|
||||
<entry key="app/src/main/res/layout/activity_dlist.xml" value="0.48641304347826086" />
|
||||
<entry key="app/src/main/res/layout/activity_login.xml" value="0.49592391304347827" />
|
||||
<entry key="app/src/main/res/layout/activity_main.xml" value="0.5095108695652174" />
|
||||
|
||||
@@ -28,6 +28,8 @@ import top.fumiama.copymanga.tool.MangaDlTools.Companion.wmdlt
|
||||
import top.fumiama.copymanga.tool.ToolsBox
|
||||
import top.fumiama.copymanga.view.ChapterToggleButton
|
||||
import top.fumiama.copymanga.view.LazyScrollView
|
||||
import top.fumiama.copymanga.web.JSHidden
|
||||
import top.fumiama.copymanga.web.WebChromeClient
|
||||
import java.io.File
|
||||
import java.lang.Thread.sleep
|
||||
import java.lang.ref.WeakReference
|
||||
@@ -57,6 +59,10 @@ class DlActivity : Activity() {
|
||||
setContentView(binding.root)
|
||||
mh?.saveUrlsOnly = true
|
||||
mangaDlTools = MangaDlTools(this)
|
||||
dwh.settings.userAgentString = getString(R.string.pc_ua)
|
||||
dwh.webChromeClient = WebChromeClient()
|
||||
dwh.setWebViewClient("h.js")
|
||||
dwh.loadJSInterface(JSHidden())
|
||||
handler.sendEmptyMessage(-2) //setLayouts
|
||||
}
|
||||
|
||||
@@ -133,9 +139,11 @@ class DlActivity : Activity() {
|
||||
haveDlStarted = true
|
||||
canDl = true
|
||||
handler.sendEmptyMessage(9) //set dl card color to red
|
||||
Toast.makeText(this, "十秒后开始下载...", Toast.LENGTH_SHORT).show()
|
||||
fillChapters()
|
||||
Thread { dlThread { downloadChapterPages(it) } }.start()
|
||||
Toast.makeText(this, "请耐心等待加载...", Toast.LENGTH_SHORT).show()
|
||||
Thread {
|
||||
fillChapters()
|
||||
dlThread { downloadChapterPages(it) }
|
||||
}.start()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -22,7 +22,6 @@ import top.fumiama.copymanga.web.WebChromeClient
|
||||
import java.lang.ref.WeakReference
|
||||
|
||||
class MainActivity: Activity() {
|
||||
var wh: JSWebView? = null
|
||||
var uploadMessageAboveL: ValueCallback<Array<Uri>>? = null
|
||||
private var toolsBox: ToolsBox? = null
|
||||
@SuppressLint("JavascriptInterface")
|
||||
@@ -44,10 +43,10 @@ class MainActivity: Activity() {
|
||||
w.loadJSInterface(JS())
|
||||
w.loadUrl(getString(R.string.web_home))
|
||||
|
||||
wh = JSWebView(this, getString(R.string.pc_ua))
|
||||
wh?.webChromeClient = WebChromeClient()
|
||||
wh?.setWebViewClient("h.js")
|
||||
wh?.loadJSInterface(JSHidden())
|
||||
wh.settings.userAgentString = getString(R.string.pc_ua)
|
||||
wh.webChromeClient = WebChromeClient()
|
||||
wh.setWebViewClient("h.js")
|
||||
wh.loadJSInterface(JSHidden())
|
||||
}
|
||||
}
|
||||
SetDraggable().with(this).onto(fab)
|
||||
|
||||
@@ -2,12 +2,11 @@ package top.fumiama.copymanga.tool
|
||||
|
||||
import top.fumiama.copymanga.R
|
||||
import top.fumiama.copymanga.activity.DlActivity
|
||||
import top.fumiama.copymanga.data.ComicStructure
|
||||
import top.fumiama.copymanga.view.JSWebView
|
||||
import top.fumiama.copymanga.web.JSHidden
|
||||
import kotlinx.android.synthetic.main.activity_dl.*
|
||||
import java.io.File
|
||||
import java.lang.Thread.sleep
|
||||
import java.lang.ref.WeakReference
|
||||
import java.util.concurrent.Semaphore
|
||||
import java.util.zip.CRC32
|
||||
import java.util.zip.CheckedOutputStream
|
||||
import java.util.zip.ZipEntry
|
||||
@@ -15,18 +14,12 @@ import java.util.zip.ZipOutputStream
|
||||
|
||||
class MangaDlTools(activity: DlActivity) {
|
||||
var exit = false
|
||||
private val sem = Semaphore(1)
|
||||
private val da = WeakReference(activity)
|
||||
private val d = da.get()
|
||||
private val p = PropertiesTools(File("${d?.filesDir}/chapters.hash"))
|
||||
private var imgUrlsList: Array<Array<String>?>? = null
|
||||
private var chaptersCount = 0
|
||||
private val newWebViewHidden: JSWebView?
|
||||
get() {
|
||||
val re = d?.let { JSWebView(it, it.getString(R.string.pc_ua)) }
|
||||
re?.setWebViewClient("h.js")
|
||||
re?.loadJSInterface(JSHidden())
|
||||
return re
|
||||
}
|
||||
|
||||
init {
|
||||
wmdlt = WeakReference(this)
|
||||
@@ -42,12 +35,16 @@ class MangaDlTools(activity: DlActivity) {
|
||||
}
|
||||
|
||||
fun dlChapterUrl(url: String){
|
||||
p[url.substringAfterLast("/")] = (chaptersCount++).toString()
|
||||
newWebViewHidden?.loadUrl(url)
|
||||
sem.acquire()
|
||||
da.get()?.apply {
|
||||
p[url.substringAfterLast("/")] = (chaptersCount++).toString()
|
||||
runOnUiThread { dwh.loadUrl(url) }
|
||||
}
|
||||
}
|
||||
|
||||
fun setChapterImgs(hash: String, imgUrls: Array<String>){
|
||||
imgUrlsList?.set(p[hash].toInt(), imgUrls)
|
||||
sem.release()
|
||||
}
|
||||
|
||||
fun dlChapterAndPackIntoZip(zipf: File, hash: String){
|
||||
|
||||
@@ -8,6 +8,8 @@ import android.webkit.*
|
||||
import android.webkit.WebViewClient
|
||||
import android.widget.Toast
|
||||
import top.fumiama.copymanga.R
|
||||
import top.fumiama.copymanga.activity.MainActivity.Companion.mh
|
||||
import top.fumiama.copymanga.activity.MainActivity.Companion.wm
|
||||
|
||||
class WebViewClient(private val context: Context, jsFileName: String):WebViewClient() {
|
||||
private val js = context.assets.open(jsFileName).readBytes().decodeToString()
|
||||
@@ -23,9 +25,14 @@ class WebViewClient(private val context: Context, jsFileName: String):WebViewCli
|
||||
}
|
||||
|
||||
override fun onPageFinished(view: WebView?, url: String?) {
|
||||
view?.loadUrl(js)
|
||||
Log.d("MyWC", "Inject JS into: $url")
|
||||
super.onPageFinished(view, url)
|
||||
Thread {
|
||||
Thread.sleep(500)
|
||||
wm?.get()?.runOnUiThread {
|
||||
view?.loadUrl(js)
|
||||
Log.d("MyWC", "Inject JS into: $url")
|
||||
super.onPageFinished(view, url)
|
||||
}
|
||||
}.start()
|
||||
}
|
||||
|
||||
override fun onReceivedSslError(view: WebView?, handler: SslErrorHandler?, error: SslError?) {
|
||||
|
||||
@@ -5,6 +5,16 @@
|
||||
android:layout_height="match_parent"
|
||||
android:background="#FCFCFF">
|
||||
|
||||
<top.fumiama.copymanga.view.JSWebView
|
||||
android:id="@+id/dwh"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:clickable="false"
|
||||
android:focusable="false"
|
||||
android:focusableInTouchMode="false"
|
||||
android:longClickable="false"
|
||||
android:touchscreenBlocksFocus="false" />
|
||||
|
||||
<include
|
||||
android:id="@+id/dtitle"
|
||||
layout="@layout/widget_titlebar"
|
||||
|
||||
@@ -5,6 +5,11 @@
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent">
|
||||
|
||||
<top.fumiama.copymanga.view.JSWebView
|
||||
android:id="@+id/wh"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent" />
|
||||
|
||||
<top.fumiama.copymanga.view.JSWebView
|
||||
android:id="@+id/w"
|
||||
android:layout_width="match_parent"
|
||||
|
||||
Reference in New Issue
Block a user