From ae432f8c36c1dc603de48ee78489c54f264f123e Mon Sep 17 00:00:00 2001
From: LisoUseInAIKyrios <118716522+LisoUseInAIKyrios@users.noreply.github.com>
Date: Fri, 31 Jan 2025 12:40:45 +0200
Subject: [PATCH] refactor(YouTube - Swipe controls): Use more consistent
settings language of 'opacity' and 0-100 scale
---
.../extension/youtube/settings/Settings.java | 8 +++++++-
.../SwipeControlsConfigurationProvider.kt | 15 ++++++++++++++-
.../swipecontrols/SwipeControlsPatch.kt | 2 +-
.../resources/addresources/values/strings.xml | 5 +++--
4 files changed, 25 insertions(+), 5 deletions(-)
diff --git a/extensions/youtube/src/main/java/app/revanced/extension/youtube/settings/Settings.java b/extensions/youtube/src/main/java/app/revanced/extension/youtube/settings/Settings.java
index cea0c0a69..e1b0fb14c 100644
--- a/extensions/youtube/src/main/java/app/revanced/extension/youtube/settings/Settings.java
+++ b/extensions/youtube/src/main/java/app/revanced/extension/youtube/settings/Settings.java
@@ -314,8 +314,9 @@ public class Settings extends BaseSettings {
parentsAny(SWIPE_BRIGHTNESS, SWIPE_VOLUME));
public static final IntegerSetting SWIPE_MAGNITUDE_THRESHOLD = new IntegerSetting("revanced_swipe_threshold", 30, true,
parentsAny(SWIPE_BRIGHTNESS, SWIPE_VOLUME));
- public static final IntegerSetting SWIPE_OVERLAY_BACKGROUND_ALPHA = new IntegerSetting("revanced_swipe_overlay_background_alpha", 127, true,
+ public static final IntegerSetting SWIPE_OVERLAY_OPACITY = new IntegerSetting("revanced_swipe_overlay_background_opacity", 50, true,
parentsAny(SWIPE_BRIGHTNESS, SWIPE_VOLUME));
+ private static final IntegerSetting DEPRECATED_SWIPE_OVERLAY_BACKGROUND_ALPHA = new IntegerSetting("revanced_swipe_overlay_background_alpha", 127);
// Debugging
public static final IntegerSetting SWIPE_OVERLAY_TEXT_SIZE = new IntegerSetting("revanced_swipe_text_overlay_size", 22, true,
@@ -436,6 +437,11 @@ public class Settings extends BaseSettings {
DEPRECATED_SEEKBAR_CUSTOM_COLOR_PRIMARY.resetToDefault();
}
+ if (!DEPRECATED_SWIPE_OVERLAY_BACKGROUND_ALPHA.isSetToDefault()) {
+ SWIPE_OVERLAY_OPACITY.save(DEPRECATED_SWIPE_OVERLAY_BACKGROUND_ALPHA.get() / 255);
+ DEPRECATED_SWIPE_OVERLAY_BACKGROUND_ALPHA.resetToDefault();
+ }
+
// endregion
// region SB import/export callbacks
diff --git a/extensions/youtube/src/main/java/app/revanced/extension/youtube/swipecontrols/SwipeControlsConfigurationProvider.kt b/extensions/youtube/src/main/java/app/revanced/extension/youtube/swipecontrols/SwipeControlsConfigurationProvider.kt
index f9850d99a..303ffe9b0 100644
--- a/extensions/youtube/src/main/java/app/revanced/extension/youtube/swipecontrols/SwipeControlsConfigurationProvider.kt
+++ b/extensions/youtube/src/main/java/app/revanced/extension/youtube/swipecontrols/SwipeControlsConfigurationProvider.kt
@@ -2,6 +2,8 @@ package app.revanced.extension.youtube.swipecontrols
import android.content.Context
import android.graphics.Color
+import app.revanced.extension.shared.StringRef.str
+import app.revanced.extension.shared.Utils
import app.revanced.extension.youtube.settings.Settings
import app.revanced.extension.youtube.shared.PlayerType
@@ -86,7 +88,18 @@ class SwipeControlsConfigurationProvider(
* get the background color for text on the overlay, as a color int
*/
val overlayTextBackgroundColor: Int
- get() = Color.argb(Settings.SWIPE_OVERLAY_BACKGROUND_ALPHA.get(), 0, 0, 0)
+ get() {
+ var opacity = Settings.SWIPE_OVERLAY_OPACITY.get()
+
+ if (opacity < 0 || opacity > 100) {
+ Utils.showToastLong(str("revanced_swipe_overlay_background_opacity_invalid_toast"))
+ Settings.SWIPE_OVERLAY_OPACITY.resetToDefault()
+ opacity = Settings.SWIPE_OVERLAY_OPACITY.get()
+ }
+
+ opacity = opacity * 255 / 100
+ return Color.argb(opacity, 0, 0, 0)
+ }
/**
* get the foreground color for text on the overlay, as a color int
diff --git a/patches/src/main/kotlin/app/revanced/patches/youtube/interaction/swipecontrols/SwipeControlsPatch.kt b/patches/src/main/kotlin/app/revanced/patches/youtube/interaction/swipecontrols/SwipeControlsPatch.kt
index cf51936fa..5bececd59 100644
--- a/patches/src/main/kotlin/app/revanced/patches/youtube/interaction/swipecontrols/SwipeControlsPatch.kt
+++ b/patches/src/main/kotlin/app/revanced/patches/youtube/interaction/swipecontrols/SwipeControlsPatch.kt
@@ -44,7 +44,7 @@ private val swipeControlsResourcePatch = resourcePatch {
SwitchPreference("revanced_swipe_lowest_value_enable_auto_brightness"),
TextPreference("revanced_swipe_overlay_timeout", inputType = InputType.NUMBER),
TextPreference("revanced_swipe_text_overlay_size", inputType = InputType.NUMBER),
- TextPreference("revanced_swipe_overlay_background_alpha", inputType = InputType.NUMBER),
+ TextPreference("revanced_swipe_overlay_background_opacity", inputType = InputType.NUMBER),
TextPreference("revanced_swipe_threshold", inputType = InputType.NUMBER),
)
diff --git a/patches/src/main/resources/addresources/values/strings.xml b/patches/src/main/resources/addresources/values/strings.xml
index c08c16f64..f7419ecc6 100644
--- a/patches/src/main/resources/addresources/values/strings.xml
+++ b/patches/src/main/resources/addresources/values/strings.xml
@@ -511,8 +511,9 @@ This feature is only available for older devices"
The amount of milliseconds the overlay is visible
Swipe overlay text size
The text size for swipe overlay
- Swipe background visibility
- The visibility of swipe overlay background
+ Swipe overlay background opacity
+ Opacity value between 0-100
+ Swipe opacity must be between 0-100
Swipe magnitude threshold
The amount of threshold for swipe to occur
Enable swipe to change videos