Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat(YouTube): Add 'About' preference to settings menu #2981

Merged

Conversation

LisoUseInAIKyrios
Copy link
Contributor

@LisoUseInAIKyrios LisoUseInAIKyrios commented Apr 2, 2024

Adds a simple 'About' preference to the settings menu that shows the patches version and social links.

Integration changes

@cyberboh
Copy link

cyberboh commented Apr 2, 2024

@LisoUseInAIKyrios Would be nice if it also showing applied integrations version. :)

@LisoUseInAIKyrios
Copy link
Contributor Author

LisoUseInAIKyrios commented Apr 2, 2024

Listing the integrations version is not difficult (do the same manifest lookup, but use an integrations class instead of a patch class).

But ReVanced manager does not mention the integrations version, so the information might be confusing for users. Those who patch with dev release probably know what they have.

Maybe if it was patched with dev it can show integrations version. Otherwise just show the patch release version.

@NBruderman
Copy link

Listing the integrations version is not difficult (do the same manifest lookup, but use an integrations class instead of a patch class).

But ReVanced manager does not mention the integrations version, so the information might be confusing for users. Those who patch with dev release probably know what they have.

Maybe if it was patched with dev it can show integrations version. Otherwise just show the patch release version.

However, sometimes there is an integration version update, without a patches version update. For that case, it would be handy to also show the integrations version.

@oSumAtrIX
Copy link
Member

Integrations aren't meant to be separate to begin with. This is a remnant back from how Vanced dealt with integrations and writing a system around it and supporting that design is not the way to go from here onwards.

@LisoUseInAIKyrios
Copy link
Contributor Author

With this, the call to the Announcements API now includes the patches version. So the announcements can provide more specific notifications on first launch, such as showing the old "You will see announcements here" message if their patch version does not have the playback history issue since their version is fixed.

@oSumAtrIX
Copy link
Member

oSumAtrIX commented Apr 4, 2024

I have conflicting opinions about including the version of the patches in the patched app. Showing which version was used when patching the app should be saved outside of the patched app. For example, ReVanced Manager could store the patches used for every patched app in the app info page. The "Settings"patch is also being abused for that purpose, whereas its purpose is merely to add settings to apps.

A proper approach

A proper approach would be to have the "Settings" patch have an abstract "BasePreference" class, which other patches can implement. The class would have an abstract "serialize" method, which the patches would implement for their "BasePreference" implementation. In this current case, it would mean, adding a "PatchesInformation" patch which would embed the patches used via an implementation of the abstract "BasePreference" class. Since the "Settings" patch only knows "BasePreference" and the "BasePreference" implementation in our "PatchesInformation" patch would extend the "BasePreference" class, the "Settings" patch would call the custom implementation of the "serialize" method.

This design maintains the single responsibility of the "Settings" patch. The problem would be that the patch would be deselectable, whereas we want to brand the "Settings" patch with our link.

Instead of embedding the patches version, it would be better to make use of https://api.revanced.app/v2/socials and add the links of ReVanced to the settings instead. This would also get rid of the hacky approach of extracting the patches version.

@LisoUseInAIKyrios
Copy link
Contributor Author

Adding the social links can be done, but the preference would need to open a new dialog or view to display that.

A preference can only have one tap action, so that action would need to open the social links view.

Would the patches version be useful for the announcement API call? Looking into the jar and reading the manifest is not that hacky, the manifest has a known format and Java has built in tools to read manifest entries.

@oSumAtrIX
Copy link
Member

A preference can only have one tap action, so that action would need to open the social links view.

A dialog can have a custom view, so that should be possible.

Would the patches version be useful for the announcement API call?

Generally speaking, yes. For example, if the app was patched with a problematic version of the patches.

@LisoUseInAIKyrios
Copy link
Contributor Author

Instead of calling https://api.revanced.app/v2/socials and parsing the results to then display something fairly rigid (with probably no graphics or images), it would be simpler and way more flexible if the client opened an embedded webview that has the social links in a pretty html format. Then tapping on any link in that then opens the link in the external browser.

@LisoUseInAIKyrios
Copy link
Contributor Author

A dialog can have a custom view, so that should be possible.

Oh yes, I forgot about that. If it's just going to be a list of links in the preference then this would be simpler (but obviously less flexible) compared to opening an intermediate embedded browser for the social links.

@oSumAtrIX
Copy link
Member

The webview would need to call https://api.revanced.app/v2/socials and parse the results instead anyways. We would need a place to host it specifically for the purpose of YouTube, or statically embed it into the app. I think its fine to just show the links similar to how our announcements do it.

@LisoUseInAIKyrios
Copy link
Contributor Author

I'm trying to get multiple links working for the summary of a preference, and it's not working out well.

To get multiple touch listeners working, it requires either an xml layout file (which cannot be loaded from integrations, because layout files are declared in patches). Or it requires mucking about with removing all the existing summary views and adding your own programmatically (and I cannot get the layout to look right, and the padding and everything is different/wrong).

Even if the layout was figured out, it feels weird and unintuitive touching and tapping on parts of the summary to open different links, and the summary is huge with all the links. Then there's the question of how does it fetch the social links, and how frequently does it fetch. I didn't even get to the asynchronous fetch code needed for this, I just got tied up in the layout issues.

For the sake of usability and less mess in implementing this, I think this simple preference should behave as:

  • One tap on the preference and it opens a website with the social links (either an embedded web view inside the app, or open straight to an external browser).

Or

  • One tap on the preferences and it opens the ReVanced.app website (basically what is already here in this PR and ready to go).

@oSumAtrIX
Copy link
Member

If you check the announcements dialog, you will see that it parses the response as HTML and also renders clickable links correctly. Perhaps that can be used. No additional view or layout is necessary.

@LisoUseInAIKyrios
Copy link
Contributor Author

If you check the announcements dialog, you will see that it parses the response as HTML and also renders clickable links correctly. Perhaps that can be used. No additional view or layout is necessary.

That could work for a fancy popup dialog that opens when the preference is tapped (and would be minimal and look great). But that requires a new backend end point or it requires modifying the social API endpoint and add a 'fancyhtml' field containing the html for this dialog.

For now can we use something similar to what's here, and make this smart and fancy later? I wanted to merge this before merging the GmsCore dialog improvement.

@oSumAtrIX
Copy link
Member

oSumAtrIX commented Apr 5, 2024

That could work for a fancy popup dialog that opens when the preference is tapped (and would be minimal and look great). But that requires a new backend end point or it requires modifying the social API endpoint and add a 'fancyhtml' field containing the html for this dialog.

The client would download the JSON from the API, build a small HTML string with tags and display it in the dialog. Moving this to API would be way too low.

For now can we use something similar to what's here, and make this smart and fancy later? I wanted to merge this before merging the GmsCore dialog improvement.

I still have conflicted opinions on reading the patches version. I need a little more time to think about this.

@LisoUseInAIKyrios
Copy link
Contributor Author

The client would download the JSON from the API, build a small HTML string with tags and display it in the dialog. Moving this to API would be way too low.

Sticking some basic html in the API call isn't much different from what the announcements call is already doing.

I'll try doing a popup dialog with the social links similar to how the announcements are shown.

@LisoUseInAIKyrios LisoUseInAIKyrios changed the title feat(YouTube): Show applied patches version in Misc settings menu feat(YouTube): Add 'About' preference to settings Apr 6, 2024
@LisoUseInAIKyrios LisoUseInAIKyrios changed the title feat(YouTube): Add 'About' preference to settings feat(YouTube): Add 'About' preference to settings menu Apr 6, 2024
@oSumAtrIX
Copy link
Member

I am not sure if it's allowed to use trademark assets freely like its done in this PR. I know that Vanced got into trouble due to trademark violations in a related situation with Google. This also applies to all the other icons we plan to show. YouTube for example, requires explicit approval, as stated on https://www.youtube.com/howyoutubeworks/resources/brand-resources. Similarly, we may need to ask for approval from other sites. Do you have any idea regarding this?

@LisoUseInAIKyrios
Copy link
Contributor Author

Can check the brand guidelines for each company and see what it says. These icons are not hosted by ReVanced and come straight from the websites favicon. RV Manager is already using the icons for some of these sites

For YouTube can remove the social links (or make it not preferred and not display in app). There is no content on the YT channel anyways.

@oSumAtrIX
Copy link
Member

oSumAtrIX commented Apr 9, 2024

RV Manager is already using the icons for some of these sites

We have once asked for approval for the YouTube trademark logo, but I think the rest of the icons we have not yet.

For YouTube can remove the social links (or make it not preferred and not display in app). There is no content on the YT channel anyways.

It's more of a placeholder for future content and a verification method since counterfeit sites can't show this kind of reach.

Alternatively, we can just not show any icons at all and only the links. This spares us from having to make changes in the API to suite this PR and other matters such as approvals to use the logos.

@LisoUseInAIKyrios
Copy link
Contributor Author

