From d6532eb87e6b6d002f37ae470351e2d3e09ccfc8 Mon Sep 17 00:00:00 2001 From: gedoor Date: Fri, 2 Oct 2020 10:46:11 +0800 Subject: [PATCH 01/14] =?UTF-8?q?=E4=BC=98=E5=8C=96=E5=85=A8=E6=96=87?= =?UTF-8?q?=E6=90=9C=E7=B4=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../app/ui/book/read/ReadBookActivity.kt | 53 +++++++++++++------ .../app/ui/book/read/ReadBookViewModel.kt | 1 + .../book/searchContent/SearchListActivity.kt | 7 +-- 3 files changed, 39 insertions(+), 22 deletions(-) diff --git a/app/src/main/java/io/legado/app/ui/book/read/ReadBookActivity.kt b/app/src/main/java/io/legado/app/ui/book/read/ReadBookActivity.kt index 92df11f6a..e26a982ad 100644 --- a/app/src/main/java/io/legado/app/ui/book/read/ReadBookActivity.kt +++ b/app/src/main/java/io/legado/app/ui/book/read/ReadBookActivity.kt @@ -9,7 +9,6 @@ import android.graphics.drawable.ColorDrawable import android.net.Uri import android.os.Bundle import android.os.Handler -import android.util.Log import android.view.* import android.view.ViewGroup.LayoutParams.WRAP_CONTENT import androidx.core.view.get @@ -57,14 +56,16 @@ import io.legado.app.ui.widget.dialog.TextDialog import io.legado.app.utils.* import kotlinx.android.synthetic.main.activity_book_read.* import kotlinx.android.synthetic.main.view_read_menu.* -import kotlinx.coroutines.* +import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.Dispatchers.IO import kotlinx.coroutines.Dispatchers.Main +import kotlinx.coroutines.delay +import kotlinx.coroutines.launch +import kotlinx.coroutines.withContext import org.jetbrains.anko.sdk27.listeners.onClick import org.jetbrains.anko.startActivity import org.jetbrains.anko.startActivityForResult import org.jetbrains.anko.toast -import java.lang.Runnable class ReadBookActivity : VMBaseActivity(R.layout.activity_book_read), View.OnTouchListener, @@ -494,6 +495,7 @@ class ReadBookActivity : VMBaseActivity(R.layout.activity_boo return true } R.id.menu_search_content -> { + viewModel.searchContentQuery = selectedText openSearchActivity(selectedText) return true } @@ -686,7 +688,7 @@ class ReadBookActivity : VMBaseActivity(R.layout.activity_boo startActivityForResult( requestCodeSearchResult, Pair("bookUrl", it.bookUrl), - Pair("searchWord", searchWord) + Pair("searchWord", searchWord ?: viewModel.searchContentQuery) ) } } @@ -771,33 +773,50 @@ class ReadBookActivity : VMBaseActivity(R.layout.activity_boo requestCodeChapterList -> data?.getIntExtra("index", ReadBook.durChapterIndex)?.let { index -> if (index != ReadBook.durChapterIndex) { - val pageIndex = data.getIntExtra("pageIndex", 0) - viewModel.openChapter(index, pageIndex) - } + val pageIndex = data.getIntExtra("pageIndex", 0) + viewModel.openChapter(index, pageIndex) } + } requestCodeSearchResult -> data?.getIntExtra("index", ReadBook.durChapterIndex)?.let { index -> - launch(IO){ + launch(IO) { val indexWithinChapter = data.getIntExtra("indexWithinChapter", 0) - val query = data.getStringExtra("query") + viewModel.searchContentQuery = data.getStringExtra("query") ?: "" viewModel.openChapter(index) // block until load correct chapter and pages var pages = ReadBook.curTextChapter?.pages - while (ReadBook.durChapterIndex != index || pages == null ){ + while (ReadBook.durChapterIndex != index || pages == null) { delay(100L) pages = ReadBook.curTextChapter?.pages } - val positions = ReadBook.searchResultPositions(pages, indexWithinChapter, query!!) - while (ReadBook.durPageIndex != positions[0]){ + val positions = + ReadBook.searchResultPositions( + pages, + indexWithinChapter, + viewModel.searchContentQuery + ) + while (ReadBook.durPageIndex != positions[0]) { delay(100L) ReadBook.skipToPage(positions[0]) } - withContext(Main){ - page_view.curPage.selectStartMoveIndex(0, positions[1], positions[2]) + withContext(Main) { + page_view.curPage.selectStartMoveIndex( + 0, + positions[1], + positions[2] + ) delay(20L) - when (positions[3]){ - 0 -> page_view.curPage.selectEndMoveIndex(0, positions[1], positions[2] + query.length - 1) - 1 -> page_view.curPage.selectEndMoveIndex(0, positions[1] + 1, positions[4]) + when (positions[3]) { + 0 -> page_view.curPage.selectEndMoveIndex( + 0, + positions[1], + positions[2] + viewModel.searchContentQuery.length - 1 + ) + 1 -> page_view.curPage.selectEndMoveIndex( + 0, + positions[1] + 1, + positions[4] + ) //todo: consider change page, jump to scroll position -1 -> page_view.curPage.selectEndMoveIndex(1, 0, positions[4]) } diff --git a/app/src/main/java/io/legado/app/ui/book/read/ReadBookViewModel.kt b/app/src/main/java/io/legado/app/ui/book/read/ReadBookViewModel.kt index b8efe1cee..e2ff19199 100644 --- a/app/src/main/java/io/legado/app/ui/book/read/ReadBookViewModel.kt +++ b/app/src/main/java/io/legado/app/ui/book/read/ReadBookViewModel.kt @@ -23,6 +23,7 @@ import kotlinx.coroutines.withContext class ReadBookViewModel(application: Application) : BaseViewModel(application) { var isInitFinish = false + var searchContentQuery = "" fun initData(intent: Intent) { execute { diff --git a/app/src/main/java/io/legado/app/ui/book/searchContent/SearchListActivity.kt b/app/src/main/java/io/legado/app/ui/book/searchContent/SearchListActivity.kt index 6c01801c3..18966496c 100644 --- a/app/src/main/java/io/legado/app/ui/book/searchContent/SearchListActivity.kt +++ b/app/src/main/java/io/legado/app/ui/book/searchContent/SearchListActivity.kt @@ -140,11 +140,8 @@ class SearchListActivity : VMBaseActivity(R.layout.activity launch(Dispatchers.Main) { App.db.bookChapterDao().getChapterList(viewModel.bookUrl).map { chapter -> val job = async(Dispatchers.IO) { - if (isLocalBook || adapter.cacheFileNames.contains( - BookHelp.formatChapterName( - chapter - ) - ) + if (isLocalBook + || adapter.cacheFileNames.contains(BookHelp.formatChapterName(chapter)) ) { searchResults = searchChapter(newText, chapter) } From 0f6b7dc58736809d48b0c342179e910cd646d56d Mon Sep 17 00:00:00 2001 From: gedoor Date: Fri, 2 Oct 2020 11:00:28 +0800 Subject: [PATCH 02/14] =?UTF-8?q?=E4=BC=98=E5=8C=96=E5=85=A8=E6=96=87?= =?UTF-8?q?=E6=90=9C=E7=B4=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/src/main/AndroidManifest.xml | 2 +- .../app/ui/book/read/ReadBookActivity.kt | 4 +- ...stActivity.kt => SearchContentActivity.kt} | 17 ++++---- ...ListAdapter.kt => SearchContentAdapter.kt} | 2 +- ...ViewModel.kt => SearchContentViewModel.kt} | 2 +- .../main/res/layout/activity_book_search.xml | 41 +++++++++---------- ...h_list.xml => activity_search_content.xml} | 8 +++- 7 files changed, 42 insertions(+), 34 deletions(-) rename app/src/main/java/io/legado/app/ui/book/searchContent/{SearchListActivity.kt => SearchContentActivity.kt} (94%) rename app/src/main/java/io/legado/app/ui/book/searchContent/{SearchListAdapter.kt => SearchContentAdapter.kt} (95%) rename app/src/main/java/io/legado/app/ui/book/searchContent/{SearchListViewModel.kt => SearchContentViewModel.kt} (85%) rename app/src/main/res/layout/{activity_search_list.xml => activity_search_content.xml} (90%) diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index ef2c71ab2..f968d0ba1 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -224,7 +224,7 @@ android:launchMode="singleTop" android:screenOrientation="behind" /> diff --git a/app/src/main/java/io/legado/app/ui/book/read/ReadBookActivity.kt b/app/src/main/java/io/legado/app/ui/book/read/ReadBookActivity.kt index e26a982ad..b3a2fbbcd 100644 --- a/app/src/main/java/io/legado/app/ui/book/read/ReadBookActivity.kt +++ b/app/src/main/java/io/legado/app/ui/book/read/ReadBookActivity.kt @@ -47,7 +47,7 @@ import io.legado.app.ui.book.read.page.ContentTextView import io.legado.app.ui.book.read.page.PageView import io.legado.app.ui.book.read.page.TextPageFactory import io.legado.app.ui.book.read.page.delegate.PageDelegate -import io.legado.app.ui.book.searchContent.SearchListActivity +import io.legado.app.ui.book.searchContent.SearchContentActivity import io.legado.app.ui.book.source.edit.BookSourceEditActivity import io.legado.app.ui.login.SourceLogin import io.legado.app.ui.replacerule.ReplaceRuleActivity @@ -685,7 +685,7 @@ class ReadBookActivity : VMBaseActivity(R.layout.activity_boo */ override fun openSearchActivity(searchWord: String?) { ReadBook.book?.let { - startActivityForResult( + startActivityForResult( requestCodeSearchResult, Pair("bookUrl", it.bookUrl), Pair("searchWord", searchWord ?: viewModel.searchContentQuery) diff --git a/app/src/main/java/io/legado/app/ui/book/searchContent/SearchListActivity.kt b/app/src/main/java/io/legado/app/ui/book/searchContent/SearchContentActivity.kt similarity index 94% rename from app/src/main/java/io/legado/app/ui/book/searchContent/SearchListActivity.kt rename to app/src/main/java/io/legado/app/ui/book/searchContent/SearchContentActivity.kt index 18966496c..3227a9a00 100644 --- a/app/src/main/java/io/legado/app/ui/book/searchContent/SearchListActivity.kt +++ b/app/src/main/java/io/legado/app/ui/book/searchContent/SearchContentActivity.kt @@ -22,19 +22,20 @@ import io.legado.app.ui.widget.recycler.VerticalDivider import io.legado.app.utils.ColorUtils import io.legado.app.utils.getViewModel import io.legado.app.utils.observeEvent -import kotlinx.android.synthetic.main.activity_search_list.* +import kotlinx.android.synthetic.main.activity_search_content.* import kotlinx.android.synthetic.main.view_search.* import kotlinx.coroutines.* import org.jetbrains.anko.sdk27.listeners.onClick -class SearchListActivity : VMBaseActivity(R.layout.activity_search_list), - SearchListAdapter.Callback { +class SearchContentActivity : + VMBaseActivity(R.layout.activity_search_content), + SearchContentAdapter.Callback { - override val viewModel: SearchListViewModel - get() = getViewModel(SearchListViewModel::class.java) + override val viewModel: SearchContentViewModel + get() = getViewModel(SearchContentViewModel::class.java) - lateinit var adapter: SearchListAdapter + lateinit var adapter: SearchContentAdapter private lateinit var mLayoutManager: UpLinearLayoutManager private var searchResultCounts = 0 private var durChapterIndex = 0 @@ -78,7 +79,7 @@ class SearchListActivity : VMBaseActivity(R.layout.activity } private fun initRecyclerView() { - adapter = SearchListAdapter(this, this) + adapter = SearchContentAdapter(this, this) mLayoutManager = UpLinearLayoutManager(this) recycler_view.layoutManager = mLayoutManager recycler_view.addItemDecoration(VerticalDivider(this)) @@ -134,6 +135,7 @@ class SearchListActivity : VMBaseActivity(R.layout.activity if (!newText.isBlank()) { adapter.clearItems() searchResultList.clear() + refresh_progress_bar.isAutoLoading = true searchResultCounts = 0 viewModel.lastQuery = newText var searchResults = listOf() @@ -149,6 +151,7 @@ class SearchListActivity : VMBaseActivity(R.layout.activity job.await() if (searchResults.isNotEmpty()) { searchResultList.addAll(searchResults) + refresh_progress_bar.isAutoLoading = false tv_current_search_info.text = "搜索结果:$searchResultCounts" adapter.addItems(searchResults) searchResults = listOf() diff --git a/app/src/main/java/io/legado/app/ui/book/searchContent/SearchListAdapter.kt b/app/src/main/java/io/legado/app/ui/book/searchContent/SearchContentAdapter.kt similarity index 95% rename from app/src/main/java/io/legado/app/ui/book/searchContent/SearchListAdapter.kt rename to app/src/main/java/io/legado/app/ui/book/searchContent/SearchContentAdapter.kt index d68eb85ca..d64a1a458 100644 --- a/app/src/main/java/io/legado/app/ui/book/searchContent/SearchListAdapter.kt +++ b/app/src/main/java/io/legado/app/ui/book/searchContent/SearchContentAdapter.kt @@ -10,7 +10,7 @@ import io.legado.app.utils.hexString import kotlinx.android.synthetic.main.item_search_list.view.* import org.jetbrains.anko.sdk27.listeners.onClick -class SearchListAdapter(context: Context, val callback: Callback) : +class SearchContentAdapter(context: Context, val callback: Callback) : SimpleRecyclerAdapter(context, R.layout.item_search_list) { val cacheFileNames = hashSetOf() diff --git a/app/src/main/java/io/legado/app/ui/book/searchContent/SearchListViewModel.kt b/app/src/main/java/io/legado/app/ui/book/searchContent/SearchContentViewModel.kt similarity index 85% rename from app/src/main/java/io/legado/app/ui/book/searchContent/SearchListViewModel.kt rename to app/src/main/java/io/legado/app/ui/book/searchContent/SearchContentViewModel.kt index 0b8cd1259..8ce74e1d4 100644 --- a/app/src/main/java/io/legado/app/ui/book/searchContent/SearchListViewModel.kt +++ b/app/src/main/java/io/legado/app/ui/book/searchContent/SearchContentViewModel.kt @@ -6,7 +6,7 @@ import io.legado.app.App import io.legado.app.base.BaseViewModel import io.legado.app.data.entities.Book -class SearchListViewModel(application: Application) : BaseViewModel(application) { +class SearchContentViewModel(application: Application) : BaseViewModel(application) { var bookUrl: String = "" var book: Book? = null var lastQuery: String = "" diff --git a/app/src/main/res/layout/activity_book_search.xml b/app/src/main/res/layout/activity_book_search.xml index 6daf33cd4..244841d15 100644 --- a/app/src/main/res/layout/activity_book_search.xml +++ b/app/src/main/res/layout/activity_book_search.xml @@ -1,20 +1,19 @@ - + android:id="@+id/title_bar" + android:layout_width="match_parent" + android:layout_height="wrap_content" + app:contentInsetStartWithNavigation="0dp" + app:contentLayout="@layout/view_search" + app:layout_constraintTop_toTopOf="parent" + app:title="搜索" /> + android:orientation="vertical" + android:visibility="gone" + app:layout_constraintBottom_toBottomOf="parent" + app:layout_constraintTop_toBottomOf="@id/title_bar"> + + + app:layout_constraintTop_toBottomOf="@id/refresh_progress_bar" /> Date: Fri, 2 Oct 2020 11:29:10 +0800 Subject: [PATCH 03/14] update log --- app/src/main/assets/updateLog.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/app/src/main/assets/updateLog.md b/app/src/main/assets/updateLog.md index 41b2c837f..3622dcc7d 100644 --- a/app/src/main/assets/updateLog.md +++ b/app/src/main/assets/updateLog.md @@ -3,6 +3,10 @@ * 关注合作公众号 **[小说拾遗]()** 获取好看的小说。 - 旧版数据导入教程:先在旧版阅读(2.x)中进行备份,然后在新版阅读(3.x)【我的】->【备份与恢复】,选择【导入旧版本数据】。 +**2020/10/02** +* 优化规则解析 +* 优化正文搜索 + **2020/09/29** * 增加了几个方法用于处理文件 by [Celeter](https://github.com/Celeter) ``` From d60bfcfcfc9995f656852a177887fccada69d619 Mon Sep 17 00:00:00 2001 From: gedoor Date: Fri, 2 Oct 2020 12:02:10 +0800 Subject: [PATCH 04/14] =?UTF-8?q?=E5=8F=8C=E5=87=BB=E5=8F=91=E7=8E=B0?= =?UTF-8?q?=E6=8A=98=E5=8F=A0=E5=8F=91=E7=8E=B0,=E5=86=8D=E6=AC=A1?= =?UTF-8?q?=E5=8F=8C=E5=87=BB=E6=BB=9A=E5=8A=A8=E8=87=B3=E9=A1=B6=E7=AB=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/io/legado/app/ui/main/MainActivity.kt | 10 +++++++++- .../legado/app/ui/main/explore/ExploreAdapter.kt | 16 +++++++++++++++- .../app/ui/main/explore/ExploreFragment.kt | 11 +++++++++++ app/src/main/res/menu/main_bnv.xml | 2 +- 4 files changed, 36 insertions(+), 3 deletions(-) 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 64e005ba2..26879ae87 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 @@ -39,6 +39,7 @@ class MainActivity : VMBaseActivity(R.layout.activity_main), get() = getViewModel(MainViewModel::class.java) private var exitTime: Long = 0 private var bookshelfReselected: Long = 0 + private var exploreReselected: Long = 0 private var pagePosition = 0 private val fragmentMap = hashMapOf() @@ -72,7 +73,7 @@ class MainActivity : VMBaseActivity(R.layout.activity_main), override fun onNavigationItemSelected(item: MenuItem): Boolean { when (item.itemId) { R.id.menu_bookshelf -> view_pager_main.setCurrentItem(0, false) - R.id.menu_find_book -> view_pager_main.setCurrentItem(1, false) + R.id.menu_explore -> view_pager_main.setCurrentItem(1, false) R.id.menu_rss -> view_pager_main.setCurrentItem(2, false) R.id.menu_my_config -> view_pager_main.setCurrentItem(3, false) } @@ -88,6 +89,13 @@ class MainActivity : VMBaseActivity(R.layout.activity_main), (fragmentMap[0] as? BookshelfFragment)?.gotoTop() } } + R.id.menu_explore -> { + if (System.currentTimeMillis() - exploreReselected > 300) { + exploreReselected = System.currentTimeMillis() + } else { + (fragmentMap[1] as? ExploreFragment)?.compressExplore() + } + } } } 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/ExploreAdapter.kt index 0fdfa373f..137398b71 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/ExploreAdapter.kt @@ -11,7 +11,10 @@ import io.legado.app.base.adapter.SimpleRecyclerAdapter import io.legado.app.data.entities.BookSource import io.legado.app.help.coroutine.Coroutine import io.legado.app.lib.theme.accentColor -import io.legado.app.utils.* +import io.legado.app.utils.ACache +import io.legado.app.utils.dp +import io.legado.app.utils.gone +import io.legado.app.utils.visible import kotlinx.android.synthetic.main.item_fillet_text.view.* import kotlinx.android.synthetic.main.item_find_book.view.* import kotlinx.coroutines.CoroutineScope @@ -97,6 +100,17 @@ class ExploreAdapter(context: Context, private val scope: CoroutineScope, val ca } } + fun compressExplore(): Boolean { + return if (exIndex < 0) { + false + } else { + val oldExIndex = exIndex + exIndex = -1 + notifyItemChanged(oldExIndex) + true + } + } + private fun showMenu(view: View, position: Int): Boolean { val source = getItem(position) ?: return true val popupMenu = PopupMenu(context, view) 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/ExploreFragment.kt index 6aa870ee7..bceb905d1 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/ExploreFragment.kt @@ -15,6 +15,7 @@ import io.legado.app.R import io.legado.app.base.VMBaseFragment import io.legado.app.constant.AppPattern import io.legado.app.data.entities.BookSource +import io.legado.app.help.AppConfig import io.legado.app.lib.theme.ATH import io.legado.app.lib.theme.primaryTextColor import io.legado.app.ui.book.explore.ExploreShowActivity @@ -154,4 +155,14 @@ class ExploreFragment : VMBaseFragment(R.layout.fragment_find_ viewModel.topSource(source) } + fun compressExplore() { + if (!adapter.compressExplore()) { + if (AppConfig.isEInkMode) { + rv_find.scrollToPosition(0) + } else { + rv_find.smoothScrollToPosition(0) + } + } + } + } \ No newline at end of file diff --git a/app/src/main/res/menu/main_bnv.xml b/app/src/main/res/menu/main_bnv.xml index 9197bec7b..7fcb272c9 100644 --- a/app/src/main/res/menu/main_bnv.xml +++ b/app/src/main/res/menu/main_bnv.xml @@ -8,7 +8,7 @@ android:icon="@drawable/ic_bottom_books" android:title="@string/bookshelf" /> Date: Fri, 2 Oct 2020 12:50:02 +0800 Subject: [PATCH 05/14] =?UTF-8?q?=E7=BF=BB=E9=A1=B5=E5=8A=A8=E7=94=BB?= =?UTF-8?q?=E8=B7=9F=E9=9A=8F=E8=83=8C=E6=99=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/io/legado/app/help/ReadBookConfig.kt | 29 +++++++++++++++---- .../io/legado/app/help/storage/Restore.kt | 2 -- .../ui/book/read/config/ReadStyleDialog.kt | 16 +++++----- app/src/main/res/values-zh-rHK/strings.xml | 1 - app/src/main/res/values-zh-rTW/strings.xml | 1 - app/src/main/res/values-zh/strings.xml | 1 - app/src/main/res/values/strings.xml | 1 - 7 files changed, 30 insertions(+), 21 deletions(-) diff --git a/app/src/main/java/io/legado/app/help/ReadBookConfig.kt b/app/src/main/java/io/legado/app/help/ReadBookConfig.kt index 5cceab22d..118f5b6ca 100644 --- a/app/src/main/java/io/legado/app/help/ReadBookConfig.kt +++ b/app/src/main/java/io/legado/app/help/ReadBookConfig.kt @@ -158,12 +158,6 @@ object ReadBookConfig { App.INSTANCE.putPrefBoolean(PreferKey.shareLayout, value) } } - var pageAnim: Int - get() = if (AppConfig.isEInkMode) -1 else App.INSTANCE.getPrefInt(PreferKey.pageAnim) - set(value) { - App.INSTANCE.putPrefInt(PreferKey.pageAnim, value) - isScroll = pageAnim == 3 - } var isScroll = pageAnim == 3 val clickTurnPage get() = App.INSTANCE.getPrefBoolean(PreferKey.clickTurnPage, true) val textFullJustify get() = App.INSTANCE.getPrefBoolean(PreferKey.textFullJustify, true) @@ -182,6 +176,13 @@ object ReadBookConfig { val config get() = if (shareLayout) shareConfig else durConfig + var pageAnim: Int + get() = config.pageAnim() + set(value) { + config.setPageAnim(value) + isScroll = pageAnim == 3 + } + var textFont: String get() = config.textFont set(value) { @@ -379,6 +380,8 @@ object ReadBookConfig { private var textColor: String = "#3E3D3B",//白天文字颜色 private var textColorNight: String = "#ADADAD",//夜间文字颜色 private var textColorEInk: String = "#000000", + private var pageAnim: Int = 0, + private var pageAnimEInk: Int = 3, var textFont: String = "",//字体 var textBold: Int = 0,//是否粗体字 0:正常, 1:粗体, 2:细体 var textSize: Int = 20,//文字大小 @@ -454,6 +457,20 @@ object ReadBookConfig { } } + fun setPageAnim(anim: Int) { + when { + AppConfig.isEInkMode -> pageAnimEInk = anim + else -> pageAnim = anim + } + } + + fun pageAnim(): Int { + return when { + AppConfig.isEInkMode -> pageAnimEInk + else -> pageAnim + } + } + fun textColor(): Int { return when { AppConfig.isEInkMode -> Color.parseColor(textColorEInk) diff --git a/app/src/main/java/io/legado/app/help/storage/Restore.kt b/app/src/main/java/io/legado/app/help/storage/Restore.kt index 18880822e..b98a248d1 100644 --- a/app/src/main/java/io/legado/app/help/storage/Restore.kt +++ b/app/src/main/java/io/legado/app/help/storage/Restore.kt @@ -61,7 +61,6 @@ object Restore { private val readPrefKeys = arrayOf( PreferKey.readStyleSelect, PreferKey.shareLayout, - PreferKey.pageAnim, PreferKey.hideStatusBar, PreferKey.hideNavigationBar, PreferKey.bodyIndent, @@ -215,7 +214,6 @@ object Restore { ReadBookConfig.apply { styleSelect = App.INSTANCE.getPrefInt(PreferKey.readStyleSelect) shareLayout = App.INSTANCE.getPrefBoolean(PreferKey.shareLayout) - pageAnim = App.INSTANCE.getPrefInt(PreferKey.pageAnim) hideStatusBar = App.INSTANCE.getPrefBoolean(PreferKey.hideStatusBar) hideNavigationBar = App.INSTANCE.getPrefBoolean(PreferKey.hideNavigationBar) bodyIndentCount = App.INSTANCE.getPrefInt(PreferKey.bodyIndent, 2) diff --git a/app/src/main/java/io/legado/app/ui/book/read/config/ReadStyleDialog.kt b/app/src/main/java/io/legado/app/ui/book/read/config/ReadStyleDialog.kt index 12201ae29..a791e6939 100644 --- a/app/src/main/java/io/legado/app/ui/book/read/config/ReadStyleDialog.kt +++ b/app/src/main/java/io/legado/app/ui/book/read/config/ReadStyleDialog.kt @@ -104,12 +104,7 @@ class ReadStyleDialog : BaseDialogFragment(), FontSelectDialog.CallBack { private fun initData() { cb_share_layout.isChecked = ReadBookConfig.shareLayout - ReadBookConfig.pageAnim.let { - if (it >= 0 && it < rg_page_anim.childCount) { - rg_page_anim.check(rg_page_anim[it].id) - } - } - upStyle() + upView() styleAdapter.setItems(ReadBookConfig.configList) } @@ -149,7 +144,7 @@ class ReadStyleDialog : BaseDialogFragment(), FontSelectDialog.CallBack { cb_share_layout.onCheckedChangeListener = { checkBox, isChecked -> if (checkBox.isPressed) { ReadBookConfig.shareLayout = isChecked - upStyle() + upView() postEvent(EventBus.UP_CONFIG, true) } } @@ -206,7 +201,7 @@ class ReadStyleDialog : BaseDialogFragment(), FontSelectDialog.CallBack { if (index != oldIndex) { ReadBookConfig.styleSelect = index ReadBookConfig.upBg() - upStyle() + upView() styleAdapter.notifyItemChanged(oldIndex) styleAdapter.notifyItemChanged(index) postEvent(EventBus.UP_CONFIG, true) @@ -220,8 +215,11 @@ class ReadStyleDialog : BaseDialogFragment(), FontSelectDialog.CallBack { return true } - private fun upStyle() { + private fun upView() { ReadBookConfig.let { + if (it.pageAnim >= 0 && it.pageAnim < rg_page_anim.childCount) { + rg_page_anim.check(rg_page_anim[it.pageAnim].id) + } dsb_text_size.progress = it.textSize - 5 dsb_text_letter_spacing.progress = (it.letterSpacing * 100).toInt() + 50 dsb_line_size.progress = it.lineSpacingExtra diff --git a/app/src/main/res/values-zh-rHK/strings.xml b/app/src/main/res/values-zh-rHK/strings.xml index de31599a4..7fb96aa3c 100644 --- a/app/src/main/res/values-zh-rHK/strings.xml +++ b/app/src/main/res/values-zh-rHK/strings.xml @@ -733,7 +733,6 @@ 替换规则(replaceRegex) 分組名稱 備註內容 - E-Ink模式下只有白纸黑字,不显示其它背景 默认启用替换净化 新加入书架的书是否启用替换净化 选择恢复文件 diff --git a/app/src/main/res/values-zh-rTW/strings.xml b/app/src/main/res/values-zh-rTW/strings.xml index 0d44a8fae..fe8f2752e 100644 --- a/app/src/main/res/values-zh-rTW/strings.xml +++ b/app/src/main/res/values-zh-rTW/strings.xml @@ -733,7 +733,6 @@ 取代規則(replaceRegex) 分組名稱 備註內容 - E-Ink模式下只有白紙黑字,不顯示其它背景 預設啟用取代淨化 新加入書架的書是否啟用取代淨化 選擇復原文件 diff --git a/app/src/main/res/values-zh/strings.xml b/app/src/main/res/values-zh/strings.xml index e3cc6c436..d9a62c811 100644 --- a/app/src/main/res/values-zh/strings.xml +++ b/app/src/main/res/values-zh/strings.xml @@ -738,7 +738,6 @@ 替换规则(replaceRegex) 分组名称 备注内容 - E-Ink模式下只有白纸黑字,不显示其它背景 默认启用替换净化 新加入书架的书是否启用替换净化 选择恢复文件 diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index b7fe8a37f..7e59bf3cf 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -739,7 +739,6 @@ Reading interface settings Group name Remarks section - Only white page black text in E-Ink mode Enable replace rule by default For new added books Select restore file From 0370e1cc7d1ef2b66400f1086dc36d0a3339d8d6 Mon Sep 17 00:00:00 2001 From: gedoor Date: Fri, 2 Oct 2020 12:50:36 +0800 Subject: [PATCH 06/14] =?UTF-8?q?=E7=BF=BB=E9=A1=B5=E5=8A=A8=E7=94=BB?= =?UTF-8?q?=E8=B7=9F=E9=9A=8F=E8=83=8C=E6=99=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/src/main/assets/updateLog.md | 1 + 1 file changed, 1 insertion(+) diff --git a/app/src/main/assets/updateLog.md b/app/src/main/assets/updateLog.md index 3622dcc7d..f69f89800 100644 --- a/app/src/main/assets/updateLog.md +++ b/app/src/main/assets/updateLog.md @@ -6,6 +6,7 @@ **2020/10/02** * 优化规则解析 * 优化正文搜索 +* 翻页动画跟随背景 **2020/09/29** * 增加了几个方法用于处理文件 by [Celeter](https://github.com/Celeter) From 09c0a4e8193bb8a8f30781863d8df07cbb8b644e Mon Sep 17 00:00:00 2001 From: david082321 <7046617+david082321@users.noreply.github.com> Date: Fri, 2 Oct 2020 15:32:01 +0800 Subject: [PATCH 07/14] Update strings.xml --- app/src/debug/res/values-zh-rTW/strings.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/src/debug/res/values-zh-rTW/strings.xml b/app/src/debug/res/values-zh-rTW/strings.xml index 07b0a5dbe..a68f05319 100644 --- a/app/src/debug/res/values-zh-rTW/strings.xml +++ b/app/src/debug/res/values-zh-rTW/strings.xml @@ -1,5 +1,5 @@ 閲讀.D - 閲讀·D·搜索 - \ No newline at end of file + 閲讀·D·搜尋 + From 42c2a86518fe34239c79bea7e8e236ba4584125e Mon Sep 17 00:00:00 2001 From: david082321 <7046617+david082321@users.noreply.github.com> Date: Fri, 2 Oct 2020 15:34:24 +0800 Subject: [PATCH 08/14] Create strings.xml --- app/src/google/res/values-zh-rTW/strings.xml | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 app/src/google/res/values-zh-rTW/strings.xml diff --git a/app/src/google/res/values-zh-rTW/strings.xml b/app/src/google/res/values-zh-rTW/strings.xml new file mode 100644 index 000000000..35770fc68 --- /dev/null +++ b/app/src/google/res/values-zh-rTW/strings.xml @@ -0,0 +1,6 @@ + + + + 閱讀Pro + + From 3fe8a2599a17862560b9bceb9a8974dc110cf5d4 Mon Sep 17 00:00:00 2001 From: david082321 <7046617+david082321@users.noreply.github.com> Date: Fri, 2 Oct 2020 15:42:59 +0800 Subject: [PATCH 09/14] Update strings.xml --- app/src/main/res/values-zh-rTW/strings.xml | 40 +++++++++++----------- 1 file changed, 20 insertions(+), 20 deletions(-) diff --git a/app/src/main/res/values-zh-rTW/strings.xml b/app/src/main/res/values-zh-rTW/strings.xml index fe8f2752e..2cfe6ff7a 100644 --- a/app/src/main/res/values-zh-rTW/strings.xml +++ b/app/src/main/res/values-zh-rTW/strings.xml @@ -10,8 +10,8 @@ 匯入閱讀資料 建立子資料夾 建立legado資料夾作為備份資料夾 - 離線緩存書籍備份 - 導出本地同時備份到legado文件夾下exports目錄 + 離線快取書籍備份 + 匯出本機同時備份到legado資料夾下exports目錄 備份路徑 匯入舊版資料 匯入Github資料 @@ -56,7 +56,7 @@ 書架布局 檢視 書城 - 添加本機 + 新增本機 書源 書源管理 建立/匯入/編輯/管理書源 @@ -85,9 +85,9 @@ 瀏覽器寫源,看書 web編輯書源 http://%1$s:%2$d - 離線緩存 - 離線緩存 - 緩存選擇的章節到本機 + 離線快取 + 離線快取 + 快取選擇的章節到本機 換源 \u3000\u3000這是一款使用Kotlin全新開發的開源的閱讀軟體,歡迎您的加入。關注公眾號[legado-top]! @@ -97,7 +97,7 @@ Version %s 後臺校驗書源 - 打開后可以在校驗書源時自由操作 + 打開後可以在校驗書源時自由操作 自動重新整理 打開軟體時自動更新書籍 自動下載最新章節 @@ -159,8 +159,8 @@ 無法打開 分享失敗 無章節 - 添加網址 - 添加書籍網址 + 新增網址 + 新增書籍網址 背景 作者 作者: %s @@ -173,7 +173,7 @@ 禁用書源 建立書源 建立訂閱源 - 添加書籍 + 新增書籍 掃描 複製源 貼上源 @@ -185,7 +185,7 @@ 分享 軟體分享 跟隨系統 - 添加 + 新增 匯入書源 本機匯入 網路匯入 @@ -756,16 +756,16 @@ 總閱讀時間 全不選 刪除所有 - 导入 - 导出 - 保存主题配置 - 保存白天主题配置以共调用和分享 - 保存夜间主题配置以共调用和分享 - 主题列表 - 使用保存主题,导入,分享主题 - 切換默認主題 + 匯入 + 匯出 + 儲存主題配置 + 儲存白天主題配置以供調用和分享 + 儲存夜間主題配置以供調用和分享 + 主題列表 + 使用儲存主題,匯入,分享主題 + 切換預設主題 分享選中書源 時間排序 - 全文搜索 + 全文搜尋 From 268d2dbb2cfcdd412090ba26503af91bf264f314 Mon Sep 17 00:00:00 2001 From: gedoor Date: Fri, 2 Oct 2020 16:12:21 +0800 Subject: [PATCH 10/14] update log --- app/src/main/assets/updateLog.md | 1 + 1 file changed, 1 insertion(+) diff --git a/app/src/main/assets/updateLog.md b/app/src/main/assets/updateLog.md index f69f89800..80fd42652 100644 --- a/app/src/main/assets/updateLog.md +++ b/app/src/main/assets/updateLog.md @@ -7,6 +7,7 @@ * 优化规则解析 * 优化正文搜索 * 翻页动画跟随背景 +* 双击发现折叠发现,再次双击滚动至顶端 **2020/09/29** * 增加了几个方法用于处理文件 by [Celeter](https://github.com/Celeter) From 26a6128fdb443dc9500d1d05515959db2887365c Mon Sep 17 00:00:00 2001 From: gedoor Date: Fri, 2 Oct 2020 16:22:05 +0800 Subject: [PATCH 11/14] update log --- app/src/main/res/values/strings.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 7e59bf3cf..39b957bf1 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -323,8 +323,8 @@ Auto scroll Stop Auto scroll Auto scroll speed - Book infomation - Edit book infomation + Book information + Edit book information Use Bookshelf as start page Auto jump to Recent list Replacement object. Book name or source url is available From 113c1630ee019c077ec206523143e8ab8b9ceb64 Mon Sep 17 00:00:00 2001 From: gedoor Date: Fri, 2 Oct 2020 16:46:44 +0800 Subject: [PATCH 12/14] =?UTF-8?q?=E4=BC=98=E5=8C=96=E8=A7=A3=E6=9E=90?= =?UTF-8?q?=E8=A7=84=E5=88=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/io/legado/app/model/analyzeRule/AnalyzeRule.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/java/io/legado/app/model/analyzeRule/AnalyzeRule.kt b/app/src/main/java/io/legado/app/model/analyzeRule/AnalyzeRule.kt index 8cd9937f5..4d17aa16d 100644 --- a/app/src/main/java/io/legado/app/model/analyzeRule/AnalyzeRule.kt +++ b/app/src/main/java/io/legado/app/model/analyzeRule/AnalyzeRule.kt @@ -456,7 +456,7 @@ class AnalyzeRule(var book: BaseBook? = null) : JsExtensions { while (evalMatcher.find()) { if (evalMatcher.start() > start) { tmp = rule.substring(start, evalMatcher.start()) - if (mode != Mode.Js && mode != Mode.Json && mode != Mode.Regex + if (mode != Mode.Js && mode != Mode.Regex && start == 0 && !tmp.contains("##") ) { mode = Mode.Regex From 72f1b4f6fb18a17a9dcd2f9f223f12d7654f3e8a Mon Sep 17 00:00:00 2001 From: gedoor Date: Fri, 2 Oct 2020 16:54:54 +0800 Subject: [PATCH 13/14] =?UTF-8?q?=E4=BF=AE=E5=A4=8Dbug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/io/legado/app/ui/book/group/GroupSelectDialog.kt | 1 - 1 file changed, 1 deletion(-) diff --git a/app/src/main/java/io/legado/app/ui/book/group/GroupSelectDialog.kt b/app/src/main/java/io/legado/app/ui/book/group/GroupSelectDialog.kt index bee66bcc6..91732b149 100644 --- a/app/src/main/java/io/legado/app/ui/book/group/GroupSelectDialog.kt +++ b/app/src/main/java/io/legado/app/ui/book/group/GroupSelectDialog.kt @@ -34,7 +34,6 @@ import io.legado.app.utils.getViewModel import io.legado.app.utils.requestInputMethod import kotlinx.android.synthetic.main.dialog_book_group_picker.* import kotlinx.android.synthetic.main.dialog_edit_text.view.* -import kotlinx.android.synthetic.main.dialog_recycler_view.recycler_view import kotlinx.android.synthetic.main.dialog_recycler_view.tool_bar import kotlinx.android.synthetic.main.item_group_select.view.* import org.jetbrains.anko.sdk27.listeners.onClick From 7c6fab2fb9a0b0819516546e92cfac82b3c86a59 Mon Sep 17 00:00:00 2001 From: gedoor Date: Fri, 2 Oct 2020 16:55:29 +0800 Subject: [PATCH 14/14] =?UTF-8?q?=E4=BF=AE=E5=A4=8Dbug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/src/main/assets/updateLog.md | 1 + 1 file changed, 1 insertion(+) diff --git a/app/src/main/assets/updateLog.md b/app/src/main/assets/updateLog.md index 80fd42652..51ee4565a 100644 --- a/app/src/main/assets/updateLog.md +++ b/app/src/main/assets/updateLog.md @@ -8,6 +8,7 @@ * 优化正文搜索 * 翻页动画跟随背景 * 双击发现折叠发现,再次双击滚动至顶端 +* 修复bug **2020/09/29** * 增加了几个方法用于处理文件 by [Celeter](https://github.com/Celeter)