pro版本添加自定义启动画面
This commit is contained in:
@@ -95,6 +95,10 @@ object PreferKey {
|
||||
const val uploadRule = "uploadRule"
|
||||
const val tocUiUseReplace = "tocUiUseReplace"
|
||||
const val enableReadRecord = "enableReadRecord"
|
||||
const val welcomeImage = "welcomeImagePath"
|
||||
const val welcomeImageDark = "welcomeImagePathDark"
|
||||
const val welcomeShowText = "welcomeShowText"
|
||||
const val welcomeShowTextDark = "welcomeShowTextDark"
|
||||
|
||||
const val cPrimary = "colorPrimary"
|
||||
const val cAccent = "colorAccent"
|
||||
|
||||
@@ -19,6 +19,7 @@ class ConfigActivity : BaseActivity<ActivityConfigBinding>() {
|
||||
ConfigTag.THEME_CONFIG -> replaceFragment<ThemeConfigFragment>(configTag)
|
||||
ConfigTag.BACKUP_CONFIG -> replaceFragment<BackupConfigFragment>(configTag)
|
||||
ConfigTag.COVER_CONFIG -> replaceFragment<CoverConfigFragment>(configTag)
|
||||
ConfigTag.WELCOME_CONFIG -> replaceFragment<WelcomeConfigFragment>(configTag)
|
||||
else -> finish()
|
||||
}
|
||||
}
|
||||
|
||||
@@ -6,5 +6,6 @@ object ConfigTag {
|
||||
const val THEME_CONFIG = "themeConfig"
|
||||
const val BACKUP_CONFIG = "backupConfig"
|
||||
const val COVER_CONFIG = "coverConfig"
|
||||
const val WELCOME_CONFIG = "welcomeConfig"
|
||||
|
||||
}
|
||||
@@ -84,12 +84,17 @@ class CoverConfigFragment : BasePreferenceFragment(),
|
||||
override fun onPreferenceTreeClick(preference: Preference): Boolean {
|
||||
when (preference.key) {
|
||||
PreferKey.defaultCover ->
|
||||
if (getPrefString(PreferKey.defaultCover).isNullOrEmpty()) {
|
||||
if (getPrefString(preference.key).isNullOrEmpty()) {
|
||||
selectImage.launch(requestCodeCover)
|
||||
} else {
|
||||
context?.selector(items = arrayListOf("删除图片", "选择图片")) { _, i ->
|
||||
context?.selector(
|
||||
items = arrayListOf(
|
||||
getString(R.string.delete),
|
||||
getString(R.string.select_image)
|
||||
)
|
||||
) { _, i ->
|
||||
if (i == 0) {
|
||||
removePref(PreferKey.defaultCover)
|
||||
removePref(preference.key)
|
||||
BookCover.upDefaultCover()
|
||||
} else {
|
||||
selectImage.launch(requestCodeCover)
|
||||
@@ -97,12 +102,17 @@ class CoverConfigFragment : BasePreferenceFragment(),
|
||||
}
|
||||
}
|
||||
PreferKey.defaultCoverDark ->
|
||||
if (getPrefString(PreferKey.defaultCoverDark).isNullOrEmpty()) {
|
||||
if (getPrefString(preference.key).isNullOrEmpty()) {
|
||||
selectImage.launch(requestCodeCoverDark)
|
||||
} else {
|
||||
context?.selector(items = arrayListOf("删除图片", "选择图片")) { _, i ->
|
||||
context?.selector(
|
||||
items = arrayListOf(
|
||||
getString(R.string.delete),
|
||||
getString(R.string.select_image)
|
||||
)
|
||||
) { _, i ->
|
||||
if (i == 0) {
|
||||
removePref(PreferKey.defaultCoverDark)
|
||||
removePref(preference.key)
|
||||
BookCover.upDefaultCover()
|
||||
} else {
|
||||
selectImage.launch(requestCodeCoverDark)
|
||||
|
||||
@@ -55,6 +55,9 @@ class ThemeConfigFragment : BasePreferenceFragment(),
|
||||
if (Build.VERSION.SDK_INT < 26) {
|
||||
preferenceScreen.removePreferenceRecursively(PreferKey.launcherIcon)
|
||||
}
|
||||
if (!AppConfig.isGooglePlay) {
|
||||
preferenceScreen.removePreferenceRecursively("welcomeStyle")
|
||||
}
|
||||
upPreferenceSummary(PreferKey.bgImage, getPrefString(PreferKey.bgImage))
|
||||
upPreferenceSummary(PreferKey.bgImageN, getPrefString(PreferKey.bgImageN))
|
||||
upPreferenceSummary(PreferKey.barElevation, AppConfig.elevation.toString())
|
||||
@@ -175,6 +178,8 @@ class ThemeConfigFragment : BasePreferenceFragment(),
|
||||
"saveNightTheme" -> alertSaveTheme(key)
|
||||
"coverConfig" -> (activity as? ConfigActivity)
|
||||
?.replaceFragment<CoverConfigFragment>(ConfigTag.COVER_CONFIG)
|
||||
"welcomeStyle" -> (activity as? ConfigActivity)
|
||||
?.replaceFragment<CoverConfigFragment>(ConfigTag.WELCOME_CONFIG)
|
||||
}
|
||||
return super.onPreferenceTreeClick(preference)
|
||||
}
|
||||
|
||||
@@ -0,0 +1,130 @@
|
||||
package io.legado.app.ui.config
|
||||
|
||||
import android.annotation.SuppressLint
|
||||
import android.content.SharedPreferences
|
||||
import android.net.Uri
|
||||
import android.os.Bundle
|
||||
import android.view.View
|
||||
import androidx.preference.Preference
|
||||
import io.legado.app.R
|
||||
import io.legado.app.base.BasePreferenceFragment
|
||||
import io.legado.app.constant.PreferKey
|
||||
import io.legado.app.lib.dialogs.selector
|
||||
import io.legado.app.lib.theme.primaryColor
|
||||
import io.legado.app.model.BookCover
|
||||
import io.legado.app.utils.*
|
||||
|
||||
class WelcomeConfigFragment : BasePreferenceFragment(),
|
||||
SharedPreferences.OnSharedPreferenceChangeListener {
|
||||
|
||||
private val requestWelcomeImage = 221
|
||||
private val requestWelcomeImageDark = 222
|
||||
private val selectImage = registerForActivityResult(SelectImageContract()) {
|
||||
it.uri?.let { uri ->
|
||||
when (it.requestCode) {
|
||||
requestWelcomeImage -> setCoverFromUri(PreferKey.defaultCover, uri)
|
||||
requestWelcomeImageDark -> setCoverFromUri(PreferKey.defaultCoverDark, uri)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
override fun onCreatePreferences(savedInstanceState: Bundle?, rootKey: String?) {
|
||||
addPreferencesFromResource(R.xml.pref_config_welcome)
|
||||
upPreferenceSummary(PreferKey.welcomeImage, getPrefString(PreferKey.welcomeImage))
|
||||
upPreferenceSummary(PreferKey.welcomeImageDark, getPrefString(PreferKey.welcomeImageDark))
|
||||
}
|
||||
|
||||
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
||||
super.onViewCreated(view, savedInstanceState)
|
||||
activity?.setTitle(R.string.cover_config)
|
||||
listView.setEdgeEffectColor(primaryColor)
|
||||
setHasOptionsMenu(true)
|
||||
}
|
||||
|
||||
override fun onCreate(savedInstanceState: Bundle?) {
|
||||
super.onCreate(savedInstanceState)
|
||||
preferenceManager.sharedPreferences?.registerOnSharedPreferenceChangeListener(this)
|
||||
}
|
||||
|
||||
override fun onDestroy() {
|
||||
super.onDestroy()
|
||||
preferenceManager.sharedPreferences?.unregisterOnSharedPreferenceChangeListener(this)
|
||||
}
|
||||
|
||||
override fun onSharedPreferenceChanged(sharedPreferences: SharedPreferences?, key: String?) {
|
||||
sharedPreferences ?: return
|
||||
when (key) {
|
||||
PreferKey.welcomeImage,
|
||||
PreferKey.welcomeImageDark -> {
|
||||
upPreferenceSummary(key, getPrefString(key))
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@SuppressLint("PrivateResource")
|
||||
override fun onPreferenceTreeClick(preference: Preference): Boolean {
|
||||
when (preference.key) {
|
||||
PreferKey.welcomeImage ->
|
||||
if (getPrefString(preference.key).isNullOrEmpty()) {
|
||||
selectImage.launch(requestWelcomeImage)
|
||||
} else {
|
||||
context?.selector(
|
||||
items = arrayListOf(
|
||||
getString(R.string.delete),
|
||||
getString(R.string.select_image)
|
||||
)
|
||||
) { _, i ->
|
||||
if (i == 0) {
|
||||
removePref(preference.key)
|
||||
BookCover.upDefaultCover()
|
||||
} else {
|
||||
selectImage.launch(requestWelcomeImage)
|
||||
}
|
||||
}
|
||||
}
|
||||
PreferKey.welcomeImageDark ->
|
||||
if (getPrefString(preference.key).isNullOrEmpty()) {
|
||||
selectImage.launch(requestWelcomeImageDark)
|
||||
} else {
|
||||
context?.selector(
|
||||
items = arrayListOf(
|
||||
getString(R.string.delete),
|
||||
getString(R.string.select_image)
|
||||
)
|
||||
) { _, i ->
|
||||
if (i == 0) {
|
||||
removePref(preference.key)
|
||||
BookCover.upDefaultCover()
|
||||
} else {
|
||||
selectImage.launch(requestWelcomeImageDark)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return super.onPreferenceTreeClick(preference)
|
||||
}
|
||||
|
||||
private fun upPreferenceSummary(preferenceKey: String, value: String?) {
|
||||
val preference = findPreference<Preference>(preferenceKey) ?: return
|
||||
when (preferenceKey) {
|
||||
PreferKey.defaultCover,
|
||||
PreferKey.defaultCoverDark -> preference.summary = if (value.isNullOrBlank()) {
|
||||
getString(R.string.select_image)
|
||||
} else {
|
||||
value
|
||||
}
|
||||
else -> preference.summary = value
|
||||
}
|
||||
}
|
||||
|
||||
private fun setCoverFromUri(preferenceKey: String, uri: Uri) {
|
||||
readUri(uri) { name, bytes ->
|
||||
var file = requireContext().externalFiles
|
||||
file = FileUtils.createFileIfNotExist(file, "covers", name)
|
||||
file.writeBytes(bytes)
|
||||
putPrefString(preferenceKey, file.absolutePath)
|
||||
BookCover.upDefaultCover()
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@@ -66,6 +66,10 @@ class MyFragment : BaseFragment(R.layout.fragment_my_config) {
|
||||
override fun onCreatePreferences(savedInstanceState: Bundle?, rootKey: String?) {
|
||||
putPrefBoolean(PreferKey.webService, WebService.isRun)
|
||||
addPreferencesFromResource(R.xml.pref_main)
|
||||
if (AppConfig.isGooglePlay) {
|
||||
findPreference<PreferenceCategory>("aboutCategory")
|
||||
?.removePreferenceRecursively("donate")
|
||||
}
|
||||
findPreference<SwitchPreference>("webService")?.onLongClick {
|
||||
if (!WebService.isRun) {
|
||||
return@onLongClick false
|
||||
@@ -94,10 +98,6 @@ class MyFragment : BaseFragment(R.layout.fragment_my_config) {
|
||||
true
|
||||
}
|
||||
}
|
||||
if (AppConfig.isGooglePlay) {
|
||||
findPreference<PreferenceCategory>("aboutCategory")
|
||||
?.removePreferenceRecursively("donate")
|
||||
}
|
||||
}
|
||||
|
||||
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
||||
|
||||
Reference in New Issue
Block a user