1
0
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:
源文雨
2022-12-19 13:10:48 +08:00
parent 15df64da5f
commit 3784d30e3c
20 changed files with 119 additions and 115 deletions

1
.idea/misc.xml generated
View File

@@ -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" />

View File

@@ -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'

View File

@@ -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 {

View File

@@ -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)

View File

@@ -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
}
}

View File

@@ -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()
}
}
}

View File

@@ -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")

View File

@@ -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)
}
}
}

View File

@@ -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 {

View File

@@ -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) }
}
}

View File

@@ -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
}
}
}

View File

@@ -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
}
}
}

View File

@@ -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()
}
}
}

View File

@@ -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
}
}
}

View File

@@ -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
}
}

View File

@@ -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
}
}
}

View File

@@ -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){

View File

@@ -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){

View 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
}

View File

@@ -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)
}
}