From 752999b43b1b5e84764df5b7f5d2e7a610ee06af Mon Sep 17 00:00:00 2001
From: Horis <821938089@qq.com>
Date: Mon, 4 Mar 2024 17:17:03 +0800
Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
app/src/main/AndroidManifest.xml | 2 +-
.../app/service/HttpReadAloudService.kt | 2 -
.../app/ui/book/read/page/ContentTextView.kt | 1 +
.../io/legado/app/ui/config/ConfigActivity.kt | 10 -----
.../app/ui/config/ThemeConfigFragment.kt | 41 ++++++++++++++++---
.../canvasrecorder/CanvasRecorderImpl.kt | 9 ++--
6 files changed, 44 insertions(+), 21 deletions(-)
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index a720ba6305f9..6fe06e28cb01 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -179,7 +179,7 @@
+ android:launchMode="standard" />
throw e
- is ConcurrentException -> delay(e.waitTime.toLong())
is ScriptException, is WrappedException -> {
AppLog.put("js错误\n${e.localizedMessage}", e, true)
e.printOnDebug()
diff --git a/app/src/main/java/io/legado/app/ui/book/read/page/ContentTextView.kt b/app/src/main/java/io/legado/app/ui/book/read/page/ContentTextView.kt
index 9dbabcb462cb..f66ac0f619ce 100644
--- a/app/src/main/java/io/legado/app/ui/book/read/page/ContentTextView.kt
+++ b/app/src/main/java/io/legado/app/ui/book/read/page/ContentTextView.kt
@@ -85,6 +85,7 @@ class ContentTextView(context: Context, attrs: AttributeSet?) : View(context, at
override fun onSizeChanged(w: Int, h: Int, oldw: Int, oldh: Int) {
super.onSizeChanged(w, h, oldw, oldh)
+ if (!isMainView) return
ChapterProvider.upViewSize(w, h)
textPage.format()
}
diff --git a/app/src/main/java/io/legado/app/ui/config/ConfigActivity.kt b/app/src/main/java/io/legado/app/ui/config/ConfigActivity.kt
index 231cb3a9ad2d..54d4894d49d9 100644
--- a/app/src/main/java/io/legado/app/ui/config/ConfigActivity.kt
+++ b/app/src/main/java/io/legado/app/ui/config/ConfigActivity.kt
@@ -48,14 +48,4 @@ class ConfigActivity : VMBaseActivity()
}
}
- override fun finish() {
- if (supportFragmentManager.findFragmentByTag(ConfigTag.COVER_CONFIG) != null
- || supportFragmentManager.findFragmentByTag(ConfigTag.WELCOME_CONFIG) != null
- ) {
- replaceFragment(ConfigTag.THEME_CONFIG)
- } else {
- super.finish()
- }
- }
-
}
\ No newline at end of file
diff --git a/app/src/main/java/io/legado/app/ui/config/ThemeConfigFragment.kt b/app/src/main/java/io/legado/app/ui/config/ThemeConfigFragment.kt
index 00b15d8a98d7..7d6f9efa3ca8 100644
--- a/app/src/main/java/io/legado/app/ui/config/ThemeConfigFragment.kt
+++ b/app/src/main/java/io/legado/app/ui/config/ThemeConfigFragment.kt
@@ -29,7 +29,23 @@ import io.legado.app.lib.prefs.fragment.PreferenceFragment
import io.legado.app.lib.theme.primaryColor
import io.legado.app.ui.widget.number.NumberPickerDialog
import io.legado.app.ui.widget.seekbar.SeekBarChangeListener
-import io.legado.app.utils.*
+import io.legado.app.utils.ColorUtils
+import io.legado.app.utils.FileUtils
+import io.legado.app.utils.MD5Utils
+import io.legado.app.utils.SelectImageContract
+import io.legado.app.utils.applyTint
+import io.legado.app.utils.externalFiles
+import io.legado.app.utils.getPrefInt
+import io.legado.app.utils.getPrefString
+import io.legado.app.utils.inputStream
+import io.legado.app.utils.postEvent
+import io.legado.app.utils.putPrefInt
+import io.legado.app.utils.putPrefString
+import io.legado.app.utils.readUri
+import io.legado.app.utils.removePref
+import io.legado.app.utils.setEdgeEffectColor
+import io.legado.app.utils.startActivity
+import io.legado.app.utils.toastOnUi
import splitties.init.appCtx
import java.io.FileOutputStream
@@ -47,6 +63,7 @@ class ThemeConfigFragment : PreferenceFragment(),
requestCodeBgLight -> setBgFromUri(uri, PreferKey.bgImage) {
upTheme(false)
}
+
requestCodeBgDark -> setBgFromUri(uri, PreferKey.bgImageN) {
upTheme(true)
}
@@ -130,12 +147,14 @@ class ThemeConfigFragment : PreferenceFragment(),
PreferKey.cBBackground -> {
upTheme(false)
}
+
PreferKey.cNPrimary,
PreferKey.cNAccent,
PreferKey.cNBackground,
PreferKey.cNBBackground -> {
upTheme(true)
}
+
PreferKey.bgImage,
PreferKey.bgImageN -> {
upPreferenceSummary(key, getPrefString(key))
@@ -160,6 +179,7 @@ class ThemeConfigFragment : PreferenceFragment(),
AppConfig.elevation = it
recreateActivities()
}
+
PreferKey.fontScale -> NumberPickerDialog(requireContext())
.setTitle(getString(R.string.font_scale))
.setMaxValue(16)
@@ -173,15 +193,20 @@ class ThemeConfigFragment : PreferenceFragment(),
putPrefInt(PreferKey.fontScale, it)
recreateActivities()
}
+
PreferKey.bgImage -> selectBgAction(false)
PreferKey.bgImageN -> selectBgAction(true)
"themeList" -> ThemeListDialog().show(childFragmentManager, "themeList")
"saveDayTheme",
"saveNightTheme" -> alertSaveTheme(key)
- "coverConfig" -> (activity as? ConfigActivity)
- ?.replaceFragment(ConfigTag.COVER_CONFIG)
- "welcomeStyle" -> (activity as? ConfigActivity)
- ?.replaceFragment(ConfigTag.WELCOME_CONFIG)
+
+ "coverConfig" -> startActivity {
+ putExtra("configTag", ConfigTag.COVER_CONFIG)
+ }
+
+ "welcomeStyle" -> startActivity {
+ putExtra("configTag", ConfigTag.WELCOME_CONFIG)
+ }
}
return super.onPreferenceTreeClick(preference)
}
@@ -199,6 +224,7 @@ class ThemeConfigFragment : PreferenceFragment(),
"saveDayTheme" -> {
ThemeConfig.saveDayTheme(requireContext(), themeName)
}
+
"saveNightTheme" -> {
ThemeConfig.saveNightTheme(requireContext(), themeName)
}
@@ -224,6 +250,7 @@ class ThemeConfigFragment : PreferenceFragment(),
0 -> alertImageBlurring(blurringKey) {
upTheme(isNight)
}
+
1 -> {
if (isNight) {
selectImage.launch(requestCodeBgDark)
@@ -231,6 +258,7 @@ class ThemeConfigFragment : PreferenceFragment(),
selectImage.launch(requestCodeBgLight)
}
}
+
2 -> {
removePref(bgKey)
upTheme(isNight)
@@ -285,16 +313,19 @@ class ThemeConfigFragment : PreferenceFragment(),
when (preferenceKey) {
PreferKey.barElevation -> preference.summary =
getString(R.string.bar_elevation_s, value)
+
PreferKey.fontScale -> {
val fontScale = AppContextWrapper.getFontScale(requireContext())
preference.summary = getString(R.string.font_scale_summary, fontScale)
}
+
PreferKey.bgImage,
PreferKey.bgImageN -> preference.summary = if (value.isNullOrBlank()) {
getString(R.string.select_image)
} else {
value
}
+
else -> preference.summary = value
}
}
diff --git a/app/src/main/java/io/legado/app/utils/canvasrecorder/CanvasRecorderImpl.kt b/app/src/main/java/io/legado/app/utils/canvasrecorder/CanvasRecorderImpl.kt
index 59e3c5cb0159..3bc29681816d 100644
--- a/app/src/main/java/io/legado/app/utils/canvasrecorder/CanvasRecorderImpl.kt
+++ b/app/src/main/java/io/legado/app/utils/canvasrecorder/CanvasRecorderImpl.kt
@@ -15,6 +15,9 @@ class CanvasRecorderImpl : BaseCanvasRecorder() {
override val height get() = bitmap?.height ?: -1
private fun init(width: Int, height: Int) {
+ if (width <= 0 || height <= 0) {
+ return
+ }
if (bitmap == null) {
bitmap = BitmapPool.obtain(width, height)
}
@@ -34,13 +37,13 @@ class CanvasRecorderImpl : BaseCanvasRecorder() {
override fun beginRecording(width: Int, height: Int): Canvas {
init(width, height)
- bitmap!!.eraseColor(Color.TRANSPARENT)
- canvas = canvasPool.obtain().apply { setBitmap(bitmap!!) }
+ bitmap?.eraseColor(Color.TRANSPARENT)
+ canvas = canvasPool.obtain().apply { setBitmap(bitmap) }
return canvas!!
}
override fun endRecording() {
- bitmap!!.prepareToDraw()
+ bitmap?.prepareToDraw()
super.endRecording()
canvasPool.recycle(canvas!!)
canvas = null