1
mirror of https://github.com/revanced/revanced-integrations synced 2025-11-19 03:23:27 +01:00

Compare commits

...

314 Commits

Author SHA1 Message Date
semantic-release-bot
a87e366035 chore(release): 0.77.0 [skip ci]
# [0.77.0](https://github.com/revanced/revanced-integrations/compare/v0.76.0...v0.77.0) (2022-11-24)

### Bug Fixes

* invalid syntax error ([d4a23ed](d4a23ed5c9))

### Features

* **youtube/general-ads:** hide movie ad from search ([767201c](767201ce05))
2022-11-24 16:10:29 +00:00
oSumAtrIX
d4a23ed5c9 fix: invalid syntax error 2022-11-24 17:06:53 +01:00
oSumAtrIX
767201ce05 feat(youtube/general-ads): hide movie ad from search 2022-11-24 16:45:25 +01:00
semantic-release-bot
64cfe9c579 chore(release): 0.76.0 [skip ci]
# [0.76.0](https://github.com/revanced/revanced-integrations/compare/v0.75.0...v0.76.0) (2022-11-22)

### Bug Fixes

* **youtube/general-ads:** hide reels shelf ([1f48749](1f48749958))
* **youtube/general-ads:** make restarting mandatory when toggling shorts ([25978ae](25978ae4a4))

### Features

* **youtube/debugging:** do not require restarting on toggle ([ee1f895](ee1f895e87))
2022-11-22 22:46:21 +00:00
oSumAtrIX
25978ae4a4 fix(youtube/general-ads): make restarting mandatory when toggling shorts 2022-11-22 23:41:41 +01:00
oSumAtrIX
1f48749958 fix(youtube/general-ads): hide reels shelf 2022-11-22 23:40:36 +01:00
oSumAtrIX
ee1f895e87 feat(youtube/debugging): do not require restarting on toggle 2022-11-22 19:45:16 +01:00
semantic-release-bot
645669bbc0 chore(release): 0.75.0 [skip ci]
# [0.75.0](https://github.com/revanced/revanced-integrations/compare/v0.74.1...v0.75.0) (2022-11-21)

### Features