Looking at a few of the brand guidelines, it appears using their own fav icon has no issue (it's straight from them after all).

The only issue I see is the complex guideline for how the text should appear with the icon, such as the Reddit guideline stating orange text is preferred when the background is white, and white text if the background is black. Plus other preferences of the font and padding around the logo/name.

The branding kits for each of these sites provide banners where the logo and text is one part and it has the preferred font, spacing, color, etc. Those could be used as-is without modification, but it would require hosting the banner files and then this about screen might as well be a regular html file hosted on ReVanced.app so the programmatic html styling can be removed from this about preference code.

Maybe these sites don't care if their own favicon are shown beside regular text links to their websites, but maybe they do care.

For now, the icons can be removed until someone gets some kind of confirmation that "showing our favicon with a regular text link is ok".

@LisoUseInAIKyrios
Copy link
Contributor Author

Some of these logos are on the website, such as https://revanced.app/socials/reddit.svg

Another alternative, is to add the remaining icons to the website (YouTube, Twitter, GitHub), and then this about screen can show just the icon and not any text. Then there's no issues of what text color, spacing, or any of that. It would also look consistent with the website and more consistent with Manager.

@LisoUseInAIKyrios
Copy link
Contributor Author

For now, the icons are removed. But it looks a lot less exciting.

Can figure out how to make this pretty later.

So plain

@LisoUseInAIKyrios
Copy link
Contributor Author

Because the icon urls were not added to the api, this PR is no longer dependent on the small changes in ReVanced/revanced-api#173

@LisoUseInAIKyrios
Copy link
Contributor Author

@oSumAtrIX Does this PR need any other changes?

@LisoUseInAIKyrios LisoUseInAIKyrios merged commit 5abf894 into ReVanced:dev Apr 17, 2024
2 checks passed
@LisoUseInAIKyrios LisoUseInAIKyrios deleted the revanced_about_screen branch April 17, 2024 16:01
revanced-bot pushed a commit that referenced this pull request Apr 17, 2024
# [4.7.0-dev.10](v4.7.0-dev.9...v4.7.0-dev.10) (2024-04-17)

### Features

* **YouTube:** Add 'About' preference to settings menu ([#2981](#2981)) ([5abf894](5abf894))
* **YouTube:** Match overlay icons style to YouTube ([#3023](#3023)) ([6849393](6849393))
revanced-bot pushed a commit that referenced this pull request Apr 21, 2024
# [4.7.0](v4.6.0...v4.7.0) (2024-04-21)

### Bug Fixes

* **Tumblr - Fix old versions:** Improve reliability by removing remnances of Tumblr Live  ([#2988](#2988)) ([897b4db](897b4db))
* **YouTube - GmsCore support:** Prompt to disable battery optimizations, if not done already ([#2958](#2958)) ([82acb84](82acb84))
* **YouTube - Hide ads:** rename `Hide paid content` to `Hide paid promotion label` ([#3026](#3026)) ([17e4ac9](17e4ac9))
* **YouTube - Hide load more button:** Include patch with `Hide layout components`, and hide button only in search feed  ([#2959](#2959)) ([b007e8e](b007e8e))
* **YouTube - Hide Shorts components:** Correctly hide Shorts if navigation tab is changed using device back button ([#3007](#3007)) ([e5848e9](e5848e9))
* **YouTube - Player flyout menu:** Add hide Lock screen menu ([#2985](#2985)) ([308de4a](308de4a))
* **YouTube - Spoof device dimensions:** Warn about potential performance issues ([#3039](#3039)) ([9d6f305](9d6f305))
* **YouTube Music - Remove upgrade button:** Fix compatibility with latest versions ([#3045](#3045)) ([80de996](80de996))

### Features

* Add `Hex` patch ([#3034](#3034)) ([3c95aac](3c95aac))
* **Amazon:** Add `Always allow deep-linking` patch ([#3000](#3000)) ([a92b7fb](a92b7fb))
* **Strava - Unlock subscription:** Remove compatible version constraint ([80a5599](80a5599))
* **Twitter:** Add `Sanitize sharing links` patch ([#3003](#3003)) ([186b887](186b887))
* **YouTube - Hide layout components:** Add option to hide horizontal shelves ([#2951](#2951)) ([9ae0650](9ae0650))
* **YouTube - Hide layout components:** Hide playables ([8423515](8423515))
* **YouTube - Hide Shorts components:** Hide `Shop`, `Location` and `Save sound to playlist` buttons ([#3018](#3018)) ([5210ac4](5210ac4))
* **YouTube - Hide Shorts components:** Hide tagged products, hide search suggestions ([#3019](#3019)) ([e0d2fe5](e0d2fe5))
* **YouTube - Swipe controls:** Save and restore brightness and add auto-brightness toggle ([#2996](#2996)) ([f6c3bc4](f6c3bc4))
* **YouTube:** Add 'About' preference to settings menu ([#2981](#2981)) ([5abf894](5abf894))
* **YouTube:** Match overlay icons style to YouTube ([#3023](#3023)) ([6849393](6849393))
* **YouTube:** Support version `19.09.38`, `19.10.39` and `19.11.43` ([#2971](#2971)) ([730f3e3](730f3e3))
* **YT Music - Hide 'Get Music Premium' label:** Remove occurences of label in settings ([#3046](#3046)) ([10e170a](10e170a))
E85Addict pushed a commit to E85Addict/revanced-patches that referenced this pull request Apr 21, 2024
# [4.7.0](v4.6.0...v4.7.0) (2024-04-21)

### Bug Fixes

* **Tumblr - Fix old versions:** Improve reliability by removing remnances of Tumblr Live  ([ReVanced#2988](https://github.com/E85Addict/revanced-patches/issues/2988)) ([897b4db](897b4db))
* **YouTube - GmsCore support:** Prompt to disable battery optimizations, if not done already ([ReVanced#2958](https://github.com/E85Addict/revanced-patches/issues/2958)) ([82acb84](82acb84))
* **YouTube - Hide ads:** rename `Hide paid content` to `Hide paid promotion label` ([ReVanced#3026](https://github.com/E85Addict/revanced-patches/issues/3026)) ([17e4ac9](17e4ac9))
* **YouTube - Hide load more button:** Include patch with `Hide layout components`, and hide button only in search feed  ([ReVanced#2959](https://github.com/E85Addict/revanced-patches/issues/2959)) ([b007e8e](b007e8e))
* **YouTube - Hide Shorts components:** Correctly hide Shorts if navigation tab is changed using device back button ([ReVanced#3007](https://github.com/E85Addict/revanced-patches/issues/3007)) ([e5848e9](e5848e9))
* **YouTube - Player flyout menu:** Add hide Lock screen menu ([ReVanced#2985](https://github.com/E85Addict/revanced-patches/issues/2985)) ([308de4a](308de4a))
* **YouTube - Spoof device dimensions:** Warn about potential performance issues ([ReVanced#3039](https://github.com/E85Addict/revanced-patches/issues/3039)) ([9d6f305](9d6f305))
* **YouTube Music - Remove upgrade button:** Fix compatibility with latest versions ([ReVanced#3045](https://github.com/E85Addict/revanced-patches/issues/3045)) ([80de996](80de996))

### Features

* Add `Hex` patch ([ReVanced#3034](https://github.com/E85Addict/revanced-patches/issues/3034)) ([3c95aac](3c95aac))
* **Amazon:** Add `Always allow deep-linking` patch ([ReVanced#3000](https://github.com/E85Addict/revanced-patches/issues/3000)) ([a92b7fb](a92b7fb))
* **Strava - Unlock subscription:** Remove compatible version constraint ([80a5599](80a5599))
* **Twitter:** Add `Sanitize sharing links` patch ([ReVanced#3003](https://github.com/E85Addict/revanced-patches/issues/3003)) ([186b887](186b887))
* **YouTube - Hide layout components:** Add option to hide horizontal shelves ([ReVanced#2951](https://github.com/E85Addict/revanced-patches/issues/2951)) ([9ae0650](9ae0650))
* **YouTube - Hide layout components:** Hide playables ([8423515](8423515))
* **YouTube - Hide Shorts components:** Hide `Shop`, `Location` and `Save sound to playlist` buttons ([ReVanced#3018](https://github.com/E85Addict/revanced-patches/issues/3018)) ([5210ac4](5210ac4))
* **YouTube - Hide Shorts components:** Hide tagged products, hide search suggestions ([ReVanced#3019](https://github.com/E85Addict/revanced-patches/issues/3019)) ([e0d2fe5](e0d2fe5))
* **YouTube - Swipe controls:** Save and restore brightness and add auto-brightness toggle ([ReVanced#2996](https://github.com/E85Addict/revanced-patches/issues/2996)) ([f6c3bc4](f6c3bc4))
* **YouTube:** Add 'About' preference to settings menu ([ReVanced#2981](https://github.com/E85Addict/revanced-patches/issues/2981)) ([5abf894](5abf894))
* **YouTube:** Match overlay icons style to YouTube ([ReVanced#3023](https://github.com/E85Addict/revanced-patches/issues/3023)) ([6849393](6849393))
* **YouTube:** Support version `19.09.38`, `19.10.39` and `19.11.43` ([ReVanced#2971](https://github.com/E85Addict/revanced-patches/issues/2971)) ([730f3e3](730f3e3))
* **YT Music - Hide 'Get Music Premium' label:** Remove occurences of label in settings ([ReVanced#3046](https://github.com/E85Addict/revanced-patches/issues/3046)) ([10e170a](10e170a))

### Performance Improvements

* Personal Logo && Add upstream sync ([7f40bcb](7f40bcb))
E85Addict pushed a commit to E85Addict/revanced-patches that referenced this pull request Apr 22, 2024
# [4.7.0](v4.6.0...v4.7.0) (2024-04-22)

### Bug Fixes

* **Tumblr - Fix old versions:** Improve reliability by removing remnances of Tumblr Live  ([ReVanced#2988](https://github.com/E85Addict/revanced-patches/issues/2988)) ([897b4db](897b4db))
* **YouTube - GmsCore support:** Prompt to disable battery optimizations, if not done already ([ReVanced#2958](https://github.com/E85Addict/revanced-patches/issues/2958)) ([82acb84](82acb84))
* **YouTube - Hide ads:** rename `Hide paid content` to `Hide paid promotion label` ([ReVanced#3026](https://github.com/E85Addict/revanced-patches/issues/3026)) ([17e4ac9](17e4ac9))
* **YouTube - Hide load more button:** Include patch with `Hide layout components`, and hide button only in search feed  ([ReVanced#2959](https://github.com/E85Addict/revanced-patches/issues/2959)) ([b007e8e](b007e8e))
* **YouTube - Hide Shorts components:** Correctly hide Shorts if navigation tab is changed using device back button ([ReVanced#3007](https://github.com/E85Addict/revanced-patches/issues/3007)) ([e5848e9](e5848e9))
* **YouTube - Player flyout menu:** Add hide Lock screen menu ([ReVanced#2985](https://github.com/E85Addict/revanced-patches/issues/2985)) ([308de4a](308de4a))
* **YouTube - Spoof device dimensions:** Warn about potential performance issues ([ReVanced#3039](https://github.com/E85Addict/revanced-patches/issues/3039)) ([9d6f305](9d6f305))
* **YouTube Music - Remove upgrade button:** Fix compatibility with latest versions ([ReVanced#3045](https://github.com/E85Addict/revanced-patches/issues/3045)) ([80de996](80de996))

### Features

* Add `Hex` patch ([ReVanced#3034](https://github.com/E85Addict/revanced-patches/issues/3034)) ([3c95aac](3c95aac))
* **Amazon:** Add `Always allow deep-linking` patch ([ReVanced#3000](https://github.com/E85Addict/revanced-patches/issues/3000)) ([a92b7fb](a92b7fb))
* **Strava - Unlock subscription:** Remove compatible version constraint ([80a5599](80a5599))
* **Twitter:** Add `Sanitize sharing links` patch ([ReVanced#3003](https://github.com/E85Addict/revanced-patches/issues/3003)) ([186b887](186b887))
* **YouTube - Hide layout components:** Add option to hide horizontal shelves ([ReVanced#2951](https://github.com/E85Addict/revanced-patches/issues/2951)) ([9ae0650](9ae0650))
* **YouTube - Hide layout components:** Hide playables ([8423515](8423515))
* **YouTube - Hide Shorts components:** Hide `Shop`, `Location` and `Save sound to playlist` buttons ([ReVanced#3018](https://github.com/E85Addict/revanced-patches/issues/3018)) ([5210ac4](5210ac4))
* **YouTube - Hide Shorts components:** Hide tagged products, hide search suggestions ([ReVanced#3019](https://github.com/E85Addict/revanced-patches/issues/3019)) ([e0d2fe5](e0d2fe5))
* **YouTube - Swipe controls:** Save and restore brightness and add auto-brightness toggle ([ReVanced#2996](https://github.com/E85Addict/revanced-patches/issues/2996)) ([f6c3bc4](f6c3bc4))
* **YouTube:** Add 'About' preference to settings menu ([ReVanced#2981](https://github.com/E85Addict/revanced-patches/issues/2981)) ([5abf894](5abf894))
* **YouTube:** Match overlay icons style to YouTube ([ReVanced#3023](https://github.com/E85Addict/revanced-patches/issues/3023)) ([6849393](6849393))
* **YouTube:** Support version `19.09.38`, `19.10.39` and `19.11.43` ([ReVanced#2971](https://github.com/E85Addict/revanced-patches/issues/2971)) ([730f3e3](730f3e3))
* **YT Music - Hide 'Get Music Premium' label:** Remove occurences of label in settings ([ReVanced#3046](https://github.com/E85Addict/revanced-patches/issues/3046)) ([10e170a](10e170a))

### Performance Improvements

* Personal Logo && Add upstream sync ([5e91b8b](5e91b8b))
E85Addict pushed a commit to E85Addict/revanced-patches that referenced this pull request Apr 22, 2024
# [4.7.0](v4.6.0...v4.7.0) (2024-04-22)

### Bug Fixes

* **Tumblr - Fix old versions:** Improve reliability by removing remnances of Tumblr Live  ([ReVanced#2988](https://github.com/E85Addict/revanced-patches/issues/2988)) ([897b4db](897b4db))
* **YouTube - GmsCore support:** Prompt to disable battery optimizations, if not done already ([ReVanced#2958](https://github.com/E85Addict/revanced-patches/issues/2958)) ([82acb84](82acb84))
* **YouTube - Hide ads:** rename `Hide paid content` to `Hide paid promotion label` ([ReVanced#3026](https://github.com/E85Addict/revanced-patches/issues/3026)) ([17e4ac9](17e4ac9))
* **YouTube - Hide load more button:** Include patch with `Hide layout components`, and hide button only in search feed  ([ReVanced#2959](https://github.com/E85Addict/revanced-patches/issues/2959)) ([b007e8e](b007e8e))
* **YouTube - Hide Shorts components:** Correctly hide Shorts if navigation tab is changed using device back button ([ReVanced#3007](https://github.com/E85Addict/revanced-patches/issues/3007)) ([e5848e9](e5848e9))
* **YouTube - Player flyout menu:** Add hide Lock screen menu ([ReVanced#2985](https://github.com/E85Addict/revanced-patches/issues/2985)) ([308de4a](308de4a))
* **YouTube - Spoof device dimensions:** Warn about potential performance issues ([ReVanced#3039](https://github.com/E85Addict/revanced-patches/issues/3039)) ([9d6f305](9d6f305))
* **YouTube Music - Remove upgrade button:** Fix compatibility with latest versions ([ReVanced#3045](https://github.com/E85Addict/revanced-patches/issues/3045)) ([80de996](80de996))

### Features

* Add `Hex` patch ([ReVanced#3034](https://github.com/E85Addict/revanced-patches/issues/3034)) ([3c95aac](3c95aac))
* **Amazon:** Add `Always allow deep-linking` patch ([ReVanced#3000](https://github.com/E85Addict/revanced-patches/issues/3000)) ([a92b7fb](a92b7fb))
* **Strava - Unlock subscription:** Remove compatible version constraint ([80a5599](80a5599))
* **Twitter:** Add `Sanitize sharing links` patch ([ReVanced#3003](https://github.com/E85Addict/revanced-patches/issues/3003)) ([186b887](186b887))
* **YouTube - Hide layout components:** Add option to hide horizontal shelves ([ReVanced#2951](https://github.com/E85Addict/revanced-patches/issues/2951)) ([9ae0650](9ae0650))
* **YouTube - Hide layout components:** Hide playables ([8423515](8423515))
* **YouTube - Hide Shorts components:** Hide `Shop`, `Location` and `Save sound to playlist` buttons ([ReVanced#3018](https://github.com/E85Addict/revanced-patches/issues/3018)) ([5210ac4](5210ac4))
* **YouTube - Hide Shorts components:** Hide tagged products, hide search suggestions ([ReVanced#3019](https://github.com/E85Addict/revanced-patches/issues/3019)) ([e0d2fe5](e0d2fe5))
* **YouTube - Swipe controls:** Save and restore brightness and add auto-brightness toggle ([ReVanced#2996](https://github.com/E85Addict/revanced-patches/issues/2996)) ([f6c3bc4](f6c3bc4))
* **YouTube:** Add 'About' preference to settings menu ([ReVanced#2981](https://github.com/E85Addict/revanced-patches/issues/2981)) ([5abf894](5abf894))
* **YouTube:** Match overlay icons style to YouTube ([ReVanced#3023](https://github.com/E85Addict/revanced-patches/issues/3023)) ([6849393](6849393))
* **YouTube:** Support version `19.09.38`, `19.10.39` and `19.11.43` ([ReVanced#2971](https://github.com/E85Addict/revanced-patches/issues/2971)) ([730f3e3](730f3e3))
* **YT Music - Hide 'Get Music Premium' label:** Remove occurences of label in settings ([ReVanced#3046](https://github.com/E85Addict/revanced-patches/issues/3046)) ([10e170a](10e170a))

### Performance Improvements

* Personal Logo && Add upstream sync ([70ca602](70ca602))
E85Addict pushed a commit to E85Addict/revanced-patches that referenced this pull request Apr 29, 2024
# [4.7.0](v4.6.0...v4.7.0) (2024-04-29)

### Bug Fixes

* **Tumblr - Fix old versions:** Improve reliability by removing remnances of Tumblr Live  ([ReVanced#2988](https://github.com/E85Addict/revanced-patches/issues/2988)) ([897b4db](897b4db))
* **YouTube - GmsCore support:** Prompt to disable battery optimizations, if not done already ([ReVanced#2958](https://github.com/E85Addict/revanced-patches/issues/2958)) ([82acb84](82acb84))
* **YouTube - Hide ads:** rename `Hide paid content` to `Hide paid promotion label` ([ReVanced#3026](https://github.com/E85Addict/revanced-patches/issues/3026)) ([17e4ac9](17e4ac9))
* **YouTube - Hide load more button:** Include patch with `Hide layout components`, and hide button only in search feed  ([ReVanced#2959](https://github.com/E85Addict/revanced-patches/issues/2959)) ([b007e8e](b007e8e))
* **YouTube - Hide Shorts components:** Correctly hide Shorts if navigation tab is changed using device back button ([ReVanced#3007](https://github.com/E85Addict/revanced-patches/issues/3007)) ([e5848e9](e5848e9))
* **YouTube - Player flyout menu:** Add hide Lock screen menu ([ReVanced#2985](https://github.com/E85Addict/revanced-patches/issues/2985)) ([308de4a](308de4a))
* **YouTube - Spoof device dimensions:** Warn about potential performance issues ([ReVanced#3039](https://github.com/E85Addict/revanced-patches/issues/3039)) ([9d6f305](9d6f305))
* **YouTube Music - Remove upgrade button:** Fix compatibility with latest versions ([ReVanced#3045](https://github.com/E85Addict/revanced-patches/issues/3045)) ([80de996](80de996))

### Features

* Add `Hex` patch ([ReVanced#3034](https://github.com/E85Addict/revanced-patches/issues/3034)) ([3c95aac](3c95aac))
* **Amazon:** Add `Always allow deep-linking` patch ([ReVanced#3000](https://github.com/E85Addict/revanced-patches/issues/3000)) ([a92b7fb](a92b7fb))
* **Strava - Unlock subscription:** Remove compatible version constraint ([80a5599](80a5599))
* **Twitter:** Add `Sanitize sharing links` patch ([ReVanced#3003](https://github.com/E85Addict/revanced-patches/issues/3003)) ([186b887](186b887))
* **YouTube - Hide layout components:** Add option to hide horizontal shelves ([ReVanced#2951](https://github.com/E85Addict/revanced-patches/issues/2951)) ([9ae0650](9ae0650))
* **YouTube - Hide layout components:** Hide playables ([8423515](8423515))
* **YouTube - Hide Shorts components:** Hide `Shop`, `Location` and `Save sound to playlist` buttons ([ReVanced#3018](https://github.com/E85Addict/revanced-patches/issues/3018)) ([5210ac4](5210ac4))
* **YouTube - Hide Shorts components:** Hide tagged products, hide search suggestions ([ReVanced#3019](https://github.com/E85Addict/revanced-patches/issues/3019)) ([e0d2fe5](e0d2fe5))
* **YouTube - Swipe controls:** Save and restore brightness and add auto-brightness toggle ([ReVanced#2996](https://github.com/E85Addict/revanced-patches/issues/2996)) ([f6c3bc4](f6c3bc4))
* **YouTube:** Add 'About' preference to settings menu ([ReVanced#2981](https://github.com/E85Addict/revanced-patches/issues/2981)) ([5abf894](5abf894))
* **YouTube:** Match overlay icons style to YouTube ([ReVanced#3023](https://github.com/E85Addict/revanced-patches/issues/3023)) ([6849393](6849393))
* **YouTube:** Support version `19.09.38`, `19.10.39` and `19.11.43` ([ReVanced#2971](https://github.com/E85Addict/revanced-patches/issues/2971)) ([730f3e3](730f3e3))
* **YT Music - Hide 'Get Music Premium' label:** Remove occurences of label in settings ([ReVanced#3046](https://github.com/E85Addict/revanced-patches/issues/3046)) ([10e170a](10e170a))

### Performance Improvements

* Personal Logo && Add upstream sync && Add Unlock Spotify Premium patch ([b6967ec](b6967ec))
E85Addict pushed a commit to E85Addict/revanced-patches that referenced this pull request Apr 30, 2024
# [4.7.0](v4.6.0...v4.7.0) (2024-04-30)

### Bug Fixes

* **Tumblr - Fix old versions:** Improve reliability by removing remnances of Tumblr Live  ([ReVanced#2988](https://github.com/E85Addict/revanced-patches/issues/2988)) ([897b4db](897b4db))
* **YouTube - GmsCore support:** Prompt to disable battery optimizations, if not done already ([ReVanced#2958](https://github.com/E85Addict/revanced-patches/issues/2958)) ([82acb84](82acb84))
* **YouTube - Hide ads:** rename `Hide paid content` to `Hide paid promotion label` ([ReVanced#3026](https://github.com/E85Addict/revanced-patches/issues/3026)) ([17e4ac9](17e4ac9))
* **YouTube - Hide load more button:** Include patch with `Hide layout components`, and hide button only in search feed  ([ReVanced#2959](https://github.com/E85Addict/revanced-patches/issues/2959)) ([b007e8e](b007e8e))
* **YouTube - Hide Shorts components:** Correctly hide Shorts if navigation tab is changed using device back button ([ReVanced#3007](https://github.com/E85Addict/revanced-patches/issues/3007)) ([e5848e9](e5848e9))
* **YouTube - Player flyout menu:** Add hide Lock screen menu ([ReVanced#2985](https://github.com/E85Addict/revanced-patches/issues/2985)) ([308de4a](308de4a))
* **YouTube - Spoof device dimensions:** Warn about potential performance issues ([ReVanced#3039](https://github.com/E85Addict/revanced-patches/issues/3039)) ([9d6f305](9d6f305))
* **YouTube Music - Remove upgrade button:** Fix compatibility with latest versions ([ReVanced#3045](https://github.com/E85Addict/revanced-patches/issues/3045)) ([80de996](80de996))

### Features

* Add `Hex` patch ([ReVanced#3034](https://github.com/E85Addict/revanced-patches/issues/3034)) ([3c95aac](3c95aac))
* **Amazon:** Add `Always allow deep-linking` patch ([ReVanced#3000](https://github.com/E85Addict/revanced-patches/issues/3000)) ([a92b7fb](a92b7fb))
* **Strava - Unlock subscription:** Remove compatible version constraint ([80a5599](80a5599))
* **Twitter:** Add `Sanitize sharing links` patch ([ReVanced#3003](https://github.com/E85Addict/revanced-patches/issues/3003)) ([186b887](186b887))
* **YouTube - Hide layout components:** Add option to hide horizontal shelves ([ReVanced#2951](https://github.com/E85Addict/revanced-patches/issues/2951)) ([9ae0650](9ae0650))
* **YouTube - Hide layout components:** Hide playables ([8423515](8423515))
* **YouTube - Hide Shorts components:** Hide `Shop`, `Location` and `Save sound to playlist` buttons ([ReVanced#3018](https://github.com/E85Addict/revanced-patches/issues/3018)) ([5210ac4](5210ac4))
* **YouTube - Hide Shorts components:** Hide tagged products, hide search suggestions ([ReVanced#3019](https://github.com/E85Addict/revanced-patches/issues/3019)) ([e0d2fe5](e0d2fe5))
* **YouTube - Swipe controls:** Save and restore brightness and add auto-brightness toggle ([ReVanced#2996](https://github.com/E85Addict/revanced-patches/issues/2996)) ([f6c3bc4](f6c3bc4))
* **YouTube:** Add 'About' preference to settings menu ([ReVanced#2981](https://github.com/E85Addict/revanced-patches/issues/2981)) ([5abf894](5abf894))
* **YouTube:** Match overlay icons style to YouTube ([ReVanced#3023](https://github.com/E85Addict/revanced-patches/issues/3023)) ([6849393](6849393))
* **YouTube:** Support version `19.09.38`, `19.10.39` and `19.11.43` ([ReVanced#2971](https://github.com/E85Addict/revanced-patches/issues/2971)) ([730f3e3](730f3e3))
* **YT Music - Hide 'Get Music Premium' label:** Remove occurences of label in settings ([ReVanced#3046](https://github.com/E85Addict/revanced-patches/issues/3046)) ([10e170a](10e170a))

### Performance Improvements

* Personal Logo && Add upstream sync ([4ed3d3f](4ed3d3f))
n-34 pushed a commit to n-34/revanced-patches that referenced this pull request May 22, 2024
# [4.0.0](v3.1.0...v4.0.0) (2024-05-22)

### Bug Fixes

* Case patch option title correctly ([259c8b4](259c8b4))
* Compile DEX without debugging information ([f5df957](f5df957))
* Correctly handle patches jar path if it contains exclamation marks ([056e2d7](056e2d7))
* Indent patch option description correctly ([bd86ef6](bd86ef6))
* **Infinity for Reddit - Unlock subscription:** Do not crash by patching billing client ([7d76e2e](7d76e2e))
* **Infinity for Reddit - Unlock subscription:** Restore functionality on v7.0.0 ([bf19af9](bf19af9))
* **Mi Fitness - Fix login:** Patch correct register ([ReVanced#2942](https://github.com/n-34/revanced-patches/issues/2942)) ([dc96942](dc96942))
* Only set Android key if not null to prevent build errors ([1181b0b](1181b0b))
* **Override certificate pinning:** Always overwrite with a generic network security configuration ([2a842a1](2a842a1))
* Publicize abstract property ([b7c108e](b7c108e))
* **Reddit is Fun - Spoof client:** Fix login by updating the authorization subdomain from "old" to "ssl" ([b156cb1](b156cb1))
* Remove extra space from patch description ([ReVanced#2780](https://github.com/n-34/revanced-patches/issues/2780)) ([96a3f35](96a3f35))
* **Spoof SIM country:** Validate patch option value correctly ([8105463](8105463))
* **Tiktok - Remember clear display:** Use correct name ([d7e44cb](d7e44cb))
* **TikTok:** Hook application context earlier to prevent crash ([ReVanced#2893](https://github.com/n-34/revanced-patches/issues/2893)) ([395ccda](395ccda))
* **Tumblr - Fix old versions:** Improve reliability by removing remnances of Tumblr Live  ([ReVanced#2988](https://github.com/n-34/revanced-patches/issues/2988)) ([897b4db](897b4db))
* **Tumblr:** Restore compatibility with latest versions ([ReVanced#2955](https://github.com/n-34/revanced-patches/issues/2955)) ([2954ba7](2954ba7))
* **Twitch:** Correct patch resources to fix build ([1b63898](1b63898))
* URL decode path to JAR containing spaces to get JAR manifest ([ReVanced#3079](https://github.com/n-34/revanced-patches/issues/3079)) ([e1bbcb3](e1bbcb3))
* Use correct preference key ([3732b2c](3732b2c))
* Use deprecated members to ensure backwards compatibility ([083bd40](083bd40))
* Use new integrations patch path ([51e2f3b](51e2f3b))
* Use UrlDecoder API available in older Android versions ([d42fbb1](d42fbb1))
* **YouTube - Alternative thumbnails:** Clarify DeArrow support is for thumbnails ([ReVanced#2531](https://github.com/n-34/revanced-patches/issues/2531)) ([828abb0](828abb0))
* **YouTube - Change header:** Improve patch descriptions ([ReVanced#2581](https://github.com/n-34/revanced-patches/issues/2581)) ([43a5677](43a5677))
* **YouTube - Client spoof:** Spoof all user agents ([44a8a13](44a8a13))
* **YouTube - Client spoof:** Spoof client to fix playback ([ReVanced#3199](https://github.com/n-34/revanced-patches/issues/3199)) ([bec1eef](bec1eef))
* **YouTube - Downloads:** Use new task context ([ReVanced#2841](https://github.com/n-34/revanced-patches/issues/2841)) ([6d88cb4](6d88cb4))
* **YouTube - Enable slide to seek:** Change patch default to excluded and add description disclaimer ([ReVanced#2610](https://github.com/n-34/revanced-patches/issues/2610)) ([2fdc4c2](2fdc4c2))
* **YouTube - GmsCore support:** Prompt to disable battery optimizations, if not done already ([ReVanced#2958](https://github.com/n-34/revanced-patches/issues/2958)) ([82acb84](82acb84))
* **YouTube - Hide ads:** Fix string typo ([ecc56d6](ecc56d6))
* **YouTube - Hide ads:** Prevent app crash if hiding fullscreen ads is not possible ([ReVanced#2910](https://github.com/n-34/revanced-patches/issues/2910)) ([9f50470](9f50470))
* **YouTube - Hide ads:** rename `Hide paid content` to `Hide paid promotion label` ([ReVanced#3026](https://github.com/n-34/revanced-patches/issues/3026)) ([17e4ac9](17e4ac9))
* **YouTube - Hide load more button:** Include patch with `Hide layout components`, and hide button only in search feed  ([ReVanced#2959](https://github.com/n-34/revanced-patches/issues/2959)) ([b007e8e](b007e8e))
* **YouTube - Hide Shorts components:** Correctly hide Shorts if navigation tab is changed using device back button ([ReVanced#3007](https://github.com/n-34/revanced-patches/issues/3007)) ([e5848e9](e5848e9))
* **YouTube - Hide Shorts components:** Rename option title to make it consistent ([4d6e34b](4d6e34b))
* **YouTube - Hide video action buttons:** Remove obsolete `hide Shop button` ([ReVanced#3057](https://github.com/n-34/revanced-patches/issues/3057)) ([b5e34f3](b5e34f3))
* **YouTube - Navigation buttons:** Adjust summary text of switch notification button ([ReVanced#3130](https://github.com/n-34/revanced-patches/issues/3130)) ([cc8b4c9](cc8b4c9))
* **YouTube - Player flyout menu:** Add hide Lock screen menu ([ReVanced#2985](https://github.com/n-34/revanced-patches/issues/2985)) ([308de4a](308de4a))
* **YouTube - Player flyout menu:** Remove obsolete `Hide report menu` ([d627d44](d627d44))
* **YouTube - Restore old video quality menu:** Show advanced quality menu in Shorts quality flyout ([ReVanced#3155](https://github.com/n-34/revanced-patches/issues/3155)) ([c2b5bb7](c2b5bb7))
* **YouTube - SponsorBlock:** Export local statistics with saved settings ([f8365b4](f8365b4))
* **YouTube - SponsorBlock:** Show correct segment times if video is over 24 hours in length ([ReVanced#3138](https://github.com/n-34/revanced-patches/issues/3138)) ([6cdf697](6cdf697))
* **YouTube - Spoof app version:** Remove broken versions ([ReVanced#2776](https://github.com/n-34/revanced-patches/issues/2776)) ([9466d97](9466d97))
* **YouTube - Spoof device dimensions:** Warn about potential performance issues ([ReVanced#3039](https://github.com/n-34/revanced-patches/issues/3039)) ([9d6f305](9d6f305))
* **YouTube - Spoof signature:** Fix tracking such as history or watch time ([bcd8b48](bcd8b48))
* **YouTube Music - Remove upgrade button:** Fix compatibility with latest versions ([ReVanced#3045](https://github.com/n-34/revanced-patches/issues/3045)) ([80de996](80de996))
* **YouTube Music:** Fix compatibility with latest versions ([ReVanced#2924](https://github.com/n-34/revanced-patches/issues/2924)) ([8378c84](8378c84))
* **YouTube Music:** Make `Hide 'Get Music Premium' label` and `Remove upgrade button` compatible with latest version ([ReVanced#3164](https://github.com/n-34/revanced-patches/issues/3164)) ([3ff20de](3ff20de))
* **YouTube:** Correctly show channel page on tablet devices ([ReVanced#2656](https://github.com/n-34/revanced-patches/issues/2656)) ([c7c9700](c7c9700))
* **YouTube:** Do not crash on startup for root installs ([ReVanced#2655](https://github.com/n-34/revanced-patches/issues/2655)) ([02abace](02abace))
* **YouTube:** Fix grammer mistakes in patch descriptions ([ReVanced#2543](https://github.com/n-34/revanced-patches/issues/2543)) ([ebf5993](ebf5993))
* **YouTube:** Fix video playback by switching to ReVanced GmsCore vendor ([ReVanced#2907](https://github.com/n-34/revanced-patches/issues/2907)) ([33ea122](33ea122))
* **YouTube:** Move setting to correct screen ([a16eda8](a16eda8))
* **YouTube:** Shorten setting titles to fit on screen ([ReVanced#2579](https://github.com/n-34/revanced-patches/issues/2579)) ([b2a5dd3](b2a5dd3))

### Code Refactoring

* Fix package and code structure ([ReVanced#2541](https://github.com/n-34/revanced-patches/issues/2541)) ([a08457e](a08457e))

### Features

* Add `Hex` patch ([ReVanced#3034](https://github.com/n-34/revanced-patches/issues/3034)) ([3c95aac](3c95aac))
* **Amazon:** Add `Always allow deep-linking` patch ([ReVanced#3000](https://github.com/n-34/revanced-patches/issues/3000)) ([a92b7fb](a92b7fb))
* **Change package name:** Mention caveat of the patch in the description ([427b81a](427b81a))
* **ID Austria:** Remove constraint on any version ([ReVanced#2526](https://github.com/n-34/revanced-patches/issues/2526)) ([de2cb88](de2cb88))
* **Instagram - Hide timeline ads:** Make compatible with latest versions ([a212f29](a212f29))
* **Mi Fitness:** Add `Force English locale` and `Fix login` patch ([ReVanced#2734](https://github.com/n-34/revanced-patches/issues/2734)) ([7a25791](7a25791))
* Move strings to resources for localization ([ReVanced#2440](https://github.com/n-34/revanced-patches/issues/2440)) ([060ab8f](060ab8f))
* **MyFitnessPal:** Add `Hide ads` patch ([ReVanced#2594](https://github.com/n-34/revanced-patches/issues/2594)) ([fd4b3c7](fd4b3c7))
* **OpeningHours:** Add `Fix crash` patch ([ReVanced#2697](https://github.com/n-34/revanced-patches/issues/2697)) ([0d011b8](0d011b8))
* **Photomath:** Add `Hide update popup` patch ([ReVanced#2637](https://github.com/n-34/revanced-patches/issues/2637)) ([fbbecd3](fbbecd3))
* **Photomath:** Support version `8.37.0` ([ReVanced#3109](https://github.com/n-34/revanced-patches/issues/3109)) ([fb02b48](fb02b48))
* **Piccoma:** Add `Disable tracking` patch ([ReVanced#3143](https://github.com/n-34/revanced-patches/issues/3143)) ([8ab9e8f](8ab9e8f))
* **Piccoma:** Add `Spoof Android device ID` patch ([ReVanced#3145](https://github.com/n-34/revanced-patches/issues/3145)) ([d953c6b](d953c6b))
* **Public API:** Deprecate `HideEmailAddressPatch` ([866bceb](866bceb))
* **Public API:** Make `BottomControlsResource#addControls` public ([ReVanced#2514](https://github.com/n-34/revanced-patches/issues/2514)) ([f4e2257](f4e2257))
* Remove unnecessary description from patch ([1a89dd9](1a89dd9))
* **Strava - Unlock subscription:** Remove compatible version constraint ([80a5599](80a5599))
* **Sync for Lemmy:** Add `Disable ads` patch ([ReVanced#2872](https://github.com/n-34/revanced-patches/issues/2872)) ([0785819](0785819))
* **Sync for Reddit:** Add `Fix /s/ links` patch ([f15ef3f](f15ef3f))
* **Tiktok - Playback speed:** Remember playback speed ([ReVanced#2506](https://github.com/n-34/revanced-patches/issues/2506)) ([d2970e5](d2970e5))
* **Tiktok:** Add `Remember clear mode` patch ([ReVanced#2509](https://github.com/n-34/revanced-patches/issues/2509)) ([048bf59](048bf59))
* **Tumblr:** Add `Disable Ad-Free Banner` patch ([ReVanced#3091](https://github.com/n-34/revanced-patches/issues/3091)) ([54baf08](54baf08))
* **Tumblr:** Add `Fix old versions` patch ([ReVanced#2954](https://github.com/n-34/revanced-patches/issues/2954)) ([2fde60e](2fde60e))
* **Twitter - Unlock downloads:** Unlock GIF downloads ([d0f91c8](d0f91c8))
* **Twitter:** Add `Sanitize sharing links` patch ([ReVanced#3003](https://github.com/n-34/revanced-patches/issues/3003)) ([186b887](186b887))
* **VSCO - Unlock pro:** Constrain to last working version ([6dd4a7c](6dd4a7c))
* **WarnWetter - Promo code unlock:** Constrain to last working version ([ReVanced#3110](https://github.com/n-34/revanced-patches/issues/3110)) ([92fc8aa](92fc8aa))
* **X:** Add `Hide view count` patch ([bf064ec](bf064ec))
* **X:** Add `Open links as query` patch ([ReVanced#2730](https://github.com/n-34/revanced-patches/issues/2730)) ([ba75a51](ba75a51))
* **X:** Add `Unlock downloads` patch ([2c20844](2c20844))
* **YouTube - Alternative thumbnails:** Selectively enable for home / subscription / search ([ReVanced#2926](https://github.com/n-34/revanced-patches/issues/2926)) ([8549e1b](8549e1b))
* **YouTube - Change header:** Change to ReVanced borderless logo header by default ([ReVanced#2512](https://github.com/n-34/revanced-patches/issues/2512)) ([75f785d](75f785d))
* **YouTube - Change header:** Improve patch option description ([3b8bc08](3b8bc08))
* **YouTube - Change start page:** Add more start pages ([cc1d9b7](cc1d9b7))
* **YouTube - Comments:** Add option to hide timestamp and emoji buttons ([ReVanced#3076](https://github.com/n-34/revanced-patches/issues/3076)) ([7efe5ae](7efe5ae))
* **YouTube - Custom branding:** Improve patch option description ([e27f56c](e27f56c))
* **YouTube - Custom filter:** Custom filtering of the protocol buffer ([ReVanced#2682](https://github.com/n-34/revanced-patches/issues/2682)) ([872a5b6](872a5b6))
* **YouTube - Downloads:** Use external downloader when selecting 'Download' in home feed flyout menu ([ReVanced#2881](https://github.com/n-34/revanced-patches/issues/2881)) ([10afc8c](10afc8c))
* **YouTube - External downloader:** Add ability to use in-app download button ([d900011](d900011))
* **YouTube - GmsCore:** Require ignoring battery optimizations ([ReVanced#2952](https://github.com/n-34/revanced-patches/issues/2952)) ([c0bef25](c0bef25))
* **YouTube - Hide ads:** Add option to hide the 'Visit store' button on channel pages ([ReVanced#3077](https://github.com/n-34/revanced-patches/issues/3077)) ([03d2cfa](03d2cfa))
* **YouTube - Hide ads:** Hide fullscreen ads ([bdc9a12](bdc9a12))
* **YouTube - Hide layout components:** Add option to hide horizontal shelves ([ReVanced#2951](https://github.com/n-34/revanced-patches/issues/2951)) ([9ae0650](9ae0650))
* **YouTube - Hide layout components:** Filter home/search results by keywords ([ReVanced#2853](https://github.com/n-34/revanced-patches/issues/2853)) ([5916204](5916204))
* **YouTube - Hide layout components:** Hide playables ([8423515](8423515))
* **YouTube - Hide layout components:** Hide search result recommendations ([55cc7f1](55cc7f1))
* **YouTube - Hide Shorts components:** Hide 'Buy super thanks' button ([ReVanced#3176](https://github.com/n-34/revanced-patches/issues/3176)) ([89c1548](89c1548))
* **YouTube - Hide Shorts components:** Hide `Shop`, `Location` and `Save sound to playlist` buttons ([ReVanced#3018](https://github.com/n-34/revanced-patches/issues/3018)) ([5210ac4](5210ac4))
* **YouTube - Hide Shorts components:** Hide like / dislike button in video ads ([ReVanced#3062](https://github.com/n-34/revanced-patches/issues/3062)) ([1296985](1296985))
* **YouTube - Hide Shorts components:** Hide like and dislike buttons ([2df0892](2df0892))
* **YouTube - Hide Shorts components:** Hide sound metadata label ([ea7d1e0](ea7d1e0))
* **YouTube - Hide Shorts components:** Hide tagged products, hide search suggestions ([ReVanced#3019](https://github.com/n-34/revanced-patches/issues/3019)) ([e0d2fe5](e0d2fe5))
* **YouTube - Hide Shorts components:** Hide title and full video link label ([e7b64e1](e7b64e1))
* **YouTube - Hide Shorts components:** Selectively hide Shorts for home / subscription / search ([ReVanced#2925](https://github.com/n-34/revanced-patches/issues/2925)) ([497c067](497c067))
* **YouTube - Navigation buttons:** Add option to hide navigation button labels ([ReVanced#3189](https://github.com/n-34/revanced-patches/issues/3189)) ([f9dc705](f9dc705))
* **YouTube - Spoof app version:** Add `18.09.39` to restore library tab ([ReVanced#2643](https://github.com/n-34/revanced-patches/issues/2643)) ([dd108ff](dd108ff))
* **YouTube - Spoof app version:** Add target versions ([ReVanced#2787](https://github.com/n-34/revanced-patches/issues/2787)) ([83a7bd8](83a7bd8))
* **YouTube - Swipe controls:** Save and restore brightness and add auto-brightness toggle ([ReVanced#2996](https://github.com/n-34/revanced-patches/issues/2996)) ([f6c3bc4](f6c3bc4))
* **YouTube - Theme:** Add classic dark color to presets ([ReVanced#2542](https://github.com/n-34/revanced-patches/issues/2542)) ([4e1dc00](4e1dc00))
* **YouTube :** Remove `HDR auto brightness` patch ([ReVanced#2863](https://github.com/n-34/revanced-patches/issues/2863)) ([b4c7bf4](b4c7bf4))
* **YouTube Vanced:** Remove `Hide ads` patch ([87887e4](87887e4))
* **YouTube:** Add 'About' preference to settings menu ([ReVanced#2981](https://github.com/n-34/revanced-patches/issues/2981)) ([5abf894](5abf894))
* **YouTube:** Add `Remove viewer discretion dialog` patch ([a07f83f](a07f83f))
* **YouTube:** Improve patch descriptions ([ReVanced#2519](https://github.com/n-34/revanced-patches/issues/2519)) ([e8d1389](e8d1389))
* **YouTube:** Match overlay icons style to YouTube ([ReVanced#3023](https://github.com/n-34/revanced-patches/issues/3023)) ([6849393](6849393))
* **YouTube:** Remove `Hide email address` patch ([3b84305](3b84305))
* **YouTube:** Reorganize settings menu ([ReVanced#2737](https://github.com/n-34/revanced-patches/issues/2737)) ([36132df](36132df))
* **YouTube:** Support version `19.02.34` ([ReVanced#2627](https://github.com/n-34/revanced-patches/issues/2627)) ([94e08b7](94e08b7))
* **YouTube:** Support version `19.03.35` ([ReVanced#2640](https://github.com/n-34/revanced-patches/issues/2640)) ([ff08f58](ff08f58))
* **YouTube:** Support version `19.04.37` ([ReVanced#2687](https://github.com/n-34/revanced-patches/issues/2687)) ([c23e023](c23e023))
* **YouTube:** Support version `19.05`, `19.06`, `19.07`, `19.08` and `19.09` ([ReVanced#2862](https://github.com/n-34/revanced-patches/issues/2862)) ([f044dde](f044dde))
* **YouTube:** Support version `19.09.38`, `19.10.39` and `19.11.43` ([ReVanced#2971](https://github.com/n-34/revanced-patches/issues/2971)) ([730f3e3](730f3e3))
* **YouTube:** Support versions `18.48.39`, `18.49.37` and `19.01.34` ([ReVanced#2551](https://github.com/n-34/revanced-patches/issues/2551)) ([a938e73](a938e73))
* **YT Music - Hide 'Get Music Premium' label:** Remove occurences of label in settings ([ReVanced#3046](https://github.com/n-34/revanced-patches/issues/3046)) ([10e170a](10e170a))
* **YT Music:** Add support for `7.01.52` ([ReVanced#3177](https://github.com/n-34/revanced-patches/issues/3177)) ([e9bfb25](e9bfb25))

### BREAKING CHANGES

* **Photomath:** Some packages have changed locations.
* Various APIs have been changed.
* Various public APIs have changed names and packages or were removed entirely
n-34 pushed a commit to n-34/revanced-patches that referenced this pull request May 22, 2024
# [4.0.0](v3.1.0...v4.0.0) (2024-05-22)

### Bug Fixes

* Case patch option title correctly ([259c8b4](259c8b4))
* Compile DEX without debugging information ([f5df957](f5df957))
* Correctly handle patches jar path if it contains exclamation marks ([056e2d7](056e2d7))
* Indent patch option description correctly ([bd86ef6](bd86ef6))
* **Infinity for Reddit - Unlock subscription:** Do not crash by patching billing client ([7d76e2e](7d76e2e))
* **Infinity for Reddit - Unlock subscription:** Restore functionality on v7.0.0 ([bf19af9](bf19af9))
* **Mi Fitness - Fix login:** Patch correct register ([ReVanced#2942](https://github.com/n-34/revanced-patches/issues/2942)) ([dc96942](dc96942))
* Only set Android key if not null to prevent build errors ([1181b0b](1181b0b))
* **Override certificate pinning:** Always overwrite with a generic network security configuration ([2a842a1](2a842a1))
* Publicize abstract property ([b7c108e](b7c108e))
* **Reddit is Fun - Spoof client:** Fix login by updating the authorization subdomain from "old" to "ssl" ([b156cb1](b156cb1))
* Remove extra space from patch description ([ReVanced#2780](https://github.com/n-34/revanced-patches/issues/2780)) ([96a3f35](96a3f35))
* **Spoof SIM country:** Validate patch option value correctly ([8105463](8105463))
* **Tiktok - Remember clear display:** Use correct name ([d7e44cb](d7e44cb))
* **TikTok:** Hook application context earlier to prevent crash ([ReVanced#2893](https://github.com/n-34/revanced-patches/issues/2893)) ([395ccda](395ccda))
* **Tumblr - Fix old versions:** Improve reliability by removing remnances of Tumblr Live  ([ReVanced#2988](https://github.com/n-34/revanced-patches/issues/2988)) ([897b4db](897b4db))
* **Tumblr:** Restore compatibility with latest versions ([ReVanced#2955](https://github.com/n-34/revanced-patches/issues/2955)) ([2954ba7](2954ba7))
* **Twitch:** Correct patch resources to fix build ([1b63898](1b63898))
* URL decode path to JAR containing spaces to get JAR manifest ([ReVanced#3079](https://github.com/n-34/revanced-patches/issues/3079)) ([e1bbcb3](e1bbcb3))
* Use correct preference key ([3732b2c](3732b2c))
* Use deprecated members to ensure backwards compatibility ([083bd40](083bd40))
* Use new integrations patch path ([51e2f3b](51e2f3b))
* Use UrlDecoder API available in older Android versions ([d42fbb1](d42fbb1))
* **YouTube - Alternative thumbnails:** Clarify DeArrow support is for thumbnails ([ReVanced#2531](https://github.com/n-34/revanced-patches/issues/2531)) ([828abb0](828abb0))
* **YouTube - Change header:** Improve patch descriptions ([ReVanced#2581](https://github.com/n-34/revanced-patches/issues/2581)) ([43a5677](43a5677))
* **YouTube - Client spoof:** Spoof all user agents ([44a8a13](44a8a13))
* **YouTube - Client spoof:** Spoof client to fix playback ([ReVanced#3199](https://github.com/n-34/revanced-patches/issues/3199)) ([bec1eef](bec1eef))
* **YouTube - Downloads:** Use new task context ([ReVanced#2841](https://github.com/n-34/revanced-patches/issues/2841)) ([6d88cb4](6d88cb4))
* **YouTube - Enable slide to seek:** Change patch default to excluded and add description disclaimer ([ReVanced#2610](https://github.com/n-34/revanced-patches/issues/2610)) ([2fdc4c2](2fdc4c2))
* **YouTube - GmsCore support:** Prompt to disable battery optimizations, if not done already ([ReVanced#2958](https://github.com/n-34/revanced-patches/issues/2958)) ([82acb84](82acb84))
* **YouTube - Hide ads:** Fix string typo ([ecc56d6](ecc56d6))
* **YouTube - Hide ads:** Prevent app crash if hiding fullscreen ads is not possible ([ReVanced#2910](https://github.com/n-34/revanced-patches/issues/2910)) ([9f50470](9f50470))
* **YouTube - Hide ads:** rename `Hide paid content` to `Hide paid promotion label` ([ReVanced#3026](https://github.com/n-34/revanced-patches/issues/3026)) ([17e4ac9](17e4ac9))
* **YouTube - Hide load more button:** Include patch with `Hide layout components`, and hide button only in search feed  ([ReVanced#2959](https://github.com/n-34/revanced-patches/issues/2959)) ([b007e8e](b007e8e))
* **YouTube - Hide Shorts components:** Correctly hide Shorts if navigation tab is changed using device back button ([ReVanced#3007](https://github.com/n-34/revanced-patches/issues/3007)) ([e5848e9](e5848e9))
* **YouTube - Hide Shorts components:** Rename option title to make it consistent ([4d6e34b](4d6e34b))
* **YouTube - Hide video action buttons:** Remove obsolete `hide Shop button` ([ReVanced#3057](https://github.com/n-34/revanced-patches/issues/3057)) ([b5e34f3](b5e34f3))
* **YouTube - Navigation buttons:** Adjust summary text of switch notification button ([ReVanced#3130](https://github.com/n-34/revanced-patches/issues/3130)) ([cc8b4c9](cc8b4c9))
* **YouTube - Player flyout menu:** Add hide Lock screen menu ([ReVanced#2985](https://github.com/n-34/revanced-patches/issues/2985)) ([308de4a](308de4a))
* **YouTube - Player flyout menu:** Remove obsolete `Hide report menu` ([d627d44](d627d44))
* **YouTube - Restore old video quality menu:** Show advanced quality menu in Shorts quality flyout ([ReVanced#3155](https://github.com/n-34/revanced-patches/issues/3155)) ([c2b5bb7](c2b5bb7))
* **YouTube - SponsorBlock:** Export local statistics with saved settings ([f8365b4](f8365b4))
* **YouTube - SponsorBlock:** Show correct segment times if video is over 24 hours in length ([ReVanced#3138](https://github.com/n-34/revanced-patches/issues/3138)) ([6cdf697](6cdf697))
* **YouTube - Spoof app version:** Remove broken versions ([ReVanced#2776](https://github.com/n-34/revanced-patches/issues/2776)) ([9466d97](9466d97))
* **YouTube - Spoof device dimensions:** Warn about potential performance issues ([ReVanced#3039](https://github.com/n-34/revanced-patches/issues/3039)) ([9d6f305](9d6f305))
* **YouTube - Spoof signature:** Fix tracking such as history or watch time ([bcd8b48](bcd8b48))
* **YouTube Music - Remove upgrade button:** Fix compatibility with latest versions ([ReVanced#3045](https://github.com/n-34/revanced-patches/issues/3045)) ([80de996](80de996))
* **YouTube Music:** Fix compatibility with latest versions ([ReVanced#2924](https://github.com/n-34/revanced-patches/issues/2924)) ([8378c84](8378c84))
* **YouTube Music:** Make `Hide 'Get Music Premium' label` and `Remove upgrade button` compatible with latest version ([ReVanced#3164](https://github.com/n-34/revanced-patches/issues/3164)) ([3ff20de](3ff20de))
* **YouTube:** Correctly show channel page on tablet devices ([ReVanced#2656](https://github.com/n-34/revanced-patches/issues/2656)) ([c7c9700](c7c9700))
* **YouTube:** Do not crash on startup for root installs ([ReVanced#2655](https://github.com/n-34/revanced-patches/issues/2655)) ([02abace](02abace))
* **YouTube:** Fix grammer mistakes in patch descriptions ([ReVanced#2543](https://github.com/n-34/revanced-patches/issues/2543)) ([ebf5993](ebf5993))
* **YouTube:** Fix video playback by switching to ReVanced GmsCore vendor ([ReVanced#2907](https://github.com/n-34/revanced-patches/issues/2907)) ([33ea122](33ea122))
* **YouTube:** Move setting to correct screen ([a16eda8](a16eda8))
* **YouTube:** Shorten setting titles to fit on screen ([ReVanced#2579](https://github.com/n-34/revanced-patches/issues/2579)) ([b2a5dd3](b2a5dd3))

### Code Refactoring

* Fix package and code structure ([ReVanced#2541](https://github.com/n-34/revanced-patches/issues/2541)) ([a08457e](a08457e))

### Features

* Add `Hex` patch ([ReVanced#3034](https://github.com/n-34/revanced-patches/issues/3034)) ([3c95aac](3c95aac))
* **Amazon:** Add `Always allow deep-linking` patch ([ReVanced#3000](https://github.com/n-34/revanced-patches/issues/3000)) ([a92b7fb](a92b7fb))
* **Change package name:** Mention caveat of the patch in the description ([427b81a](427b81a))
* **ID Austria:** Remove constraint on any version ([ReVanced#2526](https://github.com/n-34/revanced-patches/issues/2526)) ([de2cb88](de2cb88))
* **Instagram - Hide timeline ads:** Make compatible with latest versions ([a212f29](a212f29))
* **Mi Fitness:** Add `Force English locale` and `Fix login` patch ([ReVanced#2734](https://github.com/n-34/revanced-patches/issues/2734)) ([7a25791](7a25791))
* Move strings to resources for localization ([ReVanced#2440](https://github.com/n-34/revanced-patches/issues/2440)) ([060ab8f](060ab8f))
* **MyFitnessPal:** Add `Hide ads` patch ([ReVanced#2594](https://github.com/n-34/revanced-patches/issues/2594)) ([fd4b3c7](fd4b3c7))
* **OpeningHours:** Add `Fix crash` patch ([ReVanced#2697](https://github.com/n-34/revanced-patches/issues/2697)) ([0d011b8](0d011b8))
* **Photomath:** Add `Hide update popup` patch ([ReVanced#2637](https://github.com/n-34/revanced-patches/issues/2637)) ([fbbecd3](fbbecd3))
* **Photomath:** Support version `8.37.0` ([ReVanced#3109](https://github.com/n-34/revanced-patches/issues/3109)) ([fb02b48](fb02b48))
* **Piccoma:** Add `Disable tracking` patch ([ReVanced#3143](https://github.com/n-34/revanced-patches/issues/3143)) ([8ab9e8f](8ab9e8f))
* **Piccoma:** Add `Spoof Android device ID` patch ([ReVanced#3145](https://github.com/n-34/revanced-patches/issues/3145)) ([d953c6b](d953c6b))
* **Public API:** Deprecate `HideEmailAddressPatch` ([866bceb](866bceb))
* **Public API:** Make `BottomControlsResource#addControls` public ([ReVanced#2514](https://github.com/n-34/revanced-patches/issues/2514)) ([f4e2257](f4e2257))
* Remove unnecessary description from patch ([1a89dd9](1a89dd9))
* **Strava - Unlock subscription:** Remove compatible version constraint ([80a5599](80a5599))
* **Sync for Lemmy:** Add `Disable ads` patch ([ReVanced#2872](https://github.com/n-34/revanced-patches/issues/2872)) ([0785819](0785819))
* **Sync for Reddit:** Add `Fix /s/ links` patch ([f15ef3f](f15ef3f))
* **Tiktok - Playback speed:** Remember playback speed ([ReVanced#2506](https://github.com/n-34/revanced-patches/issues/2506)) ([d2970e5](d2970e5))
* **Tiktok:** Add `Remember clear mode` patch ([ReVanced#2509](https://github.com/n-34/revanced-patches/issues/2509)) ([048bf59](048bf59))
* **Tumblr:** Add `Disable Ad-Free Banner` patch ([ReVanced#3091](https://github.com/n-34/revanced-patches/issues/3091)) ([54baf08](54baf08))
* **Tumblr:** Add `Fix old versions` patch ([ReVanced#2954](https://github.com/n-34/revanced-patches/issues/2954)) ([2fde60e](2fde60e))
* **Twitter - Unlock downloads:** Unlock GIF downloads ([d0f91c8](d0f91c8))
* **Twitter:** Add `Sanitize sharing links` patch ([ReVanced#3003](https://github.com/n-34/revanced-patches/issues/3003)) ([186b887](186b887))
* **VSCO - Unlock pro:** Constrain to last working version ([6dd4a7c](6dd4a7c))
* **WarnWetter - Promo code unlock:** Constrain to last working version ([ReVanced#3110](https://github.com/n-34/revanced-patches/issues/3110)) ([92fc8aa](92fc8aa))
* **X:** Add `Hide view count` patch ([bf064ec](bf064ec))
* **X:** Add `Open links as query` patch ([ReVanced#2730](https://github.com/n-34/revanced-patches/issues/2730)) ([ba75a51](ba75a51))
* **X:** Add `Unlock downloads` patch ([2c20844](2c20844))
* **YouTube - Alternative thumbnails:** Selectively enable for home / subscription / search ([ReVanced#2926](https://github.com/n-34/revanced-patches/issues/2926)) ([8549e1b](8549e1b))
* **YouTube - Change header:** Change to ReVanced borderless logo header by default ([ReVanced#2512](https://github.com/n-34/revanced-patches/issues/2512)) ([75f785d](75f785d))
* **YouTube - Change header:** Improve patch option description ([3b8bc08](3b8bc08))
* **YouTube - Change start page:** Add more start pages ([cc1d9b7](cc1d9b7))
* **YouTube - Comments:** Add option to hide timestamp and emoji buttons ([ReVanced#3076](https://github.com/n-34/revanced-patches/issues/3076)) ([7efe5ae](7efe5ae))
* **YouTube - Custom branding:** Improve patch option description ([e27f56c](e27f56c))
* **YouTube - Custom filter:** Custom filtering of the protocol buffer ([ReVanced#2682](https://github.com/n-34/revanced-patches/issues/2682)) ([872a5b6](872a5b6))
* **YouTube - Downloads:** Use external downloader when selecting 'Download' in home feed flyout menu ([ReVanced#2881](https://github.com/n-34/revanced-patches/issues/2881)) ([10afc8c](10afc8c))
* **YouTube - External downloader:** Add ability to use in-app download button ([d900011](d900011))
* **YouTube - GmsCore:** Require ignoring battery optimizations ([ReVanced#2952](https://github.com/n-34/revanced-patches/issues/2952)) ([c0bef25](c0bef25))
* **YouTube - Hide ads:** Add option to hide the 'Visit store' button on channel pages ([ReVanced#3077](https://github.com/n-34/revanced-patches/issues/3077)) ([03d2cfa](03d2cfa))
* **YouTube - Hide ads:** Hide fullscreen ads ([bdc9a12](bdc9a12))
* **YouTube - Hide layout components:** Add option to hide horizontal shelves ([ReVanced#2951](https://github.com/n-34/revanced-patches/issues/2951)) ([9ae0650](9ae0650))
* **YouTube - Hide layout components:** Filter home/search results by keywords ([ReVanced#2853](https://github.com/n-34/revanced-patches/issues/2853)) ([5916204](5916204))
* **YouTube - Hide layout components:** Hide playables ([8423515](8423515))
* **YouTube - Hide layout components:** Hide search result recommendations ([55cc7f1](55cc7f1))
* **YouTube - Hide Shorts components:** Hide 'Buy super thanks' button ([ReVanced#3176](https://github.com/n-34/revanced-patches/issues/3176)) ([89c1548](89c1548))
* **YouTube - Hide Shorts components:** Hide `Shop`, `Location` and `Save sound to playlist` buttons ([ReVanced#3018](https://github.com/n-34/revanced-patches/issues/3018)) ([5210ac4](5210ac4))
* **YouTube - Hide Shorts components:** Hide like / dislike button in video ads ([ReVanced#3062](https://github.com/n-34/revanced-patches/issues/3062)) ([1296985](1296985))
* **YouTube - Hide Shorts components:** Hide like and dislike buttons ([2df0892](2df0892))
* **YouTube - Hide Shorts components:** Hide sound metadata label ([ea7d1e0](ea7d1e0))
* **YouTube - Hide Shorts components:** Hide tagged products, hide search suggestions ([ReVanced#3019](https://github.com/n-34/revanced-patches/issues/3019)) ([e0d2fe5](e0d2fe5))
* **YouTube - Hide Shorts components:** Hide title and full video link label ([e7b64e1](e7b64e1))
* **YouTube - Hide Shorts components:** Selectively hide Shorts for home / subscription / search ([ReVanced#2925](https://github.com/n-34/revanced-patches/issues/2925)) ([497c067](497c067))
* **YouTube - Navigation buttons:** Add option to hide navigation button labels ([ReVanced#3189](https://github.com/n-34/revanced-patches/issues/3189)) ([f9dc705](f9dc705))
* **YouTube - Spoof app version:** Add `18.09.39` to restore library tab ([ReVanced#2643](https://github.com/n-34/revanced-patches/issues/2643)) ([dd108ff](dd108ff))
* **YouTube - Spoof app version:** Add target versions ([ReVanced#2787](https://github.com/n-34/revanced-patches/issues/2787)) ([83a7bd8](83a7bd8))
* **YouTube - Swipe controls:** Save and restore brightness and add auto-brightness toggle ([ReVanced#2996](https://github.com/n-34/revanced-patches/issues/2996)) ([f6c3bc4](f6c3bc4))
* **YouTube - Theme:** Add classic dark color to presets ([ReVanced#2542](https://github.com/n-34/revanced-patches/issues/2542)) ([4e1dc00](4e1dc00))
* **YouTube :** Remove `HDR auto brightness` patch ([ReVanced#2863](https://github.com/n-34/revanced-patches/issues/2863)) ([b4c7bf4](b4c7bf4))
* **YouTube Vanced:** Remove `Hide ads` patch ([87887e4](87887e4))
* **YouTube:** Add 'About' preference to settings menu ([ReVanced#2981](https://github.com/n-34/revanced-patches/issues/2981)) ([5abf894](5abf894))
* **YouTube:** Add `Remove viewer discretion dialog` patch ([a07f83f](a07f83f))
* **YouTube:** Improve patch descriptions ([ReVanced#2519](https://github.com/n-34/revanced-patches/issues/2519)) ([e8d1389](e8d1389))
* **YouTube:** Match overlay icons style to YouTube ([ReVanced#3023](https://github.com/n-34/revanced-patches/issues/3023)) ([6849393](6849393))
* **YouTube:** Remove `Hide email address` patch ([3b84305](3b84305))
* **YouTube:** Reorganize settings menu ([ReVanced#2737](https://github.com/n-34/revanced-patches/issues/2737)) ([36132df](36132df))
* **YouTube:** Support version `19.02.34` ([ReVanced#2627](https://github.com/n-34/revanced-patches/issues/2627)) ([94e08b7](94e08b7))
* **YouTube:** Support version `19.03.35` ([ReVanced#2640](https://github.com/n-34/revanced-patches/issues/2640)) ([ff08f58](ff08f58))
* **YouTube:** Support version `19.04.37` ([ReVanced#2687](https://github.com/n-34/revanced-patches/issues/2687)) ([c23e023](c23e023))
* **YouTube:** Support version `19.05`, `19.06`, `19.07`, `19.08` and `19.09` ([ReVanced#2862](https://github.com/n-34/revanced-patches/issues/2862)) ([f044dde](f044dde))
* **YouTube:** Support version `19.09.38`, `19.10.39` and `19.11.43` ([ReVanced#2971](https://github.com/n-34/revanced-patches/issues/2971)) ([730f3e3](730f3e3))
* **YouTube:** Support versions `18.48.39`, `18.49.37` and `19.01.34` ([ReVanced#2551](https://github.com/n-34/revanced-patches/issues/2551)) ([a938e73](a938e73))
* **YT Music - Hide 'Get Music Premium' label:** Remove occurences of label in settings ([ReVanced#3046](https://github.com/n-34/revanced-patches/issues/3046)) ([10e170a](10e170a))
* **YT Music:** Add support for `7.01.52` ([ReVanced#3177](https://github.com/n-34/revanced-patches/issues/3177)) ([e9bfb25](e9bfb25))

### BREAKING CHANGES

* **Photomath:** Some packages have changed locations.
* Various APIs have been changed.
* Various public APIs have changed names and packages or were removed entirely
n-34 pushed a commit to n-34/revanced-patches that referenced this pull request May 22, 2024
# [4.0.0](v3.1.0...v4.0.0) (2024-05-22)

### Bug Fixes

* Case patch option title correctly ([259c8b4](259c8b4))
* Compile DEX without debugging information ([f5df957](f5df957))
* Correctly handle patches jar path if it contains exclamation marks ([056e2d7](056e2d7))
* Indent patch option description correctly ([bd86ef6](bd86ef6))
* **Infinity for Reddit - Unlock subscription:** Do not crash by patching billing client ([7d76e2e](7d76e2e))
* **Infinity for Reddit - Unlock subscription:** Restore functionality on v7.0.0 ([bf19af9](bf19af9))
* **Mi Fitness - Fix login:** Patch correct register ([ReVanced#2942](https://github.com/n-34/revanced-patches/issues/2942)) ([dc96942](dc96942))
* Only set Android key if not null to prevent build errors ([1181b0b](1181b0b))
* **Override certificate pinning:** Always overwrite with a generic network security configuration ([2a842a1](2a842a1))
* Publicize abstract property ([b7c108e](b7c108e))
* **Reddit is Fun - Spoof client:** Fix login by updating the authorization subdomain from "old" to "ssl" ([b156cb1](b156cb1))
* Remove extra space from patch description ([ReVanced#2780](https://github.com/n-34/revanced-patches/issues/2780)) ([96a3f35](96a3f35))
* **Spoof SIM country:** Validate patch option value correctly ([8105463](8105463))
* **Tiktok - Remember clear display:** Use correct name ([d7e44cb](d7e44cb))
* **TikTok:** Hook application context earlier to prevent crash ([ReVanced#2893](https://github.com/n-34/revanced-patches/issues/2893)) ([395ccda](395ccda))
* **Tumblr - Fix old versions:** Improve reliability by removing remnances of Tumblr Live  ([ReVanced#2988](https://github.com/n-34/revanced-patches/issues/2988)) ([897b4db](897b4db))
* **Tumblr:** Restore compatibility with latest versions ([ReVanced#2955](https://github.com/n-34/revanced-patches/issues/2955)) ([2954ba7](2954ba7))
* **Twitch:** Correct patch resources to fix build ([1b63898](1b63898))
* URL decode path to JAR containing spaces to get JAR manifest ([ReVanced#3079](https://github.com/n-34/revanced-patches/issues/3079)) ([e1bbcb3](e1bbcb3))
* Use correct preference key ([3732b2c](3732b2c))
* Use deprecated members to ensure backwards compatibility ([083bd40](083bd40))
* Use new integrations patch path ([51e2f3b](51e2f3b))
* Use UrlDecoder API available in older Android versions ([d42fbb1](d42fbb1))
* **YouTube - Alternative thumbnails:** Clarify DeArrow support is for thumbnails ([ReVanced#2531](https://github.com/n-34/revanced-patches/issues/2531)) ([828abb0](828abb0))
* **YouTube - Change header:** Improve patch descriptions ([ReVanced#2581](https://github.com/n-34/revanced-patches/issues/2581)) ([43a5677](43a5677))
* **YouTube - Client spoof:** Spoof all user agents ([44a8a13](44a8a13))
* **YouTube - Client spoof:** Spoof client to fix playback ([ReVanced#3199](https://github.com/n-34/revanced-patches/issues/3199)) ([bec1eef](bec1eef))
* **YouTube - Downloads:** Use new task context ([ReVanced#2841](https://github.com/n-34/revanced-patches/issues/2841)) ([6d88cb4](6d88cb4))
* **YouTube - Enable slide to seek:** Change patch default to excluded and add description disclaimer ([ReVanced#2610](https://github.com/n-34/revanced-patches/issues/2610)) ([2fdc4c2](2fdc4c2))
* **YouTube - GmsCore support:** Prompt to disable battery optimizations, if not done already ([ReVanced#2958](https://github.com/n-34/revanced-patches/issues/2958)) ([82acb84](82acb84))
* **YouTube - Hide ads:** Fix string typo ([ecc56d6](ecc56d6))
* **YouTube - Hide ads:** Prevent app crash if hiding fullscreen ads is not possible ([ReVanced#2910](https://github.com/n-34/revanced-patches/issues/2910)) ([9f50470](9f50470))
* **YouTube - Hide ads:** rename `Hide paid content` to `Hide paid promotion label` ([ReVanced#3026](https://github.com/n-34/revanced-patches/issues/3026)) ([17e4ac9](17e4ac9))
* **YouTube - Hide load more button:** Include patch with `Hide layout components`, and hide button only in search feed  ([ReVanced#2959](https://github.com/n-34/revanced-patches/issues/2959)) ([b007e8e](b007e8e))
* **YouTube - Hide Shorts components:** Correctly hide Shorts if navigation tab is changed using device back button ([ReVanced#3007](https://github.com/n-34/revanced-patches/issues/3007)) ([e5848e9](e5848e9))
* **YouTube - Hide Shorts components:** Rename option title to make it consistent ([4d6e34b](4d6e34b))
* **YouTube - Hide video action buttons:** Remove obsolete `hide Shop button` ([ReVanced#3057](https://github.com/n-34/revanced-patches/issues/3057)) ([b5e34f3](b5e34f3))
* **YouTube - Navigation buttons:** Adjust summary text of switch notification button ([ReVanced#3130](https://github.com/n-34/revanced-patches/issues/3130)) ([cc8b4c9](cc8b4c9))
* **YouTube - Player flyout menu:** Add hide Lock screen menu ([ReVanced#2985](https://github.com/n-34/revanced-patches/issues/2985)) ([308de4a](308de4a))
* **YouTube - Player flyout menu:** Remove obsolete `Hide report menu` ([d627d44](d627d44))
* **YouTube - Restore old video quality menu:** Show advanced quality menu in Shorts quality flyout ([ReVanced#3155](https://github.com/n-34/revanced-patches/issues/3155)) ([c2b5bb7](c2b5bb7))
* **YouTube - SponsorBlock:** Export local statistics with saved settings ([f8365b4](f8365b4))
* **YouTube - SponsorBlock:** Show correct segment times if video is over 24 hours in length ([ReVanced#3138](https://github.com/n-34/revanced-patches/issues/3138)) ([6cdf697](6cdf697))
* **YouTube - Spoof app version:** Remove broken versions ([ReVanced#2776](https://github.com/n-34/revanced-patches/issues/2776)) ([9466d97](9466d97))
* **YouTube - Spoof device dimensions:** Warn about potential performance issues ([ReVanced#3039](https://github.com/n-34/revanced-patches/issues/3039)) ([9d6f305](9d6f305))
* **YouTube - Spoof signature:** Fix tracking such as history or watch time ([bcd8b48](bcd8b48))
* **YouTube Music - Remove upgrade button:** Fix compatibility with latest versions ([ReVanced#3045](https://github.com/n-34/revanced-patches/issues/3045)) ([80de996](80de996))
* **YouTube Music:** Fix compatibility with latest versions ([ReVanced#2924](https://github.com/n-34/revanced-patches/issues/2924)) ([8378c84](8378c84))
* **YouTube Music:** Make `Hide 'Get Music Premium' label` and `Remove upgrade button` compatible with latest version ([ReVanced#3164](https://github.com/n-34/revanced-patches/issues/3164)) ([3ff20de](3ff20de))
* **YouTube:** Correctly show channel page on tablet devices ([ReVanced#2656](https://github.com/n-34/revanced-patches/issues/2656)) ([c7c9700](c7c9700))
* **YouTube:** Do not crash on startup for root installs ([ReVanced#2655](https://github.com/n-34/revanced-patches/issues/2655)) ([02abace](02abace))
* **YouTube:** Fix grammer mistakes in patch descriptions ([ReVanced#2543](https://github.com/n-34/revanced-patches/issues/2543)) ([ebf5993](ebf5993))
* **YouTube:** Fix video playback by switching to ReVanced GmsCore vendor ([ReVanced#2907](https://github.com/n-34/revanced-patches/issues/2907)) ([33ea122](33ea122))
* **YouTube:** Move setting to correct screen ([a16eda8](a16eda8))
* **YouTube:** Shorten setting titles to fit on screen ([ReVanced#2579](https://github.com/n-34/revanced-patches/issues/2579)) ([b2a5dd3](b2a5dd3))

### Code Refactoring

* Fix package and code structure ([ReVanced#2541](https://github.com/n-34/revanced-patches/issues/2541)) ([a08457e](a08457e))

### Features

* Add `Hex` patch ([ReVanced#3034](https://github.com/n-34/revanced-patches/issues/3034)) ([3c95aac](3c95aac))
* **Amazon:** Add `Always allow deep-linking` patch ([ReVanced#3000](https://github.com/n-34/revanced-patches/issues/3000)) ([a92b7fb](a92b7fb))
* **Change package name:** Mention caveat of the patch in the description ([427b81a](427b81a))
* **ID Austria:** Remove constraint on any version ([ReVanced#2526](https://github.com/n-34/revanced-patches/issues/2526)) ([de2cb88](de2cb88))
* **Instagram - Hide timeline ads:** Make compatible with latest versions ([a212f29](a212f29))
* **Mi Fitness:** Add `Force English locale` and `Fix login` patch ([ReVanced#2734](https://github.com/n-34/revanced-patches/issues/2734)) ([7a25791](7a25791))
* Move strings to resources for localization ([ReVanced#2440](https://github.com/n-34/revanced-patches/issues/2440)) ([060ab8f](060ab8f))
* **MyFitnessPal:** Add `Hide ads` patch ([ReVanced#2594](https://github.com/n-34/revanced-patches/issues/2594)) ([fd4b3c7](fd4b3c7))
* **OpeningHours:** Add `Fix crash` patch ([ReVanced#2697](https://github.com/n-34/revanced-patches/issues/2697)) ([0d011b8](0d011b8))
* **Photomath:** Add `Hide update popup` patch ([ReVanced#2637](https://github.com/n-34/revanced-patches/issues/2637)) ([fbbecd3](fbbecd3))
* **Photomath:** Support version `8.37.0` ([ReVanced#3109](https://github.com/n-34/revanced-patches/issues/3109)) ([fb02b48](fb02b48))
* **Piccoma:** Add `Disable tracking` patch ([ReVanced#3143](https://github.com/n-34/revanced-patches/issues/3143)) ([8ab9e8f](8ab9e8f))
* **Piccoma:** Add `Spoof Android device ID` patch ([ReVanced#3145](https://github.com/n-34/revanced-patches/issues/3145)) ([d953c6b](d953c6b))
* **Public API:** Deprecate `HideEmailAddressPatch` ([866bceb](866bceb))
* **Public API:** Make `BottomControlsResource#addControls` public ([ReVanced#2514](https://github.com/n-34/revanced-patches/issues/2514)) ([f4e2257](f4e2257))
* Remove unnecessary description from patch ([1a89dd9](1a89dd9))
* **Strava - Unlock subscription:** Remove compatible version constraint ([80a5599](80a5599))
* **Sync for Lemmy:** Add `Disable ads` patch ([ReVanced#2872](https://github.com/n-34/revanced-patches/issues/2872)) ([0785819](0785819))
* **Sync for Reddit:** Add `Fix /s/ links` patch ([f15ef3f](f15ef3f))
* **Tiktok - Playback speed:** Remember playback speed ([ReVanced#2506](https://github.com/n-34/revanced-patches/issues/2506)) ([d2970e5](d2970e5))
* **Tiktok:** Add `Remember clear mode` patch ([ReVanced#2509](https://github.com/n-34/revanced-patches/issues/2509)) ([048bf59](048bf59))
* **Tumblr:** Add `Disable Ad-Free Banner` patch ([ReVanced#3091](https://github.com/n-34/revanced-patches/issues/3091)) ([54baf08](54baf08))
* **Tumblr:** Add `Fix old versions` patch ([ReVanced#2954](https://github.com/n-34/revanced-patches/issues/2954)) ([2fde60e](2fde60e))
* **Twitter - Unlock downloads:** Unlock GIF downloads ([d0f91c8](d0f91c8))
* **Twitter:** Add `Sanitize sharing links` patch ([ReVanced#3003](https://github.com/n-34/revanced-patches/issues/3003)) ([186b887](186b887))
* **VSCO - Unlock pro:** Constrain to last working version ([6dd4a7c](6dd4a7c))
* **WarnWetter - Promo code unlock:** Constrain to last working version ([ReVanced#3110](https://github.com/n-34/revanced-patches/issues/3110)) ([92fc8aa](92fc8aa))
* **X:** Add `Hide view count` patch ([bf064ec](bf064ec))
* **X:** Add `Open links as query` patch ([ReVanced#2730](https://github.com/n-34/revanced-patches/issues/2730)) ([ba75a51](ba75a51))
* **X:** Add `Unlock downloads` patch ([2c20844](2c20844))
* **YouTube - Alternative thumbnails:** Selectively enable for home / subscription / search ([ReVanced#2926](https://github.com/n-34/revanced-patches/issues/2926)) ([8549e1b](8549e1b))
* **YouTube - Change header:** Change to ReVanced borderless logo header by default ([ReVanced#2512](https://github.com/n-34/revanced-patches/issues/2512)) ([75f785d](75f785d))
* **YouTube - Change header:** Improve patch option description ([3b8bc08](3b8bc08))
* **YouTube - Change start page:** Add more start pages ([cc1d9b7](cc1d9b7))
* **YouTube - Comments:** Add option to hide timestamp and emoji buttons ([ReVanced#3076](https://github.com/n-34/revanced-patches/issues/3076)) ([7efe5ae](7efe5ae))
* **YouTube - Custom branding:** Improve patch option description ([e27f56c](e27f56c))
* **YouTube - Custom filter:** Custom filtering of the protocol buffer ([ReVanced#2682](https://github.com/n-34/revanced-patches/issues/2682)) ([872a5b6](872a5b6))
* **YouTube - Downloads:** Use external downloader when selecting 'Download' in home feed flyout menu ([ReVanced#2881](https://github.com/n-34/revanced-patches/issues/2881)) ([10afc8c](10afc8c))
* **YouTube - External downloader:** Add ability to use in-app download button ([d900011](d900011))
* **YouTube - GmsCore:** Require ignoring battery optimizations ([ReVanced#2952](https://github.com/n-34/revanced-patches/issues/2952)) ([c0bef25](c0bef25))
* **YouTube - Hide ads:** Add option to hide the 'Visit store' button on channel pages ([ReVanced#3077](https://github.com/n-34/revanced-patches/issues/3077)) ([03d2cfa](03d2cfa))
* **YouTube - Hide ads:** Hide fullscreen ads ([bdc9a12](bdc9a12))
* **YouTube - Hide layout components:** Add option to hide horizontal shelves ([ReVanced#2951](https://github.com/n-34/revanced-patches/issues/2951)) ([9ae0650](9ae0650))
* **YouTube - Hide layout components:** Filter home/search results by keywords ([ReVanced#2853](https://github.com/n-34/revanced-patches/issues/2853)) ([5916204](5916204))
* **YouTube - Hide layout components:** Hide playables ([8423515](8423515))
* **YouTube - Hide layout components:** Hide search result recommendations ([55cc7f1](55cc7f1))
* **YouTube - Hide Shorts components:** Hide 'Buy super thanks' button ([ReVanced#3176](https://github.com/n-34/revanced-patches/issues/3176)) ([89c1548](89c1548))
* **YouTube - Hide Shorts components:** Hide `Shop`, `Location` and `Save sound to playlist` buttons ([ReVanced#3018](https://github.com/n-34/revanced-patches/issues/3018)) ([5210ac4](5210ac4))
* **YouTube - Hide Shorts components:** Hide like / dislike button in video ads ([ReVanced#3062](https://github.com/n-34/revanced-patches/issues/3062)) ([1296985](1296985))
* **YouTube - Hide Shorts components:** Hide like and dislike buttons ([2df0892](2df0892))
* **YouTube - Hide Shorts components:** Hide sound metadata label ([ea7d1e0](ea7d1e0))
* **YouTube - Hide Shorts components:** Hide tagged products, hide search suggestions ([ReVanced#3019](https://github.com/n-34/revanced-patches/issues/3019)) ([e0d2fe5](e0d2fe5))
* **YouTube - Hide Shorts components:** Hide title and full video link label ([e7b64e1](e7b64e1))
* **YouTube - Hide Shorts components:** Selectively hide Shorts for home / subscription / search ([ReVanced#2925](https://github.com/n-34/revanced-patches/issues/2925)) ([497c067](497c067))
* **YouTube - Navigation buttons:** Add option to hide navigation button labels ([ReVanced#3189](https://github.com/n-34/revanced-patches/issues/3189)) ([f9dc705](f9dc705))
* **YouTube - Spoof app version:** Add `18.09.39` to restore library tab ([ReVanced#2643](https://github.com/n-34/revanced-patches/issues/2643)) ([dd108ff](dd108ff))
* **YouTube - Spoof app version:** Add target versions ([ReVanced#2787](https://github.com/n-34/revanced-patches/issues/2787)) ([83a7bd8](83a7bd8))
* **YouTube - Swipe controls:** Save and restore brightness and add auto-brightness toggle ([ReVanced#2996](https://github.com/n-34/revanced-patches/issues/2996)) ([f6c3bc4](f6c3bc4))
* **YouTube - Theme:** Add classic dark color to presets ([ReVanced#2542](https://github.com/n-34/revanced-patches/issues/2542)) ([4e1dc00](4e1dc00))
* **YouTube :** Remove `HDR auto brightness` patch ([ReVanced#2863](https://github.com/n-34/revanced-patches/issues/2863)) ([b4c7bf4](b4c7bf4))
* **YouTube Vanced:** Remove `Hide ads` patch ([87887e4](87887e4))
* **YouTube:** Add 'About' preference to settings menu ([ReVanced#2981](https://github.com/n-34/revanced-patches/issues/2981)) ([5abf894](5abf894))
* **YouTube:** Add `Remove viewer discretion dialog` patch ([a07f83f](a07f83f))
* **YouTube:** Improve patch descriptions ([ReVanced#2519](https://github.com/n-34/revanced-patches/issues/2519)) ([e8d1389](e8d1389))
* **YouTube:** Match overlay icons style to YouTube ([ReVanced#3023](https://github.com/n-34/revanced-patches/issues/3023)) ([6849393](6849393))
* **YouTube:** Remove `Hide email address` patch ([3b84305](3b84305))
* **YouTube:** Reorganize settings menu ([ReVanced#2737](https://github.com/n-34/revanced-patches/issues/2737)) ([36132df](36132df))
* **YouTube:** Support version `19.02.34` ([ReVanced#2627](https://github.com/n-34/revanced-patches/issues/2627)) ([94e08b7](94e08b7))
* **YouTube:** Support version `19.03.35` ([ReVanced#2640](https://github.com/n-34/revanced-patches/issues/2640)) ([ff08f58](ff08f58))
* **YouTube:** Support version `19.04.37` ([ReVanced#2687](https://github.com/n-34/revanced-patches/issues/2687)) ([c23e023](c23e023))
* **YouTube:** Support version `19.05`, `19.06`, `19.07`, `19.08` and `19.09` ([ReVanced#2862](https://github.com/n-34/revanced-patches/issues/2862)) ([f044dde](f044dde))
* **YouTube:** Support version `19.09.38`, `19.10.39` and `19.11.43` ([ReVanced#2971](https://github.com/n-34/revanced-patches/issues/2971)) ([730f3e3](730f3e3))
* **YouTube:** Support versions `18.48.39`, `18.49.37` and `19.01.34` ([ReVanced#2551](https://github.com/n-34/revanced-patches/issues/2551)) ([a938e73](a938e73))
* **YT Music - Hide 'Get Music Premium' label:** Remove occurences of label in settings ([ReVanced#3046](https://github.com/n-34/revanced-patches/issues/3046)) ([10e170a](10e170a))
* **YT Music:** Add support for `7.01.52` ([ReVanced#3177](https://github.com/n-34/revanced-patches/issues/3177)) ([e9bfb25](e9bfb25))

### BREAKING CHANGES

* **Photomath:** Some packages have changed locations.
* Various APIs have been changed.
* Various public APIs have changed names and packages or were removed entirely
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

5 participants