From 60d9b2863560a21422aea1571f8fa311383b2a34 Mon Sep 17 00:00:00 2001 From: Horis <821938089@qq.com> Date: Sat, 23 Dec 2023 12:50:19 +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 --- .../io/legado/app/help/config/AppConfig.kt | 15 +++-- .../io/legado/app/help/config/LocalConfig.kt | 1 + .../legado/app/help/config/ReadBookConfig.kt | 1 + .../app/ui/book/read/ReadBookActivity.kt | 56 +++++++++++++++++-- .../legado/app/ui/rss/read/ReadRssActivity.kt | 34 +++++++++-- .../io/legado/app/utils/ViewExtensions.kt | 14 +++-- 6 files changed, 99 insertions(+), 22 deletions(-) diff --git a/app/src/main/java/io/legado/app/help/config/AppConfig.kt b/app/src/main/java/io/legado/app/help/config/AppConfig.kt index 81134665a..b59cc3250 100644 --- a/app/src/main/java/io/legado/app/help/config/AppConfig.kt +++ b/app/src/main/java/io/legado/app/help/config/AppConfig.kt @@ -1,6 +1,5 @@ package io.legado.app.help.config -import android.content.Context import android.content.SharedPreferences import android.os.Build import io.legado.app.BuildConfig @@ -36,10 +35,14 @@ object AppConfig : SharedPreferences.OnSharedPreferenceChangeListener { var clickActionBL = appCtx.getPrefInt(PreferKey.clickActionBL, 2) var clickActionBC = appCtx.getPrefInt(PreferKey.clickActionBC, 1) var clickActionBR = appCtx.getPrefInt(PreferKey.clickActionBR, 1) + var themeMode = appCtx.getPrefString(PreferKey.themeMode, "0") override fun onSharedPreferenceChanged(sharedPreferences: SharedPreferences?, key: String?) { when (key) { - PreferKey.themeMode -> isEInkMode = appCtx.getPrefString(PreferKey.themeMode) == "3" + PreferKey.themeMode -> { + themeMode = appCtx.getPrefString(PreferKey.themeMode, "0") + isEInkMode = themeMode == "3" + } PreferKey.clickActionTL -> clickActionTL = appCtx.getPrefInt(PreferKey.clickActionTL, 2) @@ -80,17 +83,13 @@ object AppConfig : SharedPreferences.OnSharedPreferenceChangeListener { } } - fun isNightTheme(context: Context): Boolean { - return when (context.getPrefString(PreferKey.themeMode, "0")) { + var isNightTheme: Boolean + get() = when (themeMode) { "1" -> false "2" -> true "3" -> false else -> sysConfiguration.isNightMode } - } - - var isNightTheme: Boolean - get() = isNightTheme(appCtx) set(value) { if (isNightTheme != value) { if (value) { diff --git a/app/src/main/java/io/legado/app/help/config/LocalConfig.kt b/app/src/main/java/io/legado/app/help/config/LocalConfig.kt index ff7e8e63a..255cb2ab2 100644 --- a/app/src/main/java/io/legado/app/help/config/LocalConfig.kt +++ b/app/src/main/java/io/legado/app/help/config/LocalConfig.kt @@ -10,6 +10,7 @@ import io.legado.app.utils.putString import io.legado.app.utils.remove import splitties.init.appCtx +@Suppress("ConstPropertyName") object LocalConfig : SharedPreferences by appCtx.getSharedPreferences("local", Context.MODE_PRIVATE) { diff --git a/app/src/main/java/io/legado/app/help/config/ReadBookConfig.kt b/app/src/main/java/io/legado/app/help/config/ReadBookConfig.kt index 945536352..a43f4ca34 100644 --- a/app/src/main/java/io/legado/app/help/config/ReadBookConfig.kt +++ b/app/src/main/java/io/legado/app/help/config/ReadBookConfig.kt @@ -39,6 +39,7 @@ import java.io.File /** * 阅读界面配置 */ +@Suppress("ConstPropertyName") @Keep object ReadBookConfig { const val configFileName = "readConfig.json" 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 4bbe1279a..9b09e1eb7 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 @@ -6,7 +6,13 @@ import android.content.Intent import android.content.res.Configuration import android.net.Uri import android.os.Bundle -import android.view.* +import android.view.Gravity +import android.view.InputDevice +import android.view.KeyEvent +import android.view.Menu +import android.view.MenuItem +import android.view.MotionEvent +import android.view.View import androidx.activity.addCallback import androidx.activity.result.contract.ActivityResultContracts import androidx.appcompat.widget.PopupMenu @@ -17,7 +23,12 @@ import androidx.lifecycle.lifecycleScope import com.jaredrummler.android.colorpicker.ColorPickerDialogListener import io.legado.app.BuildConfig import io.legado.app.R -import io.legado.app.constant.* +import io.legado.app.constant.AppConst +import io.legado.app.constant.AppLog +import io.legado.app.constant.BookType +import io.legado.app.constant.EventBus +import io.legado.app.constant.PreferKey +import io.legado.app.constant.Status import io.legado.app.data.appDb import io.legado.app.data.entities.Book import io.legado.app.data.entities.BookChapter @@ -27,7 +38,13 @@ import io.legado.app.exception.NoStackTraceException import io.legado.app.help.AppWebDav import io.legado.app.help.IntentData import io.legado.app.help.TTS -import io.legado.app.help.book.* +import io.legado.app.help.book.BookHelp +import io.legado.app.help.book.ContentProcessor +import io.legado.app.help.book.isAudio +import io.legado.app.help.book.isEpub +import io.legado.app.help.book.isLocal +import io.legado.app.help.book.isLocalTxt +import io.legado.app.help.book.removeType import io.legado.app.help.config.AppConfig import io.legado.app.help.config.ReadBookConfig import io.legado.app.help.config.ReadTipConfig @@ -74,9 +91,36 @@ import io.legado.app.ui.replace.edit.ReplaceEditActivity import io.legado.app.ui.widget.PopupAction import io.legado.app.ui.widget.dialog.PhotoDialog import io.legado.app.ui.widget.dialog.TextDialog -import io.legado.app.utils.* -import kotlinx.coroutines.* +import io.legado.app.utils.ACache +import io.legado.app.utils.LogUtils +import io.legado.app.utils.StartActivityContract +import io.legado.app.utils.SyncedRenderer +import io.legado.app.utils.applyOpenTint +import io.legado.app.utils.getPrefBoolean +import io.legado.app.utils.getPrefString +import io.legado.app.utils.hexString +import io.legado.app.utils.iconItemOnLongClick +import io.legado.app.utils.invisible +import io.legado.app.utils.isAbsUrl +import io.legado.app.utils.isTrue +import io.legado.app.utils.launch +import io.legado.app.utils.navigationBarGravity +import io.legado.app.utils.navigationBarHeight +import io.legado.app.utils.observeEvent +import io.legado.app.utils.observeEventSticky +import io.legado.app.utils.postEvent +import io.legado.app.utils.showDialogFragment +import io.legado.app.utils.startActivity +import io.legado.app.utils.sysScreenOffTime +import io.legado.app.utils.toastOnUi +import io.legado.app.utils.visible import kotlinx.coroutines.Dispatchers.IO +import kotlinx.coroutines.Job +import kotlinx.coroutines.Runnable +import kotlinx.coroutines.cancelChildren +import kotlinx.coroutines.delay +import kotlinx.coroutines.launch +import kotlinx.coroutines.withContext /** * 阅读界面 @@ -838,7 +882,7 @@ class ReadBookActivity : BaseReadBookActivity(), return false } if (!AppConfig.volumeKeyPageOnLongPress && longPress) { - return false + return true } binding.readView.cancelSelect() binding.readView.pageDelegate?.isCancel = false diff --git a/app/src/main/java/io/legado/app/ui/rss/read/ReadRssActivity.kt b/app/src/main/java/io/legado/app/ui/rss/read/ReadRssActivity.kt index babbdf822..0e398b843 100644 --- a/app/src/main/java/io/legado/app/ui/rss/read/ReadRssActivity.kt +++ b/app/src/main/java/io/legado/app/ui/rss/read/ReadRssActivity.kt @@ -6,8 +6,19 @@ import android.content.res.Configuration import android.net.Uri import android.net.http.SslError import android.os.Bundle -import android.view.* -import android.webkit.* +import android.view.Menu +import android.view.MenuItem +import android.view.View +import android.view.WindowManager +import android.webkit.JavascriptInterface +import android.webkit.SslErrorHandler +import android.webkit.URLUtil +import android.webkit.WebChromeClient +import android.webkit.WebResourceRequest +import android.webkit.WebResourceResponse +import android.webkit.WebSettings +import android.webkit.WebView +import android.webkit.WebViewClient import androidx.activity.addCallback import androidx.activity.viewModels import androidx.core.view.size @@ -29,8 +40,23 @@ import io.legado.app.model.Download import io.legado.app.ui.association.OnLineImportActivity import io.legado.app.ui.file.HandleFileContract import io.legado.app.ui.login.SourceLoginActivity -import io.legado.app.utils.* +import io.legado.app.utils.ACache +import io.legado.app.utils.NetworkUtils +import io.legado.app.utils.get +import io.legado.app.utils.gone +import io.legado.app.utils.invisible +import io.legado.app.utils.isTrue +import io.legado.app.utils.longSnackbar +import io.legado.app.utils.openUrl +import io.legado.app.utils.setDarkeningAllowed +import io.legado.app.utils.setTintMutate +import io.legado.app.utils.share +import io.legado.app.utils.splitNotBlank +import io.legado.app.utils.startActivity +import io.legado.app.utils.textArray +import io.legado.app.utils.toastOnUi import io.legado.app.utils.viewbindingdelegate.viewBinding +import io.legado.app.utils.visible import kotlinx.coroutines.launch import org.apache.commons.text.StringEscapeUtils import org.jsoup.Jsoup @@ -146,7 +172,7 @@ class ReadRssActivity : VMBaseActivity @JavascriptInterface fun isNightTheme(): Boolean { - return AppConfig.isNightTheme(this) + return AppConfig.isNightTheme } @SuppressLint("SetJavaScriptEnabled") diff --git a/app/src/main/java/io/legado/app/utils/ViewExtensions.kt b/app/src/main/java/io/legado/app/utils/ViewExtensions.kt index 473bc3a17..91fb16c9f 100644 --- a/app/src/main/java/io/legado/app/utils/ViewExtensions.kt +++ b/app/src/main/java/io/legado/app/utils/ViewExtensions.kt @@ -11,9 +11,16 @@ import android.os.Build import android.text.Html import android.view.MotionEvent import android.view.View -import android.view.View.* +import android.view.View.GONE +import android.view.View.IMPORTANT_FOR_AUTOFILL_NO_EXCLUDE_DESCENDANTS +import android.view.View.INVISIBLE +import android.view.View.VISIBLE import android.view.inputmethod.InputMethodManager -import android.widget.* +import android.widget.EdgeEffect +import android.widget.EditText +import android.widget.RadioGroup +import android.widget.SeekBar +import android.widget.TextView import androidx.annotation.ColorInt import androidx.appcompat.app.AppCompatActivity import androidx.appcompat.view.menu.MenuPopupHelper @@ -24,7 +31,6 @@ import androidx.viewpager.widget.ViewPager import io.legado.app.help.config.AppConfig import io.legado.app.lib.theme.TintHelper import splitties.systemservices.inputMethodManager - import java.lang.reflect.Field @@ -57,7 +63,7 @@ fun View.disableAutoFill() = run { fun View.applyTint( @ColorInt color: Int, - isDark: Boolean = AppConfig.isNightTheme(context) + isDark: Boolean = AppConfig.isNightTheme ) { TintHelper.setTintAuto(this, color, false, isDark) }