diff --git a/presentation/src/main/java/feature/themepicker/HSVPickerView.kt b/presentation/src/main/java/feature/themepicker/HSVPickerView.kt index 4eabf8b4..566d5909 100644 --- a/presentation/src/main/java/feature/themepicker/HSVPickerView.kt +++ b/presentation/src/main/java/feature/themepicker/HSVPickerView.kt @@ -77,6 +77,23 @@ class HSVPickerView @JvmOverloads constructor(context: Context, attrs: Attribute true } + var hueThumbX = 0f + + hueBackground.setOnTouchListener { _, event -> + when (event.action) { + MotionEvent.ACTION_DOWN -> { + hueThumbX = event.x - event.rawX + } + + MotionEvent.ACTION_MOVE -> { + hueThumb.x = (event.rawX + hueThumbX + hueThumb.width / 2).within(0f, width - hueThumb.width.toFloat()) + } + + else -> return@setOnTouchListener false + } + true + } + hueBackground.clipToOutline = true hueBackground.setImageDrawable(GradientDrawable(GradientDrawable.Orientation.LEFT_RIGHT, hues)) } diff --git a/presentation/src/main/res/layout/hsv_picker_view.xml b/presentation/src/main/res/layout/hsv_picker_view.xml index 59eabbb5..d5912425 100644 --- a/presentation/src/main/res/layout/hsv_picker_view.xml +++ b/presentation/src/main/res/layout/hsv_picker_view.xml @@ -46,19 +46,37 @@ android:layout_width="16dp" android:layout_height="16dp" android:background="@drawable/circle" - android:elevation="2dp" + android:elevation="4dp" android:padding="2dp" android:src="@drawable/circle" tools:tint="@color/tools_theme" /> - + app:layout_constraintTop_toBottomOf="@id/saturation"> + + + + + + \ No newline at end of file