diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 7562538a..cab88c30 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -30,7 +30,6 @@ jobs: ${{ runner.home }}/.gradle/caches ${{ runner.home }}/.gradle/wrapper .gradle - build node_modules key: ${{ runner.os }}-gradle-npm-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties', 'package-lock.json') }} - name: Setup Java @@ -38,7 +37,7 @@ jobs: - name: Build with Gradle env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - run: ./gradlew clean --no-daemon + run: ./gradlew build - name: Setup semantic-release run: npm install - name: Release diff --git a/CHANGELOG.md b/CHANGELOG.md index 2d99fde5..57a8d050 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,17 @@ +# [0.114.0-dev.1](https://github.com/ReVanced/revanced-integrations/compare/v0.113.1-dev.1...v0.114.0-dev.1) (2023-07-20) + + +### Features + +* **youtube/theme:** add a switch to enable/disable custom seekbar color ([#442](https://github.com/ReVanced/revanced-integrations/issues/442)) ([2a784a4](https://github.com/ReVanced/revanced-integrations/commit/2a784a47d18da90ce23fcd527eef1f6e2d8e166d)) + +## [0.113.1-dev.1](https://github.com/ReVanced/revanced-integrations/compare/v0.113.0...v0.113.1-dev.1) (2023-07-20) + + +### Bug Fixes + +* **Tiktok - Settings:** check for null when opening ads settings ([#443](https://github.com/ReVanced/revanced-integrations/issues/443)) ([8c61561](https://github.com/ReVanced/revanced-integrations/commit/8c61561d6375cfad3571cea98013b549ed6ecd6b)) + # [0.113.0](https://github.com/ReVanced/revanced-integrations/compare/v0.112.0...v0.113.0) (2023-07-20) diff --git a/app/src/main/java/app/revanced/integrations/patches/theme/ProgressBarDrawable.java b/app/src/main/java/app/revanced/integrations/patches/theme/ProgressBarDrawable.java index 6050b514..28df3360 100644 --- a/app/src/main/java/app/revanced/integrations/patches/theme/ProgressBarDrawable.java +++ b/app/src/main/java/app/revanced/integrations/patches/theme/ProgressBarDrawable.java @@ -18,6 +18,7 @@ import app.revanced.integrations.settings.SettingsEnum; */ public class ProgressBarDrawable extends Drawable { + private final Paint paint = new Paint(); @Override @@ -25,7 +26,7 @@ public class ProgressBarDrawable extends Drawable { if (SettingsEnum.HIDE_SEEKBAR_THUMBNAIL.getBoolean()) { return; } - paint.setColor(SeekbarColorPatch.getCustomSeekbarColor()); + paint.setColor(SeekbarColorPatch.getSeekbarColor()); canvas.drawRect(getBounds(), paint); } diff --git a/app/src/main/java/app/revanced/integrations/patches/theme/SeekbarColorPatch.java b/app/src/main/java/app/revanced/integrations/patches/theme/SeekbarColorPatch.java index efedb5f4..942ff3c6 100644 --- a/app/src/main/java/app/revanced/integrations/patches/theme/SeekbarColorPatch.java +++ b/app/src/main/java/app/revanced/integrations/patches/theme/SeekbarColorPatch.java @@ -8,8 +8,10 @@ import app.revanced.integrations.utils.ReVancedUtils; public final class SeekbarColorPatch { + private static final boolean USE_SEEKBAR_CUSTOM_COLOR = SettingsEnum.SEEKBAR_CUSTOM_COLOR.getBoolean(); + /** - * Default color of seekbar. + * Default color of the seekbar. */ private static final int ORIGINAL_SEEKBAR_COLOR = 0xFFFF0000; @@ -19,9 +21,11 @@ public final class SeekbarColorPatch { private static final float ORIGINAL_SEEKBAR_COLOR_BRIGHTNESS; /** - * Color value of {@link SettingsEnum#SEEKBAR_COLOR} + * If {@link SettingsEnum#SEEKBAR_CUSTOM_COLOR} is enabled, + * this is the color value of {@link SettingsEnum#SEEKBAR_CUSTOM_COLOR_VALUE}. + * Otherwise this is {@link #ORIGINAL_SEEKBAR_COLOR}. */ - private static int customSeekbarColor; + private static int seekbarColor = ORIGINAL_SEEKBAR_COLOR; /** * Custom seekbar hue, saturation, and brightness values. @@ -33,22 +37,24 @@ public final class SeekbarColorPatch { Color.colorToHSV(ORIGINAL_SEEKBAR_COLOR, hsv); ORIGINAL_SEEKBAR_COLOR_BRIGHTNESS = hsv[2]; - loadCustomSeekbarColorHSV(); - } - - private static void loadCustomSeekbarColorHSV() { - try { - customSeekbarColor = Color.parseColor(SettingsEnum.SEEKBAR_COLOR.getString()); - Color.colorToHSV(customSeekbarColor, customSeekbarColorHSV); - } catch (Exception ex) { - ReVancedUtils.showToastShort("Invalid seekbar color value. Using default value."); - SettingsEnum.SEEKBAR_COLOR.saveValue(SettingsEnum.SEEKBAR_COLOR.defaultValue); - loadCustomSeekbarColorHSV(); + if (USE_SEEKBAR_CUSTOM_COLOR) { + loadCustomSeekbarColor(); } } - public static int getCustomSeekbarColor() { - return customSeekbarColor; + private static void loadCustomSeekbarColor() { + try { + seekbarColor = Color.parseColor(SettingsEnum.SEEKBAR_CUSTOM_COLOR_VALUE.getString()); + Color.colorToHSV(seekbarColor, customSeekbarColorHSV); + } catch (Exception ex) { + ReVancedUtils.showToastShort("Invalid seekbar color value. Using default value."); + SettingsEnum.SEEKBAR_CUSTOM_COLOR_VALUE.saveValue(SettingsEnum.SEEKBAR_CUSTOM_COLOR_VALUE.defaultValue); + loadCustomSeekbarColor(); + } + } + + public static int getSeekbarColor() { + return seekbarColor; } @@ -96,7 +102,7 @@ public final class SeekbarColorPatch { */ private static int getSeekbarColorValue(int originalColor) { try { - if (customSeekbarColor == ORIGINAL_SEEKBAR_COLOR) { + if (!USE_SEEKBAR_CUSTOM_COLOR || originalColor == seekbarColor) { return originalColor; // nothing to do } final int alphaDifference = Color.alpha(originalColor) - Color.alpha(ORIGINAL_SEEKBAR_COLOR); @@ -111,7 +117,7 @@ public final class SeekbarColorPatch { hsv[1] = customSeekbarColorHSV[1]; hsv[2] = clamp(customSeekbarColorHSV[2] + brightnessDifference, 0, 1); - final int replacementAlpha = clamp(Color.alpha(customSeekbarColor) + alphaDifference, 0, 255); + final int replacementAlpha = clamp(Color.alpha(seekbarColor) + alphaDifference, 0, 255); final int replacementColor = Color.HSVToColor(replacementAlpha, hsv); LogHelper.printDebug(() -> String.format("Original color: #%08X replacement color: #%08X", originalColor, replacementColor)); diff --git a/app/src/main/java/app/revanced/integrations/settings/SettingsEnum.java b/app/src/main/java/app/revanced/integrations/settings/SettingsEnum.java index 3e7097d9..0d632642 100644 --- a/app/src/main/java/app/revanced/integrations/settings/SettingsEnum.java +++ b/app/src/main/java/app/revanced/integrations/settings/SettingsEnum.java @@ -116,8 +116,8 @@ public enum SettingsEnum { HIDE_PLAYER_BUTTONS("revanced_hide_player_buttons", BOOLEAN, FALSE), HIDE_PLAYER_OVERLAY("revanced_hide_player_overlay", BOOLEAN, FALSE, true), HIDE_PREVIEW_COMMENT("revanced_hide_preview_comment", BOOLEAN, FALSE, true), - HIDE_SEEKBAR("revanced_hide_seekbar", BOOLEAN, FALSE, true), - HIDE_SEEKBAR_THUMBNAIL("revanced_hide_seekbar_thumbnail", BOOLEAN, FALSE, true), + HIDE_SEEKBAR("revanced_hide_seekbar", BOOLEAN, FALSE), + HIDE_SEEKBAR_THUMBNAIL("revanced_hide_seekbar_thumbnail", BOOLEAN, FALSE), HIDE_HOME_BUTTON("revanced_hide_home_button", BOOLEAN, FALSE, true), HIDE_SHORTS_BUTTON("revanced_hide_shorts_button", BOOLEAN, TRUE, true), HIDE_SUBSCRIPTIONS_BUTTON("revanced_hide_subscriptions_button", BOOLEAN, FALSE, true), @@ -130,7 +130,10 @@ public enum SettingsEnum { SPOOF_APP_VERSION_TARGET("revanced_spoof_app_version_target", STRING, "17.30.35", true, parents(SPOOF_APP_VERSION)), USE_TABLET_MINIPLAYER("revanced_tablet_miniplayer", BOOLEAN, FALSE, true), WIDE_SEARCHBAR("revanced_wide_searchbar", BOOLEAN, FALSE, true), - SEEKBAR_COLOR("revanced_seekbar_color", STRING, "#FF0000", true), + @Deprecated + DEPRECATED_SEEKBAR_COLOR("revanced_seekbar_color", STRING, "#FF0000"), // TODO: delete this + SEEKBAR_CUSTOM_COLOR("revanced_seekbar_custom_color", BOOLEAN, TRUE, true), + SEEKBAR_CUSTOM_COLOR_VALUE("revanced_seekbar_custom_color_value", STRING, "#FF0000", true, parents(SEEKBAR_CUSTOM_COLOR)), HIDE_FILTER_BAR_FEED_IN_FEED("revanced_hide_filter_bar_feed_in_feed", BOOLEAN, FALSE, true), HIDE_FILTER_BAR_FEED_IN_SEARCH("revanced_hide_filter_bar_feed_in_search", BOOLEAN, FALSE, true), HIDE_FILTER_BAR_FEED_IN_RELATED_VIDEOS("revanced_hide_filter_bar_feed_in_related_videos", BOOLEAN, FALSE, true), @@ -359,6 +362,14 @@ public enum SettingsEnum { // TODO: delete DEPRECATED_SHOW_OLD_VIDEO_QUALITY_MENU (When? anytime). migrateOldSettingToNew(DEPRECATED_SHOW_OLD_VIDEO_QUALITY_MENU, SHOW_OLD_VIDEO_QUALITY_MENU); + // TODO: delete this seekbar color migration code + String oldSeekbarColorValue = DEPRECATED_SEEKBAR_COLOR.getString(); + if (!oldSeekbarColorValue.equalsIgnoreCase((String) DEPRECATED_SEEKBAR_COLOR.defaultValue)) { + SEEKBAR_CUSTOM_COLOR_VALUE.saveValue(oldSeekbarColorValue); + SEEKBAR_CUSTOM_COLOR.saveValue(true); + DEPRECATED_SEEKBAR_COLOR.saveValue(DEPRECATED_SEEKBAR_COLOR.defaultValue); + } + // endregion } diff --git a/app/src/main/java/app/revanced/tiktok/settingsmenu/SettingsMenu.java b/app/src/main/java/app/revanced/tiktok/settingsmenu/SettingsMenu.java index f79d16b7..fc43153b 100644 --- a/app/src/main/java/app/revanced/tiktok/settingsmenu/SettingsMenu.java +++ b/app/src/main/java/app/revanced/tiktok/settingsmenu/SettingsMenu.java @@ -2,6 +2,7 @@ package app.revanced.tiktok.settingsmenu; import android.content.Context; import android.content.Intent; +import android.os.Bundle; import android.preference.PreferenceFragment; import android.view.View; import android.widget.FrameLayout; @@ -35,7 +36,8 @@ public class SettingsMenu { * @return Whether the settings menu should be initialized. */ public static boolean initializeSettings(AdPersonalizationActivity base) { - if (!base.getIntent().getExtras().getBoolean("revanced", false)) return false; + Bundle extras = base.getIntent().getExtras(); + if (extras != null && !extras.getBoolean("revanced", false)) return false; SettingsStatus.load(); diff --git a/gradle.properties b/gradle.properties index 2d7fc94e..4f2340fe 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,4 +1,4 @@ org.gradle.parallel = true org.gradle.caching = true android.useAndroidX = true -version = 0.113.0 +version = 0.114.0-dev.1