mirror of
https://gitee.com/zhangsken/AndroidIDE.git
synced 2026-10-16 07:49:44 +08:00
feat: add preference to toggle dynamic colors
This commit is contained in:
@@ -29,6 +29,7 @@ import com.itsaky.androidide.events.AppEventsIndex
|
||||
import com.itsaky.androidide.events.LspApiEventsIndex
|
||||
import com.itsaky.androidide.events.LspJavaEventsIndex
|
||||
import com.itsaky.androidide.events.ProjectsApiEventsIndex
|
||||
import com.itsaky.androidide.preferences.internal.enableMaterialYou
|
||||
import com.itsaky.androidide.preferences.internal.uiMode
|
||||
import com.itsaky.androidide.tasks.executeAsync
|
||||
import com.itsaky.androidide.utils.ILogger
|
||||
@@ -63,7 +64,10 @@ class IDEApplication : BaseApplication() {
|
||||
.installDefaultEventBus()
|
||||
|
||||
AppCompatDelegate.setDefaultNightMode(uiMode)
|
||||
// DynamicColors.applyToActivitiesIfAvailable(this)
|
||||
|
||||
if (enableMaterialYou) {
|
||||
DynamicColors.applyToActivitiesIfAvailable(this)
|
||||
}
|
||||
|
||||
executeAsync { IDEColorSchemeProvider.init() }
|
||||
}
|
||||
|
||||
@@ -25,9 +25,11 @@ import com.itsaky.androidide.preferences.internal.CONFIRM_PROJECT_OPEN
|
||||
import com.itsaky.androidide.preferences.internal.OPEN_PROJECTS
|
||||
import com.itsaky.androidide.preferences.internal.TERMINAL_USE_SYSTEM_SHELL
|
||||
import com.itsaky.androidide.preferences.internal.UI_MODE
|
||||
import com.itsaky.androidide.preferences.internal.ENABLE_MATERIAL_YOU
|
||||
import com.itsaky.androidide.preferences.internal.autoOpenProjects
|
||||
import com.itsaky.androidide.preferences.internal.confirmProjectOpen
|
||||
import com.itsaky.androidide.preferences.internal.uiMode
|
||||
import com.itsaky.androidide.preferences.internal.enableMaterialYou
|
||||
import com.itsaky.androidide.preferences.internal.useSystemShell
|
||||
import com.itsaky.androidide.resources.R.drawable
|
||||
import com.itsaky.androidide.resources.R.string
|
||||
@@ -42,6 +44,7 @@ class GeneralPreferences(
|
||||
) : IPreferenceScreen() {
|
||||
init {
|
||||
addPreference(UiMode())
|
||||
addPreference(EnableMaterialYou())
|
||||
addPreference(OpenLastProject())
|
||||
addPreference(ConfirmProjectOpen())
|
||||
addPreference(UseSytemShell())
|
||||
@@ -84,6 +87,14 @@ class UiMode(
|
||||
}
|
||||
}
|
||||
|
||||
@Parcelize
|
||||
class EnableMaterialYou(
|
||||
override val key: String = ENABLE_MATERIAL_YOU,
|
||||
override val title: Int = R.string.idepref_general_materialYou,
|
||||
override val summary: Int? = R.string.idepref_general_materialYou_summary,
|
||||
override val icon: Int? = R.drawable.ic_color_scheme
|
||||
) : SwitchPreference(setValue = ::enableMaterialYou::set, getValue = ::enableMaterialYou::get)
|
||||
|
||||
@Parcelize
|
||||
class OpenLastProject(
|
||||
override val key: String = OPEN_PROJECTS,
|
||||
|
||||
+7
@@ -21,6 +21,7 @@ import androidx.appcompat.app.AppCompatDelegate
|
||||
|
||||
const val IS_FIRST_PROJECT_BUILD = "project_isFirstBuild"
|
||||
const val UI_MODE = "idepref_general_uiMode"
|
||||
const val ENABLE_MATERIAL_YOU = "idpref_general_enableMaterialYou"
|
||||
const val OPEN_PROJECTS = "idepref_general_autoOpenProjects"
|
||||
const val CONFIRM_PROJECT_OPEN = "idepref_general_confirmProjectOpen"
|
||||
const val TERMINAL_USE_SYSTEM_SHELL = "idepref_general_terminalShell"
|
||||
@@ -34,6 +35,12 @@ var uiMode: Int
|
||||
prefManager.putInt(UI_MODE, value)
|
||||
}
|
||||
|
||||
var enableMaterialYou: Boolean
|
||||
get() = prefManager.getBoolean(ENABLE_MATERIAL_YOU, true)
|
||||
set(value) {
|
||||
prefManager.putBoolean(ENABLE_MATERIAL_YOU, value)
|
||||
}
|
||||
|
||||
var isFirstBuild: Boolean
|
||||
get() = prefManager.getBoolean(IS_FIRST_PROJECT_BUILD, true)
|
||||
set(value) {
|
||||
|
||||
@@ -527,4 +527,6 @@
|
||||
<string name="uiMode_light">Light</string>
|
||||
<string name="uiMode_dark">Dark</string>
|
||||
<string name="uiMode_system">Follow system</string>
|
||||
<string name="idepref_general_materialYou">Material You</string>
|
||||
<string name="idepref_general_materialYou_summary">Enjoy an experience closer to your device (requires restart).</string>
|
||||
</resources>
|
||||
|
||||
Binary file not shown.
Reference in New Issue
Block a user