* Going over 8x does not increase the actual playback speed any higher,
* and the UI selector starts flickering and acting weird.
* Over 10x and the speeds show up out of order in the UI selector.
@@ -157,11 +157,10 @@ public class CustomPlaybackSpeedPatch {
}
View firstChild = recyclerView.getChildAt(0);
- if (!(firstChild instanceof ViewGroup)) {
+ if (!(firstChild instanceof ViewGroup PlaybackSpeedParentView)) {
return false;
}
- ViewGroup PlaybackSpeedParentView = (ViewGroup) firstChild;
if (PlaybackSpeedParentView.getChildCount() != expectedChildCount) {
return false;
}
diff --git a/extensions/shared/src/main/java/app/revanced/extension/youtube/patches/playback/speed/RememberPlaybackSpeedPatch.java b/extensions/youtube/src/main/java/app/revanced/extension/youtube/patches/playback/speed/RememberPlaybackSpeedPatch.java
similarity index 100%
rename from extensions/shared/src/main/java/app/revanced/extension/youtube/patches/playback/speed/RememberPlaybackSpeedPatch.java
rename to extensions/youtube/src/main/java/app/revanced/extension/youtube/patches/playback/speed/RememberPlaybackSpeedPatch.java
diff --git a/extensions/shared/src/main/java/app/revanced/extension/youtube/patches/spoof/ClientType.java b/extensions/youtube/src/main/java/app/revanced/extension/youtube/patches/spoof/ClientType.java
similarity index 100%
rename from extensions/shared/src/main/java/app/revanced/extension/youtube/patches/spoof/ClientType.java
rename to extensions/youtube/src/main/java/app/revanced/extension/youtube/patches/spoof/ClientType.java
diff --git a/extensions/shared/src/main/java/app/revanced/extension/youtube/patches/spoof/DeviceHardwareSupport.java b/extensions/youtube/src/main/java/app/revanced/extension/youtube/patches/spoof/DeviceHardwareSupport.java
similarity index 100%
rename from extensions/shared/src/main/java/app/revanced/extension/youtube/patches/spoof/DeviceHardwareSupport.java
rename to extensions/youtube/src/main/java/app/revanced/extension/youtube/patches/spoof/DeviceHardwareSupport.java
diff --git a/extensions/shared/src/main/java/app/revanced/extension/youtube/patches/spoof/SpoofAppVersionPatch.java b/extensions/youtube/src/main/java/app/revanced/extension/youtube/patches/spoof/SpoofAppVersionPatch.java
similarity index 100%
rename from extensions/shared/src/main/java/app/revanced/extension/youtube/patches/spoof/SpoofAppVersionPatch.java
rename to extensions/youtube/src/main/java/app/revanced/extension/youtube/patches/spoof/SpoofAppVersionPatch.java
diff --git a/extensions/shared/src/main/java/app/revanced/extension/youtube/patches/spoof/SpoofDeviceDimensionsPatch.java b/extensions/youtube/src/main/java/app/revanced/extension/youtube/patches/spoof/SpoofDeviceDimensionsPatch.java
similarity index 100%
rename from extensions/shared/src/main/java/app/revanced/extension/youtube/patches/spoof/SpoofDeviceDimensionsPatch.java
rename to extensions/youtube/src/main/java/app/revanced/extension/youtube/patches/spoof/SpoofDeviceDimensionsPatch.java
diff --git a/extensions/shared/src/main/java/app/revanced/extension/youtube/patches/spoof/SpoofVideoStreamsPatch.java b/extensions/youtube/src/main/java/app/revanced/extension/youtube/patches/spoof/SpoofVideoStreamsPatch.java
similarity index 100%
rename from extensions/shared/src/main/java/app/revanced/extension/youtube/patches/spoof/SpoofVideoStreamsPatch.java
rename to extensions/youtube/src/main/java/app/revanced/extension/youtube/patches/spoof/SpoofVideoStreamsPatch.java
diff --git a/extensions/shared/src/main/java/app/revanced/extension/youtube/patches/spoof/requests/PlayerRoutes.java b/extensions/youtube/src/main/java/app/revanced/extension/youtube/patches/spoof/requests/PlayerRoutes.java
similarity index 95%
rename from extensions/shared/src/main/java/app/revanced/extension/youtube/patches/spoof/requests/PlayerRoutes.java
rename to extensions/youtube/src/main/java/app/revanced/extension/youtube/patches/spoof/requests/PlayerRoutes.java
index 3388892cc..8d6782cb3 100644
--- a/extensions/shared/src/main/java/app/revanced/extension/youtube/patches/spoof/requests/PlayerRoutes.java
+++ b/extensions/youtube/src/main/java/app/revanced/extension/youtube/patches/spoof/requests/PlayerRoutes.java
@@ -7,9 +7,9 @@ import java.io.IOException;
import java.net.HttpURLConnection;
import app.revanced.extension.shared.Logger;
+import app.revanced.extension.shared.requests.Requester;
+import app.revanced.extension.shared.requests.Route;
import app.revanced.extension.youtube.patches.spoof.ClientType;
-import app.revanced.extension.youtube.requests.Requester;
-import app.revanced.extension.youtube.requests.Route;
final class PlayerRoutes {
static final Route.CompiledRoute GET_STREAMING_DATA = new Route(
diff --git a/extensions/shared/src/main/java/app/revanced/extension/youtube/patches/spoof/requests/StreamingDataRequest.java b/extensions/youtube/src/main/java/app/revanced/extension/youtube/patches/spoof/requests/StreamingDataRequest.java
similarity index 100%
rename from extensions/shared/src/main/java/app/revanced/extension/youtube/patches/spoof/requests/StreamingDataRequest.java
rename to extensions/youtube/src/main/java/app/revanced/extension/youtube/patches/spoof/requests/StreamingDataRequest.java
diff --git a/extensions/shared/src/main/java/app/revanced/extension/youtube/patches/theme/ProgressBarDrawable.java b/extensions/youtube/src/main/java/app/revanced/extension/youtube/patches/theme/ProgressBarDrawable.java
similarity index 100%
rename from extensions/shared/src/main/java/app/revanced/extension/youtube/patches/theme/ProgressBarDrawable.java
rename to extensions/youtube/src/main/java/app/revanced/extension/youtube/patches/theme/ProgressBarDrawable.java
diff --git a/extensions/shared/src/main/java/app/revanced/extension/youtube/patches/theme/SeekbarColorPatch.java b/extensions/youtube/src/main/java/app/revanced/extension/youtube/patches/theme/SeekbarColorPatch.java
similarity index 100%
rename from extensions/shared/src/main/java/app/revanced/extension/youtube/patches/theme/SeekbarColorPatch.java
rename to extensions/youtube/src/main/java/app/revanced/extension/youtube/patches/theme/SeekbarColorPatch.java
diff --git a/extensions/shared/src/main/java/app/revanced/extension/youtube/patches/theme/ThemePatch.java b/extensions/youtube/src/main/java/app/revanced/extension/youtube/patches/theme/ThemePatch.java
similarity index 100%
rename from extensions/shared/src/main/java/app/revanced/extension/youtube/patches/theme/ThemePatch.java
rename to extensions/youtube/src/main/java/app/revanced/extension/youtube/patches/theme/ThemePatch.java
diff --git a/extensions/shared/src/main/java/app/revanced/extension/youtube/returnyoutubedislike/ReturnYouTubeDislike.java b/extensions/youtube/src/main/java/app/revanced/extension/youtube/returnyoutubedislike/ReturnYouTubeDislike.java
similarity index 100%
rename from extensions/shared/src/main/java/app/revanced/extension/youtube/returnyoutubedislike/ReturnYouTubeDislike.java
rename to extensions/youtube/src/main/java/app/revanced/extension/youtube/returnyoutubedislike/ReturnYouTubeDislike.java
diff --git a/extensions/shared/src/main/java/app/revanced/extension/youtube/returnyoutubedislike/requests/RYDVoteData.java b/extensions/youtube/src/main/java/app/revanced/extension/youtube/returnyoutubedislike/requests/RYDVoteData.java
similarity index 100%
rename from extensions/shared/src/main/java/app/revanced/extension/youtube/returnyoutubedislike/requests/RYDVoteData.java
rename to extensions/youtube/src/main/java/app/revanced/extension/youtube/returnyoutubedislike/requests/RYDVoteData.java
diff --git a/extensions/shared/src/main/java/app/revanced/extension/youtube/returnyoutubedislike/requests/ReturnYouTubeDislikeApi.java b/extensions/youtube/src/main/java/app/revanced/extension/youtube/returnyoutubedislike/requests/ReturnYouTubeDislikeApi.java
similarity index 99%
rename from extensions/shared/src/main/java/app/revanced/extension/youtube/returnyoutubedislike/requests/ReturnYouTubeDislikeApi.java
rename to extensions/youtube/src/main/java/app/revanced/extension/youtube/returnyoutubedislike/requests/ReturnYouTubeDislikeApi.java
index 0ccb87d32..1ebeea223 100644
--- a/extensions/shared/src/main/java/app/revanced/extension/youtube/returnyoutubedislike/requests/ReturnYouTubeDislikeApi.java
+++ b/extensions/youtube/src/main/java/app/revanced/extension/youtube/returnyoutubedislike/requests/ReturnYouTubeDislikeApi.java
@@ -24,7 +24,7 @@ import java.util.Objects;
import app.revanced.extension.shared.Logger;
import app.revanced.extension.shared.Utils;
-import app.revanced.extension.youtube.requests.Requester;
+import app.revanced.extension.shared.requests.Requester;
import app.revanced.extension.youtube.returnyoutubedislike.ReturnYouTubeDislike;
import app.revanced.extension.youtube.settings.Settings;
@@ -147,6 +147,7 @@ public class ReturnYouTubeDislikeApi {
*/
private static void randomlyWaitIfLocallyDebugging() {
final boolean DEBUG_RANDOMLY_DELAY_NETWORK_CALLS = false; // set true to debug UI
+
//noinspection ConstantValue
if (DEBUG_RANDOMLY_DELAY_NETWORK_CALLS) {
final long amountOfTimeToWaste = (long) (Math.random()
@@ -188,6 +189,7 @@ public class ReturnYouTubeDislikeApi {
*/
private static boolean checkIfRateLimitWasHit(int httpResponseCode) {
final boolean DEBUG_RATE_LIMIT = false; // set to true, to verify rate limit works
+
//noinspection ConstantValue
if (DEBUG_RATE_LIMIT) {
final double RANDOM_RATE_LIMIT_PERCENTAGE = 0.2; // 20% chance of a triggering a rate limit
diff --git a/extensions/shared/src/main/java/app/revanced/extension/youtube/returnyoutubedislike/requests/ReturnYouTubeDislikeRoutes.java b/extensions/youtube/src/main/java/app/revanced/extension/youtube/returnyoutubedislike/requests/ReturnYouTubeDislikeRoutes.java
similarity index 78%
rename from extensions/shared/src/main/java/app/revanced/extension/youtube/returnyoutubedislike/requests/ReturnYouTubeDislikeRoutes.java
rename to extensions/youtube/src/main/java/app/revanced/extension/youtube/returnyoutubedislike/requests/ReturnYouTubeDislikeRoutes.java
index 2c2ae7255..e4de849b0 100644
--- a/extensions/shared/src/main/java/app/revanced/extension/youtube/returnyoutubedislike/requests/ReturnYouTubeDislikeRoutes.java
+++ b/extensions/youtube/src/main/java/app/revanced/extension/youtube/returnyoutubedislike/requests/ReturnYouTubeDislikeRoutes.java
@@ -1,13 +1,13 @@
package app.revanced.extension.youtube.returnyoutubedislike.requests;
-import static app.revanced.extension.youtube.requests.Route.Method.GET;
-import static app.revanced.extension.youtube.requests.Route.Method.POST;
+import static app.revanced.extension.shared.requests.Route.Method.GET;
+import static app.revanced.extension.shared.requests.Route.Method.POST;
import java.io.IOException;
import java.net.HttpURLConnection;
-import app.revanced.extension.youtube.requests.Requester;
-import app.revanced.extension.youtube.requests.Route;
+import app.revanced.extension.shared.requests.Requester;
+import app.revanced.extension.shared.requests.Route;
class ReturnYouTubeDislikeRoutes {
static final String RYD_API_URL = "https://returnyoutubedislikeapi.com/";
diff --git a/extensions/shared/src/main/java/app/revanced/extension/youtube/settings/LicenseActivityHook.java b/extensions/youtube/src/main/java/app/revanced/extension/youtube/settings/LicenseActivityHook.java
similarity index 100%
rename from extensions/shared/src/main/java/app/revanced/extension/youtube/settings/LicenseActivityHook.java
rename to extensions/youtube/src/main/java/app/revanced/extension/youtube/settings/LicenseActivityHook.java
diff --git a/extensions/shared/src/main/java/app/revanced/extension/youtube/settings/Settings.java b/extensions/youtube/src/main/java/app/revanced/extension/youtube/settings/Settings.java
similarity index 99%
rename from extensions/shared/src/main/java/app/revanced/extension/youtube/settings/Settings.java
rename to extensions/youtube/src/main/java/app/revanced/extension/youtube/settings/Settings.java
index 1a62b6df3..4f11de928 100644
--- a/extensions/shared/src/main/java/app/revanced/extension/youtube/settings/Settings.java
+++ b/extensions/youtube/src/main/java/app/revanced/extension/youtube/settings/Settings.java
@@ -279,7 +279,6 @@ public class Settings extends BaseSettings {
public static final IntegerSetting ANNOUNCEMENT_LAST_ID = new IntegerSetting("revanced_announcement_last_id", -1, false, false);
public static final BooleanSetting CHECK_WATCH_HISTORY_DOMAIN_NAME = new BooleanSetting("revanced_check_watch_history_domain_name", TRUE, false, false);
public static final BooleanSetting REMOVE_TRACKING_QUERY_PARAMETER = new BooleanSetting("revanced_remove_tracking_query_parameter", TRUE);
- public static final IntegerSetting CHECK_ENVIRONMENT_WARNINGS_ISSUED = new IntegerSetting("revanced_check_environment_warnings_issued", 0, true, false);
// Debugging
/**
@@ -384,12 +383,18 @@ public class Settings extends BaseSettings {
SPOOF_APP_VERSION_TARGET.resetToDefault();
}
- // Migrate renamed enum type.
+ // Migrate renamed enum.
if (MINIPLAYER_TYPE.get() == PHONE) {
MINIPLAYER_TYPE.save(MINIMAL);
}
// endregion
+
+ // region SB import/export callbacks
+
+ Setting.addImportExportCallback(SponsorBlockSettings.SB_IMPORT_EXPORT_CALLBACK);
+
+ // endregion
}
}
diff --git a/extensions/shared/src/main/java/app/revanced/extension/youtube/settings/preference/AlternativeThumbnailsAboutDeArrowPreference.java b/extensions/youtube/src/main/java/app/revanced/extension/youtube/settings/preference/AlternativeThumbnailsAboutDeArrowPreference.java
similarity index 100%
rename from extensions/shared/src/main/java/app/revanced/extension/youtube/settings/preference/AlternativeThumbnailsAboutDeArrowPreference.java
rename to extensions/youtube/src/main/java/app/revanced/extension/youtube/settings/preference/AlternativeThumbnailsAboutDeArrowPreference.java
diff --git a/extensions/shared/src/main/java/app/revanced/extension/youtube/settings/preference/ForceAVCSpoofingPreference.java b/extensions/youtube/src/main/java/app/revanced/extension/youtube/settings/preference/ForceAVCSpoofingPreference.java
similarity index 100%
rename from extensions/shared/src/main/java/app/revanced/extension/youtube/settings/preference/ForceAVCSpoofingPreference.java
rename to extensions/youtube/src/main/java/app/revanced/extension/youtube/settings/preference/ForceAVCSpoofingPreference.java
diff --git a/extensions/shared/src/main/java/app/revanced/extension/youtube/settings/preference/HtmlPreference.java b/extensions/youtube/src/main/java/app/revanced/extension/youtube/settings/preference/HtmlPreference.java
similarity index 100%
rename from extensions/shared/src/main/java/app/revanced/extension/youtube/settings/preference/HtmlPreference.java
rename to extensions/youtube/src/main/java/app/revanced/extension/youtube/settings/preference/HtmlPreference.java
diff --git a/extensions/shared/src/main/java/app/revanced/extension/youtube/settings/preference/ReVancedPreferenceFragment.java b/extensions/youtube/src/main/java/app/revanced/extension/youtube/settings/preference/ReVancedPreferenceFragment.java
similarity index 100%
rename from extensions/shared/src/main/java/app/revanced/extension/youtube/settings/preference/ReVancedPreferenceFragment.java
rename to extensions/youtube/src/main/java/app/revanced/extension/youtube/settings/preference/ReVancedPreferenceFragment.java
diff --git a/extensions/shared/src/main/java/app/revanced/extension/youtube/settings/preference/ReVancedYouTubeAboutPreference.java b/extensions/youtube/src/main/java/app/revanced/extension/youtube/settings/preference/ReVancedYouTubeAboutPreference.java
similarity index 100%
rename from extensions/shared/src/main/java/app/revanced/extension/youtube/settings/preference/ReVancedYouTubeAboutPreference.java
rename to extensions/youtube/src/main/java/app/revanced/extension/youtube/settings/preference/ReVancedYouTubeAboutPreference.java
diff --git a/extensions/shared/src/main/java/app/revanced/extension/youtube/settings/preference/ReturnYouTubeDislikePreferenceFragment.java b/extensions/youtube/src/main/java/app/revanced/extension/youtube/settings/preference/ReturnYouTubeDislikePreferenceFragment.java
similarity index 100%
rename from extensions/shared/src/main/java/app/revanced/extension/youtube/settings/preference/ReturnYouTubeDislikePreferenceFragment.java
rename to extensions/youtube/src/main/java/app/revanced/extension/youtube/settings/preference/ReturnYouTubeDislikePreferenceFragment.java
diff --git a/extensions/shared/src/main/java/app/revanced/extension/youtube/settings/preference/SponsorBlockPreferenceFragment.java b/extensions/youtube/src/main/java/app/revanced/extension/youtube/settings/preference/SponsorBlockPreferenceFragment.java
similarity index 100%
rename from extensions/shared/src/main/java/app/revanced/extension/youtube/settings/preference/SponsorBlockPreferenceFragment.java
rename to extensions/youtube/src/main/java/app/revanced/extension/youtube/settings/preference/SponsorBlockPreferenceFragment.java
diff --git a/extensions/shared/src/main/java/app/revanced/extension/youtube/shared/NavigationBar.java b/extensions/youtube/src/main/java/app/revanced/extension/youtube/shared/NavigationBar.java
similarity index 100%
rename from extensions/shared/src/main/java/app/revanced/extension/youtube/shared/NavigationBar.java
rename to extensions/youtube/src/main/java/app/revanced/extension/youtube/shared/NavigationBar.java
diff --git a/extensions/shared/src/main/java/app/revanced/extension/youtube/shared/PlayerControlsVisibilityObserver.kt b/extensions/youtube/src/main/java/app/revanced/extension/youtube/shared/PlayerControlsVisibilityObserver.kt
similarity index 100%
rename from extensions/shared/src/main/java/app/revanced/extension/youtube/shared/PlayerControlsVisibilityObserver.kt
rename to extensions/youtube/src/main/java/app/revanced/extension/youtube/shared/PlayerControlsVisibilityObserver.kt
diff --git a/extensions/shared/src/main/java/app/revanced/extension/youtube/shared/PlayerOverlays.kt b/extensions/youtube/src/main/java/app/revanced/extension/youtube/shared/PlayerOverlays.kt
similarity index 100%
rename from extensions/shared/src/main/java/app/revanced/extension/youtube/shared/PlayerOverlays.kt
rename to extensions/youtube/src/main/java/app/revanced/extension/youtube/shared/PlayerOverlays.kt
diff --git a/extensions/shared/src/main/java/app/revanced/extension/youtube/shared/PlayerType.kt b/extensions/youtube/src/main/java/app/revanced/extension/youtube/shared/PlayerType.kt
similarity index 100%
rename from extensions/shared/src/main/java/app/revanced/extension/youtube/shared/PlayerType.kt
rename to extensions/youtube/src/main/java/app/revanced/extension/youtube/shared/PlayerType.kt
diff --git a/extensions/shared/src/main/java/app/revanced/extension/youtube/shared/VideoState.kt b/extensions/youtube/src/main/java/app/revanced/extension/youtube/shared/VideoState.kt
similarity index 100%
rename from extensions/shared/src/main/java/app/revanced/extension/youtube/shared/VideoState.kt
rename to extensions/youtube/src/main/java/app/revanced/extension/youtube/shared/VideoState.kt
diff --git a/extensions/shared/src/main/java/app/revanced/extension/youtube/sponsorblock/SegmentPlaybackController.java b/extensions/youtube/src/main/java/app/revanced/extension/youtube/sponsorblock/SegmentPlaybackController.java
similarity index 100%
rename from extensions/shared/src/main/java/app/revanced/extension/youtube/sponsorblock/SegmentPlaybackController.java
rename to extensions/youtube/src/main/java/app/revanced/extension/youtube/sponsorblock/SegmentPlaybackController.java
diff --git a/extensions/shared/src/main/java/app/revanced/extension/youtube/sponsorblock/SponsorBlockSettings.java b/extensions/youtube/src/main/java/app/revanced/extension/youtube/sponsorblock/SponsorBlockSettings.java
similarity index 96%
rename from extensions/shared/src/main/java/app/revanced/extension/youtube/sponsorblock/SponsorBlockSettings.java
rename to extensions/youtube/src/main/java/app/revanced/extension/youtube/sponsorblock/SponsorBlockSettings.java
index 0edc054c7..00ecfacf9 100644
--- a/extensions/shared/src/main/java/app/revanced/extension/youtube/sponsorblock/SponsorBlockSettings.java
+++ b/extensions/youtube/src/main/java/app/revanced/extension/youtube/sponsorblock/SponsorBlockSettings.java
@@ -27,6 +27,17 @@ public class SponsorBlockSettings {
*/
private static final int SB_PRIVATE_USER_ID_MINIMUM_LENGTH = 30;
+ public static final Setting.ImportExportCallback SB_IMPORT_EXPORT_CALLBACK = new Setting.ImportExportCallback() {
+ @Override
+ public void settingsImported(@Nullable Context context) {
+ updateFromImportedSettings();
+ }
+ @Override
+ public void settingsExported(@Nullable Context context) {
+ showExportWarningIfNeeded(context);
+ }
+ };
+
public static void importDesktopSettings(@NonNull String json) {
Utils.verifyOnMainThread();
try {
diff --git a/extensions/shared/src/main/java/app/revanced/extension/youtube/sponsorblock/SponsorBlockUtils.java b/extensions/youtube/src/main/java/app/revanced/extension/youtube/sponsorblock/SponsorBlockUtils.java
similarity index 100%
rename from extensions/shared/src/main/java/app/revanced/extension/youtube/sponsorblock/SponsorBlockUtils.java
rename to extensions/youtube/src/main/java/app/revanced/extension/youtube/sponsorblock/SponsorBlockUtils.java
diff --git a/extensions/shared/src/main/java/app/revanced/extension/youtube/sponsorblock/objects/CategoryBehaviour.java b/extensions/youtube/src/main/java/app/revanced/extension/youtube/sponsorblock/objects/CategoryBehaviour.java
similarity index 100%
rename from extensions/shared/src/main/java/app/revanced/extension/youtube/sponsorblock/objects/CategoryBehaviour.java
rename to extensions/youtube/src/main/java/app/revanced/extension/youtube/sponsorblock/objects/CategoryBehaviour.java
diff --git a/extensions/shared/src/main/java/app/revanced/extension/youtube/sponsorblock/objects/SegmentCategory.java b/extensions/youtube/src/main/java/app/revanced/extension/youtube/sponsorblock/objects/SegmentCategory.java
similarity index 100%
rename from extensions/shared/src/main/java/app/revanced/extension/youtube/sponsorblock/objects/SegmentCategory.java
rename to extensions/youtube/src/main/java/app/revanced/extension/youtube/sponsorblock/objects/SegmentCategory.java
diff --git a/extensions/shared/src/main/java/app/revanced/extension/youtube/sponsorblock/objects/SegmentCategoryListPreference.java b/extensions/youtube/src/main/java/app/revanced/extension/youtube/sponsorblock/objects/SegmentCategoryListPreference.java
similarity index 100%
rename from extensions/shared/src/main/java/app/revanced/extension/youtube/sponsorblock/objects/SegmentCategoryListPreference.java
rename to extensions/youtube/src/main/java/app/revanced/extension/youtube/sponsorblock/objects/SegmentCategoryListPreference.java
diff --git a/extensions/shared/src/main/java/app/revanced/extension/youtube/sponsorblock/objects/SponsorSegment.java b/extensions/youtube/src/main/java/app/revanced/extension/youtube/sponsorblock/objects/SponsorSegment.java
similarity index 100%
rename from extensions/shared/src/main/java/app/revanced/extension/youtube/sponsorblock/objects/SponsorSegment.java
rename to extensions/youtube/src/main/java/app/revanced/extension/youtube/sponsorblock/objects/SponsorSegment.java
diff --git a/extensions/shared/src/main/java/app/revanced/extension/youtube/sponsorblock/objects/UserStats.java b/extensions/youtube/src/main/java/app/revanced/extension/youtube/sponsorblock/objects/UserStats.java
similarity index 100%
rename from extensions/shared/src/main/java/app/revanced/extension/youtube/sponsorblock/objects/UserStats.java
rename to extensions/youtube/src/main/java/app/revanced/extension/youtube/sponsorblock/objects/UserStats.java
diff --git a/extensions/shared/src/main/java/app/revanced/extension/youtube/sponsorblock/requests/SBRequester.java b/extensions/youtube/src/main/java/app/revanced/extension/youtube/sponsorblock/requests/SBRequester.java
similarity index 99%
rename from extensions/shared/src/main/java/app/revanced/extension/youtube/sponsorblock/requests/SBRequester.java
rename to extensions/youtube/src/main/java/app/revanced/extension/youtube/sponsorblock/requests/SBRequester.java
index 0f0a93afc..f67489850 100644
--- a/extensions/shared/src/main/java/app/revanced/extension/youtube/sponsorblock/requests/SBRequester.java
+++ b/extensions/youtube/src/main/java/app/revanced/extension/youtube/sponsorblock/requests/SBRequester.java
@@ -17,14 +17,14 @@ import java.util.List;
import java.util.Locale;
import java.util.concurrent.TimeUnit;
-import app.revanced.extension.youtube.requests.Requester;
-import app.revanced.extension.youtube.requests.Route;
import app.revanced.extension.youtube.settings.Settings;
import app.revanced.extension.youtube.sponsorblock.SponsorBlockSettings;
import app.revanced.extension.youtube.sponsorblock.objects.SegmentCategory;
import app.revanced.extension.youtube.sponsorblock.objects.SponsorSegment;
import app.revanced.extension.youtube.sponsorblock.objects.SponsorSegment.SegmentVote;
import app.revanced.extension.youtube.sponsorblock.objects.UserStats;
+import app.revanced.extension.shared.requests.Route;
+import app.revanced.extension.shared.requests.Requester;
import app.revanced.extension.shared.Logger;
import app.revanced.extension.shared.Utils;
diff --git a/extensions/shared/src/main/java/app/revanced/extension/youtube/sponsorblock/requests/SBRoutes.java b/extensions/youtube/src/main/java/app/revanced/extension/youtube/sponsorblock/requests/SBRoutes.java
similarity index 86%
rename from extensions/shared/src/main/java/app/revanced/extension/youtube/sponsorblock/requests/SBRoutes.java
rename to extensions/youtube/src/main/java/app/revanced/extension/youtube/sponsorblock/requests/SBRoutes.java
index fe3403e56..0f7b54c90 100644
--- a/extensions/shared/src/main/java/app/revanced/extension/youtube/sponsorblock/requests/SBRoutes.java
+++ b/extensions/youtube/src/main/java/app/revanced/extension/youtube/sponsorblock/requests/SBRoutes.java
@@ -1,9 +1,9 @@
package app.revanced.extension.youtube.sponsorblock.requests;
-import static app.revanced.extension.youtube.requests.Route.Method.GET;
-import static app.revanced.extension.youtube.requests.Route.Method.POST;
+import static app.revanced.extension.shared.requests.Route.Method.GET;
+import static app.revanced.extension.shared.requests.Route.Method.POST;
-import app.revanced.extension.youtube.requests.Route;
+import app.revanced.extension.shared.requests.Route;
class SBRoutes {
static final Route IS_USER_VIP = new Route(GET, "/api/isUserVIP?userID={user_id}");
diff --git a/extensions/shared/src/main/java/app/revanced/extension/youtube/sponsorblock/ui/CreateSegmentButtonController.java b/extensions/youtube/src/main/java/app/revanced/extension/youtube/sponsorblock/ui/CreateSegmentButtonController.java
similarity index 98%
rename from extensions/shared/src/main/java/app/revanced/extension/youtube/sponsorblock/ui/CreateSegmentButtonController.java
rename to extensions/youtube/src/main/java/app/revanced/extension/youtube/sponsorblock/ui/CreateSegmentButtonController.java
index e19d3273c..4ec6c35b7 100644
--- a/extensions/shared/src/main/java/app/revanced/extension/youtube/sponsorblock/ui/CreateSegmentButtonController.java
+++ b/extensions/youtube/src/main/java/app/revanced/extension/youtube/sponsorblock/ui/CreateSegmentButtonController.java
@@ -1,5 +1,7 @@
package app.revanced.extension.youtube.sponsorblock.ui;
+import static app.revanced.extension.shared.Utils.getResourceIdentifier;
+
import android.view.View;
import android.widget.ImageView;
diff --git a/extensions/shared/src/main/java/app/revanced/extension/youtube/sponsorblock/ui/NewSegmentLayout.java b/extensions/youtube/src/main/java/app/revanced/extension/youtube/sponsorblock/ui/NewSegmentLayout.java
similarity index 98%
rename from extensions/shared/src/main/java/app/revanced/extension/youtube/sponsorblock/ui/NewSegmentLayout.java
rename to extensions/youtube/src/main/java/app/revanced/extension/youtube/sponsorblock/ui/NewSegmentLayout.java
index 9499d98ea..1f8d80c50 100644
--- a/extensions/shared/src/main/java/app/revanced/extension/youtube/sponsorblock/ui/NewSegmentLayout.java
+++ b/extensions/youtube/src/main/java/app/revanced/extension/youtube/sponsorblock/ui/NewSegmentLayout.java
@@ -109,12 +109,11 @@ public final class NewSegmentLayout extends FrameLayout {
final ButtonOnClickHandlerFunction handler, final String debugMessage) {
ImageButton button = findViewById(getResourceIdentifier(context, resourceIdentifierName, "id"));
- button.setBackgroundResource(rippleEffectId);
+ // Add ripple effect
RippleDrawable rippleDrawable = new RippleDrawable(
rippleColorStateList, null, null
);
button.setBackground(rippleDrawable);
-
button.setOnClickListener((v) -> {
handler.apply();
Logger.printDebug(() -> debugMessage);
@@ -125,4 +124,4 @@ public final class NewSegmentLayout extends FrameLayout {
private interface ButtonOnClickHandlerFunction {
void apply();
}
-}
\ No newline at end of file
+}
diff --git a/extensions/shared/src/main/java/app/revanced/extension/youtube/sponsorblock/ui/SkipSponsorButton.java b/extensions/youtube/src/main/java/app/revanced/extension/youtube/sponsorblock/ui/SkipSponsorButton.java
similarity index 100%
rename from extensions/shared/src/main/java/app/revanced/extension/youtube/sponsorblock/ui/SkipSponsorButton.java
rename to extensions/youtube/src/main/java/app/revanced/extension/youtube/sponsorblock/ui/SkipSponsorButton.java
diff --git a/extensions/shared/src/main/java/app/revanced/extension/youtube/sponsorblock/ui/SponsorBlockViewController.java b/extensions/youtube/src/main/java/app/revanced/extension/youtube/sponsorblock/ui/SponsorBlockViewController.java
similarity index 100%
rename from extensions/shared/src/main/java/app/revanced/extension/youtube/sponsorblock/ui/SponsorBlockViewController.java
rename to extensions/youtube/src/main/java/app/revanced/extension/youtube/sponsorblock/ui/SponsorBlockViewController.java
diff --git a/extensions/shared/src/main/java/app/revanced/extension/youtube/sponsorblock/ui/VotingButtonController.java b/extensions/youtube/src/main/java/app/revanced/extension/youtube/sponsorblock/ui/VotingButtonController.java
similarity index 98%
rename from extensions/shared/src/main/java/app/revanced/extension/youtube/sponsorblock/ui/VotingButtonController.java
rename to extensions/youtube/src/main/java/app/revanced/extension/youtube/sponsorblock/ui/VotingButtonController.java
index 8609dd004..bad5f2484 100644
--- a/extensions/shared/src/main/java/app/revanced/extension/youtube/sponsorblock/ui/VotingButtonController.java
+++ b/extensions/youtube/src/main/java/app/revanced/extension/youtube/sponsorblock/ui/VotingButtonController.java
@@ -1,5 +1,7 @@
package app.revanced.extension.youtube.sponsorblock.ui;
+import static app.revanced.extension.shared.Utils.getResourceIdentifier;
+
import android.view.View;
import android.widget.ImageView;
diff --git a/extensions/shared/src/main/java/app/revanced/extension/youtube/swipecontrols/SwipeControlsConfigurationProvider.kt b/extensions/youtube/src/main/java/app/revanced/extension/youtube/swipecontrols/SwipeControlsConfigurationProvider.kt
similarity index 100%
rename from extensions/shared/src/main/java/app/revanced/extension/youtube/swipecontrols/SwipeControlsConfigurationProvider.kt
rename to extensions/youtube/src/main/java/app/revanced/extension/youtube/swipecontrols/SwipeControlsConfigurationProvider.kt
diff --git a/extensions/shared/src/main/java/app/revanced/extension/youtube/swipecontrols/SwipeControlsHostActivity.kt b/extensions/youtube/src/main/java/app/revanced/extension/youtube/swipecontrols/SwipeControlsHostActivity.kt
similarity index 100%
rename from extensions/shared/src/main/java/app/revanced/extension/youtube/swipecontrols/SwipeControlsHostActivity.kt
rename to extensions/youtube/src/main/java/app/revanced/extension/youtube/swipecontrols/SwipeControlsHostActivity.kt
diff --git a/extensions/shared/src/main/java/app/revanced/extension/youtube/swipecontrols/controller/AudioVolumeController.kt b/extensions/youtube/src/main/java/app/revanced/extension/youtube/swipecontrols/controller/AudioVolumeController.kt
similarity index 100%
rename from extensions/shared/src/main/java/app/revanced/extension/youtube/swipecontrols/controller/AudioVolumeController.kt
rename to extensions/youtube/src/main/java/app/revanced/extension/youtube/swipecontrols/controller/AudioVolumeController.kt
diff --git a/extensions/shared/src/main/java/app/revanced/extension/youtube/swipecontrols/controller/ScreenBrightnessController.kt b/extensions/youtube/src/main/java/app/revanced/extension/youtube/swipecontrols/controller/ScreenBrightnessController.kt
similarity index 100%
rename from extensions/shared/src/main/java/app/revanced/extension/youtube/swipecontrols/controller/ScreenBrightnessController.kt
rename to extensions/youtube/src/main/java/app/revanced/extension/youtube/swipecontrols/controller/ScreenBrightnessController.kt
diff --git a/extensions/shared/src/main/java/app/revanced/extension/youtube/swipecontrols/controller/SwipeZonesController.kt b/extensions/youtube/src/main/java/app/revanced/extension/youtube/swipecontrols/controller/SwipeZonesController.kt
similarity index 100%
rename from extensions/shared/src/main/java/app/revanced/extension/youtube/swipecontrols/controller/SwipeZonesController.kt
rename to extensions/youtube/src/main/java/app/revanced/extension/youtube/swipecontrols/controller/SwipeZonesController.kt
diff --git a/extensions/shared/src/main/java/app/revanced/extension/youtube/swipecontrols/controller/VolumeKeysController.kt b/extensions/youtube/src/main/java/app/revanced/extension/youtube/swipecontrols/controller/VolumeKeysController.kt
similarity index 100%
rename from extensions/shared/src/main/java/app/revanced/extension/youtube/swipecontrols/controller/VolumeKeysController.kt
rename to extensions/youtube/src/main/java/app/revanced/extension/youtube/swipecontrols/controller/VolumeKeysController.kt
diff --git a/extensions/shared/src/main/java/app/revanced/extension/youtube/swipecontrols/controller/gesture/ClassicSwipeController.kt b/extensions/youtube/src/main/java/app/revanced/extension/youtube/swipecontrols/controller/gesture/ClassicSwipeController.kt
similarity index 100%
rename from extensions/shared/src/main/java/app/revanced/extension/youtube/swipecontrols/controller/gesture/ClassicSwipeController.kt
rename to extensions/youtube/src/main/java/app/revanced/extension/youtube/swipecontrols/controller/gesture/ClassicSwipeController.kt
diff --git a/extensions/shared/src/main/java/app/revanced/extension/youtube/swipecontrols/controller/gesture/PressToSwipeController.kt b/extensions/youtube/src/main/java/app/revanced/extension/youtube/swipecontrols/controller/gesture/PressToSwipeController.kt
similarity index 100%
rename from extensions/shared/src/main/java/app/revanced/extension/youtube/swipecontrols/controller/gesture/PressToSwipeController.kt
rename to extensions/youtube/src/main/java/app/revanced/extension/youtube/swipecontrols/controller/gesture/PressToSwipeController.kt
diff --git a/extensions/shared/src/main/java/app/revanced/extension/youtube/swipecontrols/controller/gesture/core/BaseGestureController.kt b/extensions/youtube/src/main/java/app/revanced/extension/youtube/swipecontrols/controller/gesture/core/BaseGestureController.kt
similarity index 100%
rename from extensions/shared/src/main/java/app/revanced/extension/youtube/swipecontrols/controller/gesture/core/BaseGestureController.kt
rename to extensions/youtube/src/main/java/app/revanced/extension/youtube/swipecontrols/controller/gesture/core/BaseGestureController.kt
diff --git a/extensions/shared/src/main/java/app/revanced/extension/youtube/swipecontrols/controller/gesture/core/GestureController.kt b/extensions/youtube/src/main/java/app/revanced/extension/youtube/swipecontrols/controller/gesture/core/GestureController.kt
similarity index 100%
rename from extensions/shared/src/main/java/app/revanced/extension/youtube/swipecontrols/controller/gesture/core/GestureController.kt
rename to extensions/youtube/src/main/java/app/revanced/extension/youtube/swipecontrols/controller/gesture/core/GestureController.kt
diff --git a/extensions/shared/src/main/java/app/revanced/extension/youtube/swipecontrols/controller/gesture/core/SwipeDetector.kt b/extensions/youtube/src/main/java/app/revanced/extension/youtube/swipecontrols/controller/gesture/core/SwipeDetector.kt
similarity index 100%
rename from extensions/shared/src/main/java/app/revanced/extension/youtube/swipecontrols/controller/gesture/core/SwipeDetector.kt
rename to extensions/youtube/src/main/java/app/revanced/extension/youtube/swipecontrols/controller/gesture/core/SwipeDetector.kt
diff --git a/extensions/shared/src/main/java/app/revanced/extension/youtube/swipecontrols/controller/gesture/core/VolumeAndBrightnessScroller.kt b/extensions/youtube/src/main/java/app/revanced/extension/youtube/swipecontrols/controller/gesture/core/VolumeAndBrightnessScroller.kt
similarity index 100%
rename from extensions/shared/src/main/java/app/revanced/extension/youtube/swipecontrols/controller/gesture/core/VolumeAndBrightnessScroller.kt
rename to extensions/youtube/src/main/java/app/revanced/extension/youtube/swipecontrols/controller/gesture/core/VolumeAndBrightnessScroller.kt
diff --git a/extensions/shared/src/main/java/app/revanced/extension/youtube/swipecontrols/misc/Point.kt b/extensions/youtube/src/main/java/app/revanced/extension/youtube/swipecontrols/misc/Point.kt
similarity index 100%
rename from extensions/shared/src/main/java/app/revanced/extension/youtube/swipecontrols/misc/Point.kt
rename to extensions/youtube/src/main/java/app/revanced/extension/youtube/swipecontrols/misc/Point.kt
diff --git a/extensions/shared/src/main/java/app/revanced/extension/youtube/swipecontrols/misc/Rectangle.kt b/extensions/youtube/src/main/java/app/revanced/extension/youtube/swipecontrols/misc/Rectangle.kt
similarity index 100%
rename from extensions/shared/src/main/java/app/revanced/extension/youtube/swipecontrols/misc/Rectangle.kt
rename to extensions/youtube/src/main/java/app/revanced/extension/youtube/swipecontrols/misc/Rectangle.kt
diff --git a/extensions/shared/src/main/java/app/revanced/extension/youtube/swipecontrols/misc/ScrollDistanceHelper.kt b/extensions/youtube/src/main/java/app/revanced/extension/youtube/swipecontrols/misc/ScrollDistanceHelper.kt
similarity index 100%
rename from extensions/shared/src/main/java/app/revanced/extension/youtube/swipecontrols/misc/ScrollDistanceHelper.kt
rename to extensions/youtube/src/main/java/app/revanced/extension/youtube/swipecontrols/misc/ScrollDistanceHelper.kt
diff --git a/extensions/shared/src/main/java/app/revanced/extension/youtube/swipecontrols/misc/SwipeControlsOverlay.kt b/extensions/youtube/src/main/java/app/revanced/extension/youtube/swipecontrols/misc/SwipeControlsOverlay.kt
similarity index 100%
rename from extensions/shared/src/main/java/app/revanced/extension/youtube/swipecontrols/misc/SwipeControlsOverlay.kt
rename to extensions/youtube/src/main/java/app/revanced/extension/youtube/swipecontrols/misc/SwipeControlsOverlay.kt
diff --git a/extensions/shared/src/main/java/app/revanced/extension/youtube/swipecontrols/misc/SwipeControlsUtils.kt b/extensions/youtube/src/main/java/app/revanced/extension/youtube/swipecontrols/misc/SwipeControlsUtils.kt
similarity index 100%
rename from extensions/shared/src/main/java/app/revanced/extension/youtube/swipecontrols/misc/SwipeControlsUtils.kt
rename to extensions/youtube/src/main/java/app/revanced/extension/youtube/swipecontrols/misc/SwipeControlsUtils.kt
diff --git a/extensions/shared/src/main/java/app/revanced/extension/youtube/swipecontrols/views/SwipeControlsOverlayLayout.kt b/extensions/youtube/src/main/java/app/revanced/extension/youtube/swipecontrols/views/SwipeControlsOverlayLayout.kt
similarity index 98%
rename from extensions/shared/src/main/java/app/revanced/extension/youtube/swipecontrols/views/SwipeControlsOverlayLayout.kt
rename to extensions/youtube/src/main/java/app/revanced/extension/youtube/swipecontrols/views/SwipeControlsOverlayLayout.kt
index fa30d5994..b3422d7bd 100644
--- a/extensions/shared/src/main/java/app/revanced/extension/youtube/swipecontrols/views/SwipeControlsOverlayLayout.kt
+++ b/extensions/youtube/src/main/java/app/revanced/extension/youtube/swipecontrols/views/SwipeControlsOverlayLayout.kt
@@ -7,6 +7,8 @@ import android.os.Handler
import android.os.Looper
import android.util.TypedValue
import android.view.HapticFeedbackConstants
+import android.view.View
+import android.view.ViewGroup
import android.widget.RelativeLayout
import android.widget.TextView
import app.revanced.extension.shared.StringRef.str
diff --git a/extensions/shared/src/main/java/app/revanced/extension/youtube/videoplayer/CopyVideoUrlButton.java b/extensions/youtube/src/main/java/app/revanced/extension/youtube/videoplayer/CopyVideoUrlButton.java
similarity index 100%
rename from extensions/shared/src/main/java/app/revanced/extension/youtube/videoplayer/CopyVideoUrlButton.java
rename to extensions/youtube/src/main/java/app/revanced/extension/youtube/videoplayer/CopyVideoUrlButton.java
diff --git a/extensions/shared/src/main/java/app/revanced/extension/youtube/videoplayer/CopyVideoUrlTimestampButton.java b/extensions/youtube/src/main/java/app/revanced/extension/youtube/videoplayer/CopyVideoUrlTimestampButton.java
similarity index 100%
rename from extensions/shared/src/main/java/app/revanced/extension/youtube/videoplayer/CopyVideoUrlTimestampButton.java
rename to extensions/youtube/src/main/java/app/revanced/extension/youtube/videoplayer/CopyVideoUrlTimestampButton.java
diff --git a/extensions/shared/src/main/java/app/revanced/extension/youtube/videoplayer/ExternalDownloadButton.java b/extensions/youtube/src/main/java/app/revanced/extension/youtube/videoplayer/ExternalDownloadButton.java
similarity index 100%
rename from extensions/shared/src/main/java/app/revanced/extension/youtube/videoplayer/ExternalDownloadButton.java
rename to extensions/youtube/src/main/java/app/revanced/extension/youtube/videoplayer/ExternalDownloadButton.java
diff --git a/extensions/shared/src/main/java/app/revanced/extension/youtube/videoplayer/PlaybackSpeedDialogButton.java b/extensions/youtube/src/main/java/app/revanced/extension/youtube/videoplayer/PlaybackSpeedDialogButton.java
similarity index 100%
rename from extensions/shared/src/main/java/app/revanced/extension/youtube/videoplayer/PlaybackSpeedDialogButton.java
rename to extensions/youtube/src/main/java/app/revanced/extension/youtube/videoplayer/PlaybackSpeedDialogButton.java
diff --git a/extensions/shared/src/main/java/app/revanced/extension/youtube/videoplayer/PlayerControlButton.java b/extensions/youtube/src/main/java/app/revanced/extension/youtube/videoplayer/PlayerControlButton.java
similarity index 100%
rename from extensions/shared/src/main/java/app/revanced/extension/youtube/videoplayer/PlayerControlButton.java
rename to extensions/youtube/src/main/java/app/revanced/extension/youtube/videoplayer/PlayerControlButton.java
diff --git a/extensions/youtube/stub/build.gradle.kts b/extensions/youtube/stub/build.gradle.kts
new file mode 100644
index 000000000..c1cc5794c
--- /dev/null
+++ b/extensions/youtube/stub/build.gradle.kts
@@ -0,0 +1,17 @@
+plugins {
+ id(libs.plugins.android.library.get().pluginId)
+}
+
+android {
+ namespace = "app.revanced.extension"
+ compileSdk = 33
+
+ defaultConfig {
+ minSdk = 24
+ }
+
+ compileOptions {
+ sourceCompatibility = JavaVersion.VERSION_11
+ targetCompatibility = JavaVersion.VERSION_11
+ }
+}
diff --git a/extensions/youtube/stub/src/main/AndroidManifest.xml b/extensions/youtube/stub/src/main/AndroidManifest.xml
new file mode 100644
index 000000000..15e7c2ae6
--- /dev/null
+++ b/extensions/youtube/stub/src/main/AndroidManifest.xml
@@ -0,0 +1 @@
+
* This class will not be included and "replaced" by the real package's class.
*/
public class ConstraintLayout extends ViewGroup {
diff --git a/extensions/shared/stub/src/main/java/com/google/android/apps/youtube/app/ui/SlimMetadataScrollableButtonContainerLayout.java b/extensions/youtube/stub/src/main/java/com/google/android/apps/youtube/app/ui/SlimMetadataScrollableButtonContainerLayout.java
similarity index 100%
rename from extensions/shared/stub/src/main/java/com/google/android/apps/youtube/app/ui/SlimMetadataScrollableButtonContainerLayout.java
rename to extensions/youtube/stub/src/main/java/com/google/android/apps/youtube/app/ui/SlimMetadataScrollableButtonContainerLayout.java
diff --git a/extensions/shared/stub/src/main/java/com/google/android/libraries/youtube/rendering/ui/pivotbar/PivotBar.java b/extensions/youtube/stub/src/main/java/com/google/android/libraries/youtube/rendering/ui/pivotbar/PivotBar.java
similarity index 100%
rename from extensions/shared/stub/src/main/java/com/google/android/libraries/youtube/rendering/ui/pivotbar/PivotBar.java
rename to extensions/youtube/stub/src/main/java/com/google/android/libraries/youtube/rendering/ui/pivotbar/PivotBar.java
diff --git a/extensions/shared/stub/src/main/java/com/google/protos/youtube/api/innertube/InnertubeContext$ClientInfo.java b/extensions/youtube/stub/src/main/java/com/google/protos/youtube/api/innertube/InnertubeContext$ClientInfo.java
similarity index 100%
rename from extensions/shared/stub/src/main/java/com/google/protos/youtube/api/innertube/InnertubeContext$ClientInfo.java
rename to extensions/youtube/stub/src/main/java/com/google/protos/youtube/api/innertube/InnertubeContext$ClientInfo.java
diff --git a/extensions/shared/stub/src/main/java/org/chromium/net/UrlRequest.java b/extensions/youtube/stub/src/main/java/org/chromium/net/UrlRequest.java
similarity index 100%
rename from extensions/shared/stub/src/main/java/org/chromium/net/UrlRequest.java
rename to extensions/youtube/stub/src/main/java/org/chromium/net/UrlRequest.java
diff --git a/extensions/shared/stub/src/main/java/org/chromium/net/UrlResponseInfo.java b/extensions/youtube/stub/src/main/java/org/chromium/net/UrlResponseInfo.java
similarity index 100%
rename from extensions/shared/stub/src/main/java/org/chromium/net/UrlResponseInfo.java
rename to extensions/youtube/stub/src/main/java/org/chromium/net/UrlResponseInfo.java
diff --git a/extensions/shared/stub/src/main/java/org/chromium/net/impl/CronetUrlRequest.java b/extensions/youtube/stub/src/main/java/org/chromium/net/impl/CronetUrlRequest.java
similarity index 100%
rename from extensions/shared/stub/src/main/java/org/chromium/net/impl/CronetUrlRequest.java
rename to extensions/youtube/stub/src/main/java/org/chromium/net/impl/CronetUrlRequest.java
diff --git a/patches/api/patches.api b/patches/api/patches.api
index d920cf745..1c601b551 100644
--- a/patches/api/patches.api
+++ b/patches/api/patches.api
@@ -543,6 +543,7 @@ public final class app/revanced/patches/shared/misc/extension/ExtensionHook {
public final class app/revanced/patches/shared/misc/extension/SharedExtensionPatchKt {
public static final fun extensionHook (Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function1;)Lapp/revanced/patches/shared/misc/extension/ExtensionHook;
public static synthetic fun extensionHook$default (Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function1;ILjava/lang/Object;)Lapp/revanced/patches/shared/misc/extension/ExtensionHook;
+ public static final fun sharedExtensionPatch (Ljava/lang/String;[Lapp/revanced/patches/shared/misc/extension/ExtensionHook;)Lapp/revanced/patcher/patch/BytecodePatch;
public static final fun sharedExtensionPatch ([Lapp/revanced/patches/shared/misc/extension/ExtensionHook;)Lapp/revanced/patcher/patch/BytecodePatch;
}
diff --git a/patches/src/main/kotlin/app/revanced/patches/all/misc/connectivity/wifi/spoof/SpoofWifiPatch.kt b/patches/src/main/kotlin/app/revanced/patches/all/misc/connectivity/wifi/spoof/SpoofWifiPatch.kt
index 3e086f95c..ede9eb1dc 100644
--- a/patches/src/main/kotlin/app/revanced/patches/all/misc/connectivity/wifi/spoof/SpoofWifiPatch.kt
+++ b/patches/src/main/kotlin/app/revanced/patches/all/misc/connectivity/wifi/spoof/SpoofWifiPatch.kt
@@ -5,7 +5,8 @@ import app.revanced.patches.all.misc.transformation.IMethodCall
import app.revanced.patches.all.misc.transformation.filterMapInstruction35c
import app.revanced.patches.all.misc.transformation.transformInstructionsPatch
-internal const val EXTENSION_CLASS_DESCRIPTOR_PREFIX = "Lapp/revanced/extension/all/connectivity/wifi/spoof/SpoofWifiPatch"
+internal const val EXTENSION_CLASS_DESCRIPTOR_PREFIX =
+ "Lapp/revanced/extension/all/connectivity/wifi/spoof/SpoofWifiPatch"
internal const val EXTENSION_CLASS_DESCRIPTOR = "$EXTENSION_CLASS_DESCRIPTOR_PREFIX;"
@@ -15,7 +16,7 @@ val spoofWifiPatch = bytecodePatch(
description = "Spoofs an existing Wi-Fi connection.",
use = false,
) {
- extendWith("extensions/all/connectivity/wifi/spoof/spoof-wifi.rve")
+ extendWith("extensions/all/misc/connectivity/wifi/spoof/spoof-wifi.rve")
dependsOn(
transformInstructionsPatch(
diff --git a/patches/src/main/kotlin/app/revanced/patches/all/misc/screencapture/RemoveScreenCaptureRestrictionPatch.kt b/patches/src/main/kotlin/app/revanced/patches/all/misc/screencapture/RemoveScreenCaptureRestrictionPatch.kt
index 5eef83ac0..4b5955d87 100644
--- a/patches/src/main/kotlin/app/revanced/patches/all/misc/screencapture/RemoveScreenCaptureRestrictionPatch.kt
+++ b/patches/src/main/kotlin/app/revanced/patches/all/misc/screencapture/RemoveScreenCaptureRestrictionPatch.kt
@@ -34,7 +34,7 @@ val removeScreenCaptureRestrictionPatch = bytecodePatch(
description = "Removes the restriction of capturing audio from apps that normally wouldn't allow it.",
use = false,
) {
- extendWith("extensions/all/screencapture/remove-screen-capture-restriction.rve")
+ extendWith("extensions/all/misc/screencapture/remove-screen-capture-restriction.rve")
dependsOn(
removeCaptureRestrictionResourcePatch,
diff --git a/patches/src/main/kotlin/app/revanced/patches/all/misc/screenshot/RemoveScreenshotRestrictionPatch.kt b/patches/src/main/kotlin/app/revanced/patches/all/misc/screenshot/RemoveScreenshotRestrictionPatch.kt
index af689f5ed..19c4ba05f 100644
--- a/patches/src/main/kotlin/app/revanced/patches/all/misc/screenshot/RemoveScreenshotRestrictionPatch.kt
+++ b/patches/src/main/kotlin/app/revanced/patches/all/misc/screenshot/RemoveScreenshotRestrictionPatch.kt
@@ -19,7 +19,7 @@ val removeScreenshotRestrictionPatch = bytecodePatch(
description = "Removes the restriction of taking screenshots in apps that normally wouldn't allow it.",
use = false,
) {
- extendWith("extensions/all/screenshot/remove-screenshot-restriction.rve")
+ extendWith("extensions/all/misc/screenshot/remove-screenshot-restriction.rve")
dependsOn(
// Remove the restriction of taking screenshots.
diff --git a/patches/src/main/kotlin/app/revanced/patches/googlephotos/misc/extension/Fingerprints.kt b/patches/src/main/kotlin/app/revanced/patches/googlephotos/misc/extension/Hooks.kt
similarity index 100%
rename from patches/src/main/kotlin/app/revanced/patches/googlephotos/misc/extension/Fingerprints.kt
rename to patches/src/main/kotlin/app/revanced/patches/googlephotos/misc/extension/Hooks.kt
diff --git a/patches/src/main/kotlin/app/revanced/patches/music/misc/extension/SharedExtensionPatch.kt b/patches/src/main/kotlin/app/revanced/patches/music/misc/extension/SharedExtensionPatch.kt
index e6c1c69fe..9351b600e 100644
--- a/patches/src/main/kotlin/app/revanced/patches/music/misc/extension/SharedExtensionPatch.kt
+++ b/patches/src/main/kotlin/app/revanced/patches/music/misc/extension/SharedExtensionPatch.kt
@@ -3,4 +3,7 @@ package app.revanced.patches.music.misc.extension
import app.revanced.patches.music.misc.extension.hooks.applicationInitHook
import app.revanced.patches.shared.misc.extension.sharedExtensionPatch
-val sharedExtensionPatch = sharedExtensionPatch(applicationInitHook)
+val sharedExtensionPatch = sharedExtensionPatch(
+ "music",
+ applicationInitHook,
+)
diff --git a/patches/src/main/kotlin/app/revanced/patches/reddit/customclients/boostforreddit/misc/extension/SharedExtensionPatch.kt b/patches/src/main/kotlin/app/revanced/patches/reddit/customclients/boostforreddit/misc/extension/SharedExtensionPatch.kt
index 3d92d142b..9f85643f4 100644
--- a/patches/src/main/kotlin/app/revanced/patches/reddit/customclients/boostforreddit/misc/extension/SharedExtensionPatch.kt
+++ b/patches/src/main/kotlin/app/revanced/patches/reddit/customclients/boostforreddit/misc/extension/SharedExtensionPatch.kt
@@ -3,4 +3,4 @@ package app.revanced.patches.reddit.customclients.boostforreddit.misc.extension
import app.revanced.patches.reddit.customclients.boostforreddit.misc.extension.hooks.initHook
import app.revanced.patches.shared.misc.extension.sharedExtensionPatch
-val sharedExtensionPatch = sharedExtensionPatch(initHook)
+val sharedExtensionPatch = sharedExtensionPatch("boostforreddit", initHook)
diff --git a/patches/src/main/kotlin/app/revanced/patches/reddit/customclients/sync/syncforreddit/extension/SharedExtensionPatch.kt b/patches/src/main/kotlin/app/revanced/patches/reddit/customclients/sync/syncforreddit/extension/SharedExtensionPatch.kt
index 67f02676f..7f50bdf7e 100644
--- a/patches/src/main/kotlin/app/revanced/patches/reddit/customclients/sync/syncforreddit/extension/SharedExtensionPatch.kt
+++ b/patches/src/main/kotlin/app/revanced/patches/reddit/customclients/sync/syncforreddit/extension/SharedExtensionPatch.kt
@@ -3,4 +3,4 @@ package app.revanced.patches.reddit.customclients.sync.syncforreddit.extension
import app.revanced.patches.reddit.customclients.sync.syncforreddit.extension.hooks.initHook
import app.revanced.patches.shared.misc.extension.sharedExtensionPatch
-val sharedExtensionPatch = sharedExtensionPatch(initHook)
+val sharedExtensionPatch = sharedExtensionPatch("sync", initHook)
diff --git a/patches/src/main/kotlin/app/revanced/patches/reddit/misc/extension/ExtensionPatch.kt b/patches/src/main/kotlin/app/revanced/patches/reddit/misc/extension/ExtensionPatch.kt
index db449a93e..5633647ed 100644
--- a/patches/src/main/kotlin/app/revanced/patches/reddit/misc/extension/ExtensionPatch.kt
+++ b/patches/src/main/kotlin/app/revanced/patches/reddit/misc/extension/ExtensionPatch.kt
@@ -2,4 +2,4 @@ package app.revanced.patches.reddit.misc.extension
import app.revanced.patches.shared.misc.extension.sharedExtensionPatch
-val sharedExtensionPatch = sharedExtensionPatch()
+val sharedExtensionPatch = sharedExtensionPatch("reddit")
diff --git a/patches/src/main/kotlin/app/revanced/patches/shared/misc/extension/SharedExtensionPatch.kt b/patches/src/main/kotlin/app/revanced/patches/shared/misc/extension/SharedExtensionPatch.kt
index 7460ddd11..cfcf9d0b1 100644
--- a/patches/src/main/kotlin/app/revanced/patches/shared/misc/extension/SharedExtensionPatch.kt
+++ b/patches/src/main/kotlin/app/revanced/patches/shared/misc/extension/SharedExtensionPatch.kt
@@ -14,6 +14,26 @@ import java.util.jar.JarFile
internal const val EXTENSION_CLASS_DESCRIPTOR = "Lapp/revanced/extension/shared/Utils;"
+/**
+ * A patch to extend with an extension shared with multiple patches.
+ *
+ * @param extensionName The name of the extension to extend with.
+ */
+fun sharedExtensionPatch(
+ extensionName: String,
+ vararg hooks: ExtensionHook,
+) = bytecodePatch {
+ dependsOn(sharedExtensionPatch(*hooks))
+
+ extendWith("extensions/$extensionName.rve")
+}
+
+/**
+ * A patch to extend with the "shared" extension.
+ *
+ * @param hooks The hooks to get the application context for use in the extension,
+ * commonly for the onCreate method of exported activities.
+ */
fun sharedExtensionPatch(
vararg hooks: ExtensionHook,
) = bytecodePatch {
diff --git a/patches/src/main/kotlin/app/revanced/patches/tiktok/misc/extension/ExtensionPatch.kt b/patches/src/main/kotlin/app/revanced/patches/tiktok/misc/extension/ExtensionPatch.kt
index b714b9d1c..66efc7f51 100644
--- a/patches/src/main/kotlin/app/revanced/patches/tiktok/misc/extension/ExtensionPatch.kt
+++ b/patches/src/main/kotlin/app/revanced/patches/tiktok/misc/extension/ExtensionPatch.kt
@@ -2,4 +2,4 @@ package app.revanced.patches.tiktok.misc.extension
import app.revanced.patches.shared.misc.extension.sharedExtensionPatch
-val sharedExtensionPatch = sharedExtensionPatch(initHook)
+val sharedExtensionPatch = sharedExtensionPatch("tiktok", initHook)
diff --git a/patches/src/main/kotlin/app/revanced/patches/tudortmund/misc/extension/ExtensionPatch.kt b/patches/src/main/kotlin/app/revanced/patches/tudortmund/misc/extension/ExtensionPatch.kt
index 1c056b0c6..9ca0b78d7 100644
--- a/patches/src/main/kotlin/app/revanced/patches/tudortmund/misc/extension/ExtensionPatch.kt
+++ b/patches/src/main/kotlin/app/revanced/patches/tudortmund/misc/extension/ExtensionPatch.kt
@@ -2,4 +2,4 @@ package app.revanced.patches.tudortmund.misc.extension
import app.revanced.patches.shared.misc.extension.sharedExtensionPatch
-val sharedExtensionPatch = sharedExtensionPatch()
+val sharedExtensionPatch = sharedExtensionPatch("tudortmund")
diff --git a/patches/src/main/kotlin/app/revanced/patches/tumblr/misc/extension/ExtensionPatch.kt b/patches/src/main/kotlin/app/revanced/patches/tumblr/misc/extension/ExtensionPatch.kt
index 3a69b74a5..ce554e745 100644
--- a/patches/src/main/kotlin/app/revanced/patches/tumblr/misc/extension/ExtensionPatch.kt
+++ b/patches/src/main/kotlin/app/revanced/patches/tumblr/misc/extension/ExtensionPatch.kt
@@ -2,4 +2,4 @@ package app.revanced.patches.tumblr.misc.extension
import app.revanced.patches.shared.misc.extension.sharedExtensionPatch
-val sharedExtensionPatch = sharedExtensionPatch()
+val sharedExtensionPatch = sharedExtensionPatch("tumblr")
diff --git a/patches/src/main/kotlin/app/revanced/patches/twitch/misc/extension/SharedExtensionPatch.kt b/patches/src/main/kotlin/app/revanced/patches/twitch/misc/extension/SharedExtensionPatch.kt
index 2299d3bb5..cd2f42b58 100644
--- a/patches/src/main/kotlin/app/revanced/patches/twitch/misc/extension/SharedExtensionPatch.kt
+++ b/patches/src/main/kotlin/app/revanced/patches/twitch/misc/extension/SharedExtensionPatch.kt
@@ -2,4 +2,4 @@ package app.revanced.patches.twitch.misc.extension
import app.revanced.patches.shared.misc.extension.sharedExtensionPatch
-val sharedExtensionPatch = sharedExtensionPatch(initHook)
+val sharedExtensionPatch = sharedExtensionPatch("twitch", initHook)
diff --git a/patches/src/main/kotlin/app/revanced/patches/twitter/misc/extension/ExtensionPatch.kt b/patches/src/main/kotlin/app/revanced/patches/twitter/misc/extension/ExtensionPatch.kt
index f1e6a879b..c5c758245 100644
--- a/patches/src/main/kotlin/app/revanced/patches/twitter/misc/extension/ExtensionPatch.kt
+++ b/patches/src/main/kotlin/app/revanced/patches/twitter/misc/extension/ExtensionPatch.kt
@@ -2,4 +2,4 @@ package app.revanced.patches.twitter.misc.extension
import app.revanced.patches.shared.misc.extension.sharedExtensionPatch
-val sharedExtensionPatch = sharedExtensionPatch()
+val sharedExtensionPatch = sharedExtensionPatch("twitter")
diff --git a/patches/src/main/kotlin/app/revanced/patches/youtube/misc/extension/SharedExtensionPatch.kt b/patches/src/main/kotlin/app/revanced/patches/youtube/misc/extension/SharedExtensionPatch.kt
index 369e3ea74..553cc486f 100644
--- a/patches/src/main/kotlin/app/revanced/patches/youtube/misc/extension/SharedExtensionPatch.kt
+++ b/patches/src/main/kotlin/app/revanced/patches/youtube/misc/extension/SharedExtensionPatch.kt
@@ -3,7 +3,4 @@ package app.revanced.patches.youtube.misc.extension
import app.revanced.patches.shared.misc.extension.sharedExtensionPatch
import app.revanced.patches.youtube.misc.extension.hooks.*
-// TODO: Move this to a "Hook.kt" file. Same for other extension hook patches.
-val sharedExtensionPatch = sharedExtensionPatch(
- applicationInitHook,
-)
+val sharedExtensionPatch = sharedExtensionPatch("youtube", applicationInitHook)
diff --git a/patches/src/main/kotlin/app/revanced/patches/youtube/misc/playercontrols/PlayerControlsPatch.kt b/patches/src/main/kotlin/app/revanced/patches/youtube/misc/playercontrols/PlayerControlsPatch.kt
index d8e72d87f..f167a3bd5 100644
--- a/patches/src/main/kotlin/app/revanced/patches/youtube/misc/playercontrols/PlayerControlsPatch.kt
+++ b/patches/src/main/kotlin/app/revanced/patches/youtube/misc/playercontrols/PlayerControlsPatch.kt
@@ -11,6 +11,7 @@ import app.revanced.patcher.util.proxy.mutableTypes.MutableMethod
import app.revanced.patches.shared.misc.mapping.get
import app.revanced.patches.shared.misc.mapping.resourceMappingPatch
import app.revanced.patches.shared.misc.mapping.resourceMappings
+import app.revanced.patches.youtube.misc.extension.sharedExtensionPatch
import app.revanced.patches.youtube.misc.playservice.is_19_25_or_greater
import app.revanced.patches.youtube.misc.playservice.is_19_35_or_greater
import app.revanced.util.*
@@ -214,15 +215,17 @@ private var visibilityImmediateInsertIndex: Int = 0
val playerControlsPatch = bytecodePatch(
description = "Manages the code for the player controls of the YouTube player.",
) {
- dependsOn(playerControlsResourcePatch)
+ dependsOn(
+ playerControlsResourcePatch,
+ sharedExtensionPatch,
+ )
execute {
- fun MutableMethod.indexOfFirstViewInflateOrThrow() =
- indexOfFirstInstructionOrThrow {
- val reference = getReference