diff --git a/app/src/main/java/com/itsaky/androidide/app/IDEApplication.kt b/app/src/main/java/com/itsaky/androidide/app/IDEApplication.kt index 7345fb6b2..851f6b9fb 100755 --- a/app/src/main/java/com/itsaky/androidide/app/IDEApplication.kt +++ b/app/src/main/java/com/itsaky/androidide/app/IDEApplication.kt @@ -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() } } diff --git a/app/src/main/java/com/itsaky/androidide/preferences/general.kt b/app/src/main/java/com/itsaky/androidide/preferences/general.kt index 3d474865d..4e7c8fa7c 100644 --- a/app/src/main/java/com/itsaky/androidide/preferences/general.kt +++ b/app/src/main/java/com/itsaky/androidide/preferences/general.kt @@ -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, diff --git a/preferences/src/main/java/com/itsaky/androidide/preferences/internal/generalPreferences.kt b/preferences/src/main/java/com/itsaky/androidide/preferences/internal/generalPreferences.kt index a3e66791f..e17de5b80 100644 --- a/preferences/src/main/java/com/itsaky/androidide/preferences/internal/generalPreferences.kt +++ b/preferences/src/main/java/com/itsaky/androidide/preferences/internal/generalPreferences.kt @@ -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) { diff --git a/resources/src/main/res/values/strings.xml b/resources/src/main/res/values/strings.xml index 91eafe220..d7e71bded 100644 --- a/resources/src/main/res/values/strings.xml +++ b/resources/src/main/res/values/strings.xml @@ -527,4 +527,6 @@ Light Dark Follow system + Material You + Enjoy an experience closer to your device (requires restart). diff --git a/tests/test-home/.androidide/init/model.jar b/tests/test-home/.androidide/init/model.jar index 50a935774..53d2e4d87 100644 Binary files a/tests/test-home/.androidide/init/model.jar and b/tests/test-home/.androidide/init/model.jar differ