From 6be5f6ed7cc0440c59645e78002ebd05848c1d57 Mon Sep 17 00:00:00 2001 From: NkBe Date: Mon, 18 Aug 2025 00:10:30 +0800 Subject: [PATCH] feat: switch install package Co-Authored-By: o0kam1 --- build.gradle.kts | 6 ++-- .../org/lsposed/lspatch/ui/page/HomeScreen.kt | 2 +- .../lsposed/lspatch/ui/page/SettingsScreen.kt | 29 +++++++++++++++++++ 3 files changed, 33 insertions(+), 4 deletions(-) diff --git a/build.gradle.kts b/build.gradle.kts index b0bcf1b..54a2402 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -44,9 +44,9 @@ val (coreCommitCount, coreLatestTag) = FileRepositoryBuilder().setGitDir(rootPro } }.getOrNull() ?: (1 to "1.0") -// sync from https://github.com/JingMatrix/LSPosed/blob/master/build.gradle.kts -val defaultManagerPackageName by extra("org.lsposed.lspatch") -val apiCode by extra(93) +// sync from https://github.com/LSPosed/LSPosed/blob/master/build.gradle.kts +val defaultManagerPackageName by extra("org.lsposed.npatch") +val apiCode by extra(100) val verCode by extra(commitCount) val verName by extra("0.7.1") val coreVerCode by extra(coreCommitCount) diff --git a/manager/src/main/java/org/lsposed/lspatch/ui/page/HomeScreen.kt b/manager/src/main/java/org/lsposed/lspatch/ui/page/HomeScreen.kt index dd69e61..d856778 100644 --- a/manager/src/main/java/org/lsposed/lspatch/ui/page/HomeScreen.kt +++ b/manager/src/main/java/org/lsposed/lspatch/ui/page/HomeScreen.kt @@ -241,7 +241,7 @@ private fun SupportCard() { HtmlText( stringResource( R.string.home_view_source_code, - "GitHub", + "GitHub", "Telegram" ) ) diff --git a/manager/src/main/java/org/lsposed/lspatch/ui/page/SettingsScreen.kt b/manager/src/main/java/org/lsposed/lspatch/ui/page/SettingsScreen.kt index 0a4181e..42b5d1e 100644 --- a/manager/src/main/java/org/lsposed/lspatch/ui/page/SettingsScreen.kt +++ b/manager/src/main/java/org/lsposed/lspatch/ui/page/SettingsScreen.kt @@ -1,5 +1,7 @@ package org.lsposed.lspatch.ui.page +import android.content.ComponentName +import android.content.pm.PackageManager import androidx.activity.compose.rememberLauncherForActivityResult import androidx.activity.result.contract.ActivityResultContracts import androidx.compose.foundation.clickable @@ -28,6 +30,7 @@ import kotlinx.coroutines.launch import org.lsposed.lspatch.R import org.lsposed.lspatch.config.Configs import org.lsposed.lspatch.config.MyKeyStore +import org.lsposed.lspatch.lspApp import org.lsposed.lspatch.ui.component.AnywhereDropdown import org.lsposed.lspatch.ui.component.CenterTopBar import org.lsposed.lspatch.ui.component.settings.SettingsItem @@ -50,6 +53,7 @@ fun SettingsScreen() { ) { KeyStore() DetailPatchLogs() + SwitchInstallPackage() } } } @@ -240,3 +244,28 @@ private fun DetailPatchLogs() { title = stringResource(R.string.settings_detail_patch_logs) ) } + +@Composable +private fun SwitchInstallPackage() { + val context = LocalContext.current + val packageName = context.packageName + val componentName = ComponentName(packageName, "$packageName.InstallPackageActivity") + val checked = remember { mutableStateOf(Configs.installPackage) } + + SettingsSwitch( + modifier = Modifier.clickable { + val isEnabled = !checked.value + context.packageManager.setComponentEnabledSetting( + componentName, + if (isEnabled) PackageManager.COMPONENT_ENABLED_STATE_ENABLED else PackageManager.COMPONENT_ENABLED_STATE_DISABLED, + PackageManager.DONT_KILL_APP + ) + Configs.installPackage = isEnabled + checked.value = isEnabled + }, + checked = checked.value, + icon = Icons.Outlined.Ballot, + title = stringResource(R.string.settings_switch_install_package), + desc = stringResource(if (checked.value) R.string.settings_switch_install_package_enabled else R.string.settings_switch_install_package_disabled) + ) +} \ No newline at end of file