修复
This commit is contained in:
@@ -75,7 +75,7 @@ abstract class BaseActivity<VB : ViewBinding>(
|
||||
return super.onCreateView(parent, name, context, attrs)
|
||||
}
|
||||
|
||||
@SuppressLint("ObsoleteSdkInt")
|
||||
|
||||
override fun onCreate(savedInstanceState: Bundle?) {
|
||||
applyTheme()
|
||||
window.decorView.disableAutoFill()
|
||||
@@ -84,10 +84,8 @@ abstract class BaseActivity<VB : ViewBinding>(
|
||||
//setupSystemBar()
|
||||
setContentView(binding.root)
|
||||
upBackgroundImage()
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
|
||||
findViewById<AppBarLayout>(R.id.title_bar)
|
||||
//?.onMultiWindowModeChanged(isInMultiWindowMode, fullScreen)
|
||||
}
|
||||
findViewById<AppBarLayout>(R.id.title_bar)
|
||||
//?.onMultiWindowModeChanged(isInMultiWindowMode, fullScreen)
|
||||
onBackPressedDispatcher.addCallback(this) {
|
||||
finish()
|
||||
}
|
||||
@@ -137,7 +135,10 @@ abstract class BaseActivity<VB : ViewBinding>(
|
||||
|
||||
open fun applyTheme() {
|
||||
when (getPrefString("app_theme", "0")) {
|
||||
"0" -> DynamicColors.applyToActivitiesIfAvailable(application)
|
||||
"0" ->
|
||||
{
|
||||
DynamicColors.applyToActivitiesIfAvailable(application)
|
||||
}
|
||||
"1" -> setTheme(R.style.Theme_Base_GR)
|
||||
"2" -> setTheme(R.style.Theme_Base_Lemon)
|
||||
"3" -> setTheme(R.style.Theme_Base_WH)
|
||||
|
||||
@@ -15,12 +15,18 @@ import splitties.init.appCtx
|
||||
object LauncherIconHelp {
|
||||
private val packageManager: PackageManager = appCtx.packageManager
|
||||
private val componentNames = arrayListOf(
|
||||
ComponentName(appCtx, Launcher1::class.java.name),
|
||||
ComponentName(appCtx, Launcher2::class.java.name),
|
||||
ComponentName(appCtx, Launcher3::class.java.name),
|
||||
ComponentName(appCtx, Launcher4::class.java.name),
|
||||
ComponentName(appCtx, Launcher5::class.java.name),
|
||||
ComponentName(appCtx, Launcher6::class.java.name)
|
||||
ComponentName(appCtx.packageName, "${appCtx.packageName}.Launcher1"),
|
||||
ComponentName(appCtx.packageName, "${appCtx.packageName}.Launcher2"),
|
||||
ComponentName(appCtx.packageName, "${appCtx.packageName}.Launcher3"),
|
||||
ComponentName(appCtx.packageName, "${appCtx.packageName}.Launcher4"),
|
||||
ComponentName(appCtx.packageName, "${appCtx.packageName}.Launcher5"),
|
||||
ComponentName(appCtx.packageName, "${appCtx.packageName}.Launcher6")
|
||||
)
|
||||
|
||||
// 主Activity的ComponentName
|
||||
private val mainActivity = ComponentName(
|
||||
appCtx.packageName,
|
||||
"${appCtx.packageName}.ui.main.MainActivity"
|
||||
)
|
||||
|
||||
fun changeIcon(icon: String?) {
|
||||
@@ -29,37 +35,79 @@ object LauncherIconHelp {
|
||||
appCtx.toastOnUi(R.string.change_icon_error)
|
||||
return
|
||||
}
|
||||
var hasEnabled = false
|
||||
componentNames.forEach {
|
||||
if (icon.equals(it.className.substringAfterLast("."), true)) {
|
||||
hasEnabled = true
|
||||
//启用
|
||||
|
||||
try {
|
||||
// 首先禁用主Activity的启动器intent
|
||||
disableMainActivityLauncher()
|
||||
|
||||
// 然后处理所有别名
|
||||
var matched = false
|
||||
componentNames.forEach {
|
||||
val aliasName = it.className.substringAfterLast(".")
|
||||
if (icon.equals(aliasName, ignoreCase = true)) {
|
||||
matched = true
|
||||
packageManager.setComponentEnabledSetting(
|
||||
it,
|
||||
PackageManager.COMPONENT_ENABLED_STATE_ENABLED,
|
||||
PackageManager.DONT_KILL_APP
|
||||
)
|
||||
} else {
|
||||
packageManager.setComponentEnabledSetting(
|
||||
it,
|
||||
PackageManager.COMPONENT_ENABLED_STATE_DISABLED,
|
||||
PackageManager.DONT_KILL_APP
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
if (!matched) {
|
||||
enableMainActivityLauncher()
|
||||
}
|
||||
|
||||
// 通知用户图标已更改
|
||||
appCtx.toastOnUi(R.string.change_icon_success)
|
||||
|
||||
} catch (e: Exception) {
|
||||
e.printStackTrace()
|
||||
appCtx.toastOnUi(R.string.change_icon_error)
|
||||
}
|
||||
}
|
||||
|
||||
// 禁用主Activity的启动器功能
|
||||
private fun disableMainActivityLauncher() {
|
||||
try {
|
||||
// 获取当前组件状态
|
||||
val state = packageManager.getComponentEnabledSetting(mainActivity)
|
||||
|
||||
// 如果已经禁用,不需要再次操作
|
||||
if (state != PackageManager.COMPONENT_ENABLED_STATE_DISABLED) {
|
||||
packageManager.setComponentEnabledSetting(
|
||||
it,
|
||||
PackageManager.COMPONENT_ENABLED_STATE_ENABLED,
|
||||
PackageManager.DONT_KILL_APP
|
||||
)
|
||||
} else {
|
||||
//禁用
|
||||
packageManager.setComponentEnabledSetting(
|
||||
it,
|
||||
mainActivity,
|
||||
PackageManager.COMPONENT_ENABLED_STATE_DISABLED,
|
||||
PackageManager.DONT_KILL_APP
|
||||
)
|
||||
}
|
||||
}
|
||||
if (hasEnabled) {
|
||||
packageManager.setComponentEnabledSetting(
|
||||
ComponentName(appCtx, WelcomeActivity::class.java.name),
|
||||
PackageManager.COMPONENT_ENABLED_STATE_DISABLED,
|
||||
PackageManager.DONT_KILL_APP
|
||||
)
|
||||
} else {
|
||||
packageManager.setComponentEnabledSetting(
|
||||
ComponentName(appCtx, WelcomeActivity::class.java.name),
|
||||
PackageManager.COMPONENT_ENABLED_STATE_ENABLED,
|
||||
PackageManager.DONT_KILL_APP
|
||||
)
|
||||
} catch (e: Exception) {
|
||||
e.printStackTrace()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// 启用主Activity的启动器功能
|
||||
private fun enableMainActivityLauncher() {
|
||||
try {
|
||||
// 获取当前组件状态
|
||||
val state = packageManager.getComponentEnabledSetting(mainActivity)
|
||||
|
||||
// 如果已经启用,不需要再次操作
|
||||
if (state != PackageManager.COMPONENT_ENABLED_STATE_ENABLED) {
|
||||
packageManager.setComponentEnabledSetting(
|
||||
mainActivity,
|
||||
PackageManager.COMPONENT_ENABLED_STATE_ENABLED,
|
||||
PackageManager.DONT_KILL_APP
|
||||
)
|
||||
}
|
||||
} catch (e: Exception) {
|
||||
e.printStackTrace()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -88,7 +88,7 @@ class ThemeCardPreference(context: Context, attrs: AttributeSet) : Preference(co
|
||||
}
|
||||
|
||||
private val themeResIdMap = mapOf(
|
||||
"0" to R.style.Base_AppTheme,
|
||||
"0" to R.style.Theme_Base_Dycolors,
|
||||
"1" to R.style.Theme_Base_GR,
|
||||
"2" to R.style.Theme_Base_Lemon,
|
||||
"3" to R.style.Theme_Base_WH,
|
||||
@@ -106,7 +106,7 @@ class ThemeCardPreference(context: Context, attrs: AttributeSet) : Preference(co
|
||||
com.google.android.material.R.attr.colorPrimary,
|
||||
com.google.android.material.R.attr.colorOnSurfaceVariant,
|
||||
com.google.android.material.R.attr.colorSurface,
|
||||
com.google.android.material.R.attr.colorPrimaryFixed,
|
||||
com.google.android.material.R.attr.colorSecondaryContainer,
|
||||
)
|
||||
|
||||
val ta = themedContext.obtainStyledAttributes(attrs)
|
||||
|
||||
@@ -83,7 +83,6 @@ class TxtTocRuleDialog() : BaseDialogFragment(R.layout.dialog_toc_regex),
|
||||
|
||||
override fun onStart() {
|
||||
super.onStart()
|
||||
setLayout(0.9f, 0.8f)
|
||||
}
|
||||
|
||||
override fun onFragmentCreated(view: View, savedInstanceState: Bundle?) {
|
||||
|
||||
@@ -57,6 +57,7 @@ import splitties.views.bottomPadding
|
||||
import kotlin.coroutines.resume
|
||||
import kotlin.coroutines.suspendCoroutine
|
||||
import androidx.core.view.get
|
||||
import io.legato.kazusa.ui.welcome.WelcomeActivity
|
||||
|
||||
/**
|
||||
* 主界面
|
||||
@@ -413,7 +414,7 @@ class MainActivity : VMBaseActivity<ActivityMainBinding, MainViewModel>(),
|
||||
}
|
||||
}
|
||||
|
||||
@Suppress("DEPRECATION")
|
||||
|
||||
private inner class TabFragmentPageAdapter(fm: FragmentManager) :
|
||||
FragmentStatePagerAdapter(fm, BEHAVIOR_RESUME_ONLY_CURRENT_FRAGMENT) {
|
||||
|
||||
|
||||
Reference in New Issue
Block a user