mirror of
https://github.com/fumiama/copymanga.git
synced 2026-06-08 08:50:27 +08:00
v2.0.beta17
修复 1. 无法保持上页状态 2. 一些闪退
This commit is contained in:
1
.idea/misc.xml
generated
1
.idea/misc.xml
generated
@@ -4,6 +4,7 @@
|
||||
<option name="filePathToZoomLevelMap">
|
||||
<map>
|
||||
<entry key="../../.gradle/caches/transforms-3/530137dbe1613faf299d06bd64f02665/transformed/jetified-search-2.4.1/res/layout/search_view.xml" value="0.46557971014492755" />
|
||||
<entry key="../../Library/Android/sdk/platforms/android-33/data/res/drawable-car/car_button_background.xml" value="0.316" />
|
||||
<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" />
|
||||
|
||||
@@ -9,8 +9,8 @@ android {
|
||||
applicationId 'top.fumiama.copymanga'
|
||||
minSdkVersion 23
|
||||
targetSdkVersion 33
|
||||
versionCode 28
|
||||
versionName '2.0.beta16'
|
||||
versionCode 29
|
||||
versionName '2.0.beta17'
|
||||
resConfigs 'zh', 'zh-rCN'
|
||||
|
||||
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
|
||||
@@ -51,16 +51,13 @@ android {
|
||||
}
|
||||
|
||||
dependencies {
|
||||
implementation fileTree(dir: "libs", include: ["*.jar"])
|
||||
implementation 'androidx.core:core-ktx:1.9.0'
|
||||
implementation 'androidx.appcompat:appcompat:1.5.1'
|
||||
implementation 'androidx.legacy:legacy-support-v4:1.0.0'
|
||||
implementation 'com.google.android.material:material:1.6.1'
|
||||
implementation 'com.google.android.material:material:1.7.0'
|
||||
implementation 'androidx.constraintlayout:constraintlayout:2.1.4'
|
||||
implementation 'androidx.navigation:navigation-fragment-ktx:2.5.2'
|
||||
implementation 'androidx.navigation:navigation-ui-ktx:2.5.2'
|
||||
implementation 'androidx.navigation:navigation-fragment-ktx:2.5.2'
|
||||
implementation 'androidx.navigation:navigation-ui-ktx:2.5.2'
|
||||
implementation 'androidx.navigation:navigation-fragment-ktx:2.5.3'
|
||||
implementation 'androidx.navigation:navigation-ui-ktx:2.5.3'
|
||||
testImplementation 'junit:junit:4.13.2'
|
||||
implementation "androidx.preference:preference-ktx:1.2.0"
|
||||
implementation 'com.afollestad.material-dialogs:input:3.3.0'
|
||||
|
||||
@@ -8,7 +8,6 @@ import top.fumiama.copymanga.tools.api.UITools
|
||||
|
||||
open class ActivityTemplate:Activity() {
|
||||
lateinit var toolsBox: UITools
|
||||
val p = IntPref()
|
||||
val pb = BoolPref()
|
||||
private val allFullScreen
|
||||
get() = getPreferences(MODE_PRIVATE).getBoolean("allFullScreen", false)
|
||||
@@ -24,14 +23,6 @@ open class ActivityTemplate:Activity() {
|
||||
View.SYSTEM_UI_FLAG_LAYOUT_STABLE or View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION or View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN or View.SYSTEM_UI_FLAG_HIDE_NAVIGATION or View.SYSTEM_UI_FLAG_FULLSCREEN or View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY
|
||||
}
|
||||
|
||||
inner class IntPref {
|
||||
operator fun get(key: String) = getPreferences(MODE_PRIVATE).getInt(key, -5)
|
||||
operator fun set(key: String, value: Int) = getPreferences(MODE_PRIVATE).edit {
|
||||
putInt(key, value)
|
||||
apply()
|
||||
}
|
||||
}
|
||||
|
||||
inner class BoolPref {
|
||||
operator fun get(key: String) = getPreferences(MODE_PRIVATE).getBoolean(key, false)
|
||||
operator fun set(key: String, value: Boolean) = getPreferences(MODE_PRIVATE).edit {
|
||||
|
||||
@@ -40,6 +40,14 @@ open class MangaPagesFragmentTemplate(inflateRes:Int, val isLazy: Boolean = true
|
||||
}
|
||||
}
|
||||
|
||||
override fun onDestroy() {
|
||||
super.onDestroy()
|
||||
cardList.exitCardList = true
|
||||
mh = null
|
||||
row = null
|
||||
jsonReaderNow = null
|
||||
}
|
||||
|
||||
fun setLayouts() {
|
||||
val toolsBox = this.context?.let { UITools(it) }
|
||||
val widthData = toolsBox?.calcWidthFromDp(8, 135)
|
||||
|
||||
@@ -7,17 +7,18 @@ import android.view.View
|
||||
import android.view.ViewGroup
|
||||
import androidx.fragment.app.Fragment
|
||||
|
||||
open class NoBackRefreshFragment(private val layoutToLoad: Int):Fragment() {
|
||||
var rootView: View? = null
|
||||
open class NoBackRefreshFragment(private val layoutToLoad: Int): Fragment() {
|
||||
private var _rootView: View? = null
|
||||
val rootView: View get() = _rootView!!
|
||||
var isFirstInflate = true
|
||||
override fun onCreateView(
|
||||
inflater: LayoutInflater,
|
||||
container: ViewGroup?,
|
||||
savedInstanceState: Bundle?
|
||||
): View? {
|
||||
if(rootView == null){
|
||||
if(_rootView == null){
|
||||
isFirstInflate = true
|
||||
rootView = inflater.inflate(layoutToLoad, container, false)
|
||||
_rootView = inflater.inflate(layoutToLoad, container, false)
|
||||
Log.d("MyNBRF", "is first inflate")
|
||||
} else {
|
||||
isFirstInflate = false
|
||||
@@ -25,9 +26,9 @@ open class NoBackRefreshFragment(private val layoutToLoad: Int):Fragment() {
|
||||
}
|
||||
return rootView
|
||||
}
|
||||
override fun onDestroyView() {
|
||||
super.onDestroyView()
|
||||
rootView = null
|
||||
override fun onDestroy() {
|
||||
super.onDestroy()
|
||||
_rootView = null
|
||||
isFirstInflate = true
|
||||
}
|
||||
}
|
||||
|
||||
@@ -7,12 +7,13 @@ import android.util.Log
|
||||
import com.google.gson.Gson
|
||||
import top.fumiama.dmzj.copymanga.R
|
||||
import top.fumiama.copymanga.MainActivity.Companion.mainWeakReference
|
||||
import top.fumiama.copymanga.json.Chapter2Return
|
||||
import top.fumiama.copymanga.json.ReturnBase
|
||||
import top.fumiama.copymanga.tools.http.DownloadTools
|
||||
import top.fumiama.copymanga.tools.thread.TimeThread
|
||||
import java.io.File
|
||||
import java.security.MessageDigest
|
||||
|
||||
open class AutoDownloadHandler(private val url: String, private val jsonClass: Class<*>, looper: Looper, private val callCheckMsg: Int = -1): Handler(looper) {
|
||||
open class AutoDownloadHandler(private val url: String, private val jsonClass: Class<*>, looper: Looper, private val callCheckMsg: Int = -1, private val loadFromCache: Boolean = false, private val customCacheFile: File? = null): Handler(looper) {
|
||||
var exit = false
|
||||
private var timeThread: TimeThread? = null
|
||||
private var checkTimes = 0
|
||||
@@ -40,7 +41,34 @@ open class AutoDownloadHandler(private val url: String, private val jsonClass: C
|
||||
timeThread?.canDo = true
|
||||
timeThread?.start()
|
||||
}
|
||||
private fun toHexStr(byteArray: ByteArray) =
|
||||
with(StringBuilder()) {
|
||||
byteArray.forEach {
|
||||
val hex = it.toInt() and (0xFF)
|
||||
val hexStr = Integer.toHexString(hex)
|
||||
if (hexStr.length == 1) append("0").append(hexStr)
|
||||
else append(hexStr)
|
||||
}
|
||||
toString()
|
||||
}
|
||||
private fun dlThread() {
|
||||
val cacheName = toHexStr(MessageDigest.getInstance("MD5").digest(url.encodeToByteArray()))
|
||||
val cacheFile = customCacheFile?:(mainWeakReference?.get()?.externalCacheDir?.let { File(it, cacheName) })
|
||||
if(loadFromCache) {
|
||||
cacheFile?.let {
|
||||
if (it.exists()) {
|
||||
var pass = true
|
||||
val fi = it.inputStream()
|
||||
try {
|
||||
pass = setGsonItem(Gson().fromJson(fi.reader(), jsonClass))
|
||||
} catch (e: Exception) {
|
||||
e.printStackTrace()
|
||||
}
|
||||
fi.close()
|
||||
if (pass) return
|
||||
}
|
||||
}
|
||||
}
|
||||
DownloadTools.getHttpContent(url, null, mainWeakReference?.get()?.getString(R.string.pc_ua)!!).let {
|
||||
if(exit) return
|
||||
if(it == null) {
|
||||
@@ -51,6 +79,9 @@ open class AutoDownloadHandler(private val url: String, private val jsonClass: C
|
||||
var pass = true
|
||||
try {
|
||||
pass = setGsonItem(Gson().fromJson(fi.reader(), jsonClass))
|
||||
if (pass && loadFromCache) {
|
||||
cacheFile?.writeBytes(it)
|
||||
}
|
||||
} catch (e: Exception) {
|
||||
e.printStackTrace()
|
||||
}
|
||||
@@ -73,4 +104,4 @@ open class AutoDownloadHandler(private val url: String, private val jsonClass: C
|
||||
if(getGsonItem() == null) download()
|
||||
else doWhenFinishDownload()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -27,15 +27,17 @@ class CardList(
|
||||
private var index = 0
|
||||
private var count = 0
|
||||
var initClickListeners: InitClickListeners? = null
|
||||
var exitCardList = false
|
||||
|
||||
fun reset(){
|
||||
rows = arrayOfNulls(20)
|
||||
index = 0
|
||||
count = 0
|
||||
exitCardList = false
|
||||
}
|
||||
|
||||
private fun manageRow(){
|
||||
if(count++ % cardPerRow == 0) inflateRow()
|
||||
if(!exitCardList && count++ % cardPerRow == 0) inflateRow()
|
||||
Log.d("MyCL", "index: $index, cardPR: $cardPerRow")
|
||||
}
|
||||
|
||||
@@ -43,9 +45,9 @@ class CardList(
|
||||
that?.layoutInflater?.inflate(R.layout.line_horizonal_empty, that.mydll, false)?.let {
|
||||
it.layoutParams.height = cardHeight + 16
|
||||
mainWeakReference?.get()?.runOnUiThread {
|
||||
that.mydll.addView(it)
|
||||
if(!exitCardList) that.mydll.addView(it)
|
||||
}
|
||||
recycleOneRow(it)
|
||||
if(!exitCardList) recycleOneRow(it)
|
||||
}
|
||||
}
|
||||
private fun recycleOneRow(v:View?){
|
||||
@@ -54,7 +56,7 @@ class CardList(
|
||||
else {
|
||||
val victim = rows[relativeIndex]
|
||||
mainWeakReference?.get()?.runOnUiThread {
|
||||
that?.apply {
|
||||
if(!exitCardList) that?.apply {
|
||||
mydll?.removeView(victim)
|
||||
mys?.scrollY = that.mys?.scrollY?.minus(cardHeight + 16)?:0
|
||||
}
|
||||
@@ -65,8 +67,8 @@ class CardList(
|
||||
|
||||
@ExperimentalStdlibApi
|
||||
fun addCard(name: String, append: String? = null, head: String? = null, path: String? = null, chapterUUID: String? = null, pn: Int? = null, isFinish: Boolean = false){
|
||||
manageRow()
|
||||
that?.layoutInflater?.inflate(R.layout.card_book, that.mydll.ltbtn, false)?.let {
|
||||
if(!exitCardList) manageRow()
|
||||
if(!exitCardList) that?.layoutInflater?.inflate(R.layout.card_book, that.mydll.ltbtn, false)?.let {
|
||||
val card = it.cic
|
||||
card.name = name
|
||||
card.append = append
|
||||
@@ -77,7 +79,7 @@ class CardList(
|
||||
card.pageNumber = pn
|
||||
card.isFinish = isFinish
|
||||
mainWeakReference?.get()?.runOnUiThread{
|
||||
addCard(it)
|
||||
if(!exitCardList) addCard(it)
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -88,11 +90,11 @@ class CardList(
|
||||
val name = card.name + (card.append?:"")
|
||||
val head = card.headImageUrl
|
||||
val file = File(that?.context?.getExternalFilesDir(""), card.name)
|
||||
cardFrame.let {
|
||||
if(!exitCardList) cardFrame.let {
|
||||
it.tic.text = name
|
||||
if(!file.exists()){
|
||||
that?.context?.let { context ->
|
||||
Glide.with(context).load(GlideUrl(head, CMApi.myGlideHeaders)).into(it.imic)
|
||||
if(!exitCardList) Glide.with(context).load(GlideUrl(head, CMApi.myGlideHeaders)).into(it.imic)
|
||||
}
|
||||
}else {
|
||||
val img = File(file, "head.jpg")
|
||||
|
||||
@@ -4,7 +4,7 @@ import android.os.Bundle
|
||||
import android.util.Log
|
||||
import android.view.View
|
||||
import androidx.fragment.app.Fragment
|
||||
import androidx.navigation.Navigation
|
||||
import androidx.navigation.fragment.findNavController
|
||||
import com.google.gson.Gson
|
||||
import top.fumiama.copymanga.json.BookListStructure
|
||||
import top.fumiama.copymanga.json.HistoryBookListStructure
|
||||
@@ -83,7 +83,7 @@ open class InfoCardLoader(inflateRes:Int, private val navId:Int, private val isT
|
||||
v.setOnClickListener {
|
||||
val bundle = Bundle()
|
||||
bundle.putString("path", path)
|
||||
rootView?.let { Navigation.findNavController(it).navigate(navId, bundle) }
|
||||
findNavController().navigate(navId, bundle)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2,16 +2,13 @@ package top.fumiama.copymanga.ui.book
|
||||
|
||||
import android.content.Context.MODE_PRIVATE
|
||||
import android.os.Bundle
|
||||
import android.view.LayoutInflater
|
||||
import android.view.View
|
||||
import android.view.ViewGroup
|
||||
import androidx.navigation.Navigation
|
||||
import kotlinx.android.synthetic.main.app_bar_main.*
|
||||
import androidx.navigation.fragment.findNavController
|
||||
import kotlinx.android.synthetic.main.line_booktandb.*
|
||||
import top.fumiama.dmzj.copymanga.R
|
||||
import top.fumiama.copymanga.MainActivity.Companion.mainWeakReference
|
||||
import top.fumiama.copymanga.manga.Reader
|
||||
import top.fumiama.copymanga.template.general.NoBackRefreshFragment
|
||||
import top.fumiama.dmzj.copymanga.R
|
||||
import java.lang.Thread.sleep
|
||||
import java.lang.ref.WeakReference
|
||||
|
||||
@@ -31,14 +28,14 @@ class BookFragment: NoBackRefreshFragment(R.layout.fragment_book) {
|
||||
}
|
||||
}
|
||||
|
||||
override fun onResume() {
|
||||
/*override fun onResume() {
|
||||
super.onResume()
|
||||
mainWeakReference?.get()?.apply {
|
||||
toolbar.title = bookHandler?.book?.results?.comic?.name
|
||||
}
|
||||
setStartRead()
|
||||
fbibinfo?.layoutParams?.height = ((fbibinfo?.width?:0) * 4.0 / 9.0 + 0.5).toInt()
|
||||
}
|
||||
}*/
|
||||
|
||||
override fun onDestroy() {
|
||||
super.onDestroy()
|
||||
@@ -78,7 +75,7 @@ class BookFragment: NoBackRefreshFragment(R.layout.fragment_book) {
|
||||
bundle.putStringArray("group", bookHandler!!.gpws)
|
||||
bundle.putStringArray("groupNames", bookHandler!!.keys)
|
||||
bundle.putIntArray("count", bookHandler!!.cnts)
|
||||
rootView?.let { Navigation.findNavController(it).navigate(R.id.action_nav_book_to_nav_group, bundle) }
|
||||
findNavController().navigate(R.id.action_nav_book_to_nav_group, bundle)
|
||||
}
|
||||
|
||||
companion object {
|
||||
|
||||
@@ -5,26 +5,22 @@ import android.os.Looper
|
||||
import android.os.Message
|
||||
import android.util.Log
|
||||
import android.view.View
|
||||
import android.widget.LinearLayout
|
||||
import android.widget.TextView
|
||||
import android.widget.Toast
|
||||
import androidx.core.content.edit
|
||||
import androidx.navigation.Navigation
|
||||
import androidx.navigation.fragment.findNavController
|
||||
import com.bumptech.glide.Glide
|
||||
import com.bumptech.glide.load.model.GlideUrl
|
||||
import com.bumptech.glide.request.RequestOptions
|
||||
import com.google.gson.Gson
|
||||
import kotlinx.android.synthetic.main.app_bar_main.*
|
||||
import kotlinx.android.synthetic.main.button_tbutton.view.*
|
||||
import kotlinx.android.synthetic.main.card_book.*
|
||||
import kotlinx.android.synthetic.main.fragment_book.*
|
||||
import kotlinx.android.synthetic.main.line_2chapters.view.*
|
||||
import kotlinx.android.synthetic.main.line_bookinfo.*
|
||||
import kotlinx.android.synthetic.main.line_bookinfo_text.*
|
||||
import kotlinx.android.synthetic.main.line_booktandb.*
|
||||
import kotlinx.android.synthetic.main.line_caption.view.*
|
||||
import kotlinx.android.synthetic.main.line_chapter.view.*
|
||||
import kotlinx.android.synthetic.main.widget_downloadbar.*
|
||||
import top.fumiama.dmzj.copymanga.R
|
||||
import top.fumiama.copymanga.MainActivity.Companion.mainWeakReference
|
||||
import top.fumiama.copymanga.json.BookInfoStructure
|
||||
import top.fumiama.copymanga.json.ChapterStructure
|
||||
@@ -38,6 +34,7 @@ import top.fumiama.copymanga.tools.api.GlideBlurTransformation
|
||||
import top.fumiama.copymanga.ui.comicdl.ComicDlFragment
|
||||
import top.fumiama.copymanga.ui.comicdl.ComicDlFragment.Companion.json
|
||||
import top.fumiama.copymanga.ui.vm.ViewMangaActivity
|
||||
import top.fumiama.dmzj.copymanga.R
|
||||
import java.io.File
|
||||
import java.lang.Thread.sleep
|
||||
import java.lang.ref.WeakReference
|
||||
@@ -82,9 +79,7 @@ class BookHandler(private val th: WeakReference<BookFragment>, private val path:
|
||||
if(exit) return
|
||||
if(!hasToastedError) {
|
||||
Toast.makeText(that?.context, R.string.null_book, Toast.LENGTH_SHORT).show()
|
||||
that?.rootView?.let { it1 ->
|
||||
Navigation.findNavController(it1).navigateUp()
|
||||
}
|
||||
that?.apply { findNavController().popBackStack() }
|
||||
}
|
||||
}
|
||||
|
||||
@@ -99,14 +94,17 @@ class BookHandler(private val th: WeakReference<BookFragment>, private val path:
|
||||
super.doWhenFinishDownload()
|
||||
if(exit) return
|
||||
inflateComponents()
|
||||
book?.results?.groups?.values?.forEach{
|
||||
if(keys.isEmpty()) book?.results?.groups?.values?.forEach{
|
||||
keys += it.name
|
||||
gpws += it.path_word
|
||||
cnts += it.count
|
||||
Log.d("MyBFH", "Add caption: ${it.name} @ ${it.path_word} of ${it.count}")
|
||||
}
|
||||
initComicData()
|
||||
Thread{ for (i in 1..5) sendEmptyMessage(i) }.start()
|
||||
if(vols?.isEmpty() != false) initComicData()
|
||||
Thread{ for (i in 1..5) {
|
||||
sleep(512)
|
||||
sendEmptyMessage(i)
|
||||
} }.start()
|
||||
}
|
||||
|
||||
private fun endSetLayouts(){
|
||||
@@ -117,8 +115,8 @@ class BookHandler(private val th: WeakReference<BookFragment>, private val path:
|
||||
}
|
||||
|
||||
private fun inflateComponents(){
|
||||
that?.fbibinfo = that?.layoutInflater?.inflate(R.layout.line_bookinfo, that?.fbl, false)
|
||||
that?.fbtinfo = that?.layoutInflater?.inflate(R.layout.line_text_info, that?.fbl, false)
|
||||
if(that?.fbibinfo == null) that?.fbibinfo = that?.layoutInflater?.inflate(R.layout.line_bookinfo, that?.fbl, false)
|
||||
if(that?.fbtinfo == null) that?.fbtinfo = that?.layoutInflater?.inflate(R.layout.line_text_info, that?.fbl, false)
|
||||
}
|
||||
|
||||
private fun setOverScale(){
|
||||
@@ -127,7 +125,13 @@ class BookHandler(private val th: WeakReference<BookFragment>, private val path:
|
||||
|
||||
private fun setCover(){
|
||||
that?.apply {
|
||||
fbl.addView(fbibinfo)
|
||||
try {
|
||||
fbl.addView(fbibinfo)
|
||||
} catch (e: Exception) {
|
||||
e.printStackTrace()
|
||||
(fbibinfo!!.parent as LinearLayout).removeAllViews()
|
||||
fbl.addView(fbibinfo)
|
||||
}
|
||||
val load = Glide.with(this).load(
|
||||
GlideUrl(book?.results?.comic?.cover, CMApi.myGlideHeaders)
|
||||
).timeout(10000)
|
||||
@@ -281,7 +285,7 @@ class BookHandler(private val th: WeakReference<BookFragment>, private val path:
|
||||
val bundle = Bundle()
|
||||
bundle.putString("name", name)
|
||||
bundle.putString("path", path)
|
||||
that?.rootView?.let { Navigation.findNavController(it).navigate(nav, bundle) }
|
||||
that?.apply { findNavController().navigate(nav, bundle) }
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -16,7 +16,7 @@ class HistoryFragment : InfoCardLoader(R.layout.fragment_history, R.id.action_na
|
||||
override fun onLoadFinish() {
|
||||
super.onLoadFinish()
|
||||
MainActivity.mainWeakReference?.get()?.runOnUiThread {
|
||||
mypl.visibility = View.GONE
|
||||
if(ad?.exit == false) mypl.visibility = View.GONE
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -16,7 +16,7 @@ class NewestFragment : InfoCardLoader(R.layout.fragment_newest, R.id.action_nav_
|
||||
override fun onLoadFinish() {
|
||||
super.onLoadFinish()
|
||||
mainWeakReference?.get()?.runOnUiThread {
|
||||
mypl.visibility = View.GONE
|
||||
if(ad?.exit == false) mypl.visibility = View.GONE
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -40,7 +40,7 @@ class RankFragment : InfoCardLoader(R.layout.fragment_rank, R.id.action_nav_rank
|
||||
override fun onLoadFinish() {
|
||||
super.onLoadFinish()
|
||||
mainWeakReference?.get()?.runOnUiThread {
|
||||
mypl.visibility = View.GONE
|
||||
if(ad?.exit == false) mypl.visibility = View.GONE
|
||||
}
|
||||
}
|
||||
|
||||
@@ -48,7 +48,7 @@ class RankFragment : InfoCardLoader(R.layout.fragment_rank, R.id.action_nav_rank
|
||||
sortValue = value
|
||||
Thread{
|
||||
sleep(400)
|
||||
mh?.sendEmptyMessage(4)
|
||||
if(ad?.exit == false) mh?.sendEmptyMessage(4)
|
||||
}.start()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -16,7 +16,7 @@ class RecFragment : InfoCardLoader(R.layout.fragment_recommend, R.id.action_nav_
|
||||
override fun onLoadFinish() {
|
||||
super.onLoadFinish()
|
||||
mainWeakReference?.get()?.runOnUiThread {
|
||||
mypl.visibility = View.GONE
|
||||
if(ad?.exit == false) mypl.visibility = View.GONE
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -41,7 +41,7 @@ class SortFragment : InfoCardLoader(R.layout.fragment_sort, R.id.action_nav_sort
|
||||
filter = Gson().fromJson(it.inputStream().reader(), FilterStructure::class.java)
|
||||
if(ad?.exit == true) return@AutoDownloadThread
|
||||
mainWeakReference?.get()?.runOnUiThread{
|
||||
setClasses()
|
||||
if(ad?.exit == false) setClasses()
|
||||
}
|
||||
}
|
||||
}.start()
|
||||
@@ -50,7 +50,7 @@ class SortFragment : InfoCardLoader(R.layout.fragment_sort, R.id.action_nav_sort
|
||||
override fun onLoadFinish() {
|
||||
super.onLoadFinish()
|
||||
mainWeakReference?.get()?.runOnUiThread {
|
||||
mypl.visibility = View.GONE
|
||||
if(ad?.exit == false) mypl.visibility = View.GONE
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -32,7 +32,7 @@ class TopicFragment : InfoCardLoader(R.layout.fragment_topic, R.id.action_nav_to
|
||||
topic?.apply {
|
||||
if(ad?.exit == true) return@AutoDownloadThread
|
||||
mainWeakReference?.get()?.let {
|
||||
it.runOnUiThread {
|
||||
if(ad?.exit == false) it.runOnUiThread {
|
||||
it.toolbar.title = results.title
|
||||
ftttime.text = results.datetime_created
|
||||
fttintro.text = results.intro
|
||||
@@ -47,7 +47,7 @@ class TopicFragment : InfoCardLoader(R.layout.fragment_topic, R.id.action_nav_to
|
||||
override fun onLoadFinish() {
|
||||
super.onLoadFinish()
|
||||
mainWeakReference?.get()?.runOnUiThread {
|
||||
mypl.visibility = View.GONE
|
||||
if(ad?.exit == false) mypl.visibility = View.GONE
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -54,6 +54,7 @@ class ComicDlFragment: NoBackRefreshFragment(R.layout.fragment_dlcomic) {
|
||||
it.exit = true
|
||||
}
|
||||
exit = true
|
||||
handler = null
|
||||
}
|
||||
|
||||
private fun start2load(volumes: Array<VolumeStructure>, isFromFile: Boolean = false, groupArray: Array<String>? =null){
|
||||
|
||||
@@ -3,19 +3,18 @@ package top.fumiama.copymanga.ui.download
|
||||
import android.app.AlertDialog
|
||||
import android.content.Intent
|
||||
import android.os.Bundle
|
||||
import android.os.Looper
|
||||
import android.util.Log
|
||||
import android.view.View
|
||||
import android.widget.ArrayAdapter
|
||||
import android.widget.Toast
|
||||
import androidx.navigation.Navigation
|
||||
import androidx.navigation.fragment.findNavController
|
||||
import kotlinx.android.synthetic.main.app_bar_main.*
|
||||
import kotlinx.android.synthetic.main.fragment_download.*
|
||||
import top.fumiama.dmzj.copymanga.R
|
||||
import top.fumiama.copymanga.MainActivity.Companion.mainWeakReference
|
||||
import top.fumiama.copymanga.template.general.NoBackRefreshFragment
|
||||
import top.fumiama.copymanga.ui.comicdl.ComicDlFragment
|
||||
import top.fumiama.copymanga.ui.vm.ViewMangaActivity
|
||||
import top.fumiama.dmzj.copymanga.R
|
||||
import java.io.File
|
||||
import java.util.regex.Pattern
|
||||
import java.util.zip.ZipInputStream
|
||||
@@ -98,10 +97,8 @@ class DownloadFragment: NoBackRefreshFragment(R.layout.fragment_download) {
|
||||
bundle.putString("name", jsonFile.parentFile?.name?:"Null")
|
||||
ComicDlFragment.json = jsonFile.readText()
|
||||
Log.d("MyDF", "root view: $rootView")
|
||||
rootView?.let {
|
||||
Log.d("MyDF", "action_nav_download_to_nav_group")
|
||||
Navigation.findNavController(it).navigate(R.id.action_nav_download_to_nav_group, bundle)
|
||||
}
|
||||
Log.d("MyDF", "action_nav_download_to_nav_group")
|
||||
findNavController().navigate(R.id.action_nav_download_to_nav_group, bundle)
|
||||
}
|
||||
|
||||
private fun callSelf(title: String){
|
||||
@@ -109,10 +106,8 @@ class DownloadFragment: NoBackRefreshFragment(R.layout.fragment_download) {
|
||||
bundle.putString("title", title)
|
||||
Log.d("MyDF", "Call self to $title")
|
||||
Log.d("MyDF", "root view: $rootView")
|
||||
rootView?.let {
|
||||
Log.d("MyDF", "action_nav_download_self")
|
||||
Navigation.findNavController(it).navigate(R.id.action_nav_download_self, bundle)
|
||||
}
|
||||
Log.d("MyDF", "action_nav_download_self")
|
||||
findNavController().navigate(R.id.action_nav_download_self, bundle)
|
||||
}
|
||||
|
||||
private fun findNullWebpZipFileInDir(f: File){
|
||||
|
||||
@@ -11,7 +11,7 @@ import android.view.ViewGroup
|
||||
import android.widget.ArrayAdapter
|
||||
import android.widget.ImageButton
|
||||
import androidx.appcompat.view.ContextThemeWrapper
|
||||
import androidx.navigation.Navigation
|
||||
import androidx.navigation.fragment.findNavController
|
||||
import androidx.recyclerview.widget.LinearLayoutManager
|
||||
import androidx.recyclerview.widget.RecyclerView
|
||||
import com.bumptech.glide.Glide
|
||||
@@ -20,7 +20,6 @@ import com.google.gson.Gson
|
||||
import com.lapism.search.internal.SearchLayout
|
||||
import kotlinx.android.synthetic.main.card_book_plain.view.*
|
||||
import kotlinx.android.synthetic.main.fragment_home.*
|
||||
import kotlinx.android.synthetic.main.line_text_info.view.*
|
||||
import kotlinx.android.synthetic.main.line_word.view.*
|
||||
import kotlinx.android.synthetic.main.viewpage_horizonal.view.*
|
||||
import top.fumiama.copymanga.MainActivity.Companion.ime
|
||||
@@ -160,7 +159,7 @@ class HomeFragment : NoBackRefreshFragment(R.layout.fragment_home) {
|
||||
holder.itemView.vpc.setOnClickListener {
|
||||
val bundle = Bundle()
|
||||
homeHandler.index?.results?.banners?.get(position)?.comic?.path_word?.let { it1 -> bundle.putString("path", it1) }
|
||||
rootView?.let { it1 -> Navigation.findNavController(it1).navigate(R.id.action_nav_home_to_nav_book, bundle) }
|
||||
findNavController().navigate(R.id.action_nav_home_to_nav_book, bundle)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -199,7 +198,7 @@ class HomeFragment : NoBackRefreshFragment(R.layout.fragment_home) {
|
||||
holder.itemView.lwc.setOnClickListener {
|
||||
val bundle = Bundle()
|
||||
bundle.putString("path", path_word)
|
||||
rootView?.let { r -> Navigation.findNavController(r).navigate(R.id.action_nav_home_to_nav_book, bundle) }
|
||||
findNavController().navigate(R.id.action_nav_home_to_nav_book, bundle)
|
||||
}
|
||||
holder.itemView.lwc.layoutParams.height = fhs.width / 4
|
||||
}
|
||||
|
||||
@@ -143,7 +143,7 @@ class HomeHandler(private val that: WeakReference<HomeFragment>) : AutoDownloadH
|
||||
comics += rec.comic
|
||||
}
|
||||
if(comics.size == 3) allocateLine(homeF?.getString(R.string.manga_rec)?:"", R.drawable.img_master_work, comics) {
|
||||
homeF?.rootView?.apply { Navigation.findNavController(this).navigate(R.id.action_nav_home_to_nav_recommend) }
|
||||
homeF?.findNavController()?.navigate(R.id.action_nav_home_to_nav_recommend)
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -169,7 +169,7 @@ class HomeHandler(private val that: WeakReference<HomeFragment>) : AutoDownloadH
|
||||
}
|
||||
}
|
||||
if(comics.size == 9) allocateLine(homeF?.getString(R.string.rank_list)?:"", R.drawable.img_novel_bill, comics) {
|
||||
that.get()?.findNavController()?.navigate(R.id.nav_rank)
|
||||
homeF?.findNavController()?.navigate(R.id.nav_rank)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -192,7 +192,7 @@ class HomeHandler(private val that: WeakReference<HomeFragment>) : AutoDownloadH
|
||||
comics += rec.comic
|
||||
}
|
||||
if(comics.size == 9) allocateLine(homeF?.getString(R.string.new_list)?:"", R.drawable.img_latest_pub, comics) {
|
||||
homeF?.rootView?.apply { Navigation.findNavController(this).navigate(R.id.action_nav_home_to_nav_newest) }
|
||||
homeF?.findNavController()?.navigate(R.id.action_nav_home_to_nav_newest)
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -205,7 +205,7 @@ class HomeHandler(private val that: WeakReference<HomeFragment>) : AutoDownloadH
|
||||
comics += rec
|
||||
}
|
||||
if(comics.size == 6) allocateLine(homeF?.getString(R.string.complete)?:"", R.drawable.img_novel_eye, comics, true) {
|
||||
homeF?.rootView?.apply { Navigation.findNavController(this).navigate(R.id.action_nav_home_to_nav_finish) }
|
||||
homeF?.findNavController()?.navigate(R.id.action_nav_home_to_nav_finish)
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -290,29 +290,6 @@ class HomeHandler(private val that: WeakReference<HomeFragment>) : AutoDownloadH
|
||||
return p
|
||||
}
|
||||
|
||||
/*private fun setLines(v: View, position: Int) {
|
||||
lines?.let {
|
||||
v.rttitle.text = it[position].title
|
||||
v.ir.setImageResource(
|
||||
when (position) {
|
||||
1 -> R.drawable.img_novel_refresh
|
||||
2 -> R.drawable.img_novel_more
|
||||
3 -> R.drawable.img_novel_play
|
||||
4 -> R.drawable.img_novel_eye
|
||||
else -> R.drawable.img_novel_refresh
|
||||
}
|
||||
)
|
||||
Thread{this.obtainMessage(4, position, 0, v).sendToTarget()}.start() //scanCards
|
||||
setLineHeight(v, if (position == 4) 2 else 1)
|
||||
if(position == 4) {
|
||||
Thread{ this.obtainMessage(-1, false).sendToTarget() }.start() //closeLoad
|
||||
}
|
||||
if(position == 1) v.setOnClickListener {
|
||||
Navigation.findNavController(it).navigate(R.id.action_nav_home_to_nav_latest)
|
||||
}else v.rimore.visibility = View.GONE
|
||||
}
|
||||
}*/
|
||||
|
||||
private fun scanCards(v: View, comics: Array<ComicStructure>, finish: Boolean, isTopic: Boolean){
|
||||
var id = v.rc1.id
|
||||
var card = v.findViewById<ConstraintLayout>(id)
|
||||
@@ -340,7 +317,7 @@ class HomeHandler(private val that: WeakReference<HomeFragment>) : AutoDownloadH
|
||||
cv.setOnClickListener {
|
||||
val bundle = Bundle()
|
||||
bundle.putString("path", pw)
|
||||
homeF?.rootView?.let { Navigation.findNavController(it).navigate(if(isTopic) R.id.action_nav_home_to_nav_topic else R.id.action_nav_home_to_nav_book, bundle) }
|
||||
homeF?.findNavController()?.navigate(if(isTopic) R.id.action_nav_home_to_nav_topic else R.id.action_nav_home_to_nav_book, bundle)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user