From 3faacae2dab4d7e09907e4dfaf80f83c53242f2d Mon Sep 17 00:00:00 2001 From: fumiama Date: Fri, 7 May 2021 20:47:01 +0800 Subject: [PATCH] =?UTF-8?q?2.0.beta3=201.=20=E4=BF=AE=E5=A4=8D=E5=A2=9E?= =?UTF-8?q?=E5=8A=A0=E5=8D=A1=E7=89=87=E9=94=99=E8=AF=AF=202.=20=E5=A2=9E?= =?UTF-8?q?=E5=8A=A0=E4=B8=93=E9=A2=98=E3=80=81=E6=BC=AB=E7=94=BB=E6=8E=A8?= =?UTF-8?q?=E8=8D=90=E3=80=81=E5=85=A8=E6=96=B0=E4=B8=8A=E6=9E=B6=E3=80=81?= =?UTF-8?q?=E5=B7=B2=E5=AE=8C=E7=BB=93=E7=9A=84=E8=AF=A6=E6=83=85=E9=A1=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/build.gradle | 4 +- .../copymanga/json/TopicStructure.java | 12 +++ .../copymanga/json/TypeBookListStructure.java | 17 ++++ .../fumiama/copymanga/template/CardList.kt | 16 ++-- .../copymanga/template/InfoCardLoader.kt | 27 ++++-- .../fumiama/copymanga/ui/book/BookHandler.kt | 16 ++-- .../ui/cardflow/finish/FinishFragment.kt | 77 +++++++++++++++++ .../ui/cardflow/newest/NewestFragment.kt | 22 +++++ .../ui/cardflow/recommend/RecFragment.kt | 22 +++++ .../ui/{ => cardflow}/sort/SortFragment.kt | 2 +- .../ui/cardflow/topic/TopicFragment.kt | 51 +++++++++++ .../fumiama/copymanga/ui/home/HomeHandler.kt | 38 ++++---- .../fumiama/copymanga/ui/rank/RankFragment.kt | 1 - app/src/main/res/layout/fragment_finish.xml | 26 ++++++ app/src/main/res/layout/fragment_newest.xml | 10 +++ app/src/main/res/layout/fragment_rank.xml | 2 +- .../main/res/layout/fragment_recommend.xml | 10 +++ app/src/main/res/layout/fragment_sort.xml | 2 +- app/src/main/res/layout/fragment_topic.xml | 23 +++++ .../layout/{line_rank.xml => line_finish.xml} | 10 +-- .../main/res/navigation/mobile_navigation.xml | 86 ++++++++++++++++++- app/src/main/res/values/strings.xml | 6 ++ 22 files changed, 432 insertions(+), 48 deletions(-) create mode 100644 app/src/main/java/top/fumiama/copymanga/json/TopicStructure.java create mode 100644 app/src/main/java/top/fumiama/copymanga/json/TypeBookListStructure.java create mode 100644 app/src/main/java/top/fumiama/copymanga/ui/cardflow/finish/FinishFragment.kt create mode 100644 app/src/main/java/top/fumiama/copymanga/ui/cardflow/newest/NewestFragment.kt create mode 100644 app/src/main/java/top/fumiama/copymanga/ui/cardflow/recommend/RecFragment.kt rename app/src/main/java/top/fumiama/copymanga/ui/{ => cardflow}/sort/SortFragment.kt (98%) create mode 100644 app/src/main/java/top/fumiama/copymanga/ui/cardflow/topic/TopicFragment.kt create mode 100644 app/src/main/res/layout/fragment_finish.xml create mode 100644 app/src/main/res/layout/fragment_newest.xml create mode 100644 app/src/main/res/layout/fragment_recommend.xml create mode 100644 app/src/main/res/layout/fragment_topic.xml rename app/src/main/res/layout/{line_rank.xml => line_finish.xml} (81%) diff --git a/app/build.gradle b/app/build.gradle index 94b1f62..18eccff 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -28,8 +28,8 @@ android { applicationId 'top.fumiama.copymanga' minSdkVersion 23 targetSdkVersion 30 - versionCode 13 - versionName '2.0.beta2' + versionCode 14 + versionName '2.0.beta3' resConfigs "zh", "zh-rCN" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" diff --git a/app/src/main/java/top/fumiama/copymanga/json/TopicStructure.java b/app/src/main/java/top/fumiama/copymanga/json/TopicStructure.java new file mode 100644 index 0000000..e09073d --- /dev/null +++ b/app/src/main/java/top/fumiama/copymanga/json/TopicStructure.java @@ -0,0 +1,12 @@ +package top.fumiama.copymanga.json; + +public class TopicStructure extends ReturnBase { + public Results results; + public static class Results { + public String title; + public String period; + public String intro; + public int type; + public String datetime_created; + } +} diff --git a/app/src/main/java/top/fumiama/copymanga/json/TypeBookListStructure.java b/app/src/main/java/top/fumiama/copymanga/json/TypeBookListStructure.java new file mode 100644 index 0000000..be2b6af --- /dev/null +++ b/app/src/main/java/top/fumiama/copymanga/json/TypeBookListStructure.java @@ -0,0 +1,17 @@ +package top.fumiama.copymanga.json; + +public class TypeBookListStructure extends ReturnBase { + public Results results; + public static class Results { + public int total; + public TypeBook[] list; + public int limit; + public int offset; + } + public static class TypeBook { + public int type; + public String name; + public String datetime_created; + public ComicStructure comic; + } +} \ No newline at end of file diff --git a/app/src/main/java/top/fumiama/copymanga/template/CardList.kt b/app/src/main/java/top/fumiama/copymanga/template/CardList.kt index 4467cac..07eb45c 100644 --- a/app/src/main/java/top/fumiama/copymanga/template/CardList.kt +++ b/app/src/main/java/top/fumiama/copymanga/template/CardList.kt @@ -48,17 +48,19 @@ class CardList( recycleOneRow(it) } } - private fun recycleOneRow(v:View?){ - if(index < 20) rows[index] = v - else{ + val relativeIndex = index++ % 20 + if(rows[relativeIndex] == null) rows[relativeIndex] = v + else { + val victim = rows[relativeIndex] mainWeakReference?.get()?.runOnUiThread { - that?.mydll?.removeView(rows[index % 20]) - //zis.mys?.scrollY = zis.mys?.scrollY?.minus(cardHeight + 16)?:0 + that?.apply { + mydll?.removeView(victim) + mys?.scrollY = that.mys?.scrollY?.minus(cardHeight + 16)?:0 + } } - rows[index % 20] = v + rows[relativeIndex] = v } - index++ } @ExperimentalStdlibApi diff --git a/app/src/main/java/top/fumiama/copymanga/template/InfoCardLoader.kt b/app/src/main/java/top/fumiama/copymanga/template/InfoCardLoader.kt index d3322f6..e73c8a6 100644 --- a/app/src/main/java/top/fumiama/copymanga/template/InfoCardLoader.kt +++ b/app/src/main/java/top/fumiama/copymanga/template/InfoCardLoader.kt @@ -8,12 +8,13 @@ import androidx.navigation.Navigation import com.google.gson.Gson import top.fumiama.dmzj.copymanga.R import top.fumiama.copymanga.json.BookListStructure +import top.fumiama.copymanga.json.TypeBookListStructure import top.fumiama.copymanga.tools.DownloadTools import java.io.File import java.lang.ref.WeakReference @ExperimentalStdlibApi -open class InfoCardLoader(inflateRes:Int, private val navId:Int): MangaPagesFragmentTemplate(inflateRes) { +open class InfoCardLoader(inflateRes:Int, private val navId:Int, private val isTypeBook: Boolean = false): MangaPagesFragmentTemplate(inflateRes) { private val subUrl get() = getApiUrl() init { @@ -24,13 +25,27 @@ open class InfoCardLoader(inflateRes:Int, private val navId:Int): MangaPagesFrag page = 0 isRefresh = false } - val bookList = Gson().fromJson(it?.decodeToString(), BookListStructure::class.java) - bookList?.let { - if(it.code == 200) it.results.list?.forEach{ book -> - cardList.addCard(book.name, null, book.cover, book.path_word, null, null, false) + if(isTypeBook) { + val bookList = Gson().fromJson(it?.decodeToString(), TypeBookListStructure::class.java) + bookList?.apply { + if(results.offset < results.total) { + if(code == 200) results.list.forEach { book -> + cardList.addCard(book.comic.name, null, book.comic.cover, book.comic.path_word, null, null, false) + } + } + page++ + } + } else { + val bookList = Gson().fromJson(it?.decodeToString(), BookListStructure::class.java) + bookList?.apply { + if(results.offset < results.total) { + if(code == 200) results.list.forEach{ book -> + cardList.addCard(book.name, null, book.cover, book.path_word, null, null, false) + } + } + page++ } } - page++ onLoadFinish() }.start() } diff --git a/app/src/main/java/top/fumiama/copymanga/ui/book/BookHandler.kt b/app/src/main/java/top/fumiama/copymanga/ui/book/BookHandler.kt index 16cae6b..380554d 100644 --- a/app/src/main/java/top/fumiama/copymanga/ui/book/BookHandler.kt +++ b/app/src/main/java/top/fumiama/copymanga/ui/book/BookHandler.kt @@ -100,18 +100,18 @@ class BookHandler(that: WeakReference, path: String) } private fun setCover(){ - that?.let { - it.fbl.addView(fbibinfo) - val load = Glide.with(it).load( + that?.apply { + fbl.addView(fbibinfo) + val load = Glide.with(this).load( GlideUrl(book?.results?.comic?.cover, CMApi.myGlideHeaders) ).timeout(10000) - load.into(it.imic) - it.context?.let { it1 -> GlideBlurTransformation(it1) } + load.into(imic) + context?.let { it1 -> GlideBlurTransformation(it1) } ?.let { it2 -> RequestOptions.bitmapTransform(it2) } - ?.let { it3 -> load.apply(it3).into(it.lbibg) } - it.imf.visibility = View.GONE + ?.let { it3 -> load.apply(it3).into(lbibg) } + imf.visibility = View.GONE + fbl.addView(divider) } - that?.fbl?.addView(divider) } private fun getThemeSeq(authors: Array): CharSequence{ diff --git a/app/src/main/java/top/fumiama/copymanga/ui/cardflow/finish/FinishFragment.kt b/app/src/main/java/top/fumiama/copymanga/ui/cardflow/finish/FinishFragment.kt new file mode 100644 index 0000000..e40c47e --- /dev/null +++ b/app/src/main/java/top/fumiama/copymanga/ui/cardflow/finish/FinishFragment.kt @@ -0,0 +1,77 @@ +package top.fumiama.copymanga.ui.cardflow.finish + +import android.animation.ObjectAnimator +import android.view.View +import kotlinx.android.synthetic.main.anchor_popular.view.* +import kotlinx.android.synthetic.main.line_finish.* +import kotlinx.android.synthetic.main.line_lazybooklines.* +import top.fumiama.copymanga.MainActivity.Companion.mainWeakReference +import top.fumiama.copymanga.template.InfoCardLoader +import top.fumiama.dmzj.copymanga.R +import java.lang.Thread.sleep + +@ExperimentalStdlibApi +class FinishFragment : InfoCardLoader(R.layout.fragment_finish, R.id.action_nav_finish_to_nav_book) { + private val sortWay = listOf("datetime_updated", "-datetime_updated", "popular", "-popular") + private var sortValue = 0 + + override fun getApiUrl() = + getString(R.string.finishApiUrl).let { + String.format( + it, + page * 21, + sortWay[sortValue] + ) + } + + override fun setListeners() { + super.setListeners() + setUpdate() + setHot() + } + + override fun onLoadFinish() { + super.onLoadFinish() + mainWeakReference?.get()?.runOnUiThread { + mypl.visibility = View.GONE + } + } + + private fun setUpdate() { + line_finish_time.apply { + apt.setText(R.string.menu_update_time) + setOnClickListener { + sortValue = if(apim.rotation == 0f) { + ObjectAnimator.ofFloat(apim, "rotation", 0f, 180f).setDuration(233).start() + 1 + }else{ + ObjectAnimator.ofFloat(apim, "rotation", 180f, 0f).setDuration(233).start() + 0 + } + Thread{ + sleep(400) + mh?.sendEmptyMessage(4) + }.start() + } + } + } + + private fun setHot() { + line_finish_pop.apply { + apt.setText(R.string.menu_hot) + setOnClickListener { + sortValue = if (apim.rotation == 0f) { + ObjectAnimator.ofFloat(apim, "rotation", 0f, 180f).setDuration(233).start() + 1 + } else { + ObjectAnimator.ofFloat(apim, "rotation", 180f, 0f).setDuration(233).start() + 0 + } + Thread { + sleep(400) + mh?.sendEmptyMessage(4) + }.start() + } + } + } +} \ No newline at end of file diff --git a/app/src/main/java/top/fumiama/copymanga/ui/cardflow/newest/NewestFragment.kt b/app/src/main/java/top/fumiama/copymanga/ui/cardflow/newest/NewestFragment.kt new file mode 100644 index 0000000..ba47786 --- /dev/null +++ b/app/src/main/java/top/fumiama/copymanga/ui/cardflow/newest/NewestFragment.kt @@ -0,0 +1,22 @@ +package top.fumiama.copymanga.ui.cardflow.newest + +import android.view.View +import kotlinx.android.synthetic.main.line_lazybooklines.* +import top.fumiama.copymanga.MainActivity.Companion.mainWeakReference +import top.fumiama.copymanga.template.InfoCardLoader +import top.fumiama.dmzj.copymanga.R + +@ExperimentalStdlibApi +class NewestFragment : InfoCardLoader(R.layout.fragment_newest, R.id.action_nav_newest_to_nav_book, true) { + override fun getApiUrl() = + getString(R.string.newestApiUrl).let { + String.format(it, page * 21) + } + + override fun onLoadFinish() { + super.onLoadFinish() + mainWeakReference?.get()?.runOnUiThread { + mypl.visibility = View.GONE + } + } +} \ No newline at end of file diff --git a/app/src/main/java/top/fumiama/copymanga/ui/cardflow/recommend/RecFragment.kt b/app/src/main/java/top/fumiama/copymanga/ui/cardflow/recommend/RecFragment.kt new file mode 100644 index 0000000..d6f923c --- /dev/null +++ b/app/src/main/java/top/fumiama/copymanga/ui/cardflow/recommend/RecFragment.kt @@ -0,0 +1,22 @@ +package top.fumiama.copymanga.ui.cardflow.recommend + +import android.view.View +import kotlinx.android.synthetic.main.line_lazybooklines.* +import top.fumiama.copymanga.MainActivity.Companion.mainWeakReference +import top.fumiama.copymanga.template.InfoCardLoader +import top.fumiama.dmzj.copymanga.R + +@ExperimentalStdlibApi +class RecFragment : InfoCardLoader(R.layout.fragment_recommend, R.id.action_nav_recommend_to_nav_book, true) { + override fun getApiUrl() = + getString(R.string.recommendApiUrl).let { + String.format(it, page * 21) + } + + override fun onLoadFinish() { + super.onLoadFinish() + mainWeakReference?.get()?.runOnUiThread { + mypl.visibility = View.GONE + } + } +} \ No newline at end of file diff --git a/app/src/main/java/top/fumiama/copymanga/ui/sort/SortFragment.kt b/app/src/main/java/top/fumiama/copymanga/ui/cardflow/sort/SortFragment.kt similarity index 98% rename from app/src/main/java/top/fumiama/copymanga/ui/sort/SortFragment.kt rename to app/src/main/java/top/fumiama/copymanga/ui/cardflow/sort/SortFragment.kt index ad3550c..ec1f2bd 100644 --- a/app/src/main/java/top/fumiama/copymanga/ui/sort/SortFragment.kt +++ b/app/src/main/java/top/fumiama/copymanga/ui/cardflow/sort/SortFragment.kt @@ -1,4 +1,4 @@ -package top.fumiama.copymanga.ui.sort +package top.fumiama.copymanga.ui.cardflow.sort import android.animation.ObjectAnimator import android.view.View diff --git a/app/src/main/java/top/fumiama/copymanga/ui/cardflow/topic/TopicFragment.kt b/app/src/main/java/top/fumiama/copymanga/ui/cardflow/topic/TopicFragment.kt new file mode 100644 index 0000000..615f80c --- /dev/null +++ b/app/src/main/java/top/fumiama/copymanga/ui/cardflow/topic/TopicFragment.kt @@ -0,0 +1,51 @@ +package top.fumiama.copymanga.ui.cardflow.topic + +import android.os.Bundle +import android.view.View +import com.google.gson.Gson +import kotlinx.android.synthetic.main.app_bar_main.* +import kotlinx.android.synthetic.main.line_lazybooklines.* +import kotlinx.android.synthetic.main.fragment_topic.* +import top.fumiama.copymanga.MainActivity.Companion.mainWeakReference +import top.fumiama.copymanga.json.TopicStructure +import top.fumiama.copymanga.template.AutoDownloadThread +import top.fumiama.copymanga.template.InfoCardLoader +import top.fumiama.dmzj.copymanga.R + +@ExperimentalStdlibApi +class TopicFragment : InfoCardLoader(R.layout.fragment_topic, R.id.action_nav_topic_to_nav_book) { + private var type = 1 + override fun getApiUrl() = + getString(R.string.topicContentApiUrl).let { + String.format(it, arguments?.getString("path"), type, page * 21) + } + + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + AutoDownloadThread(getString(R.string.topicApiUrl).let { + String.format(it, arguments?.getString("path")) + }) { + it?.apply { + val r = inputStream().reader() + val topic = Gson().fromJson(r, TopicStructure::class.java) + topic?.apply { + mainWeakReference?.get()?.let { + it.runOnUiThread { + it.toolbar.title = results.title + ftttime.text = results.datetime_created + fttintro.text = results.intro + type = results.type + } + } + } + } + }.start() + } + + override fun onLoadFinish() { + super.onLoadFinish() + mainWeakReference?.get()?.runOnUiThread { + mypl.visibility = View.GONE + } + } +} \ No newline at end of file diff --git a/app/src/main/java/top/fumiama/copymanga/ui/home/HomeHandler.kt b/app/src/main/java/top/fumiama/copymanga/ui/home/HomeHandler.kt index 788f460..9155d91 100644 --- a/app/src/main/java/top/fumiama/copymanga/ui/home/HomeHandler.kt +++ b/app/src/main/java/top/fumiama/copymanga/ui/home/HomeHandler.kt @@ -110,7 +110,7 @@ class HomeHandler(that: WeakReference) :AutoDownloadHandler( newComic.path_word = topic.path_word comics += newComic } - if(comics.size == 3) allocateLine(homeF?.getString(R.string.topics_series)?:"", R.drawable.img_hot_serial, comics) + if(comics.size == 3) allocateLine(homeF?.getString(R.string.topics_series)?:"", R.drawable.img_hot_serial, comics, isTopic = true) } } @@ -121,7 +121,9 @@ class HomeHandler(that: WeakReference) :AutoDownloadHandler( if(i > 2) break comics += rec.comic } - if(comics.size == 3) allocateLine(homeF?.getString(R.string.manga_rec)?:"", R.drawable.img_master_work, comics) + 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) } + } } } @@ -166,7 +168,9 @@ class HomeHandler(that: WeakReference) :AutoDownloadHandler( if(i > 8) break comics += rec.comic } - if(comics.size == 9) allocateLine(homeF?.getString(R.string.new_list)?:"", R.drawable.img_latest_pub, comics) + 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) } + } } } @@ -177,7 +181,9 @@ class HomeHandler(that: WeakReference) :AutoDownloadHandler( if(i > 5) break comics += rec } - if(comics.size == 6) allocateLine(homeF?.getString(R.string.complete)?:"", R.drawable.img_novel_eye, comics, true) + 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) } + } } } @@ -237,7 +243,7 @@ class HomeHandler(that: WeakReference) :AutoDownloadHandler( } } - private fun allocateLine(title: String, iconResId: Int, comics: Array, finish: Boolean = false): Int{ + private fun allocateLine(title: String, iconResId: Int, comics: Array, finish: Boolean = false, isTopic: Boolean = false, onClick: (() -> Unit)? = null): Int{ val p = indexLines.size val c = comics.size / 3 homeF?.layoutInflater?.inflate( @@ -246,12 +252,13 @@ class HomeHandler(that: WeakReference) :AutoDownloadHandler( 2 -> R.layout.line_2bookline 3 -> R.layout.line_3bookline else -> return -1 - }, homeF.fhl, false)?.let { - scanCards(it, comics, finish) - it.rttitle.text = title - it.ir.setImageResource(iconResId) - setLineHeight(it, c) - indexLines += it + }, homeF.fhl, false)?.apply { + scanCards(this, comics, finish, isTopic) + rttitle.text = title + ir.setImageResource(iconResId) + setLineHeight(this, c) + if(onClick != null) setOnClickListener { onClick() } + indexLines += this } return p } @@ -279,7 +286,7 @@ class HomeHandler(that: WeakReference) :AutoDownloadHandler( } }*/ - private fun scanCards(v: View, comics: Array, finish: Boolean = false){ + private fun scanCards(v: View, comics: Array, finish: Boolean, isTopic: Boolean){ var id = v.rc1.id var card = v.findViewById(id) for (data in comics){ @@ -288,13 +295,14 @@ class HomeHandler(that: WeakReference) :AutoDownloadHandler( data.path_word, data.name, data.cover, - finish + finish, + isTopic ) card = v.findViewById(++id) } } - private fun setCards(cv: CardView, pw: String, name: String, img: String, isFinal: Boolean = false) { + private fun setCards(cv: CardView, pw: String, name: String, img: String, isFinal: Boolean, isTopic: Boolean) { cv.tic.text = name homeF?.let { Glide.with(it).load(GlideUrl(img, CMApi.myGlideHeaders)).timeout(10000).into(cv.imic) @@ -303,7 +311,7 @@ class HomeHandler(that: WeakReference) :AutoDownloadHandler( cv.setOnClickListener { val bundle = Bundle() bundle.putString("path", pw) - homeF?.rootView?.let { Navigation.findNavController(it).navigate(R.id.action_nav_home_to_nav_book, bundle) } + 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) } } } diff --git a/app/src/main/java/top/fumiama/copymanga/ui/rank/RankFragment.kt b/app/src/main/java/top/fumiama/copymanga/ui/rank/RankFragment.kt index 916c271..5eacb4e 100644 --- a/app/src/main/java/top/fumiama/copymanga/ui/rank/RankFragment.kt +++ b/app/src/main/java/top/fumiama/copymanga/ui/rank/RankFragment.kt @@ -5,7 +5,6 @@ import androidx.fragment.app.Fragment import com.github.zawadz88.materialpopupmenu.popupMenu import com.google.gson.Gson import kotlinx.android.synthetic.main.anchor_popular.view.* -import kotlinx.android.synthetic.main.line_rank.* import top.fumiama.dmzj.copymanga.R import top.fumiama.copymanga.json.FilterStructure import top.fumiama.copymanga.template.InfoCardLoader diff --git a/app/src/main/res/layout/fragment_finish.xml b/app/src/main/res/layout/fragment_finish.xml new file mode 100644 index 0000000..ee9c469 --- /dev/null +++ b/app/src/main/res/layout/fragment_finish.xml @@ -0,0 +1,26 @@ + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_newest.xml b/app/src/main/res/layout/fragment_newest.xml new file mode 100644 index 0000000..fcfa627 --- /dev/null +++ b/app/src/main/res/layout/fragment_newest.xml @@ -0,0 +1,10 @@ + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_rank.xml b/app/src/main/res/layout/fragment_rank.xml index dc2c723..47b79f9 100644 --- a/app/src/main/res/layout/fragment_rank.xml +++ b/app/src/main/res/layout/fragment_rank.xml @@ -8,7 +8,7 @@ + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_sort.xml b/app/src/main/res/layout/fragment_sort.xml index f75504c..c6ef9ce 100644 --- a/app/src/main/res/layout/fragment_sort.xml +++ b/app/src/main/res/layout/fragment_sort.xml @@ -4,7 +4,7 @@ xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" - tools:context="top.fumiama.copymanga.ui.sort.SortFragment"> + tools:context="top.fumiama.copymanga.ui.cardflow.sort.SortFragment"> + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/line_rank.xml b/app/src/main/res/layout/line_finish.xml similarity index 81% rename from app/src/main/res/layout/line_rank.xml rename to app/src/main/res/layout/line_finish.xml index d292514..b6f57f6 100644 --- a/app/src/main/res/layout/line_rank.xml +++ b/app/src/main/res/layout/line_finish.xml @@ -11,25 +11,25 @@ android:layout_marginTop="@dimen/nav_header_vertical_spacing" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" - app:layout_constraintTop_toBottomOf="@+id/line_rank_class" /> + app:layout_constraintTop_toBottomOf="@+id/line_finish_pop" /> \ No newline at end of file diff --git a/app/src/main/res/navigation/mobile_navigation.xml b/app/src/main/res/navigation/mobile_navigation.xml index 599d2a6..8f12628 100644 --- a/app/src/main/res/navigation/mobile_navigation.xml +++ b/app/src/main/res/navigation/mobile_navigation.xml @@ -24,11 +24,39 @@ app:exitAnim="@anim/slide_out_left" app:popEnterAnim="@anim/slide_out_left_exit" app:popExitAnim="@anim/slide_in_right_exit" /> + + + + + + + + + + + + + + + + + + + + 图书详情 章节内容 漫画下载 + 专题系列 检查更新 illust: Hiten(490219) @@ -38,6 +39,11 @@ https://api.copymanga.com/api/v3/comic/%1$s/group/%2$s/chapters?limit=100&offset=%3$d https://api.copymanga.com/api/v3/comic/%1$s/chapter2/%2$s https://nnv3api.dmzj1.com/novel/download/%1$d_%2$d_%3$d.txt + https://api.copymanga.com/api/v3/topic/%1$s + https://api.copymanga.com/api/v3/topic/%1$s/contents?type=%2$d&limit=21&offset=%3$d + https://api.copymanga.com/api/v3/recs?pos=3200102&limit=21&offset=%1$d + https://api.copymanga.com/api/v3/update/newest?limit=21&offset=%1$d + https://api.copymanga.com/api/v3/comics?limit=21&offset=%1$d&ordering=%2$s&top=finish 已完结