diff --git a/app/src/main/java/app/revanced/integrations/youtube/settings/Settings.java b/app/src/main/java/app/revanced/integrations/youtube/settings/Settings.java index b0a0fdd5ef..924954e237 100644 --- a/app/src/main/java/app/revanced/integrations/youtube/settings/Settings.java +++ b/app/src/main/java/app/revanced/integrations/youtube/settings/Settings.java @@ -479,6 +479,8 @@ public class Settings extends BaseSettings { public static final IntegerSetting SWIPE_OVERLAY_RECT_SIZE = new IntegerSetting("revanced_swipe_overlay_rect_size", 20, true, parentsAny(ENABLE_SWIPE_BRIGHTNESS, ENABLE_SWIPE_VOLUME)); public static final LongSetting SWIPE_OVERLAY_TIMEOUT = new LongSetting("revanced_swipe_overlay_timeout", 500L, true, parentsAny(ENABLE_SWIPE_BRIGHTNESS, ENABLE_SWIPE_VOLUME)); + public static final IntegerSetting SWIPE_BRIGHTNESS_SENSITIVITY = new IntegerSetting("revanced_swipe_brightness_sensitivity", 100, true, parent(ENABLE_SWIPE_BRIGHTNESS)); + public static final IntegerSetting SWIPE_VOLUME_SENSITIVITY = new IntegerSetting("revanced_swipe_volume_sensitivity", 100, true, parent(ENABLE_SWIPE_VOLUME)); /** * @noinspection DeprecatedIsStillUsed */ diff --git a/app/src/main/java/app/revanced/integrations/youtube/swipecontrols/SwipeControlsConfigurationProvider.kt b/app/src/main/java/app/revanced/integrations/youtube/swipecontrols/SwipeControlsConfigurationProvider.kt index 98bef63f82..d5d98c2397 100644 --- a/app/src/main/java/app/revanced/integrations/youtube/swipecontrols/SwipeControlsConfigurationProvider.kt +++ b/app/src/main/java/app/revanced/integrations/youtube/swipecontrols/SwipeControlsConfigurationProvider.kt @@ -5,6 +5,7 @@ import android.graphics.Color import app.revanced.integrations.youtube.settings.Settings import app.revanced.integrations.youtube.shared.LockModeState import app.revanced.integrations.youtube.shared.PlayerType +import app.revanced.integrations.youtube.utils.ExtendedUtils.validateValue /** * provider for configuration for volume and brightness swipe controls @@ -76,6 +77,28 @@ class SwipeControlsConfigurationProvider( val swipeMagnitudeThreshold: Int get() = Settings.SWIPE_MAGNITUDE_THRESHOLD.get() + /** + * swipe distances for brightness + */ + val brightnessDistance: Float + get() = validateValue( + Settings.SWIPE_BRIGHTNESS_SENSITIVITY, + 1, + 1000, + "revanced_swipe_brightness_sensitivity_invalid_toast" + ).toFloat() / 100 // 1f + + /** + * swipe distances for volume + */ + val volumeDistance: Float + get() = validateValue( + Settings.SWIPE_VOLUME_SENSITIVITY, + 1, + 1000, + "revanced_swipe_volume_sensitivity_invalid_toast" + ).toFloat() / 100 * 10 // 10f + // endregion // region overlay adjustments diff --git a/app/src/main/java/app/revanced/integrations/youtube/swipecontrols/controller/gesture/core/BaseGestureController.kt b/app/src/main/java/app/revanced/integrations/youtube/swipecontrols/controller/gesture/core/BaseGestureController.kt index fb5a1b04fb..2203f19f46 100644 --- a/app/src/main/java/app/revanced/integrations/youtube/swipecontrols/controller/gesture/core/BaseGestureController.kt +++ b/app/src/main/java/app/revanced/integrations/youtube/swipecontrols/controller/gesture/core/BaseGestureController.kt @@ -22,8 +22,8 @@ abstract class BaseGestureController( controller.audio, controller.screen, controller.overlay, - 10, - 1, + controller.config.volumeDistance, + controller.config.brightnessDistance, ) { /** diff --git a/app/src/main/java/app/revanced/integrations/youtube/swipecontrols/controller/gesture/core/VolumeAndBrightnessScroller.kt b/app/src/main/java/app/revanced/integrations/youtube/swipecontrols/controller/gesture/core/VolumeAndBrightnessScroller.kt index be3171d20a..65691d5a9b 100644 --- a/app/src/main/java/app/revanced/integrations/youtube/swipecontrols/controller/gesture/core/VolumeAndBrightnessScroller.kt +++ b/app/src/main/java/app/revanced/integrations/youtube/swipecontrols/controller/gesture/core/VolumeAndBrightnessScroller.kt @@ -47,8 +47,8 @@ class VolumeAndBrightnessScrollerImpl( private val volumeController: AudioVolumeController?, private val screenController: ScreenBrightnessController?, private val overlayController: SwipeControlsOverlay, - volumeDistance: Int = 10, - brightnessDistance: Int = 1, + volumeDistance: Float = 10.0f, + brightnessDistance: Float = 1.0f, ) : VolumeAndBrightnessScroller { // region volume diff --git a/app/src/main/java/app/revanced/integrations/youtube/swipecontrols/misc/ScrollDistanceHelper.kt b/app/src/main/java/app/revanced/integrations/youtube/swipecontrols/misc/ScrollDistanceHelper.kt index a85dbac856..266a1d3b57 100644 --- a/app/src/main/java/app/revanced/integrations/youtube/swipecontrols/misc/ScrollDistanceHelper.kt +++ b/app/src/main/java/app/revanced/integrations/youtube/swipecontrols/misc/ScrollDistanceHelper.kt @@ -10,7 +10,7 @@ import kotlin.math.sign * @param callback callback function for when unit distance is reached */ class ScrollDistanceHelper( - private val unitDistance: Int, + private val unitDistance: Double, private val callback: (oldDistance: Double, newDistance: Double, direction: Int) -> Unit, ) { diff --git a/app/src/main/java/app/revanced/integrations/youtube/swipecontrols/misc/SwipeControlsUtils.kt b/app/src/main/java/app/revanced/integrations/youtube/swipecontrols/misc/SwipeControlsUtils.kt index 141dc2224d..c593d01df1 100644 --- a/app/src/main/java/app/revanced/integrations/youtube/swipecontrols/misc/SwipeControlsUtils.kt +++ b/app/src/main/java/app/revanced/integrations/youtube/swipecontrols/misc/SwipeControlsUtils.kt @@ -23,3 +23,11 @@ fun Int.applyDimension(context: Context, unit: Int): Int { context.resources.displayMetrics, ).roundToInt() } + +fun Float.applyDimension(context: Context, unit: Int): Double { + return TypedValue.applyDimension( + unit, + this, + context.resources.displayMetrics, + ).toDouble() +}