Compare commits

..

5 Commits

Author SHA1 Message Date
semantic-release-bot
0c62837454 chore: Release v1.26.0-dev.11 [skip ci]
# app [1.26.0-dev.11](https://github.com/ReVanced/revanced-manager/compare/v1.26.0-dev.10...v1.26.0-dev.11) (2025-10-25)

### Features

* Add pure black theme ([#2824](https://github.com/ReVanced/revanced-manager/issues/2824)) ([3d75ffe](3d75ffe6a7))
2025-10-25 03:55:05 +00:00
alieRN
3d75ffe6a7 feat: Add pure black theme (#2824) 2025-10-25 10:46:50 +07:00
Coby
d188d5a410 docs: Fix typos and settings order (#2785)
Co-authored-by: Kobe <kobew5050@gmail.com>
Co-authored-by: Pun Butrach <pun.butrach@gmail.com>
2025-10-18 00:34:59 +07:00
semantic-release-bot
b43ac8a1af chore: Release v1.26.0-dev.10 [skip ci]
# app [1.26.0-dev.10](https://github.com/ReVanced/revanced-manager/compare/v1.26.0-dev.9...v1.26.0-dev.10) (2025-10-06)

### Bug Fixes

* prevent back presses during installation ([2ff7072](2ff70728b4))
2025-10-06 17:48:23 +00:00
Ax333l
2ff70728b4 fix: prevent back presses during installation 2025-10-06 19:40:21 +02:00
12 changed files with 55 additions and 21 deletions

View File

@@ -1,3 +1,17 @@
# app [1.26.0-dev.11](https://github.com/ReVanced/revanced-manager/compare/v1.26.0-dev.10...v1.26.0-dev.11) (2025-10-25)
### Features
* Add pure black theme ([#2824](https://github.com/ReVanced/revanced-manager/issues/2824)) ([3d75ffe](https://github.com/ReVanced/revanced-manager/commit/3d75ffe6a7a39efdebe13dbd07c937c1de409ead))
# app [1.26.0-dev.10](https://github.com/ReVanced/revanced-manager/compare/v1.26.0-dev.9...v1.26.0-dev.10) (2025-10-06)
### Bug Fixes
* prevent back presses during installation ([2ff7072](https://github.com/ReVanced/revanced-manager/commit/2ff70728b490b92f212a82dcf599bc0c23f589e7))
# app [1.26.0-dev.9](https://github.com/ReVanced/revanced-manager/compare/v1.26.0-dev.8...v1.26.0-dev.9) (2025-10-06)

View File

@@ -1 +1 @@
version = 1.26.0-dev.9
version = 1.26.0-dev.11

View File

@@ -81,6 +81,7 @@ class MainActivity : ComponentActivity() {
)
val theme by vm.prefs.theme.getAsState()
val dynamicColor by vm.prefs.dynamicColor.getAsState()
val pureBlackTheme by vm.prefs.pureBlackTheme.getAsState()
EventEffect(vm.legacyImportActivityFlow) {
try {
@@ -91,7 +92,8 @@ class MainActivity : ComponentActivity() {
ReVancedManagerTheme(
darkTheme = theme == Theme.SYSTEM && isSystemInDarkTheme() || theme == Theme.DARK,
dynamicColor = dynamicColor
dynamicColor = dynamicColor,
pureBlackTheme = pureBlackTheme
) {
ReVancedManager(vm)
}

View File

@@ -9,6 +9,7 @@ class PreferencesManager(
context: Context
) : BasePreferencesManager(context, "settings") {
val dynamicColor = booleanPreference("dynamic_color", true)
val pureBlackTheme = booleanPreference("pure_black_theme", false)
val theme = enumPreference("theme", Theme.SYSTEM)
val api = stringPreference("api_url", "https://api.revanced.app")

View File

@@ -55,6 +55,7 @@ import app.revanced.manager.ui.model.StepCategory
import app.revanced.manager.ui.viewmodel.PatcherViewModel
import app.revanced.manager.util.APK_MIMETYPE
import app.revanced.manager.util.EventEffect
import app.revanced.manager.util.toast
@OptIn(ExperimentalMaterial3Api::class)
@Composable
@@ -76,11 +77,10 @@ fun PatcherScreen(
var showInstallPicker by rememberSaveable { mutableStateOf(false) }
var showDismissConfirmationDialog by rememberSaveable { mutableStateOf(false) }
fun onPageBack() {
if(patcherSucceeded == null)
showDismissConfirmationDialog = true
else
onLeave()
fun onPageBack() = when {
patcherSucceeded == null -> showDismissConfirmationDialog = true
viewModel.isInstalling -> context.toast(context.getString(R.string.patcher_install_in_progress))
else -> onLeave()
}
BackHandler(onBack = ::onPageBack)

View File

@@ -1,6 +1,7 @@
package app.revanced.manager.ui.screen.settings
import android.os.Build
import androidx.compose.animation.AnimatedVisibility
import androidx.compose.foundation.clickable
import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.Row
@@ -96,6 +97,14 @@ fun GeneralSettingsScreen(
description = R.string.dynamic_color_description
)
}
AnimatedVisibility(theme != Theme.LIGHT) {
BooleanItem(
preference = prefs.pureBlackTheme,
coroutineScope = coroutineScope,
headline = R.string.pure_black_theme,
description = R.string.pure_black_theme_description
)
}
}
}
}

View File

@@ -80,6 +80,7 @@ private val LightColorScheme = lightColorScheme(
fun ReVancedManagerTheme(
darkTheme: Boolean,
dynamicColor: Boolean,
pureBlackTheme: Boolean,
content: @Composable () -> Unit
) {
val colorScheme = when {
@@ -93,6 +94,10 @@ fun ReVancedManagerTheme(
darkTheme -> DarkColorScheme
else -> LightColorScheme
}.let {
if (darkTheme && pureBlackTheme)
it.copy(background = Color.Black, surface = Color.Black)
else it
}
val view = LocalView.current

View File

@@ -86,6 +86,8 @@
<string name="contributors_description">View the contributors of ReVanced</string>
<string name="dynamic_color">Dynamic color</string>
<string name="dynamic_color_description">Adapt colors to the wallpaper</string>
<string name="pure_black_theme">Pure black theme</string>
<string name="pure_black_theme_description">Use pure black backgrounds for dark theme</string>
<string name="theme">Theme</string>
<string name="theme_description">Choose between light or dark theme</string>
<string name="safeguards">Safeguards</string>
@@ -237,7 +239,7 @@
<string name="non_suggested_version_warning_title">Non suggested version</string>
<string name="non_suggested_version_warning_description">The version of the app you have selected does not match the suggested version.\nPlease use the suggested version: %s\n\nTo continue anyway, disable \"Require suggested app version\" in the advanced settings.</string>
<string name="selection_warning_title">Stop using defaults?</string>
<string name="selection_warning_description">It is recommended to use the default patch selection and options. Changing them may result in unexpected issues.\n\nYou need to turn on \"Allow changing patch selection\" in the advanced settings before toggling patches.</string>
<string name="selection_warning_description">It is recommended to use the default patch selection and options. Changing them may result in unexpected issues.\n\nYou need to turn on \"Allow changing patch selection and options\" in the advanced settings before toggling patches.</string>
<string name="universal_patch_warning_description">Universal patches have a more generalized use and do not work as reliably as patches that target specific apps. You may encounter issues while using them.\n\nYou need to turn on \"Allow using universal patches\" in the advanced settings before using universal patches.</string>
<string name="this_version">This version</string>
<string name="universal">Any app</string>
@@ -318,6 +320,7 @@
<string name="patcher_notification_text">Tap to return to the patcher</string>
<string name="patcher_stop_confirm_title">Stop patcher</string>
<string name="patcher_stop_confirm_description">Are you sure you want to stop the patching process?</string>
<string name="patcher_install_in_progress">Installation is in progress. Please wait</string>
<string name="execute_patches">Execute patches</string>
<string name="executing_patch">Execute %s</string>
<string name="failed_to_execute_patch">Failed to execute %s</string>

View File

@@ -13,9 +13,9 @@ Learn how to use ReVanced Manager to patch apps.
7. Tap on the `Install` button to install the patched app[^4]
[^1]: Here you can see all the apps that are supported by ReVanced.
You can also add custom apps by tapping on the `+` button in the top right corner.
You can also add custom apps by tapping on the `Select from storage` button at the top.
[^2]: It is recommended to use the default set of patches by tapping on the `Reset` button in the bottom right corner.
[^3]: By default, all available downloader will be used to download the app.
[^3]: By default, all available downloaders will be used to download the app.
If you want to use a specific downloader, you can change it here.
[^4]: You can export the patched app or the patch logs in the bottom left corner.

View File

@@ -3,7 +3,7 @@
Learn how to manage downloaders.
Refer to the [template](https://github.com/ReVanced/revanced-manager-downloader-template) if you are developer who wants to create a plugin.
Downloaders are Apk files and are installed, updated and uninstalled just like regular Android apps.
Downloaders are APK files and are installed, updated and uninstalled just like regular Android apps.
Downloaders can execute arbitrary code inside ReVanced Manager and must be marked as trusted before use. Manager will show a notification in the dashboard when a new downloader is discovered.
Trust can also be granted and revoked under `Settings` > `Downloads`.

View File

@@ -9,7 +9,7 @@ Learn how to update ReVanced Manager.
3. Configure the update settings accordingly[^1]
[^1]: By default, ReVanced Manager will check for updates automatically on launch
and let you when an update is available.
and let you know when an update is available.
## ⏭️ What's next

View File

@@ -4,29 +4,29 @@ Learn how to configure ReVanced Manager.
## 🔧 Settings
- **Import & export**: Import or export patch selections, patch options and the signing keystore
- **Downloads**: Enable or disable ReVanced Manager downloader and manage past downloaded apps here
- **Import & export**: Import or export patch selections, patch options and the signing keystore
- **Advanced**:
- **API URL**: Set the URL of the ReVanced API, ReVanced Manager will use
- **Disable version compatibility check**: Patching versions of apps the patches are explicitly compatible with is enforced.
Disabling this will allow patching versions of apps the patches are not explicitly compatible with
> ⚠️ Warning
> Patches may fail patching versions they are not explicitly compatible with.
> Unless you know what you are doing, it is recommended to keep this enabled.
- **Allow changing patch selection**: The default selection of patches is enforced.
Enabling this will allow you to change the patch selection
> ⚠️ Warning
> Changing the selection may cause unexpected issues.
> Patches may fail on app versions they are not explicitly compatible with.
> Unless you know what you are doing, it is recommended to keep this disabled.
- **Require suggested app version**: Specific versions of apps is enforced based on the patch selection automatically.
Disabling this will allow you to patch any version of apps
> ⚠️ Warning
> Patches not compatible with the selected version of the app will not be used.
> Unless you know what you are doing, it is recommended to keep this enabled.
- **Allow universal patches**: Patches that do not specify compatibility with an app explicitly are forcibly disabled.
- **Allow changing patch selection and options**: The default selection of patches is enforced.
Enabling this will allow you to change the patch selection
> ⚠️ Warning
> Changing the selection may cause unexpected issues.
> Unless you know what you are doing, it is recommended to keep this disabled.
- **Allow using universal patches**: Patches that do not specify compatibility with an app are forcibly disabled.
Enabling this will allow selecting such patches
> ⚠️ Warning
> Universal patches do not specify compatibility with an app explicitly may not work on all apps regardless.
> Universal patches do not specify compatibility with an app and may not work on all apps regardless.
> Unless you know what you are doing, it is recommended to keep this disabled.
- **About**: View more information and links about ReVanced and ReVanced Manager.