更新界面
This commit is contained in:
1 parent
cd4caed170
commit
3908ff7cf2
76 files changed
+1586
-1393
No files matched your search
@@ -40,14 +40,14 @@ class BookmarkDialog() : BaseBottomSheetDialogFragment(R.layout.dialog_bookmark)
|
||||
return
|
||||
}
|
||||
|
||||
//@Suppress("DEPRECATION")
|
||||
@Suppress("DEPRECATION")
|
||||
val bookmark = arguments.getParcelable<Bookmark>("bookmark")
|
||||
bookmark ?: let {
|
||||
dismiss()
|
||||
return
|
||||
}
|
||||
val editPos = arguments.getInt("editPos", -1)
|
||||
binding.btnDelete.visible(editPos >= 0) // 替换 tvFooterLeft
|
||||
binding.btnDelete.visible(editPos >= 0)
|
||||
|
||||
binding.run {
|
||||
tvChapterName.text = bookmark.chapterName
|
||||
|
||||
@@ -59,7 +59,7 @@ class ChangeCoverDialog() : BaseDialogFragment(R.layout.dialog_change_cover),
|
||||
|
||||
private fun initMenu() {
|
||||
binding.toolBar.inflateMenu(R.menu.change_cover)
|
||||
binding.toolBar.menu.applyTint(requireContext())
|
||||
//binding.toolBar.menu.applyTint(requireContext())
|
||||
binding.toolBar.setOnMenuItemClickListener(this)
|
||||
}
|
||||
|
||||
@@ -94,7 +94,7 @@ class ChangeCoverDialog() : BaseDialogFragment(R.layout.dialog_change_cover),
|
||||
item.setTitle(R.string.refresh)
|
||||
}
|
||||
}
|
||||
binding.toolBar.menu.applyTint(requireContext())
|
||||
//binding.toolBar.menu.applyTint(requireContext())
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
+1
-1
@@ -140,7 +140,7 @@ class ChangeChapterSourceDialog() : BaseDialogFragment(R.layout.dialog_chapter_c
|
||||
|
||||
private fun initMenu() {
|
||||
binding.toolBar.inflateMenu(R.menu.change_source)
|
||||
binding.toolBar.menu.applyTint(requireContext())
|
||||
//binding.toolBar.menu.applyTint(requireContext())
|
||||
binding.toolBar.setOnMenuItemClickListener(this)
|
||||
binding.toolBar.menu.findItem(R.id.menu_check_author)
|
||||
?.isChecked = AppConfig.changeSourceCheckAuthor
|
||||
|
||||
@@ -86,7 +86,7 @@ class GroupManageDialog : BaseBottomSheetDialogFragment(R.layout.dialog_recycler
|
||||
private fun initMenu() {
|
||||
binding.toolBar.setOnMenuItemClickListener(this)
|
||||
binding.toolBar.inflateMenu(R.menu.book_group_manage)
|
||||
binding.toolBar.menu.applyTint(requireContext())
|
||||
//binding.toolBar.menu.applyTint(requireContext())
|
||||
}
|
||||
|
||||
override fun onMenuItemClick(item: MenuItem?): Boolean {
|
||||
|
||||
@@ -66,7 +66,7 @@ class GroupSelectDialog() : BaseBottomSheetDialogFragment(R.layout.dialog_book_g
|
||||
private fun initView() {
|
||||
binding.toolBar.title = getString(R.string.group_select)
|
||||
binding.toolBar.inflateMenu(R.menu.book_group_manage)
|
||||
binding.toolBar.menu.applyTint(requireContext())
|
||||
//binding.toolBar.menu.applyTint(requireContext())
|
||||
binding.toolBar.setOnMenuItemClickListener(this)
|
||||
binding.recyclerView.layoutManager = LinearLayoutManager(requireContext())
|
||||
binding.recyclerView.addItemDecoration(VerticalDivider(requireContext()))
|
||||
|
||||
@@ -46,7 +46,7 @@ class ServerConfigDialog() : BaseDialogFragment(R.layout.dialog_webdav_server, t
|
||||
override fun onFragmentCreated(view: View, savedInstanceState: Bundle?) {
|
||||
//inding.toolBar.setBackgroundColor(primaryColor)
|
||||
binding.toolBar.inflateMenu(R.menu.server_config)
|
||||
binding.toolBar.menu.applyTint(requireContext())
|
||||
//binding.toolBar.menu.applyTint(requireContext())
|
||||
binding.toolBar.setOnMenuItemClickListener(this)
|
||||
viewModel.init(arguments?.getLong("id")) {
|
||||
upConfigView(viewModel.mServer)
|
||||
|
||||
@@ -2,19 +2,28 @@ package io.legato.kazusa.ui.book.info
|
||||
|
||||
import android.annotation.SuppressLint
|
||||
import android.content.Intent
|
||||
import android.graphics.Bitmap
|
||||
import android.graphics.Color
|
||||
import android.graphics.RenderEffect
|
||||
import android.graphics.Shader
|
||||
import android.graphics.drawable.BitmapDrawable
|
||||
import android.graphics.drawable.Drawable
|
||||
import android.net.Uri
|
||||
import android.os.Build
|
||||
import android.os.Bundle
|
||||
import android.view.Menu
|
||||
import android.view.MenuItem
|
||||
import android.view.View
|
||||
import android.widget.CheckBox
|
||||
import android.widget.LinearLayout
|
||||
import androidx.activity.result.contract.ActivityResultContracts
|
||||
import androidx.activity.viewModels
|
||||
import androidx.core.content.ContextCompat
|
||||
import androidx.lifecycle.lifecycleScope
|
||||
import androidx.palette.graphics.Palette
|
||||
import com.google.android.material.button.MaterialButton
|
||||
import com.google.android.material.color.utilities.Hct
|
||||
import com.google.android.material.color.utilities.SchemeTonalSpot
|
||||
import io.legato.kazusa.R
|
||||
import io.legato.kazusa.base.VMBaseActivity
|
||||
import io.legato.kazusa.constant.BookType
|
||||
@@ -75,6 +84,7 @@ import io.legato.kazusa.utils.startActivity
|
||||
import io.legato.kazusa.utils.toastOnUi
|
||||
import io.legato.kazusa.utils.viewbindingdelegate.viewBinding
|
||||
import io.legato.kazusa.utils.visible
|
||||
import kotlinx.coroutines.Dispatchers
|
||||
import kotlinx.coroutines.Dispatchers.IO
|
||||
import kotlinx.coroutines.launch
|
||||
import kotlinx.coroutines.withContext
|
||||
@@ -161,12 +171,10 @@ class BookInfoActivity :
|
||||
// binding.llInfo.setBackgroundColor(backgroundColor)
|
||||
// binding.flAction.setBackgroundColor(bottomBackground)
|
||||
//binding.flAction.applyNavigationBarPadding()
|
||||
binding.btnShelf?.text = getString(R.string.remove_from_bookshelf)
|
||||
binding.btnShelf.text = getString(R.string.remove_from_bookshelf)
|
||||
binding.tvToc.text = getString(R.string.toc_s, getString(R.string.loading))
|
||||
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N_MR1) {
|
||||
binding.tvDetail?.let { it.revealOnFocusHint = false }
|
||||
}
|
||||
binding.tvDetail.revealOnFocusHint = false
|
||||
|
||||
viewModel.bookData.observe(this) { showBook(it) }
|
||||
viewModel.chapterListData.observe(this) { upLoading(false, it) }
|
||||
@@ -340,8 +348,8 @@ class BookInfoActivity :
|
||||
tvAuthor.text = getString(R.string.author_show, book.getRealAuthor())
|
||||
tvOrigin.text = getString(R.string.origin_show, book.originName)
|
||||
tvLasted.text = getString(R.string.lasted_show, book.latestChapterTitle)
|
||||
tvDetail?.let { it.text = book.getDisplayIntro() }
|
||||
llToc?.visible(!book.isWebFile)
|
||||
tvDetail.let { it.text = book.getDisplayIntro() }
|
||||
llToc.visible(!book.isWebFile)
|
||||
upTvBookshelf()
|
||||
upKinds(book)
|
||||
upGroup(book.group)
|
||||
@@ -412,10 +420,10 @@ class BookInfoActivity :
|
||||
}
|
||||
|
||||
private fun upTvBookshelf() {
|
||||
binding.btnShelf?.apply {
|
||||
binding.btnShelf.apply {
|
||||
if (viewModel.inBookshelf) {
|
||||
text = getString(R.string.remove_from_bookshelf)
|
||||
icon = ContextCompat.getDrawable(context, R.drawable.ic_clear_all)
|
||||
icon = ContextCompat.getDrawable(context, R.drawable.ic_star_fill)
|
||||
} else {
|
||||
text = getString(R.string.add_to_bookshelf)
|
||||
icon = ContextCompat.getDrawable(context, R.drawable.ic_star)
|
||||
@@ -427,13 +435,15 @@ class BookInfoActivity :
|
||||
private fun upGroup(groupId: Long) {
|
||||
viewModel.loadGroup(groupId) {
|
||||
if (it.isNullOrEmpty()) {
|
||||
binding.tvGroup.text = if (book?.isLocal == true) {
|
||||
getString(R.string.group_s, getString(R.string.local_no_group))
|
||||
binding.tvChangeGroup.text = if (book?.isLocal == true) {
|
||||
getString(R.string.local_no_group)
|
||||
} else {
|
||||
getString(R.string.group_s, getString(R.string.no_group))
|
||||
getString(R.string.no_group)
|
||||
}
|
||||
binding.tvChangeGroup.setIconResource(R.drawable.ic_groups)
|
||||
} else {
|
||||
binding.tvGroup.text = getString(R.string.group_s, it)
|
||||
binding.tvChangeGroup.text = getString(R.string.group_s, it)
|
||||
binding.tvChangeGroup.setIconResource(R.drawable.ic_groups_fill)
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -452,7 +462,7 @@ class BookInfoActivity :
|
||||
}
|
||||
true
|
||||
}
|
||||
btnRead?.setOnClickListener {
|
||||
btnRead.setOnClickListener {
|
||||
viewModel.getBook()?.let { book ->
|
||||
if (book.isWebFile) {
|
||||
showWebFileDownloadAlert {
|
||||
@@ -463,7 +473,7 @@ class BookInfoActivity :
|
||||
}
|
||||
}
|
||||
}
|
||||
btnShelf?.setOnClickListener {
|
||||
btnShelf.setOnClickListener {
|
||||
viewModel.getBook()?.let { book ->
|
||||
if (viewModel.inBookshelf) {
|
||||
deleteBook()
|
||||
@@ -490,7 +500,7 @@ class BookInfoActivity :
|
||||
}
|
||||
}
|
||||
}
|
||||
btnChangeSource?.setOnClickListener {
|
||||
btnChangeSource.setOnClickListener {
|
||||
viewModel.getBook()?.let { book ->
|
||||
showDialogFragment(ChangeBookSourceDialog(book.name, book.author))
|
||||
}
|
||||
@@ -533,7 +543,7 @@ class BookInfoActivity :
|
||||
}
|
||||
}
|
||||
}
|
||||
refreshLayout?.setOnRefreshListener {
|
||||
refreshLayout.setOnRefreshListener {
|
||||
refreshLayout.isRefreshing = false
|
||||
refreshBook()
|
||||
}
|
||||
@@ -784,4 +794,16 @@ class BookInfoActivity :
|
||||
}
|
||||
}
|
||||
|
||||
// 扩展函数:从Drawable中提取主色调
|
||||
suspend fun Drawable.extractDominantColor(): Int = withContext(Dispatchers.Default) {
|
||||
// 将Drawable转换为Bitmap
|
||||
val bitmap = (this@extractDominantColor as? BitmapDrawable)?.bitmap ?: return@withContext Color.TRANSPARENT
|
||||
|
||||
// 生成Palette
|
||||
val palette = Palette.from(bitmap).generate()
|
||||
|
||||
// 返回主色调,若未找到则使用默认值
|
||||
palette.getDominantColor(Color.WHITE)
|
||||
}
|
||||
|
||||
}
|
||||
@@ -101,7 +101,7 @@ class SourcePickerDialog : BaseDialogFragment(R.layout.dialog_source_picker),
|
||||
private fun initMenu() {
|
||||
toolBar.setOnMenuItemClickListener(this)
|
||||
toolBar.inflateMenu(R.menu.source_picker)
|
||||
toolBar.menu.applyTint(requireContext())
|
||||
//toolBar.menu.applyTint(requireContext())
|
||||
}
|
||||
|
||||
override fun onMenuItemClick(item: MenuItem?): Boolean {
|
||||
|
||||
@@ -121,9 +121,9 @@ class ReadMangaActivity : VMBaseActivity<ActivityMangaBinding, ReadMangaViewMode
|
||||
|
||||
private val loadMoreView by lazy {
|
||||
LoadMoreView(this).apply {
|
||||
setBackgroundColor(getCompatColor(R.color.book_ant_10))
|
||||
setLoadingColor(R.color.white)
|
||||
setLoadingTextColor(R.color.white)
|
||||
// setBackgroundColor(getCompatColor(R.color.book_ant_10))
|
||||
// setLoadingColor(R.color.white)
|
||||
// setLoadingTextColor(R.color.white)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -78,7 +78,7 @@ class ContentEditDialog : BaseDialogFragment(R.layout.dialog_content_edit) {
|
||||
|
||||
private fun initMenu() {
|
||||
binding.toolBar.inflateMenu(R.menu.content_edit)
|
||||
binding.toolBar.menu.applyTint(requireContext())
|
||||
//binding.toolBar.menu.applyTint(requireContext())
|
||||
binding.toolBar.setOnMenuItemClickListener {
|
||||
when (it.itemId) {
|
||||
R.id.menu_save -> {
|
||||
|
||||
@@ -34,6 +34,7 @@ import io.legato.kazusa.data.entities.Book
|
||||
import io.legato.kazusa.data.entities.BookChapter
|
||||
import io.legato.kazusa.data.entities.BookProgress
|
||||
import io.legato.kazusa.data.entities.BookSource
|
||||
import io.legato.kazusa.data.entities.ReplaceRule
|
||||
import io.legato.kazusa.exception.NoStackTraceException
|
||||
import io.legato.kazusa.help.AppWebDav
|
||||
import io.legato.kazusa.help.IntentData
|
||||
@@ -508,6 +509,7 @@ class ReadBookActivity : BaseReadBookActivity(),
|
||||
}
|
||||
}
|
||||
|
||||
R.id.menu_setting_replace -> openReplaceRule()
|
||||
R.id.menu_download -> showDownloadDialog()
|
||||
R.id.menu_add_bookmark -> addBookmark()
|
||||
R.id.menu_simulated_reading -> showSimulatedReading()
|
||||
@@ -1203,19 +1205,23 @@ class ReadBookActivity : BaseReadBookActivity(),
|
||||
/**
|
||||
* 显示阅读样式配置
|
||||
*/
|
||||
override fun showReadStyle() {
|
||||
// override fun showReadStyle() {
|
||||
// showDialogFragment<ReadStyleDialog>()
|
||||
// }
|
||||
//
|
||||
// /**
|
||||
// * 显示更多设置
|
||||
// */
|
||||
// override fun showMoreSetting() {
|
||||
// showDialogFragment<MoreConfigDialog>()
|
||||
// }
|
||||
//
|
||||
override fun showSearchSetting() {
|
||||
showDialogFragment<ReadStyleDialog>()
|
||||
}
|
||||
|
||||
/**
|
||||
* 显示更多设置
|
||||
*/
|
||||
override fun showMoreSetting() {
|
||||
showDialogFragment<MoreConfigDialog>()
|
||||
}
|
||||
|
||||
override fun showSearchSetting() {
|
||||
showDialogFragment<MoreConfigDialog>()
|
||||
override fun showReadStyle() {
|
||||
showDialogFragment<ReadStyleDialog>()
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -31,6 +31,7 @@ import io.legato.kazusa.lib.dialogs.alert
|
||||
//import io.legado.app.lib.theme.primaryColor
|
||||
//import io.legado.app.lib.theme.primaryTextColor
|
||||
import io.legato.kazusa.model.ReadBook
|
||||
import io.legato.kazusa.ui.book.read.config.MoreConfigDialog
|
||||
import io.legato.kazusa.ui.browser.WebViewActivity
|
||||
import io.legato.kazusa.ui.widget.seekbar.SeekBarChangeListener
|
||||
import io.legato.kazusa.utils.ConstraintModify
|
||||
@@ -44,6 +45,7 @@ import io.legato.kazusa.utils.loadAnimation
|
||||
import io.legato.kazusa.utils.modifyBegin
|
||||
import io.legato.kazusa.utils.openUrl
|
||||
import io.legato.kazusa.utils.putPrefBoolean
|
||||
import io.legato.kazusa.utils.showDialogFragment
|
||||
import io.legato.kazusa.utils.startActivity
|
||||
import io.legato.kazusa.utils.visible
|
||||
import splitties.views.onClick
|
||||
@@ -159,11 +161,11 @@ class ReadMenu @JvmOverloads constructor(
|
||||
}
|
||||
|
||||
private fun initView(reset: Boolean = false) = binding.run {
|
||||
if (AppConfig.isNightTheme) {
|
||||
fabNightTheme.setImageResource(R.drawable.ic_daytime)
|
||||
} else {
|
||||
fabNightTheme.setImageResource(R.drawable.ic_brightness)
|
||||
}
|
||||
// if (AppConfig.isNightTheme) {
|
||||
// fabNightTheme.setIconResource(R.drawable.ic_daytime)
|
||||
// } else {
|
||||
// fabNightTheme.setIconResource(R.drawable.ic_brightness)
|
||||
// }
|
||||
initAnimation()
|
||||
if (immersiveMenu) {
|
||||
// val lightTextColor = ColorUtils.withAlpha(ColorUtils.lightenColor(textColor), 0.75f)
|
||||
@@ -223,7 +225,7 @@ class ReadMenu @JvmOverloads constructor(
|
||||
/**
|
||||
* 确保视图不被导航栏遮挡
|
||||
*/
|
||||
applyNavigationBarPadding()
|
||||
binding.bottomView.applyNavigationBarPadding()
|
||||
}
|
||||
|
||||
fun reset() {
|
||||
@@ -361,8 +363,6 @@ class ReadMenu @JvmOverloads constructor(
|
||||
}
|
||||
tvChapterName.setOnClickListener(chapterViewClickListener)
|
||||
tvChapterName.setOnLongClickListener(chapterViewLongClickListener)
|
||||
tvChapterUrl.setOnClickListener(chapterViewClickListener)
|
||||
tvChapterUrl.setOnLongClickListener(chapterViewLongClickListener)
|
||||
//书源操作
|
||||
tvSourceAction.onClick {
|
||||
sourceMenu.menu.findItem(R.id.menu_login).isVisible =
|
||||
@@ -446,13 +446,13 @@ class ReadMenu @JvmOverloads constructor(
|
||||
}
|
||||
|
||||
//替换
|
||||
fabReplaceRule.setOnClickListener { callBack.openReplaceRule() }
|
||||
//fabReplaceRule.setOnClickListener { callBack.openReplaceRule() }
|
||||
|
||||
//夜间模式
|
||||
fabNightTheme.setOnClickListener {
|
||||
AppConfig.isNightTheme = !AppConfig.isNightTheme
|
||||
ThemeConfig.applyDayNight(context)
|
||||
}
|
||||
// fabNightTheme.setOnClickListener {
|
||||
// AppConfig.isNightTheme = !AppConfig.isNightTheme
|
||||
// ThemeConfig.applyDayNight(context)
|
||||
// }
|
||||
|
||||
//上一章
|
||||
tvPre.setOnClickListener { ReadBook.moveToPrevChapter(upContent = true, toLast = false) }
|
||||
@@ -461,37 +461,31 @@ class ReadMenu @JvmOverloads constructor(
|
||||
tvNext.setOnClickListener { ReadBook.moveToNextChapter(true) }
|
||||
|
||||
//目录
|
||||
llCatalog.setOnClickListener {
|
||||
ivCatalog.setOnClickListener {
|
||||
runMenuOut {
|
||||
callBack.openChapterList()
|
||||
}
|
||||
}
|
||||
|
||||
//朗读
|
||||
llReadAloud.setOnClickListener {
|
||||
ivReadAloud.setOnClickListener {
|
||||
runMenuOut {
|
||||
callBack.onClickReadAloud()
|
||||
}
|
||||
}
|
||||
llReadAloud.onLongClick {
|
||||
|
||||
ivReadAloud.onLongClick {
|
||||
runMenuOut {
|
||||
callBack.showReadAloudDialog()
|
||||
}
|
||||
}
|
||||
|
||||
//界面
|
||||
llFont.setOnClickListener {
|
||||
//设置
|
||||
ivSetting.setOnClickListener {
|
||||
runMenuOut {
|
||||
callBack.showReadStyle()
|
||||
}
|
||||
}
|
||||
|
||||
//设置
|
||||
llSetting.setOnClickListener {
|
||||
runMenuOut {
|
||||
callBack.showMoreSetting()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private fun initAnimation() {
|
||||
@@ -500,13 +494,13 @@ class ReadMenu @JvmOverloads constructor(
|
||||
}
|
||||
|
||||
fun upBookView() {
|
||||
binding.titleBar.title = ReadBook.book?.name
|
||||
binding.titleBar.title = " "
|
||||
binding.tvBookName.text = ReadBook.book?.name
|
||||
ReadBook.curTextChapter?.let {
|
||||
binding.tvChapterName.text = it.title
|
||||
binding.tvChapterName.visible()
|
||||
if (!ReadBook.isLocalBook) {
|
||||
binding.tvChapterUrl.text = it.chapter.getAbsoluteURL()
|
||||
binding.tvChapterUrl.visible()
|
||||
//binding.tvChapterUrl.visible()
|
||||
} else {
|
||||
binding.tvChapterUrl.gone()
|
||||
}
|
||||
@@ -514,7 +508,6 @@ class ReadMenu @JvmOverloads constructor(
|
||||
binding.tvPre.isEnabled = ReadBook.durChapterIndex != 0
|
||||
binding.tvNext.isEnabled = ReadBook.durChapterIndex != ReadBook.simulatedChapterSize - 1
|
||||
} ?: let {
|
||||
binding.tvChapterName.gone()
|
||||
binding.tvChapterUrl.gone()
|
||||
}
|
||||
}
|
||||
@@ -526,20 +519,16 @@ class ReadMenu @JvmOverloads constructor(
|
||||
when (AppConfig.progressBarBehavior) {
|
||||
"page" -> {
|
||||
ReadBook.curTextChapter?.let { chapter ->
|
||||
if (chapter.pageSize > 0 && ReadBook.durPageIndex > 0) {
|
||||
if (chapter.pageSize >= 0 && ReadBook.durPageIndex >= 0) {
|
||||
valueFrom = 1f
|
||||
valueTo = chapter.pageSize.toFloat().coerceAtLeast(2f)
|
||||
value = (ReadBook.durPageIndex).coerceIn(1, chapter.pageSize).toFloat()
|
||||
stepSize = 1f
|
||||
value = (ReadBook.durPageIndex).coerceIn(1, chapter.pageSize).toFloat()
|
||||
} else {
|
||||
valueFrom = 1f
|
||||
valueTo = 2f
|
||||
value = 1f
|
||||
value = 0f
|
||||
valueFrom = 0f
|
||||
valueTo = 1000f
|
||||
}
|
||||
}?: run {
|
||||
valueFrom = 1f
|
||||
valueTo = 2f
|
||||
value = 1f
|
||||
}
|
||||
}
|
||||
|
||||
@@ -548,12 +537,12 @@ class ReadMenu @JvmOverloads constructor(
|
||||
{
|
||||
valueFrom = 1f
|
||||
valueTo = ReadBook.simulatedChapterSize.toFloat().coerceAtLeast(2f)
|
||||
value = (ReadBook.durChapterIndex).coerceIn(1, ReadBook.simulatedChapterSize).toFloat()
|
||||
stepSize = 1f
|
||||
value = (ReadBook.durChapterIndex).coerceIn(1, ReadBook.simulatedChapterSize).toFloat()
|
||||
} else {
|
||||
valueFrom = 1f
|
||||
valueTo = 2f
|
||||
value = 1f
|
||||
valueFrom = 0f
|
||||
value = 0f
|
||||
valueTo = 1000f
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -579,15 +568,15 @@ class ReadMenu @JvmOverloads constructor(
|
||||
// }
|
||||
|
||||
fun setSeekPage(seek: Int) {
|
||||
binding.seekReadPage.value = 1f
|
||||
binding.seekReadPage.value = seek.toFloat() + 1
|
||||
}
|
||||
|
||||
fun setAutoPage(autoPage: Boolean) = binding.run {
|
||||
if (autoPage) {
|
||||
fabAutoPage.setImageResource(R.drawable.ic_auto_page_stop)
|
||||
fabAutoPage.setIconResource(R.drawable.ic_auto_page_stop)
|
||||
fabAutoPage.contentDescription = context.getString(R.string.auto_next_page_stop)
|
||||
} else {
|
||||
fabAutoPage.setImageResource(R.drawable.ic_auto_page)
|
||||
fabAutoPage.setIconResource(R.drawable.ic_auto_page)
|
||||
fabAutoPage.contentDescription = context.getString(R.string.auto_next_page)
|
||||
}
|
||||
//fabAutoPage.setColorFilter(textColor)
|
||||
@@ -615,7 +604,6 @@ class ReadMenu @JvmOverloads constructor(
|
||||
fun openSourceEditActivity()
|
||||
fun openBookInfoActivity()
|
||||
fun showReadStyle()
|
||||
fun showMoreSetting()
|
||||
fun showReadAloudDialog()
|
||||
fun upSystemUiVisibility()
|
||||
fun onClickReadAloud()
|
||||
|
||||
@@ -71,7 +71,7 @@ class HttpTtsEditDialog() : BaseBottomSheetDialogFragment(R.layout.dialog_http_t
|
||||
|
||||
fun initMenu() {
|
||||
binding.toolBar.inflateMenu(R.menu.speak_engine_edit)
|
||||
binding.toolBar.menu.applyTint(requireContext())
|
||||
//binding.toolBar.menu.applyTint(requireContext())
|
||||
binding.toolBar.setOnMenuItemClickListener(this)
|
||||
}
|
||||
|
||||
|
||||
@@ -10,6 +10,7 @@ import android.view.ViewConfiguration
|
||||
import android.view.ViewGroup
|
||||
import android.widget.LinearLayout
|
||||
import androidx.preference.Preference
|
||||
import androidx.preference.PreferenceFragmentCompat
|
||||
import io.legato.kazusa.R
|
||||
import io.legato.kazusa.base.BasePrefDialogFragment
|
||||
import io.legato.kazusa.constant.EventBus
|
||||
@@ -31,20 +32,6 @@ import io.legato.kazusa.utils.removePref
|
||||
class MoreConfigDialog : BasePrefDialogFragment() {
|
||||
private val readPreferTag = "readPreferenceFragment"
|
||||
|
||||
override fun onStart() {
|
||||
super.onStart()
|
||||
// dialog?.window?.run {
|
||||
// clearFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND)
|
||||
// setBackgroundDrawableResource(R.color.background)
|
||||
// decorView.setPadding(0, 0, 0, 0)
|
||||
// val attr = attributes
|
||||
// attr.dimAmount = 0.0f
|
||||
// attr.gravity = Gravity.BOTTOM
|
||||
// attributes = attr
|
||||
// setLayout(ViewGroup.LayoutParams.MATCH_PARENT, 360.dpToPx())
|
||||
// }
|
||||
}
|
||||
|
||||
override fun onCreateView(
|
||||
inflater: LayoutInflater,
|
||||
container: ViewGroup?,
|
||||
@@ -67,12 +54,7 @@ class MoreConfigDialog : BasePrefDialogFragment() {
|
||||
.commit()
|
||||
}
|
||||
|
||||
override fun onDismiss(dialog: DialogInterface) {
|
||||
super.onDismiss(dialog)
|
||||
(activity as ReadBookActivity).bottomDialog--
|
||||
}
|
||||
|
||||
class ReadPreferenceFragment : PreferenceFragment(),
|
||||
class ReadPreferenceFragment : PreferenceFragmentCompat(),
|
||||
SharedPreferences.OnSharedPreferenceChangeListener {
|
||||
|
||||
private val slopSquare by lazy { ViewConfiguration.get(requireContext()).scaledTouchSlop }
|
||||
@@ -198,6 +180,5 @@ class MoreConfigDialog : BasePrefDialogFragment() {
|
||||
getString(R.string.page_touch_slop_summary, value)
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
@@ -29,6 +29,7 @@ import splitties.views.onLongClick
|
||||
import androidx.core.graphics.drawable.toDrawable
|
||||
import androidx.transition.TransitionManager
|
||||
import com.google.android.material.bottomsheet.BottomSheetBehavior
|
||||
import io.legato.kazusa.help.config.ThemeConfig
|
||||
|
||||
class ReadStyleDialog : BaseBottomSheetDialogFragment(R.layout.dialog_read_book_style),
|
||||
FontSelectDialog.CallBack {
|
||||
@@ -39,21 +40,6 @@ class ReadStyleDialog : BaseBottomSheetDialogFragment(R.layout.dialog_read_book_
|
||||
|
||||
private lateinit var allSliders: List<DetailSeekBar>
|
||||
|
||||
|
||||
override fun onStart() {
|
||||
super.onStart()
|
||||
// dialog?.window?.run {
|
||||
// clearFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND)
|
||||
// setBackgroundDrawableResource(R.color.background)
|
||||
// decorView.setPadding(0, 0, 0, 0)
|
||||
// val attr = attributes
|
||||
// attr.dimAmount = 0.0f
|
||||
// attr.gravity = Gravity.BOTTOM
|
||||
// attributes = attr
|
||||
// setLayout(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT)
|
||||
// }
|
||||
}
|
||||
|
||||
override fun onFragmentCreated(view: View, savedInstanceState: Bundle?) {
|
||||
(activity as ReadBookActivity).bottomDialog++
|
||||
initView()
|
||||
@@ -75,6 +61,11 @@ class ReadStyleDialog : BaseBottomSheetDialogFragment(R.layout.dialog_read_book_
|
||||
// tvPageAnim.setTextColor(textColor)
|
||||
// tvBgTs.setTextColor(textColor)
|
||||
// tvShareLayout.setTextColor(textColor)
|
||||
if (AppConfig.isNightTheme) {
|
||||
tvDayNight.setIconResource(R.drawable.ic_daytime)
|
||||
} else {
|
||||
tvDayNight.setIconResource(R.drawable.ic_brightness)
|
||||
}
|
||||
dsbTextSize.valueFormat = {
|
||||
(it + 5).toString()
|
||||
}
|
||||
@@ -133,6 +124,13 @@ class ReadStyleDialog : BaseBottomSheetDialogFragment(R.layout.dialog_read_book_
|
||||
tvTip.setOnClickListener {
|
||||
TipConfigDialog().show(childFragmentManager, "tipConfigDialog")
|
||||
}
|
||||
tvMore.setOnClickListener {
|
||||
showDialogFragment<MoreConfigDialog>()
|
||||
}
|
||||
tvDayNight.setOnClickListener {
|
||||
AppConfig.isNightTheme = !AppConfig.isNightTheme
|
||||
ThemeConfig.applyDayNight(requireContext())
|
||||
}
|
||||
// rgPageAnim.setOnCheckedChangeListener { _, checkedId ->
|
||||
// ReadBook.book?.setPageAnim(-1)
|
||||
// ReadBookConfig.pageAnim = binding.rgPageAnim.getIndexById(checkedId)
|
||||
@@ -299,6 +297,5 @@ class ReadStyleDialog : BaseBottomSheetDialogFragment(R.layout.dialog_read_book_
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
@@ -161,7 +161,7 @@ class SpeakEngineDialog() : BaseBottomSheetDialogFragment(R.layout.dialog_recycl
|
||||
|
||||
private fun initMenu() = binding.run {
|
||||
toolBar.inflateMenu(R.menu.speak_engine)
|
||||
toolBar.menu.applyTint(requireContext())
|
||||
//toolBar.menu.applyTint(requireContext())
|
||||
toolBar.setOnMenuItemClickListener(this@SpeakEngineDialog)
|
||||
}
|
||||
|
||||
|
||||
@@ -26,6 +26,7 @@ import io.legato.kazusa.utils.applyStatusBarPadding
|
||||
import io.legato.kazusa.utils.dpToPx
|
||||
import io.legato.kazusa.utils.gone
|
||||
import io.legato.kazusa.utils.setTextIfNotEqual
|
||||
import io.legato.kazusa.utils.statusBarHeight
|
||||
import splitties.views.backgroundColor
|
||||
import java.util.Date
|
||||
|
||||
@@ -59,11 +60,9 @@ class PageView(context: Context) : FrameLayout(context) {
|
||||
}
|
||||
|
||||
init {
|
||||
if (!isInEditMode) {
|
||||
upStyle()
|
||||
binding.vwStatusBar.applyStatusBarPadding()
|
||||
binding.vwNavigationBar.applyNavigationBarPadding()
|
||||
}
|
||||
upStyle()
|
||||
binding.vwStatusBar.applyStatusBarPadding()
|
||||
binding.vwNavigationBar.applyNavigationBarPadding()
|
||||
}
|
||||
|
||||
override fun onSizeChanged(w: Int, h: Int, oldw: Int, oldh: Int) {
|
||||
@@ -118,8 +117,8 @@ class PageView(context: Context) : FrameLayout(context) {
|
||||
* 显示状态栏时隐藏header
|
||||
*/
|
||||
fun upStatusBar() = with(binding.vwStatusBar) {
|
||||
// setPadding(paddingLeft, context.statusBarHeight, paddingRight, paddingBottom)
|
||||
isGone = ReadBookConfig.hideStatusBar || readBookActivity?.isInMultiWindow == true
|
||||
setPadding(paddingLeft, context.statusBarHeight, paddingRight, paddingBottom)
|
||||
isGone = ReadBookConfig.hideStatusBar
|
||||
}
|
||||
|
||||
fun upNavigationBar() {
|
||||
|
||||
@@ -60,7 +60,7 @@ class SearchScopeDialog : BaseDialogFragment(R.layout.dialog_search_scope) {
|
||||
|
||||
private fun initMenu() {
|
||||
binding.toolBar.inflateMenu(R.menu.book_search_scope)
|
||||
binding.toolBar.menu.applyTint(requireContext())
|
||||
//binding.toolBar.menu.applyTint(requireContext())
|
||||
}
|
||||
|
||||
private fun initSearchView() {
|
||||
|
||||
@@ -46,7 +46,7 @@ class GroupManageDialog : BaseDialogFragment(R.layout.dialog_recycler_view),
|
||||
// binding.toolBar.setBackgroundColor(primaryColor)
|
||||
binding.toolBar.title = getString(R.string.group_manage)
|
||||
binding.toolBar.inflateMenu(R.menu.group_manage)
|
||||
binding.toolBar.menu.applyTint(requireContext())
|
||||
//binding.toolBar.menu.applyTint(requireContext())
|
||||
binding.toolBar.setOnMenuItemClickListener(this)
|
||||
binding.recyclerView.layoutManager = LinearLayoutManager(requireContext())
|
||||
binding.recyclerView.addItemDecoration(VerticalDivider(requireContext()))
|
||||
|
||||
@@ -90,7 +90,7 @@ class TxtTocRuleDialog() : BaseDialogFragment(R.layout.dialog_toc_regex),
|
||||
durRegex = arguments?.getString("tocRegex")
|
||||
binding.toolBar.setTitle(R.string.txt_toc_rule)
|
||||
binding.toolBar.inflateMenu(R.menu.txt_toc_rule)
|
||||
binding.toolBar.menu.applyTint(requireContext())
|
||||
//binding.toolBar.menu.applyTint(requireContext())
|
||||
binding.toolBar.setOnMenuItemClickListener(this)
|
||||
initView()
|
||||
initData()
|
||||
|
||||
@@ -51,7 +51,7 @@ class TxtTocRuleEditDialog() : BaseBottomSheetDialogFragment(R.layout.dialog_toc
|
||||
|
||||
private fun initMenu() {
|
||||
binding.toolBar.inflateMenu(R.menu.txt_toc_rule_edit)
|
||||
binding.toolBar.menu.applyTint(requireContext())
|
||||
//binding.toolBar.menu.applyTint(requireContext())
|
||||
binding.toolBar.setOnMenuItemClickListener(this)
|
||||
}
|
||||
|
||||
|
||||
Reference in new issue
Block a user