diff --git a/CHANGELOG.md b/CHANGELOG.md index d363d1c4d..d5c493aeb 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,41 @@ +# [5.43.0](https://github.com/ReVanced/revanced-patches/compare/v5.42.1...v5.43.0) (2025-10-14) + + +### Bug Fixes + +* **Custom branding:** Use white notification icon for expanded status bar panel ([95eee59](https://github.com/ReVanced/revanced-patches/commit/95eee59a87a680e212a3ba06e1afefee8d91ee9d)) +* **Instagram - Change sharing domain:** Display patch option ([#6089](https://github.com/ReVanced/revanced-patches/issues/6089)) ([be2b144](https://github.com/ReVanced/revanced-patches/commit/be2b144cc9c4108ec37e16f3dd20573d88ffaa2b)) +* **X / Twitter - Change Link Sharing Domain:** Change link domain of share copy action ([#6091](https://github.com/ReVanced/revanced-patches/issues/6091)) ([5484625](https://github.com/ReVanced/revanced-patches/commit/54846253d748f4e7e30b2bba427c7d2fb9c341e2)) +* **YouTube - Custom branding:** Do not add a broken custom icon if the user provides an invalid custom icon path ([6555f6e](https://github.com/ReVanced/revanced-patches/commit/6555f6e6f8b52c2f1ddab1f52c6704cd2d8cfc12)) +* **YouTube - Custom branding:** Use ReVanced icon for status bar notification icon ([#6108](https://github.com/ReVanced/revanced-patches/issues/6108)) ([10ea250](https://github.com/ReVanced/revanced-patches/commit/10ea250d4a91f8ab3b7f865612a403fc93a857b5)) +* **YouTube - Force original audio:** Do not use translated audio if stream spoofing is off and force audio is on ([0c19dba](https://github.com/ReVanced/revanced-patches/commit/0c19dbaf30bcb95a29448d98b028ebeea54cc7d3)) + + +### Features + +* **Instagram:** Add `Hide suggested content` patch ([#6075](https://github.com/ReVanced/revanced-patches/issues/6075)) ([50f0b9c](https://github.com/ReVanced/revanced-patches/commit/50f0b9c5eee95ff5f9974e344802e1d2a4aab47b)) + +# [5.43.0-dev.4](https://github.com/ReVanced/revanced-patches/compare/v5.43.0-dev.3...v5.43.0-dev.4) (2025-10-14) + + +### Bug Fixes + +* **YouTube - Force original audio:** Do not use translated audio if stream spoofing is off and force audio is on ([0c19dba](https://github.com/ReVanced/revanced-patches/commit/0c19dbaf30bcb95a29448d98b028ebeea54cc7d3)) + +# [5.43.0-dev.3](https://github.com/ReVanced/revanced-patches/compare/v5.43.0-dev.2...v5.43.0-dev.3) (2025-10-14) + + +### Bug Fixes + +* **Custom branding:** Use white notification icon for expanded status bar panel ([95eee59](https://github.com/ReVanced/revanced-patches/commit/95eee59a87a680e212a3ba06e1afefee8d91ee9d)) + +# [5.43.0-dev.2](https://github.com/ReVanced/revanced-patches/compare/v5.43.0-dev.1...v5.43.0-dev.2) (2025-10-14) + + +### Bug Fixes + +* **YouTube - Custom branding:** Use ReVanced icon for status bar notification icon ([#6108](https://github.com/ReVanced/revanced-patches/issues/6108)) ([10ea250](https://github.com/ReVanced/revanced-patches/commit/10ea250d4a91f8ab3b7f865612a403fc93a857b5)) + # [5.43.0-dev.1](https://github.com/ReVanced/revanced-patches/compare/v5.42.2-dev.3...v5.43.0-dev.1) (2025-10-11) diff --git a/gradle.properties b/gradle.properties index 335db3e6b..77c7595a8 100644 --- a/gradle.properties +++ b/gradle.properties @@ -3,4 +3,4 @@ org.gradle.jvmargs = -Xms512M -Xmx2048M org.gradle.parallel = true android.useAndroidX = true kotlin.code.style = official -version = 5.43.0-dev.1 +version = 5.43.0 diff --git a/patches/src/main/kotlin/app/revanced/patches/music/misc/tracks/ForceOriginalAudioPatch.kt b/patches/src/main/kotlin/app/revanced/patches/music/misc/tracks/ForceOriginalAudioPatch.kt index 8130cbe71..f5f170d54 100644 --- a/patches/src/main/kotlin/app/revanced/patches/music/misc/tracks/ForceOriginalAudioPatch.kt +++ b/patches/src/main/kotlin/app/revanced/patches/music/misc/tracks/ForceOriginalAudioPatch.kt @@ -27,7 +27,7 @@ val forceOriginalAudioPatch = forceOriginalAudioPatch( ) ) }, - fixUseLocalizedAudioTrackFlag = is_8_10_or_greater, + fixUseLocalizedAudioTrackFlag = { is_8_10_or_greater }, mainActivityOnCreateFingerprint = mainActivityOnCreateFingerprint, subclassExtensionClassDescriptor = EXTENSION_CLASS_DESCRIPTOR, preferenceScreen = PreferenceScreen.MISC, diff --git a/patches/src/main/kotlin/app/revanced/patches/music/playservice/VersionCheckPatch.kt b/patches/src/main/kotlin/app/revanced/patches/music/playservice/VersionCheckPatch.kt index b14d6b659..d923c954f 100644 --- a/patches/src/main/kotlin/app/revanced/patches/music/playservice/VersionCheckPatch.kt +++ b/patches/src/main/kotlin/app/revanced/patches/music/playservice/VersionCheckPatch.kt @@ -4,14 +4,17 @@ package app.revanced.patches.music.playservice import app.revanced.patcher.patch.resourcePatch import app.revanced.util.findPlayStoreServicesVersion +import kotlin.properties.Delegates -var is_7_33_or_greater = false +// Use notNull delegate so an exception is thrown if these fields are accessed before they are set. + +var is_7_33_or_greater: Boolean by Delegates.notNull() private set -var is_8_10_or_greater = false +var is_8_10_or_greater: Boolean by Delegates.notNull() private set -var is_8_11_or_greater = false +var is_8_11_or_greater: Boolean by Delegates.notNull() private set -var is_8_15_or_greater = false +var is_8_15_or_greater: Boolean by Delegates.notNull() private set val versionCheckPatch = resourcePatch( diff --git a/patches/src/main/kotlin/app/revanced/patches/shared/misc/audio/Fingerprints.kt b/patches/src/main/kotlin/app/revanced/patches/shared/misc/audio/Fingerprints.kt index 498121dc0..e84c1d34a 100644 --- a/patches/src/main/kotlin/app/revanced/patches/shared/misc/audio/Fingerprints.kt +++ b/patches/src/main/kotlin/app/revanced/patches/shared/misc/audio/Fingerprints.kt @@ -27,4 +27,3 @@ internal val selectAudioStreamFingerprint by fingerprint { && method.containsLiteralInstruction(AUDIO_STREAM_IGNORE_DEFAULT_FEATURE_FLAG) } } - diff --git a/patches/src/main/kotlin/app/revanced/patches/shared/misc/audio/ForceOriginalAudioPatch.kt b/patches/src/main/kotlin/app/revanced/patches/shared/misc/audio/ForceOriginalAudioPatch.kt index 5c0d8c907..465ce8030 100644 --- a/patches/src/main/kotlin/app/revanced/patches/shared/misc/audio/ForceOriginalAudioPatch.kt +++ b/patches/src/main/kotlin/app/revanced/patches/shared/misc/audio/ForceOriginalAudioPatch.kt @@ -34,7 +34,7 @@ private const val EXTENSION_CLASS_DESCRIPTOR = internal fun forceOriginalAudioPatch( block: BytecodePatchBuilder.() -> Unit = {}, executeBlock: BytecodePatchContext.() -> Unit = {}, - fixUseLocalizedAudioTrackFlag: Boolean, + fixUseLocalizedAudioTrackFlag: () -> Boolean, mainActivityOnCreateFingerprint: Fingerprint, subclassExtensionClassDescriptor: String, preferenceScreen: BasePreferenceScreen.Screen @@ -64,7 +64,7 @@ internal fun forceOriginalAudioPatch( // Disable feature flag that ignores the default track flag // and instead overrides to the user region language. - if (fixUseLocalizedAudioTrackFlag) { + if (fixUseLocalizedAudioTrackFlag()) { selectAudioStreamFingerprint.method.insertLiteralOverride( AUDIO_STREAM_IGNORE_DEFAULT_FEATURE_FLAG, "$EXTENSION_CLASS_DESCRIPTOR->ignoreDefaultAudioStream(Z)Z" diff --git a/patches/src/main/kotlin/app/revanced/patches/youtube/misc/playservice/VersionCheckPatch.kt b/patches/src/main/kotlin/app/revanced/patches/youtube/misc/playservice/VersionCheckPatch.kt index 081dda087..4ca4991ee 100644 --- a/patches/src/main/kotlin/app/revanced/patches/youtube/misc/playservice/VersionCheckPatch.kt +++ b/patches/src/main/kotlin/app/revanced/patches/youtube/misc/playservice/VersionCheckPatch.kt @@ -4,63 +4,66 @@ package app.revanced.patches.youtube.misc.playservice import app.revanced.patcher.patch.resourcePatch import app.revanced.util.findPlayStoreServicesVersion +import kotlin.properties.Delegates + +// Use notNull delegate so an exception is thrown if these fields are accessed before they are set. @Deprecated("19.34.42 is the lowest supported version") -var is_19_17_or_greater = false +var is_19_17_or_greater : Boolean by Delegates.notNull() private set @Deprecated("19.34.42 is the lowest supported version") -var is_19_18_or_greater = false +var is_19_18_or_greater : Boolean by Delegates.notNull() private set @Deprecated("19.34.42 is the lowest supported version") -var is_19_23_or_greater = false +var is_19_23_or_greater : Boolean by Delegates.notNull() private set @Deprecated("19.34.42 is the lowest supported version") -var is_19_25_or_greater = false +var is_19_25_or_greater : Boolean by Delegates.notNull() private set @Deprecated("19.34.42 is the lowest supported version") -var is_19_26_or_greater = false +var is_19_26_or_greater : Boolean by Delegates.notNull() private set @Deprecated("19.34.42 is the lowest supported version") -var is_19_29_or_greater = false +var is_19_29_or_greater : Boolean by Delegates.notNull() private set @Deprecated("19.34.42 is the lowest supported version") -var is_19_32_or_greater = false +var is_19_32_or_greater : Boolean by Delegates.notNull() private set @Deprecated("19.34.42 is the lowest supported version") -var is_19_33_or_greater = false +var is_19_33_or_greater : Boolean by Delegates.notNull() private set @Deprecated("19.34.42 is the lowest supported version") -var is_19_34_or_greater = false +var is_19_34_or_greater : Boolean by Delegates.notNull() private set -var is_19_35_or_greater = false +var is_19_35_or_greater : Boolean by Delegates.notNull() private set -var is_19_36_or_greater = false +var is_19_36_or_greater : Boolean by Delegates.notNull() private set -var is_19_41_or_greater = false +var is_19_41_or_greater : Boolean by Delegates.notNull() private set -var is_19_43_or_greater = false +var is_19_43_or_greater : Boolean by Delegates.notNull() private set -var is_19_46_or_greater = false +var is_19_46_or_greater : Boolean by Delegates.notNull() private set -var is_19_47_or_greater = false +var is_19_47_or_greater : Boolean by Delegates.notNull() private set -var is_19_49_or_greater = false +var is_19_49_or_greater : Boolean by Delegates.notNull() private set -var is_20_02_or_greater = false +var is_20_02_or_greater : Boolean by Delegates.notNull() private set -var is_20_03_or_greater = false +var is_20_03_or_greater : Boolean by Delegates.notNull() private set -var is_20_05_or_greater = false +var is_20_05_or_greater : Boolean by Delegates.notNull() private set -var is_20_07_or_greater = false +var is_20_07_or_greater : Boolean by Delegates.notNull() private set -var is_20_09_or_greater = false +var is_20_09_or_greater : Boolean by Delegates.notNull() private set -var is_20_10_or_greater = false +var is_20_10_or_greater : Boolean by Delegates.notNull() private set -var is_20_14_or_greater = false +var is_20_14_or_greater : Boolean by Delegates.notNull() private set -var is_20_15_or_greater = false +var is_20_15_or_greater : Boolean by Delegates.notNull() private set var is_20_19_or_greater = false private set diff --git a/patches/src/main/kotlin/app/revanced/patches/youtube/video/audio/ForceOriginalAudioPatch.kt b/patches/src/main/kotlin/app/revanced/patches/youtube/video/audio/ForceOriginalAudioPatch.kt index 292e7521b..68d80fdb3 100644 --- a/patches/src/main/kotlin/app/revanced/patches/youtube/video/audio/ForceOriginalAudioPatch.kt +++ b/patches/src/main/kotlin/app/revanced/patches/youtube/video/audio/ForceOriginalAudioPatch.kt @@ -28,7 +28,7 @@ val forceOriginalAudioPatch = forceOriginalAudioPatch( ) ) }, - fixUseLocalizedAudioTrackFlag = is_20_07_or_greater, + fixUseLocalizedAudioTrackFlag = { is_20_07_or_greater }, mainActivityOnCreateFingerprint = mainActivityOnCreateFingerprint, subclassExtensionClassDescriptor = EXTENSION_CLASS_DESCRIPTOR, preferenceScreen = PreferenceScreen.VIDEO, diff --git a/patches/src/main/resources/addresources/values-fr-rFR/strings.xml b/patches/src/main/resources/addresources/values-fr-rFR/strings.xml index 53927546b..c4e413064 100644 --- a/patches/src/main/resources/addresources/values-fr-rFR/strings.xml +++ b/patches/src/main/resources/addresources/values-fr-rFR/strings.xml @@ -24,14 +24,14 @@ Second \"item\" text" Nom de l\'application - Personnalisé + Personnalisée Icône de l\'application - Original + Originale ReVanced minimaliste - ReVanced mis à l\'échelle + ReVanced mise à l\'échelle - Personnalisé + Personnalisée Les vérifications ont échoué @@ -1363,7 +1363,7 @@ Limitation : Il se peut que le bouton Retour dans la barre d'outils ne fonction Lecteur réduit - Modifier le style du lecteur réduit à l\'intérieur de l\'application + Modifiez le style du lecteur réduit intégré à l\'application Type de lecteur réduit Désactivé Par défaut @@ -1623,11 +1623,11 @@ Limitations : Autoriser Android VR AV1 "Le codec vidéo est AVC (H.264), VP9 ou AV1 -La lecture peut saccader ou perdre des images" +La lecture peut être saccadée et des images peuvent être perdues" Le codec vidéo est AVC (H.264) ou VP9 - "L'activation de ce paramètre peut utiliser le décodage AV1 logiciel. + "L'activation de ce paramètre permet l'utilisation du décodage AV1 logiciel. -La lecture vidéo avec AV1 peut saccader ou perdre des images." +La lecture vidéo avec AV1 peut être saccadée et des images peuvent être perdues." Effets secondaires de la falsification • Client expérimental, peut cesser de fonctionner à tout moment • Les vidéos sont susceptibles de s\'arrêter à 1:00, ou de ne pas être disponibles dans certaines régions diff --git a/patches/src/main/resources/custom-branding/drawable/revanced_notification_icon.xml b/patches/src/main/resources/custom-branding/drawable/revanced_notification_icon.xml index 942b01f5f..97e377929 100644 --- a/patches/src/main/resources/custom-branding/drawable/revanced_notification_icon.xml +++ b/patches/src/main/resources/custom-branding/drawable/revanced_notification_icon.xml @@ -6,7 +6,8 @@ android:viewportWidth="24" android:viewportHeight="24"> + - \ No newline at end of file + diff --git a/patches/src/main/resources/custom-branding/drawable/revanced_notification_icon_custom.xml b/patches/src/main/resources/custom-branding/drawable/revanced_notification_icon_custom.xml index 942b01f5f..97e377929 100644 --- a/patches/src/main/resources/custom-branding/drawable/revanced_notification_icon_custom.xml +++ b/patches/src/main/resources/custom-branding/drawable/revanced_notification_icon_custom.xml @@ -6,7 +6,8 @@ android:viewportWidth="24" android:viewportHeight="24"> + - \ No newline at end of file +