mirror of
https://github.com/gedoor/legado.git
synced 2024-08-30 09:23:26 +08:00
优化
This commit is contained in:
parent
456188a8c8
commit
ab0a4b78d7
@ -1,6 +1,5 @@
|
|||||||
package io.legado.app.help.config
|
package io.legado.app.help.config
|
||||||
|
|
||||||
import android.content.Context
|
|
||||||
import android.content.SharedPreferences
|
import android.content.SharedPreferences
|
||||||
import android.os.Build
|
import android.os.Build
|
||||||
import io.legado.app.BuildConfig
|
import io.legado.app.BuildConfig
|
||||||
@ -36,10 +35,14 @@ object AppConfig : SharedPreferences.OnSharedPreferenceChangeListener {
|
|||||||
var clickActionBL = appCtx.getPrefInt(PreferKey.clickActionBL, 2)
|
var clickActionBL = appCtx.getPrefInt(PreferKey.clickActionBL, 2)
|
||||||
var clickActionBC = appCtx.getPrefInt(PreferKey.clickActionBC, 1)
|
var clickActionBC = appCtx.getPrefInt(PreferKey.clickActionBC, 1)
|
||||||
var clickActionBR = appCtx.getPrefInt(PreferKey.clickActionBR, 1)
|
var clickActionBR = appCtx.getPrefInt(PreferKey.clickActionBR, 1)
|
||||||
|
var themeMode = appCtx.getPrefString(PreferKey.themeMode, "0")
|
||||||
|
|
||||||
override fun onSharedPreferenceChanged(sharedPreferences: SharedPreferences?, key: String?) {
|
override fun onSharedPreferenceChanged(sharedPreferences: SharedPreferences?, key: String?) {
|
||||||
when (key) {
|
when (key) {
|
||||||
PreferKey.themeMode -> isEInkMode = appCtx.getPrefString(PreferKey.themeMode) == "3"
|
PreferKey.themeMode -> {
|
||||||
|
themeMode = appCtx.getPrefString(PreferKey.themeMode, "0")
|
||||||
|
isEInkMode = themeMode == "3"
|
||||||
|
}
|
||||||
PreferKey.clickActionTL -> clickActionTL =
|
PreferKey.clickActionTL -> clickActionTL =
|
||||||
appCtx.getPrefInt(PreferKey.clickActionTL, 2)
|
appCtx.getPrefInt(PreferKey.clickActionTL, 2)
|
||||||
|
|
||||||
@ -80,17 +83,13 @@ object AppConfig : SharedPreferences.OnSharedPreferenceChangeListener {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fun isNightTheme(context: Context): Boolean {
|
var isNightTheme: Boolean
|
||||||
return when (context.getPrefString(PreferKey.themeMode, "0")) {
|
get() = when (themeMode) {
|
||||||
"1" -> false
|
"1" -> false
|
||||||
"2" -> true
|
"2" -> true
|
||||||
"3" -> false
|
"3" -> false
|
||||||
else -> sysConfiguration.isNightMode
|
else -> sysConfiguration.isNightMode
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
var isNightTheme: Boolean
|
|
||||||
get() = isNightTheme(appCtx)
|
|
||||||
set(value) {
|
set(value) {
|
||||||
if (isNightTheme != value) {
|
if (isNightTheme != value) {
|
||||||
if (value) {
|
if (value) {
|
||||||
|
@ -10,6 +10,7 @@ import io.legado.app.utils.putString
|
|||||||
import io.legado.app.utils.remove
|
import io.legado.app.utils.remove
|
||||||
import splitties.init.appCtx
|
import splitties.init.appCtx
|
||||||
|
|
||||||
|
@Suppress("ConstPropertyName")
|
||||||
object LocalConfig : SharedPreferences
|
object LocalConfig : SharedPreferences
|
||||||
by appCtx.getSharedPreferences("local", Context.MODE_PRIVATE) {
|
by appCtx.getSharedPreferences("local", Context.MODE_PRIVATE) {
|
||||||
|
|
||||||
|
@ -39,6 +39,7 @@ import java.io.File
|
|||||||
/**
|
/**
|
||||||
* 阅读界面配置
|
* 阅读界面配置
|
||||||
*/
|
*/
|
||||||
|
@Suppress("ConstPropertyName")
|
||||||
@Keep
|
@Keep
|
||||||
object ReadBookConfig {
|
object ReadBookConfig {
|
||||||
const val configFileName = "readConfig.json"
|
const val configFileName = "readConfig.json"
|
||||||
|
@ -6,7 +6,13 @@ import android.content.Intent
|
|||||||
import android.content.res.Configuration
|
import android.content.res.Configuration
|
||||||
import android.net.Uri
|
import android.net.Uri
|
||||||
import android.os.Bundle
|
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.addCallback
|
||||||
import androidx.activity.result.contract.ActivityResultContracts
|
import androidx.activity.result.contract.ActivityResultContracts
|
||||||
import androidx.appcompat.widget.PopupMenu
|
import androidx.appcompat.widget.PopupMenu
|
||||||
@ -17,7 +23,12 @@ import androidx.lifecycle.lifecycleScope
|
|||||||
import com.jaredrummler.android.colorpicker.ColorPickerDialogListener
|
import com.jaredrummler.android.colorpicker.ColorPickerDialogListener
|
||||||
import io.legado.app.BuildConfig
|
import io.legado.app.BuildConfig
|
||||||
import io.legado.app.R
|
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.appDb
|
||||||
import io.legado.app.data.entities.Book
|
import io.legado.app.data.entities.Book
|
||||||
import io.legado.app.data.entities.BookChapter
|
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.AppWebDav
|
||||||
import io.legado.app.help.IntentData
|
import io.legado.app.help.IntentData
|
||||||
import io.legado.app.help.TTS
|
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.AppConfig
|
||||||
import io.legado.app.help.config.ReadBookConfig
|
import io.legado.app.help.config.ReadBookConfig
|
||||||
import io.legado.app.help.config.ReadTipConfig
|
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.PopupAction
|
||||||
import io.legado.app.ui.widget.dialog.PhotoDialog
|
import io.legado.app.ui.widget.dialog.PhotoDialog
|
||||||
import io.legado.app.ui.widget.dialog.TextDialog
|
import io.legado.app.ui.widget.dialog.TextDialog
|
||||||
import io.legado.app.utils.*
|
import io.legado.app.utils.ACache
|
||||||
import kotlinx.coroutines.*
|
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.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
|
return false
|
||||||
}
|
}
|
||||||
if (!AppConfig.volumeKeyPageOnLongPress && longPress) {
|
if (!AppConfig.volumeKeyPageOnLongPress && longPress) {
|
||||||
return false
|
return true
|
||||||
}
|
}
|
||||||
binding.readView.cancelSelect()
|
binding.readView.cancelSelect()
|
||||||
binding.readView.pageDelegate?.isCancel = false
|
binding.readView.pageDelegate?.isCancel = false
|
||||||
|
@ -6,8 +6,19 @@ import android.content.res.Configuration
|
|||||||
import android.net.Uri
|
import android.net.Uri
|
||||||
import android.net.http.SslError
|
import android.net.http.SslError
|
||||||
import android.os.Bundle
|
import android.os.Bundle
|
||||||
import android.view.*
|
import android.view.Menu
|
||||||
import android.webkit.*
|
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.addCallback
|
||||||
import androidx.activity.viewModels
|
import androidx.activity.viewModels
|
||||||
import androidx.core.view.size
|
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.association.OnLineImportActivity
|
||||||
import io.legado.app.ui.file.HandleFileContract
|
import io.legado.app.ui.file.HandleFileContract
|
||||||
import io.legado.app.ui.login.SourceLoginActivity
|
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.viewbindingdelegate.viewBinding
|
||||||
|
import io.legado.app.utils.visible
|
||||||
import kotlinx.coroutines.launch
|
import kotlinx.coroutines.launch
|
||||||
import org.apache.commons.text.StringEscapeUtils
|
import org.apache.commons.text.StringEscapeUtils
|
||||||
import org.jsoup.Jsoup
|
import org.jsoup.Jsoup
|
||||||
@ -146,7 +172,7 @@ class ReadRssActivity : VMBaseActivity<ActivityRssReadBinding, ReadRssViewModel>
|
|||||||
|
|
||||||
@JavascriptInterface
|
@JavascriptInterface
|
||||||
fun isNightTheme(): Boolean {
|
fun isNightTheme(): Boolean {
|
||||||
return AppConfig.isNightTheme(this)
|
return AppConfig.isNightTheme
|
||||||
}
|
}
|
||||||
|
|
||||||
@SuppressLint("SetJavaScriptEnabled")
|
@SuppressLint("SetJavaScriptEnabled")
|
||||||
|
@ -11,9 +11,16 @@ import android.os.Build
|
|||||||
import android.text.Html
|
import android.text.Html
|
||||||
import android.view.MotionEvent
|
import android.view.MotionEvent
|
||||||
import android.view.View
|
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.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.annotation.ColorInt
|
||||||
import androidx.appcompat.app.AppCompatActivity
|
import androidx.appcompat.app.AppCompatActivity
|
||||||
import androidx.appcompat.view.menu.MenuPopupHelper
|
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.help.config.AppConfig
|
||||||
import io.legado.app.lib.theme.TintHelper
|
import io.legado.app.lib.theme.TintHelper
|
||||||
import splitties.systemservices.inputMethodManager
|
import splitties.systemservices.inputMethodManager
|
||||||
|
|
||||||
import java.lang.reflect.Field
|
import java.lang.reflect.Field
|
||||||
|
|
||||||
|
|
||||||
@ -57,7 +63,7 @@ fun View.disableAutoFill() = run {
|
|||||||
|
|
||||||
fun View.applyTint(
|
fun View.applyTint(
|
||||||
@ColorInt color: Int,
|
@ColorInt color: Int,
|
||||||
isDark: Boolean = AppConfig.isNightTheme(context)
|
isDark: Boolean = AppConfig.isNightTheme
|
||||||
) {
|
) {
|
||||||
TintHelper.setTintAuto(this, color, false, isDark)
|
TintHelper.setTintAuto(this, color, false, isDark)
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user