pull/1502/head
gedoor 3 years ago
parent a78ad09034
commit b5670d8339
  1. 2
      app/src/main/java/io/legado/app/ui/book/read/ReadBookActivity.kt
  2. 28
      app/src/main/java/io/legado/app/ui/book/read/SearchMenu.kt
  3. 1
      app/src/main/java/io/legado/app/ui/book/searchContent/SearchContentAdapter.kt
  4. 1
      app/src/main/java/io/legado/app/ui/book/searchContent/SearchContentViewModel.kt

@ -99,7 +99,7 @@ class ReadBookActivity : BaseReadBookActivity(),
private val searchContentActivity = registerForActivityResult(ActivityResultContracts.StartActivityForResult()) { private val searchContentActivity = registerForActivityResult(ActivityResultContracts.StartActivityForResult()) {
it ?: return@registerForActivityResult it ?: return@registerForActivityResult
it.data?.let { data -> it.data?.let { data ->
data.getIntExtra("chapterIndex", ReadBook.durChapterIndex).let { _ -> data.getIntExtra("chapterIndex", ReadBook.durChapterIndex).let {
viewModel.searchContentQuery = data.getStringExtra("query") ?: "" viewModel.searchContentQuery = data.getStringExtra("query") ?: ""
val searchResultIndex = data.getIntExtra("searchResultIndex", 0) val searchResultIndex = data.getIntExtra("searchResultIndex", 0)
isShowingSearchResult = true isShowingSearchResult = true

@ -29,12 +29,15 @@ class SearchMenu @JvmOverloads constructor(
private val callBack: CallBack get() = activity as CallBack private val callBack: CallBack get() = activity as CallBack
private val binding = ViewSearchMenuBinding.inflate(LayoutInflater.from(context), this, true) private val binding = ViewSearchMenuBinding.inflate(LayoutInflater.from(context), this, true)
private val menuBottomIn: Animation = AnimationUtilsSupport.loadAnimation(context, R.anim.anim_readbook_bottom_in) private val menuBottomIn: Animation =
private val menuBottomOut: Animation = AnimationUtilsSupport.loadAnimation(context, R.anim.anim_readbook_bottom_out) AnimationUtilsSupport.loadAnimation(context, R.anim.anim_readbook_bottom_in)
private val menuBottomOut: Animation =
AnimationUtilsSupport.loadAnimation(context, R.anim.anim_readbook_bottom_out)
private val bgColor: Int = context.bottomBackground private val bgColor: Int = context.bottomBackground
private val textColor: Int = context.getPrimaryTextColor(ColorUtils.isColorLight(bgColor)) private val textColor: Int = context.getPrimaryTextColor(ColorUtils.isColorLight(bgColor))
private val bottomBackgroundList: ColorStateList = private val bottomBackgroundList: ColorStateList =
Selector.colorBuild().setDefaultColor(bgColor).setPressedColor(ColorUtils.darkenColor(bgColor)).create() Selector.colorBuild().setDefaultColor(bgColor)
.setPressedColor(ColorUtils.darkenColor(bgColor)).create()
private var onMenuOutEnd: (() -> Unit)? = null private var onMenuOutEnd: (() -> Unit)? = null
private val searchResultList: MutableList<SearchResult> = mutableListOf() private val searchResultList: MutableList<SearchResult> = mutableListOf()
@ -104,18 +107,20 @@ class SearchMenu @JvmOverloads constructor(
} }
} }
@SuppressLint("SetTextI18n")
fun updateSearchInfo() { fun updateSearchInfo() {
ReadBook.curTextChapter?.let { ReadBook.curTextChapter?.let {
binding.tvCurrentSearchInfo.text = context.getString(R.string.search_content_size) + ": ${searchResultList.size} / 当前章节: ${it.title}" binding.tvCurrentSearchInfo.text =
"""${context.getString(R.string.search_content_size)}: ${searchResultList.size} / 当前章节: ${it.title}"""
} }
} }
fun updateSearchResultIndex(updateIndex: Int) { fun updateSearchResultIndex(updateIndex: Int) {
lastSearchResultIndex = currentSearchResultIndex lastSearchResultIndex = currentSearchResultIndex
currentSearchResultIndex = when { currentSearchResultIndex = when {
updateIndex < 0 -> 0 updateIndex < 0 -> 0
updateIndex >= searchResultList.size -> searchResultList.size - 1 updateIndex >= searchResultList.size -> searchResultList.size - 1
else -> updateIndex else -> updateIndex
} }
} }
@ -143,13 +148,6 @@ class SearchMenu @JvmOverloads constructor(
} }
} }
//设置
// llSetting.setOnClickListener {
// runMenuOut {
// callBack.showSearchSetting()
// }
// }
fabLeft.setOnClickListener { fabLeft.setOnClickListener {
updateSearchResultIndex(currentSearchResultIndex - 1) updateSearchResultIndex(currentSearchResultIndex - 1)
callBack.navigateToSearch(searchResultList[currentSearchResultIndex]) callBack.navigateToSearch(searchResultList[currentSearchResultIndex])
@ -192,8 +190,8 @@ class SearchMenu @JvmOverloads constructor(
root.padding = 0 root.padding = 0
when (activity?.navigationBarGravity) { when (activity?.navigationBarGravity) {
Gravity.BOTTOM -> root.bottomPadding = navigationBarHeight Gravity.BOTTOM -> root.bottomPadding = navigationBarHeight
Gravity.LEFT -> root.leftPadding = navigationBarHeight Gravity.LEFT -> root.leftPadding = navigationBarHeight
Gravity.RIGHT -> root.rightPadding = navigationBarHeight Gravity.RIGHT -> root.rightPadding = navigationBarHeight
} }
} }
callBack.upSystemUiVisibility() callBack.upSystemUiVisibility()

@ -14,7 +14,6 @@ import io.legado.app.utils.hexString
class SearchContentAdapter(context: Context, val callback: Callback) : class SearchContentAdapter(context: Context, val callback: Callback) :
RecyclerAdapter<SearchResult, ItemSearchListBinding>(context) { RecyclerAdapter<SearchResult, ItemSearchListBinding>(context) {
val cacheFileNames = hashSetOf<String>()
val textColor = context.getCompatColor(R.color.primaryText).hexString.substring(2) val textColor = context.getCompatColor(R.color.primaryText).hexString.substring(2)
val accentColor = context.accentColor.hexString.substring(2) val accentColor = context.accentColor.hexString.substring(2)

@ -21,7 +21,6 @@ class SearchContentViewModel(application: Application) : BaseViewModel(applicati
var searchResultCounts = 0 var searchResultCounts = 0
val cacheChapterNames = hashSetOf<String>() val cacheChapterNames = hashSetOf<String>()
val searchResultList: MutableList<SearchResult> = mutableListOf() val searchResultList: MutableList<SearchResult> = mutableListOf()
var selectedIndex = 0
fun initBook(bookUrl: String, success: () -> Unit) { fun initBook(bookUrl: String, success: () -> Unit) {
this.bookUrl = bookUrl this.bookUrl = bookUrl

Loading…
Cancel
Save