1
mirror of https://github.com/revanced/revanced-integrations synced 2025-11-21 18:35:37 +01:00

Compare commits

...

69 Commits

Author SHA1 Message Date
semantic-release-bot
482e21d885 chore(release): 0.123.1-dev.2 [skip ci]
## [0.123.1-dev.2](https://github.com/ReVanced/revanced-integrations/compare/v0.123.1-dev.1...v0.123.1-dev.2) (2023-11-23)

### Bug Fixes

* **YouTube - Enable tablet layout:** Respect the original device layout ([9e3e747](9e3e747ce6))
2023-11-23 00:02:09 +00:00
oSumAtrIX
9e3e747ce6 fix(YouTube - Enable tablet layout): Respect the original device layout 2023-11-23 00:59:31 +01:00
oSumAtrIX
1ebf8e04a6 chore: Add heading to issue templates 2023-11-23 00:56:50 +01:00
semantic-release-bot
c13504a0b3 chore(release): 0.123.1-dev.1 [skip ci]
## [0.123.1-dev.1](https://github.com/ReVanced/revanced-integrations/compare/v0.123.0...v0.123.1-dev.1) (2023-11-22)

### Bug Fixes

* **YouTube - Custom playback speed:** Fix toast error on opening playback speed menu ([#522](https://github.com/ReVanced/revanced-integrations/issues/522)) ([0124f41](0124f41cd6))
2023-11-22 19:20:28 +00:00
LisoUseInAIKyrios
0124f41cd6 fix(YouTube - Custom playback speed): Fix toast error on opening playback speed menu (#522) 2023-11-22 21:18:01 +02:00
oSumAtrIX
dedd2f658a chore: Suppress deprecated flag 2023-11-22 01:03:30 +01:00
oSumAtrIX
7f0c2c507c build: Bump dependencies 2023-11-22 01:02:28 +01:00
oSumAtrIX
17e78824b7 build: Bump Gradle wrapper 2023-11-22 01:01:56 +01:00
oSumAtrIX
36fe5718cf build: Use dedicated Gradle cache action 2023-11-22 01:01:56 +01:00
oSumAtrIX
355acc7023 build: Use Gradle build cache 2023-11-22 01:01:55 +01:00
oSumAtrIX
dcca2e5e8d ci: Simplify cache paths 2023-11-22 00:11:15 +01:00
oSumAtrIX
c4d01b2334 chore: Reword comment for first PR merge 2023-11-22 00:07:48 +01:00
oSumAtrIX
ce2ad04f60 chore: Add a newline between steps 2023-11-22 00:04:20 +01:00
oSumAtrIX
1230d77f94 chore: Simplify issue templates 2023-11-21 23:57:28 +01:00
oSumAtrIX
2735f99c0a chore: Add folder to gitignore 2023-11-21 23:42:04 +01:00
oSumAtrIX
64463dea5b ci: Update cache key 2023-11-21 23:41:41 +01:00
oSumAtrIX
4932a71088 chore: Update packages 2023-11-21 23:40:57 +01:00
semantic-release-bot
f6e936812e chore(release): 0.123.0 [skip ci]
# [0.123.0](https://github.com/ReVanced/revanced-integrations/compare/v0.122.1...v0.123.0) (2023-11-20)

### Bug Fixes

* **YouTube - Hide layout components:** Check if `bytes` parameter of `LayoutComponentsFilter#filterMixPlaylists` for null ([abfbb0d](abfbb0d7d5))
* **YouTube - Spoof client:** Fix frozen video on playback start ([#520](https://github.com/ReVanced/revanced-integrations/issues/520)) ([ffcee71](ffcee71f79))

### Features

* **YouTube:** Add `Disable rolling number animations` patch ([#519](https://github.com/ReVanced/revanced-integrations/issues/519)) ([ce0bedc](ce0bedc5d3))
2023-11-20 17:58:54 +00:00
oSumAtrIX
c8510dbb4d chore: Merge branch dev to main (#521) 2023-11-20 18:56:05 +01:00
semantic-release-bot
d3021bcf0b chore(release): 0.122.2-dev.2 [skip ci]
## [0.122.2-dev.2](https://github.com/ReVanced/revanced-integrations/compare/v0.122.2-dev.1...v0.122.2-dev.2) (2023-11-20)

### Bug Fixes

* **YouTube - Spoof client:** Fix frozen video on playback start ([#520](https://github.com/ReVanced/revanced-integrations/issues/520)) ([9139954](91399540ba))
2023-11-20 18:55:55 +01:00
LisoUseInAIKyrios
ffcee71f79 fix(YouTube - Spoof client): Fix frozen video on playback start (#520) 2023-11-20 18:55:55 +01:00
semantic-release-bot
8cbe2b5a92 chore(release): 0.122.2-dev.1 [skip ci]
## [0.122.2-dev.1](https://github.com/ReVanced/revanced-integrations/compare/v0.122.1...v0.122.2-dev.1) (2023-11-19)

### Bug Fixes

* **YouTube - Hide layout components:** Check if `bytes` parameter of `LayoutComponentsFilter#filterMixPlaylists` for null ([3eb07c1](3eb07c12dd))
2023-11-20 18:55:55 +01:00
oSumAtrIX
abfbb0d7d5 fix(YouTube - Hide layout components): Check if bytes parameter of LayoutComponentsFilter#filterMixPlaylists for null 2023-11-20 18:55:55 +01:00
LisoUseInAIKyrios
ce0bedc5d3 feat(YouTube): Add Disable rolling number animations patch (#519) 2023-11-20 18:55:53 +01:00
semantic-release-bot
5cf5d86913 chore(release): 0.122.1 [skip ci]
## [0.122.1](https://github.com/ReVanced/revanced-integrations/compare/v0.122.0...v0.122.1) (2023-11-19)

### Bug Fixes

* **YouTube - ReturnYouTubeDislike:** Improve layout padding ([#517](https://github.com/ReVanced/revanced-integrations/issues/517)) ([ba15aba](ba15aba063))
* **YouTube:** Check if `protobufBuffer` can be filtered ([b078f0c](b078f0ca37))
2023-11-19 04:02:38 +00:00
oSumAtrIX
7dd826ad71 chore: Merge branch dev to main (#518) 2023-11-19 04:59:59 +01:00
oSumAtrIX
58afcec641 chore(YouTube): Only debug log if protobufBuffer has no array 2023-11-18 22:14:08 +01:00
semantic-release-bot
781cdf88df chore(release): 0.122.1-dev.2 [skip ci]
## [0.122.1-dev.2](https://github.com/ReVanced/revanced-integrations/compare/v0.122.1-dev.1...v0.122.1-dev.2) (2023-11-18)

### Bug Fixes

* **YouTube - ReturnYouTubeDislike:** Improve layout padding ([#517](https://github.com/ReVanced/revanced-integrations/issues/517)) ([ba15aba](ba15aba063))
2023-11-18 19:13:11 +00:00
LisoUseInAIKyrios
ba15aba063 fix(YouTube - ReturnYouTubeDislike): Improve layout padding (#517) 2023-11-18 21:10:26 +02:00
semantic-release-bot
411b0f2ccc chore(release): 0.122.1-dev.1 [skip ci]
## [0.122.1-dev.1](https://github.com/ReVanced/revanced-integrations/compare/v0.122.0...v0.122.1-dev.1) (2023-11-18)

### Bug Fixes

* **YouTube:** Check if `protobufBuffer` can be filtered ([b078f0c](b078f0ca37))
2023-11-18 18:22:00 +00:00
oSumAtrIX
b078f0ca37 fix(YouTube): Check if protobufBuffer can be filtered
An `UnsupportedOperationException` exception would be thrown in `LithoFilterParameters#LithoFilterParameters` if this buffer is not backed by an accessible array
2023-11-18 19:18:53 +01:00
semantic-release-bot
46bfeea1a3 chore(release): 0.122.0 [skip ci]
# [0.122.0](https://github.com/ReVanced/revanced-integrations/compare/v0.121.0...v0.122.0) (2023-11-18)

### Bug Fixes

* **Remove screenshot restriction:** Improve reliability ([#471](https://github.com/ReVanced/revanced-integrations/issues/471)) ([50933dc](50933dc42d))
* **YouTube - Client spoof:** Fix low resolution precise seeking thumbnails ([#513](https://github.com/ReVanced/revanced-integrations/issues/513)) ([11f97ac](11f97ac354))
* **YouTube - Disable resuming Shorts on startup:** Adjust patch name ([#516](https://github.com/ReVanced/revanced-integrations/issues/516)) ([8b5d2d1](8b5d2d1871))
* **YouTube - Disable suggested video end screen:** Do not spam click to disable the screen ([4f57d56](4f57d56042))
* **YouTube - Disable suggested video end screen:** Properly hide it every time the screen appears ([828ff6f](828ff6f31e))
* **YouTube - Hide layout components:** Reduce false positives when hiding mix playlists ([5f30100](5f30100fd5))
* **YouTube:** Prevent playing touch interaction sound when unintended ([6e414ec](6e414ec6c2))
* **YouTube:** Rename `Restore old seekbar thumbnails` and `Restore old quality menu` ([#510](https://github.com/ReVanced/revanced-integrations/issues/510)) ([6b00f90](6b00f90fb7))

### Features

* **YouTube - Hide layout components:** Hide description components ([726a251](726a2510a5))
* **YouTube - Return YouTube Dislike:** Support version `18.43.45` and `18.44.41` ([#514](https://github.com/ReVanced/revanced-integrations/issues/514)) ([a5245b8](a5245b85a8))
* **YouTube:** Add `Enable slide to seek` patch ([b1ce7a7](b1ce7a75eb))
* **YouTube:** Add `Remove tracking query parameter` patch ([e84b7b3](e84b7b328e))

### Performance Improvements

* **YouTube - Client spoof:** Reduce timeout to fetch storyboard renderer ([847cce4](847cce43f6))
2023-11-18 04:13:52 +00:00
oSumAtrIX
d0c659ce11 chore: Merge branch dev to main (#511) 2023-11-18 05:10:38 +01:00
semantic-release-bot
25dc754ff5 chore(release): 0.122.0-dev.4 [skip ci]
# [0.122.0-dev.4](https://github.com/ReVanced/revanced-integrations/compare/v0.122.0-dev.3...v0.122.0-dev.4) (2023-11-18)

### Features

* **YouTube - Hide layout components:** Hide description components ([726a251](726a2510a5))
2023-11-18 04:08:29 +00:00
oSumAtrIX
726a2510a5 feat(YouTube - Hide layout components): Hide description components 2023-11-18 04:34:16 +01:00
semantic-release-bot
0978e64655 chore(release): 0.122.0-dev.3 [skip ci]
# [0.122.0-dev.3](https://github.com/ReVanced/revanced-integrations/compare/v0.122.0-dev.2...v0.122.0-dev.3) (2023-11-17)

### Features

* **YouTube - Return YouTube Dislike:** Support version `18.43.45` and `18.44.41` ([#514](https://github.com/ReVanced/revanced-integrations/issues/514)) ([a5245b8](a5245b85a8))
2023-11-17 23:53:38 +00:00
oSumAtrIX
a5245b85a8 feat(YouTube - Return YouTube Dislike): Support version 18.43.45 and 18.44.41 (#514)
Co-authored-by: LisoUseInAIKyrios <118716522+LisoUseInAIKyrios@users.noreply.github.com>
2023-11-18 01:50:55 +02:00
semantic-release-bot
9a6ec6be8c chore(release): 0.122.0-dev.2 [skip ci]
# [0.122.0-dev.2](https://github.com/ReVanced/revanced-integrations/compare/v0.122.0-dev.1...v0.122.0-dev.2) (2023-11-17)

### Bug Fixes

* **YouTube - Disable resuming Shorts on startup:** Adjust patch name ([#516](https://github.com/ReVanced/revanced-integrations/issues/516)) ([8b5d2d1](8b5d2d1871))
2023-11-17 10:24:57 +00:00
LisoUseInAIKyrios
8b5d2d1871 fix(YouTube - Disable resuming Shorts on startup): Adjust patch name (#516) 2023-11-17 12:21:59 +02:00
semantic-release-bot
130f629f6b chore(release): 0.122.0-dev.1 [skip ci]
# [0.122.0-dev.1](https://github.com/ReVanced/revanced-integrations/compare/v0.121.1-dev.4...v0.122.0-dev.1) (2023-11-12)

### Bug Fixes

* **YouTube - Disable suggested video end screen:** Properly hide it every time the screen appears ([828ff6f](828ff6f31e))
* **YouTube - Hide layout components:** Reduce false positives when hiding mix playlists ([5f30100](5f30100fd5))

### Features

* **YouTube:** Add `Enable slide to seek` patch ([b1ce7a7](b1ce7a75eb))
* **YouTube:** Add `Remove tracking query parameter` patch ([e84b7b3](e84b7b328e))

### Performance Improvements

* **YouTube - Client spoof:** Reduce timeout to fetch storyboard renderer ([847cce4](847cce43f6))
2023-11-12 16:08:25 +00:00
oSumAtrIX
828ff6f31e fix(YouTube - Disable suggested video end screen): Properly hide it every time the screen appears
Previously, the screen appeared, which a handler was attached to, in order to hide it again, but the handler was removed again from the same screen, so the next time it appeared, it was not hidden.
2023-11-12 17:02:40 +01:00
oSumAtrIX
847cce43f6 perf(YouTube - Client spoof): Reduce timeout to fetch storyboard renderer
Because this is blocking the UI thread, a short timeout is preferable.
2023-11-12 17:02:38 +01:00
oSumAtrIX
5f30100fd5 fix(YouTube - Hide layout components): Reduce false positives when hiding mix playlists
Implementation references taken from github.com/inotia00/revanced-integrations/commit/cfaf3d6356f316623ad32b10719b1b5ef0ba25b9
2023-11-12 17:02:23 +01:00
oSumAtrIX
b1ce7a75eb feat(YouTube): Add Enable slide to seek patch
Implementation references taken from github.com/inotia00/revanced-patches/commit/0ede1987544aa0068f28665c6c029df23a30afe2
2023-11-12 17:02:23 +01:00
oSumAtrIX
e84b7b328e feat(YouTube): Add Remove tracking query parameter patch
Implementation references taken from github.com/inotia00/revanced-patches/commit/4037d9c85b7e37f8635f8fdcc1efea85dcddb5e2.
2023-11-12 17:02:22 +01:00
semantic-release-bot
db0fb46a39 chore(release): 0.121.1-dev.4 [skip ci]
## [0.121.1-dev.4](https://github.com/ReVanced/revanced-integrations/compare/v0.121.1-dev.3...v0.121.1-dev.4) (2023-11-11)

### Bug Fixes

* **YouTube - Client spoof:** Fix low resolution precise seeking thumbnails ([#513](https://github.com/ReVanced/revanced-integrations/issues/513)) ([11f97ac](11f97ac354))
2023-11-11 18:26:36 +00:00
LisoUseInAIKyrios
11f97ac354 fix(YouTube - Client spoof): Fix low resolution precise seeking thumbnails (#513) 2023-11-11 20:22:41 +02:00
semantic-release-bot
831041b432 chore(release): 0.121.1-dev.3 [skip ci]
## [0.121.1-dev.3](https://github.com/ReVanced/revanced-integrations/compare/v0.121.1-dev.2...v0.121.1-dev.3) (2023-11-10)

### Bug Fixes

* **Remove screenshot restriction:** Improve reliability ([#471](https://github.com/ReVanced/revanced-integrations/issues/471)) ([50933dc](50933dc42d))
2023-11-10 01:09:33 +00:00
Linus
50933dc42d fix(Remove screenshot restriction): Improve reliability (#471) 2023-11-10 02:06:01 +01:00
semantic-release-bot
37b3b6a837 chore(release): 0.121.1-dev.2 [skip ci]
## [0.121.1-dev.2](https://github.com/ReVanced/revanced-integrations/compare/v0.121.1-dev.1...v0.121.1-dev.2) (2023-11-07)

### Bug Fixes

* **YouTube - Disable suggested video end screen:** Do not spam click to disable the screen ([4f57d56](4f57d56042))
* **YouTube:** Prevent playing touch interaction sound when unintended ([6e414ec](6e414ec6c2))
2023-11-07 11:46:38 +00:00
oSumAtrIX
6e414ec6c2 fix(YouTube): Prevent playing touch interaction sound when unintended 2023-11-07 12:43:53 +01:00
oSumAtrIX
4f57d56042 fix(YouTube - Disable suggested video end screen): Do not spam click to disable the screen 2023-11-07 12:43:53 +01:00
semantic-release-bot
e94de61eb0 chore(release): 0.121.1-dev.1 [skip ci]
## [0.121.1-dev.1](https://github.com/ReVanced/revanced-integrations/compare/v0.121.0...v0.121.1-dev.1) (2023-11-06)

### Bug Fixes

* **YouTube:** Rename `Restore old seekbar thumbnails` and `Restore old quality menu` ([#510](https://github.com/ReVanced/revanced-integrations/issues/510)) ([6b00f90](6b00f90fb7))
2023-11-06 12:00:54 +00:00
LisoUseInAIKyrios
6b00f90fb7 fix(YouTube): Rename Restore old seekbar thumbnails and Restore old quality menu (#510) 2023-11-06 13:58:17 +02:00
semantic-release-bot
85705141a8 chore(release): 0.121.0 [skip ci]
# [0.121.0](https://github.com/ReVanced/revanced-integrations/compare/v0.120.0...v0.121.0) (2023-11-04)

### Bug Fixes

* **YouTube - Client spoof:** Set the client version correctly ([f203731](f2037316d3))
* **YouTube - Custom filter:** Fix app crash if invalid character is used in custom filter ([#506](https://github.com/ReVanced/revanced-integrations/issues/506)) ([debd0a2](debd0a2e11))
* **YouTube - Disable suggested video end screen:** Hide the view once possible ([df27822](df278222e8))
* **YouTube - Player flyout menu:** Restore functionality ([#502](https://github.com/ReVanced/revanced-integrations/issues/502)) ([c048527](c048527dc0))
* **YouTube - ReturnYouTubeDislike:** Fix RYD prefetching home feed Shorts ([#508](https://github.com/ReVanced/revanced-integrations/issues/508)) ([98c91af](98c91af130))
* **YouTube - ReturnYouTubeDislike:** Use API back off if client connection fails for any reason ([#509](https://github.com/ReVanced/revanced-integrations/issues/509)) ([40cfa1e](40cfa1e9af))

### Features

* **YouTube - Disable precise seeking gesture:** Use better patch name ([2453d30](2453d30970))
* **YouTube - Hide layout components:** Hide video quality menu footer ([04608d3](04608d32e8))
* **YouTube:** Add `Disable fullscreen ambient mode` patch ([bf50711](bf5071107b))
* **YouTube:** Add `Disable suggested video end screen` patch ([6bd5aae](6bd5aae977))
* **YouTube:** Add `Enable old seekbar thumbnails` patch ([75297a5](75297a52c1))

### Reverts

* Revert "fix(YouTube - Minimized playback): Fix pip incorrectly showing for Short playback (#504)" ([c1c7e3b](c1c7e3b596)), closes [#504](https://github.com/ReVanced/revanced-integrations/issues/504)
2023-11-04 21:15:56 +00:00
oSumAtrIX
3344375fb9 chore: Merge branch dev to main (#505) 2023-11-04 22:11:22 +01:00
semantic-release-bot
8d534f05d5 chore(release): 0.121.0-dev.7 [skip ci]
# [0.121.0-dev.7](https://github.com/ReVanced/revanced-integrations/compare/v0.121.0-dev.6...v0.121.0-dev.7) (2023-11-03)

### Bug Fixes

* **YouTube - Player flyout menu:** Restore functionality ([#502](https://github.com/ReVanced/revanced-integrations/issues/502)) ([c048527](c048527dc0))
2023-11-03 18:30:07 +00:00
nullptr
c048527dc0 fix(YouTube - Player flyout menu): Restore functionality (#502) 2023-11-03 19:27:23 +01:00
semantic-release-bot
1b29b7e11d chore(release): 0.121.0-dev.6 [skip ci]
# [0.121.0-dev.6](https://github.com/ReVanced/revanced-integrations/compare/v0.121.0-dev.5...v0.121.0-dev.6) (2023-10-25)

### Bug Fixes

* **YouTube - Client spoof:** Set the client version correctly ([f203731](f2037316d3))
2023-10-25 22:10:56 +00:00
oSumAtrIX
f2037316d3 fix(YouTube - Client spoof): Set the client version correctly
Previously the version was hardcoded.
2023-10-26 00:07:02 +02:00
semantic-release-bot
55fe1f0592 chore(release): 0.121.0-dev.5 [skip ci]
# [0.121.0-dev.5](https://github.com/ReVanced/revanced-integrations/compare/v0.121.0-dev.4...v0.121.0-dev.5) (2023-10-25)

### Bug Fixes

* **YouTube - Disable suggested video end screen:** Hide the view once possible ([df27822](df278222e8))

### Features

* **YouTube - Disable precise seeking gesture:** Use better patch name ([2453d30](2453d30970))
* **YouTube:** Add `Enable old seekbar thumbnails` patch ([75297a5](75297a52c1))
2023-10-25 17:38:04 +00:00
oSumAtrIX
2453d30970 feat(YouTube - Disable precise seeking gesture): Use better patch name
The new name now is taken from what YouTube names this feature.
2023-10-25 19:34:25 +02:00
oSumAtrIX
75297a52c1 feat(YouTube): Add Enable old seekbar thumbnails patch 2023-10-25 19:34:25 +02:00
oSumAtrIX
df278222e8 fix(YouTube - Disable suggested video end screen): Hide the view once possible
Previously the patch tried to hide the screen when it was not visible to begin with.
2023-10-25 19:34:24 +02:00
semantic-release-bot
21bccf6a99 chore(release): 0.121.0-dev.4 [skip ci]
# [0.121.0-dev.4](https://github.com/ReVanced/revanced-integrations/compare/v0.121.0-dev.3...v0.121.0-dev.4) (2023-10-25)

### Bug Fixes

* **YouTube - ReturnYouTubeDislike:** Use API back off if client connection fails for any reason ([#509](https://github.com/ReVanced/revanced-integrations/issues/509)) ([40cfa1e](40cfa1e9af))
2023-10-25 09:58:13 +00:00
LisoUseInAIKyrios
40cfa1e9af fix(YouTube - ReturnYouTubeDislike): Use API back off if client connection fails for any reason (#509) 2023-10-25 12:53:44 +03:00
semantic-release-bot
0fbf7a3434 chore(release): 0.121.0-dev.3 [skip ci]
# [0.121.0-dev.3](https://github.com/ReVanced/revanced-integrations/compare/v0.121.0-dev.2...v0.121.0-dev.3) (2023-10-24)

### Features

* **YouTube:** Add `Disable fullscreen ambient mode` patch ([bf50711](bf5071107b))
* **YouTube:** Add `Disable suggested video end screen` patch ([6bd5aae](6bd5aae977))
2023-10-24 23:51:06 +00:00
oSumAtrIX
6bd5aae977 feat(YouTube): Add Disable suggested video end screen patch 2023-10-25 01:47:03 +02:00
oSumAtrIX
bf5071107b feat(YouTube): Add Disable fullscreen ambient mode patch 2023-10-25 01:46:44 +02:00
52 changed files with 12693 additions and 4097 deletions

View File

@@ -1,59 +0,0 @@
name: 🐞 Bug report
description: Report a very clearly broken issue.
title: 'bug: <title>'
labels: [bug]
body:
- type: markdown
attributes:
value: |
# ReVanced bug report
Important to note that your issue may have already been reported before. Please check for existing issues [here](https://github.com/revanced/revanced-integrations/labels/bug).
- type: dropdown
attributes:
label: Type
options:
- Cosmetic
- Other
validations:
required: true
- type: textarea
attributes:
label: Bug description
description: How did you find the bug? Any additional details that might help?
validations:
required: true
- type: textarea
attributes:
label: Steps to reproduce
description: Add the steps to reproduce this bug including your environment.
placeholder: Step 1. Download some files. Step 2. ...
validations:
required: true
- type: textarea
attributes:
label: Relevant log output
description: Please copy and paste any relevant log output. This will be automatically formatted into code, so no need for backticks.
render: shell
validations:
required: true
- type: textarea
attributes:
label: Screenshots or videos
description: Add screenshots or videos that show the bug here.
placeholder: Drag and drop the screenshots/videos into this box.
validations:
required: false
- type: textarea
attributes:
label: Solution
description: If applicable, add a possible solution.
validations:
required: false
- type: textarea
attributes:
label: Additional context
description: Add additional context here.
validations:
required: false

109
.github/ISSUE_TEMPLATE/bug-report.yml vendored Normal file
View File

@@ -0,0 +1,109 @@
name: 🐞 Bug report
description: Report a bug or an issue.
title: 'bug: '
labels: ['Bug report']
body:
- type: markdown
attributes:
value: |
<p align="center">
<picture>
<source
width="256px"
media="(prefers-color-scheme: dark)"
srcset="https://raw.githubusercontent.com/revanced/revanced-integrations/main/assets/revanced-headline/revanced-headline-vertical-dark.svg"
>
<img
width="256px"
src="https://raw.githubusercontent.com/revanced/revanced-integrations/main/assets/revanced-headline/revanced-headline-vertical-light.svg"
>
</picture>
<br>
<a href="https://revanced.app/">
<picture>
<source height="24px" media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/revanced/revanced-integrations/main/assets/revanced-logo/revanced-logo.svg" />
<img height="24px" src="https://raw.githubusercontent.com/revanced/revanced-integrations/main/assets/revanced-logo/revanced-logo.svg" />
</picture>
</a>&nbsp;&nbsp;&nbsp;
<a href="https://github.com/ReVanced">
<picture>
<source height="24px" media="(prefers-color-scheme: dark)" srcset="https://i.ibb.co/dMMmCrW/Git-Hub-Mark.png" />
<img height="24px" src="https://i.ibb.co/9wV3HGF/Git-Hub-Mark-Light.png" />
</picture>
</a>&nbsp;&nbsp;&nbsp;
<a href="http://revanced.app/discord">
<picture>
<source height="24px" media="(prefers-color-scheme: dark)" srcset="https://user-images.githubusercontent.com/13122796/178032563-d4e084b7-244e-4358-af50-26bde6dd4996.png" />
<img height="24px" src="https://user-images.githubusercontent.com/13122796/178032563-d4e084b7-244e-4358-af50-26bde6dd4996.png" />
</picture>
</a>&nbsp;&nbsp;&nbsp;
<a href="https://reddit.com/r/revancedapp">
<picture>
<source height="24px" media="(prefers-color-scheme: dark)" srcset="https://user-images.githubusercontent.com/13122796/178032351-9d9d5619-8ef7-470a-9eec-2744ece54553.png" />
<img height="24px" src="https://user-images.githubusercontent.com/13122796/178032351-9d9d5619-8ef7-470a-9eec-2744ece54553.png" />
</picture>
</a>&nbsp;&nbsp;&nbsp;
<a href="https://t.me/app_revanced">
<picture>
<source height="24px" media="(prefers-color-scheme: dark)" srcset="https://user-images.githubusercontent.com/13122796/178032213-faf25ab8-0bc3-4a94-a730-b524c96df124.png" />
<img height="24px" src="https://user-images.githubusercontent.com/13122796/178032213-faf25ab8-0bc3-4a94-a730-b524c96df124.png" />
</picture>
</a>&nbsp;&nbsp;&nbsp;
<a href="https://x.com/revancedapp">
<picture>
<source media="(prefers-color-scheme: dark)" srcset="https://user-images.githubusercontent.com/93124920/270180600-7c1b38bf-889b-4d68-bd5e-b9d86f91421a.png">
<img height="24px" src="https://user-images.githubusercontent.com/93124920/270108715-d80743fa-b330-4809-b1e6-79fbdc60d09c.png" />
</picture>
</a>&nbsp;&nbsp;&nbsp;
<a href="https://www.youtube.com/@ReVanced">
<picture>
<source height="24px" media="(prefers-color-scheme: dark)" srcset="https://user-images.githubusercontent.com/13122796/178032714-c51c7492-0666-44ac-99c2-f003a695ab50.png" />
<img height="24px" src="https://user-images.githubusercontent.com/13122796/178032714-c51c7492-0666-44ac-99c2-f003a695ab50.png" />
</picture>
</a>
<br>
<br>
Continuing the legacy of Vanced
</p>
# ReVanced Integrations bug report
Before creating a new bug report, please keep the following in mind:
- **Do not submit a duplicate bug report**: You can review existing bug reports [here](https://github.com/ReVanced/revanced-integrations/labels/Bug%20report).
- **Do not use the issue page for support**: If you need help or have questions, check out other platforms on [revanced.app](https://revanced.app).
- type: textarea
attributes:
label: Bug description
description: |
- Describe your bug in detail
- Add steps to reproduce the bug if possible (Step 1. ... Step 2. ...)
- Add images and videos if possible
- List used patches if applicable
validations:
required: true
- type: textarea
attributes:
label: Error logs
description: Exceptions can be captured by running `logcat | grep AndroidRuntime` in a shell.
render: shell
- type: textarea
attributes:
label: Solution
description: If applicable, add a possible solution to the bug.
- type: textarea
attributes:
label: Additional context
description: Add additional context here.
- type: checkboxes
id: acknowledgements
attributes:
label: Acknowledgements
description: Your bug report will be closed if you don't follow the checklist below.
options:
- label: This issue is not a duplicate of an existing bug report.
required: true
- label: I have chosen an appropriate title.
required: true
- label: All requested information has been provided properly.
required: true

View File

@@ -1,46 +0,0 @@
name: ⭐ Feature request
description: Create a detailed feature request.
title: 'feat: <title>'
labels: [feature-request]
body:
- type: markdown
attributes:
value: |
# ReVanced feature request
Do not submit requests for patches here. Please submit them [here](https://github.com/orgs/revanced/discussions/categories/patches) instead.
Important to note that your feature request may have already been made before. Please check for existing feature requests [here](https://github.com/revanced/revanced-integrations/labels/feature-request).
- type: dropdown
attributes:
label: Type
options:
- Functionality
- Cosmetic
- Other
validations:
required: true
- type: textarea
attributes:
label: Issue
description: What is the current problem. Why does it require a feature request?
validations:
required: true
- type: textarea
attributes:
label: Feature
description: Describe your feature in detail. How does it solve the issue?
validations:
required: true
- type: textarea
attributes:
label: Motivation
description: Why should your feature should be considered?
validations:
required: true
- type: textarea
attributes:
label: Additional context
description: Add additional context here.
validations:
required: false

View File

@@ -0,0 +1,105 @@
name: ⭐ Feature request
description: Create a detailed request for a new feature.
title: 'feat: '
labels: ['Feature request']
body:
- type: markdown
attributes:
value: |
<p align="center">
<picture>
<source
width="256px"
media="(prefers-color-scheme: dark)"
srcset="https://raw.githubusercontent.com/revanced/revanced-integrations/main/assets/revanced-headline/revanced-headline-vertical-dark.svg"
>
<img
width="256px"
src="https://raw.githubusercontent.com/revanced/revanced-integrations/main/assets/revanced-headline/revanced-headline-vertical-light.svg"
>
</picture>
<br>
<a href="https://revanced.app/">
<picture>
<source height="24px" media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/revanced/revanced-integrations/main/assets/revanced-logo/revanced-logo.svg" />
<img height="24px" src="https://raw.githubusercontent.com/revanced/revanced-integrations/main/assets/revanced-logo/revanced-logo.svg" />
</picture>
</a>&nbsp;&nbsp;&nbsp;
<a href="https://github.com/ReVanced">
<picture>
<source height="24px" media="(prefers-color-scheme: dark)" srcset="https://i.ibb.co/dMMmCrW/Git-Hub-Mark.png" />
<img height="24px" src="https://i.ibb.co/9wV3HGF/Git-Hub-Mark-Light.png" />
</picture>
</a>&nbsp;&nbsp;&nbsp;
<a href="http://revanced.app/discord">
<picture>
<source height="24px" media="(prefers-color-scheme: dark)" srcset="https://user-images.githubusercontent.com/13122796/178032563-d4e084b7-244e-4358-af50-26bde6dd4996.png" />
<img height="24px" src="https://user-images.githubusercontent.com/13122796/178032563-d4e084b7-244e-4358-af50-26bde6dd4996.png" />
</picture>
</a>&nbsp;&nbsp;&nbsp;
<a href="https://reddit.com/r/revancedapp">
<picture>
<source height="24px" media="(prefers-color-scheme: dark)" srcset="https://user-images.githubusercontent.com/13122796/178032351-9d9d5619-8ef7-470a-9eec-2744ece54553.png" />
<img height="24px" src="https://user-images.githubusercontent.com/13122796/178032351-9d9d5619-8ef7-470a-9eec-2744ece54553.png" />
</picture>
</a>&nbsp;&nbsp;&nbsp;
<a href="https://t.me/app_revanced">
<picture>
<source height="24px" media="(prefers-color-scheme: dark)" srcset="https://user-images.githubusercontent.com/13122796/178032213-faf25ab8-0bc3-4a94-a730-b524c96df124.png" />
<img height="24px" src="https://user-images.githubusercontent.com/13122796/178032213-faf25ab8-0bc3-4a94-a730-b524c96df124.png" />
</picture>
</a>&nbsp;&nbsp;&nbsp;
<a href="https://x.com/revancedapp">
<picture>
<source media="(prefers-color-scheme: dark)" srcset="https://user-images.githubusercontent.com/93124920/270180600-7c1b38bf-889b-4d68-bd5e-b9d86f91421a.png">
<img height="24px" src="https://user-images.githubusercontent.com/93124920/270108715-d80743fa-b330-4809-b1e6-79fbdc60d09c.png" />
</picture>
</a>&nbsp;&nbsp;&nbsp;
<a href="https://www.youtube.com/@ReVanced">
<picture>
<source height="24px" media="(prefers-color-scheme: dark)" srcset="https://user-images.githubusercontent.com/13122796/178032714-c51c7492-0666-44ac-99c2-f003a695ab50.png" />
<img height="24px" src="https://user-images.githubusercontent.com/13122796/178032714-c51c7492-0666-44ac-99c2-f003a695ab50.png" />
</picture>
</a>
<br>
<br>
Continuing the legacy of Vanced
</p>
# ReVanced Integrations feature request
Before creating a new feature request, please keep the following in mind:
- **Do not submit a duplicate feature request**: You can review existing feature requests [here](https://github.com/ReVanced/revanced-integrations/labels/Feature%20request).
- **Do not use the issue page for support**: If you need help or have questions, check out other platforms on [revanced.app](https://revanced.app).
- type: textarea
attributes:
label: Feature description
description: |
- Describe your feature in detail
- Add images, videos, links, examples, references, etc. if possible
- Add the target application name in case you request a new patch
- type: textarea
attributes:
label: Motivation
description: |
A strong motivation is necessary for a feature request to be considered.
- Why should this feature be implemented?
- What is the explicit use case?
- What are the benefits?
- What makes this feature important?
validations:
required: true
- type: checkboxes
id: acknowledgements
attributes:
label: Acknowledgements
description: Your feature request will be closed if you don't follow the checklist below.
options:
- label: This issue is not a duplicate of an existing feature request.
required: true
- label: I have chosen an appropriate title.
required: true
- label: All requested information has been provided properly.
required: true

2
.github/config.yml vendored
View File

@@ -1,2 +1,2 @@
firstPRMergeComment: >
Thank you for contributing to ReVanced. Join us on [Discord](https://revanced.app/discord) if you want to receive a contributor role.
Thank you for contributing to ReVanced. Join us on [Discord](https://revanced.app/discord) to receive a role for your contribution.

View File

@@ -16,6 +16,7 @@ jobs:
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Open pull request
uses: repo-sync/pull-request@v2
with:

View File

@@ -23,23 +23,28 @@ jobs:
# https://github.com/cycjimmy/semantic-release-action#private-packages
persist-credentials: false
fetch-depth: 0
- name: Cache
- name: Cache Node modules
uses: actions/cache@v3
with:
path: |
${{ runner.home }}/.gradle/caches
${{ runner.home }}/.gradle/wrapper
.gradle
node_modules
key: ${{ runner.os }}-gradle-npm-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties', 'package-lock.json') }}
key: npm-${{ hashFiles('package-lock.json') }}
- name: Cache Gradle
uses: burrunan/gradle-cache-action@v1
- name: Setup Java
run: echo "JAVA_HOME=$JAVA_HOME_17_X64" >> $GITHUB_ENV
- name: Build with Gradle
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: ./gradlew build clean
- name: Setup semantic-release
run: npm install
- name: Release
env:
GITHUB_TOKEN: ${{ secrets.REPOSITORY_PUSH_ACCESS }}

1
.gitignore vendored
View File

@@ -14,3 +14,4 @@
/.idea
/.vscode
/*.log
node_modules

View File

@@ -1,3 +1,230 @@
## [0.123.1-dev.2](https://github.com/ReVanced/revanced-integrations/compare/v0.123.1-dev.1...v0.123.1-dev.2) (2023-11-23)
### Bug Fixes
* **YouTube - Enable tablet layout:** Respect the original device layout ([9e3e747](https://github.com/ReVanced/revanced-integrations/commit/9e3e747ce66d58b9ee74e812a68e74d1a88288e0))
## [0.123.1-dev.1](https://github.com/ReVanced/revanced-integrations/compare/v0.123.0...v0.123.1-dev.1) (2023-11-22)
### Bug Fixes
* **YouTube - Custom playback speed:** Fix toast error on opening playback speed menu ([#522](https://github.com/ReVanced/revanced-integrations/issues/522)) ([0124f41](https://github.com/ReVanced/revanced-integrations/commit/0124f41cd699467e1c973ea42774c89b751f576f))
# [0.123.0](https://github.com/ReVanced/revanced-integrations/compare/v0.122.1...v0.123.0) (2023-11-20)
### Bug Fixes
* **YouTube - Hide layout components:** Check if `bytes` parameter of `LayoutComponentsFilter#filterMixPlaylists` for null ([abfbb0d](https://github.com/ReVanced/revanced-integrations/commit/abfbb0d7d58defee77424996af52fd82d6c4ef73))
* **YouTube - Spoof client:** Fix frozen video on playback start ([#520](https://github.com/ReVanced/revanced-integrations/issues/520)) ([ffcee71](https://github.com/ReVanced/revanced-integrations/commit/ffcee71f798470577ade6d59cc0408c59c878f7e))
### Features
* **YouTube:** Add `Disable rolling number animations` patch ([#519](https://github.com/ReVanced/revanced-integrations/issues/519)) ([ce0bedc](https://github.com/ReVanced/revanced-integrations/commit/ce0bedc5d3b332760ee4d816a57fe64dc754ea0f))
## [0.122.2-dev.2](https://github.com/ReVanced/revanced-integrations/compare/v0.122.2-dev.1...v0.122.2-dev.2) (2023-11-20)
### Bug Fixes
* **YouTube - Spoof client:** Fix frozen video on playback start ([#520](https://github.com/ReVanced/revanced-integrations/issues/520)) ([9139954](https://github.com/ReVanced/revanced-integrations/commit/91399540ba55c80c437652bf919d5af7b080bdfb))
## [0.122.2-dev.1](https://github.com/ReVanced/revanced-integrations/compare/v0.122.1...v0.122.2-dev.1) (2023-11-19)
### Bug Fixes
* **YouTube - Hide layout components:** Check if `bytes` parameter of `LayoutComponentsFilter#filterMixPlaylists` for null ([3eb07c1](https://github.com/ReVanced/revanced-integrations/commit/3eb07c12dda889f6ed50fb3b6900b2d789bb0c10))
## [0.122.1](https://github.com/ReVanced/revanced-integrations/compare/v0.122.0...v0.122.1) (2023-11-19)
### Bug Fixes
* **YouTube - ReturnYouTubeDislike:** Improve layout padding ([#517](https://github.com/ReVanced/revanced-integrations/issues/517)) ([ba15aba](https://github.com/ReVanced/revanced-integrations/commit/ba15aba063d95116d8f028cf9c3b72aa2737fc30))
* **YouTube:** Check if `protobufBuffer` can be filtered ([b078f0c](https://github.com/ReVanced/revanced-integrations/commit/b078f0ca37020b1aefdbe34724370f6b08c7d600))
## [0.122.1-dev.2](https://github.com/ReVanced/revanced-integrations/compare/v0.122.1-dev.1...v0.122.1-dev.2) (2023-11-18)
### Bug Fixes
* **YouTube - ReturnYouTubeDislike:** Improve layout padding ([#517](https://github.com/ReVanced/revanced-integrations/issues/517)) ([ba15aba](https://github.com/ReVanced/revanced-integrations/commit/ba15aba063d95116d8f028cf9c3b72aa2737fc30))
## [0.122.1-dev.1](https://github.com/ReVanced/revanced-integrations/compare/v0.122.0...v0.122.1-dev.1) (2023-11-18)
### Bug Fixes
* **YouTube:** Check if `protobufBuffer` can be filtered ([b078f0c](https://github.com/ReVanced/revanced-integrations/commit/b078f0ca37020b1aefdbe34724370f6b08c7d600))
# [0.122.0](https://github.com/ReVanced/revanced-integrations/compare/v0.121.0...v0.122.0) (2023-11-18)
### Bug Fixes
* **Remove screenshot restriction:** Improve reliability ([#471](https://github.com/ReVanced/revanced-integrations/issues/471)) ([50933dc](https://github.com/ReVanced/revanced-integrations/commit/50933dc42d4ef77fb45a978e19d306dad5070540))
* **YouTube - Client spoof:** Fix low resolution precise seeking thumbnails ([#513](https://github.com/ReVanced/revanced-integrations/issues/513)) ([11f97ac](https://github.com/ReVanced/revanced-integrations/commit/11f97ac354344aac3d101f8874e38273da15f9e6))
* **YouTube - Disable resuming Shorts on startup:** Adjust patch name ([#516](https://github.com/ReVanced/revanced-integrations/issues/516)) ([8b5d2d1](https://github.com/ReVanced/revanced-integrations/commit/8b5d2d1871c19421eb39ce38a7039c86e5d8d08b))
* **YouTube - Disable suggested video end screen:** Do not spam click to disable the screen ([4f57d56](https://github.com/ReVanced/revanced-integrations/commit/4f57d560425a40386a014da05fe26bb9c22f090f))
* **YouTube - Disable suggested video end screen:** Properly hide it every time the screen appears ([828ff6f](https://github.com/ReVanced/revanced-integrations/commit/828ff6f31e2f15bf50899ab1e403bdc40cc09d07))
* **YouTube - Hide layout components:** Reduce false positives when hiding mix playlists ([5f30100](https://github.com/ReVanced/revanced-integrations/commit/5f30100fd59c1e61c0236bc54cfcd03212994cab))
* **YouTube:** Prevent playing touch interaction sound when unintended ([6e414ec](https://github.com/ReVanced/revanced-integrations/commit/6e414ec6c2a40d70f810b0ade1d8c41cadafff8d))
* **YouTube:** Rename `Restore old seekbar thumbnails` and `Restore old quality menu` ([#510](https://github.com/ReVanced/revanced-integrations/issues/510)) ([6b00f90](https://github.com/ReVanced/revanced-integrations/commit/6b00f90fb7561d59de59d76d43fff8c1d057dce6))
### Features
* **YouTube - Hide layout components:** Hide description components ([726a251](https://github.com/ReVanced/revanced-integrations/commit/726a2510a5b28da3afb77c7f5fdda87a3bd2c809))
* **YouTube - Return YouTube Dislike:** Support version `18.43.45` and `18.44.41` ([#514](https://github.com/ReVanced/revanced-integrations/issues/514)) ([a5245b8](https://github.com/ReVanced/revanced-integrations/commit/a5245b85a829a86b535cf305cac49d14b709708d))
* **YouTube:** Add `Enable slide to seek` patch ([b1ce7a7](https://github.com/ReVanced/revanced-integrations/commit/b1ce7a75eba53312d9522c87321ac83cb16d83cf))
* **YouTube:** Add `Remove tracking query parameter` patch ([e84b7b3](https://github.com/ReVanced/revanced-integrations/commit/e84b7b328ea48e86d240d38cf83aa960f87d6902))
### Performance Improvements
* **YouTube - Client spoof:** Reduce timeout to fetch storyboard renderer ([847cce4](https://github.com/ReVanced/revanced-integrations/commit/847cce43f6436c592c680820960f5270f799cb8d))
# [0.122.0-dev.4](https://github.com/ReVanced/revanced-integrations/compare/v0.122.0-dev.3...v0.122.0-dev.4) (2023-11-18)
### Features
* **YouTube - Hide layout components:** Hide description components ([726a251](https://github.com/ReVanced/revanced-integrations/commit/726a2510a5b28da3afb77c7f5fdda87a3bd2c809))
# [0.122.0-dev.3](https://github.com/ReVanced/revanced-integrations/compare/v0.122.0-dev.2...v0.122.0-dev.3) (2023-11-17)
### Features
* **YouTube - Return YouTube Dislike:** Support version `18.43.45` and `18.44.41` ([#514](https://github.com/ReVanced/revanced-integrations/issues/514)) ([a5245b8](https://github.com/ReVanced/revanced-integrations/commit/a5245b85a829a86b535cf305cac49d14b709708d))
# [0.122.0-dev.2](https://github.com/ReVanced/revanced-integrations/compare/v0.122.0-dev.1...v0.122.0-dev.2) (2023-11-17)
### Bug Fixes
* **YouTube - Disable resuming Shorts on startup:** Adjust patch name ([#516](https://github.com/ReVanced/revanced-integrations/issues/516)) ([8b5d2d1](https://github.com/ReVanced/revanced-integrations/commit/8b5d2d1871c19421eb39ce38a7039c86e5d8d08b))
# [0.122.0-dev.1](https://github.com/ReVanced/revanced-integrations/compare/v0.121.1-dev.4...v0.122.0-dev.1) (2023-11-12)
### Bug Fixes
* **YouTube - Disable suggested video end screen:** Properly hide it every time the screen appears ([828ff6f](https://github.com/ReVanced/revanced-integrations/commit/828ff6f31e2f15bf50899ab1e403bdc40cc09d07))
* **YouTube - Hide layout components:** Reduce false positives when hiding mix playlists ([5f30100](https://github.com/ReVanced/revanced-integrations/commit/5f30100fd59c1e61c0236bc54cfcd03212994cab))
### Features
* **YouTube:** Add `Enable slide to seek` patch ([b1ce7a7](https://github.com/ReVanced/revanced-integrations/commit/b1ce7a75eba53312d9522c87321ac83cb16d83cf))
* **YouTube:** Add `Remove tracking query parameter` patch ([e84b7b3](https://github.com/ReVanced/revanced-integrations/commit/e84b7b328ea48e86d240d38cf83aa960f87d6902))
### Performance Improvements
* **YouTube - Client spoof:** Reduce timeout to fetch storyboard renderer ([847cce4](https://github.com/ReVanced/revanced-integrations/commit/847cce43f6436c592c680820960f5270f799cb8d))
## [0.121.1-dev.4](https://github.com/ReVanced/revanced-integrations/compare/v0.121.1-dev.3...v0.121.1-dev.4) (2023-11-11)
### Bug Fixes
* **YouTube - Client spoof:** Fix low resolution precise seeking thumbnails ([#513](https://github.com/ReVanced/revanced-integrations/issues/513)) ([11f97ac](https://github.com/ReVanced/revanced-integrations/commit/11f97ac354344aac3d101f8874e38273da15f9e6))
## [0.121.1-dev.3](https://github.com/ReVanced/revanced-integrations/compare/v0.121.1-dev.2...v0.121.1-dev.3) (2023-11-10)
### Bug Fixes
* **Remove screenshot restriction:** Improve reliability ([#471](https://github.com/ReVanced/revanced-integrations/issues/471)) ([50933dc](https://github.com/ReVanced/revanced-integrations/commit/50933dc42d4ef77fb45a978e19d306dad5070540))
## [0.121.1-dev.2](https://github.com/ReVanced/revanced-integrations/compare/v0.121.1-dev.1...v0.121.1-dev.2) (2023-11-07)
### Bug Fixes
* **YouTube - Disable suggested video end screen:** Do not spam click to disable the screen ([4f57d56](https://github.com/ReVanced/revanced-integrations/commit/4f57d560425a40386a014da05fe26bb9c22f090f))
* **YouTube:** Prevent playing touch interaction sound when unintended ([6e414ec](https://github.com/ReVanced/revanced-integrations/commit/6e414ec6c2a40d70f810b0ade1d8c41cadafff8d))
## [0.121.1-dev.1](https://github.com/ReVanced/revanced-integrations/compare/v0.121.0...v0.121.1-dev.1) (2023-11-06)
### Bug Fixes
* **YouTube:** Rename `Restore old seekbar thumbnails` and `Restore old quality menu` ([#510](https://github.com/ReVanced/revanced-integrations/issues/510)) ([6b00f90](https://github.com/ReVanced/revanced-integrations/commit/6b00f90fb7561d59de59d76d43fff8c1d057dce6))
# [0.121.0](https://github.com/ReVanced/revanced-integrations/compare/v0.120.0...v0.121.0) (2023-11-04)
### Bug Fixes
* **YouTube - Client spoof:** Set the client version correctly ([f203731](https://github.com/ReVanced/revanced-integrations/commit/f2037316d36f99ef79ae5792e34d8616ecd31c80))
* **YouTube - Custom filter:** Fix app crash if invalid character is used in custom filter ([#506](https://github.com/ReVanced/revanced-integrations/issues/506)) ([debd0a2](https://github.com/ReVanced/revanced-integrations/commit/debd0a2e1101e543161390fd3ced6bda19030155))
* **YouTube - Disable suggested video end screen:** Hide the view once possible ([df27822](https://github.com/ReVanced/revanced-integrations/commit/df278222e8814612797e55e616d4ebc075cafb92))
* **YouTube - Player flyout menu:** Restore functionality ([#502](https://github.com/ReVanced/revanced-integrations/issues/502)) ([c048527](https://github.com/ReVanced/revanced-integrations/commit/c048527dc0bc6b1b3de9c451ca909aab7ad93d0f))
* **YouTube - ReturnYouTubeDislike:** Fix RYD prefetching home feed Shorts ([#508](https://github.com/ReVanced/revanced-integrations/issues/508)) ([98c91af](https://github.com/ReVanced/revanced-integrations/commit/98c91af130b57322aa98a3e66ec0acad26bfc7d6))
* **YouTube - ReturnYouTubeDislike:** Use API back off if client connection fails for any reason ([#509](https://github.com/ReVanced/revanced-integrations/issues/509)) ([40cfa1e](https://github.com/ReVanced/revanced-integrations/commit/40cfa1e9af2b064b464c4d03d5c28b5932621d62))
### Features
* **YouTube - Disable precise seeking gesture:** Use better patch name ([2453d30](https://github.com/ReVanced/revanced-integrations/commit/2453d30970ac59d78647386f4fe5d904dbc145e4))
* **YouTube - Hide layout components:** Hide video quality menu footer ([04608d3](https://github.com/ReVanced/revanced-integrations/commit/04608d32e88d184e4662a71498d7a49c1fbbdb25))
* **YouTube:** Add `Disable fullscreen ambient mode` patch ([bf50711](https://github.com/ReVanced/revanced-integrations/commit/bf5071107b8bc88ac6562d45bfa28bdab8e566c7))
* **YouTube:** Add `Disable suggested video end screen` patch ([6bd5aae](https://github.com/ReVanced/revanced-integrations/commit/6bd5aae9772e80809dbee9f8fffc1247364a9a13))
* **YouTube:** Add `Enable old seekbar thumbnails` patch ([75297a5](https://github.com/ReVanced/revanced-integrations/commit/75297a52c1c5f7c2b928964d08b055380f4a08fe))
### Reverts
* Revert "fix(YouTube - Minimized playback): Fix pip incorrectly showing for Short playback (#504)" ([c1c7e3b](https://github.com/ReVanced/revanced-integrations/commit/c1c7e3b5964394de6af39f6fb83d667eba174f0a)), closes [#504](https://github.com/ReVanced/revanced-integrations/issues/504)
# [0.121.0-dev.7](https://github.com/ReVanced/revanced-integrations/compare/v0.121.0-dev.6...v0.121.0-dev.7) (2023-11-03)
### Bug Fixes
* **YouTube - Player flyout menu:** Restore functionality ([#502](https://github.com/ReVanced/revanced-integrations/issues/502)) ([c048527](https://github.com/ReVanced/revanced-integrations/commit/c048527dc0bc6b1b3de9c451ca909aab7ad93d0f))
# [0.121.0-dev.6](https://github.com/ReVanced/revanced-integrations/compare/v0.121.0-dev.5...v0.121.0-dev.6) (2023-10-25)
### Bug Fixes
* **YouTube - Client spoof:** Set the client version correctly ([f203731](https://github.com/ReVanced/revanced-integrations/commit/f2037316d36f99ef79ae5792e34d8616ecd31c80))
# [0.121.0-dev.5](https://github.com/ReVanced/revanced-integrations/compare/v0.121.0-dev.4...v0.121.0-dev.5) (2023-10-25)
### Bug Fixes
* **YouTube - Disable suggested video end screen:** Hide the view once possible ([df27822](https://github.com/ReVanced/revanced-integrations/commit/df278222e8814612797e55e616d4ebc075cafb92))
### Features
* **YouTube - Disable precise seeking gesture:** Use better patch name ([2453d30](https://github.com/ReVanced/revanced-integrations/commit/2453d30970ac59d78647386f4fe5d904dbc145e4))
* **YouTube:** Add `Enable old seekbar thumbnails` patch ([75297a5](https://github.com/ReVanced/revanced-integrations/commit/75297a52c1c5f7c2b928964d08b055380f4a08fe))
# [0.121.0-dev.4](https://github.com/ReVanced/revanced-integrations/compare/v0.121.0-dev.3...v0.121.0-dev.4) (2023-10-25)
### Bug Fixes
* **YouTube - ReturnYouTubeDislike:** Use API back off if client connection fails for any reason ([#509](https://github.com/ReVanced/revanced-integrations/issues/509)) ([40cfa1e](https://github.com/ReVanced/revanced-integrations/commit/40cfa1e9af2b064b464c4d03d5c28b5932621d62))
# [0.121.0-dev.3](https://github.com/ReVanced/revanced-integrations/compare/v0.121.0-dev.2...v0.121.0-dev.3) (2023-10-24)
### Features
* **YouTube:** Add `Disable fullscreen ambient mode` patch ([bf50711](https://github.com/ReVanced/revanced-integrations/commit/bf5071107b8bc88ac6562d45bfa28bdab8e566c7))
* **YouTube:** Add `Disable suggested video end screen` patch ([6bd5aae](https://github.com/ReVanced/revanced-integrations/commit/6bd5aae9772e80809dbee9f8fffc1247364a9a13))
# [0.121.0-dev.2](https://github.com/ReVanced/revanced-integrations/compare/v0.121.0-dev.1...v0.121.0-dev.2) (2023-10-24)

View File

@@ -42,7 +42,7 @@ android {
dependencies {
compileOnly(project(mapOf("path" to ":dummy")))
compileOnly("androidx.annotation:annotation:1.6.0")
compileOnly("androidx.annotation:annotation:1.7.0")
compileOnly("androidx.appcompat:appcompat:1.7.0-alpha03")
compileOnly("com.squareup.okhttp3:okhttp:5.0.0-alpha.11")
compileOnly("com.squareup.retrofit2:retrofit:2.9.0")

View File

@@ -5,6 +5,10 @@ import android.view.WindowManager;
public class RemoveScreenshotRestrictionPatch {
public static void addFlags(Window window, int flags) {
window.addFlags(flags & ~WindowManager.LayoutParams.FLAG_SECURE);
}
public static void setFlags(Window window, int flags, int mask) {
window.setFlags(flags & ~WindowManager.LayoutParams.FLAG_SECURE, mask & ~WindowManager.LayoutParams.FLAG_SECURE);
}

View File

@@ -0,0 +1,10 @@
package app.revanced.integrations.patches;
import app.revanced.integrations.settings.SettingsEnum;
/** @noinspection unused*/
public final class DisableFullscreenAmbientModePatch {
public static boolean enableFullScreenAmbientMode() {
return !SettingsEnum.DISABLE_FULLSCREEN_AMBIENT_MODE.getBoolean();
}
}

View File

@@ -4,14 +4,14 @@ import android.view.MotionEvent;
import android.view.VelocityTracker;
import app.revanced.integrations.settings.SettingsEnum;
public final class DisableFineScrubbingGesturePatch {
public final class DisablePreciseSeekingGesturePatch {
/**
* Disables the fine scrubbing gesture.
* Disables the gesture that is used to seek precisely.
* @param tracker The velocity tracker that is used to determine the gesture.
* @param event The motion event that is used to determine the gesture.
*/
public static void disableGesture(VelocityTracker tracker, MotionEvent event) {
if (SettingsEnum.DISABLE_FINE_SCRUBBING_GESTURE.getBoolean()) return;
if (SettingsEnum.DISABLE_PRECISE_SEEKING_GESTURE.getBoolean()) return;
tracker.addMovement(event);
}

View File

@@ -0,0 +1,14 @@
package app.revanced.integrations.patches;
import app.revanced.integrations.settings.SettingsEnum;
/** @noinspection unused*/
public class DisableResumingStartupShortsPlayerPatch {
/**
* Injection point.
*/
public static boolean disableResumingStartupShortsPlayer() {
return SettingsEnum.DISABLE_RESUMING_SHORTS_PLAYER.getBoolean();
}
}

View File

@@ -0,0 +1,12 @@
package app.revanced.integrations.patches;
import app.revanced.integrations.settings.SettingsEnum;
public class DisableRollingNumberAnimationsPatch {
/**
* Injection point.
*/
public static boolean disableRollingNumberAnimations() {
return SettingsEnum.DISABLE_ROLLING_NUMBER_ANIMATIONS.getBoolean();
}
}

View File

@@ -1,10 +0,0 @@
package app.revanced.integrations.patches;
import app.revanced.integrations.settings.SettingsEnum;
public class DisableStartupShortsPlayerPatch {
//Used by app.revanced.patches.youtube.layout.startupshortsreset.patch.DisableShortsOnStartupPatch
public static boolean disableStartupShortsPlayer() {
return SettingsEnum.DISABLE_RESUMING_SHORTS_PLAYER.getBoolean();
}
}

View File

@@ -0,0 +1,30 @@
package app.revanced.integrations.patches;
import android.annotation.SuppressLint;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import app.revanced.integrations.settings.SettingsEnum;
/** @noinspection unused*/
public final class DisableSuggestedVideoEndScreenPatch {
@SuppressLint("StaticFieldLeak")
private static View lastView;
public static void closeEndScreen(final ImageView imageView) {
if (!SettingsEnum.DISABLE_SUGGESTED_VIDEO_END_SCREEN.getBoolean()) return;
// Get a parent view which can be listened to for layout changes.
final var parent = imageView.getParent().getParent();
// Prevent adding the listener multiple times.
if (lastView == parent) return;
lastView = (ViewGroup)parent;
lastView.addOnLayoutChangeListener((v, left, top, right, bottom, oldLeft, oldTop, oldRight, oldBottom) -> {
// Disable sound effects to prevent the click sound.
imageView.setSoundEffectsEnabled(false);
imageView.performClick();
});
}
}

View File

@@ -3,7 +3,9 @@ package app.revanced.integrations.patches;
import app.revanced.integrations.settings.SettingsEnum;
public final class EnableTabletLayoutPatch {
public static boolean enableTabletLayout() {
return SettingsEnum.TABLET_LAYOUT.getBoolean();
public static boolean enableTabletLayout(final boolean isTablet) {
if (SettingsEnum.TABLET_LAYOUT.getBoolean()) return true;
return isTablet;
}
}

View File

@@ -2,28 +2,27 @@ package app.revanced.integrations.patches;
import android.view.View;
import app.revanced.integrations.patches.spoof.SpoofAppVersionPatch;
import app.revanced.integrations.settings.SettingsEnum;
import app.revanced.integrations.utils.ReVancedUtils;
public class HideBreakingNewsPatch {
/**
* When spoofing to app versions older than 17.30.35, the watch history preview bar uses
* When spoofing to app versions 17.31.00 and older, the watch history preview bar uses
* the same layout components as the breaking news shelf.
*
* Breaking news does not appear to be present in these older versions anyways.
*/
private static boolean isSpoofingOldVersionWithHorizontalCardListWatchHistory() {
return SettingsEnum.SPOOF_APP_VERSION.getBoolean()
&& SettingsEnum.SPOOF_APP_VERSION_TARGET.getString().compareTo("17.30.35") < 0;
}
private static final boolean isSpoofingOldVersionWithHorizontalCardListWatchHistory =
SpoofAppVersionPatch.isSpoofingToEqualOrLessThan("17.31.00");
/**
* Injection point.
*/
public static void hideBreakingNews(View view) {
if (!SettingsEnum.HIDE_BREAKING_NEWS.getBoolean()
|| isSpoofingOldVersionWithHorizontalCardListWatchHistory()) return;
|| isSpoofingOldVersionWithHorizontalCardListWatchHistory) return;
ReVancedUtils.hideViewByLayoutParams(view);
}
}

View File

@@ -0,0 +1,16 @@
package app.revanced.integrations.patches;
import app.revanced.integrations.settings.SettingsEnum;
public final class RemoveTrackingQueryParameterPatch {
private static final String NEW_TRACKING_PARAMETER_REGEX = ".si=.+";
private static final String OLD_TRACKING_PARAMETER_REGEX = ".feature=.+";
public static String sanitize(String url) {
if (!SettingsEnum.REMOVE_TRACKING_QUERY_PARAMETER.getBoolean()) return url;
return url
.replaceAll(NEW_TRACKING_PARAMETER_REGEX, "")
.replaceAll(OLD_TRACKING_PARAMETER_REGEX, "");
}
}

View File

@@ -0,0 +1,10 @@
package app.revanced.integrations.patches;
import app.revanced.integrations.settings.SettingsEnum;
@SuppressWarnings("unused")
public final class RestoreOldSeekbarThumbnailsPatch {
public static boolean useFullscreenSeekbarThumbnails() {
return !SettingsEnum.RESTORE_OLD_SEEKBAR_THUMBNAILS.getBoolean();
}
}

View File

@@ -0,0 +1,9 @@
package app.revanced.integrations.patches;
import app.revanced.integrations.settings.SettingsEnum;
public final class SlideToSeekPatch {
public static boolean isSlideToSeekDisabled() {
return !SettingsEnum.SLIDE_TO_SEEK.getBoolean();
}
}

View File

@@ -0,0 +1,69 @@
package app.revanced.integrations.patches.components;
import androidx.annotation.Nullable;
import app.revanced.integrations.settings.SettingsEnum;
import app.revanced.integrations.utils.StringTrieSearch;
final class DescriptionComponentsFilter extends Filter {
private final StringTrieSearch exceptions = new StringTrieSearch();
public DescriptionComponentsFilter() {
exceptions.addPatterns(
"compact_channel",
"description",
"grid_video",
"inline_expander",
"metadata"
);
final StringFilterGroup chapterSection = new StringFilterGroup(
SettingsEnum.HIDE_CHAPTERS,
"macro_markers_carousel"
);
final StringFilterGroup infoCardsSection = new StringFilterGroup(
SettingsEnum.HIDE_INFO_CARDS_SECTION,
"infocards_section"
);
final StringFilterGroup gameSection = new StringFilterGroup(
SettingsEnum.HIDE_GAME_SECTION,
"gaming_section"
);
final StringFilterGroup musicSection = new StringFilterGroup(
SettingsEnum.HIDE_MUSIC_SECTION,
"music_section",
"video_attributes_section"
);
final StringFilterGroup podcastSection = new StringFilterGroup(
SettingsEnum.HIDE_PODCAST_SECTION,
"playlist_section"
);
final StringFilterGroup transcriptSection = new StringFilterGroup(
SettingsEnum.HIDE_TRANSCIPT_SECTION,
"transcript_section"
);
pathFilterGroupList.addAll(
chapterSection,
infoCardsSection,
gameSection,
musicSection,
podcastSection,
transcriptSection
);
}
@Override
boolean isFiltered(@Nullable String identifier, String path, byte[] protobufBufferArray,
FilterGroupList matchedList, FilterGroup matchedGroup, int matchedIndex) {
if (exceptions.matches(path)) return false;
return super.isFiltered(path, identifier, protobufBufferArray, matchedList, matchedGroup, matchedIndex);
}
}

View File

@@ -2,10 +2,8 @@ package app.revanced.integrations.patches.components;
import android.os.Build;
import androidx.annotation.Nullable;
import androidx.annotation.RequiresApi;
import app.revanced.integrations.settings.SettingsEnum;
import app.revanced.integrations.utils.LogHelper;
import app.revanced.integrations.utils.StringTrieSearch;
@@ -13,6 +11,9 @@ import app.revanced.integrations.utils.StringTrieSearch;
@RequiresApi(api = Build.VERSION_CODES.N)
public final class LayoutComponentsFilter extends Filter {
private final StringTrieSearch exceptions = new StringTrieSearch();
private static final StringTrieSearch mixPlaylistsExceptions = new StringTrieSearch();
private static ByteArrayAsStringFilterGroup mixPlaylistsExceptions2;
private final CustomFilterGroup custom;
private static final ByteArrayAsStringFilterGroup mixPlaylists = new ByteArrayAsStringFilterGroup(
@@ -34,6 +35,16 @@ public final class LayoutComponentsFilter extends Filter {
"library_recent_shelf"
);
mixPlaylistsExceptions.addPatterns(
"V.ED", // Playlist browse id.
"java.lang.ref.WeakReference"
);
mixPlaylistsExceptions2 = new ByteArrayAsStringFilterGroup(
null,
"cell_description_body"
);
custom = new CustomFilterGroup(
SettingsEnum.CUSTOM_FILTER,
SettingsEnum.CUSTOM_FILTER_STRINGS
@@ -125,11 +136,6 @@ public final class LayoutComponentsFilter extends Filter {
"quality_sheet_footer"
);
final var chapters = new StringFilterGroup(
SettingsEnum.HIDE_CHAPTERS,
"macro_markers_carousel"
);
final var channelBar = new StringFilterGroup(
SettingsEnum.HIDE_CHANNEL_BAR,
"channel_bar"
@@ -215,8 +221,7 @@ public final class LayoutComponentsFilter extends Filter {
this.identifierFilterGroupList.addAll(
graySeparator,
chipsShelf,
chapters
chipsShelf
);
}
@@ -238,18 +243,28 @@ public final class LayoutComponentsFilter extends Filter {
return super.isFiltered(identifier, path, protobufBufferArray, matchedList, matchedGroup, matchedIndex);
}
/**
* Injection point.
* Called from a different place then the other filters.
*/
public static boolean filterMixPlaylists(final byte[] bytes) {
final boolean isMixPlaylistFiltered = mixPlaylists.check(bytes).isFiltered();
public static boolean filterMixPlaylists(final Object conversionContext, @Nullable final byte[] bytes) {
if (bytes == null) {
LogHelper.printDebug(() -> "bytes is null");
return false;
}
if (isMixPlaylistFiltered)
LogHelper.printDebug(() -> "Filtered mix playlist");
// Prevent playlist items being hidden, if a mix playlist is present in it.
if (mixPlaylistsExceptions.matches(conversionContext.toString()))
return false;
if (!mixPlaylists.check(bytes).isFiltered()) return false;
// Prevent hiding the description of some videos accidentally.
if (mixPlaylistsExceptions2.check(bytes).isFiltered()) return false;
LogHelper.printDebug(() -> "Filtered mix playlist");
return true;
return isMixPlaylistFiltered;
}
public static boolean showWatermark() {

View File

@@ -490,9 +490,15 @@ public final class LithoFilterPatch {
ByteBuffer protobufBuffer = bufferThreadLocal.get();
if (protobufBuffer == null) {
LogHelper.printException(() -> "Proto buffer is null"); // Should never happen
LogHelper.printException(() -> "Proto buffer is null"); // Should never happen.
return false;
}
if (!protobufBuffer.hasArray()) {
LogHelper.printDebug(() -> "Proto buffer does not have an array");
return false;
}
LithoFilterParameters parameter = new LithoFilterParameters(lithoIdentifier, pathBuilder, protobufBuffer);
LogHelper.printDebug(() -> "Searching " + parameter);

View File

@@ -2,7 +2,11 @@ package app.revanced.integrations.patches.components;
import androidx.annotation.Nullable;
// Abuse LithoFilter for CustomPlaybackSpeedPatch.
import app.revanced.integrations.patches.playback.speed.CustomPlaybackSpeedPatch;
/**
* Abuse LithoFilter for {@link CustomPlaybackSpeedPatch}.
*/
public final class PlaybackSpeedMenuFilterPatch extends Filter {
// Must be volatile or synchronized, as litho filtering runs off main thread and this field is then access from the main thread.
public static volatile boolean isPlaybackSpeedMenuVisible;

View File

@@ -6,26 +6,38 @@ import androidx.annotation.Nullable;
import androidx.annotation.RequiresApi;
import app.revanced.integrations.settings.SettingsEnum;
import app.revanced.integrations.shared.PlayerType;
public class PlayerFlyoutMenuItemsFilter extends Filter {
// Search the buffer only if the flyout menu identifier is found.
// Search the buffer only if the flyout menu path is found.
// Handle the searching in this class instead of adding to the global filter group (which searches all the time)
private final ByteArrayFilterGroupList flyoutFilterGroupList = new ByteArrayFilterGroupList();
private final ByteArrayFilterGroup exception;
@RequiresApi(api = Build.VERSION_CODES.N)
public PlayerFlyoutMenuItemsFilter() {
identifierFilterGroupList.addAll(new StringFilterGroup(null, "overflow_menu_item.eml|"));
exception = new ByteArrayAsStringFilterGroup(
// Whitelist Quality menu item when "Hide Additional settings menu" is enabled
SettingsEnum.HIDE_ADDITIONAL_SETTINGS_MENU,
"quality_sheet"
);
// Using pathFilterGroupList due to new flyout panel(A/B)
pathFilterGroupList.addAll(
new StringFilterGroup(null, "overflow_menu_item.eml|")
);
flyoutFilterGroupList.addAll(
new ByteArrayAsStringFilterGroup(
SettingsEnum.HIDE_QUALITY_MENU,
"yt_outline_gear"
),
new ByteArrayAsStringFilterGroup(
SettingsEnum.HIDE_CAPTIONS_MENU,
"closed_caption"
),
new ByteArrayAsStringFilterGroup(
SettingsEnum.HIDE_ADDITIONAL_SETTINGS_MENU,
"yt_outline_gear"
),
new ByteArrayAsStringFilterGroup(
SettingsEnum.HIDE_LOOP_VIDEO_MENU,
"yt_outline_arrow_repeat_1_"
@@ -64,6 +76,10 @@ public class PlayerFlyoutMenuItemsFilter extends Filter {
@Override
boolean isFiltered(@Nullable String identifier, String path, byte[] protobufBufferArray,
FilterGroupList matchedList, FilterGroup matchedGroup, int matchedIndex) {
// Shorts also use this player flyout panel
if (PlayerType.getCurrent().isNoneOrHidden() || exception.check(protobufBufferArray).isFiltered())
return false;
// Only 1 group is added to the parent class, so the matched group must be the overflow menu.
if (matchedIndex == 0 && flyoutFilterGroupList.check(protobufBufferArray).isFiltered()) {
// Super class handles logging.

View File

@@ -93,7 +93,7 @@ public final class ReturnYouTubeDislikeFilterPatch extends Filter {
// Must pass a null id to correctly clear out the current video data.
// Otherwise if a Short is opened in non-incognito, then incognito is enabled and another Short is opened,
// the new incognito Short will show the old prior data.
ReturnYouTubeDislikePatch.newVideoLoaded(matchedVideoId, true);
ReturnYouTubeDislikePatch.setLastLithoShortsVideoId(matchedVideoId);
}
return false;

View File

@@ -2,16 +2,19 @@ package app.revanced.integrations.patches.components;
import androidx.annotation.Nullable;
import app.revanced.integrations.patches.playback.quality.RestoreOldVideoQualityMenuPatch;
import app.revanced.integrations.settings.SettingsEnum;
// Abuse LithoFilter for OldVideoQualityMenuPatch.
/**
* Abuse LithoFilter for {@link RestoreOldVideoQualityMenuPatch}.
*/
public final class VideoQualityMenuFilterPatch extends Filter {
// Must be volatile or synchronized, as litho filtering runs off main thread and this field is then access from the main thread.
public static volatile boolean isVideoQualityMenuVisible;
public VideoQualityMenuFilterPatch() {
pathFilterGroupList.addAll(new StringFilterGroup(
SettingsEnum.SHOW_OLD_VIDEO_QUALITY_MENU,
SettingsEnum.RESTORE_OLD_VIDEO_QUALITY_MENU,
"quick_quality_sheet_content.eml-js"
));
}

View File

@@ -14,13 +14,14 @@ import app.revanced.integrations.utils.LogHelper;
* Two methods are required, because the quality menu is a RecyclerView in the new YouTube version
* and a ListView in the old one.
*/
public final class OldVideoQualityMenuPatch {
@SuppressWarnings("unused")
public final class RestoreOldVideoQualityMenuPatch {
/**
* Injection point.
*/
public static void onFlyoutMenuCreate(RecyclerView recyclerView) {
if (!SettingsEnum.SHOW_OLD_VIDEO_QUALITY_MENU.getBoolean()) return;
if (!SettingsEnum.RESTORE_OLD_VIDEO_QUALITY_MENU.getBoolean()) return;
recyclerView.getViewTreeObserver().addOnDrawListener(() -> {
try {
@@ -32,6 +33,7 @@ public final class OldVideoQualityMenuPatch {
View advancedQualityView = ((ViewGroup) recyclerView.getChildAt(0)).getChildAt(3);
if (advancedQualityView != null) {
// Click the "Advanced" quality menu to show the "old" quality menu.
advancedQualityView.setSoundEffectsEnabled(false);
advancedQualityView.performClick();
}
}
@@ -45,7 +47,7 @@ public final class OldVideoQualityMenuPatch {
* Injection point. Only used if spoofing to an old app version.
*/
public static void showOldVideoQualityMenu(final ListView listView) {
if (!SettingsEnum.SHOW_OLD_VIDEO_QUALITY_MENU.getBoolean()) return;
if (!SettingsEnum.RESTORE_OLD_VIDEO_QUALITY_MENU.getBoolean()) return;
listView.setOnHierarchyChangeListener(new ViewGroup.OnHierarchyChangeListener() {
@Override

View File

@@ -4,28 +4,34 @@ import android.preference.ListPreference;
import android.support.v7.widget.RecyclerView;
import android.view.View;
import android.view.ViewGroup;
import androidx.annotation.NonNull;
import java.util.Arrays;
import app.revanced.integrations.patches.components.PlaybackSpeedMenuFilterPatch;
import app.revanced.integrations.settings.SettingsEnum;
import app.revanced.integrations.utils.LogHelper;
import app.revanced.integrations.utils.ReVancedUtils;
import java.util.Arrays;
public class CustomPlaybackSpeedPatch {
/**
* Maximum playback speed, exclusive value. Custom speeds must be less than this value.
* Limit is required otherwise double digit speeds show up out of order in the UI selector.
*
* 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.
*/
public static final float MAXIMUM_PLAYBACK_SPEED = 10;
public static final float MAXIMUM_PLAYBACK_SPEED = 8;
/**
* Custom playback speeds.
*/
public static float[] customPlaybackSpeeds;
/**
* The last time the old playback menu was forcefully called.
*/
private static long lastTimeOldPlaybackMenuInvoked;
/**
* PreferenceList entries and values, of all available playback speeds.
*/
@@ -103,33 +109,48 @@ public class CustomPlaybackSpeedPatch {
// For some reason, the custom playback speed flyout panel is activated when the user opens the share panel. (A/B tests)
// Check the child count of playback speed flyout panel to prevent this issue.
// Child count of playback speed flyout panel is always 8.
if (PlaybackSpeedMenuFilterPatch.isPlaybackSpeedMenuVisible
&& ((ViewGroup) recyclerView.getChildAt(0)).getChildCount() == 8) {
PlaybackSpeedMenuFilterPatch.isPlaybackSpeedMenuVisible = false;
ViewGroup parentView3rd = (ViewGroup) recyclerView.getParent().getParent().getParent();
ViewGroup parentView4th = (ViewGroup) parentView3rd.getParent();
// Dismiss View [R.id.touch_outside] is the 1st ChildView of the 4th ParentView.
// This only shows in phone layout.
parentView4th.getChildAt(0).performClick();
// In tablet layout there is no Dismiss View, instead we just hide all two parent views.
parentView3rd.setVisibility(View.GONE);
parentView4th.setVisibility(View.GONE);
// This works without issues for both tablet and phone layouts,
// So no code is needed to check whether the current device is a tablet or phone.
// Close the new Playback speed menu and show the old one.
showOldPlaybackSpeedMenu();
if (!PlaybackSpeedMenuFilterPatch.isPlaybackSpeedMenuVisible || recyclerView.getChildCount() == 0) {
return;
}
ViewGroup PlaybackSpeedParentView = (ViewGroup) recyclerView.getChildAt(0);
if (PlaybackSpeedParentView == null || PlaybackSpeedParentView.getChildCount() != 8) {
return;
}
PlaybackSpeedMenuFilterPatch.isPlaybackSpeedMenuVisible = false;
ViewGroup parentView3rd = (ViewGroup) recyclerView.getParent().getParent().getParent();
ViewGroup parentView4th = (ViewGroup) parentView3rd.getParent();
// Dismiss View [R.id.touch_outside] is the 1st ChildView of the 4th ParentView.
// This only shows in phone layout.
final var touchInsidedView = parentView4th.getChildAt(0);
touchInsidedView.setSoundEffectsEnabled(false);
touchInsidedView.performClick();
// In tablet layout there is no Dismiss View, instead we just hide all two parent views.
parentView3rd.setVisibility(View.GONE);
parentView4th.setVisibility(View.GONE);
// This works without issues for both tablet and phone layouts,
// So no code is needed to check whether the current device is a tablet or phone.
// Close the new Playback speed menu and show the old one.
showOldPlaybackSpeedMenu();
} catch (Exception ex) {
LogHelper.printException(() -> "onFlyoutMenuCreate failure", ex);
}
});
}
public static void showOldPlaybackSpeedMenu() {
private static void showOldPlaybackSpeedMenu() {
// This method is sometimes used multiple times.
// To prevent this, ignore method reuse within 1 second.
final long now = System.currentTimeMillis();
if (now - lastTimeOldPlaybackMenuInvoked < 1000) {
LogHelper.printDebug(() -> "Ignoring call to showOldPlaybackSpeedMenu");
return;
}
lastTimeOldPlaybackMenuInvoked = now;
LogHelper.printDebug(() -> "Old video quality menu shown");
// Rest of the implementation added by patch.

Some files were not shown because too many files have changed in this diff Show More