This commit is contained in:
kunfei 2023-02-04 10:23:53 +08:00
parent d0badab625
commit 6c5ef297d3
28 changed files with 71 additions and 39 deletions

View File

@ -54,14 +54,14 @@ class AboutFragment : PreferenceFragmentCompat() {
override fun onPreferenceTreeClick(preference: Preference): Boolean {
when (preference.key) {
"contributors" -> openUrl(R.string.contributors_url)
"update_log" -> showMdFile("updateLog.md")
"update_log" -> showMdFile(getString(R.string.update_log),"updateLog.md")
"check_update" -> checkUpdate()
"mail" -> requireContext().sendMail(getString(R.string.email))
"sourceRuleSummary" -> openUrl(R.string.source_rule_url)
"git" -> openUrl(R.string.this_github_url)
"home_page" -> openUrl(R.string.home_page_url)
"license" -> openUrl(R.string.license_url)
"disclaimer" -> showMdFile("disclaimer.md")
"disclaimer" -> showMdFile(getString(R.string.disclaimer),"disclaimer.md")
"qq" -> showQqGroups()
"gzGzh" -> requireContext().sendToClip(getString(R.string.legado_gzh))
"crashLog" -> showCrashLogs()
@ -80,9 +80,9 @@ class AboutFragment : PreferenceFragmentCompat() {
/**
* 显示md文件
*/
private fun showMdFile(FileName: String) {
private fun showMdFile(title: String, FileName: String) {
val mdText = String(requireContext().assets.open(FileName).readBytes())
showDialogFragment(TextDialog(mdText, TextDialog.Mode.MD))
showDialogFragment(TextDialog(title, mdText, TextDialog.Mode.MD))
}
/**
@ -151,7 +151,7 @@ class AboutFragment : PreferenceFragmentCompat() {
}
context?.selector(R.string.crash_log, crashLogNames) { _, select ->
crashLogs?.getOrNull(select)?.let { logFile ->
showDialogFragment(TextDialog(logFile.readText()))
showDialogFragment(TextDialog("Crash log", logFile.readText()))
}
}
}

View File

@ -79,7 +79,7 @@ class AppLogDialog : BaseDialogFragment(R.layout.dialog_recycler_view),
binding.root.onClick {
getItem(holder.layoutPosition)?.let { item ->
item.third?.let {
showDialogFragment(TextDialog(it.stackTraceToString()))
showDialogFragment(TextDialog("Log", it.stackTraceToString()))
}
}
}

View File

@ -192,6 +192,6 @@ class RemoteBookActivity : BaseImportBookActivity<ActivityImportBookBinding, Rem
private fun showHelp(fileName: String) {
//显示目录help下的帮助文档
val mdText = String(assets.open("help/${fileName}.md").readBytes())
showDialogFragment(TextDialog(mdText, TextDialog.Mode.MD))
showDialogFragment(TextDialog(getString(R.string.help), mdText, TextDialog.Mode.MD))
}
}

View File

@ -858,7 +858,7 @@ class ReadBookActivity : BaseReadBookActivity(),
override fun showReadMenuHelp() {
val text = String(assets.open("help/readMenuHelp.md").readBytes())
showDialogFragment(TextDialog(text, TextDialog.Mode.MD))
showDialogFragment(TextDialog(getString(R.string.help), text, TextDialog.Mode.MD))
}
/**

View File

@ -134,7 +134,7 @@ class HttpTtsEditDialog() : BaseDialogFragment(R.layout.dialog_http_tts_edit, tr
val helpStr = String(
requireContext().assets.open("help/httpTTSHelp.md").readBytes()
)
showDialogFragment(TextDialog(helpStr, TextDialog.Mode.MD))
showDialogFragment(TextDialog(getString(R.string.help), helpStr, TextDialog.Mode.MD))
}
}

View File

@ -179,10 +179,10 @@ class BookSourceDebugActivity : VMBaseActivity<ActivitySourceDebugBinding, BookS
override fun onCompatOptionsItemSelected(item: MenuItem): Boolean {
when (item.itemId) {
R.id.menu_scan -> qrCodeResult.launch()
R.id.menu_search_src -> showDialogFragment(TextDialog(viewModel.searchSrc))
R.id.menu_book_src -> showDialogFragment(TextDialog(viewModel.bookSrc))
R.id.menu_toc_src -> showDialogFragment(TextDialog(viewModel.tocSrc))
R.id.menu_content_src -> showDialogFragment(TextDialog(viewModel.contentSrc))
R.id.menu_search_src -> showDialogFragment(TextDialog("html", viewModel.searchSrc))
R.id.menu_book_src -> showDialogFragment(TextDialog("html", viewModel.bookSrc))
R.id.menu_toc_src -> showDialogFragment(TextDialog("html", viewModel.tocSrc))
R.id.menu_content_src -> showDialogFragment(TextDialog("html", viewModel.contentSrc))
R.id.menu_help -> showHelp()
}
return super.onCompatOptionsItemSelected(item)
@ -190,7 +190,7 @@ class BookSourceDebugActivity : VMBaseActivity<ActivitySourceDebugBinding, BookS
private fun showHelp() {
val text = String(assets.open("help/debugHelp.md").readBytes())
showDialogFragment(TextDialog(text, TextDialog.Mode.MD))
showDialogFragment(TextDialog(getString(R.string.help), text, TextDialog.Mode.MD))
}
}

View File

@ -573,7 +573,7 @@ class BookSourceEditActivity :
private fun showHelp(fileName: String) {
//显示目录help下的帮助文档
val mdText = String(assets.open("help/${fileName}.md").readBytes())
showDialogFragment(TextDialog(mdText, TextDialog.Mode.MD))
showDialogFragment(TextDialog(getString(R.string.help), mdText, TextDialog.Mode.MD))
}
private fun setSourceVariable() {

View File

@ -5,7 +5,6 @@ import android.os.Bundle
import android.view.*
import androidx.activity.viewModels
import androidx.appcompat.app.AlertDialog
import androidx.appcompat.app.AppCompatActivity
import androidx.appcompat.widget.PopupMenu
import androidx.appcompat.widget.SearchView
import androidx.core.os.bundleOf
@ -286,7 +285,7 @@ class BookSourceActivity : VMBaseActivity<ActivityBookSourceBinding, BookSourceV
private fun showHelp() {
val text = String(assets.open("help/SourceMBookHelp.md").readBytes())
showDialogFragment(TextDialog(text, TextDialog.Mode.MD))
showDialogFragment(TextDialog(getString(R.string.help), text, TextDialog.Mode.MD))
}
private fun sortCheck(sort: Sort) {

View File

@ -167,7 +167,7 @@ class BackupConfigFragment : PreferenceFragment(),
private fun showHelp() {
val text = String(requireContext().assets.open("help/webDavHelp.md").readBytes())
showDialogFragment(TextDialog(text, TextDialog.Mode.MD))
showDialogFragment(TextDialog(getString(R.string.help), text, TextDialog.Mode.MD))
}
override fun onDestroy() {

View File

@ -181,14 +181,14 @@ class MainActivity : VMBaseActivity<ActivityMainBinding, MainViewModel>(),
viewModel.upVersion()
if (LocalConfig.isFirstOpenApp) {
val help = String(assets.open("help/appHelp.md").readBytes())
val dialog = TextDialog(help, TextDialog.Mode.MD)
val dialog = TextDialog(getString(R.string.help), help, TextDialog.Mode.MD)
dialog.setOnDismissListener {
block.resume(Unit)
}
showDialogFragment(dialog)
} else if (!BuildConfig.DEBUG) {
val log = String(assets.open("updateLog.md").readBytes())
val dialog = TextDialog(log, TextDialog.Mode.MD)
val dialog = TextDialog(getString(R.string.update_log), log, TextDialog.Mode.MD)
dialog.setOnDismissListener {
block.resume(Unit)
}

View File

@ -98,7 +98,7 @@ class ExploreAdapter(context: Context, val callBack: CallBack) :
} else {
tv.setOnClickListener {
if (kind.title.startsWith("ERROR:")) {
it.activity?.showDialogFragment(TextDialog(kind.url))
it.activity?.showDialogFragment(TextDialog("ERROR", kind.url))
} else {
callBack.openExplore(sourceUrl, kind.title, kind.url)
}

View File

@ -53,7 +53,7 @@ class MyFragment : BaseFragment(R.layout.fragment_my_config) {
when (item.itemId) {
R.id.menu_help -> {
val text = String(requireContext().assets.open("help/appHelp.md").readBytes())
showDialogFragment(TextDialog(text, TextDialog.Mode.MD))
showDialogFragment(TextDialog(getString(R.string.help), text, TextDialog.Mode.MD))
}
}
}

View File

@ -298,7 +298,7 @@ class ReplaceRuleActivity : VMBaseActivity<ActivityReplaceRuleBinding, ReplaceRu
private fun showHelp() {
val text = String(assets.open("help/replaceRuleHelp.md").readBytes())
showDialogFragment(TextDialog(text, TextDialog.Mode.MD))
showDialogFragment(TextDialog(getString(R.string.help), text, TextDialog.Mode.MD))
}
override fun onQueryTextChange(newText: String?): Boolean {

View File

@ -155,7 +155,7 @@ class ReplaceEditActivity :
private fun showHelp(fileName: String) {
//显示目录help下的帮助文档
val mdText = String(assets.open("help/${fileName}.md").readBytes())
showDialogFragment(TextDialog(mdText, TextDialog.Mode.MD))
showDialogFragment(TextDialog(getString(R.string.help), mdText, TextDialog.Mode.MD))
}
}

View File

@ -49,8 +49,8 @@ class RssSourceDebugActivity : VMBaseActivity<ActivitySourceDebugBinding, RssSou
override fun onCompatOptionsItemSelected(item: MenuItem): Boolean {
when (item.itemId) {
R.id.menu_list_src -> showDialogFragment(TextDialog(viewModel.listSrc))
R.id.menu_content_src -> showDialogFragment(TextDialog(viewModel.contentSrc))
R.id.menu_list_src -> showDialogFragment(TextDialog("Html", viewModel.listSrc))
R.id.menu_content_src -> showDialogFragment(TextDialog("Html", viewModel.contentSrc))
}
return super.onCompatOptionsItemSelected(item)
}

View File

@ -283,7 +283,7 @@ class RssSourceEditActivity :
private fun showHelp(fileName: String) {
//显示目录help下的帮助文档
val mdText = String(assets.open("help/${fileName}.md").readBytes())
showDialogFragment(TextDialog(mdText, TextDialog.Mode.MD))
showDialogFragment(TextDialog(getString(R.string.help), mdText, TextDialog.Mode.MD))
}
}

View File

@ -325,7 +325,7 @@ class RssSourceActivity : VMBaseActivity<ActivityRssSourceBinding, RssSourceView
private fun showHelp() {
val text = String(assets.open("help/SourceMRssHelp.md").readBytes())
showDialogFragment(TextDialog(text, TextDialog.Mode.MD))
showDialogFragment(TextDialog(getString(R.string.help), text, TextDialog.Mode.MD))
}
override fun upCountView() {

View File

@ -6,6 +6,8 @@ import android.view.ViewGroup
import io.legado.app.R
import io.legado.app.base.BaseDialogFragment
import io.legado.app.databinding.DialogTextViewBinding
import io.legado.app.lib.theme.primaryColor
import io.legado.app.utils.applyTint
import io.legado.app.utils.setHtml
import io.legado.app.utils.setLayout
import io.legado.app.utils.viewbindingdelegate.viewBinding
@ -24,12 +26,14 @@ class TextDialog() : BaseDialogFragment(R.layout.dialog_text_view) {
}
constructor(
title: String,
content: String?,
mode: Mode = Mode.TEXT,
time: Long = 0,
autoClose: Boolean = false
) : this() {
arguments = Bundle().apply {
putString("title", title)
putString("content", content)
putString("mode", mode.name)
putLong("time", time)
@ -48,7 +52,17 @@ class TextDialog() : BaseDialogFragment(R.layout.dialog_text_view) {
}
override fun onFragmentCreated(view: View, savedInstanceState: Bundle?) {
binding.toolBar.setBackgroundColor(primaryColor)
binding.toolBar.inflateMenu(R.menu.dialog_text)
binding.toolBar.menu.applyTint(requireContext())
binding.toolBar.setOnMenuItemClickListener {
when (it.itemId) {
R.id.menu_close -> dismissAllowingStateLoss()
}
true
}
arguments?.let {
binding.toolBar.title = it.getString("title")
val content = it.getString("content") ?: ""
when (it.getString("mode")) {
Mode.MD.name -> binding.textView.post {
@ -82,7 +96,6 @@ class TextDialog() : BaseDialogFragment(R.layout.dialog_text_view) {
} else {
view.post {
dialog?.setCancelable(true)
if (autoClose) dialog?.cancel()
}
}
}

View File

@ -34,7 +34,7 @@
android:id="@+id/iv_close"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:contentDescription="@string/colse"
android:contentDescription="@string/close"
android:src="@drawable/ic_baseline_close"
app:tint="@color/white" />

View File

@ -5,13 +5,24 @@
android:layout_height="match_parent"
android:background="@color/background">
<androidx.appcompat.widget.Toolbar
android:id="@+id/tool_bar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:theme="?attr/actionBarStyle"
app:popupTheme="@style/AppTheme.PopupOverlay"
app:titleTextAppearance="@style/ToolbarTitle"
app:layout_constraintTop_toTopOf="parent" />
<io.legado.app.ui.widget.text.ScrollTextView
android:id="@+id/text_view"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_height="0dp"
android:padding="12dp"
android:textColor="@color/secondaryText"
android:textIsSelectable="true" />
android:textIsSelectable="true"
app:layout_constraintTop_toBottomOf="@+id/tool_bar"
app:layout_constraintBottom_toBottomOf="parent"/>
<io.legado.app.ui.widget.text.BadgeView
android:id="@+id/badge_view"

View File

@ -0,0 +1,9 @@
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:id="@+id/menu_close"
android:title="@string/close"
app:showAsAction="always"/>
</menu>

View File

@ -795,7 +795,7 @@
<string name="no_book">No hay libros</string>
<string name="keep_original_name">Conservar el nombre original</string>
<string name="click_regional_config">El control de la pantalla táctil</string>
<string name="colse">Cerrar</string>
<string name="close">Cerrar</string>
<string name="next_page">Página siguiente</string>
<string name="prev_page">Página anterior</string>
<string name="non_action">Sin acciones</string>

View File

@ -798,7 +798,7 @@
<string name="no_book">No books</string>
<string name="keep_original_name">Keep the original name</string>
<string name="click_regional_config">Screen touch control</string>
<string name="colse">Close</string>
<string name="close">Close</string>
<string name="next_page">Next page</string>
<string name="prev_page">Prior page</string>
<string name="non_action">None</string>

View File

@ -796,7 +796,7 @@
<string name="no_book">Sem livros</string>
<string name="keep_original_name">Manter o nome original</string>
<string name="click_regional_config">O controle de toque da tela</string>
<string name="colse">Fechar</string>
<string name="close">Fechar</string>
<string name="next_page">Próxima página</string>
<string name="prev_page">Página anterior</string>
<string name="non_action">Nenhuma Ação</string>

View File

@ -796,7 +796,7 @@
<string name="no_book">冇書</string>
<string name="keep_original_name">保留原名</string>
<string name="click_regional_config">點擊區域設定</string>
<string name="colse">閂咗</string>
<string name="close">閂咗</string>
<string name="next_page">下一頁</string>
<string name="prev_page">上一頁</string>
<string name="non_action">無操作</string>

View File

@ -799,7 +799,7 @@
<string name="no_book">沒有書籍</string>
<string name="keep_original_name">保留原名</string>
<string name="click_regional_config">點擊區域設定</string>
<string name="colse">關閉</string>
<string name="close">關閉</string>
<string name="next_page">下一頁</string>
<string name="prev_page">上一頁</string>
<string name="non_action">無操作</string>

View File

@ -801,7 +801,7 @@
<string name="no_book">没有书籍</string>
<string name="keep_original_name">保留原名</string>
<string name="click_regional_config">点击区域设置</string>
<string name="colse">关闭</string>
<string name="close">关闭</string>
<string name="next_page">下一页</string>
<string name="prev_page">上一页</string>
<string name="non_action">无操作</string>

View File

@ -800,7 +800,7 @@
<string name="no_book">No books</string>
<string name="keep_original_name">Keep the original name</string>
<string name="click_regional_config">Screen touch control</string>
<string name="colse">Close</string>
<string name="close">Close</string>
<string name="next_page">Next page</string>
<string name="prev_page">Prior page</string>
<string name="non_action">None</string>