* **twitch:** integrations code for patches ([#216](https://github.com/revanced/revanced-integrations/issues/216)) ([d4c3b74](d4c3b74a9a))
2022-11-21 21:57:35 +00:00
Tim Schneeberger
d4c3b74a9a feat(twitch): integrations code for patches (#216)
Co-authored-by: oSumAtrIX <johan.melkonyan1@web.de>
2022-11-21 22:53:12 +01:00
semantic-release-bot
24367cea3f chore(release): 0.74.1 [skip ci]
## [0.74.1](https://github.com/revanced/revanced-integrations/compare/v0.74.0...v0.74.1) (2022-11-20)

### Bug Fixes

* **youtube/general-ads:** hide bytecode home ad view ([c3e88c7](c3e88c79e9))
2022-11-20 23:30:14 +00:00
oSumAtrIX
1e3970c3f2 refactor(youtube/general-ads): remove comment 2022-11-21 00:25:42 +01:00
oSumAtrIX
c3e88c79e9 fix(youtube/general-ads): hide bytecode home ad view 2022-11-21 00:25:41 +01:00
oSumAtrIX
b8f0e632c1 refactor(youtube/litho-filter): move classes to their respective file 2022-11-21 00:25:41 +01:00
semantic-release-bot
c0c778b3e6 chore(release): 0.74.0 [skip ci]
# [0.74.0](https://github.com/revanced/revanced-integrations/compare/v0.73.0...v0.74.0) (2022-11-20)

### Features

* **youtube:** `disable-zoom-haptics` patch ([#217](https://github.com/revanced/revanced-integrations/issues/217)) ([fe74f6d](fe74f6d8a6))
2022-11-20 14:05:44 +00:00
aliernfrog
fe74f6d8a6 feat(youtube): disable-zoom-haptics patch (#217) 2022-11-20 15:02:08 +01:00
semantic-release-bot
5f1e35ae36 chore(release): 0.73.0 [skip ci]
# [0.73.0](https://github.com/revanced/revanced-integrations/compare/v0.72.0...v0.73.0) (2022-11-20)

### Features

* **youtube/general-ads:** block the separator by its identifier ([6ceff7c](6ceff7c9b3))
2022-11-20 01:53:33 +00:00
oSumAtrIX
6ceff7c9b3 feat(youtube/general-ads): block the separator by its identifier 2022-11-20 02:49:14 +01:00
semantic-release-bot
d9349d4e88 chore(release): 0.72.0 [skip ci]
# [0.72.0](https://github.com/revanced/revanced-integrations/compare/v0.71.0...v0.72.0) (2022-11-19)

### Bug Fixes

* check if filter string is empty ([6604030](66040302a9))
* **youtube/general-ads:** hide ads with buttons ([2c8b234](2c8b23426f))

### Features

* block rule of type `CustomBlockRule` ([571cf12](571cf12dca))
* **youtube/general-ads:** custom component filter ([72a3cd0](72a3cd0fac))
* **youtube/general-ads:** do not require to reload on general ads switch ([6272e4b](6272e4b467))
* **youtube/general-ads:** hide gray separators ([cf892de](cf892de4bb))
2022-11-19 22:36:35 +00:00
oSumAtrIX
b59ee31d57 refactor(youtube/general-ads): restructure class GeneralAdsPatch 2022-11-19 23:32:33 +01:00
oSumAtrIX
2c8b23426f fix(youtube/general-ads): hide ads with buttons 2022-11-19 23:30:48 +01:00
oSumAtrIX
72a3cd0fac feat(youtube/general-ads): custom component filter 2022-11-19 23:30:01 +01:00
oSumAtrIX
6272e4b467 feat(youtube/general-ads): do not require to reload on general ads switch 2022-11-19 23:29:09 +01:00
oSumAtrIX
cf892de4bb feat(youtube/general-ads): hide gray separators 2022-11-19 23:28:45 +01:00
oSumAtrIX
e978ed2c14 refactor: move Extensions.any to BlockRule.contains 2022-11-19 23:25:58 +01:00
oSumAtrIX
570f9eaba1 refactor: protect fields of Filter 2022-11-19 23:25:14 +01:00
oSumAtrIX
571cf12dca feat: block rule of type CustomBlockRule 2022-11-19 23:24:25 +01:00
oSumAtrIX
09c7605f1f refactor: omit unnecessary String.valueOf call 2022-11-19 23:23:09 +01:00
oSumAtrIX
66040302a9 fix: check if filter string is empty 2022-11-19 23:22:34 +01:00
oSumAtrIX
98b31c17b9 refactor(youtube/general-ads): remove unused imports 2022-11-19 22:41:30 +01:00
oSumAtrIX
c517c03e6f refactor(youtube/general-ads): remove unused class 2022-11-18 02:37:38 +01:00
semantic-release-bot
f10b202c93 chore(release): 0.71.0 [skip ci]
# [0.71.0](https://github.com/revanced/revanced-integrations/compare/v0.70.0...v0.71.0) (2022-11-15)

### Bug Fixes

* **youtube/general-ads:** do not force to restart on general ads switches ([0a90289](0a90289dc5))

### Features

* **youtube/general-ads:** hide chapter teaser under videos ([3fb337b](3fb337b856))
* **youtube/general-ads:** hide shorts in search ([d82b989](d82b9898a8))
2022-11-15 01:39:12 +00:00
oSumAtrIX
3fb337b856 feat(youtube/general-ads): hide chapter teaser under videos 2022-11-15 02:35:05 +01:00
oSumAtrIX
d82b9898a8 feat(youtube/general-ads): hide shorts in search 2022-11-15 02:35:05 +01:00
oSumAtrIX
0a90289dc5 fix(youtube/general-ads): do not force to restart on general ads switches 2022-11-15 02:35:04 +01:00
semantic-release-bot
dfd6e7fcce chore(release): 0.70.0 [skip ci]
# [0.70.0](https://github.com/revanced/revanced-integrations/compare/v0.69.2...v0.70.0) (2022-11-14)

### Bug Fixes

* **youtube/general-ads:** do not force to restart on general ads switches ([7f18520](7f18520646))

### Features

* **youtube/general-ads:** hide self sponsored cards ([e93ce3e](e93ce3eaa9))
2022-11-14 23:59:04 +00:00
oSumAtrIX
e93ce3eaa9 feat(youtube/general-ads): hide self sponsored cards 2022-11-15 00:53:12 +01:00
oSumAtrIX
695c59efd4 refactor(youtube): properly separate litho filter patches 2022-11-15 00:46:12 +01:00
oSumAtrIX
22bc4405cf refactor(youtube/general-ads): reformat code 2022-11-15 00:27:22 +01:00
oSumAtrIX
63ee425050 refactor(youtube/general-ads): remove unused setting 2022-11-15 00:27:01 +01:00
oSumAtrIX
7f18520646 fix(youtube/general-ads): do not force to restart on general ads switches 2022-11-15 00:26:41 +01:00
semantic-release-bot
d18bc1856b chore(release): 0.69.2 [skip ci]
## [0.69.2](https://github.com/revanced/revanced-integrations/compare/v0.69.1...v0.69.2) (2022-11-14)

### Bug Fixes

* **youtube/general-ads-patch:** revert reducing filter exclusions ([af86dd8](af86dd8ec6))
2022-11-14 21:05:21 +00:00
oSumAtrIX
af86dd8ec6 fix(youtube/general-ads-patch): revert reducing filter exclusions 2022-11-14 22:00:45 +01:00
semantic-release-bot
2ebadaf07f chore(release): 0.69.1 [skip ci]
## [0.69.1](https://github.com/revanced/revanced-integrations/compare/v0.69.0...v0.69.1) (2022-11-14)

### Bug Fixes

* **youtube/theme:** revert comment box background color hook ([#210](https://github.com/revanced/revanced-integrations/issues/210)) ([197f003](197f0034a1))
2022-11-14 15:13:51 +00:00
oSumAtrIX
197f0034a1 fix(youtube/theme): revert comment box background color hook (#210)
This reverts commit f8cb38e57a.
2022-11-14 16:10:15 +01:00
semantic-release-bot
06c5a9b2b8 chore(release): 0.69.0 [skip ci]
# [0.69.0](https://github.com/revanced/revanced-integrations/compare/v0.68.3...v0.69.0) (2022-11-14)

### Features

* **youtube/theme:** color explore drawer background ([#203](https://github.com/revanced/revanced-integrations/issues/203)) ([cb40408](cb404086ad))
2022-11-14 14:56:06 +00:00
OxrxL
cb404086ad feat(youtube/theme): color explore drawer background (#203)
Co-authored-by: oSumAtrIX <johan.melkonyan1@web.de>
2022-11-14 15:51:51 +01:00
semantic-release-bot
18192ac73e chore(release): 0.68.3 [skip ci]
## [0.68.3](https://github.com/revanced/revanced-integrations/compare/v0.68.2...v0.68.3) (2022-11-13)

### Bug Fixes

* **youtube/general-ads-patch:** exclude playlists wrapper from filtering ([#206](https://github.com/revanced/revanced-integrations/issues/206)) ([e357ac6](e357ac664b))
2022-11-13 22:20:39 +00:00
OxrxL
e357ac664b fix(youtube/general-ads-patch): exclude playlists wrapper from filtering (#206) 2022-11-13 23:17:00 +01:00
semantic-release-bot
2f2a595c89 chore(release): 0.68.2 [skip ci]
## [0.68.2](https://github.com/revanced/revanced-integrations/compare/v0.68.1...v0.68.2) (2022-11-13)

### Performance Improvements

* **youtube/general-ads-patch:** reduce amount of components to filter ([#204](https://github.com/revanced/revanced-integrations/issues/204)) ([502feaf](502feaf444))
2022-11-13 19:19:12 +00:00
OxrxL
502feaf444 perf(youtube/general-ads-patch): reduce amount of components to filter (#204) 2022-11-13 20:15:49 +01:00
semantic-release-bot
b4e03412ee chore(release): 0.68.1 [skip ci]
## [0.68.1](https://github.com/revanced/revanced-integrations/compare/v0.68.0...v0.68.1) (2022-11-13)

### Bug Fixes

* **youtube/theme:** return correct color value ([#202](https://github.com/revanced/revanced-integrations/issues/202)) ([f8cb38e](f8cb38e57a))
2022-11-13 03:50:43 +00:00
OxrxL
f8cb38e57a fix(youtube/theme): return correct color value (#202) 2022-11-13 04:46:57 +01:00
semantic-release-bot
9e5e81875a chore(release): 0.68.0 [skip ci]
# [0.68.0](https://github.com/revanced/revanced-integrations/compare/v0.67.2...v0.68.0) (2022-11-09)

### Features

* **youtube:** `open-links-directly` patch ([#201](https://github.com/revanced/revanced-integrations/issues/201)) ([c3c1656](c3c16563ea))
2022-11-09 20:46:31 +00:00
johnconner122
c3c16563ea feat(youtube): open-links-directly patch (#201) 2022-11-09 21:42:24 +01:00
semantic-release-bot
302b57d8f0 chore(release): 0.67.2 [skip ci]
## [0.67.2](https://github.com/revanced/revanced-integrations/compare/v0.67.1...v0.67.2) (2022-11-08)

### Bug Fixes

* **youtube/hide-endscreen-cards:** restore functionality ([#200](https://github.com/revanced/revanced-integrations/issues/200)) ([d866558](d86655874b))
2022-11-08 17:11:07 +00:00
OxrxL
d86655874b fix(youtube/hide-endscreen-cards): restore functionality (#200)
Co-authored-by: oSumAtrIX <johan.melkonyan1@web.de>
2022-11-08 18:07:30 +01:00
semantic-release-bot
cc2bab4e39 chore(release): 0.67.1 [skip ci]
## [0.67.1](https://github.com/revanced/revanced-integrations/compare/v0.67.0...v0.67.1) (2022-11-07)

### Bug Fixes

* **youtube/hide-info-cards:** remove initial popup of info-cards ([#199](https://github.com/revanced/revanced-integrations/issues/199)) ([85971bc](85971bcd5e))
2022-11-07 23:15:52 +00:00
OxrxL
85971bcd5e fix(youtube/hide-info-cards): remove initial popup of info-cards (#199)
Co-authored-by: oSumAtrIX <johan.melkonyan1@web.de>
2022-11-08 00:11:49 +01:00
semantic-release-bot
f475c28f3d chore(release): 0.67.0 [skip ci]
# [0.67.0](https://github.com/revanced/revanced-integrations/compare/v0.66.0...v0.67.0) (2022-11-05)

### Bug Fixes

* **fix-playback:** seek to maximum end ([fd69010](fd69010def))
* remove left over not existing code references ([ac81695](ac81695747))

### Features

* **video-information:** hook video time ([6aa0ca9](6aa0ca9556))
2022-11-05 23:04:19 +00:00
oSumAtrIX
ac81695747 fix: remove left over not existing code references 2022-11-06 00:00:54 +01:00
Nico Mexis
3427f885fb build: update workflow actions (#198) [skip ci] 2022-11-05 15:25:38 +01:00
oSumAtrIX
9bdac3356d refactor: move classes to correct packages & name them properly 2022-11-05 06:25:19 +01:00
oSumAtrIX
fd69010def fix(fix-playback): seek to maximum end 2022-11-05 06:24:32 +01:00
oSumAtrIX
6aa0ca9556 feat(video-information): hook video time 2022-11-05 06:24:07 +01:00
oSumAtrIX
98eaf9c3f2 refactor: remove unused classes 2022-11-05 03:19:09 +01:00
oSumAtrIX
8e36da0b19 refactor(youtube/general-ads): fix settings enum name 2022-11-05 02:53:33 +01:00
semantic-release-bot
1433b34c7e chore(release): 0.66.0 [skip ci]
# [0.66.0](https://github.com/revanced/revanced-integrations/compare/v0.65.0...v0.66.0) (2022-11-01)

### Features

* **youtube:** bump patches compatibility to v17.43.36 ([#194](https://github.com/revanced/revanced-integrations/issues/194)) ([6da66be](6da66be067))
2022-11-01 17:47:41 +00:00
OxrxL
6da66be067 feat(youtube): bump patches compatibility to v17.43.36 (#194) 2022-11-01 18:44:13 +01:00
semantic-release-bot
b5a93a0cd9 chore(release): 0.65.0 [skip ci]
# [0.65.0](https://github.com/revanced/revanced-integrations/compare/v0.64.1...v0.65.0) (2022-11-01)

### Features

* **youtube/fix-playback:** check faster for video length ([ac69b36](ac69b36773))
2022-11-01 06:32:11 +00:00
oSumAtrIX
ac69b36773 feat(youtube/fix-playback): check faster for video length 2022-11-01 07:28:34 +01:00
semantic-release-bot
81d3afd065 chore(release): 0.64.1 [skip ci]
## [0.64.1](https://github.com/revanced/revanced-integrations/compare/v0.64.0...v0.64.1) (2022-11-01)

### Bug Fixes

* **youtube/video-ads:** add switch to temporarily fix buffering issues ([8b4bed8](8b4bed8ab3))
2022-11-01 06:14:56 +00:00
oSumAtrIX
8b4bed8ab3 fix(youtube/video-ads): add switch to temporarily fix buffering issues 2022-11-01 07:11:14 +01:00
semantic-release-bot
b13d692ef1 chore(release): 0.64.0 [skip ci]
# [0.64.0](https://github.com/revanced/revanced-integrations/compare/v0.63.1...v0.64.0) (2022-10-30)

### Features

* `hide-watch-in-vr` patch ([#191](https://github.com/revanced/revanced-integrations/issues/191)) ([fb20ae1](fb20ae19e8))
2022-10-30 12:05:49 +00:00
inotia00
fb20ae19e8 feat: hide-watch-in-vr patch (#191) 2022-10-30 13:02:22 +01:00
semantic-release-bot
889a7d8460 chore(release): 0.63.1 [skip ci]
## [0.63.1](https://github.com/revanced/revanced-integrations/compare/v0.63.0...v0.63.1) (2022-10-30)

### Bug Fixes

* **youtube/general-ads-patch:** `BlockRule` for comments on old and new layout ([#192](https://github.com/revanced/revanced-integrations/issues/192)) ([d28d657](d28d65734e))
2022-10-30 11:56:02 +00:00
OxrxL
d28d65734e fix(youtube/general-ads-patch): BlockRule for comments on old and new layout (#192)
Co-authored-by: oSumAtrIX <johan.melkonyan1@web.de>
2022-10-30 12:51:41 +01:00
semantic-release-bot
1c021b1a50 chore(release): 0.63.0 [skip ci]
# [0.63.0](https://github.com/revanced/revanced-integrations/compare/v0.62.0...v0.63.0) (2022-10-29)

### Features

* **youtube/sponsorblock:** skip segments once automatically ([#190](https://github.com/revanced/revanced-integrations/issues/190)) ([06bebd7](06bebd7017))
2022-10-29 21:18:41 +00:00
thebestnom
06bebd7017 feat(youtube/sponsorblock): skip segments once automatically (#190) 2022-10-29 23:14:20 +02:00
semantic-release-bot
d745e29395 chore(release): 0.62.0 [skip ci]
# [0.62.0](https://github.com/revanced/revanced-integrations/compare/v0.61.0...v0.62.0) (2022-10-29)

### Features

* **youtube/comments:** hide shorts comments button ([#188](https://github.com/revanced/revanced-integrations/issues/188)) ([69a585d](69a585da6f))
2022-10-29 14:06:18 +00:00
OxrxL
69a585da6f feat(youtube/comments): hide shorts comments button (#188) 2022-10-29 16:02:14 +02:00
semantic-release-bot
7050cefe10 chore(release): 0.61.0 [skip ci]
# [0.61.0](https://github.com/revanced/revanced-integrations/compare/v0.60.0...v0.61.0) (2022-10-29)

### Features

* **youtube/microg-support:** handle availability of Vanced MicroG ([afa9d3c](afa9d3cbb1))
2022-10-29 01:07:10 +00:00
oSumAtrIX
afa9d3cbb1 feat(youtube/microg-support): handle availability of Vanced MicroG 2022-10-29 03:03:43 +02:00
semantic-release-bot
6762ea4178 chore(release): 0.60.0 [skip ci]
# [0.60.0](https://github.com/revanced/revanced-integrations/compare/v0.59.0...v0.60.0) (2022-10-28)

### Features

* **youtube/return-youtube-dislike:** compatibility for old and new button layout ([a92c932](a92c932a20))
2022-10-28 23:58:59 +00:00
oSumAtrIX
a92c932a20 feat(youtube/return-youtube-dislike): compatibility for old and new button layout 2022-10-29 01:54:03 +02:00
semantic-release-bot
3698a502c3 chore(release): 0.59.0 [skip ci]
# [0.59.0](https://github.com/revanced/revanced-integrations/compare/v0.58.0...v0.59.0) (2022-10-25)

### Bug Fixes

* add missing list separator ([5566cfd](5566cfdda9))

### Features

* `comment` patch ([#185](https://github.com/revanced/revanced-integrations/issues/185)) ([97efc17](97efc17da7))
2022-10-25 21:45:42 +00:00
oSumAtrIX
5566cfdda9 fix: add missing list separator 2022-10-25 23:41:30 +02:00
OxrxL
97efc17da7 feat: comment patch (#185)
Co-authored-by: oSumAtrIX <johan.melkonyan1@web.de>
2022-10-25 23:34:57 +02:00
semantic-release-bot
8fdde7046d chore(release): 0.58.0 [skip ci]
# [0.58.0](https://github.com/revanced/revanced-integrations/compare/v0.57.0...v0.58.0) (2022-10-25)

### Features

* `hide-album-cards` patch ([#184](https://github.com/revanced/revanced-integrations/issues/184)) ([74c96be](74c96beb20))
2022-10-25 18:47:56 +00:00
OxrxL
74c96beb20 feat: hide-album-cards patch (#184)
Co-authored-by: oSumAtrIX <johan.melkonyan1@web.de>
2022-10-25 20:44:26 +02:00
semantic-release-bot
7014518673 chore(release): 0.57.0 [skip ci]
# [0.57.0](https://github.com/revanced/revanced-integrations/compare/v0.56.0...v0.57.0) (2022-10-25)

### Features

* `hide-artist-card` patch ([#186](https://github.com/revanced/revanced-integrations/issues/186)) ([ac3a835](ac3a835215))
2022-10-25 18:21:14 +00:00
OxrxL
ac3a835215 feat: hide-artist-card patch (#186) 2022-10-25 20:17:46 +02:00
semantic-release-bot
39450109ab chore(release): 0.56.0 [skip ci]
# [0.56.0](https://github.com/revanced/revanced-integrations/compare/v0.55.1...v0.56.0) (2022-10-25)

### Features

* `hide-crowdfunding-box` patch ([#183](https://github.com/revanced/revanced-integrations/issues/183)) ([db71824](db718242e7))
2022-10-25 16:25:11 +00:00
OxrxL
db718242e7 feat: hide-crowdfunding-box patch (#183)
Co-authored-by: oSumAtrIX <johan.melkonyan1@web.de>
2022-10-25 18:20:45 +02:00
semantic-release-bot
59c2459353 chore(release): 0.55.1 [skip ci]
## [0.55.1](https://github.com/revanced/revanced-integrations/compare/v0.55.0...v0.55.1) (2022-10-25)

### Bug Fixes

* **youtube/theme:** theme litho UI components ([#176](https://github.com/revanced/revanced-integrations/issues/176)) ([f06935d](f06935ddac))
2022-10-25 08:00:22 +00:00
OxrxL
f06935ddac fix(youtube/theme): theme litho UI components (#176)
Co-authored-by: oSumAtrIX <johan.melkonyan1@web.de>
2022-10-25 09:56:39 +02:00
semantic-release-bot
8127f8b390 chore(release): 0.55.0 [skip ci]
# [0.55.0](https://github.com/revanced/revanced-integrations/compare/v0.54.1...v0.55.0) (2022-10-22)

### Bug Fixes

* revert removing getAppContext() ([0be0ffd](0be0ffd42a))

### Features

* remove getAppContext() ([#182](https://github.com/revanced/revanced-integrations/issues/182)) ([f4650b1](f4650b1139))
2022-10-22 14:44:57 +00:00
oSumAtrIX
f4650b1139 feat: remove getAppContext() (#182)
This reverts commit 0be0ffd42a.
2022-10-22 16:40:16 +02:00
oSumAtrIX
0be0ffd42a fix: revert removing getAppContext()
This reverts commit a061614d86.
2022-10-22 16:38:56 +02:00
Canny
a061614d86 refactor: remove getAppContext() (#180) 2022-10-22 12:44:26 +02:00
semantic-release-bot
486019802c chore(release): 0.54.1 [skip ci]
## [0.54.1](https://github.com/revanced/revanced-integrations/compare/v0.54.0...v0.54.1) (2022-10-22)

### Bug Fixes

* **youtube/general-ads:** remove leftover ad banner ([#179](https://github.com/revanced/revanced-integrations/issues/179)) ([0253fef](0253fef2aa))
2022-10-22 10:00:56 +00:00
inotia00
0253fef2aa fix(youtube/general-ads): remove leftover ad banner (#179) 2022-10-22 11:57:17 +02:00
semantic-release-bot
8483a225fb chore(release): 0.54.0 [skip ci]
# [0.54.0](https://github.com/revanced/revanced-integrations/compare/v0.53.0...v0.54.0) (2022-10-20)

### Features

* **youtube:** `hide-captions-button` patch ([#175](https://github.com/revanced/revanced-integrations/issues/175)) ([867645e](867645ea5b))
2022-10-20 20:11:43 +00:00
OxrxL
867645ea5b feat(youtube): hide-captions-button patch (#175)
Co-authored-by: oSumAtrIX <johan.melkonyan1@web.de>
2022-10-20 22:08:14 +02:00
semantic-release-bot
52a2073175 chore(release): 0.53.0 [skip ci]
# [0.53.0](https://github.com/revanced/revanced-integrations/compare/v0.52.1...v0.53.0) (2022-10-20)

### Features

* **youtube:** `hide-mix-playlists` patch ([#177](https://github.com/revanced/revanced-integrations/issues/177)) ([0e6a92f](0e6a92fb33))
2022-10-20 17:11:56 +00:00
johnconner122
0e6a92fb33 feat(youtube): hide-mix-playlists patch (#177)
Co-authored-by: oSumAtrIX <johan.melkonyan1@web.de>
2022-10-20 19:08:18 +02:00
semantic-release-bot
658e11ac12 chore(release): 0.52.1 [skip ci]
## [0.52.1](https://github.com/revanced/revanced-integrations/compare/v0.52.0...v0.52.1) (2022-10-16)

### Performance Improvements

* remove obsolete SDK checks ([#174](https://github.com/revanced/revanced-integrations/issues/174)) ([1755662](1755662a7a))
2022-10-16 11:18:36 +00:00
Patryk Miś
1755662a7a perf: remove obsolete SDK checks (#174) 2022-10-16 13:15:10 +02:00
semantic-release-bot
8bd84031d4 chore(release): 0.52.0 [skip ci]
# [0.52.0](https://github.com/revanced/revanced-integrations/compare/v0.51.1...v0.52.0) (2022-10-13)

### Features

* **youtube/remember-video-quality:** remember the quality until changed by default ([c5ca35e](c5ca35e42c))
2022-10-13 04:06:07 +00:00
oSumAtrIX
c5ca35e42c feat(youtube/remember-video-quality): remember the quality until changed by default 2022-10-13 06:02:44 +02:00
semantic-release-bot
c266fdbf44 chore(release): 0.51.1 [skip ci]
## [0.51.1](https://github.com/revanced/revanced-integrations/compare/v0.51.0...v0.51.1) (2022-10-11)
2022-10-11 13:51:42 +00:00
Patryk Miś
07acc4dc1f build: update Kotlin and SDKs (#173) 2022-10-11 15:47:14 +02:00
semantic-release-bot
34a6829aaf chore(release): 0.51.0 [skip ci]
# [0.51.0](https://github.com/revanced/revanced-integrations/compare/v0.50.0...v0.51.0) (2022-10-06)

### Features

* **youtube/return-youtube-dislike:** decrease request timeout ([#171](https://github.com/revanced/revanced-integrations/issues/171)) ([c372e0e](c372e0e9bd))
2022-10-06 17:42:32 +00:00
oSumAtrIX
c372e0e9bd feat(youtube/return-youtube-dislike): decrease request timeout (#171) 2022-10-06 19:39:12 +02:00
semantic-release-bot
f5a4e6f3bf chore(release): 0.50.0 [skip ci]
# [0.50.0](https://github.com/revanced/revanced-integrations/compare/v0.49.1...v0.50.0) (2022-10-06)

### Features

* **youtube/general-ads:** do not hide community posts by default ([576991a](576991a7df))
2022-10-06 08:13:25 +00:00
oSumAtrIX
576991a7df feat(youtube/general-ads): do not hide community posts by default 2022-10-06 10:09:53 +02:00
semantic-release-bot
ab88a1f3d7 chore(release): 0.49.1 [skip ci]
## [0.49.1](https://github.com/revanced/revanced-integrations/compare/v0.49.0...v0.49.1) (2022-10-04)

### Bug Fixes

* **youtube/sponsorblock:** parse the error response on code 400 ([#169](https://github.com/revanced/revanced-integrations/issues/169)) ([5ab26a4](5ab26a427b))
2022-10-04 18:46:59 +00:00
caneleex
5ab26a427b fix(youtube/sponsorblock): parse the error response on code 400 (#169) 2022-10-04 20:43:29 +02:00
semantic-release-bot
9255fa30fa chore(release): 0.49.0 [skip ci]
# [0.49.0](https://github.com/revanced/revanced-integrations/compare/v0.48.0...v0.49.0) (2022-10-04)

### Features

* **youtube/remember-video-quality:** remember current quality option ([90f7392](90f7392e1a))
2022-10-04 05:54:55 +00:00
oSumAtrIX
90f7392e1a feat(youtube/remember-video-quality): remember current quality option 2022-10-04 07:51:45 +02:00
semantic-release-bot
fbaa361c00 chore(release): 0.48.0 [skip ci]
# [0.48.0](https://github.com/revanced/revanced-integrations/compare/v0.47.1...v0.48.0) (2022-10-03)

### Bug Fixes

* **youtube/general-ads:** do not block ads on `download_` ([e78a801](e78a8014bc))

### Features

* `hide-video-buttons` patch ([bf82e02](bf82e0219f))
2022-10-03 11:43:42 +00:00
oSumAtrIX
bf82e0219f feat: hide-video-buttons patch 2022-10-03 13:40:18 +02:00
oSumAtrIX
e78a8014bc fix(youtube/general-ads): do not block ads on download_ 2022-10-03 13:40:17 +02:00
oSumAtrIX
72c7604160 refactor(youtube/general-ads): abstract integrations code 2022-10-03 13:40:17 +02:00
semantic-release-bot
199259cb95 chore(release): 0.47.1 [skip ci]
## [0.47.1](https://github.com/revanced/revanced-integrations/compare/v0.47.0...v0.47.1) (2022-10-03)

### Bug Fixes

* **general-ads:** null check for identifier ([d10c546](d10c5462f4))
2022-10-03 01:53:04 +00:00
oSumAtrIX
d10c5462f4 fix(general-ads): null check for identifier 2022-10-03 03:49:57 +02:00
semantic-release-bot
b98e6fa169 chore(release): 0.47.0 [skip ci]
# [0.47.0](https://github.com/revanced/revanced-integrations/compare/v0.46.3...v0.47.0) (2022-10-02)

### Features

* **general-ads:** block carousel ad ([26c208e](26c208e9ed))
2022-10-02 23:28:29 +00:00
oSumAtrIX
26c208e9ed feat(general-ads): block carousel ad 2022-10-03 01:25:04 +02:00
semantic-release-bot
c548f1651a chore(release): 0.46.3 [skip ci]
## [0.46.3](https://github.com/revanced/revanced-integrations/compare/v0.46.2...v0.46.3) (2022-10-02)

### Bug Fixes

* **general-ads:** block remaining ads ([18a749f](18a749f87d))

### Performance Improvements

* **general-ads:** initialize blocks once ([5add970](5add970f61))
2022-10-02 23:21:31 +00:00
oSumAtrIX
5add970f61 perf(general-ads): initialize blocks once 2022-10-03 01:18:09 +02:00
oSumAtrIX
18a749f87d fix(general-ads): block remaining ads 2022-10-03 01:18:09 +02:00
semantic-release-bot
c3e302d224 chore(release): 0.46.2 [skip ci]
## [0.46.2](https://github.com/revanced/revanced-integrations/compare/v0.46.1...v0.46.2) (2022-10-01)

### Performance Improvements

* **general-ads:** hook pathBuilder ([c7756e1](c7756e1299))
2022-10-01 02:05:18 +00:00
oSumAtrIX
1010eedbb2 refactor(general-ads): remove unused method 2022-10-01 04:02:02 +02:00
oSumAtrIX
c7756e1299 perf(general-ads): hook pathBuilder
This removes the hook for the bytebuffer
2022-10-01 03:59:11 +02:00
semantic-release-bot
3022afc7c4 chore(release): 0.46.1 [skip ci]
## [0.46.1](https://github.com/revanced/revanced-integrations/compare/v0.46.0...v0.46.1) (2022-09-30)

### Bug Fixes

* **general-ads:** remove duplicate blocklist entry ([#165](https://github.com/revanced/revanced-integrations/issues/165)) ([9bcb04d](9bcb04de8e))
2022-09-30 18:03:18 +00:00
OxrxL
9bcb04de8e fix(general-ads): remove duplicate blocklist entry (#165) 2022-09-30 19:59:15 +02:00
semantic-release-bot
322e145f75 chore(release): 0.46.0 [skip ci]
# [0.46.0](https://github.com/revanced/revanced-integrations/compare/v0.45.0...v0.46.0) (2022-09-30)

### Features

* **general-ads:** block additional home ads ([5a24e84](5a24e84868))
2022-09-30 15:17:03 +00:00
oSumAtrIX
5a24e84868 feat(general-ads): block additional home ads 2022-09-30 17:13:15 +02:00
semantic-release-bot
c049dc3e8d chore(release): 0.45.0 [skip ci]
# [0.45.0](https://github.com/revanced/revanced-integrations/compare/v0.44.1...v0.45.0) (2022-09-29)

### Features

* `disable-startup-shorts-player` patch ([#164](https://github.com/revanced/revanced-integrations/issues/164)) ([149a90a](149a90a2e8))
2022-09-29 21:58:26 +00:00
OxrxL
149a90a2e8 feat: disable-startup-shorts-player patch (#164) 2022-09-29 23:54:09 +02:00
semantic-release-bot
2d001cfb1d chore(release): 0.44.1 [skip ci]
## [0.44.1](https://github.com/revanced/revanced-integrations/compare/v0.44.0...v0.44.1) (2022-09-29)

### Bug Fixes

* **hide-email-address:** invalid initial switch toggle state ([#163](https://github.com/revanced/revanced-integrations/issues/163)) ([8bb93a4](8bb93a439b))
2022-09-29 15:23:47 +00:00
OxrxL
8bb93a439b fix(hide-email-address): invalid initial switch toggle state (#163) 2022-09-29 17:19:46 +02:00
semantic-release-bot
0fe4db9f28 chore(release): 0.44.0 [skip ci]
# [0.44.0](https://github.com/revanced/revanced-integrations/compare/v0.43.1...v0.44.0) (2022-09-28)

### Features

* `hide-email-address` patch ([#149](https://github.com/revanced/revanced-integrations/issues/149)) ([4cc8a22](4cc8a22c26))
2022-09-28 14:34:29 +00:00
OxrxL
4cc8a22c26 feat: hide-email-address patch (#149)
Co-authored-by: oSumAtrIX <johan.melkonyan1@web.de>
2022-09-28 13:28:19 +02:00
semantic-release-bot
11fbf1a5b3 chore(release): 0.43.1 [skip ci]
## [0.43.1](https://github.com/revanced/revanced-integrations/compare/v0.43.0...v0.43.1) (2022-09-27)

### Bug Fixes

* move dummy classes to `dummy` module ([#162](https://github.com/revanced/revanced-integrations/issues/162)) ([fa0ad3a](fa0ad3a57b))
2022-09-27 13:33:59 +00:00
d4rkk3y
fa0ad3a57b fix: move dummy classes to dummy module (#162) 2022-09-27 15:30:25 +02:00
inotia00
73b40595c4 refactor: remove reduntant check for shorts_playing (#150) 2022-09-27 06:54:32 +02:00
semantic-release-bot
04bbe259cb chore(release): 0.43.0 [skip ci]
# [0.43.0](https://github.com/revanced/revanced-integrations/compare/v0.42.2...v0.43.0) (2022-09-26)

### Features

* enable minification  ([#158](https://github.com/revanced/revanced-integrations/issues/158)) ([8dde925](8dde925b47))
2022-09-26 14:32:21 +00:00
Canny
8dde925b47 feat: enable minification (#158)
* chore: proguard

* build: enable minify
2022-09-26 16:28:55 +02:00
semantic-release-bot
4ca1182485 chore(release): 0.42.2 [skip ci]
## [0.42.2](https://github.com/revanced/revanced-integrations/compare/v0.42.1...v0.42.2) (2022-09-25)

### Bug Fixes

* **swipe-controls:** crash on SDK below 24 ([#157](https://github.com/revanced/revanced-integrations/issues/157)) ([4c72ac1](4c72ac1cd5))
2022-09-25 15:55:53 +00:00
Chris
4c72ac1cd5 fix(swipe-controls): crash on SDK below 24 (#157) 2022-09-25 17:52:36 +02:00
semantic-release-bot
cdca96224a chore(release): 0.42.1 [skip ci]
## [0.42.1](https://github.com/revanced/revanced-integrations/compare/v0.42.0...v0.42.1) (2022-09-23)

### Bug Fixes

* **build:** remove distributionSha256Sum property ([#153](https://github.com/revanced/revanced-integrations/issues/153)) [skip ci] ([ae8d39a](ae8d39a831))
* **custom-playback-speed:** fill array to generate required instructions ([#155](https://github.com/revanced/revanced-integrations/issues/155)) ([868e99a](868e99a619))
* **hide-time-and-seekbar:** don't draw the seekbar ([#154](https://github.com/revanced/revanced-integrations/issues/154)) ([f1e9aa3](f1e9aa30ba))
2022-09-23 10:58:02 +00:00
bogadana
868e99a619 fix(custom-playback-speed): fill array to generate required instructions (#155) 2022-09-23 12:53:22 +02:00
OxrxL
f1e9aa30ba fix(hide-time-and-seekbar): don't draw the seekbar (#154) 2022-09-23 12:51:30 +02:00
OxrxL
ae8d39a831 fix(build): remove distributionSha256Sum property (#153) [skip ci] 2022-09-23 11:14:34 +02:00
semantic-release-bot
0304ccb168 chore(release): 0.42.0 [skip ci]
# [0.42.0](https://github.com/revanced/revanced-integrations/compare/v0.41.2...v0.42.0) (2022-09-23)

### Features

* **tiktok:** adapt `tiktok-download` with `tiktok-settings`. ([#152](https://github.com/revanced/revanced-integrations/issues/152)) ([5a710aa](5a710aa033))
2022-09-23 05:43:56 +00:00
d4rkk3y
5a710aa033 feat(tiktok): adapt tiktok-download with tiktok-settings. (#152) 2022-09-23 07:39:44 +02:00
semantic-release-bot
fd924ad934 chore(release): 0.41.2 [skip ci]
## [0.41.2](https://github.com/revanced/revanced-integrations/compare/v0.41.1...v0.41.2) (2022-09-22)
2022-09-22 16:51:03 +00:00
Patryk Miś
f47cc8b375 build: migrate to Kotlin DSL (#151)
Co-authored-by: PatrickMis <24607131+PatrickMis@users.noreply.github.com>
2022-09-22 18:47:46 +02:00
oSumAtrIX
b97c6005f0 refactor(custom-playback-speed): empty initial value for videoSpeeds field 2022-09-22 07:19:12 +02:00
semantic-release-bot
8feeb323ba chore(release): 0.41.1 [skip ci]
## [0.41.1](https://github.com/revanced/revanced-integrations/compare/v0.41.0...v0.41.1) (2022-09-22)
2022-09-22 00:11:29 +00:00
Patryk Miś
c4be039367 build: modernize build code (#148) 2022-09-22 02:08:04 +02:00
semantic-release-bot
0a1f42595e chore(release): 0.41.0 [skip ci]
# [0.41.0](https://github.com/revanced/revanced-integrations/compare/v0.40.0...v0.41.0) (2022-09-21)

### Features

* `tiktok-feed-filter` , `tiktok-settings` and `tiktok-force-login` patch ([#142](https://github.com/revanced/revanced-integrations/issues/142)) ([c3f79eb](c3f79eb27b))
2022-09-21 21:02:57 +00:00
d4rkk3y
c3f79eb27b feat: tiktok-feed-filter , tiktok-settings and tiktok-force-login patch (#142) 2022-09-21 22:59:50 +02:00
semantic-release-bot
cf2d6b955a chore(release): 0.40.0 [skip ci]
# [0.40.0](https://github.com/revanced/revanced-integrations/compare/v0.39.0...v0.40.0) (2022-09-21)

### Bug Fixes

* disable sponsorblock on shorts ([#135](https://github.com/revanced/revanced-integrations/issues/135)) ([3797438](37974389ac))

### Features

* `disable-auto-player-popup-panels` patch ([#145](https://github.com/revanced/revanced-integrations/issues/145)) ([3fd6df8](3fd6df8277))
2022-09-21 01:06:46 +00:00
OxrxL
37974389ac fix: disable sponsorblock on shorts (#135) 2022-09-21 03:03:37 +02:00
OxrxL
3fd6df8277 feat: disable-auto-player-popup-panels patch (#145) 2022-09-21 03:02:47 +02:00
semantic-release-bot
ba22e3bc56 chore(release): 0.39.0 [skip ci]
# [0.39.0](https://github.com/revanced/revanced-integrations/compare/v0.38.0...v0.39.0) (2022-09-21)

### Features

* `hide-time-and-seekbar` patch ([#146](https://github.com/revanced/revanced-integrations/issues/146)) ([7e2f48e](7e2f48eb3e))
2022-09-21 01:01:07 +00:00
OxrxL
7e2f48eb3e feat: hide-time-and-seekbar patch (#146) 2022-09-21 02:58:13 +02:00
semantic-release-bot
6a1669ea71 chore(release): 0.38.0 [skip ci]
# [0.38.0](https://github.com/revanced/revanced-integrations/compare/v0.37.4...v0.38.0) (2022-09-20)

### Features

* disable `swipe-controls` when player controls are visible ([#123](https://github.com/revanced/revanced-integrations/issues/123)) ([6d8c0a0](6d8c0a0c73))
2022-09-20 23:59:25 +00:00
Chris
6d8c0a0c73 feat: disable swipe-controls when player controls are visible (#123) 2022-09-21 01:56:42 +02:00
semantic-release-bot
2b763373ee chore(release): 0.37.4 [skip ci]
## [0.37.4](https://github.com/revanced/revanced-integrations/compare/v0.37.3...v0.37.4) (2022-09-18)

### Bug Fixes

* **sponsorblock:** handle response error code 400 ([#143](https://github.com/revanced/revanced-integrations/issues/143)) ([40f9af0](40f9af0efd))
2022-09-18 22:07:17 +00:00
Michael M. Chang
40f9af0efd fix(sponsorblock): handle response error code 400 (#143) 2022-09-19 00:04:39 +02:00
semantic-release-bot
08cca3c6ec chore(release): 0.37.3 [skip ci]
## [0.37.3](https://github.com/revanced/revanced-integrations/compare/v0.37.2...v0.37.3) (2022-09-15)

### Bug Fixes

* revert consolidating ad filters ([f96dc38](f96dc38f4e))
2022-09-15 23:33:08 +00:00
oSumAtrIX
f96dc38f4e fix: revert consolidating ad filters
This reverts commit 8a39551aba.
2022-09-16 01:30:10 +02:00
semantic-release-bot
481b8d612d chore(release): 0.37.2 [skip ci]
## [0.37.2](https://github.com/revanced/revanced-integrations/compare/v0.37.1...v0.37.2) (2022-09-15)

### Bug Fixes

* consolidate ad filters ([#140](https://github.com/revanced/revanced-integrations/issues/140)) ([8a39551](8a39551aba))
2022-09-15 22:03:41 +00:00
OxrxL
8a39551aba fix: consolidate ad filters (#140) 2022-09-16 00:00:52 +02:00
semantic-release-bot
d7b1bc12fb chore(release): 0.37.1 [skip ci]
## [0.37.1](https://github.com/revanced/revanced-integrations/compare/v0.37.0...v0.37.1) (2022-09-15)

### Bug Fixes

* `general-ads` litho ads filter ([#139](https://github.com/revanced/revanced-integrations/issues/139)) ([68d7f98](68d7f98efc))
2022-09-15 14:51:17 +00:00
d4rkk3y
68d7f98efc fix: general-ads litho ads filter (#139) 2022-09-15 16:44:06 +02:00
semantic-release-bot
b7d603f706 chore(release): 0.37.0 [skip ci]
# [0.37.0](https://github.com/revanced/revanced-integrations/compare/v0.36.6...v0.37.0) (2022-09-15)

### Features

* `disable-auto-captions` patch ([#133](https://github.com/revanced/revanced-integrations/issues/133)) ([233d332](233d332473))
2022-09-15 01:03:26 +00:00
OxrxL
233d332473 feat: disable-auto-captions patch (#133) 2022-09-15 03:00:15 +02:00
semantic-release-bot
c82a85ba37 chore(release): 0.36.6 [skip ci]
## [0.36.6](https://github.com/revanced/revanced-integrations/compare/v0.36.5...v0.36.6) (2022-09-08)

### Bug Fixes

* android api 23 compat ([136fb7b](136fb7bcbb)), closes [revanced/revanced-integrations#136](https://github.com/revanced/revanced-integrations/issues/136)
2022-09-08 10:23:22 +00:00
Sculas
136fb7bcbb fix: android api 23 compat
Fixes revanced/revanced-integrations#136
2022-09-08 12:19:50 +02:00
semantic-release-bot
ab9587df5a chore(release): 0.36.5 [skip ci]
## [0.36.5](https://github.com/revanced/revanced-integrations/compare/v0.36.4...v0.36.5) (2022-08-29)

### Bug Fixes

* revert "pull up to refresh" ([cb7e90c](cb7e90c41e))
2022-08-29 20:41:53 +00:00
oSumAtrIX
cb7e90c41e fix: revert "pull up to refresh"
This reverts commit 96d427f2ba.
2022-08-29 22:39:11 +02:00
semantic-release-bot
83f248e7da chore(release): 0.36.4 [skip ci]
## [0.36.4](https://github.com/revanced/revanced-integrations/compare/v0.36.3...v0.36.4) (2022-08-27)

### Bug Fixes

* pull down to reload the home page ([#129](https://github.com/revanced/revanced-integrations/issues/129)) ([96d427f](96d427f2ba))
2022-08-27 22:27:24 +00:00
OxrxL
96d427f2ba fix: pull down to reload the home page (#129) 2022-08-28 00:24:20 +02:00
semantic-release-bot
b68f8e912e chore(release): 0.36.3 [skip ci]
## [0.36.3](https://github.com/revanced/revanced-integrations/compare/v0.36.2...v0.36.3) (2022-08-26)

### Bug Fixes

* change default value for autorepeat setting ([#126](https://github.com/revanced/revanced-integrations/issues/126)) ([c6c2556](c6c255609f))
2022-08-26 01:26:26 +00:00
afn
c6c255609f fix: change default value for autorepeat setting (#126) 2022-08-26 03:23:38 +02:00
semantic-release-bot
9f283ba71f chore(release): 0.36.2 [skip ci]
## [0.36.2](https://github.com/revanced/revanced-integrations/compare/v0.36.1...v0.36.2) (2022-08-25)

### Bug Fixes

* restart when toggling the downloads button ([#125](https://github.com/revanced/revanced-integrations/issues/125)) ([afd4815](afd4815a22))
2022-08-25 06:39:20 +00:00
Joey Peter
afd4815a22 fix: restart when toggling the downloads button (#125) 2022-08-25 08:35:43 +02:00
semantic-release-bot
d60aea723f chore(release): 0.36.1 [skip ci]
## [0.36.1](https://github.com/revanced/revanced-integrations/compare/v0.36.0...v0.36.1) (2022-08-24)

### Bug Fixes

* restart prompt for `tablet-miniplayer` patch setting ([#124](https://github.com/revanced/revanced-integrations/issues/124)) ([a9a69ec](a9a69ecfeb))
2022-08-24 22:27:35 +00:00
LoV432
a9a69ecfeb fix: restart prompt for tablet-miniplayer patch setting (#124) 2022-08-25 00:24:42 +02:00
semantic-release-bot
3c855875d6 chore(release): 0.36.0 [skip ci]
# [0.36.0](https://github.com/revanced/revanced-integrations/compare/v0.35.0...v0.36.0) (2022-08-22)

### Bug Fixes

* default values for settings ([6f5596f](6f5596f227))

### Features

* setting for downloader package name ([8b09228](8b092280e1))
2022-08-22 19:08:34 +00:00
oSumAtrIX
8b092280e1 feat: setting for downloader package name 2022-08-22 21:05:01 +02:00
oSumAtrIX
6f5596f227 fix: default values for settings 2022-08-22 21:04:56 +02:00
semantic-release-bot
163a51af57 chore(release): 0.35.0 [skip ci]
# [0.35.0](https://github.com/revanced/revanced-integrations/compare/v0.34.0...v0.35.0) (2022-08-22)

### Features

* `downloads` patch ([#89](https://github.com/revanced/revanced-integrations/issues/89)) ([6aa02e5](6aa02e5063))
2022-08-22 03:01:02 +00:00
oSumAtrIX
6aa02e5063 feat: downloads patch (#89) 2022-08-22 04:58:14 +02:00
semantic-release-bot
6abc481717 chore(release): 0.34.0 [skip ci]
# [0.34.0](https://github.com/revanced/revanced-integrations/compare/v0.33.1...v0.34.0) (2022-08-22)

### Features

* `settings` patch framework ([#113](https://github.com/revanced/revanced-integrations/issues/113)) ([276a2bc](276a2bc356))
2022-08-22 00:02:54 +00:00
oSumAtrIX
276a2bc356 feat: settings patch framework (#113) 2022-08-22 01:59:38 +02:00
semantic-release-bot
29a812f4e5 chore(release): 0.33.1 [skip ci]
## [0.33.1](https://github.com/revanced/revanced-integrations/compare/v0.33.0...v0.33.1) (2022-08-14)

### Bug Fixes

* decode bytebuffer properly ([#121](https://github.com/revanced/revanced-integrations/issues/121)) ([d257b6d](d257b6d193))
2022-08-14 21:39:03 +00:00
OxrxL
d257b6d193 fix: decode bytebuffer properly (#121) 2022-08-14 23:35:24 +02:00
semantic-release-bot
1197313a59 chore(release): 0.33.0 [skip ci]
# [0.33.0](https://github.com/revanced/revanced-integrations/compare/v0.32.0...v0.33.0) (2022-08-14)

### Features

* `swipe controls` override volume button behaviour ([#114](https://github.com/revanced/revanced-integrations/issues/114)) ([8056e2e](8056e2e9eb))
2022-08-14 20:22:26 +00:00
Chris
8056e2e9eb feat: swipe controls override volume button behaviour (#114) 2022-08-14 22:19:26 +02:00
semantic-release-bot
166bfd35ed chore(release): 0.32.0 [skip ci]
# [0.32.0](https://github.com/revanced/revanced-integrations/compare/v0.31.2...v0.32.0) (2022-08-14)

### Features

* `tablet-mini-player` patch ([e43de8b](e43de8b0b4))
2022-08-14 15:35:07 +00:00
oSumAtrIX
e43de8b0b4 feat: tablet-mini-player patch 2022-08-14 17:32:05 +02:00
semantic-release-bot
e67f47876c chore(release): 0.31.2 [skip ci]
## [0.31.2](https://github.com/revanced/revanced-integrations/compare/v0.31.1...v0.31.2) (2022-08-08)

### Bug Fixes

* unintentional like button detection ([#119](https://github.com/revanced/revanced-integrations/issues/119)) ([f64b178](f64b17869e))
2022-08-08 16:27:36 +00:00
j4k0xb
f64b17869e fix: unintentional like button detection (#119) 2022-08-08 18:24:44 +02:00
pascua28
2a6d401df5 refactor: remove stray codec settings (#117) 2022-08-04 12:47:49 +02:00
semantic-release-bot
10f6d8e4ea chore(release): 0.31.1 [skip ci]
## [0.31.1](https://github.com/revanced/revanced-integrations/compare/v0.31.0...v0.31.1) (2022-08-03)

### Bug Fixes

* logic in `VideoAdsPatch` ([#116](https://github.com/revanced/revanced-integrations/issues/116)) ([f474541](f474541094))
2022-08-03 19:10:58 +00:00
epicsampler
f474541094 fix: logic in VideoAdsPatch (#116) 2022-08-03 21:07:31 +02:00
semantic-release-bot
8b2b00dd97 chore(release): 0.31.0 [skip ci]
# [0.31.0](https://github.com/revanced/revanced-integrations/compare/v0.30.4...v0.31.0) (2022-08-03)

### Features

* remove `ForceCodecPatch` ([#115](https://github.com/revanced/revanced-integrations/issues/115)) ([532de7e](532de7e9a1))
2022-08-03 18:44:30 +00:00
epicsampler
532de7e9a1 feat: remove ForceCodecPatch (#115) 2022-08-03 20:41:31 +02:00
semantic-release-bot
1cceb626fa chore(release): 0.30.4 [skip ci]
## [0.30.4](https://github.com/revanced/revanced-integrations/compare/v0.30.3...v0.30.4) (2022-07-31)

### Bug Fixes

* `sponsorblock` settings not getting saved ([#112](https://github.com/revanced/revanced-integrations/issues/112)) ([256302e](256302e914))
2022-07-31 19:27:05 +00:00
Joey Peter
256302e914 fix: sponsorblock settings not getting saved (#112) 2022-07-31 21:21:19 +02:00
semantic-release-bot
6eaf9fee65 chore(release): 0.30.3 [skip ci]
## [0.30.3](https://github.com/revanced/revanced-integrations/compare/v0.30.2...v0.30.3) (2022-07-31)

### Bug Fixes

* app crashes on first start ([#111](https://github.com/revanced/revanced-integrations/issues/111)) ([0f5e89c](0f5e89c5e3))
2022-07-31 19:00:50 +00:00
Joey Peter
0f5e89c5e3 fix: app crashes on first start (#111) 2022-07-31 20:57:56 +02:00
semantic-release-bot
28f1cd6529 chore(release): 0.30.2 [skip ci]
## [0.30.2](https://github.com/revanced/revanced-integrations/compare/v0.30.1...v0.30.2) (2022-07-31)

### Bug Fixes

* app crashes on reboot ([#110](https://github.com/revanced/revanced-integrations/issues/110)) ([0ccb35d](0ccb35db67))
2022-07-31 18:44:18 +00:00
Joey Peter
0ccb35db67 fix: app crashes on reboot (#110) 2022-07-31 20:41:07 +02:00
semantic-release-bot
d7833ec2e7 chore(release): 0.30.1 [skip ci]
## [0.30.1](https://github.com/revanced/revanced-integrations/compare/v0.30.0...v0.30.1) (2022-07-31)

### Bug Fixes

* sb does not turn off ([97c184b](97c184b5fb))
2022-07-31 11:47:22 +00:00
TheJeterLP
97c184b5fb fix: sb does not turn off 2022-07-31 13:44:29 +02:00
semantic-release-bot
a2a515d2d9 chore(release): 0.30.0 [skip ci]
# [0.30.0](https://github.com/revanced/revanced-integrations/compare/v0.29.0...v0.30.0) (2022-07-31)

### Features

* `settings` patch ([3e20696](3e206967b7))
2022-07-31 10:20:41 +00:00
Joey Peter
44b81eed45 build: trigger release 2022-07-31 12:17:51 +02:00
Joey Peter
cab5b4ee15 docs: change readme.md 2022-07-31 12:16:45 +02:00
oSumAtrIX
3e206967b7 feat: settings patch 2022-07-31 12:15:16 +02:00
TheJeterLP
02e37c8e9f refactor: remove unused file 2022-07-30 22:23:42 +02:00
TheJeterLP
aa5c0b0a7f refactor: remove moved res files 2022-07-30 22:08:13 +02:00
Joey Peter
4106e8a198 refactor: add debug log to SettingsFragment 2022-07-30 19:39:51 +02:00
Joey Peter
68e7bdf2e1 refactor: add missing settings to xml files and rewrite SetingsFragment 2022-07-30 19:33:07 +02:00
semantic-release-bot
b531dbd6ce chore(release): 0.29.0 [skip ci]
# [0.29.0](https://github.com/revanced/revanced-integrations/compare/v0.28.1...v0.29.0) (2022-07-28)

### Bug Fixes

* solution shouldn't be required ([#104](https://github.com/revanced/revanced-integrations/issues/104)) ([93a5edc](93a5edc2ba))

### Features

* toast notifications for `remember-quality` patch ([#106](https://github.com/revanced/revanced-integrations/issues/106)) ([35ee341](35ee3415f0))
2022-07-28 18:25:49 +00:00
Canny1913
35ee3415f0 feat: toast notifications for remember-quality patch (#106) 2022-07-28 20:22:18 +02:00
tillnelown
93a5edc2ba fix: solution shouldn't be required (#104) 2022-07-27 20:15:09 +02:00
oSumAtrIX
9c0ccb71bc docs: add missing . to issue description 2022-07-26 19:36:32 +02:00
semantic-release-bot
e8afd60b15 chore(release): 0.28.1 [skip ci]
## [0.28.1](https://github.com/revanced/revanced-integrations/compare/v0.28.0...v0.28.1) (2022-07-26)

### Bug Fixes

* `default-video-quality` patch crashing ([#100](https://github.com/revanced/revanced-integrations/issues/100)) ([c6b7528](c6b7528eae))
2022-07-26 17:35:48 +00:00
Canny1913
c6b7528eae fix: default-video-quality patch crashing (#100) 2022-07-26 19:32:53 +02:00
oSumAtrIX
17a291f430 docs: make form inputs required 2022-07-26 19:27:01 +02:00
oSumAtrIX
27d28600df docs: use GitHub issue forms 2022-07-26 19:25:10 +02:00
OxrxL
6c60a2d929 refactor: remove unused code in old-quality patch (#101) 2022-07-26 15:50:44 +02:00
semantic-release-bot
f9a137ca1f chore(release): 0.28.0 [skip ci]
# [0.28.0](https://github.com/revanced/revanced-integrations/compare/v0.27.6...v0.28.0) (2022-07-24)

### Features

* `default-video-quality` patch ([#95](https://github.com/revanced/revanced-integrations/issues/95)) ([f3ee6ce](f3ee6cec26))
2022-07-24 20:32:09 +00:00
Canny1913
f3ee6cec26 feat: default-video-quality patch (#95) 2022-07-24 22:28:38 +02:00
semantic-release-bot
234023f3f5 chore(release): 0.27.6 [skip ci]
## [0.27.6](https://github.com/revanced/revanced-integrations/compare/v0.27.5...v0.27.6) (2022-07-21)

### Bug Fixes

* wrong naming of ForceDisableCaptions ([#93](https://github.com/revanced/revanced-integrations/issues/93)) ([21d56f8](21d56f89b3))
2022-07-21 16:11:39 +00:00
TheJeterLP
21d56f89b3 fix: wrong naming of ForceDisableCaptions (#93) 2022-07-21 18:08:33 +02:00
semantic-release-bot
bb38026998 chore(release): 0.27.5 [skip ci]
## [0.27.5](https://github.com/revanced/revanced-integrations/compare/v0.27.4...v0.27.5) (2022-07-21)

### Bug Fixes

* rename DisableAutoCaptions patch ([#91](https://github.com/revanced/revanced-integrations/issues/91)) ([2890467](2890467ce1))
2022-07-21 16:00:02 +00:00
TheJeterLP
2890467ce1 fix: rename DisableAutoCaptions patch (#91) 2022-07-21 17:57:02 +02:00
semantic-release-bot
0ea0dbf7ce chore(release): 0.27.4 [skip ci]
## [0.27.4](https://github.com/revanced/revanced-integrations/compare/v0.27.3...v0.27.4) (2022-07-21)

### Bug Fixes

* disable-fullscreen-panels patch not working ([#90](https://github.com/revanced/revanced-integrations/issues/90)) ([e625a17](e625a17e99))
2022-07-21 04:18:30 +00:00
TheJeterLP
e625a17e99 fix: disable-fullscreen-panels patch not working (#90) 2022-07-21 06:15:09 +02:00
TheJeterLP
462e251342 refactor: cleanup code 2022-07-20 22:56:29 +02:00
TheJeterLP
7755118cca refactor: add needed method back 2022-07-20 22:38:34 +02:00
TheJeterLP
824bd14845 refactor: remove unused method 2022-07-20 22:33:52 +02:00
semantic-release-bot
47c1065241 chore(release): 0.27.3 [skip ci]
## [0.27.3](https://github.com/revanced/revanced-integrations/compare/v0.27.2...v0.27.3) (2022-07-19)

### Bug Fixes

* quick quality list flyout view visibility in `old-quality-layout` patch ([#86](https://github.com/revanced/revanced-integrations/issues/86)) ([996434c](996434c574))
2022-07-19 00:02:20 +00:00
OxrxL
996434c574 fix: quick quality list flyout view visibility in old-quality-layout patch (#86) 2022-07-19 01:58:49 +02:00
semantic-release-bot
5549b95825 chore(release): 0.27.2 [skip ci]
## [0.27.2](https://github.com/revanced/revanced-integrations/compare/v0.27.1...v0.27.2) (2022-07-18)

### Bug Fixes

* make all patches toggleable with settings ([#87](https://github.com/revanced/revanced-integrations/issues/87)) ([6d3d274](6d3d274599))
2022-07-18 21:02:24 +00:00
TheJeterLP
6d3d274599 fix: make all patches toggleable with settings (#87) 2022-07-18 22:59:36 +02:00
semantic-release-bot
0e01041ee3 chore(release): 0.27.1 [skip ci]
## [0.27.1](https://github.com/revanced/revanced-integrations/compare/v0.27.0...v0.27.1) (2022-07-18)

### Bug Fixes

* `swipe-controls` incompatible with `disable-fullscreen-panels` ([#88](https://github.com/revanced/revanced-integrations/issues/88)) ([1f9b01c](1f9b01c142))
2022-07-18 16:54:27 +00:00
Chris
1f9b01c142 fix: swipe-controls incompatible with disable-fullscreen-panels (#88)
* base swipe rect calculations on player surface bound
2022-07-18 18:51:44 +02:00
semantic-release-bot
5e04dfc3b2 chore(release): 0.27.0 [skip ci]
# [0.27.0](https://github.com/revanced/revanced-integrations/compare/v0.26.0...v0.27.0) (2022-07-17)

### Features

* better default settings for `sponsorblock` patch ([0a0101f](0a0101f35e))
* remove use of unused class `Dialogs` ([5a67ca2](5a67ca22b8))
2022-07-17 22:09:07 +00:00
oSumAtrIX
5a67ca22b8 feat: remove use of unused class Dialogs 2022-07-18 00:05:46 +02:00
oSumAtrIX
0a0101f35e feat: better default settings for sponsorblock patch 2022-07-18 00:05:45 +02:00
semantic-release-bot
21fed0ff81 chore(release): 0.26.0 [skip ci]
# [0.26.0](https://github.com/revanced/revanced-integrations/compare/v0.25.2...v0.26.0) (2022-07-17)

### Features

* block `channel-guidelines`. Fixes [#84](https://github.com/revanced/revanced-integrations/issues/84) ([#85](https://github.com/revanced/revanced-integrations/issues/85)) ([1c095f3](1c095f3003))
2022-07-17 14:44:48 +00:00
TheJeterLP
1c095f3003 feat: block channel-guidelines. Fixes #84 (#85) 2022-07-17 16:42:05 +02:00
semantic-release-bot
5dff1c09ba chore(release): 0.25.2 [skip ci]
## [0.25.2](https://github.com/revanced/revanced-integrations/compare/v0.25.1...v0.25.2) (2022-07-17)

### Bug Fixes

* rename class `ReturnYouTubeDislikesPatch` to `ReturnYouTubeDislikePatch` ([a94fb8c](a94fb8c119))
2022-07-17 14:32:16 +00:00
oSumAtrIX
a94fb8c119 fix: rename class ReturnYouTubeDislikesPatch to ReturnYouTubeDislikePatch 2022-07-17 16:29:35 +02:00
semantic-release-bot
69f9e63f83 chore(release): 0.25.1 [skip ci]
## [0.25.1](https://github.com/revanced/revanced-integrations/compare/v0.25.0...v0.25.1) (2022-07-17)

### Bug Fixes

* `old-quality-layout` patch ([5a5e882](5a5e8824c5))
2022-07-17 14:06:00 +00:00
oSumAtrIX
5a5e8824c5 fix: old-quality-layout patch 2022-07-17 16:02:51 +02:00
TheJeterLP
887bcff415 refactor: rename HDRMaxBrightnessPatch 2022-07-17 15:05:51 +02:00
oSumAtrIX
fb102cfafe style: naming for ReturnYouTubeDislike patch 2022-07-16 17:43:36 +02:00
semantic-release-bot
7e236b01fb chore(release): 0.25.0 [skip ci]
# [0.25.0](https://github.com/revanced/revanced-integrations/compare/v0.24.2...v0.25.0) (2022-07-16)

### Features

* `return-youtube-dislikes` patch ([#81](https://github.com/revanced/revanced-integrations/issues/81)) ([2d513b5](2d513b5100))
2022-07-16 14:53:26 +00:00
j4k0xb
2d513b5100 feat: return-youtube-dislikes patch (#81)
* feat: update dislike button text

* refactor(ryd): remove unused code

* refactor: create patch class for ryd

* refactor: move VideoInformation
2022-07-16 16:50:16 +02:00
TheJeterLP
508f49622c refactor: remove unused file 2022-07-14 23:06:55 +02:00
semantic-release-bot
d300cf0888 chore(release): 0.24.2 [skip ci]
## [0.24.2](https://github.com/revanced/revanced-integrations/compare/v0.24.1...v0.24.2) (2022-07-14)

### Bug Fixes

* set debug to false by default ([95b9406](95b9406701))
2022-07-14 16:47:50 +00:00
TheJeterLP
95b9406701 fix: set debug to false by default 2022-07-14 18:45:07 +02:00
TheJeterLP
ac9e239b16 refactor: prepare for settings patch (#80) 2022-07-14 18:42:43 +02:00
semantic-release-bot
ad1e42eb01 chore(release): 0.24.1 [skip ci]
## [0.24.1](https://github.com/revanced/revanced-integrations/compare/v0.24.0...v0.24.1) (2022-07-14)

### Bug Fixes

* `swipe-controls` with active engagement panel ([#82](https://github.com/revanced/revanced-integrations/issues/82)) ([669cb29](669cb295a1))
2022-07-14 15:21:45 +00:00
Chris
669cb295a1 fix: swipe-controls with active engagement panel (#82) 2022-07-14 17:18:53 +02:00
semantic-release-bot
2c2bdf6186 chore(release): 0.24.0 [skip ci]
# [0.24.0](https://github.com/revanced/revanced-integrations/compare/v0.23.2...v0.24.0) (2022-07-12)

### Features

* `force-vp9-codec` integrations ([#76](https://github.com/revanced/revanced-integrations/issues/76)) ([8a0029c](8a0029c81c))
2022-07-12 18:10:32 +00:00
TheJeterLP
8a0029c81c feat: force-vp9-codec integrations (#76) 2022-07-12 20:07:43 +02:00
semantic-release-bot
636fae622a chore(release): 0.23.2 [skip ci]
## [0.23.2](https://github.com/revanced/revanced-integrations/compare/v0.23.1...v0.23.2) (2022-07-12)

### Bug Fixes

* untangle RYD from SB. fixes [#79](https://github.com/revanced/revanced-integrations/issues/79) ([56eaef0](56eaef0670))
2022-07-12 15:51:38 +00:00
TheJeterLP
56eaef0670 fix: untangle RYD from SB. fixes #79 2022-07-12 17:48:28 +02:00
semantic-release-bot
9a5ed589d8 chore(release): 0.23.1 [skip ci]
## [0.23.1](https://github.com/revanced/revanced-integrations/compare/v0.23.0...v0.23.1) (2022-07-12)

### Bug Fixes

* crash when buffer value is less than 1 ([e2d9623](e2d962355c))
2022-07-12 15:45:20 +00:00
TheJeterLP
e2d962355c fix: crash when buffer value is less than 1 2022-07-12 17:42:06 +02:00
semantic-release-bot
5ff47b7fcc chore(release): 0.23.0 [skip ci]
# [0.23.0](https://github.com/revanced/revanced-integrations/compare/v0.22.1...v0.23.0) (2022-07-12)

### Bug Fixes

* use `getLong` instead of `getFloat` ([577a734](577a7348fe))
* wrong description for issue templates ([ea581d4](ea581d48e2))

### Features

* added issue templates. ([#77](https://github.com/revanced/revanced-integrations/issues/77)) ([51016ef](51016efcb7))
2022-07-12 01:21:03 +00:00
oSumAtrIX
577a7348fe fix: use getLong instead of getFloat 2022-07-12 03:17:33 +02:00
oSumAtrIX
feab35e76c docs: change size of headings [skip ci] 2022-07-12 01:12:06 +02:00
oSumAtrIX
ea581d48e2 fix: wrong description for issue templates 2022-07-11 20:49:53 +02:00
Aunali321
51016efcb7 feat: added issue templates. (#77) 2022-07-11 20:45:26 +02:00
semantic-release-bot
530949657f chore(release): 0.22.1 [skip ci]
## [0.22.1](https://github.com/revanced/revanced-integrations/compare/v0.22.0...v0.22.1) (2022-07-11)

### Bug Fixes

* `hdr-auto-brightness` patch ([#74](https://github.com/revanced/revanced-integrations/issues/74)) ([7314032](7314032a38))
2022-07-11 16:27:23 +00:00
Chris
7314032a38 fix: hdr-auto-brightness patch (#74) 2022-07-11 18:24:32 +02:00
semantic-release-bot
134d7e33bd chore(release): 0.22.0 [skip ci]
# [0.22.0](https://github.com/revanced/revanced-integrations/compare/v0.21.9...v0.22.0) (2022-07-11)

### Features

* `swipe-controls` rewrite ([#64](https://github.com/revanced/revanced-integrations/issues/64)) ([fcabebf](fcabebf3a7))
2022-07-11 12:32:26 +00:00
Chris
fcabebf3a7 feat: swipe-controls rewrite (#64)
* rewrite swipe controls without deep hooks
+ merge changes
+ refactor class names

* fix gesture detection behaviour

* add option to disable press-to-swipe

* add config options related to swipe

* restore default device brightness when exiting fullscreen player
fixes https://github.com/revanced/revanced-patches/issues/128

* set to default brightness after reaching 0%

* block swipe-to-dismiss when not using press-to-swipe

* fix: TouchThiefLayout potentially attaches multiple times

* remove last references to 'fenster' name

* move updatePlayerType hook into its own patch

* refactor 'swipe-controls' patch

* make feedback text backgrond semi-transparent

* update swipe-controls overlay

* fix swipe-controls leaking host activity context

* fix saved screen brightness resetting between videos

* fix crash on re-enter activity

* make overlay more configurable

* add settings to revanced_prefs.xml
2022-07-11 14:29:39 +02:00
semantic-release-bot
376ffc0844 chore(release): 0.21.9 [skip ci]
## [0.21.9](https://github.com/revanced/revanced-integrations/compare/v0.21.8...v0.21.9) (2022-07-08)

### Bug Fixes

* remove int argument from buffer functions ([#71](https://github.com/revanced/revanced-integrations/issues/71)) ([7de1994](7de199421c))
2022-07-08 21:09:51 +00:00
TheJeterLP
7de199421c fix: remove int argument from buffer functions (#71) 2022-07-08 23:06:37 +02:00
semantic-release-bot
e2a1bb7ce8 chore(release): 0.21.8 [skip ci]
## [0.21.8](https://github.com/revanced/revanced-integrations/compare/v0.21.7...v0.21.8) (2022-07-08)

### Bug Fixes

* Block some more movies in adblocker ([#69](https://github.com/revanced/revanced-integrations/issues/69)) ([391ce64](391ce64c25))
2022-07-08 07:39:03 +00:00
OxrxL
391ce64c25 fix: Block some more movies in adblocker (#69)
* browsy_bar block

* feat: add browsy block
2022-07-08 09:36:28 +02:00
TheJeterLP
f346ed6122 refactor: revert previous commit 2022-07-08 01:21:18 +02:00
TheJeterLP
4d12729306 refactor: downgrade gradle plugin so intellij can open the project 2022-07-08 01:00:34 +02:00
semantic-release-bot
9a8ddc9ca6 chore(release): 0.21.7 [skip ci]
## [0.21.7](https://github.com/revanced/revanced-integrations/compare/v0.21.6...v0.21.7) (2022-07-07)

### Bug Fixes

* enable wide-search-bar by default ([#67](https://github.com/revanced/revanced-integrations/issues/67)) ([fabc4e0](fabc4e0548))
2022-07-07 22:35:49 +00:00
TheJeterLP
fabc4e0548 fix: enable wide-search-bar by default (#67) 2022-07-08 00:32:29 +02:00
TheJeterLP
7f64a8bcab docs(debugging): Show how to use the debug logger 2022-07-07 18:58:09 +02:00
semantic-release-bot
1f29541aa7 chore(release): 0.21.6 [skip ci]
## [0.21.6](https://github.com/revanced/revanced-integrations/compare/v0.21.5...v0.21.6) (2022-07-07)

### Bug Fixes

* use Log.d for debugging ([#66](https://github.com/revanced/revanced-integrations/issues/66)) ([605124b](605124bc60))
2022-07-07 16:54:18 +00:00
TheJeterLP
605124bc60 fix: use Log.d for debugging (#66) 2022-07-07 18:50:42 +02:00
semantic-release-bot
f74a11523f chore(release): 0.21.5 [skip ci]
## [0.21.5](https://github.com/revanced/revanced-integrations/compare/v0.21.4...v0.21.5) (2022-07-07)

### Bug Fixes

* don't enable debug log by default ([bf7f138](bf7f138615))
2022-07-07 09:47:34 +00:00
TheJeterLP
bf7f138615 fix: don't enable debug log by default 2022-07-07 11:44:48 +02:00
semantic-release-bot
f29c608808 chore(release): 0.21.4 [skip ci]
## [0.21.4](https://github.com/revanced/revanced-integrations/compare/v0.21.3...v0.21.4) (2022-07-06)

### Bug Fixes

* change overlay time of swipe-controls ([#60](https://github.com/revanced/revanced-integrations/issues/60)) ([7da963c](7da963cf8e))
2022-07-06 20:38:59 +00:00
EXAM454
7da963cf8e fix: change overlay time of swipe-controls (#60)
* Update FensterOverlayController.kt

change overlay time to 250ms for fast volume & brightness panel switch. Also 2sec is iritating.

* Update FensterOverlayController.kt
2022-07-06 22:36:12 +02:00
semantic-release-bot
d7161938f3 chore(release): 0.21.3 [skip ci]
## [0.21.3](https://github.com/revanced/revanced-integrations/compare/v0.21.2...v0.21.3) (2022-07-06)

### Bug Fixes

* Reduce padding DPI for swipe zones ([b944f6b](b944f6bd59))
2022-07-06 18:26:20 +00:00
EXAM454
b944f6bd59 fix: Reduce padding DPI for swipe zones 2022-07-06 20:23:07 +02:00
semantic-release-bot
eb41894d0a chore(release): 0.21.2 [skip ci]
## [0.21.2](https://github.com/revanced/revanced-integrations/compare/v0.21.1...v0.21.2) (2022-07-06)

### Bug Fixes

* remove long-press from swipe-controls ([7c559bb](7c559bb13c))
2022-07-06 18:16:34 +00:00
OxrxL
1dcbed7eaf refactor: Litho comments blockage generalization (#57) 2022-07-06 20:14:00 +02:00
EXAM454
7c559bb13c fix: remove long-press from swipe-controls 2022-07-06 20:13:27 +02:00
semantic-release-bot
fe8f7cb62f chore(release): 0.21.1 [skip ci]
## [0.21.1](https://github.com/revanced/revanced-integrations/compare/v0.21.0...v0.21.1) (2022-07-05)

### Bug Fixes

* fix build not creating new release ([9c981f7](9c981f7203))
2022-07-05 20:41:17 +00:00
Joey Peter
9c981f7203 fix: fix build not creating new release 2022-07-05 22:38:35 +02:00
Joey Peter
ada1ac160c build: Trigger Release 2022-07-05 22:34:23 +02:00
Joey Peter
0476299570 refactor: move settings to SettingsEnum (#49) 2022-07-05 22:31:13 +02:00
semantic-release-bot
7bd3b07559 chore(release): 0.21.0 [skip ci]
# [0.21.0](https://github.com/revanced/revanced-integrations/compare/v0.20.1...v0.21.0) (2022-07-05)

### Features

* `swipe-controls` ([#50](https://github.com/revanced/revanced-integrations/issues/50)) ([4e27c9f](4e27c9f88c))
2022-07-05 20:05:14 +00:00
Chris
4e27c9f88c feat: swipe-controls (#50) 2022-07-05 22:02:27 +02:00
222 changed files with 6818 additions and 5421 deletions

59
.github/ISSUE_TEMPLATE/bug-issue.yml vendored Normal file
View File

@@ -0,0 +1,59 @@
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

8
.github/ISSUE_TEMPLATE/config.yml vendored Normal file
View File

@@ -0,0 +1,8 @@
blank_issues_enabled: false
contact_links:
- name: 📃 Documentation
url: https://github.com/revanced/revanced-documentation/
about: Don't know how or where to start? Check out our documentation!
- name: 🗨 Discussions
url: https://github.com/revanced/revanced-suggestions/discussions
about: Got something you think should change or be added? Search for or start a new discussion!

View File

@@ -0,0 +1,46 @@
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

@@ -16,7 +16,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Cancel Previous Runs
uses: styfle/cancel-workflow-action@0.9.0
uses: styfle/cancel-workflow-action@0.11.0
with:
access_token: ${{ secrets.GITHUB_TOKEN }}
- name: Checkout Repo
@@ -27,7 +27,7 @@ jobs:
java-version: '11'
distribution: 'zulu'
- name: Setup Node.js
uses: actions/setup-node@v2
uses: actions/setup-node@v3
with:
node-version: "lts/*"
- name: Build with Gradle
@@ -37,4 +37,4 @@ jobs:
- name: Release
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: npx semantic-release
run: npx semantic-release

View File

@@ -7,7 +7,11 @@
}
],
"plugins": [
"@semantic-release/commit-analyzer",
["@semantic-release/commit-analyzer", {
"releaseRules": [
{"type": "build", "release": "patch"}
]
}],
"@semantic-release/release-notes-generator",
"@semantic-release/changelog",
"gradle-semantic-release-plugin",
@@ -31,4 +35,4 @@
}
]
]
}
}

File diff suppressed because it is too large Load Diff

View File

@@ -1 +1,8 @@
# ReVanced Integrations
# ReVanced Integrations
# How to use debugging:
- Usage on Windows: ```adb logcat | findstr "revanced" > log.txt```
- Usage on Linux: ```adb logcat | grep --line-buffered "revanced" > log.txt```
This will write the log to a file called log.txt which you can view then.

2
app/.gitignore vendored
View File

@@ -1 +1 @@
/build
/build

View File

@@ -1,39 +0,0 @@
apply plugin: 'com.android.application'
android {
compileSdkVersion 32
namespace 'app.revanced.integrations'
defaultConfig {
applicationId "app.revanced.integrations"
minSdkVersion 23
targetSdkVersion 32
versionCode 1
versionName "1.0"
multiDexEnabled false
Properties properties = new Properties()
if (rootProject.file("local.properties").exists()) {
properties.load(rootProject.file("local.properties").newDataInputStream())
}
buildConfigField "String", "YT_API_KEY", "\"${properties.getProperty("youtubeAPIKey", "")}\""
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_11
targetCompatibility JavaVersion.VERSION_11
}
}
dependencies {
compileOnly 'androidx.annotation:annotation:1.4.0'
compileOnly 'androidx.constraintlayout:constraintlayout:2.1.4'
}

49
app/build.gradle.kts Normal file
View File

@@ -0,0 +1,49 @@
import java.io.FileInputStream
import java.util.Properties
plugins {
id("com.android.application")
id("org.jetbrains.kotlin.android")
}
android {
compileSdk = 33
buildToolsVersion = "33.0.0"
namespace = "app.revanced.integrations"
defaultConfig {
applicationId = "app.revanced.integrations"
minSdk = 23
targetSdk = 33
versionCode = 1
versionName = "1.0"
multiDexEnabled = false
val properties = Properties()
if (rootProject.file("local.properties").exists()) {
properties.load(FileInputStream(rootProject.file("local.properties")))
}
buildConfigField("String", "YT_API_KEY", "\"${properties.getProperty("youtubeAPIKey", "")}\"")
}
buildTypes {
release {
isMinifyEnabled = true
proguardFiles(getDefaultProguardFile("proguard-android-optimize.txt"), "proguard-rules.pro")
}
}
compileOptions {
sourceCompatibility(JavaVersion.VERSION_11)
targetCompatibility(JavaVersion.VERSION_11)
}
kotlinOptions {
jvmTarget = JavaVersion.VERSION_11.toString()
}
}
dependencies {
compileOnly(project(mapOf("path" to ":dummy")))
compileOnly("androidx.annotation:annotation:1.5.0")
compileOnly("androidx.appcompat:appcompat:1.5.1")
}

View File

@@ -18,4 +18,11 @@
# If you keep the line number information, uncomment this to
# hide the original source file name.
#-renamesourcefileattribute SourceFile
#-renamesourcefileattribute SourceFile
-dontobfuscate
-keep class app.revanced.** {
*;
}
-keep class com.google.** {
*;
}

View File

@@ -2,4 +2,4 @@
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.SCHEDULE_EXACT_ALARM" />
</manifest>
</manifest>

View File

@@ -8,13 +8,8 @@ import android.widget.LinearLayout;
import android.widget.RelativeLayout;
import android.widget.Toolbar;
import app.revanced.integrations.patches.HideShortsButtonPatch;
import app.revanced.integrations.settings.SettingsEnum;
import app.revanced.integrations.utils.LogHelper;
/**
* API Class that provides the logic to the Patch classes. All methods in here should be protected/private and only be accessed from a Patch class.
*/
public class AdRemoverAPI {
/**
@@ -22,6 +17,7 @@ public class AdRemoverAPI {
*
* @param view
*/
//ToDo: refactor this
public static void HideViewWithLayout1dp(View view) {
if (view instanceof LinearLayout) {
LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(1, 1);
@@ -43,101 +39,4 @@ public class AdRemoverAPI {
}
}
/**
* Removes the Create button
*
* @param view
*/
public static void hideCreateButton(View view) {
String message = SettingsEnum.CREATE_BUTTON_SHOWN_BOOLEAN.getBoolean() ? "Create button: Shown" : "Create button: Hidden";
LogHelper.debug(AdRemoverAPI.class, message);
if (SettingsEnum.CREATE_BUTTON_SHOWN_BOOLEAN.getBoolean()) {
view.setVisibility(View.VISIBLE);
} else {
view.setVisibility(View.GONE);
}
}
/**
* Removes the shorts button
*
* @param view
*/
public static void hideShortsButton(View view) {
if (HideShortsButtonPatch.lastPivotTab != null && HideShortsButtonPatch.lastPivotTab.name() == "TAB_SHORTS") {
String message = SettingsEnum.SHORTS_BUTTON_SHOWN_BOOLEAN.getBoolean() ? "Shorts button: shown" : "Shorts button: hidden";
LogHelper.debug(AdRemoverAPI.class, message);
if (!SettingsEnum.SHORTS_BUTTON_SHOWN_BOOLEAN.getBoolean()) {
view.setVisibility(View.GONE);
}
}
}
/*
private static void inspectComponentHost(Object item) {
StackTraceElement[] stackTraceElements = Thread.currentThread().getStackTrace();
if (stackTraceElements.length <= 3) {
LogHelper.debug("Litho", "Couldn't locate the method called from.");
} else {
String sb = "Called from method: " +
stackTraceElements[3].toString() + "\n";
LogHelper.debug("Litho", sb);
}
if (item == null) {
LogHelper.debug("Litho", "Item is null.");
} else if (item.getClass().getSimpleName().contains("cwl")) {
LogHelper.debug("Litho", "Item is a cwl item.");
LogHelper.debug("Litho", getViewHierarchy((ViewGroup) item));
} else {
LogHelper.debug("Litho", "Item is not a cwl item.");
}
}
private static String getViewHierarchy(ViewGroup v) {
StringBuffer buf = new StringBuffer();
printViews(v, buf, 0);
return buf.toString();
}
private static String printViews(ViewGroup v, StringBuffer buf, int level) {
int childCount = v.getChildCount();
v.getId();
indent(buf, level);
buf.append(v.getClass().getName());
buf.append(" children:");
buf.append(childCount);
buf.append(" id:").append(v.getId());
buf.append("\n");
for (int i = 0; i < childCount; i++) {
View child = v.getChildAt(i);
if (child instanceof ViewGroup) {
printViews((ViewGroup) child, buf, level + 1);
} else {
indent(buf, level + 1);
buf.append(child.getClass().getName());
buf.append(" id:").append(child.getId());
buf.append("\n");
}
}
return buf.toString();
}
private static void indent(StringBuffer buf, int level) {
for (int i = 0; i < level; i++) {
buf.append(" ");
}
}
private static void recursiveLoopChildren(ViewGroup parent) {
for (int i = 0; i < parent.getChildCount(); i++) {
View child = parent.getChildAt(i);
if (child instanceof ViewGroup) {
recursiveLoopChildren((ViewGroup) child);
child.setVisibility(View.GONE);
} else if (child != null) {
child.setVisibility(View.GONE);
}
}
}*/
}

View File

@@ -1,202 +0,0 @@
package app.revanced.integrations.adremover;
import android.os.Build;
import androidx.annotation.RequiresApi;
import java.nio.ByteBuffer;
import java.nio.charset.StandardCharsets;
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
import app.revanced.integrations.settings.SettingsEnum;
import app.revanced.integrations.utils.LogHelper;
import app.revanced.integrations.utils.ReVancedUtils;
import app.revanced.integrations.utils.SharedPrefHelper;
public class LithoAdRemoval {
private static boolean getBoolean(String key, boolean _default) {
return SharedPrefHelper.getBoolean(Objects.requireNonNull(ReVancedUtils.getContext()), SharedPrefHelper.SharedPrefNames.YOUTUBE, key, _default);
}
private static boolean isCommunityGuidelines() {
return getBoolean("experimental_community_guidelines", true);
}
private static boolean isExperimentalAdRemoval() {
return getBoolean("experimental_ad_removal", true);
}
private static boolean isExperimentalCommentsRemoval() {
return getBoolean("experimental_comments", false);
}
private static boolean isExperimentalCommunityPostRemoval() {
return getBoolean("experimental_community_posts", false);
}
private static boolean isExperimentalCompactBannerRemoval() {
return getBoolean("experimental_compact_banner", false);
}
private static boolean isExperimentalEmergencyBoxRemoval() {
return getBoolean("experimental_emergency_box", true);
}
private static boolean isExperimentalInfoPanelRemoval() {
return getBoolean("experimental_info_panel", true);
}
private static boolean isExperimentalMedicalPanelRemoval() {
return getBoolean("experimental_medical_panel", true);
}
private static boolean isExperimentalMerchandiseRemoval() {
return getBoolean("experimental_merchandise", true);
}
private static boolean isExperimentalMovieRemoval() {
return getBoolean("experimental_movie", true);
}
private static boolean isExperimentalPaidContentRemoval() {
return getBoolean("experimental_paid_content", true);
}
private static boolean isExperimentalSuggestedForYou() {
return getBoolean("experimental_suggested_for_you", true);
}
private static boolean isInFeedSurvey() {
return getBoolean("experimental_in_feed_survey", false);
}
private static boolean isShortsShelf() {
return getBoolean("experimental_shorts_shelf", true);
}
@RequiresApi(api = Build.VERSION_CODES.N)
public static boolean containsAd(String value, ByteBuffer buffer) {
try {
if (!(isExperimentalAdRemoval() ||
isExperimentalMerchandiseRemoval() ||
isExperimentalPaidContentRemoval() || isExperimentalCommunityPostRemoval() ||
isExperimentalMovieRemoval() ||
isExperimentalCompactBannerRemoval() ||
isExperimentalCommentsRemoval() ||
isInFeedSurvey() ||
isShortsShelf() ||
isCommunityGuidelines()) ||
value == null ||
value.isEmpty()
) {
return false;
}
List<String> blockList = new ArrayList<>();
List<String> bufferBlockList = new ArrayList<>();
if (isExperimentalAdRemoval()) {
blockList.add("_ad");
blockList.add("ad_badge");
blockList.add("ads_video_with_context");
blockList.add("cell_divider");
blockList.add("reels_player_overlay");
blockList.add("shelf_header");
blockList.add("text_search_ad_with_description_first");
blockList.add("watch_metadata_app_promo");
bufferBlockList.add("ad_cpn");
}
if (isExperimentalSuggestedForYou()) {
bufferBlockList.add("watch-vrecH");
}
if (isExperimentalMovieRemoval()) {
blockList.add("compact_movie");
blockList.add("horizontal_movie_shelf");
blockList.add("movie_and_show_upsell_card");
bufferBlockList.add("YouTube Movies");
}
if (containsAny(value, "home_video_with_context", "related_video_with_context") &&
bufferBlockList.stream().anyMatch(StandardCharsets.UTF_8.decode(buffer).toString()::contains)
) return true;
if (isExperimentalCommentsRemoval()) {
blockList.add("comments_composite_entry_point");
}
if (isCommunityGuidelines()) {
blockList.add("community_guidelines");
}
if (isExperimentalCompactBannerRemoval()) {
blockList.add("compact_banner");
}
if (isExperimentalEmergencyBoxRemoval()) {
blockList.add("emergency_onebox");
}
if (isInFeedSurvey()) {
blockList.add("in_feed_survey");
}
if (isExperimentalMedicalPanelRemoval()) {
blockList.add("medical_panel");
}
if (isExperimentalPaidContentRemoval()) {
blockList.add("paid_content_overlay");
}
if (isExperimentalCommunityPostRemoval()) {
blockList.add("post_base_wrapper");
}
if (isExperimentalMerchandiseRemoval()) {
blockList.add("product_carousel");
}
if (isShortsShelf()) {
blockList.add("shorts_shelf");
}
if (isExperimentalInfoPanelRemoval()) {
blockList.add("publisher_transparency_panel");
blockList.add("single_item_information_panel");
}
if (containsAny(value,
"home_video_with_context",
"related_video_with_context",
"search_video_with_context",
"menu",
"root",
"-count",
"-space",
"-button"
)) return false;
if (blockList.stream().anyMatch(value::contains)) {
LogHelper.debug(LithoAdRemoval.class, value);
return true;
}
if (!SettingsEnum.DEBUG_BOOLEAN.getBoolean()) return false;
if (value.contains("related_video_with_context")) {
LogHelper.debug(LithoAdRemoval.class, value + " | " + bytesToHex(buffer.array()));
return false;
}
LogHelper.debug(LithoAdRemoval.class, value);
return false;
} catch (
Exception ex) {
LogHelper.printException(LithoAdRemoval.class, ex.getMessage(), ex);
return false;
}
}
private static boolean containsAny(String value, String... targets) {
for (String string : targets)
if (value.contains(string)) return true;
return false;
}
private static String bytesToHex(byte[] bytes) {
StringBuilder builder = new StringBuilder(bytes.length * 2);
for (byte b : bytes)
builder.append(String.format("%02x", b));
return builder.toString();
}
}

View File

@@ -1,179 +0,0 @@
package app.revanced.integrations.adremover.whitelist;
import static app.revanced.integrations.sponsorblock.player.VideoInformation.channelName;
import static app.revanced.integrations.sponsorblock.player.ui.SlimButtonContainer.adBlockButton;
import static app.revanced.integrations.sponsorblock.player.ui.SlimButtonContainer.sbWhitelistButton;
import static app.revanced.integrations.sponsorblock.StringRef.str;
import android.content.Context;
import android.content.SharedPreferences;
import android.widget.Toast;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Collections;
import java.util.EnumMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import app.revanced.integrations.settings.SettingsEnum;
import app.revanced.integrations.utils.LogHelper;
import app.revanced.integrations.sponsorblock.player.ChannelModel;
import app.revanced.integrations.sponsorblock.player.VideoInformation;
import app.revanced.integrations.utils.ObjectSerializer;
import app.revanced.integrations.utils.ReVancedUtils;
import app.revanced.integrations.utils.SharedPrefHelper;
public class Whitelist {
private static final Map<WhitelistType, ArrayList<ChannelModel>> whitelistMap = parseWhitelist(ReVancedUtils.getContext());
private static final Map<WhitelistType, Boolean> enabledMap = parseEnabledMap(ReVancedUtils.getContext());
private Whitelist() {
}
// injected calls
public static boolean shouldShowAds() {
return isWhitelisted(WhitelistType.ADS);
}
public static void setChannelName(String channelName) {
LogHelper.debug(Whitelist.class, "channel name set to " + channelName);
VideoInformation.channelName = channelName;
if (enabledMap.get(WhitelistType.ADS) && adBlockButton != null) {
adBlockButton.changeEnabled(shouldShowAds());
}
if (enabledMap.get(WhitelistType.SPONSORBLOCK) && sbWhitelistButton != null) {
sbWhitelistButton.changeEnabled(isChannelSBWhitelisted());
}
}
// the rest
public static boolean isChannelSBWhitelisted() {
return isWhitelisted(WhitelistType.SPONSORBLOCK);
}
private static Map<WhitelistType, ArrayList<ChannelModel>> parseWhitelist(Context context) {
if (context == null) {
return Collections.emptyMap();
}
WhitelistType[] whitelistTypes = WhitelistType.values();
Map<WhitelistType, ArrayList<ChannelModel>> whitelistMap = new EnumMap<>(WhitelistType.class);
for (WhitelistType whitelistType : whitelistTypes) {
SharedPreferences preferences = SharedPrefHelper.getPreferences(context, whitelistType.getPreferencesName());
String serializedChannels = preferences.getString("channels", null);
if (serializedChannels == null) {
LogHelper.debug(Whitelist.class, String.format("channels string was null for %s whitelisting", whitelistType));
whitelistMap.put(whitelistType, new ArrayList<>());
continue;
}
try {
ArrayList<ChannelModel> deserializedChannels = (ArrayList<ChannelModel>) ObjectSerializer.deserialize(serializedChannels);
if (SettingsEnum.DEBUG_BOOLEAN.getBoolean()) {
LogHelper.debug(Whitelist.class, serializedChannels);
for (ChannelModel channel : deserializedChannels) {
LogHelper.debug(Whitelist.class, String.format("Whitelisted channel %s (%s) for type %s", channel.getAuthor(), channel.getChannelId(), whitelistType));
}
}
whitelistMap.put(whitelistType, deserializedChannels);
} catch (Exception ex) {
ex.printStackTrace();
}
}
return whitelistMap;
}
private static Map<WhitelistType, Boolean> parseEnabledMap(Context context) {
if (context == null) {
return Collections.emptyMap();
}
Map<WhitelistType, Boolean> enabledMap = new EnumMap<>(WhitelistType.class);
for (WhitelistType whitelistType : WhitelistType.values()) {
enabledMap.put(whitelistType, SharedPrefHelper.getBoolean(context, whitelistType.getSharedPreferencesName(), whitelistType.getPreferenceEnabledName()));
}
return enabledMap;
}
private static boolean isWhitelisted(WhitelistType whitelistType) {
boolean isEnabled = false;
if(enabledMap.containsKey(whitelistType) && enabledMap.get(whitelistType) != null) {
isEnabled = enabledMap.get(whitelistType);
}
if (!isEnabled) {
return false;
}
if (channelName == null || channelName.trim().isEmpty()) {
LogHelper.debug(Whitelist.class, String.format("Can't check whitelist status for %s because channel name was missing", whitelistType));
return false;
}
List<ChannelModel> whitelistedChannels = whitelistMap.get(whitelistType);
for (ChannelModel channel : whitelistedChannels) {
if (channel.getAuthor().equals(channelName)) {
LogHelper.debug(Whitelist.class, String.format("Whitelist for channel %s for type %s", channelName, whitelistType));
return true;
}
}
return false;
}
public static boolean addToWhitelist(WhitelistType whitelistType, Context context, ChannelModel channel) {
ArrayList<ChannelModel> whitelisted = whitelistMap.get(whitelistType);
for (ChannelModel whitelistedChannel : whitelisted) {
String channelId = channel.getChannelId();
if (whitelistedChannel.getChannelId().equals(channelId)) {
LogHelper.debug(Whitelist.class, String.format("Tried whitelisting an existing channel again. Old info (%1$s | %2$s) - New info (%3$s | %4$s)",
whitelistedChannel.getAuthor(), channelId, channelName, channelId));
return true;
}
}
whitelisted.add(channel);
return updateWhitelist(whitelistType, whitelisted, context);
}
public static void removeFromWhitelist(WhitelistType whitelistType, Context context, String channelName) {
ArrayList<ChannelModel> channels = whitelistMap.get(whitelistType);
Iterator<ChannelModel> iterator = channels.iterator();
while (iterator.hasNext()) {
ChannelModel channel = iterator.next();
if (channel.getAuthor().equals(channelName)) {
iterator.remove();
break;
}
}
boolean success = updateWhitelist(whitelistType, channels, context);
String friendlyName = whitelistType.getFriendlyName();
if (success) {
Toast.makeText(context, str("revanced_whitelisting_removed", channelName, friendlyName), Toast.LENGTH_SHORT).show();
} else {
Toast.makeText(context, str("revanced_whitelisting_remove_failed", channelName, friendlyName), Toast.LENGTH_SHORT).show();
}
}
private static boolean updateWhitelist(WhitelistType whitelistType, ArrayList<ChannelModel> channels, Context context) {
if (context == null) {
return false;
}
SharedPreferences preferences = SharedPrefHelper.getPreferences(context, whitelistType.getPreferencesName());
SharedPreferences.Editor editor = preferences.edit();
try {
editor.putString("channels", ObjectSerializer.serialize(channels));
editor.apply();
return true;
} catch (IOException e) {
e.printStackTrace();
return false;
}
}
public static void setEnabled(WhitelistType whitelistType, boolean enabled) {
enabledMap.put(whitelistType, enabled);
}
}

View File

@@ -1,38 +0,0 @@
package app.revanced.integrations.adremover.whitelist;
import static app.revanced.integrations.sponsorblock.StringRef.str;
import app.revanced.integrations.utils.SharedPrefHelper;
public enum WhitelistType {
ADS(SharedPrefHelper.SharedPrefNames.YOUTUBE, "revanced_whitelist_ads_enabled"),
SPONSORBLOCK(SharedPrefHelper.SharedPrefNames.SPONSOR_BLOCK, "revanced_whitelist_sb_enabled");
private final String friendlyName;
private final String preferencesName;
private final String preferenceEnabledName;
private final SharedPrefHelper.SharedPrefNames name;
WhitelistType(SharedPrefHelper.SharedPrefNames name, String preferenceEnabledName) {
this.friendlyName = str("revanced_whitelisting_" + name().toLowerCase());
this.name = name;
this.preferencesName = "whitelist_" + name();
this.preferenceEnabledName = preferenceEnabledName;
}
public String getFriendlyName() {
return friendlyName;
}
public SharedPrefHelper.SharedPrefNames getSharedPreferencesName() {
return name;
}
public String getPreferencesName() {
return preferencesName;
}
public String getPreferenceEnabledName() {
return preferenceEnabledName;
}
}

View File

@@ -1,103 +0,0 @@
package app.revanced.integrations.adremover.whitelist.requests;
import static app.revanced.integrations.sponsorblock.player.VideoInformation.currentVideoId;
import static app.revanced.integrations.utils.ReVancedUtils.runOnMainThread;
import static app.revanced.integrations.sponsorblock.StringRef.str;
import android.content.Context;
import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;
import android.view.View;
import android.widget.ImageView;
import android.widget.Toast;
import org.json.JSONObject;
import java.io.IOException;
import java.io.OutputStream;
import java.net.HttpURLConnection;
import java.nio.charset.StandardCharsets;
import app.revanced.integrations.utils.LogHelper;
import app.revanced.integrations.sponsorblock.player.ChannelModel;
import app.revanced.integrations.adremover.whitelist.Whitelist;
import app.revanced.integrations.adremover.whitelist.WhitelistType;
import app.revanced.integrations.BuildConfig;
public class WhitelistRequester {
private static final String YT_API_URL = "https://www.youtube.com/youtubei/v1/";
private WhitelistRequester() {
}
public static void addChannelToWhitelist(WhitelistType whitelistType, View view, ImageView buttonIcon, Context context) {
try {
HttpURLConnection connection = getConnectionFromRoute(WhitelistRoutes.GET_CHANNEL_DETAILS, BuildConfig.YT_API_KEY);
connection.setRequestProperty("Content-Type", "application/json; utf-8");
connection.setRequestProperty("Accept", "application/json");
connection.setDoOutput(true);
connection.setConnectTimeout(2 * 1000);
String versionName = getVersionName(context);
String jsonInputString = "{\"context\": {\"client\": { \"clientName\": \"Android\", \"clientVersion\": \"" + versionName + "\" } }, \"videoId\": \"" + currentVideoId + "\"}";
try (OutputStream os = connection.getOutputStream()) {
byte[] input = jsonInputString.getBytes(StandardCharsets.UTF_8);
os.write(input, 0, input.length);
}
int responseCode = connection.getResponseCode();
if (responseCode == 200) {
JSONObject json = getJSONObject(connection);
JSONObject videoInfo = json.getJSONObject("videoDetails");
ChannelModel channelModel = new ChannelModel(videoInfo.getString("author"), videoInfo.getString("channelId"));
String author = channelModel.getAuthor();
LogHelper.debug(WhitelistRequester.class, "channelId " + channelModel.getChannelId() + " fetched for author " + author);
boolean success = Whitelist.addToWhitelist(whitelistType, context, channelModel);
String whitelistTypeName = whitelistType.getFriendlyName();
runOnMainThread(() -> {
if (success) {
buttonIcon.setEnabled(whitelistType != WhitelistType.SPONSORBLOCK);
Toast.makeText(context, str("revanced_whitelisting_added", author, whitelistTypeName), Toast.LENGTH_SHORT).show();
} else {
buttonIcon.setEnabled(whitelistType == WhitelistType.SPONSORBLOCK);
Toast.makeText(context, str("revanced_whitelisting_add_failed", author, whitelistTypeName), Toast.LENGTH_SHORT).show();
}
view.setEnabled(true);
});
} else {
LogHelper.debug(WhitelistRequester.class, "player fetch response was " + responseCode);
runOnMainThread(() -> {
Toast.makeText(context, str("revanced_whitelisting_fetch_failed", responseCode), Toast.LENGTH_SHORT).show();
buttonIcon.setEnabled(true);
view.setEnabled(true);
});
}
connection.disconnect();
} catch (Exception ex) {
LogHelper.printException(WhitelistRequester.class, "Failed to fetch channelId", ex);
runOnMainThread(() -> view.setEnabled(true));
}
}
// helpers
private static HttpURLConnection getConnectionFromRoute(Route route, String... params) throws IOException {
return Requester.getConnectionFromRoute(YT_API_URL, route, params);
}
private static JSONObject getJSONObject(HttpURLConnection connection) throws Exception {
return Requester.getJSONObject(connection);
}
private static String getVersionName(Context context) {
try {
PackageInfo pInfo = context.getPackageManager().getPackageInfo(context.getPackageName(), 0);
String version = pInfo.versionName;
return (version);
} catch (PackageManager.NameNotFoundException e) {
e.printStackTrace();
}
return ("17.24.34");
}
}

View File

@@ -1,10 +0,0 @@
package app.revanced.integrations.adremover.whitelist.requests;
import static app.revanced.integrations.adremover.whitelist.requests.Route.Method.POST;
public class WhitelistRoutes {
public static final Route GET_CHANNEL_DETAILS = new Route(POST, "player?key={api_key}");
private WhitelistRoutes() {
}
}

View File

@@ -3,10 +3,8 @@ package app.revanced.integrations.patches;
import app.revanced.integrations.settings.SettingsEnum;
public class AutoRepeatPatch {
//Used by app.revanced.patches.youtube.layout.autorepeat.patch.AutoRepeatPatch
public static boolean shouldAutoRepeat() {
return SettingsEnum.PREFERRED_AUTO_REPEAT_BOOLEAN.getBoolean();
return SettingsEnum.PREFERRED_AUTO_REPEAT.getBoolean();
}
}

View File

@@ -7,6 +7,6 @@ public class BrandingWaterMarkPatch {
//Used by: app.revanced.patches.youtube.layout.watermark.patch.HideWatermarkPatch
public static boolean isBrandingWatermarkShown() {
return SettingsEnum.BRANDING_SHOWN_BOOLEAN.getBoolean();
return SettingsEnum.BRANDING_SHOWN.getBoolean();
}
}

View File

@@ -0,0 +1,60 @@
package app.revanced.integrations.patches;
import app.revanced.integrations.settings.SettingsEnum;
import app.revanced.integrations.utils.LogHelper;
final class ButtonsPatch extends Filter {
private final BlockRule actionButtonsRule;
private final BlockRule dislikeRule;
private final BlockRule actionBarRule;
private final BlockRule[] rules;
public ButtonsPatch() {
BlockRule like = new BlockRule(SettingsEnum.HIDE_LIKE_BUTTON, "|like_button");
dislikeRule = new BlockRule(SettingsEnum.HIDE_DISLIKE_BUTTON, "dislike_button");
BlockRule download = new BlockRule(SettingsEnum.HIDE_DOWNLOAD_BUTTON, "download_button");
actionButtonsRule = new BlockRule(SettingsEnum.HIDE_ACTION_BUTTON, "ContainerType|video_action_button");
BlockRule playlist = new BlockRule(SettingsEnum.HIDE_PLAYLIST_BUTTON, "save_to_playlist_button");
rules = new BlockRule[]{like, dislikeRule, download, actionButtonsRule, playlist};
actionBarRule = new BlockRule(null, "video_action_bar");
this.pathRegister.registerAll(
like,
dislikeRule,
download,
playlist
);
}
private boolean hideActionBar() {
for (BlockRule rule : rules) if (!rule.isEnabled()) return false;
return true;
}
@Override
public boolean filter(final String path, final String identifier) {
if (hideActionBar() && actionBarRule.check(identifier).isBlocked()) return true;
var currentIsActionButton = actionButtonsRule.check(path).isBlocked();
if (dislikeRule.check(path).isBlocked()) ActionButton.doNotBlockCounter = 4;
if (currentIsActionButton && ActionButton.doNotBlockCounter-- > 0) {
if (SettingsEnum.HIDE_SHARE_BUTTON.getBoolean()) {
LogHelper.debug(ButtonsPatch.class, "Hiding share button");
return true;
} else return false;
}
if ((currentIsActionButton && ActionButton.doNotBlockCounter <= 0 && actionButtonsRule.isEnabled()) || pathRegister.contains(path)) {
LogHelper.debug(ButtonsPatch.class, "Blocked: " + path);
return true;
} else return false;
}
static class ActionButton {
public static int doNotBlockCounter = 4;
}
}

View File

@@ -0,0 +1,31 @@
package app.revanced.integrations.patches;
import app.revanced.integrations.settings.SettingsEnum;
import app.revanced.integrations.utils.LogHelper;
final class CommentsPatch extends Filter {
public CommentsPatch() {
var comments = new BlockRule(SettingsEnum.HIDE_COMMENTS_SECTION, "video_metadata_carousel", "_comments");
var previewComment = new BlockRule(
SettingsEnum.HIDE_PREVIEW_COMMENT,
"carousel_item",
"comments_entry_point_teaser",
"comments_entry_point_simplebox"
);
this.pathRegister.registerAll(
comments,
previewComment
);
}
@Override
boolean filter(String path, String _identifier) {
if (!pathRegister.contains(path)) return false;
LogHelper.debug(CommentsPatch.class, "Blocked: " + path);
return true;
}
}

View File

@@ -0,0 +1,13 @@
package app.revanced.integrations.patches;
import app.revanced.integrations.settings.SettingsEnum;
public class DisableAutoCaptionsPatch {
public static boolean captionsButtonDisabled;
public static boolean autoCaptionsEnabled() {
return SettingsEnum.CAPTIONS_ENABLED.getBoolean();
}
}

View File

@@ -0,0 +1,10 @@
package app.revanced.integrations.patches;
import app.revanced.integrations.settings.SettingsEnum;
public class DisablePlayerPopupPanelsPatch {
//Used by app.revanced.patches.youtube.layout.playerpopuppanels.patch.PlayerPopupPanelsPatch
public static boolean disablePlayerPopupPanels() {
return SettingsEnum.PLAYER_POPUP_PANELS.getBoolean();
}
}

View File

@@ -0,0 +1,10 @@
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_STARTUP_SHORTS_PLAYER.getBoolean();
}
}

View File

@@ -0,0 +1,40 @@
package app.revanced.integrations.patches;
import app.revanced.integrations.settings.SettingsEnum;
import app.revanced.integrations.utils.LogHelper;
public final class FixPlaybackPatch {
private static Thread currentThread = null;
private static String videoId;
public static void newVideoLoaded(final String videoId) {
if (!SettingsEnum.FIX_PLAYBACK.getBoolean()) return;
if (videoId.equals(FixPlaybackPatch.videoId)) return;
else FixPlaybackPatch.videoId = videoId;
if (currentThread != null) {
currentThread.interrupt();
}
currentThread = new Thread(() -> {
try {
while (true) {
var currentVideoTime = VideoInformation.getVideoTime();
if (currentVideoTime > -1) {
VideoInformation.seekTo(Integer.MAX_VALUE);
VideoInformation.seekTo(currentVideoTime);
return;
}
Thread.sleep(10);
}
} catch (InterruptedException e) {
LogHelper.debug(FixPlaybackPatch.class, "Thread was interrupted");
}
});
currentThread.start();
}
}

View File

@@ -0,0 +1,13 @@
package app.revanced.integrations.patches;
import android.view.View;
import app.revanced.integrations.settings.SettingsEnum;
public class FullscreenPanelsRemoverPatch {
public static int getFullscreenPanelsVisibility() {
return SettingsEnum.FULLSCREEN_PANELS_SHOWN.getBoolean() ? View.VISIBLE : View.GONE;
}
}

View File

@@ -0,0 +1,173 @@
package app.revanced.integrations.patches;
import android.view.View;
import app.revanced.integrations.adremover.AdRemoverAPI;
import app.revanced.integrations.settings.SettingsEnum;
import app.revanced.integrations.utils.LogHelper;
import app.revanced.integrations.utils.ReVancedUtils;
public final class GeneralAdsPatch extends Filter {
private final String[] IGNORE = {
"home_video_with_context",
"related_video_with_context",
"comment_thread", // skip blocking anything in the comments
"download_",
"library_recent_shelf",
"menu",
"root",
"-count",
"-space",
"-button",
"playlist_add_to_option_wrapper" // do not block on "add to playlist" flyout menu
};
private final BlockRule custom = new CustomBlockRule(
SettingsEnum.ADREMOVER_CUSTOM_ENABLED,
SettingsEnum.ADREMOVER_CUSTOM_REMOVAL
);
public GeneralAdsPatch() {
var communityPosts = new BlockRule(SettingsEnum.ADREMOVER_COMMUNITY_POSTS_REMOVAL, "post_base_wrapper");
var communityGuidelines = new BlockRule(SettingsEnum.ADREMOVER_COMMUNITY_GUIDELINES_REMOVAL, "community_guidelines");
var compactBanner = new BlockRule(SettingsEnum.ADREMOVER_COMPACT_BANNER_REMOVAL, "compact_banner");
var inFeedSurvey = new BlockRule(SettingsEnum.ADREMOVER_FEED_SURVEY_REMOVAL, "in_feed_survey");
var medicalPanel = new BlockRule(SettingsEnum.ADREMOVER_MEDICAL_PANEL_REMOVAL, "medical_panel");
var paidContent = new BlockRule(SettingsEnum.ADREMOVER_PAID_CONTENT_REMOVAL, "paid_content_overlay");
var merchandise = new BlockRule(SettingsEnum.ADREMOVER_MERCHANDISE_REMOVAL, "product_carousel");
var infoPanel = new BlockRule(SettingsEnum.ADREMOVER_INFO_PANEL_REMOVAL, "publisher_transparency_panel", "single_item_information_panel");
var suggestions = new BlockRule(SettingsEnum.ADREMOVER_SUGGESTIONS_REMOVAL, "horizontal_video_shelf");
var latestPosts = new BlockRule(SettingsEnum.ADREMOVER_HIDE_LATEST_POSTS, "post_shelf");
var channelGuidelines = new BlockRule(SettingsEnum.ADREMOVER_HIDE_CHANNEL_GUIDELINES, "channel_guidelines_entry_banner");
var artistCard = new BlockRule(SettingsEnum.HIDE_ARTIST_CARD, "official_card");
var selfSponsor = new BlockRule(SettingsEnum.ADREMOVER_SELF_SPONSOR_REMOVAL, "cta_shelf_card");
var chapterTeaser = new BlockRule(SettingsEnum.ADREMOVER_CHAPTER_TEASER_REMOVAL, "expandable_metadata");
var graySeparator = new BlockRule(SettingsEnum.ADREMOVER_GRAY_SEPARATOR,
"cell_divider" // layout residue (gray line above the buttoned ad),
);
var buttonedAd = new BlockRule(SettingsEnum.ADREMOVER_BUTTONED_REMOVAL,
"video_display_full_buttoned_layout",
"full_width_square_image_layout",
"_ad_with",
"landscape_image_wide_button_layout"
);
var generalAds = new BlockRule(
SettingsEnum.ADREMOVER_GENERAL_ADS_REMOVAL,
"ads_video_with_context",
"banner_text_icon",
"watch_metadata_app_promo",
"video_display_full_layout"
);
var movieAds = new BlockRule(
SettingsEnum.ADREMOVER_MOVIE_REMOVAL,
"browsy_bar",
"compact_movie",
"horizontal_movie_shelf",
"movie_and_show_upsell_card",
"compact_tvfilm_item"
);
this.pathRegister.registerAll(
generalAds,
buttonedAd,
communityPosts,
paidContent,
suggestions,
latestPosts,
movieAds,
chapterTeaser,
communityGuidelines,
compactBanner,
inFeedSurvey,
medicalPanel,
merchandise,
infoPanel,
channelGuidelines,
artistCard,
selfSponsor
);
var carouselAd = new BlockRule(SettingsEnum.ADREMOVER_GENERAL_ADS_REMOVAL,
"carousel_ad"
);
var shorts = new BlockRule(SettingsEnum.ADREMOVER_SHORTS_REMOVAL,
"reels_player_overlay",
"shorts_shelf",
"inline_shorts"
);
this.identifierRegister.registerAll(
shorts,
graySeparator,
carouselAd
);
}
public boolean filter(final String path, final String identifier) {
BlockResult result;
if (custom.isEnabled() && custom.check(path).isBlocked())
result = BlockResult.CUSTOM;
else if (ReVancedUtils.containsAny(path, IGNORE))
result = BlockResult.IGNORED;
else if (pathRegister.contains(path) || identifierRegister.contains(identifier))
result = BlockResult.DEFINED;
else
result = BlockResult.UNBLOCKED;
log(String.format("%s (ID: %s): %s", result.message, identifier, path));
return result.filter;
}
private enum BlockResult {
UNBLOCKED(false, "Unblocked"),
IGNORED(false, "Ignored"),
DEFINED(true, "Blocked"),
CUSTOM(true, "Custom");
final Boolean filter;
final String message;
BlockResult(boolean filter, String message) {
this.filter = filter;
this.message = message;
}
}
/**
* Hide a view.
*
* @param condition The setting to check for hiding the view.
* @param view The view to hide.
*/
private static void hideView(SettingsEnum condition, View view) {
if (!condition.getBoolean()) return;
log("Hiding view with setting: " + condition);
AdRemoverAPI.HideViewWithLayout1dp(view);
}
/**
* Hide the view, which shows ads in the homepage.
*
* @param view The view, which shows ads.
*/
public static void hideAdAttributionView(View view) {
hideView(SettingsEnum.ADREMOVER_GENERAL_ADS_REMOVAL, view);
}
/**
* Hide the view, which shows reels in the homepage.
*
* @param view The view, which shows reels.
*/
public static void hideReelView(View view) {
hideView(SettingsEnum.ADREMOVER_SHORTS_REMOVAL, view);
}
private static void log(String message) {
LogHelper.debug(GeneralAdsPatch.class, message);
}
}

View File

@@ -1,19 +0,0 @@
package app.revanced.integrations.patches;
import android.os.Build;
import androidx.annotation.RequiresApi;
import java.nio.ByteBuffer;
import app.revanced.integrations.adremover.LithoAdRemoval;
public class GeneralBytecodeAdsPatch {
//Used by app.revanced.patches.youtube.ad.general.bytecode.patch.GeneralBytecodeAdsPatch
@RequiresApi(api = Build.VERSION_CODES.N)
public static boolean containsAd(String value, ByteBuffer buffer) {
return LithoAdRemoval.containsAd(value, buffer);
}
}

View File

@@ -0,0 +1,41 @@
package app.revanced.integrations.patches;
import android.view.WindowManager;
import app.revanced.integrations.settings.SettingsEnum;
import app.revanced.integrations.swipecontrols.SwipeControlsHostActivity;
/**
* Patch class for 'hdr-auto-brightness' patch
*
* @usedBy app/revanced/patches/youtube/misc/hdrbrightness/patch/HDRBrightnessPatch
* @smali app/revanced/integrations/patches/HDRAutoBrightnessPatch
*/
public class HDRAutoBrightnessPatch {
/**
* get brightness override for HDR brightness
*
* @param original brightness youtube would normally set
* @return brightness to set on HRD video
* @smali getHDRBrightness(F)F
*/
public static float getHDRBrightness(float original) {
// do nothing if disabled
if (!SettingsEnum.USE_HDR_AUTO_BRIGHTNESS.getBoolean()) {
return original;
}
// override with brightness set by swipe-controls
// only when swipe-controls is active and has overridden the brightness
final SwipeControlsHostActivity swipeControlsHost = SwipeControlsHostActivity.getCurrentHost().get();
if (swipeControlsHost != null
&& swipeControlsHost.getScreen() != null
&& swipeControlsHost.getConfig().getEnableBrightnessControl()
&& !swipeControlsHost.getScreen().isDefaultBrightness()) {
return swipeControlsHost.getScreen().getRawScreenBrightness();
}
// otherwise, set the brightness to auto
return WindowManager.LayoutParams.BRIGHTNESS_OVERRIDE_NONE;
}
}

View File

@@ -1,14 +0,0 @@
package app.revanced.integrations.patches;
import app.revanced.integrations.settings.SettingsEnum;
import app.revanced.integrations.videoswipecontrols.helpers.BrightnessHelper;
public class HDRMaxBrightnessPatch {
//Used by app/revanced/patches/youtube/misc/hdrbrightness/patch/HDRBrightnessPatch
public static float getHDRBrightness(float original) {
if (!SettingsEnum.USE_HDR_BRIGHTNESS_BOOLEAN.getBoolean()) return original;
return SettingsEnum.ENABLE_SWIPE_BRIGHTNESS_BOOLEAN.getBoolean() ? BrightnessHelper.getBrightness() : -1.0f;
}
}

View File

@@ -0,0 +1,14 @@
package app.revanced.integrations.patches;
import android.view.View;
import app.revanced.integrations.adremover.AdRemoverAPI;
import app.revanced.integrations.settings.SettingsEnum;
public class HideAlbumCardsPatch {
//Used by app.revanced.patches.youtube.layout.hidealbumcards.patch.HideAlbumCardsPatch
public static void hideAlbumCards(View view) {
if (!SettingsEnum.HIDE_ALBUM_CARDS.getBoolean()) return;
AdRemoverAPI.HideViewWithLayout1dp(view);
}
}

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