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

fix: Update dialog shows dev version & loading gets stuck in certain circumstances #1792

Merged
merged 6 commits into from
Jun 19, 2024

Conversation

kitadai31
Copy link
Contributor

@kitadai31 kitadai31 commented Mar 27, 2024

This PR fix these two three issues related to the Manager update dialog.

Issue 1

Dev version is shown in the "Show update" or "Show changelog" dialog when the current latest version is dev.

completes #1774

Cause

add49e1 only checks the past releases, so the latest dev version is still shown

Solution

Make GitHubAPI.getLatestManagerVersion() find the latest non-dev release and return it.

Issue 2

If the Manager version is too old (more than 30 releases), the update dialog gets stuck loading.

Cause

The api (https://api.github.com/repos/ReVanced/revanced-manager/releases) returns only recent 30 releases.
However, the current implementation doesn't consider it.
If the api response doesn't include the current Manager version, a while statement in GitHubAPI.getLatestManagerVersion() ( that searches current version) accesses out of range index and causes error.

Solution

Check the list range

As of today, this issue affects all versions prior to 1.18.0. Discord supporters should know this issue 😕

Issue 3 (Added 2024/03/31)

In changelogs, version name line is duplicated

Cause

d414a91 changed changelog format to contain version name

Solution

Not to append version name when output changelogs

@kitadai31
Copy link
Contributor Author

I think this PR needs a review by @TheAabedKhan. Would you review please?

@oSumAtrIX oSumAtrIX requested a review from TheAabedKhan March 27, 2024 12:37
Copy link
Member

@TheAabedKhan TheAabedKhan left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We can increase the number of releases the API returns. And then optimize the code by:

  1. Filtering during initialization
  2. Linear iteration
  3. Early termination
  4. Reduced loop iterations

Can you test whether the suggested code fixes the issues you mentioned?

Comment on lines 77 to 79
final response = await _dio.get(
'/repos/$repoName/releases',
);
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
final response = await _dio.get(
'/repos/$repoName/releases',
);
final response = await _dio.get(
'/repos/$repoName/releases?per_page=100',
);
final List<dynamic> releases =
response.data.where((release) => !release['prerelease']).toList();
int updates = 0;
final String currentVersion =
await _managerAPI.getCurrentManagerVersion();
while (releases[updates]['tag_name'] != currentVersion) {
updates++;
if (updates == releases.length) {
break;
}
}
for (int i = 1; i < updates; i++) {
releases[0].update(
'body',
(value) =>
value +
'\n' +
'# ' +
releases[i]['tag_name'] +
'\n' +
releases[i]['body'],
);
}
return releases[0];

@kitadai31
Copy link
Contributor Author

Thank you.
I checked that it fixes the issues.

However, ?per_page=100 caused bad performance when the changelogs are long. (even on release build, Snapdragon 845 phone)
It took 1.5 seconds to open the changelog and scroll is very laggy.
Therefore, I think it would be reasonable to limit it to default 30 releases.

Also, I want to a question.
I'm interested in this.

  1. Linear iteration
  2. Early termination
  3. Reduced loop iterations

I think this code will also work:

int updates = 0;
while (releases[updates]['tag_name'] != currentVersion) {
  updates++;
  if (updates == releases.length) {
    break;
  }
  releases[0].update(
    'body',
    (value) =>
        value +
        '\n' +
        '# ' +
        releases[updates]['tag_name'] +
        '\n' +
        releases[updates]['body'],
  );
}

Is it really more efficient to first count the number with a while loop and then do a for loop rather than processing it in one iteration?
(Sorry for the off-topic general computer science question.)

@TheAabedKhan
Copy link
Member

TheAabedKhan commented Mar 27, 2024

It took 1.5 seconds to open the changelog and scroll is very laggy.

Couldn't feel any difference on my device. However, you can try reducing the number until you are satisfied with the performance or remove the parameter if you like.

Is it really more efficient to first count the number with a while loop and then do a for loop rather than processing it in one iteration?

You're correct that in terms of pure iteration, it would be more efficient to process everything in one iteration rather than counting first and then iterating again.
Also, while we are on it, how about accumulating release notes separately before updating the body of the first release? This will reduce the number of update operations on the body of the first release.

final StringBuffer releaseNotes = StringBuffer();
while (releases[updates]['tag_name'] != currentVersion) {
  updates++;
  if (updates == releases.length) {
    break;
  }
  releaseNotes.writeln('# ${releases[updates]['tag_name']}');
  releaseNotes.writeln(releases[updates]['body']);
}
releases[0].update(
  'body',
  (value) => value + '\n' + releaseNotes.toString(),
);
return releases[0];

@kitadai31
Copy link
Contributor Author

It's more readable than two loops! Thank you for the advice.

I just came up with an idea.

version

This version string in UpdateConfirmationSheet can be obtained from a field HomeViewModel.latestManagerVersion instead of GitHubAPI.getLatestManagerReleases().
This value is more accurate than get from https://api.github.com/repos/ReVanced/revanced-manager/releases?per_page=XXX, because the possibility exists that all releases from this API are pre-release.
(lack of my test cases before making a PR)

Then, the method Future<Map<String, dynamic>?> getLatestManagerRelease(String repoName) don't have to provide the latest version string, so it can be more simple and less-responsibility method like Future<String?> getManagerChangelogs()
I will do this tomorrow.

fix: Remove duplicated version line in changelogs
feat: Allow update manager when failed to connect to github api
@kitadai31
Copy link
Contributor Author

kitadai31 commented Mar 31, 2024

Changes

update_confirmation_sheet.dart:

  • Change version string reference from snapshot.data!['tag_name'] to model.latestPatchesVersion
  • Use FutureBuilder only for the changelog part
    • This allows users to update manager even when failed to connect GitHub API

home_viewmodel.dart:

  • Make String? _latestManagerVersion and String? _latestPatchesVersion instance variables public in order to be used in update_confirmation_sheet
  • Remove initializing with empty strings because I want to guarantee that the variable holds the latest version string
  • Change methods which used in update_confirmation_sheet

github_api.dart:

  • Future<Map<String, dynamic>?> getLatestManagerRelease(String repoName) now returns the changelogs only and renamed to Future<String?> getManagerChangelogs()
  • Set to ?per_page=50
  • Don't append the version name header while generating changelogs (Refer to the added issue 3)

@Ushie Ushie requested a review from TheAabedKhan April 5, 2024 00:56
@Ushie Ushie changed the title fix: Manager update dialog shows dev version & loading gets stuck in certain circumstances fix: Update dialog shows dev version & loading gets stuck in certain circumstances Apr 5, 2024
Copy link
Member

@TheAabedKhan TheAabedKhan left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

tag_name should be included in the changelog as we did not use to include it within the body prior to v1.19.0. If we happen to not include the tag_name within the body of changelog in the future, then users can't know which changelog belongs to which version.

tag_name within body no tag_name within body
image image

Or

Whatever @oSumAtrIX says

lib/services/github_api.dart Show resolved Hide resolved
@validcube validcube self-requested a review May 18, 2024 18:37
validcube added 3 commits May 19, 2024 18:37
Signed-off-by: validcube <pun.butrach@gmail.com>
Reviewed-by: Pun Butrach <pun.butrach@gmail.com>

Script Execution UTC Time: null
Script Execution UTC Time: null

Signed-off-by: validcube <pun.butrach@gmail.com>
Copy link
Member

@validcube validcube left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🥞 Approved, thank!

@validcube validcube merged commit fc52560 into ReVanced:dev Jun 19, 2024
1 check passed
github-actions bot pushed a commit that referenced this pull request Jun 24, 2024
# [1.21.0-dev.4](v1.21.0-dev.3...v1.21.0-dev.4) (2024-06-24)

### Bug Fixes

* Cache external API calls  ([#1911](#1911)) ([2c3e2e6](2c3e2e6))
* Follow language update immediately ([#1944](#1944)) ([c13827e](c13827e))
* SecurityException when patching application ([#1856](#1856)) ([e0a6de2](e0a6de2))
* Update dialog shows dev version & loading gets stuck in certain circumstances ([#1792](#1792)) ([fc52560](fc52560))

### Features

* Add ability to set `null` in patch options ([#1947](#1947)) ([5c68d51](5c68d51))
@kitadai31 kitadai31 deleted the fix/manager_changelogs branch June 29, 2024 07:47
github-actions bot pushed a commit that referenced this pull request Jul 29, 2024
# [1.21.0](v1.20.1...v1.21.0) (2024-07-29)

### Bug Fixes

* Add missing import to patch options field ([d60f9aa](d60f9aa))
* Adjust scroll from clipping children form fields in `AlertDialog` from `showSourcesDialog` ([#1782](#1782)) ([bbeb836](bbeb836))
* Cache external API calls  ([#1911](#1911)) ([2c3e2e6](2c3e2e6))
* Change problematic translation string ([6b03f3a](6b03f3a))
* Correct architecture to armeabi-v7a ([63c6412](63c6412))
* Download latest integrations non-pre-release ([4a72267](4a72267))
* Follow language update immediately ([#1944](#1944)) ([c13827e](c13827e))
* Follow system theme immediately ([#1942](#1942)) ([694f2a9](694f2a9))
* Handle selecting files and folders for patch options correctly ([#1941](#1941)) ([b26760b](b26760b))
* Increase dashboard RefreshIndicator edge offset ([#1859](#1859)) ([232b702](232b702))
* Patching Screen draw-behind Navigation Bar ([#1945](#1945)) ([f1b25d0](f1b25d0))
* Restore consistency with the app ([ea9654e](ea9654e))
* SecurityException when patching application ([#1856](#1856)) ([e0a6de2](e0a6de2))
* Select previously applied patches when loading patch selection ([#1865](#1865)) ([7ef8f04](7ef8f04))
* Unable to install application regardless of preference ([c7627ce](c7627ce))
* Unsupported patch toast says "patchItem.unsupportedPatchVersion" ([#2011](#2011)) ([3209c0e](3209c0e))
* Update dialog shows dev version & loading gets stuck in certain circumstances ([#1792](#1792)) ([fc52560](fc52560))

### Features

* Add ability to set `null` in patch options ([#1947](#1947)) ([5c68d51](5c68d51))
* Include primary architecture in external search ([#2068](#2068)) ([23690a9](23690a9))
* open browser when clicking on changelog link ([bc300d8](bc300d8))
* Save last patched app ([#1414](#1414)) ([7720408](7720408))
* Support patching on ARMv7a ([a766352](a766352))
github-actions bot pushed a commit to CnC-Robert/revanced-manager that referenced this pull request Oct 17, 2024
# [0.1.0](https://github.com/CnC-Robert/revanced-manager/compare/v0.0.26...v0.1.0) (2024-10-17)

### Bug Fixes

* `Don't use 'BuildContext's across async gaps.` ([#1148](https://github.com/CnC-Robert/revanced-manager/issues/1148)) ([fc8a4fc](https://github.com/CnC-Robert/revanced-manager/commit/fc8a4fc5b6b543de511e84adf371a92a98f802f4))
* `Material You` toggle not updating sometimes ([#1421](https://github.com/CnC-Robert/revanced-manager/issues/1421)) ([e686898](https://github.com/CnC-Robert/revanced-manager/commit/e68689828e1f0bc73086e2de774beac77ef1ba0c))
* `original.apk` not found despite existing ([#1052](https://github.com/CnC-Robert/revanced-manager/issues/1052)) ([64744b2](https://github.com/CnC-Robert/revanced-manager/commit/64744b2abf9b1ca5cb244fdbc7b791d224dd7110))
* aborting message changed ([#928](https://github.com/CnC-Robert/revanced-manager/issues/928)) ([f01b8e4](https://github.com/CnC-Robert/revanced-manager/commit/f01b8e47aac4131b97a52a2e91db34f3fb51173d))
* add back saving patched apps after clearing data. ([3f9d7c9](https://github.com/CnC-Robert/revanced-manager/commit/3f9d7c9cc0d382bf1bbec8be73619bcb00a25307))
* add env file to repo. ([331691c](https://github.com/CnC-Robert/revanced-manager/commit/331691cc9ddaa836cde044d9713000768115205d))
* add firebase options to repo. ([2aaed14](https://github.com/CnC-Robert/revanced-manager/commit/2aaed14a3aa4a5488bee3f3bbcbf272cc47fd258))
* Add haptics to save last APK switch ([#2133](https://github.com/CnC-Robert/revanced-manager/issues/2133)) ([e063b3d](https://github.com/CnC-Robert/revanced-manager/commit/e063b3d1020284bdc473dff8cdd9493017447b7d))
* Add missing confirmation dialog ([7a1ba9d](https://github.com/CnC-Robert/revanced-manager/commit/7a1ba9dabfc8fb59d6b351f034b4e1d5a9802370))
* add missing else block. ([fbd4359](https://github.com/CnC-Robert/revanced-manager/commit/fbd4359d619ac61f7ee3b374a3f857bdea83efab))
* Add missing import to patch options field ([d60f9aa](https://github.com/CnC-Robert/revanced-manager/commit/d60f9aa1d80a4a97b100843d16e5a37b8f312a72))
* added a trailing comma ([975180b](https://github.com/CnC-Robert/revanced-manager/commit/975180b075a6a40fa514328902f103a0685987cc))
* adjust padding ([3559477](https://github.com/CnC-Robert/revanced-manager/commit/3559477247649ce0253547d65aa0b6675b44dde0))
* Adjust scroll from clipping children form fields in `AlertDialog` from `showSourcesDialog` ([#1782](https://github.com/CnC-Robert/revanced-manager/issues/1782)) ([bbeb836](https://github.com/CnC-Robert/revanced-manager/commit/bbeb836923e707c33503877b4556e2a5d8087025))
* Allow mounting without Magisk ([3f96608](https://github.com/CnC-Robert/revanced-manager/commit/3f96608398c92af7f2311e511d44363532b84fd4))
* allow tapping on patch card when experimental switch is enabled ([#464](https://github.com/CnC-Robert/revanced-manager/issues/464)) ([97d4da5](https://github.com/CnC-Robert/revanced-manager/commit/97d4da568b56df27d2d6a87582b5f99d95a0fe75))
* app crash after custom source ([da6cf58](https://github.com/CnC-Robert/revanced-manager/commit/da6cf585c09b73937390f3edbf14bb4046915aa6))
* app crash after custom source ([#1003](https://github.com/CnC-Robert/revanced-manager/issues/1003)) ([344717b](https://github.com/CnC-Robert/revanced-manager/commit/344717b0219ce085eb46be7237b6a14ff5b69ac4))
* App list is empty if all apps are installed ([#1750](https://github.com/CnC-Robert/revanced-manager/issues/1750)) ([1f5461f](https://github.com/CnC-Robert/revanced-manager/commit/1f5461fbe560459915b0872df7ed10c67ede08f7))
* **App Selector:** Unable to select APK from storage when asked to ([#1513](https://github.com/CnC-Robert/revanced-manager/issues/1513)) ([7897827](https://github.com/CnC-Robert/revanced-manager/commit/78978276c4cdd6165588de9b537a53122f04aab8))
* **app-bar:** title not hiding completely ([#1376](https://github.com/CnC-Robert/revanced-manager/issues/1376)) ([d577e97](https://github.com/CnC-Robert/revanced-manager/commit/d577e97758f318d20d66a59318ceb0afae55f215))
* **app-selector:** fix text overflow on small screen ([e64318c](https://github.com/CnC-Robert/revanced-manager/commit/e64318c94700fa7a156287f0b82c4f95112b5f74))
* **app-selector:** fix text overflow on small screen ([#1017](https://github.com/CnC-Robert/revanced-manager/issues/1017)) ([0462815](https://github.com/CnC-Robert/revanced-manager/commit/04628150149a18b9d69dec8ed888ba02b5896517))
* **app-selector:** remove direct use of strings  ([#944](https://github.com/CnC-Robert/revanced-manager/issues/944)) ([941f618](https://github.com/CnC-Robert/revanced-manager/commit/941f6181533a59d45d3e9dff6e89fe6f209eb1be))
* apply correct patch if patch names are same ([#535](https://github.com/CnC-Robert/revanced-manager/issues/535)) ([922f474](https://github.com/CnC-Robert/revanced-manager/commit/922f474b59bb28a095336a0c0947e94d8bc5edb2))
* **appselector:** closing dialog closes app selector ([3e565f2](https://github.com/CnC-Robert/revanced-manager/commit/3e565f25be5dd3a32bc4d4548c4603dda2aacf83))
* back button closing the app from any page ([2bf6a03](https://github.com/CnC-Robert/revanced-manager/commit/2bf6a03d563450409be71b4076e5d26982d29b6c))
* black screen after resetting custom sources ([d318224](https://github.com/CnC-Robert/revanced-manager/commit/d318224a6f5a1ce2e72b4793623aad7cdc406c3f))
* broken filename when saving files with the same name ([#837](https://github.com/CnC-Robert/revanced-manager/issues/837)) ([cd987a5](https://github.com/CnC-Robert/revanced-manager/commit/cd987a5b190abdf01541c155746f86644f7e5710))
* broken settings page ([d6169c6](https://github.com/CnC-Robert/revanced-manager/commit/d6169c6fa2a98d2c1b9c8e56b92a07ba42e3e7d0))
* **build:** allow profile variant to compile ([d25d1ef](https://github.com/CnC-Robert/revanced-manager/commit/d25d1efe9c0ada156fa210cd04fc61f14378309d)), closes [#1305](https://github.com/CnC-Robert/revanced-manager/issues/1305)
* **build:** migrate env name to new workflow ([447c16c](https://github.com/CnC-Robert/revanced-manager/commit/447c16cff14cf7c896d0e664389d000e6f0c28f2))
* **build:** use correct step id ([b7227bf](https://github.com/CnC-Robert/revanced-manager/commit/b7227bfad7fad0095c23dfefdd9c3a5466b4a775))
* Bump dependencies to support BCS keystore ([6ec6546](https://github.com/CnC-Robert/revanced-manager/commit/6ec6546cc5c19eb1ad7b7f6ec9b1661f7647b516))
* Bump SDK of each plugin using SDK lower than 31 ([01e4a76](https://github.com/CnC-Robert/revanced-manager/commit/01e4a76caa06b4ab7934cc786ca57204501dd983)), closes [/github.com/flutter/flutter/issues/153281#issuecomment-2292201697](https://github.com//github.com/flutter/flutter/issues/153281/issues/issuecomment-2292201697)
* Cache external API calls  ([#1911](https://github.com/CnC-Robert/revanced-manager/issues/1911)) ([2c3e2e6](https://github.com/CnC-Robert/revanced-manager/commit/2c3e2e639f9f9b981f2438fef3c1e2f52f130a6d))
* Change problematic translation string ([6b03f3a](https://github.com/CnC-Robert/revanced-manager/commit/6b03f3a169f6c9d889b3b835668383ff98682e14))
* changelog for youtube. ([857a523](https://github.com/CnC-Robert/revanced-manager/commit/857a523f84b206bc1b1e99e73eeb907801b80cc8))
* close before returning ([64a96fc](https://github.com/CnC-Robert/revanced-manager/commit/64a96fc3cea3a59d89d757c06a4a13d6d88cf995))
* close previous dialog when user reset the API URL ([#1025](https://github.com/CnC-Robert/revanced-manager/issues/1025)) ([159c85b](https://github.com/CnC-Robert/revanced-manager/commit/159c85bd1f1e9432a806eaa76bc99b8ec0019529))
* Copy APK to working directory before trying to write to it ([5cd1cba](https://github.com/CnC-Robert/revanced-manager/commit/5cd1cba6685f5c981ca1435885c60fddb53bbcaa))
* Correct architecture to armeabi-v7a ([63c6412](https://github.com/CnC-Robert/revanced-manager/commit/63c6412736e127e53ffb82c0365a3f27d57c6353))
* Correct update message ([a141ec8](https://github.com/CnC-Robert/revanced-manager/commit/a141ec85b0802bb70605264db78a4b8562d17375))
* custom sources. ([2a220c3](https://github.com/CnC-Robert/revanced-manager/commit/2a220c398422a370883dd5c51a2f0b7c59116dd4))
* **custom-sources:** ignore casing when checking if default repo is being used ([#1281](https://github.com/CnC-Robert/revanced-manager/issues/1281)) ([9ad1d6c](https://github.com/CnC-Robert/revanced-manager/commit/9ad1d6cbfb04a923d01bd1b900e0d27f07055131))
* default theme not following system ([#1288](https://github.com/CnC-Robert/revanced-manager/issues/1288)) ([6f4866e](https://github.com/CnC-Robert/revanced-manager/commit/6f4866ef639882f2c3648c7f3b15128f011da8da))
* delete cached apk files when picking new one ([#481](https://github.com/CnC-Robert/revanced-manager/issues/481)) ([fd5d71e](https://github.com/CnC-Robert/revanced-manager/commit/fd5d71e24d3d019a8be6a912a9eab66f779e9bb7))
* different message when trying to patch spilt apk ([#973](https://github.com/CnC-Robert/revanced-manager/issues/973)) ([4100d7a](https://github.com/CnC-Robert/revanced-manager/commit/4100d7a391155c579d45a0128317990da30c3365))
* disable changing languages for now. ([a0af0dd](https://github.com/CnC-Robert/revanced-manager/commit/a0af0dde0af3d9744fc2c316162101f3459c9b2e))
* disable proguard obfuscation ([401646a](https://github.com/CnC-Robert/revanced-manager/commit/401646ace4e2dc2ec12c403dc6011aaed878dcda))
* disable update functionality for now. ([b2a3581](https://github.com/CnC-Robert/revanced-manager/commit/b2a35813f6b4f77278a6ee18f334930153289b46))
* Disable wakelock when patching is canceled ([#1514](https://github.com/CnC-Robert/revanced-manager/issues/1514)) ([9df89c7](https://github.com/CnC-Robert/revanced-manager/commit/9df89c7b74b9f227197d02c492c1956b56c30ff2))
* display patches version on first load ([#687](https://github.com/CnC-Robert/revanced-manager/issues/687)) ([7d3ca3d](https://github.com/CnC-Robert/revanced-manager/commit/7d3ca3dec180d8b3dbc44ab650e50a95b5120908))
* do not ask for patches consent before initializing model ([1e8d8f7](https://github.com/CnC-Robert/revanced-manager/commit/1e8d8f749abc61e6b28b9db9f44c7abab17e6544))
* Do not crash when selecting an APK from storage ([#1768](https://github.com/CnC-Robert/revanced-manager/issues/1768)) ([8564c1a](https://github.com/CnC-Robert/revanced-manager/commit/8564c1a72e7f9d2c546fa0025b0626cfba26959e))
* Do not delete cached downloads ([6961bb7](https://github.com/CnC-Robert/revanced-manager/commit/6961bb7fd096cd618e24e343a92f00fb8eeba1ee))
* Do not delete files from post-fs-data.d ([70a1086](https://github.com/CnC-Robert/revanced-manager/commit/70a1086edfa992e43a92bc5d6331c7566e628191))
* Do not hardcode any predefined packages ([2e8e3b0](https://github.com/CnC-Robert/revanced-manager/commit/2e8e3b0d1ec4396796e264501ca6dbf1c615a878))
* Don't crash installation when saving last APK is disabled ([#2128](https://github.com/CnC-Robert/revanced-manager/issues/2128)) ([427928e](https://github.com/CnC-Robert/revanced-manager/commit/427928e542ed0741f4fdd19c800fb85b83f9a301))
* Don't crash on patch ([a7e481c](https://github.com/CnC-Robert/revanced-manager/commit/a7e481c82775b6c21973f3fd066caff0be41737d))
* Don't crash when installing the last patched APK ([#2131](https://github.com/CnC-Robert/revanced-manager/issues/2131)) ([cb722f2](https://github.com/CnC-Robert/revanced-manager/commit/cb722f2634086ac9735c0e08ea0f5ee85aae3fbb))
* don't show previously patched apps after clearing data. ([279b76a](https://github.com/CnC-Robert/revanced-manager/commit/279b76ad53a910e4285b01544a45ddb320ec063c))
* Don't show toasts when export cancelled ([#2230](https://github.com/CnC-Robert/revanced-manager/issues/2230)) ([bd79496](https://github.com/CnC-Robert/revanced-manager/commit/bd7949643350a9769ce539bfb5939e00f8c420a7))
* Don't translation ReVanced repository ([c265794](https://github.com/CnC-Robert/revanced-manager/commit/c265794d0efbc3ed2dea7a60c7ebd461f711799a))
* dont select all patches if experimental toggle is off. ([1d440d2](https://github.com/CnC-Robert/revanced-manager/commit/1d440d25bef0b4a697343fd6f26fc9ab42cd20b9))
* Download latest integrations non-pre-release ([4a72267](https://github.com/CnC-Robert/revanced-manager/commit/4a72267d4120341031afb8fccd822e052ad706b6))
* Empty “tmp-XXXXXX” directory keeps growing in cacheDir ([#2194](https://github.com/CnC-Robert/revanced-manager/issues/2194)) ([f5a12e0](https://github.com/CnC-Robert/revanced-manager/commit/f5a12e01bd528b4c15eff48540957b79dd47d02d))
* Ensure safe area usage in Changelogs Modal Bottom Sheet ([#1772](https://github.com/CnC-Robert/revanced-manager/issues/1772)) ([c981cb4](https://github.com/CnC-Robert/revanced-manager/commit/c981cb4a41051bc68b14cec55520c808311952b7))
* exclude x86 aapt2 binary from release builds ([#1126](https://github.com/CnC-Robert/revanced-manager/issues/1126)) ([381daff](https://github.com/CnC-Robert/revanced-manager/commit/381daff980c5e2ff29a4f54d3ee58c0d0af3679e))
* experimental patches stay selected when toggled off ([#946](https://github.com/CnC-Robert/revanced-manager/issues/946)) ([716a30b](https://github.com/CnC-Robert/revanced-manager/commit/716a30bf7b0380674b1adbe9401bf9d2f0d4acc4))
* experimental/universal patches being used even when turned off ([#1090](https://github.com/CnC-Robert/revanced-manager/issues/1090)) ([5abcc71](https://github.com/CnC-Robert/revanced-manager/commit/5abcc7191fea9a3b601234c7915bb58f110a5d15))
* export keystore not working in some conditions ([#862](https://github.com/CnC-Robert/revanced-manager/issues/862)) ([359f052](https://github.com/CnC-Robert/revanced-manager/commit/359f0526082857c63bc4caa8a31836a7e8be25b8))
* **export-settings:** export patches as json object ([f7c11d0](https://github.com/CnC-Robert/revanced-manager/commit/f7c11d07a89ed92c3d67e5213b1318f6dd2ac52d))
* **export-settings:** remove boolean workaround ([2ad106f](https://github.com/CnC-Robert/revanced-manager/commit/2ad106f7d7c2acbfdbc71c8f154e001237edd712))
* exported logs patch selection ([#1535](https://github.com/CnC-Robert/revanced-manager/issues/1535)) ([2ae8d49](https://github.com/CnC-Robert/revanced-manager/commit/2ae8d49526e2c0404c3a637a8010abd991b9a573))
* Fill the preferred action ([0492e91](https://github.com/CnC-Robert/revanced-manager/commit/0492e910ea565bd3cb35f781c298f867ec8bfaf9))
* fix armv7 dialog shown for x86, x86_64 ([170fc53](https://github.com/CnC-Robert/revanced-manager/commit/170fc537acb195eca74b2857ed93663275e134de))
* fix broken manager update implmentation ([15a32a1](https://github.com/CnC-Robert/revanced-manager/commit/15a32a18b764c2f1683134ecff424cd0755568a3))
* Fix missing notification icon when shrinking resouces ([#2195](https://github.com/CnC-Robert/revanced-manager/issues/2195)) ([224be29](https://github.com/CnC-Robert/revanced-manager/commit/224be29a3d43502c0fbd8112a9c464f684e93fd7))
* fix not asking for permission ([13b7179](https://github.com/CnC-Robert/revanced-manager/commit/13b717994169dd0538d82597b1acf8c7f07e2417))
* Fix patched APKs exports after installation ([1200360](https://github.com/CnC-Robert/revanced-manager/commit/1200360588c27696cafe084d1a68989d4d2a303b))
* fix redundant buttons on dialog ([079c0de](https://github.com/CnC-Robert/revanced-manager/commit/079c0defafafffc532136e976d12cf0f2223ecd7))
* Fix the connectivity check toast again ([#2216](https://github.com/CnC-Robert/revanced-manager/issues/2216)) ([a7e2281](https://github.com/CnC-Robert/revanced-manager/commit/a7e22818055577e319eee3fc640575d806449f31))
* Fix white-screen when trying to install conflicting apps ([4acd738](https://github.com/CnC-Robert/revanced-manager/commit/4acd7383530059af744f442127caf30672dbbf94))
* fixed typo ([9828857](https://github.com/CnC-Robert/revanced-manager/commit/98288575708d88265b9a2ca6a0c722eabaa0c53c))
* Follow language update immediately ([#1944](https://github.com/CnC-Robert/revanced-manager/issues/1944)) ([c13827e](https://github.com/CnC-Robert/revanced-manager/commit/c13827e8e16042e6d50a54467aefac2b4ed21cfd))
* Follow system theme immediately ([#1942](https://github.com/CnC-Robert/revanced-manager/issues/1942)) ([694f2a9](https://github.com/CnC-Robert/revanced-manager/commit/694f2a9faed0ca549a40e11abf20242121b773e6))
* force disable material you on Android 11 and below ([#1293](https://github.com/CnC-Robert/revanced-manager/issues/1293)) ([c3d345d](https://github.com/CnC-Robert/revanced-manager/commit/c3d345de80f4c877418aadc2ac9cb69987093aa2))
* Get changelogs for alternative sources ([#1766](https://github.com/CnC-Robert/revanced-manager/issues/1766)) ([c729842](https://github.com/CnC-Robert/revanced-manager/commit/c7298424e55cfdfb6475df1bf0616889d50785d8))
* Handle selecting files and folders for patch options correctly ([#1941](https://github.com/CnC-Robert/revanced-manager/issues/1941)) ([b26760b](https://github.com/CnC-Robert/revanced-manager/commit/b26760b2163081e0e49b0bcd4799abefb4118920))
* Handle selecting files and folders for patch options correctly ([#2144](https://github.com/CnC-Robert/revanced-manager/issues/2144)) ([f1c2f41](https://github.com/CnC-Robert/revanced-manager/commit/f1c2f4146cc9c8a8f14cf84cee02abc2b0d2c9f4))
* Hide empty patches category labels ([#1439](https://github.com/CnC-Robert/revanced-manager/issues/1439)) ([0be568b](https://github.com/CnC-Robert/revanced-manager/commit/0be568bbbdfd8bab6576e0a84d3e3a41bb33c225))
* hide install button on error ([42e41c3](https://github.com/CnC-Robert/revanced-manager/commit/42e41c399f36b751fb17ed049147b66449526f98))
* **i18n:** locale capitalization and grammar ([#496](https://github.com/CnC-Robert/revanced-manager/issues/496)) ([405147b](https://github.com/CnC-Robert/revanced-manager/commit/405147b1c5974cabcae7a6a2d3f2cdcedfc6c496))
* **i18n:** update translation for `refreshSucess` ([b286444](https://github.com/CnC-Robert/revanced-manager/commit/b286444ad93fc6009412ac14b996ff6268069811))
* ignore the root .gradle folder ([8e2cfbd](https://github.com/CnC-Robert/revanced-manager/commit/8e2cfbddc5f1a46279d5f4310837b55d79a41b26))
* import patches selects unsupported patches ([#942](https://github.com/CnC-Robert/revanced-manager/issues/942)) ([5e7458f](https://github.com/CnC-Robert/revanced-manager/commit/5e7458ff1cc2e98d70a34fbcd21e350d9cc4bce6))
* improperly sized monochrome icon ([#715](https://github.com/CnC-Robert/revanced-manager/issues/715)) ([8319dc9](https://github.com/CnC-Robert/revanced-manager/commit/8319dc91640cd7ba45e173a65a1cc23f0e628e1d))
* improve app list loading speed ([#1166](https://github.com/CnC-Robert/revanced-manager/issues/1166)) ([f4b0a69](https://github.com/CnC-Robert/revanced-manager/commit/f4b0a695d6cd21ee210106121fefa539dfc593aa))
* Include new patches that are used by default ([7831a34](https://github.com/CnC-Robert/revanced-manager/commit/7831a3438d46630dad78425eba18c209210e6d1d))
* Incorrect duplicate filename handling when exporting files ([#1541](https://github.com/CnC-Robert/revanced-manager/issues/1541)) ([de51fbd](https://github.com/CnC-Robert/revanced-manager/commit/de51fbd7bee532be020bb7bfe5c672742dd93ced))
* Incorrect strings and logics ([#1619](https://github.com/CnC-Robert/revanced-manager/issues/1619)) ([4f22e88](https://github.com/CnC-Robert/revanced-manager/commit/4f22e88e427cc9f08303a2a94cc94f95ac133c54))
* Increase dashboard RefreshIndicator edge offset ([#1859](https://github.com/CnC-Robert/revanced-manager/issues/1859)) ([232b702](https://github.com/CnC-Robert/revanced-manager/commit/232b70278971a1a6a67867577359a6de99455689))
* increase sleep timer for mount script. ([5b38c94](https://github.com/CnC-Robert/revanced-manager/commit/5b38c9442a5c887a70fd69350070c9ff1fc9210e))
* **install-type:** update padding and enable radio list scrolling ([#1287](https://github.com/CnC-Robert/revanced-manager/issues/1287)) ([e75d3c8](https://github.com/CnC-Robert/revanced-manager/commit/e75d3c8273de16b5d109bfb81718b72807bc18f2))
* **installer:** open the patched app after install ([#1233](https://github.com/CnC-Robert/revanced-manager/issues/1233)) ([c5fc54e](https://github.com/CnC-Robert/revanced-manager/commit/c5fc54e7215a25d95af7c214d5118ed5553289f9))
* **installer:** use correct bg colour for dialog ([7525e52](https://github.com/CnC-Robert/revanced-manager/commit/7525e52fab38b3b8dcf5a72bc30d9afba71a43c8))
* **installer:** use correct elevation level ([d9953b1](https://github.com/CnC-Robert/revanced-manager/commit/d9953b14734f5148ff520766a49e9c42023c9138))
* Keep names for needed classes to fix crash at launch ([eef7016](https://github.com/CnC-Robert/revanced-manager/commit/eef701615b7ac4f9ec6bfc924226f604b6d6becf))
* keystore name typo. ([ac79765](https://github.com/CnC-Robert/revanced-manager/commit/ac7976537227e436e842caaf80531726a18851cf))
* keystore password dialog showing up before importing ([#1068](https://github.com/CnC-Robert/revanced-manager/issues/1068)) ([0d71651](https://github.com/CnC-Robert/revanced-manager/commit/0d716513d72c07be77a3196465ea902ae8ea9f68))
* **Keystore Password:** textfield title display ([8e52abd](https://github.com/CnC-Robert/revanced-manager/commit/8e52abda9aa529b229bfcd2aeea4296e88f1375b))
* Lack of connectivity toast not showing due to incorrect comparison ([81f05e1](https://github.com/CnC-Robert/revanced-manager/commit/81f05e1b190274d97427bd6b196cdc6d0a66757c))
* Load installed apps ([36c86e2](https://github.com/CnC-Robert/revanced-manager/commit/36c86e22b1305043d6d19753cbbe1a3dc4df2eca))
* Load patches from older versions of ReVanced Manager correctly ([6ad0d86](https://github.com/CnC-Robert/revanced-manager/commit/6ad0d860c7e04be47f0a084738e3c644bbf70200))
* load patches via `PatchBundle` ([#1242](https://github.com/CnC-Robert/revanced-manager/issues/1242)) ([4b8542b](https://github.com/CnC-Robert/revanced-manager/commit/4b8542b35b0245caf36ee0c90b63b57e405998bc))
* Log saved patch option values ([#1420](https://github.com/CnC-Robert/revanced-manager/issues/1420)) ([e7d8285](https://github.com/CnC-Robert/revanced-manager/commit/e7d82850c92e33285082def4faf725d705379e7b))
* Long patch description truncated ([#702](https://github.com/CnC-Robert/revanced-manager/issues/702)) ([12d2557](https://github.com/CnC-Robert/revanced-manager/commit/12d25570af11e4b86c4b384c6ee86b70e4b5dd91))
* make entire theme item clickable ([e01b323](https://github.com/CnC-Robert/revanced-manager/commit/e01b323aee992fa274722df78dfe0baa8d38e923))
* Migrate to onPopInvokedWithResult ([43d5888](https://github.com/CnC-Robert/revanced-manager/commit/43d5888182ee49017a88a02b3c3144acb46e5947))
* migration latest changes to native buttons ([c56c445](https://github.com/CnC-Robert/revanced-manager/commit/c56c445fb7bcce9e160ae3dbaff9068f62dab34c))
* missing parameter in translations ([1c6c5d5](https://github.com/CnC-Robert/revanced-manager/commit/1c6c5d53aeef9ba851c2a437e6b607188db87994))
* Mount script causes build to fail ([#1613](https://github.com/CnC-Robert/revanced-manager/issues/1613)) ([f3c78c2](https://github.com/CnC-Robert/revanced-manager/commit/f3c78c2c244f4162d7a6ebb2ea0d602dcd6b6533))
* Move installation log to correct place ([c4a7954](https://github.com/CnC-Robert/revanced-manager/commit/c4a795418f80ce873d7bdf90fdb2f4f19142b079))
* Move temporary files outside of the cache directory ([#2193](https://github.com/CnC-Robert/revanced-manager/issues/2193)) ([1ef1f8d](https://github.com/CnC-Robert/revanced-manager/commit/1ef1f8d47a519e0b063839bcaa507bccc486e4b5))
* **navigation-view:** back button closing the app from any page ([#1019](https://github.com/CnC-Robert/revanced-manager/issues/1019)) ([c5b0621](https://github.com/CnC-Robert/revanced-manager/commit/c5b06213235db6b96ba980bcc8164503cf18dbd6))
* npe when loading patch bundle on android 8 ([0bfa776](https://github.com/CnC-Robert/revanced-manager/commit/0bfa776ce7402074618516435a750898ab318b7b))
* npe when patching on android 8 ([9f64011](https://github.com/CnC-Robert/revanced-manager/commit/9f64011b260ef6aba7a0f304317eca12d05fcdd9))
* open contributor links externally ([#791](https://github.com/CnC-Robert/revanced-manager/issues/791)) ([f0b0282](https://github.com/CnC-Robert/revanced-manager/commit/f0b028279c69f97817952063d84809d3e486ad6e))
* overlapping issue in application selection page ([#1128](https://github.com/CnC-Robert/revanced-manager/issues/1128)) ([372ce17](https://github.com/CnC-Robert/revanced-manager/commit/372ce174c9dc7cdcf55782a5e636aae69df37a17))
* pair integrations and patches updates ([#1102](https://github.com/CnC-Robert/revanced-manager/issues/1102)) ([722a585](https://github.com/CnC-Robert/revanced-manager/commit/722a5859a54e052794a300f57ab3eacf1c242386))
* **Patch Option:** Set text colour on dropdown menu ([acb1e24](https://github.com/CnC-Robert/revanced-manager/commit/acb1e2434b28efca852297e0a0a8ffce155e67e4))
* **patch_selector:** correct popup menu style ([72ea33b](https://github.com/CnC-Robert/revanced-manager/commit/72ea33b6debf22b0c9944d2a6850c2e075635862)), closes [#1372](https://github.com/CnC-Robert/revanced-manager/issues/1372)
* **patch-item:** hide universal patches if not enabled ([#1087](https://github.com/CnC-Robert/revanced-manager/issues/1087)) ([5346f6e](https://github.com/CnC-Robert/revanced-manager/commit/5346f6e1bf2d49fe18595931c5958e1ae50ebd6f))
* **patch-item:** remove redundant patch version completely ([#1059](https://github.com/CnC-Robert/revanced-manager/issues/1059)) ([096b315](https://github.com/CnC-Robert/revanced-manager/commit/096b3157017f81d5b76d33f7ee59822b7c92c6db))
* patchable apps not showing if none of them is installed ([#1009](https://github.com/CnC-Robert/revanced-manager/issues/1009)) ([2834e8b](https://github.com/CnC-Robert/revanced-manager/commit/2834e8b3483273ebaf6efe7bb7b01bd890dc64d0))
* patched applications not showing at launch ([#1031](https://github.com/CnC-Robert/revanced-manager/issues/1031)) ([d161d55](https://github.com/CnC-Robert/revanced-manager/commit/d161d55aaffcfc778f9cd129418a98049db0c18b))
* **patched-applications:** non-patched app showing on `Installed` section ([#1022](https://github.com/CnC-Robert/revanced-manager/issues/1022)) ([79116f9](https://github.com/CnC-Robert/revanced-manager/commit/79116f9e67942702e7f28c3095ee6253ddbe1463))
* patcher logs hiding behind navigation bar ([#1476](https://github.com/CnC-Robert/revanced-manager/issues/1476)) ([5ed3ed9](https://github.com/CnC-Robert/revanced-manager/commit/5ed3ed9a2d08d54bd8da2de885126a82465fb8e7))
* **patches-selector:** `New` tag showing for old patches ([#1113](https://github.com/CnC-Robert/revanced-manager/issues/1113)) ([ea05d13](https://github.com/CnC-Robert/revanced-manager/commit/ea05d13a1fd9911fa9254398747a8557fd837eb5))
* **patches-selector:** ignore punctuation marks when searching for patch ([#1377](https://github.com/CnC-Robert/revanced-manager/issues/1377)) ([2dc92e2](https://github.com/CnC-Robert/revanced-manager/commit/2dc92e26d32dcf5a8f6314beca01632b2f1a896e))
* **patches-selector:** separate all universal patches to the bottom ([#1092](https://github.com/CnC-Robert/revanced-manager/issues/1092)) ([0b529c2](https://github.com/CnC-Robert/revanced-manager/commit/0b529c26298a6a68851211870f26f8bbff41c39d))
* Patching Screen draw-behind Navigation Bar ([#1945](https://github.com/CnC-Robert/revanced-manager/issues/1945)) ([f1b25d0](https://github.com/CnC-Robert/revanced-manager/commit/f1b25d09da92e3820b02c5036c6bbd32cdc55821))
* permanent keystore path if available ([#375](https://github.com/CnC-Robert/revanced-manager/issues/375)) ([e46ad35](https://github.com/CnC-Robert/revanced-manager/commit/e46ad3595d0d3cfb5519a88466177727df677b0f))
* permissions handling at first launch ([8cb96f1](https://github.com/CnC-Robert/revanced-manager/commit/8cb96f1e459f00cca03d46b5ef590e6c28a04718))
* **PopScope:** User able to exit patch screen when the installer is still running ([#1663](https://github.com/CnC-Robert/revanced-manager/issues/1663)) ([eb6d3cd](https://github.com/CnC-Robert/revanced-manager/commit/eb6d3cd64e87691b3bd282ab1d613e0b30cb63d0))
* Pre-releases changelog being shown ([#1767](https://github.com/CnC-Robert/revanced-manager/issues/1767)) ([add49e1](https://github.com/CnC-Robert/revanced-manager/commit/add49e14fb71e3b9b5f0988e39c3a664fd5b36b1))
* prevent `unsupported operation` exception ([#1018](https://github.com/CnC-Robert/revanced-manager/issues/1018)) ([a879ac3](https://github.com/CnC-Robert/revanced-manager/commit/a879ac30fbf6f367d829b897dd3cd6ab27d68681))
* Prevent crash by escaping string correctly ([8a1ab47](https://github.com/CnC-Robert/revanced-manager/commit/8a1ab478a353f43de97ce0d5f990d4b9f61d6389))
* print patch fail cause if message is null ([adfeb61](https://github.com/CnC-Robert/revanced-manager/commit/adfeb61eabedbed84fe6a308dd221f20e817ced6))
* print stack trace of patch exceptions ([#314](https://github.com/CnC-Robert/revanced-manager/issues/314)) ([1aa24e2](https://github.com/CnC-Robert/revanced-manager/commit/1aa24e2871ad35d799bf198f0358352ffb3d0e99))
* properly log messages and progress ([7911a8f](https://github.com/CnC-Robert/revanced-manager/commit/7911a8f49e9606658bc83fbcca1df89fa0cd6343))
* Reland commit 01e4a76caa06b4ab7934cc786ca57204501dd983 ([3dc695e](https://github.com/CnC-Robert/revanced-manager/commit/3dc695eafbb214b395aace610bbfa5f1cba08a20))
* **Release CI:** truncate the "v" from version ([8595099](https://github.com/CnC-Robert/revanced-manager/commit/85950991ab7b9c902fede56b8910a98bd24c3838))
* Reload patches ([b07439d](https://github.com/CnC-Robert/revanced-manager/commit/b07439d402edd392e39c2bc29b4dfbaec58fa7f6))
* remove codeblock from log export ([d60ced2](https://github.com/CnC-Robert/revanced-manager/commit/d60ced2f61c46d748f4ccdc3fe02b253ed435661)), closes [#1416](https://github.com/CnC-Robert/revanced-manager/issues/1416)
* Remove incorrect punctuation ([#1499](https://github.com/CnC-Robert/revanced-manager/issues/1499)) ([35d8084](https://github.com/CnC-Robert/revanced-manager/commit/35d80840e5f9d147d7448aec9f1a3c97444d920d))
* remove redundant "v" in the downloader screen ([#895](https://github.com/CnC-Robert/revanced-manager/issues/895)) ([4ccb9ac](https://github.com/CnC-Robert/revanced-manager/commit/4ccb9ac94deb58ca7f4055159275b3f404f1dd19))
* Replace Spacer with Expanded to avoid overflow ([#1791](https://github.com/CnC-Robert/revanced-manager/issues/1791)) ([6f70a07](https://github.com/CnC-Robert/revanced-manager/commit/6f70a079701be63fc59b7272d0ddc4334c89d798))
* reset patches after patching ([cd07f39](https://github.com/CnC-Robert/revanced-manager/commit/cd07f39b695b1eff73409992bf72c59b02227076))
* Reset progress if patch was cancelled ([850bdc4](https://github.com/CnC-Robert/revanced-manager/commit/850bdc4a4d011c9f697d4ecc04dd59da2cfbbe0c))
* resized monochrome icon to match the original ([#789](https://github.com/CnC-Robert/revanced-manager/issues/789)) ([ac830cb](https://github.com/CnC-Robert/revanced-manager/commit/ac830cbe7f3b1ebd7849e586b829d3c077436a0d))
* Resolve EACCESS error in special cases ([#2135](https://github.com/CnC-Robert/revanced-manager/issues/2135)) ([1f95767](https://github.com/CnC-Robert/revanced-manager/commit/1f95767aeb6104e952d3ec80af8d5df8c7da3c07))
* Restore consistency with the app ([ea9654e](https://github.com/CnC-Robert/revanced-manager/commit/ea9654edec97a619d444dd9c0bdaa37b5feff360))
* Retrieve app information from patched app ([2b4b3ca](https://github.com/CnC-Robert/revanced-manager/commit/2b4b3ca0a51af92fab4b04edbc39d6c3a4ea2c33))
* return fetched patch version if non default patch repo is used ([#922](https://github.com/CnC-Robert/revanced-manager/issues/922)) ([f6e99f7](https://github.com/CnC-Robert/revanced-manager/commit/f6e99f7e88dc963cd3580291160f8c22e3abe08c))
* Revert commit b26760b2 to fix file and folder selection ([e707e51](https://github.com/CnC-Robert/revanced-manager/commit/e707e517198d0fde8c2cc395b36fa8995ef0ecbb))
* **root-install:** create service and postfs directories if they dont exist ([#1116](https://github.com/CnC-Robert/revanced-manager/issues/1116)) ([9a66b6e](https://github.com/CnC-Robert/revanced-manager/commit/9a66b6e50d88b1b2925684eab9dd5aded03145e5)), closes [#860](https://github.com/CnC-Robert/revanced-manager/issues/860)
* search bar overflow ([#1301](https://github.com/CnC-Robert/revanced-manager/issues/1301)) ([0983ba8](https://github.com/CnC-Robert/revanced-manager/commit/0983ba8a0f5700122c93f8cd1015c6b6295a3b43))
* search with package name ([#1344](https://github.com/CnC-Robert/revanced-manager/issues/1344)) ([4085c10](https://github.com/CnC-Robert/revanced-manager/commit/4085c10bfc3b8acb1b590a0b3aa426a9fefa0d3a))
* SecurityException when patching application ([#1856](https://github.com/CnC-Robert/revanced-manager/issues/1856)) ([e0a6de2](https://github.com/CnC-Robert/revanced-manager/commit/e0a6de2c2b70327e9a518a8a4470bd70a3942e48))
* Select previously applied patches when loading patch selection ([#1865](https://github.com/CnC-Robert/revanced-manager/issues/1865)) ([7ef8f04](https://github.com/CnC-Robert/revanced-manager/commit/7ef8f0454b61429a1e4e9d306535f23b2fca5ba7))
* selected patches not being remembered. ([9e8193a](https://github.com/CnC-Robert/revanced-manager/commit/9e8193a6acb1cedcd2ccfab6d9e4e20ff34d44d1))
* selected patches order ([#1345](https://github.com/CnC-Robert/revanced-manager/issues/1345)) ([2abadc7](https://github.com/CnC-Robert/revanced-manager/commit/2abadc73e49c69d0b3bdb9948280425f24f0484a))
* Set text colour on dropdown menu for Custom Value ([966796d](https://github.com/CnC-Robert/revanced-manager/commit/966796dfec0691bac87960f508dd0351a8fd1d77)), closes [#1584](https://github.com/CnC-Robert/revanced-manager/issues/1584)
* **settings-view:** list items jumping on scroll up ([#1375](https://github.com/CnC-Robert/revanced-manager/issues/1375)) ([5d5f311](https://github.com/CnC-Robert/revanced-manager/commit/5d5f311e36b2e711c543d9590ca7f3dc81c1c181))
* **settings:** inverted version compatibility switch ([59adb91](https://github.com/CnC-Robert/revanced-manager/commit/59adb91f5f5ebcb01f5288f0da5b2b23ab856801))
* Show version label correctly ([c72d10a](https://github.com/CnC-Robert/revanced-manager/commit/c72d10ac85d908b62530676468dd63effe47ba3f))
* showing `Installed` when it's actually not ([#1021](https://github.com/CnC-Robert/revanced-manager/issues/1021)) ([eb58475](https://github.com/CnC-Robert/revanced-manager/commit/eb584752598d117ceeff914e92f3d3bf94c8a0f4))
* Specify our own FGS Type ([37c912b](https://github.com/CnC-Robert/revanced-manager/commit/37c912b5980f990ce3687bcee99d151fc0d0b16f))
* Specify that dark theme is dark ([#1699](https://github.com/CnC-Robert/revanced-manager/issues/1699)) ([d4b15ae](https://github.com/CnC-Robert/revanced-manager/commit/d4b15aee4dee8680f9a971cef3eb20365db882d1))
* Stop patch when signing fails ([#1553](https://github.com/CnC-Robert/revanced-manager/issues/1553)) ([5b2c551](https://github.com/CnC-Robert/revanced-manager/commit/5b2c55142eb2e54f5a3ec0c5eaa733dc8e5720b7))
* system navigation overlapping UI ([#853](https://github.com/CnC-Robert/revanced-manager/issues/853)) ([b803ce7](https://github.com/CnC-Robert/revanced-manager/commit/b803ce7435983a6f4ee164927a7cf65ebc59ca56))
* typo in reset patch selection dialog ([#1387](https://github.com/CnC-Robert/revanced-manager/issues/1387)) ([53677e2](https://github.com/CnC-Robert/revanced-manager/commit/53677e2f397549e96d89103f2431c3e34ac5cdf3))
* **ui:** Support free-scroll and auto-scroll for the installer logs ([#1736](https://github.com/CnC-Robert/revanced-manager/issues/1736)) ([#1836](https://github.com/CnC-Robert/revanced-manager/issues/1836)) ([025ff52](https://github.com/CnC-Robert/revanced-manager/commit/025ff527ee8bfc01767c5df94cb399ca3b98cf27))
* Unable to install application regardless of preference ([c7627ce](https://github.com/CnC-Robert/revanced-manager/commit/c7627ced8eee19cd44945ea4388b2ffe5e38b138))
* Unable to scroll in the removed patches dialog ([#2113](https://github.com/CnC-Robert/revanced-manager/issues/2113)) ([295c5a7](https://github.com/CnC-Robert/revanced-manager/commit/295c5a74ea30c9f7dec81f5b61906671dda0a72b))
* Unable to unselect new patches ([18e680b](https://github.com/CnC-Robert/revanced-manager/commit/18e680b2988f0e7d60c52241cc72b06b9449ec48))
* unable to use custom API ([#1435](https://github.com/CnC-Robert/revanced-manager/issues/1435)) ([e74ffac](https://github.com/CnC-Robert/revanced-manager/commit/e74ffac5b0df1aa3e47ef92786c68127bfb7c70d))
* universal patches not selectable ([c6ac898](https://github.com/CnC-Robert/revanced-manager/commit/c6ac8983900f53852d3743d42baa6545d8c1efd7))
* Unsupported patch toast says "patchItem.unsupportedPatchVersion" ([#2011](https://github.com/CnC-Robert/revanced-manager/issues/2011)) ([3209c0e](https://github.com/CnC-Robert/revanced-manager/commit/3209c0e430f82d55704a609eb1057d052441c5a3))
* update button being clickable when offline ([#987](https://github.com/CnC-Robert/revanced-manager/issues/987)) ([1875c4e](https://github.com/CnC-Robert/revanced-manager/commit/1875c4ee7357c8e5b3b42dd357e856f26791a596))
* update button being shown as clickable on launch ([#932](https://github.com/CnC-Robert/revanced-manager/issues/932)) ([20ffef3](https://github.com/CnC-Robert/revanced-manager/commit/20ffef39a358273cc12cd79d2b19f3675b98b9c6))
* **Update Confirmation Sheet:** Add top padding ([9aeb156](https://github.com/CnC-Robert/revanced-manager/commit/9aeb156d92abd18a99840a285ca297f4d3f3dbbc))
* Update dialog shows dev version & loading gets stuck in certain circumstances ([#1792](https://github.com/CnC-Robert/revanced-manager/issues/1792)) ([fc52560](https://github.com/CnC-Robert/revanced-manager/commit/fc525602448001a442d2f2dfe09c431eed80cd7b))
* update hardcoded patch name ([85b166c](https://github.com/CnC-Robert/revanced-manager/commit/85b166cbdac05a296ebadb3a5ddbfc54348592ae))
* Update home screen after installation ([7426f54](https://github.com/CnC-Robert/revanced-manager/commit/7426f5484d7d4478236c6119bda3ca2304ed7651))
* update install type dialog padding ([b7acb47](https://github.com/CnC-Robert/revanced-manager/commit/b7acb475e916c1d30b393738bc5d9551caaf5f26))
* update pubspec version ([65da6af](https://github.com/CnC-Robert/revanced-manager/commit/65da6af3f96550b138dcaf61832a5de23f529b32))
* Update the progress properly until installation finishes successfully ([1298a96](https://github.com/CnC-Robert/revanced-manager/commit/1298a96b0e6e4e11a484215daf4c8146ad18ba46))
* update workflow actions ([#482](https://github.com/CnC-Robert/revanced-manager/issues/482)) ([14e9dd1](https://github.com/CnC-Robert/revanced-manager/commit/14e9dd1c049cab3490870f96c750959268db08ef))
* update youtube link ([#1286](https://github.com/CnC-Robert/revanced-manager/issues/1286)) ([42b6bbf](https://github.com/CnC-Robert/revanced-manager/commit/42b6bbff7cd7d2f8035e84bfc4eeaf62e76e9af0))
* **updater:** ability to start again after cancelling ([#937](https://github.com/CnC-Robert/revanced-manager/issues/937)) ([6cc1bd2](https://github.com/CnC-Robert/revanced-manager/commit/6cc1bd21cdb2c6863aec10e00b90589a11963c54))
* Use correct installation type labels ([1928b15](https://github.com/CnC-Robert/revanced-manager/commit/1928b150aded1b3bd6bb0bcf04788cfdd98d0c99))
* Use correct method name for string replacement ([494e268](https://github.com/CnC-Robert/revanced-manager/commit/494e268bc5db1f6a093df88456acd383ac089c5c))
* Use correct title size for bottom sheet ([#1687](https://github.com/CnC-Robert/revanced-manager/issues/1687)) ([3436523](https://github.com/CnC-Robert/revanced-manager/commit/34365239c197eee4fd7f1705e51750ce6f0950b1))
* use correct variable name for armv7 check ([7f7b14b](https://github.com/CnC-Robert/revanced-manager/commit/7f7b14bae31cfbebd2636feddfefa16f19ebdb48))
* Use correct version code & name ([#1647](https://github.com/CnC-Robert/revanced-manager/issues/1647)) ([d933997](https://github.com/CnC-Robert/revanced-manager/commit/d933997c896fb4fb265256aa71b349932b93ceaa))
* use correct version in update download dialog ([#859](https://github.com/CnC-Robert/revanced-manager/issues/859)) ([4150e22](https://github.com/CnC-Robert/revanced-manager/commit/4150e2265cb4ec8be1108b950536d022e68275bf))
* use high resolution adaptive icons ([#675](https://github.com/CnC-Robert/revanced-manager/issues/675)) ([dc665f2](https://github.com/CnC-Robert/revanced-manager/commit/dc665f227e58bfe310bdedb3c8ca674b34a6be26))
* use i18n translation for installer page ([72fd24e](https://github.com/CnC-Robert/revanced-manager/commit/72fd24e624aa7d6475fd6cbb4d8b41180375dd8b))
* use lowercase repo names ([#1626](https://github.com/CnC-Robert/revanced-manager/issues/1626)) ([edd8602](https://github.com/CnC-Robert/revanced-manager/commit/edd86024b936d213e1053c233fdb322360b6e2ed))
* use original package name for changelog. ([3ab5d12](https://github.com/CnC-Robert/revanced-manager/commit/3ab5d12f3e84c7888fa80ddfc07ff669e4faf8f2))
* use original package name to load patches. ([b550016](https://github.com/CnC-Robert/revanced-manager/commit/b5500166811cb17046738d85be2c531524b89e38))
* use right label for auto patch ([580d50e](https://github.com/CnC-Robert/revanced-manager/commit/580d50eb8db3f419a3ec2896eb94c8050235e038))
* use user friendly strings ([#1088](https://github.com/CnC-Robert/revanced-manager/issues/1088)) ([2f471b3](https://github.com/CnC-Robert/revanced-manager/commit/2f471b3de457e0d6304675935c8025eef39d087c))
* using non const value in a const variable ([29db947](https://github.com/CnC-Robert/revanced-manager/commit/29db947e257b671ef0b7e25e88b1d849e37be682))
* using wrong string ([1f64ea3](https://github.com/CnC-Robert/revanced-manager/commit/1f64ea37bd2d6635533d5a40be432470da021ad0))

### Features

*  brotli support. ([0df2a6b](https://github.com/CnC-Robert/revanced-manager/commit/0df2a6bdc0019207e3510f3a5934ee979e403aa3))
* ability to delete keystores. ([9de063a](https://github.com/CnC-Robert/revanced-manager/commit/9de063aced92ad05c59fd5f62b06a8da64fc5c19))
* ability to search query for suggested version ([#1151](https://github.com/CnC-Robert/revanced-manager/issues/1151)) ([9bd48c1](https://github.com/CnC-Robert/revanced-manager/commit/9bd48c19ff1a68f3b13e24d1bb22b5d8ee350c6b))
* ability to store and load selected patches ([#469](https://github.com/CnC-Robert/revanced-manager/issues/469)) ([c571cf2](https://github.com/CnC-Robert/revanced-manager/commit/c571cf2c53a118851f727bb5eae98de0970019c9))
* abort patching process at any time ([#1072](https://github.com/CnC-Robert/revanced-manager/issues/1072)) ([374eb3d](https://github.com/CnC-Robert/revanced-manager/commit/374eb3d06d43615f1cff179f7e5d0d3505cd8387))
* Add a toggle for alternative sources ([#1686](https://github.com/CnC-Robert/revanced-manager/issues/1686)) ([f89c742](https://github.com/CnC-Robert/revanced-manager/commit/f89c742c901aef82479353be662f4b5935312afb))
* Add ability to set `null` in patch options ([#1947](https://github.com/CnC-Robert/revanced-manager/issues/1947)) ([5c68d51](https://github.com/CnC-Robert/revanced-manager/commit/5c68d513a38dcca1b884429c28f5bb32697bf37d))
* Add API migration code ([#1615](https://github.com/CnC-Robert/revanced-manager/issues/1615)) ([28ae276](https://github.com/CnC-Robert/revanced-manager/commit/28ae2766f001453d1aa33deae60da77788f75242))
* add building from source instructions. ([df31e5c](https://github.com/CnC-Robert/revanced-manager/commit/df31e5ccd1b91681105a5a7fc0d26dae2bd40084))
* add checksums verification to Gradle ([#813](https://github.com/CnC-Robert/revanced-manager/issues/813)) ([2ebd38f](https://github.com/CnC-Robert/revanced-manager/commit/2ebd38ff6802f814b80b5a638e0f27b2f190f273))
* add chips for patches selection. ([6e05120](https://github.com/CnC-Robert/revanced-manager/commit/6e05120aa5405e56a087dc2da1ab564cb4a38c58))
* add continue anyway button to select from storage dialog ([#810](https://github.com/CnC-Robert/revanced-manager/issues/810)) ([affba66](https://github.com/CnC-Robert/revanced-manager/commit/affba669ce1ca6866a1dd1bd801e3f33e4bfe051))
* add empty .env config. ([c24e50f](https://github.com/CnC-Robert/revanced-manager/commit/c24e50f3a0ef6dede032c9aedcd55001931490bb))
* add env vars to repo. ([e55cd6a](https://github.com/CnC-Robert/revanced-manager/commit/e55cd6a93891822ce6bd6e3271c28698cb2f5b5d))
* add fallback for cronet. ([6c1845e](https://github.com/CnC-Robert/revanced-manager/commit/6c1845e246b29146b47f9acc3df7565045cb25a2))
* add fastlane for F-Droid ([#889](https://github.com/CnC-Robert/revanced-manager/issues/889)) ([9592dde](https://github.com/CnC-Robert/revanced-manager/commit/9592dde534a41713da747b1d9e5ae6ca84e0e44c))
* add haptic feedback ([#1459](https://github.com/CnC-Robert/revanced-manager/issues/1459)) ([7911459](https://github.com/CnC-Robert/revanced-manager/commit/79114598173c3059ad3a1d9cc33708e095747d12))
* add option to import/export keystore ([#776](https://github.com/CnC-Robert/revanced-manager/issues/776)) ([dca2d4f](https://github.com/CnC-Robert/revanced-manager/commit/dca2d4fe126a6966a094d335e0f27bb62d76c5e8))
* Add patch options ([#1354](https://github.com/CnC-Robert/revanced-manager/issues/1354)) ([ac63667](https://github.com/CnC-Robert/revanced-manager/commit/ac636670c3afe878609031b4cf6b5dd4a485d8c5))
* add permission to manage storage ([c876f2f](https://github.com/CnC-Robert/revanced-manager/commit/c876f2f7e349bcc0189fa46d8470c6325abd313b))
* add support for shared patches ([#577](https://github.com/CnC-Robert/revanced-manager/issues/577)) ([ff90dae](https://github.com/CnC-Robert/revanced-manager/commit/ff90dae695326274c13972d8a6805f329ad25ab2))
* add user agent ([#1380](https://github.com/CnC-Robert/revanced-manager/issues/1380)) ([e960fcc](https://github.com/CnC-Robert/revanced-manager/commit/e960fcc303d9d976c44680afe21c539457c5ae56))
* Adding support for Exporting APK ([#439](https://github.com/CnC-Robert/revanced-manager/issues/439)) ([dc47da7](https://github.com/CnC-Robert/revanced-manager/commit/dc47da75f2d4483a540f1ee5713c5594a14250ad))
* Adjust install dialog labels ([c87f92b](https://github.com/CnC-Robert/revanced-manager/commit/c87f92b34601097dfb722162043469de0983b62d))
* Allow changing languages ([#1488](https://github.com/CnC-Robert/revanced-manager/issues/1488)) ([f82c439](https://github.com/CnC-Robert/revanced-manager/commit/f82c439b26b894d03deff9bd7e0547519d7cc40f))
* allow control over patches update ([#1063](https://github.com/CnC-Robert/revanced-manager/issues/1063)) ([f905a52](https://github.com/CnC-Robert/revanced-manager/commit/f905a529887f7e6025cad7392823780bf589a6ce))
* allow searching for displayed patch names ([#348](https://github.com/CnC-Robert/revanced-manager/issues/348)) ([a909230](https://github.com/CnC-Robert/revanced-manager/commit/a90923011a06bc79ddfd5f387092aa74c6a3240f))
* allow selecting installed if app is full apk ([8fc86db](https://github.com/CnC-Robert/revanced-manager/commit/8fc86dbe021b9497fa336b937b3200a41b3057a3))
* Also show new patches in the removed patches dialog ([#2257](https://github.com/CnC-Robert/revanced-manager/issues/2257)) ([8872165](https://github.com/CnC-Robert/revanced-manager/commit/8872165a99868f66eb462f030adee001266574f0))
* **apiUrl:** fix textbox hint ([#521](https://github.com/CnC-Robert/revanced-manager/issues/521)) ([ec9ef98](https://github.com/CnC-Robert/revanced-manager/commit/ec9ef98981ced1c0ad1dcc4c2b8148a5a4800993))
* **app-selector:** Improve app item UI to avoid overflow issues ([#943](https://github.com/CnC-Robert/revanced-manager/issues/943)) ([58d837d](https://github.com/CnC-Robert/revanced-manager/commit/58d837d64146442d360610d6fed6350e07f69cbe))
* **app-selector:** improve skeleton UI ([#939](https://github.com/CnC-Robert/revanced-manager/issues/939)) ([ec77987](https://github.com/CnC-Robert/revanced-manager/commit/ec77987fcdbb80178043d8603a0682a990e6dc29))
* append patch version to the APK name while sharing/exporting ([#1547](https://github.com/CnC-Robert/revanced-manager/issues/1547)) ([7df1ae7](https://github.com/CnC-Robert/revanced-manager/commit/7df1ae7ed84a0e527b9fd7d67aa075f68d4e1b7a))
* appreciation message for new contributors ([0a1f2da](https://github.com/CnC-Robert/revanced-manager/commit/0a1f2da33da7d44f0613b19f3e6b2b7b50240548))
* auto select default patches ([4c9cb56](https://github.com/CnC-Robert/revanced-manager/commit/4c9cb560e3e38295a5140419f2565b478cb6c497))
* change `continue anyways` to `cancel` ([cfc866b](https://github.com/CnC-Robert/revanced-manager/commit/cfc866bef2497bc1675bf5dea834cea59d9cc969))
* Changelog in update dialog ([#551](https://github.com/CnC-Robert/revanced-manager/issues/551)) ([061e929](https://github.com/CnC-Robert/revanced-manager/commit/061e929705d5f692647ca1eff0faa836af97c79d))
* **ci:** update crowdin workflow to use new main branch ([ded59d2](https://github.com/CnC-Robert/revanced-manager/commit/ded59d2da0d193b2dea4a5a7f2fc8eefaceecc0a))
* clarify "Version compatibility check" description ([#1397](https://github.com/CnC-Robert/revanced-manager/issues/1397)) ([533b6a1](https://github.com/CnC-Robert/revanced-manager/commit/533b6a155a5603c4735f1f1ea1ef8e7b8a307c27))
* clarify acknowledgement label ([#608](https://github.com/CnC-Robert/revanced-manager/issues/608)) ([ffd53fa](https://github.com/CnC-Robert/revanced-manager/commit/ffd53fab26e21219a3267800b63c008a8bf2e57f))
* clarify architecture in about section ([2e38a45](https://github.com/CnC-Robert/revanced-manager/commit/2e38a4567aaff8d3a5ca1746f081dfa78faeb142))
* Clarify non root installation button ([11a8f31](https://github.com/CnC-Robert/revanced-manager/commit/11a8f313b020aca03463758620628bb9fede5531))
* clarify suggested version in app list ([#934](https://github.com/CnC-Robert/revanced-manager/issues/934)) ([0079e74](https://github.com/CnC-Robert/revanced-manager/commit/0079e74d77b9334b2dee4573712d7049524523c7))
* clarify warning and consequences for ARMv7 users ([#836](https://github.com/CnC-Robert/revanced-manager/issues/836)) ([bed3945](https://github.com/CnC-Robert/revanced-manager/commit/bed3945aa5cb4dc2a1442f77262ec85c2189b1a8))
* confirmation dialog for deleting keystore ([#764](https://github.com/CnC-Robert/revanced-manager/issues/764)) ([054afbb](https://github.com/CnC-Robert/revanced-manager/commit/054afbbedd70a1933d8241ff5b63a772f90b555f))
* create env with github actions. ([603917d](https://github.com/CnC-Robert/revanced-manager/commit/603917d21ef6a78e767ce9c69502edc8ac52e680))
* cronet lib for non gms device. ([c6edc62](https://github.com/CnC-Robert/revanced-manager/commit/c6edc620c8889f0da9dba0bc8c2ebe13b507d4aa))
* crowdin workflow ([0fc8e7c](https://github.com/CnC-Robert/revanced-manager/commit/0fc8e7cbc817e566daa02f0bb1e4ca3dbafe9bac))
* decrease cache duration of patches and integrations. ([ca0657e](https://github.com/CnC-Robert/revanced-manager/commit/ca0657e8f9c02af1d7c1f487eb20a8e8e4d07585))
* decrease time for force refresh of patches. ([f5ebfc9](https://github.com/CnC-Robert/revanced-manager/commit/f5ebfc92fcb098927d833f444d93ecc64b6c374e))
* dialogs correctly follows Material 3 specifications ([#1560](https://github.com/CnC-Robert/revanced-manager/issues/1560)) ([f8d086a](https://github.com/CnC-Robert/revanced-manager/commit/f8d086a7438d20ebb99c8bb3310cd471d811673e))
* disable changing patches selection by default ([#1132](https://github.com/CnC-Robert/revanced-manager/issues/1132)) ([c400619](https://github.com/CnC-Robert/revanced-manager/commit/c40061933807602d4efb060fe02915272d17fa67))
* disable selecting installed apps for nonroot ([bb681e3](https://github.com/CnC-Robert/revanced-manager/commit/bb681e31c9c4e8a5b7b0c883edd1bc5c28505627))
* Disable selection of un-suggested app version by default ([#1471](https://github.com/CnC-Robert/revanced-manager/issues/1471)) ([70b2ee0](https://github.com/CnC-Robert/revanced-manager/commit/70b2ee0a844519d63671ae99ef009e823290fe3a))
* disable sentry for time being. ([39500f0](https://github.com/CnC-Robert/revanced-manager/commit/39500f054d0aa5ad45d9282efbc6bdb72a35fcef))
* Display current app language at the top of the list ([aa0575a](https://github.com/CnC-Robert/revanced-manager/commit/aa0575a6372ec9a6ff22df41f5f82609196e0828))
* do not update on tracing logs ([ee68992](https://github.com/CnC-Robert/revanced-manager/commit/ee689922a36726eafb8ba8d9fe6a907a9b032d58))
* dpi responsive layout ([#361](https://github.com/CnC-Robert/revanced-manager/issues/361)) ([fe75b75](https://github.com/CnC-Robert/revanced-manager/commit/fe75b75ddc88b3e50dc8673b70eb77bc32611169))
* EXPERIMENTAL language switching. ([be77a18](https://github.com/CnC-Robert/revanced-manager/commit/be77a181ec9a564b7d9e6856e4146137e70e425a))
* experimental settings to allow patch on any app version. ([ba5234e](https://github.com/CnC-Robert/revanced-manager/commit/ba5234e8506a6c5eaa532b633ef2a9384346b710))
* Export settings migration activity ([#1308](https://github.com/CnC-Robert/revanced-manager/issues/1308)) ([4de274b](https://github.com/CnC-Robert/revanced-manager/commit/4de274bf621cbb1fbec47f6dc6df0aaf049a023c))
* firebase crashlytics for improving manager. ([79aca0e](https://github.com/CnC-Robert/revanced-manager/commit/79aca0e579b9f79dc2e5eebfc3342cac23bf9477))
* fix overflow text & separate version from patch name ([#666](https://github.com/CnC-Robert/revanced-manager/issues/666)) ([40888c0](https://github.com/CnC-Robert/revanced-manager/commit/40888c07f3cc54529989b26c4122c93ad8211554))
* fix patch bundle version no longer displayed ([#686](https://github.com/CnC-Robert/revanced-manager/issues/686)) ([bd39a31](https://github.com/CnC-Robert/revanced-manager/commit/bd39a3140e6291f87b8393fd014f277c662e179c))
* Hide the Install button during installation ([#1633](https://github.com/CnC-Robert/revanced-manager/issues/1633)) ([3e696d6](https://github.com/CnC-Robert/revanced-manager/commit/3e696d6847a9870e8a10be677645f8791ef75dfe))
* HTTP/3 Support. ([78428f6](https://github.com/CnC-Robert/revanced-manager/commit/78428f6bd3876162a1a70be5ae570d6278156edd))
* Improve "Installation incompatible" dialog message ([#2164](https://github.com/CnC-Robert/revanced-manager/issues/2164)) ([51c0f14](https://github.com/CnC-Robert/revanced-manager/commit/51c0f1405578886e3913f8cac8469ad155922276))
* Improve app selector and patcher UI ([#1616](https://github.com/CnC-Robert/revanced-manager/issues/1616)) ([efb2d5e](https://github.com/CnC-Robert/revanced-manager/commit/efb2d5ef3292b834dd76cddfe28850eafe1a38ee))
* Improve consistency on language selector ([b2119ce](https://github.com/CnC-Robert/revanced-manager/commit/b2119ce60e7fd68512b1dd0ed47bc41f4ae6abfc))
* Improve dialog text clarity ([69b6ef0](https://github.com/CnC-Robert/revanced-manager/commit/69b6ef07a1d1c61a773056c156f101a771289602))
* improve explanation of update being unusable ([caa9694](https://github.com/CnC-Robert/revanced-manager/commit/caa9694543723e89d11a9976a93699ab48f02903))
* Improve installation robustness ([#1528](https://github.com/CnC-Robert/revanced-manager/issues/1528)) ([c23275f](https://github.com/CnC-Robert/revanced-manager/commit/c23275f2fe2f00f6afc1a52e2b15cdb2d4b2a16b))
* Improve language distinguishness and resolve language-specific issues ([#1706](https://github.com/CnC-Robert/revanced-manager/issues/1706)) ([6d866d4](https://github.com/CnC-Robert/revanced-manager/commit/6d866d4424e1b4c52ccce7394ff59284cd6f4463))
* Improve language update settings ([#1838](https://github.com/CnC-Robert/revanced-manager/issues/1838)) ([f9e6ef3](https://github.com/CnC-Robert/revanced-manager/commit/f9e6ef3fd3612e72de358beb9f5d33b827dd2441))
* improve note [skip ci] ([3434c86](https://github.com/CnC-Robert/revanced-manager/commit/3434c862e96199e9aab43f0d4d50760cfeb51a00))
* improve patch fail logging ([c81acce](https://github.com/CnC-Robert/revanced-manager/commit/c81acce31c5719b01892ab04509dd644279e925d))
* Improve Split APK warning readability ([#1625](https://github.com/CnC-Robert/revanced-manager/issues/1625)) ([6fd740f](https://github.com/CnC-Robert/revanced-manager/commit/6fd740f8c0832f34f9a303d5bfb6a59873955aef))
* improve suggested app version text ([#822](https://github.com/CnC-Robert/revanced-manager/issues/822)) ([ad17995](https://github.com/CnC-Robert/revanced-manager/commit/ad17995f2883682f67eb42b1f82ca865fba86ef9))
* improve ux ([#752](https://github.com/CnC-Robert/revanced-manager/issues/752)) ([3b677f8](https://github.com/CnC-Robert/revanced-manager/commit/3b677f8ae3739c079e2116417fef6ed395c2ff06)), closes [#782](https://github.com/CnC-Robert/revanced-manager/issues/782)
* Include primary architecture in external search ([#2068](https://github.com/CnC-Robert/revanced-manager/issues/2068)) ([23690a9](https://github.com/CnC-Robert/revanced-manager/commit/23690a98df0f206328adecd895860efb57e8b267))
* **installer:** redesign utility options ([#1062](https://github.com/CnC-Robert/revanced-manager/issues/1062)) ([b77d46b](https://github.com/CnC-Robert/revanced-manager/commit/b77d46b2c26953ef0e352d947abed04c76104350))
* **installer:** remove restriction of Share APK, closes [#410](https://github.com/CnC-Robert/revanced-manager/issues/410) ([#412](https://github.com/CnC-Robert/revanced-manager/issues/412)) ([3778bfe](https://github.com/CnC-Robert/revanced-manager/commit/3778bfe1b5d7f0684c6c5555b353e90061218623))
* make applied patches dialog scrollable. ([6fc46d6](https://github.com/CnC-Robert/revanced-manager/commit/6fc46d632ba5648d43833456bb4045312b3bb885))
* make firebase crashlytics optional. ([f31a60d](https://github.com/CnC-Robert/revanced-manager/commit/f31a60d9bb72d59c043adb76c272eb5c9816324b))
* make sentry logging optional. ([6d35c47](https://github.com/CnC-Robert/revanced-manager/commit/6d35c47b6b3632685ad081c381f0760d5d959063))
* migrate to dart3 ([a27dc6a](https://github.com/CnC-Robert/revanced-manager/commit/a27dc6ad1cb60cd3aef9b0836237db9ac5dff19a))
* monochrome icon + predictive back gesture ([#591](https://github.com/CnC-Robert/revanced-manager/issues/591)) ([4df690c](https://github.com/CnC-Robert/revanced-manager/commit/4df690c2a2f598bdb0745e663089aef2ebfc4557))
* **mount:** use `/data/adb/revanced` again and ensure migration scenario ([#948](https://github.com/CnC-Robert/revanced-manager/issues/948)) ([35e99cb](https://github.com/CnC-Robert/revanced-manager/commit/35e99cb014429384aefb1489ab5cfcfb45a521c5))
* move to new API domain ([41b1cec](https://github.com/CnC-Robert/revanced-manager/commit/41b1cec8d33836fbb0abefafc83367ce3d186d1e))
* Only log relevant records ([15b8613](https://github.com/CnC-Robert/revanced-manager/commit/15b8613d3cb2e0fe9b19d3bb9304f53db8cba372))
* open browser when clicking on changelog link ([bc300d8](https://github.com/CnC-Robert/revanced-manager/commit/bc300d81d9490e718cb024145dba4a19af5619ce))
* option to delete manager logs. ([2d73228](https://github.com/CnC-Robert/revanced-manager/commit/2d732288a74b0a0a211710fcd3dd5b7ed3e52cd8))
* option to delete temporary directory. ([3b8dc66](https://github.com/CnC-Robert/revanced-manager/commit/3b8dc66da61c384caaec0551430a173d81688d67))
* output suggested version into patch log ([#1557](https://github.com/CnC-Robert/revanced-manager/issues/1557)) ([637641c](https://github.com/CnC-Robert/revanced-manager/commit/637641cf54b9f609671caccd2f90e8d3335c8f56))
* patch apps without internet ([#1114](https://github.com/CnC-Robert/revanced-manager/issues/1114)) ([f90f6e8](https://github.com/CnC-Robert/revanced-manager/commit/f90f6e81ee7614aacbcbb96175cb8f2c10947153))
* **patcher-view:** show notice for removed patches that were used previously ([#1107](https://github.com/CnC-Robert/revanced-manager/issues/1107)) ([acec064](https://github.com/CnC-Robert/revanced-manager/commit/acec064cb7c4a518bbe6b2e7f737414e765d67ca))
* **patcher:** improve logs ([#1299](https://github.com/CnC-Robert/revanced-manager/issues/1299)) ([8fd4fe0](https://github.com/CnC-Robert/revanced-manager/commit/8fd4fe0e5522e9723f1057d6c6814d2dd5b94753))
* **patches-selector:** improve disabled card UI ([#941](https://github.com/CnC-Robert/revanced-manager/issues/941)) ([b161608](https://github.com/CnC-Robert/revanced-manager/commit/b161608d02ad7de7cdc758320c38e7f03967a4a4))
* **patches-selector:** show `New` tag for new patches ([#1099](https://github.com/CnC-Robert/revanced-manager/issues/1099)) ([1714c3f](https://github.com/CnC-Robert/revanced-manager/commit/1714c3fa865e33dff5f1eddb6f338be0aa9bbb6e))
* potentially fix apps disappearing when update is available ([#674](https://github.com/CnC-Robert/revanced-manager/issues/674)) ([5d63d5c](https://github.com/CnC-Robert/revanced-manager/commit/5d63d5c2d3b4f22e9f65384e06a0a31660988816))
* progress bar for manager updates ([f5aafdb](https://github.com/CnC-Robert/revanced-manager/commit/f5aafdb7d6f51386b667abbccf7f2521ef664ba5))
* remove cronet ([3fe5882](https://github.com/CnC-Robert/revanced-manager/commit/3fe5882145cdc6dfb0e3b3cdd5008c834f935a3a))
* remove firebase. ([#405](https://github.com/CnC-Robert/revanced-manager/issues/405)) ([2e050d0](https://github.com/CnC-Robert/revanced-manager/commit/2e050d06e82223d9b69415df654f36442f040dd0))
* Remove full external storage access ([#1381](https://github.com/CnC-Robert/revanced-manager/issues/1381)) ([f334da9](https://github.com/CnC-Robert/revanced-manager/commit/f334da95ff14248f5c37c868c6e5cf1ce6d9da1d))
* remove notice about stale development [skip ci] ([62f7a82](https://github.com/CnC-Robert/revanced-manager/commit/62f7a820d8ee2506376306e119698d427de745ef))
* Remove original package name in app info view ([91837eb](https://github.com/CnC-Robert/revanced-manager/commit/91837ebade5e0a2f47731ba33b7268e3c7bb09e4))
* remove select all icon from searchbar ([#669](https://github.com/CnC-Robert/revanced-manager/issues/669)) ([f5bc1a9](https://github.com/CnC-Robert/revanced-manager/commit/f5bc1a996fb96fb528d701c75eea114615bdc578))
* resetting source to default dismiss the sources pop-up ([#797](https://github.com/CnC-Robert/revanced-manager/issues/797)) ([62ef1c8](https://github.com/CnC-Robert/revanced-manager/commit/62ef1c88fe0352d3962f8c73edff4b99ea347c0f))
* root status in export patch log ([#1407](https://github.com/CnC-Robert/revanced-manager/issues/1407)) ([ad6b164](https://github.com/CnC-Robert/revanced-manager/commit/ad6b164d513e3bf16e1c148a88d960eff31dc214))
* Save last patched app ([#1414](https://github.com/CnC-Robert/revanced-manager/issues/1414)) ([7720408](https://github.com/CnC-Robert/revanced-manager/commit/77204087bba250cd6dc0c10f406016f9d3f976b3))
* sentry integration. ([f126139](https://github.com/CnC-Robert/revanced-manager/commit/f1261398e927903f6c75c44f5d03fdff562bda47))
* **settings - appearance:** add system option ([#1279](https://github.com/CnC-Robert/revanced-manager/issues/1279)) ([6260a80](https://github.com/CnC-Robert/revanced-manager/commit/6260a807388d47737b415aa8ec98a31807be6085)), closes [#1260](https://github.com/CnC-Robert/revanced-manager/issues/1260)
* share settings ([2a89ef7](https://github.com/CnC-Robert/revanced-manager/commit/2a89ef797f41eeee8472c426ceac688f3cda6034))
* Show a dialog when an update is available ([#1654](https://github.com/CnC-Robert/revanced-manager/issues/1654)) ([c7d975e](https://github.com/CnC-Robert/revanced-manager/commit/c7d975e612eabf11d2d66047d3994a8a3e7dd82e))
* show all the unseen changelogs on changelog section ([#970](https://github.com/CnC-Robert/revanced-manager/issues/970)) ([6fe05cd](https://github.com/CnC-Robert/revanced-manager/commit/6fe05cd86e206052baf23afd1254d31ce02a7def))
* show patch bundle version in patch selector screen. ([074d800](https://github.com/CnC-Robert/revanced-manager/commit/074d8005bcf3792a4a5e2bf57e189ca8c0184ee2))
* show patch options in error log ([#1394](https://github.com/CnC-Robert/revanced-manager/issues/1394)) ([bb99901](https://github.com/CnC-Robert/revanced-manager/commit/bb999019ef0ea337e79b4bad13e827812abe5d52))
* show selected patches count in patches selector view & patch selector card ([#466](https://github.com/CnC-Robert/revanced-manager/issues/466)) ([2c3809d](https://github.com/CnC-Robert/revanced-manager/commit/2c3809d2bc87921e4bbb999b4c65b9ebb4981bba))
* show warning dialog when resetting stored patches ([9e93177](https://github.com/CnC-Robert/revanced-manager/commit/9e93177afd0b7b2e1612da9bf0cf69c949450b50))
* Simplify label ([6bdc0c7](https://github.com/CnC-Robert/revanced-manager/commit/6bdc0c7bb24e98835caf0e9ab6bee03b0eeee476))
* Simplify label ([8661d72](https://github.com/CnC-Robert/revanced-manager/commit/8661d72e453b12bd8696fad5121a66f93486427e))
* simplify logging ([#305](https://github.com/CnC-Robert/revanced-manager/issues/305)) ([b00d2d1](https://github.com/CnC-Robert/revanced-manager/commit/b00d2d16d403f98d32b892b35e5ee8a71094bfd5))
* Simplify settings strings ([#1618](https://github.com/CnC-Robert/revanced-manager/issues/1618)) ([0d45fe4](https://github.com/CnC-Robert/revanced-manager/commit/0d45fe4a972a327b900cd9a667a673d61b7451dc))
* sort by amount of patches, display patches count, setting to enable universal patches ([#593](https://github.com/CnC-Robert/revanced-manager/issues/593)) ([5f81d65](https://github.com/CnC-Robert/revanced-manager/commit/5f81d6591178c4b312060eef822180fc00c8c006))
* stale development notice [skip ci] ([b1c1a9f](https://github.com/CnC-Robert/revanced-manager/commit/b1c1a9f4e18445ad3d49c80bd19546fe9f0fe2f8))
* store original package name of patches apps. ([94397dc](https://github.com/CnC-Robert/revanced-manager/commit/94397dcb4c2e47d7dc660060458dd08b1472968a))
* **style:** use native switch & chip ([#732](https://github.com/CnC-Robert/revanced-manager/issues/732)) ([92a3b0d](https://github.com/…
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Status: Done
Development

Successfully merging this pull request may close these issues.

4 participants