From 88999238473c85ff089a745ba60bf55a97ccd38f Mon Sep 17 00:00:00 2001 From: kunfei Date: Wed, 5 Apr 2023 21:55:01 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E6=96=B0=E7=9A=84=E5=8F=91?= =?UTF-8?q?=E7=8E=B0=E7=95=8C=E9=9D=A2=E6=A0=B7=E5=BC=8F,=E6=9C=AA?= =?UTF-8?q?=E5=AE=8C=E6=88=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../io/legado/app/ui/main/MainActivity.kt | 6 +-- .../main/bookshelf/BaseBookshelfFragment.kt | 2 +- .../bookshelf/style1/BookshelfFragment1.kt | 6 +-- .../bookshelf/style2/BookshelfFragment2.kt | 6 +-- .../ui/main/explore/BaseExploreFragment.kt | 33 +++++++++++++ .../main/explore/style1/ExploreFragment1.kt | 21 +++++++++ .../explore/{ => style2}/ExploreAdapter.kt | 2 +- .../{ => style2}/ExploreDiffItemCallBack.kt | 2 +- .../ExploreFragment2.kt} | 13 ++--- .../main/res/layout/fragment_bookshelf.xml | 21 --------- .../main/res/layout/fragment_bookshelf1.xml | 38 +++------------ .../main/res/layout/fragment_bookshelf2.xml | 47 +++++++++++++++++++ ...ment_explore.xml => fragment_explore1.xml} | 0 app/src/main/res/layout/fragment_explore2.xml | 40 ++++++++++++++++ app/src/test/java/io/legado/app/JsTest.kt | 3 ++ 15 files changed, 169 insertions(+), 71 deletions(-) create mode 100644 app/src/main/java/io/legado/app/ui/main/explore/BaseExploreFragment.kt create mode 100644 app/src/main/java/io/legado/app/ui/main/explore/style1/ExploreFragment1.kt rename app/src/main/java/io/legado/app/ui/main/explore/{ => style2}/ExploreAdapter.kt (99%) rename app/src/main/java/io/legado/app/ui/main/explore/{ => style2}/ExploreDiffItemCallBack.kt (91%) rename app/src/main/java/io/legado/app/ui/main/explore/{ExploreFragment.kt => style2/ExploreFragment2.kt} (94%) delete mode 100644 app/src/main/res/layout/fragment_bookshelf.xml create mode 100644 app/src/main/res/layout/fragment_bookshelf2.xml rename app/src/main/res/layout/{fragment_explore.xml => fragment_explore1.xml} (100%) create mode 100644 app/src/main/res/layout/fragment_explore2.xml diff --git a/app/src/main/java/io/legado/app/ui/main/MainActivity.kt b/app/src/main/java/io/legado/app/ui/main/MainActivity.kt index 2a471f983..84bb72499 100644 --- a/app/src/main/java/io/legado/app/ui/main/MainActivity.kt +++ b/app/src/main/java/io/legado/app/ui/main/MainActivity.kt @@ -36,7 +36,7 @@ import io.legado.app.service.BaseReadAloudService import io.legado.app.ui.main.bookshelf.BaseBookshelfFragment import io.legado.app.ui.main.bookshelf.style1.BookshelfFragment1 import io.legado.app.ui.main.bookshelf.style2.BookshelfFragment2 -import io.legado.app.ui.main.explore.ExploreFragment +import io.legado.app.ui.main.explore.style2.ExploreFragment2 import io.legado.app.ui.main.my.MyFragment import io.legado.app.ui.main.rss.RssFragment import io.legado.app.ui.widget.dialog.TextDialog @@ -145,7 +145,7 @@ class MainActivity : VMBaseActivity(), if (System.currentTimeMillis() - exploreReselected > 300) { exploreReselected = System.currentTimeMillis() } else { - (fragmentMap[1] as? ExploreFragment)?.compressExplore() + (fragmentMap[1] as? ExploreFragment2)?.compressExplore() } } } @@ -343,7 +343,7 @@ class MainActivity : VMBaseActivity(), return when (getId(position)) { idBookshelf1 -> BookshelfFragment1() idBookshelf2 -> BookshelfFragment2() - idExplore -> ExploreFragment() + idExplore -> ExploreFragment2() idRss -> RssFragment() else -> MyFragment() } diff --git a/app/src/main/java/io/legado/app/ui/main/bookshelf/BaseBookshelfFragment.kt b/app/src/main/java/io/legado/app/ui/main/bookshelf/BaseBookshelfFragment.kt index 89eb042c7..f2a9edb62 100644 --- a/app/src/main/java/io/legado/app/ui/main/bookshelf/BaseBookshelfFragment.kt +++ b/app/src/main/java/io/legado/app/ui/main/bookshelf/BaseBookshelfFragment.kt @@ -31,7 +31,7 @@ import io.legado.app.utils.* abstract class BaseBookshelfFragment(layoutId: Int) : VMBaseFragment(layoutId) { - val activityViewModel by activityViewModels() + protected val activityViewModel by activityViewModels() override val viewModel by viewModels() private val importBookshelf = registerForActivityResult(HandleFileContract()) { diff --git a/app/src/main/java/io/legado/app/ui/main/bookshelf/style1/BookshelfFragment1.kt b/app/src/main/java/io/legado/app/ui/main/bookshelf/style1/BookshelfFragment1.kt index 9a08760fc..e20efd85e 100644 --- a/app/src/main/java/io/legado/app/ui/main/bookshelf/style1/BookshelfFragment1.kt +++ b/app/src/main/java/io/legado/app/ui/main/bookshelf/style1/BookshelfFragment1.kt @@ -16,7 +16,7 @@ import io.legado.app.constant.PreferKey import io.legado.app.data.appDb import io.legado.app.data.entities.Book import io.legado.app.data.entities.BookGroup -import io.legado.app.databinding.FragmentBookshelfBinding +import io.legado.app.databinding.FragmentBookshelf1Binding import io.legado.app.lib.theme.accentColor import io.legado.app.lib.theme.primaryColor import io.legado.app.ui.book.group.GroupEditDialog @@ -30,11 +30,11 @@ import kotlin.collections.set /** * 书架界面 */ -class BookshelfFragment1 : BaseBookshelfFragment(R.layout.fragment_bookshelf), +class BookshelfFragment1 : BaseBookshelfFragment(R.layout.fragment_bookshelf1), TabLayout.OnTabSelectedListener, SearchView.OnQueryTextListener { - private val binding by viewBinding(FragmentBookshelfBinding::bind) + private val binding by viewBinding(FragmentBookshelf1Binding::bind) private val adapter by lazy { TabFragmentPageAdapter(childFragmentManager) } private val tabLayout: TabLayout by lazy { binding.titleBar.findViewById(R.id.tab_layout) diff --git a/app/src/main/java/io/legado/app/ui/main/bookshelf/style2/BookshelfFragment2.kt b/app/src/main/java/io/legado/app/ui/main/bookshelf/style2/BookshelfFragment2.kt index 7860e8c67..0b91c60e9 100644 --- a/app/src/main/java/io/legado/app/ui/main/bookshelf/style2/BookshelfFragment2.kt +++ b/app/src/main/java/io/legado/app/ui/main/bookshelf/style2/BookshelfFragment2.kt @@ -16,7 +16,7 @@ import io.legado.app.constant.PreferKey import io.legado.app.data.appDb import io.legado.app.data.entities.Book import io.legado.app.data.entities.BookGroup -import io.legado.app.databinding.FragmentBookshelf1Binding +import io.legado.app.databinding.FragmentBookshelf2Binding import io.legado.app.help.book.isAudio import io.legado.app.help.config.AppConfig import io.legado.app.lib.theme.accentColor @@ -42,11 +42,11 @@ import kotlin.math.max /** * 书架界面 */ -class BookshelfFragment2 : BaseBookshelfFragment(R.layout.fragment_bookshelf1), +class BookshelfFragment2 : BaseBookshelfFragment(R.layout.fragment_bookshelf2), SearchView.OnQueryTextListener, BaseBooksAdapter.CallBack { - private val binding by viewBinding(FragmentBookshelf1Binding::bind) + private val binding by viewBinding(FragmentBookshelf2Binding::bind) private val bookshelfLayout by lazy { getPrefInt(PreferKey.bookshelfLayout) } diff --git a/app/src/main/java/io/legado/app/ui/main/explore/BaseExploreFragment.kt b/app/src/main/java/io/legado/app/ui/main/explore/BaseExploreFragment.kt new file mode 100644 index 000000000..7962d83c5 --- /dev/null +++ b/app/src/main/java/io/legado/app/ui/main/explore/BaseExploreFragment.kt @@ -0,0 +1,33 @@ +package io.legado.app.ui.main.explore + +import androidx.appcompat.widget.SearchView +import io.legado.app.R +import io.legado.app.base.VMBaseFragment +import io.legado.app.lib.theme.primaryTextColor +import io.legado.app.utils.applyTint + +abstract class BaseExploreFragment(layoutId: Int) : VMBaseFragment(layoutId) { + + protected abstract val searchView: SearchView + + + private fun initSearchView() { + searchView.applyTint(primaryTextColor) + searchView.onActionViewExpanded() + searchView.isSubmitButtonEnabled = true + searchView.queryHint = getString(R.string.screen_find) + searchView.clearFocus() + searchView.setOnQueryTextListener(object : SearchView.OnQueryTextListener { + override fun onQueryTextSubmit(query: String?): Boolean { + return false + } + + override fun onQueryTextChange(newText: String?): Boolean { + + return false + } + }) + } + + +} \ No newline at end of file diff --git a/app/src/main/java/io/legado/app/ui/main/explore/style1/ExploreFragment1.kt b/app/src/main/java/io/legado/app/ui/main/explore/style1/ExploreFragment1.kt new file mode 100644 index 000000000..fa70834b0 --- /dev/null +++ b/app/src/main/java/io/legado/app/ui/main/explore/style1/ExploreFragment1.kt @@ -0,0 +1,21 @@ +package io.legado.app.ui.main.explore.style1 + +import android.os.Bundle +import android.view.View +import androidx.fragment.app.viewModels +import io.legado.app.R +import io.legado.app.base.VMBaseFragment +import io.legado.app.databinding.FragmentExplore1Binding +import io.legado.app.ui.main.explore.ExploreViewModel +import io.legado.app.utils.viewbindingdelegate.viewBinding + +class ExploreFragment1 : VMBaseFragment(R.layout.fragment_explore1) { + + private val binding by viewBinding(FragmentExplore1Binding::bind) + override val viewModel by viewModels() + + override fun onFragmentCreated(view: View, savedInstanceState: Bundle?) { + + } + +} \ No newline at end of file diff --git a/app/src/main/java/io/legado/app/ui/main/explore/ExploreAdapter.kt b/app/src/main/java/io/legado/app/ui/main/explore/style2/ExploreAdapter.kt similarity index 99% rename from app/src/main/java/io/legado/app/ui/main/explore/ExploreAdapter.kt rename to app/src/main/java/io/legado/app/ui/main/explore/style2/ExploreAdapter.kt index 8a5e110fa..194f2ee7a 100644 --- a/app/src/main/java/io/legado/app/ui/main/explore/ExploreAdapter.kt +++ b/app/src/main/java/io/legado/app/ui/main/explore/style2/ExploreAdapter.kt @@ -1,4 +1,4 @@ -package io.legado.app.ui.main.explore +package io.legado.app.ui.main.explore.style2 import android.content.Context import android.view.View diff --git a/app/src/main/java/io/legado/app/ui/main/explore/ExploreDiffItemCallBack.kt b/app/src/main/java/io/legado/app/ui/main/explore/style2/ExploreDiffItemCallBack.kt similarity index 91% rename from app/src/main/java/io/legado/app/ui/main/explore/ExploreDiffItemCallBack.kt rename to app/src/main/java/io/legado/app/ui/main/explore/style2/ExploreDiffItemCallBack.kt index 67d527d2a..b1fa32201 100644 --- a/app/src/main/java/io/legado/app/ui/main/explore/ExploreDiffItemCallBack.kt +++ b/app/src/main/java/io/legado/app/ui/main/explore/style2/ExploreDiffItemCallBack.kt @@ -1,4 +1,4 @@ -package io.legado.app.ui.main.explore +package io.legado.app.ui.main.explore.style2 import androidx.recyclerview.widget.DiffUtil import io.legado.app.data.entities.BookSource diff --git a/app/src/main/java/io/legado/app/ui/main/explore/ExploreFragment.kt b/app/src/main/java/io/legado/app/ui/main/explore/style2/ExploreFragment2.kt similarity index 94% rename from app/src/main/java/io/legado/app/ui/main/explore/ExploreFragment.kt rename to app/src/main/java/io/legado/app/ui/main/explore/style2/ExploreFragment2.kt index 7622a2d40..e29cdc423 100644 --- a/app/src/main/java/io/legado/app/ui/main/explore/ExploreFragment.kt +++ b/app/src/main/java/io/legado/app/ui/main/explore/style2/ExploreFragment2.kt @@ -1,4 +1,4 @@ -package io.legado.app.ui.main.explore +package io.legado.app.ui.main.explore.style2 import android.os.Bundle import android.view.Menu @@ -12,17 +12,18 @@ import androidx.lifecycle.lifecycleScope import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.RecyclerView import io.legado.app.R -import io.legado.app.base.VMBaseFragment import io.legado.app.constant.AppLog import io.legado.app.data.appDb import io.legado.app.data.entities.BookSource -import io.legado.app.databinding.FragmentExploreBinding +import io.legado.app.databinding.FragmentExplore2Binding import io.legado.app.help.config.AppConfig import io.legado.app.lib.dialogs.alert import io.legado.app.lib.theme.primaryColor import io.legado.app.lib.theme.primaryTextColor import io.legado.app.ui.book.explore.ExploreShowActivity import io.legado.app.ui.book.source.edit.BookSourceEditActivity +import io.legado.app.ui.main.explore.BaseExploreFragment +import io.legado.app.ui.main.explore.ExploreViewModel import io.legado.app.utils.applyTint import io.legado.app.utils.cnCompare import io.legado.app.utils.setEdgeEffectColor @@ -37,14 +38,14 @@ import kotlinx.coroutines.launch /** * 发现界面 */ -class ExploreFragment : VMBaseFragment(R.layout.fragment_explore), +class ExploreFragment2 : BaseExploreFragment(R.layout.fragment_explore2), ExploreAdapter.CallBack { override val viewModel by viewModels() - private val binding by viewBinding(FragmentExploreBinding::bind) + private val binding by viewBinding(FragmentExplore2Binding::bind) private val adapter by lazy { ExploreAdapter(requireContext(), this) } private val linearLayoutManager by lazy { LinearLayoutManager(context) } - private val searchView: SearchView by lazy { + override val searchView: SearchView by lazy { binding.titleBar.findViewById(R.id.search_view) } private val diffItemCallBack = ExploreDiffItemCallBack() diff --git a/app/src/main/res/layout/fragment_bookshelf.xml b/app/src/main/res/layout/fragment_bookshelf.xml deleted file mode 100644 index 91b638e02..000000000 --- a/app/src/main/res/layout/fragment_bookshelf.xml +++ /dev/null @@ -1,21 +0,0 @@ - - - - - - - - \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_bookshelf1.xml b/app/src/main/res/layout/fragment_bookshelf1.xml index 35ce510ec..91b638e02 100644 --- a/app/src/main/res/layout/fragment_bookshelf1.xml +++ b/app/src/main/res/layout/fragment_bookshelf1.xml @@ -1,7 +1,6 @@ - @@ -11,37 +10,12 @@ android:layout_width="match_parent" android:layout_height="wrap_content" app:attachToActivity="false" - app:layout_constraintTop_toTopOf="parent" + app:contentLayout="@layout/view_tab_layout_min" app:title="@string/bookshelf" /> - + android:layout_height="match_parent" /> - - - - - - - \ No newline at end of file + \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_bookshelf2.xml b/app/src/main/res/layout/fragment_bookshelf2.xml new file mode 100644 index 000000000..35ce510ec --- /dev/null +++ b/app/src/main/res/layout/fragment_bookshelf2.xml @@ -0,0 +1,47 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_explore.xml b/app/src/main/res/layout/fragment_explore1.xml similarity index 100% rename from app/src/main/res/layout/fragment_explore.xml rename to app/src/main/res/layout/fragment_explore1.xml diff --git a/app/src/main/res/layout/fragment_explore2.xml b/app/src/main/res/layout/fragment_explore2.xml new file mode 100644 index 000000000..1b473573e --- /dev/null +++ b/app/src/main/res/layout/fragment_explore2.xml @@ -0,0 +1,40 @@ + + + + + + + + + + \ No newline at end of file diff --git a/app/src/test/java/io/legado/app/JsTest.kt b/app/src/test/java/io/legado/app/JsTest.kt index 291f9e028..514703036 100644 --- a/app/src/test/java/io/legado/app/JsTest.kt +++ b/app/src/test/java/io/legado/app/JsTest.kt @@ -67,6 +67,9 @@ class JsTest { result = result + o println(o) } + var b=[] + b.push(4,5,6) + b.forEach(c => {println(c)}) result """.trimIndent() val result = SCRIPT_ENGINE.eval(jsFor, scope).toString()