diff --git a/res/xml/cherish_settings_edge_light.xml b/res/xml/cherish_settings_edge_light.xml
index 7870a93..ffd3a1c 100644
--- a/res/xml/cherish_settings_edge_light.xml
+++ b/res/xml/cherish_settings_edge_light.xml
@@ -16,9 +16,7 @@
+ android:title="@string/edge_light_intro_text" />
-
+ android:defaultValue="#FFFFFF" />
\ No newline at end of file
diff --git a/res/xml/cherish_settings_lockscreen.xml b/res/xml/cherish_settings_lockscreen.xml
index 038267f..9173bda 100644
--- a/res/xml/cherish_settings_lockscreen.xml
+++ b/res/xml/cherish_settings_lockscreen.xml
@@ -34,10 +34,10 @@
android:entryValues="@array/torch_power_button_gesture_values" />
+ android:key="edge_light_enabled"
+ android:title="@string/edge_light_title"
+ android:summary="@string/edge_light_intro_text"
+ android:fragment="com.cherish.settings.lockscreen.EdgeLightSettings"/>
(MAIN_SWITCH_KEY)?.also {
+ updatePreferences(it.isChecked)
+ it.addOnSwitchChangeListener(this)
+ }
+ }
+
+ override protected fun getPreferenceScreenResId() = R.xml.cherish_settings_edge_light
+
+ override protected fun getLogTag() = TAG
+
+ override protected fun createPreferenceControllers(
+ context: Context
+ ): List = buildPreferenceControllers(context, settingsLifecycle)
+
+ override fun onSwitchChanged(switchView: Switch, isChecked: Boolean) {
+ updatePreferences(isChecked)
+ }
+
+ private fun updatePreferences(isChecked: Boolean) {
+ preferenceScreen.forEachIndexed { _, preference ->
+ if (preference !is MainSwitchPreference &&
+ preference !is TopIntroPreference
+ ) preference.isVisible = isChecked
+ }
+ }
+
+ companion object {
+ private const val TAG = "EdgeLightSettingsFragment"
+
+ private const val MAIN_SWITCH_KEY = "edge_light_enabled"
+ private const val CUSTOM_COLOR_PREFERENCE_KEY = "edge_light_custom_color"
+
+ private fun buildPreferenceControllers(
+ context: Context,
+ lifecycle: Lifecycle?,
+ ): List = listOf(
+ EdgeLightColorPickerPreferenceController(context, CUSTOM_COLOR_PREFERENCE_KEY, lifecycle)
+ )
+
+ @JvmField
+ val SEARCH_INDEX_DATA_PROVIDER = object : BaseSearchIndexProvider(R.xml.cherish_settings_edge_light) {
+ override fun createPreferenceControllers(
+ context: Context
+ ): List = buildPreferenceControllers(
+ context, null /* lifecycle */)
+ }
+ }
+}
\ No newline at end of file