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