From 6a0542f5addf1a7ada7017a8b73535bfb219b525 Mon Sep 17 00:00:00 2001 From: kunfei Date: Fri, 6 Mar 2020 21:01:30 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E4=BC=98=E5=8C=96=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../app/ui/book/read/ReadBookActivity.kt | 4 + .../ui/book/read/config/ReadStyleDialog.kt | 30 +- .../app/ui/book/read/config/ReadTypeDialog.kt | 85 +++ .../main/res/drawable/ic_type_default_1.xml | 12 + .../main/res/drawable/ic_type_default_2.xml | 15 + .../main/res/drawable/ic_type_default_3.xml | 18 + .../res/layout/dialog_read_book_style.xml | 497 ++++++++++-------- app/src/main/res/layout/dialog_read_type.xml | 36 ++ app/src/main/res/values/strings.xml | 4 + 9 files changed, 447 insertions(+), 254 deletions(-) create mode 100644 app/src/main/java/io/legado/app/ui/book/read/config/ReadTypeDialog.kt create mode 100644 app/src/main/res/drawable/ic_type_default_1.xml create mode 100644 app/src/main/res/drawable/ic_type_default_2.xml create mode 100644 app/src/main/res/drawable/ic_type_default_3.xml create mode 100644 app/src/main/res/layout/dialog_read_type.xml 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 de1f1d728..e85a0db31 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 @@ -152,6 +152,10 @@ class ReadBookActivity : VMBaseActivity(R.layout.activity_boo PaddingConfigDialog().show(supportFragmentManager, "paddingConfig") } + fun showTypeConfig() { + ReadTypeDialog().show(supportFragmentManager, "readTypeDialog") + } + fun showBgTextConfig() { BgTextConfigDialog().show(supportFragmentManager, "bgTextConfig") } 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 4a5d435cf..71604dfb8 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 @@ -75,14 +75,6 @@ class ReadStyleDialog : DialogFragment(), FontSelectDialog.CallBack { private fun initView() { root_view.setBackgroundColor(requireContext().bottomBackground) - dsb_text_size.valueFormat = { - (it + 5).toString() - } - dsb_text_letter_spacing.valueFormat = { - ((it - 50) / 100f).toString() - } - dsb_line_size.valueFormat = { ((it - 10) / 10f).toString() } - dsb_paragraph_spacing.valueFormat = { (it / 10f).toString() } } private fun initData() { @@ -131,21 +123,9 @@ class ReadStyleDialog : DialogFragment(), FontSelectDialog.CallBack { dismiss() callBack?.showPaddingConfig() } - dsb_text_size.onChanged = { - ReadBookConfig.textSize = it + 10 - postEvent(EventBus.UP_CONFIG, true) - } - dsb_text_letter_spacing.onChanged = { - ReadBookConfig.letterSpacing = (it - 50) / 100f - postEvent(EventBus.UP_CONFIG, true) - } - dsb_line_size.onChanged = { - ReadBookConfig.lineSpacingExtra = it - postEvent(EventBus.UP_CONFIG, true) - } - dsb_paragraph_spacing.onChanged = { - ReadBookConfig.paragraphSpacing = it - postEvent(EventBus.UP_CONFIG, true) + tv_type.onClick { + dismiss() + callBack?.showTypeConfig() } rg_page_anim.onCheckedChange { _, checkedId -> rg_page_anim.getIndexById(checkedId).let { @@ -193,10 +173,6 @@ class ReadStyleDialog : DialogFragment(), FontSelectDialog.CallBack { ReadBookConfig.let { tv_title_mode.text = titleModes.getOrElse(it.titleMode) { titleModes[0] } tv_text_bold.isSelected = it.textBold - dsb_text_size.progress = it.textSize - 5 - dsb_text_letter_spacing.progress = (it.letterSpacing * 100).toInt() + 50 - dsb_line_size.progress = it.lineSpacingExtra - dsb_paragraph_spacing.progress = it.paragraphSpacing } } diff --git a/app/src/main/java/io/legado/app/ui/book/read/config/ReadTypeDialog.kt b/app/src/main/java/io/legado/app/ui/book/read/config/ReadTypeDialog.kt new file mode 100644 index 000000000..8ac81d53d --- /dev/null +++ b/app/src/main/java/io/legado/app/ui/book/read/config/ReadTypeDialog.kt @@ -0,0 +1,85 @@ +package io.legado.app.ui.book.read.config + +import android.os.Bundle +import android.util.DisplayMetrics +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import io.legado.app.R +import io.legado.app.base.BaseDialogFragment +import io.legado.app.constant.EventBus +import io.legado.app.help.ReadBookConfig +import io.legado.app.ui.book.read.Help +import io.legado.app.utils.postEvent +import kotlinx.android.synthetic.main.dialog_read_type.* + +class ReadTypeDialog : BaseDialogFragment() { + + override fun onStart() { + super.onStart() + val dm = DisplayMetrics() + activity?.let { + Help.upSystemUiVisibility(it) + it.windowManager?.defaultDisplay?.getMetrics(dm) + } + dialog?.window?.let { + val attr = it.attributes + attr.dimAmount = 0.0f + it.attributes = attr + it.setLayout((dm.widthPixels * 0.9).toInt(), ViewGroup.LayoutParams.WRAP_CONTENT) + } + } + + override fun onCreateView( + inflater: LayoutInflater, + container: ViewGroup?, + savedInstanceState: Bundle? + ): View? { + return inflater.inflate(R.layout.dialog_read_type, container) + } + + override fun onFragmentCreated(view: View, savedInstanceState: Bundle?) { + initView() + initViewEvent() + upStyle() + } + + private fun initView() { + dsb_text_size.valueFormat = { + (it + 5).toString() + } + dsb_text_letter_spacing.valueFormat = { + ((it - 50) / 100f).toString() + } + dsb_line_size.valueFormat = { ((it - 10) / 10f).toString() } + dsb_paragraph_spacing.valueFormat = { (it / 10f).toString() } + } + + private fun initViewEvent() { + dsb_text_size.onChanged = { + ReadBookConfig.textSize = it + 10 + postEvent(EventBus.UP_CONFIG, true) + } + dsb_text_letter_spacing.onChanged = { + ReadBookConfig.letterSpacing = (it - 50) / 100f + postEvent(EventBus.UP_CONFIG, true) + } + dsb_line_size.onChanged = { + ReadBookConfig.lineSpacingExtra = it + postEvent(EventBus.UP_CONFIG, true) + } + dsb_paragraph_spacing.onChanged = { + ReadBookConfig.paragraphSpacing = it + postEvent(EventBus.UP_CONFIG, true) + } + } + + private fun upStyle() { + ReadBookConfig.let { + dsb_text_size.progress = it.textSize - 5 + dsb_text_letter_spacing.progress = (it.letterSpacing * 100).toInt() + 50 + dsb_line_size.progress = it.lineSpacingExtra + dsb_paragraph_spacing.progress = it.paragraphSpacing + } + } +} \ No newline at end of file diff --git a/app/src/main/res/drawable/ic_type_default_1.xml b/app/src/main/res/drawable/ic_type_default_1.xml new file mode 100644 index 000000000..14d903eee --- /dev/null +++ b/app/src/main/res/drawable/ic_type_default_1.xml @@ -0,0 +1,12 @@ + + + + diff --git a/app/src/main/res/drawable/ic_type_default_2.xml b/app/src/main/res/drawable/ic_type_default_2.xml new file mode 100644 index 000000000..a0c29bc99 --- /dev/null +++ b/app/src/main/res/drawable/ic_type_default_2.xml @@ -0,0 +1,15 @@ + + + + + diff --git a/app/src/main/res/drawable/ic_type_default_3.xml b/app/src/main/res/drawable/ic_type_default_3.xml new file mode 100644 index 000000000..feb07717f --- /dev/null +++ b/app/src/main/res/drawable/ic_type_default_3.xml @@ -0,0 +1,18 @@ + + + + + + diff --git a/app/src/main/res/layout/dialog_read_book_style.xml b/app/src/main/res/layout/dialog_read_book_style.xml index f2d8a1810..764fd63b4 100644 --- a/app/src/main/res/layout/dialog_read_book_style.xml +++ b/app/src/main/res/layout/dialog_read_book_style.xml @@ -1,7 +1,6 @@ - - - - - - - - - - - - - - + android:orientation="horizontal" + android:gravity="center_vertical"> - + - + + + + + + + - + + + + + + + + + + + + + + + android:paddingTop="6dp" + android:paddingBottom="6dp" + android:gravity="center_vertical"> + + + + + + + + + + + + + + + + + + + + + + + + + android:background="@color/btn_bg_press" /> + android:text="@string/page_anim" /> + android:gravity="center"> + android:background="@color/btn_bg_press" /> - - - + android:orientation="horizontal" + android:gravity="center_vertical"> - + + + + + + + + - - - - - - - - - - - - \ No newline at end of file + android:orientation="horizontal" + android:gravity="center_vertical"> + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/dialog_read_type.xml b/app/src/main/res/layout/dialog_read_type.xml new file mode 100644 index 000000000..8bf2ebecd --- /dev/null +++ b/app/src/main/res/layout/dialog_read_type.xml @@ -0,0 +1,36 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 309f2bec2..368df1c1d 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -234,6 +234,7 @@ 按书名 手动排序 阅读方式 + 排版 删除所选 是否确认删除? 默认字体 @@ -630,4 +631,7 @@ 其它朗读设置 系统内置字体样式 是否删除源文件 + 预设一 + 预设二 + 预设三