From da1572c28d20e2549d0e2a68591f23bb68d8cc9c Mon Sep 17 00:00:00 2001 From: oSumAtrIX Date: Wed, 15 Feb 2023 04:19:21 +0100 Subject: [PATCH 01/20] feat(youtube/general-ads): hide full-screen feed banner Signed-off-by: oSumAtrIX --- .../app/revanced/integrations/patches/GeneralAdsPatch.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/app/revanced/integrations/patches/GeneralAdsPatch.java b/app/src/main/java/app/revanced/integrations/patches/GeneralAdsPatch.java index 0d83da46..9f8b11df 100644 --- a/app/src/main/java/app/revanced/integrations/patches/GeneralAdsPatch.java +++ b/app/src/main/java/app/revanced/integrations/patches/GeneralAdsPatch.java @@ -53,7 +53,9 @@ public final class GeneralAdsPatch extends Filter { "banner_text_icon", "square_image_layout", "watch_metadata_app_promo", - "video_display_full_layout" + "video_display_full_layout", + "hero_promo_image", + "statement_banner" ); var movieAds = new BlockRule( SettingsEnum.ADREMOVER_MOVIE_REMOVAL, From a857b9db6f753560038a811639af909b4485a29f Mon Sep 17 00:00:00 2001 From: semantic-release-bot Date: Sat, 18 Feb 2023 21:09:33 +0000 Subject: [PATCH 02/20] chore(release): 0.98.0-dev.1 [skip ci] # [0.98.0-dev.1](https://github.com/revanced/revanced-integrations/compare/v0.97.0...v0.98.0-dev.1) (2023-02-18) ### Features * **youtube/general-ads:** hide full-screen feed banner ([da1572c](https://github.com/revanced/revanced-integrations/commit/da1572c28d20e2549d0e2a68591f23bb68d8cc9c)) --- CHANGELOG.md | 7 +++++++ gradle.properties | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 23ccad0c..db8e865e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,10 @@ +# [0.98.0-dev.1](https://github.com/revanced/revanced-integrations/compare/v0.97.0...v0.98.0-dev.1) (2023-02-18) + + +### Features + +* **youtube/general-ads:** hide full-screen feed banner ([da1572c](https://github.com/revanced/revanced-integrations/commit/da1572c28d20e2549d0e2a68591f23bb68d8cc9c)) + # [0.97.0](https://github.com/revanced/revanced-integrations/compare/v0.96.2...v0.97.0) (2023-02-14) diff --git a/gradle.properties b/gradle.properties index 439acb5f..385ac756 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,3 +1,3 @@ org.gradle.jvmargs = -Xmx2048m android.useAndroidX = true -version = 0.97.0 +version = 0.98.0-dev.1 From fd975ecd2a91ea7ac713d3b7badf373c7d53ad5c Mon Sep 17 00:00:00 2001 From: oSumAtrIX Date: Sun, 19 Feb 2023 05:23:54 +0100 Subject: [PATCH 03/20] feat(youtube/general-ads): hide horizontal video shelf Signed-off-by: oSumAtrIX --- .../java/app/revanced/integrations/patches/GeneralAdsPatch.java | 2 ++ .../java/app/revanced/integrations/settings/SettingsEnum.java | 1 + 2 files changed, 3 insertions(+) diff --git a/app/src/main/java/app/revanced/integrations/patches/GeneralAdsPatch.java b/app/src/main/java/app/revanced/integrations/patches/GeneralAdsPatch.java index 9f8b11df..f1a42f33 100644 --- a/app/src/main/java/app/revanced/integrations/patches/GeneralAdsPatch.java +++ b/app/src/main/java/app/revanced/integrations/patches/GeneralAdsPatch.java @@ -38,6 +38,7 @@ public final class GeneralAdsPatch extends Filter { var chapterTeaser = new BlockRule(SettingsEnum.ADREMOVER_CHAPTER_TEASER_REMOVAL, "expandable_metadata"); var viewProducts = new BlockRule(SettingsEnum.ADREMOVER_VIEW_PRODUCTS, "product_item", "products_in_video"); var webLinkPanel = new BlockRule(SettingsEnum.ADREMOVER_WEB_SEARCH_RESULTS, "web_link_panel"); + var horizontalVideoShelf = new BlockRule(SettingsEnum.ADREMOVER_HORIZONTAL_VIDEO_SHELF, "horizontal_video_shelf"); var graySeparator = new BlockRule(SettingsEnum.ADREMOVER_GRAY_SEPARATOR, "cell_divider" // layout residue (gray line above the buttoned ad), ); @@ -85,6 +86,7 @@ public final class GeneralAdsPatch extends Filter { artistCard, selfSponsor, webLinkPanel, + horizontalVideoShelf, subscribersCommunityGuidelines, channelMemberShelf ); 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 41a1db3b..060d70a9 100644 --- a/app/src/main/java/app/revanced/integrations/settings/SettingsEnum.java +++ b/app/src/main/java/app/revanced/integrations/settings/SettingsEnum.java @@ -54,6 +54,7 @@ public enum SettingsEnum { ADREMOVER_GRAY_SEPARATOR("revanced_adremover_separator", true, ReturnType.BOOLEAN), ADREMOVER_VIEW_PRODUCTS("revanced_adremover_view_products", true, ReturnType.BOOLEAN), ADREMOVER_WEB_SEARCH_RESULTS("revanced_adremover_web_search_result", true, ReturnType.BOOLEAN), + ADREMOVER_HORIZONTAL_VIDEO_SHELF("revanced_horizontal_video_shelf", true, ReturnType.BOOLEAN), // Action buttons HIDE_LIKE_BUTTON("revanced_hide_like_button", false, ReturnType.BOOLEAN, false), From 35c4266e8b8ad7cf9fb5d14cf6cbc8ae65cc78df Mon Sep 17 00:00:00 2001 From: oSumAtrIX Date: Sun, 19 Feb 2023 05:24:26 +0100 Subject: [PATCH 04/20] feat(youtube/general-ads): hide channel bar Signed-off-by: oSumAtrIX --- .../java/app/revanced/integrations/patches/GeneralAdsPatch.java | 2 ++ .../java/app/revanced/integrations/settings/SettingsEnum.java | 1 + 2 files changed, 3 insertions(+) diff --git a/app/src/main/java/app/revanced/integrations/patches/GeneralAdsPatch.java b/app/src/main/java/app/revanced/integrations/patches/GeneralAdsPatch.java index f1a42f33..77eec981 100644 --- a/app/src/main/java/app/revanced/integrations/patches/GeneralAdsPatch.java +++ b/app/src/main/java/app/revanced/integrations/patches/GeneralAdsPatch.java @@ -39,6 +39,7 @@ public final class GeneralAdsPatch extends Filter { var viewProducts = new BlockRule(SettingsEnum.ADREMOVER_VIEW_PRODUCTS, "product_item", "products_in_video"); var webLinkPanel = new BlockRule(SettingsEnum.ADREMOVER_WEB_SEARCH_RESULTS, "web_link_panel"); var horizontalVideoShelf = new BlockRule(SettingsEnum.ADREMOVER_HORIZONTAL_VIDEO_SHELF, "horizontal_video_shelf"); + var channelBar = new BlockRule(SettingsEnum.ADREMOVER_CHANNEL_BAR, "channel_bar"); var graySeparator = new BlockRule(SettingsEnum.ADREMOVER_GRAY_SEPARATOR, "cell_divider" // layout residue (gray line above the buttoned ad), ); @@ -70,6 +71,7 @@ public final class GeneralAdsPatch extends Filter { this.pathRegister.registerAll( generalAds, buttonedAd, + channelBar, communityPosts, paidContent, latestPosts, 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 060d70a9..be94db31 100644 --- a/app/src/main/java/app/revanced/integrations/settings/SettingsEnum.java +++ b/app/src/main/java/app/revanced/integrations/settings/SettingsEnum.java @@ -55,6 +55,7 @@ public enum SettingsEnum { ADREMOVER_VIEW_PRODUCTS("revanced_adremover_view_products", true, ReturnType.BOOLEAN), ADREMOVER_WEB_SEARCH_RESULTS("revanced_adremover_web_search_result", true, ReturnType.BOOLEAN), ADREMOVER_HORIZONTAL_VIDEO_SHELF("revanced_horizontal_video_shelf", true, ReturnType.BOOLEAN), + ADREMOVER_CHANNEL_BAR("revanced_hide_channel_bar", false, ReturnType.BOOLEAN), // Action buttons HIDE_LIKE_BUTTON("revanced_hide_like_button", false, ReturnType.BOOLEAN, false), From 96fcc0b1c70c277c99a99db9ca2d50f649a41a70 Mon Sep 17 00:00:00 2001 From: oSumAtrIX Date: Sun, 19 Feb 2023 05:50:02 +0100 Subject: [PATCH 05/20] fix(youtube/hide-watch-in-vr): fix descriptions Signed-off-by: oSumAtrIX --- .../{HideWatchinVRPatch.java => HideWatchInVRPatch.java} | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) rename app/src/main/java/app/revanced/integrations/patches/{HideWatchinVRPatch.java => HideWatchInVRPatch.java} (50%) diff --git a/app/src/main/java/app/revanced/integrations/patches/HideWatchinVRPatch.java b/app/src/main/java/app/revanced/integrations/patches/HideWatchInVRPatch.java similarity index 50% rename from app/src/main/java/app/revanced/integrations/patches/HideWatchinVRPatch.java rename to app/src/main/java/app/revanced/integrations/patches/HideWatchInVRPatch.java index 9d3b9cc7..538f8ea6 100644 --- a/app/src/main/java/app/revanced/integrations/patches/HideWatchinVRPatch.java +++ b/app/src/main/java/app/revanced/integrations/patches/HideWatchInVRPatch.java @@ -2,9 +2,8 @@ package app.revanced.integrations.patches; import app.revanced.integrations.settings.SettingsEnum; -public class HideWatchinVRPatch { - //Used by app.revanced.patches.youtube.layout.watchinvr.patch.HideWatchinVRPatch - public static boolean hideWatchinVR() { +public class HideWatchInVRPatch { + public static boolean hideWatchInVR() { return SettingsEnum.HIDE_WATCH_IN_VR.getBoolean(); } } From e040b7de2f8c1b33c8cb19ab9a6da04ecba40099 Mon Sep 17 00:00:00 2001 From: oSumAtrIX Date: Sun, 19 Feb 2023 23:52:33 +0100 Subject: [PATCH 06/20] refactor(youtube/general-ads): correct settings name Syncing with 1a96d79356e0432cfcf6287cdebbad8227eef6d1 from revanced-patches Signed-off-by: oSumAtrIX --- .../java/app/revanced/integrations/patches/GeneralAdsPatch.java | 2 +- .../java/app/revanced/integrations/settings/SettingsEnum.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/app/revanced/integrations/patches/GeneralAdsPatch.java b/app/src/main/java/app/revanced/integrations/patches/GeneralAdsPatch.java index 77eec981..489569ca 100644 --- a/app/src/main/java/app/revanced/integrations/patches/GeneralAdsPatch.java +++ b/app/src/main/java/app/revanced/integrations/patches/GeneralAdsPatch.java @@ -33,7 +33,7 @@ public final class GeneralAdsPatch extends Filter { var infoPanel = new BlockRule(SettingsEnum.ADREMOVER_INFO_PANEL_REMOVAL, "publisher_transparency_panel", "single_item_information_panel"); var latestPosts = new BlockRule(SettingsEnum.ADREMOVER_HIDE_LATEST_POSTS, "post_shelf"); var channelGuidelines = new BlockRule(SettingsEnum.ADREMOVER_HIDE_CHANNEL_GUIDELINES, "channel_guidelines_entry_banner"); - var artistCard = new BlockRule(SettingsEnum.HIDE_ARTIST_CARD, "official_card"); + var artistCard = new BlockRule(SettingsEnum.HIDE_ARTIST_CARDS, "official_card"); var selfSponsor = new BlockRule(SettingsEnum.ADREMOVER_SELF_SPONSOR_REMOVAL, "cta_shelf_card"); var chapterTeaser = new BlockRule(SettingsEnum.ADREMOVER_CHAPTER_TEASER_REMOVAL, "expandable_metadata"); var viewProducts = new BlockRule(SettingsEnum.ADREMOVER_VIEW_PRODUCTS, "product_item", "products_in_video"); 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 be94db31..3e7824da 100644 --- a/app/src/main/java/app/revanced/integrations/settings/SettingsEnum.java +++ b/app/src/main/java/app/revanced/integrations/settings/SettingsEnum.java @@ -72,7 +72,7 @@ public enum SettingsEnum { SPOOF_APP_VERSION("revanced_spoof_app_version", false, ReturnType.BOOLEAN, true), WIDE_SEARCHBAR("revanced_wide_searchbar", false, ReturnType.BOOLEAN, true), HIDE_ALBUM_CARDS("revanced_hide_album_cards", false, ReturnType.BOOLEAN, true), - HIDE_ARTIST_CARD("revanced_hide_artist_card", false, ReturnType.BOOLEAN), + HIDE_ARTIST_CARDS("revanced_hide_artist_cards", false, ReturnType.BOOLEAN), HIDE_AUTOPLAY_BUTTON("revanced_hide_autoplay_button", true, ReturnType.BOOLEAN, true), HIDE_VIDEO_WATERMARK("revanced_hide_video_watermark", true, ReturnType.BOOLEAN), HIDE_CAPTIONS_BUTTON("revanced_hide_captions_button", false, ReturnType.BOOLEAN), From 45c3f6e774f1d3320d0de582d5167d76bac958ff Mon Sep 17 00:00:00 2001 From: oSumAtrIX Date: Sun, 19 Feb 2023 23:53:08 +0100 Subject: [PATCH 07/20] refactor(youtube): separate patches into two Signed-off-by: oSumAtrIX --- .../integrations/patches/HideSeekbarPatch.java | 9 +++++++++ .../integrations/patches/HideTimeAndSeekbarPatch.java | 10 ---------- .../revanced/integrations/patches/HideTimePatch.java | 9 +++++++++ .../revanced/integrations/settings/SettingsEnum.java | 3 ++- 4 files changed, 20 insertions(+), 11 deletions(-) create mode 100644 app/src/main/java/app/revanced/integrations/patches/HideSeekbarPatch.java delete mode 100644 app/src/main/java/app/revanced/integrations/patches/HideTimeAndSeekbarPatch.java create mode 100644 app/src/main/java/app/revanced/integrations/patches/HideTimePatch.java diff --git a/app/src/main/java/app/revanced/integrations/patches/HideSeekbarPatch.java b/app/src/main/java/app/revanced/integrations/patches/HideSeekbarPatch.java new file mode 100644 index 00000000..8601da8a --- /dev/null +++ b/app/src/main/java/app/revanced/integrations/patches/HideSeekbarPatch.java @@ -0,0 +1,9 @@ +package app.revanced.integrations.patches; + +import app.revanced.integrations.settings.SettingsEnum; + +public class HideSeekbarPatch { + public static boolean hideSeekbar() { + return SettingsEnum.HIDE_SEEKBAR.getBoolean(); + } +} diff --git a/app/src/main/java/app/revanced/integrations/patches/HideTimeAndSeekbarPatch.java b/app/src/main/java/app/revanced/integrations/patches/HideTimeAndSeekbarPatch.java deleted file mode 100644 index 39da914a..00000000 --- a/app/src/main/java/app/revanced/integrations/patches/HideTimeAndSeekbarPatch.java +++ /dev/null @@ -1,10 +0,0 @@ -package app.revanced.integrations.patches; - -import app.revanced.integrations.settings.SettingsEnum; - -public class HideTimeAndSeekbarPatch { - //Used by app.revanced.patches.youtube.layout.hidetimeandseekbar.patch.HideTimeAndSeekbarPatch - public static boolean hideTimeAndSeekbar() { - return SettingsEnum.HIDE_TIME_AND_SEEKBAR.getBoolean(); - } -} diff --git a/app/src/main/java/app/revanced/integrations/patches/HideTimePatch.java b/app/src/main/java/app/revanced/integrations/patches/HideTimePatch.java new file mode 100644 index 00000000..87f023d3 --- /dev/null +++ b/app/src/main/java/app/revanced/integrations/patches/HideTimePatch.java @@ -0,0 +1,9 @@ +package app.revanced.integrations.patches; + +import app.revanced.integrations.settings.SettingsEnum; + +public class HideTimePatch { + public static boolean hideTime() { + return SettingsEnum.HIDE_TIME.getBoolean(); + } +} 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 3e7824da..480e19b8 100644 --- a/app/src/main/java/app/revanced/integrations/settings/SettingsEnum.java +++ b/app/src/main/java/app/revanced/integrations/settings/SettingsEnum.java @@ -89,7 +89,8 @@ public enum SettingsEnum { HIDE_REEL_BUTTON("revanced_hide_reel_button", true, ReturnType.BOOLEAN, true), HIDE_SHORTS_BUTTON("revanced_hide_shorts_button", true, ReturnType.BOOLEAN, true), HIDE_SHORTS_COMMENTS_BUTTON("revanced_hide_shorts_comments_button", false, ReturnType.BOOLEAN), - HIDE_TIME_AND_SEEKBAR("revanced_hide_time_and_seekbar", false, ReturnType.BOOLEAN), + HIDE_TIME("revanced_hide_time", false, ReturnType.BOOLEAN), + HIDE_SEEKBAR("revanced_hide_seekbar", false, ReturnType.BOOLEAN), HIDE_WATCH_IN_VR("revanced_hide_watch_in_vr", false, ReturnType.BOOLEAN, true), HIDE_BREAKING_NEWS("revanced_hide_breaking_news", true, ReturnType.BOOLEAN, true), HIDE_PLAYER_BUTTONS("revanced_hide_player_buttons", false, ReturnType.BOOLEAN, false), From c3203840663b81a67769a7621fd7b4c2cf6b0a25 Mon Sep 17 00:00:00 2001 From: oSumAtrIX Date: Sun, 19 Feb 2023 23:53:24 +0100 Subject: [PATCH 08/20] refactor(youtube): remove dead code Signed-off-by: oSumAtrIX --- .../integrations/patches/FullscreenPanelsRemoverPatch.java | 3 --- 1 file changed, 3 deletions(-) diff --git a/app/src/main/java/app/revanced/integrations/patches/FullscreenPanelsRemoverPatch.java b/app/src/main/java/app/revanced/integrations/patches/FullscreenPanelsRemoverPatch.java index 76d4adeb..b737d1ab 100644 --- a/app/src/main/java/app/revanced/integrations/patches/FullscreenPanelsRemoverPatch.java +++ b/app/src/main/java/app/revanced/integrations/patches/FullscreenPanelsRemoverPatch.java @@ -1,13 +1,10 @@ package app.revanced.integrations.patches; import android.view.View; - import app.revanced.integrations.settings.SettingsEnum; public class FullscreenPanelsRemoverPatch { - public static int getFullscreenPanelsVisibility() { return SettingsEnum.HIDE_FULLSCREEN_PANELS.getBoolean() ? View.GONE : View.VISIBLE; } - } From f6573521ba0211986bbaaaf7509df5bfc16fae2b Mon Sep 17 00:00:00 2001 From: semantic-release-bot Date: Mon, 20 Feb 2023 04:18:21 +0000 Subject: [PATCH 09/20] chore(release): 0.98.0-dev.2 [skip ci] # [0.98.0-dev.2](https://github.com/revanced/revanced-integrations/compare/v0.98.0-dev.1...v0.98.0-dev.2) (2023-02-20) ### Bug Fixes * **youtube/hide-watch-in-vr:** fix descriptions ([96fcc0b](https://github.com/revanced/revanced-integrations/commit/96fcc0b1c70c277c99a99db9ca2d50f649a41a70)) ### Features * **youtube/general-ads:** hide channel bar ([35c4266](https://github.com/revanced/revanced-integrations/commit/35c4266e8b8ad7cf9fb5d14cf6cbc8ae65cc78df)) * **youtube/general-ads:** hide horizontal video shelf ([fd975ec](https://github.com/revanced/revanced-integrations/commit/fd975ecd2a91ea7ac713d3b7badf373c7d53ad5c)) --- CHANGELOG.md | 13 +++++++++++++ gradle.properties | 2 +- 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index db8e865e..a93d6c8b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,16 @@ +# [0.98.0-dev.2](https://github.com/revanced/revanced-integrations/compare/v0.98.0-dev.1...v0.98.0-dev.2) (2023-02-20) + + +### Bug Fixes + +* **youtube/hide-watch-in-vr:** fix descriptions ([96fcc0b](https://github.com/revanced/revanced-integrations/commit/96fcc0b1c70c277c99a99db9ca2d50f649a41a70)) + + +### Features + +* **youtube/general-ads:** hide channel bar ([35c4266](https://github.com/revanced/revanced-integrations/commit/35c4266e8b8ad7cf9fb5d14cf6cbc8ae65cc78df)) +* **youtube/general-ads:** hide horizontal video shelf ([fd975ec](https://github.com/revanced/revanced-integrations/commit/fd975ecd2a91ea7ac713d3b7badf373c7d53ad5c)) + # [0.98.0-dev.1](https://github.com/revanced/revanced-integrations/compare/v0.97.0...v0.98.0-dev.1) (2023-02-18) diff --git a/gradle.properties b/gradle.properties index 385ac756..71175bc4 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,3 +1,3 @@ org.gradle.jvmargs = -Xmx2048m android.useAndroidX = true -version = 0.98.0-dev.1 +version = 0.98.0-dev.2 From 24d7e47844c6df37379cdcfa96fb1899e21e4e6a Mon Sep 17 00:00:00 2001 From: oSumAtrIX Date: Mon, 20 Feb 2023 05:24:47 +0100 Subject: [PATCH 10/20] ci: use new `semantic-release-backmerge` option Signed-off-by: oSumAtrIX --- .releaserc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.releaserc b/.releaserc index 371b8bd9..a2c94798 100644 --- a/.releaserc +++ b/.releaserc @@ -34,7 +34,7 @@ [ "@saithodev/semantic-release-backmerge", { - branches: [{from: "main", to: "dev"}], + backmergeBranches: ["dev"], clearWorkspace: true } ] From f1e6cbcdf10245b599b34384b52ee1d4d47ea0be Mon Sep 17 00:00:00 2001 From: oSumAtrIX Date: Wed, 22 Feb 2023 05:33:42 +0100 Subject: [PATCH 11/20] chore: update dependencies Signed-off-by: oSumAtrIX --- app/build.gradle.kts | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index bb121734..dfdf8d89 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -1,6 +1,3 @@ -import java.io.FileInputStream -import java.util.Properties - plugins { id("com.android.application") id("org.jetbrains.kotlin.android") @@ -47,7 +44,7 @@ android { dependencies { compileOnly(project(mapOf("path" to ":dummy"))) compileOnly("androidx.annotation:annotation:1.5.0") - compileOnly("androidx.appcompat:appcompat:1.5.1") + compileOnly("androidx.appcompat:appcompat:1.6.1") compileOnly("com.squareup.okhttp3:okhttp:5.0.0-alpha.11") compileOnly("com.squareup.retrofit2:retrofit:2.9.0") } From 665598836abfcead9c5e68ce7831a4137465df39 Mon Sep 17 00:00:00 2001 From: oSumAtrIX Date: Wed, 22 Feb 2023 05:37:51 +0100 Subject: [PATCH 12/20] fix(twitter): make `hide-ads` patch compatible with any version Signed-off-by: oSumAtrIX --- .../twitter/patches/hook/json/BaseJsonHook.kt | 9 + .../twitter/patches/hook/json/JsonHook.kt | 15 ++ .../patches/hook/json/JsonHookPatch.kt | 28 +++ .../twitter/patches/hook/patch/Hook.kt | 11 ++ .../twitter/patches/hook/patch/ads/AdsHook.kt | 15 ++ .../patches/hook/twifucker/TwiFucker.kt | 177 ++++++++++++++++++ .../patches/hook/twifucker/TwiFuckerUtils.kt | 22 +++ .../revanced/twitter/utils/json/JsonUtils.kt | 13 ++ .../twitter/utils/stream/StreamUtils.kt | 24 +++ 9 files changed, 314 insertions(+) create mode 100644 app/src/main/java/app/revanced/twitter/patches/hook/json/BaseJsonHook.kt create mode 100644 app/src/main/java/app/revanced/twitter/patches/hook/json/JsonHook.kt create mode 100644 app/src/main/java/app/revanced/twitter/patches/hook/json/JsonHookPatch.kt create mode 100644 app/src/main/java/app/revanced/twitter/patches/hook/patch/Hook.kt create mode 100644 app/src/main/java/app/revanced/twitter/patches/hook/patch/ads/AdsHook.kt create mode 100644 app/src/main/java/app/revanced/twitter/patches/hook/twifucker/TwiFucker.kt create mode 100644 app/src/main/java/app/revanced/twitter/patches/hook/twifucker/TwiFuckerUtils.kt create mode 100644 app/src/main/java/app/revanced/twitter/utils/json/JsonUtils.kt create mode 100644 app/src/main/java/app/revanced/twitter/utils/stream/StreamUtils.kt diff --git a/app/src/main/java/app/revanced/twitter/patches/hook/json/BaseJsonHook.kt b/app/src/main/java/app/revanced/twitter/patches/hook/json/BaseJsonHook.kt new file mode 100644 index 00000000..96838370 --- /dev/null +++ b/app/src/main/java/app/revanced/twitter/patches/hook/json/BaseJsonHook.kt @@ -0,0 +1,9 @@ +package app.revanced.twitter.patches.hook.json + +import org.json.JSONObject + +abstract class BaseJsonHook : JsonHook { + abstract fun apply(json: JSONObject) + + override fun transform(json: JSONObject) = json.apply { apply(json) } +} \ No newline at end of file diff --git a/app/src/main/java/app/revanced/twitter/patches/hook/json/JsonHook.kt b/app/src/main/java/app/revanced/twitter/patches/hook/json/JsonHook.kt new file mode 100644 index 00000000..e5c2f0ef --- /dev/null +++ b/app/src/main/java/app/revanced/twitter/patches/hook/json/JsonHook.kt @@ -0,0 +1,15 @@ +package app.revanced.twitter.patches.hook.json + +import app.revanced.twitter.patches.hook.patch.Hook +import org.json.JSONObject + +interface JsonHook : Hook { + /** + * Transform a JSONObject. + * + * @param json The JSONObject. + */ + fun transform(json: JSONObject): JSONObject + + override fun hook(type: JSONObject) = transform(type) +} \ No newline at end of file diff --git a/app/src/main/java/app/revanced/twitter/patches/hook/json/JsonHookPatch.kt b/app/src/main/java/app/revanced/twitter/patches/hook/json/JsonHookPatch.kt new file mode 100644 index 00000000..9817b6aa --- /dev/null +++ b/app/src/main/java/app/revanced/twitter/patches/hook/json/JsonHookPatch.kt @@ -0,0 +1,28 @@ +package app.revanced.twitter.patches.hook.json + +import app.revanced.twitter.utils.json.JsonUtils.parseJson +import app.revanced.twitter.utils.stream.StreamUtils +import org.json.JSONException +import java.io.IOException +import java.io.InputStream + +object JsonHookPatch { + private val hooks = buildList { + // Modified by corresponding patch. + } + + @JvmStatic + fun parseJsonHook(jsonInputStream: InputStream): InputStream { + var jsonObject = try { + parseJson(jsonInputStream) + } catch (ignored: IOException) { + return jsonInputStream // Unreachable. + } catch (ignored: JSONException) { + return jsonInputStream + } + + for (hook in hooks) jsonObject = hook.hook(jsonObject) + + return StreamUtils.fromString(jsonObject.toString()) + } +} \ No newline at end of file diff --git a/app/src/main/java/app/revanced/twitter/patches/hook/patch/Hook.kt b/app/src/main/java/app/revanced/twitter/patches/hook/patch/Hook.kt new file mode 100644 index 00000000..3cf57c2f --- /dev/null +++ b/app/src/main/java/app/revanced/twitter/patches/hook/patch/Hook.kt @@ -0,0 +1,11 @@ +package app.revanced.twitter.patches.hook.patch + +import androidx.annotation.NonNull + +interface Hook { + /** + * Hook the given type. + * @param type The type to hook + */ + fun hook(@NonNull type: T): T +} \ No newline at end of file diff --git a/app/src/main/java/app/revanced/twitter/patches/hook/patch/ads/AdsHook.kt b/app/src/main/java/app/revanced/twitter/patches/hook/patch/ads/AdsHook.kt new file mode 100644 index 00000000..cf84a52b --- /dev/null +++ b/app/src/main/java/app/revanced/twitter/patches/hook/patch/ads/AdsHook.kt @@ -0,0 +1,15 @@ +package app.revanced.twitter.patches.hook.patch.ads + +import app.revanced.twitter.patches.hook.json.BaseJsonHook +import app.revanced.twitter.patches.hook.twifucker.TwiFucker +import org.json.JSONObject + + +object AdsHook : BaseJsonHook() { + /** + * Strips JSONObject from promoted ads. + * + * @param json The JSONObject. + */ + override fun apply(json: JSONObject) = TwiFucker.hidePromotedAds(json) +} \ No newline at end of file diff --git a/app/src/main/java/app/revanced/twitter/patches/hook/twifucker/TwiFucker.kt b/app/src/main/java/app/revanced/twitter/patches/hook/twifucker/TwiFucker.kt new file mode 100644 index 00000000..c79254e2 --- /dev/null +++ b/app/src/main/java/app/revanced/twitter/patches/hook/twifucker/TwiFucker.kt @@ -0,0 +1,177 @@ +package app.revanced.twitter.patches.hook.twifucker + +import android.util.Log +import app.revanced.twitter.patches.hook.twifucker.TwiFuckerUtils.forEach +import app.revanced.twitter.patches.hook.twifucker.TwiFuckerUtils.forEachIndexed +import org.json.JSONArray +import org.json.JSONObject + +// https://raw.githubusercontent.com/Dr-TSNG/TwiFucker/880cdf1c1622e54ab45561ffcb4f53d94ed97bae/app/src/main/java/icu/nullptr/twifucker/hook/JsonHook.kt +internal object TwiFucker { + // root + private fun JSONObject.jsonGetInstructions(): JSONArray? = + optJSONObject("timeline")?.optJSONArray("instructions") + + private fun JSONObject.jsonGetData(): JSONObject? = optJSONObject("data") + + private fun JSONObject.jsonHasRecommendedUsers(): Boolean = has("recommended_users") + + private fun JSONObject.jsonRemoveRecommendedUsers() { + remove("recommended_users") + } + + private fun JSONObject.jsonCheckAndRemoveRecommendedUsers() { + if (jsonHasRecommendedUsers()) { + Log.d("revanced", "Handle recommended users: $this") + jsonRemoveRecommendedUsers() + } + } + + private fun JSONObject.jsonHasThreads(): Boolean = has("threads") + + private fun JSONObject.jsonRemoveThreads() { + remove("threads") + } + + private fun JSONObject.jsonCheckAndRemoveThreads() { + if (jsonHasThreads()) { + Log.d("revabced", "Handle threads: $this") + jsonRemoveThreads() + } + } + + // data + private fun JSONObject.dataGetInstructions(): JSONArray? { + val timeline = optJSONObject("user_result")?.optJSONObject("result") + ?.optJSONObject("timeline_response")?.optJSONObject("timeline") + ?: optJSONObject("timeline_response")?.optJSONObject("timeline") + ?: optJSONObject("timeline_response") + return timeline?.optJSONArray("instructions") + } + + private fun JSONObject.dataCheckAndRemove() { + dataGetInstructions()?.forEach { instruction -> + instruction.instructionCheckAndRemove() + } + } + + private fun JSONObject.dataGetLegacy(): JSONObject? = + optJSONObject("tweet_result")?.optJSONObject("result")?.let { + if (it.has("tweet")) { + it.optJSONObject("tweet") + } else { + it + } + }?.optJSONObject("legacy") + + + // entry + private fun JSONObject.entryHasPromotedMetadata(): Boolean = + optJSONObject("content")?.optJSONObject("item")?.optJSONObject("content") + ?.optJSONObject("tweet") + ?.has("promotedMetadata") == true || optJSONObject("content")?.optJSONObject("content") + ?.has("tweetPromotedMetadata") == true || optJSONObject("item")?.optJSONObject("content") + ?.has("tweetPromotedMetadata") == true + + private fun JSONObject.entryGetContentItems(): JSONArray? = + optJSONObject("content")?.optJSONArray("items") + ?: optJSONObject("content")?.optJSONObject("timelineModule")?.optJSONArray("items") + + private fun JSONObject.entryIsTweetDetailRelatedTweets(): Boolean = + optString("entryId").startsWith("tweetdetailrelatedtweets-") + + private fun JSONObject.entryGetTrends(): JSONArray? = + optJSONObject("content")?.optJSONObject("timelineModule")?.optJSONArray("items") + + // trend + private fun JSONObject.trendHasPromotedMetadata(): Boolean = + optJSONObject("item")?.optJSONObject("content")?.optJSONObject("trend") + ?.has("promotedMetadata") == true + + private fun JSONArray.trendRemoveAds() { + val trendRemoveIndex = mutableListOf() + forEachIndexed { trendIndex, trend -> + if (trend.trendHasPromotedMetadata()) { + Log.d("revanced", "Handle trends ads $trendIndex $trend") + trendRemoveIndex.add(trendIndex) + } + } + for (i in trendRemoveIndex.asReversed()) { + remove(i) + } + } + + // instruction + private fun JSONObject.instructionTimelineAddEntries(): JSONArray? = optJSONArray("entries") + + private fun JSONObject.instructionGetAddEntries(): JSONArray? = + optJSONObject("addEntries")?.optJSONArray("entries") + + private fun JSONObject.instructionCheckAndRemove() { + instructionTimelineAddEntries()?.entriesRemoveAnnoyance() + instructionGetAddEntries()?.entriesRemoveAnnoyance() + } + + // entries + private fun JSONArray.entriesRemoveTimelineAds() { + val removeIndex = mutableListOf() + forEachIndexed { entryIndex, entry -> + entry.entryGetTrends()?.trendRemoveAds() + + if (entry.entryHasPromotedMetadata()) { + Log.d("revanced", "Handle timeline ads $entryIndex $entry") + removeIndex.add(entryIndex) + } + + val innerRemoveIndex = mutableListOf() + val contentItems = entry.entryGetContentItems() + contentItems?.forEachIndexed inner@{ itemIndex, item -> + if (item.entryHasPromotedMetadata()) { + Log.d("revanced", "Handle timeline replies ads $entryIndex $entry") + if (contentItems.length() == 1) { + removeIndex.add(entryIndex) + } else { + innerRemoveIndex.add(itemIndex) + } + return@inner + } + } + for (i in innerRemoveIndex.asReversed()) { + contentItems?.remove(i) + } + } + for (i in removeIndex.reversed()) { + remove(i) + } + } + + private fun JSONArray.entriesRemoveTweetDetailRelatedTweets() { + val removeIndex = mutableListOf() + forEachIndexed { entryIndex, entry -> + + if (entry.entryIsTweetDetailRelatedTweets()) { + Log.d("revanced", "Handle tweet detail related tweets $entryIndex $entry") + removeIndex.add(entryIndex) + } + } + for (i in removeIndex.reversed()) { + remove(i) + } + } + + private fun JSONArray.entriesRemoveAnnoyance() { + entriesRemoveTimelineAds() + entriesRemoveTweetDetailRelatedTweets() + } + + fun hideRecommendedUsers(json: JSONObject) { + json.jsonCheckAndRemoveRecommendedUsers() + } + + fun hidePromotedAds(json: JSONObject) { + json.jsonGetInstructions()?.forEach { instruction -> + instruction.instructionCheckAndRemove() + } + json.jsonGetData()?.dataCheckAndRemove() + } +} \ No newline at end of file diff --git a/app/src/main/java/app/revanced/twitter/patches/hook/twifucker/TwiFuckerUtils.kt b/app/src/main/java/app/revanced/twitter/patches/hook/twifucker/TwiFuckerUtils.kt new file mode 100644 index 00000000..33e44cb4 --- /dev/null +++ b/app/src/main/java/app/revanced/twitter/patches/hook/twifucker/TwiFuckerUtils.kt @@ -0,0 +1,22 @@ +package app.revanced.twitter.patches.hook.twifucker + +import org.json.JSONArray +import org.json.JSONObject + +internal object TwiFuckerUtils { + inline fun JSONArray.forEach(action: (JSONObject) -> Unit) { + (0 until this.length()).forEach { i -> + if (this[i] is JSONObject) { + action(this[i] as JSONObject) + } + } + } + + inline fun JSONArray.forEachIndexed(action: (index: Int, JSONObject) -> Unit) { + (0 until this.length()).forEach { i -> + if (this[i] is JSONObject) { + action(i, this[i] as JSONObject) + } + } + } +} diff --git a/app/src/main/java/app/revanced/twitter/utils/json/JsonUtils.kt b/app/src/main/java/app/revanced/twitter/utils/json/JsonUtils.kt new file mode 100644 index 00000000..e0102a4e --- /dev/null +++ b/app/src/main/java/app/revanced/twitter/utils/json/JsonUtils.kt @@ -0,0 +1,13 @@ +package app.revanced.twitter.utils.json + +import app.revanced.twitter.utils.stream.StreamUtils +import org.json.JSONException +import org.json.JSONObject +import java.io.IOException +import java.io.InputStream + +object JsonUtils { + @JvmStatic + @Throws(IOException::class, JSONException::class) + fun parseJson(jsonInputStream: InputStream) = JSONObject(StreamUtils.toString(jsonInputStream)) +} \ No newline at end of file diff --git a/app/src/main/java/app/revanced/twitter/utils/stream/StreamUtils.kt b/app/src/main/java/app/revanced/twitter/utils/stream/StreamUtils.kt new file mode 100644 index 00000000..ccbcc823 --- /dev/null +++ b/app/src/main/java/app/revanced/twitter/utils/stream/StreamUtils.kt @@ -0,0 +1,24 @@ +package app.revanced.twitter.utils.stream + +import java.io.ByteArrayInputStream +import java.io.ByteArrayOutputStream +import java.io.IOException +import java.io.InputStream + +object StreamUtils { + @Throws(IOException::class) + fun toString(inputStream: InputStream): String { + ByteArrayOutputStream().use { result -> + val buffer = ByteArray(1024) + var length: Int + while (inputStream.read(buffer).also { length = it } != -1) { + result.write(buffer, 0, length) + } + return result.toString() + } + } + + fun fromString(string: String): InputStream { + return ByteArrayInputStream(string.toByteArray()) + } +} \ No newline at end of file From 96eea3d4fc096f389840481b146dcf1542cb9c43 Mon Sep 17 00:00:00 2001 From: oSumAtrIX Date: Wed, 22 Feb 2023 05:38:13 +0100 Subject: [PATCH 13/20] feat(twitter): `hide-recommended-users` patch Signed-off-by: oSumAtrIX --- .../patch/recommendation/RecommendedUsersHook.kt | 15 +++++++++++++++ 1 file changed, 15 insertions(+) create mode 100644 app/src/main/java/app/revanced/twitter/patches/hook/patch/recommendation/RecommendedUsersHook.kt diff --git a/app/src/main/java/app/revanced/twitter/patches/hook/patch/recommendation/RecommendedUsersHook.kt b/app/src/main/java/app/revanced/twitter/patches/hook/patch/recommendation/RecommendedUsersHook.kt new file mode 100644 index 00000000..29bf3cc2 --- /dev/null +++ b/app/src/main/java/app/revanced/twitter/patches/hook/patch/recommendation/RecommendedUsersHook.kt @@ -0,0 +1,15 @@ +package app.revanced.twitter.patches.hook.patch.recommendation + +import app.revanced.twitter.patches.hook.json.BaseJsonHook +import app.revanced.twitter.patches.hook.twifucker.TwiFucker +import org.json.JSONObject + + +object RecommendedUsersHook : BaseJsonHook() { + /** + * Strips JSONObject from recommended users. + * + * @param json The JSONObject. + */ + override fun apply(json: JSONObject) = TwiFucker.hideRecommendedUsers(json) +} \ No newline at end of file From 1809d1bbf919a4c2d4fef624c410a8e409d12d73 Mon Sep 17 00:00:00 2001 From: semantic-release-bot Date: Wed, 22 Feb 2023 04:40:57 +0000 Subject: [PATCH 14/20] chore(release): 0.98.0-dev.3 [skip ci] # [0.98.0-dev.3](https://github.com/revanced/revanced-integrations/compare/v0.98.0-dev.2...v0.98.0-dev.3) (2023-02-22) ### Bug Fixes * **twitter:** make `hide-ads` patch compatible with any version ([6655988](https://github.com/revanced/revanced-integrations/commit/665598836abfcead9c5e68ce7831a4137465df39)) ### Features * **twitter:** `hide-recommended-users` patch ([96eea3d](https://github.com/revanced/revanced-integrations/commit/96eea3d4fc096f389840481b146dcf1542cb9c43)) --- CHANGELOG.md | 12 ++++++++++++ gradle.properties | 2 +- 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index a93d6c8b..eae9ce05 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,15 @@ +# [0.98.0-dev.3](https://github.com/revanced/revanced-integrations/compare/v0.98.0-dev.2...v0.98.0-dev.3) (2023-02-22) + + +### Bug Fixes + +* **twitter:** make `hide-ads` patch compatible with any version ([6655988](https://github.com/revanced/revanced-integrations/commit/665598836abfcead9c5e68ce7831a4137465df39)) + + +### Features + +* **twitter:** `hide-recommended-users` patch ([96eea3d](https://github.com/revanced/revanced-integrations/commit/96eea3d4fc096f389840481b146dcf1542cb9c43)) + # [0.98.0-dev.2](https://github.com/revanced/revanced-integrations/compare/v0.98.0-dev.1...v0.98.0-dev.2) (2023-02-20) diff --git a/gradle.properties b/gradle.properties index 71175bc4..f2180ac1 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,3 +1,3 @@ org.gradle.jvmargs = -Xmx2048m android.useAndroidX = true -version = 0.98.0-dev.2 +version = 0.98.0-dev.3 From b5a29fdce195ab47edd61d1d684def1ac919297c Mon Sep 17 00:00:00 2001 From: oSumAtrIX Date: Wed, 22 Feb 2023 05:42:28 +0100 Subject: [PATCH 15/20] fix: remove nullable annotation in Kotlin code Signed-off-by: oSumAtrIX --- .../main/java/app/revanced/twitter/patches/hook/patch/Hook.kt | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/app/src/main/java/app/revanced/twitter/patches/hook/patch/Hook.kt b/app/src/main/java/app/revanced/twitter/patches/hook/patch/Hook.kt index 3cf57c2f..b57c4077 100644 --- a/app/src/main/java/app/revanced/twitter/patches/hook/patch/Hook.kt +++ b/app/src/main/java/app/revanced/twitter/patches/hook/patch/Hook.kt @@ -1,11 +1,9 @@ package app.revanced.twitter.patches.hook.patch -import androidx.annotation.NonNull - interface Hook { /** * Hook the given type. * @param type The type to hook */ - fun hook(@NonNull type: T): T + fun hook(type: T): T } \ No newline at end of file From 85cae1e5d6a3e3eab8dc2312fbc1ed9acc827163 Mon Sep 17 00:00:00 2001 From: semantic-release-bot Date: Wed, 22 Feb 2023 04:44:49 +0000 Subject: [PATCH 16/20] chore(release): 0.98.0-dev.4 [skip ci] # [0.98.0-dev.4](https://github.com/revanced/revanced-integrations/compare/v0.98.0-dev.3...v0.98.0-dev.4) (2023-02-22) ### Bug Fixes * remove nullable annotation in Kotlin code ([b5a29fd](https://github.com/revanced/revanced-integrations/commit/b5a29fdce195ab47edd61d1d684def1ac919297c)) --- CHANGELOG.md | 7 +++++++ gradle.properties | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index eae9ce05..c8141ddf 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,10 @@ +# [0.98.0-dev.4](https://github.com/revanced/revanced-integrations/compare/v0.98.0-dev.3...v0.98.0-dev.4) (2023-02-22) + + +### Bug Fixes + +* remove nullable annotation in Kotlin code ([b5a29fd](https://github.com/revanced/revanced-integrations/commit/b5a29fdce195ab47edd61d1d684def1ac919297c)) + # [0.98.0-dev.3](https://github.com/revanced/revanced-integrations/compare/v0.98.0-dev.2...v0.98.0-dev.3) (2023-02-22) diff --git a/gradle.properties b/gradle.properties index f2180ac1..7f4a2e5d 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,3 +1,3 @@ org.gradle.jvmargs = -Xmx2048m android.useAndroidX = true -version = 0.98.0-dev.3 +version = 0.98.0-dev.4 From 2d73b8b29b14ab9ce20fa33ea4ebfa66984c5903 Mon Sep 17 00:00:00 2001 From: oSumAtrIX Date: Wed, 22 Feb 2023 05:55:46 +0100 Subject: [PATCH 17/20] feat(youtube/open-links-directly): skip every redirect url Signed-off-by: oSumAtrIX --- .../patches/OpenLinksDirectlyPatch.java | 23 ++++++++++++------- 1 file changed, 15 insertions(+), 8 deletions(-) diff --git a/app/src/main/java/app/revanced/integrations/patches/OpenLinksDirectlyPatch.java b/app/src/main/java/app/revanced/integrations/patches/OpenLinksDirectlyPatch.java index fb18f7d0..fe53ac20 100644 --- a/app/src/main/java/app/revanced/integrations/patches/OpenLinksDirectlyPatch.java +++ b/app/src/main/java/app/revanced/integrations/patches/OpenLinksDirectlyPatch.java @@ -1,18 +1,25 @@ package app.revanced.integrations.patches; -import java.net.URLDecoder; -import java.util.regex.Matcher; -import java.util.regex.Pattern; - +import android.net.Uri; import app.revanced.integrations.settings.SettingsEnum; public class OpenLinksDirectlyPatch { + private static final String YOUTUBE_REDIRECT_PATH = "redirect"; - public static String parseRedirectUri(String uri) { + /** + * Parses the given YouTube redirect uri by extracting the redirect query. + * + * @param uri The YouTube redirect uri. + * @return The redirect query. + */ + public static Uri parseRedirectUri(String uri) { if (SettingsEnum.OPEN_LINKS_DIRECTLY.getBoolean()) { - Matcher matcher = Pattern.compile("&q=(http.+?)&v=").matcher(uri); - return matcher.find() ? URLDecoder.decode(matcher.group(1)) : uri; + final var parsed = Uri.parse(uri); + + if (parsed.getPath().equals(YOUTUBE_REDIRECT_PATH)) + Uri.parse(parsed.getQueryParameter("q")); } - return uri; + + return Uri.parse(uri); } } From 5749a1dd65e4998fda7bdee25ce415658d358da4 Mon Sep 17 00:00:00 2001 From: oSumAtrIX Date: Wed, 22 Feb 2023 06:06:04 +0100 Subject: [PATCH 18/20] refactor(youtube/hide-info-cards): fix casing Signed-off-by: oSumAtrIX --- .../{HideInfocardsPatch.java => HideInfoCardsPatch.java} | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) rename app/src/main/java/app/revanced/integrations/patches/{HideInfocardsPatch.java => HideInfoCardsPatch.java} (67%) diff --git a/app/src/main/java/app/revanced/integrations/patches/HideInfocardsPatch.java b/app/src/main/java/app/revanced/integrations/patches/HideInfoCardsPatch.java similarity index 67% rename from app/src/main/java/app/revanced/integrations/patches/HideInfocardsPatch.java rename to app/src/main/java/app/revanced/integrations/patches/HideInfoCardsPatch.java index a42792a2..086a501e 100644 --- a/app/src/main/java/app/revanced/integrations/patches/HideInfocardsPatch.java +++ b/app/src/main/java/app/revanced/integrations/patches/HideInfoCardsPatch.java @@ -1,16 +1,15 @@ package app.revanced.integrations.patches; import android.view.View; - import app.revanced.integrations.settings.SettingsEnum; -public class HideInfocardsPatch { - public static void hideInfocardsIncognito(View view) { +public class HideInfoCardsPatch { + public static void hideInfoCardsIncognito(View view) { if (!SettingsEnum.HIDE_INFO_CARDS.getBoolean()) return; view.setVisibility(View.GONE); } - public static boolean hideInfocardsMethodCall() { + public static boolean hideInfoCardsMethodCall() { return SettingsEnum.HIDE_INFO_CARDS.getBoolean(); } } From 37c0cc04c4a49fdbf44b89eb132018832223a712 Mon Sep 17 00:00:00 2001 From: semantic-release-bot Date: Wed, 22 Feb 2023 05:11:24 +0000 Subject: [PATCH 19/20] chore(release): 0.98.0-dev.5 [skip ci] # [0.98.0-dev.5](https://github.com/revanced/revanced-integrations/compare/v0.98.0-dev.4...v0.98.0-dev.5) (2023-02-22) ### Features * **youtube/open-links-directly:** skip every redirect url ([2d73b8b](https://github.com/revanced/revanced-integrations/commit/2d73b8b29b14ab9ce20fa33ea4ebfa66984c5903)) --- CHANGELOG.md | 7 +++++++ gradle.properties | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index c8141ddf..fc080344 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,10 @@ +# [0.98.0-dev.5](https://github.com/revanced/revanced-integrations/compare/v0.98.0-dev.4...v0.98.0-dev.5) (2023-02-22) + + +### Features + +* **youtube/open-links-directly:** skip every redirect url ([2d73b8b](https://github.com/revanced/revanced-integrations/commit/2d73b8b29b14ab9ce20fa33ea4ebfa66984c5903)) + # [0.98.0-dev.4](https://github.com/revanced/revanced-integrations/compare/v0.98.0-dev.3...v0.98.0-dev.4) (2023-02-22) diff --git a/gradle.properties b/gradle.properties index 7f4a2e5d..a71e3a66 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,3 +1,3 @@ org.gradle.jvmargs = -Xmx2048m android.useAndroidX = true -version = 0.98.0-dev.4 +version = 0.98.0-dev.5 From 621ef63d860eea2434efbbadf22d7ec1c243a1aa Mon Sep 17 00:00:00 2001 From: oSumAtrIX Date: Wed, 22 Feb 2023 06:40:01 +0100 Subject: [PATCH 20/20] ci: add backmerge target branch Signed-off-by: oSumAtrIX --- .releaserc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.releaserc b/.releaserc index a2c94798..f8081831 100644 --- a/.releaserc +++ b/.releaserc @@ -34,7 +34,7 @@ [ "@saithodev/semantic-release-backmerge", { - backmergeBranches: ["dev"], + backmergeBranches: [{"from": "dev", "to": "main"}], clearWorkspace: true } ]