diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 0000000..c00d30d --- /dev/null +++ b/.gitmodules @@ -0,0 +1,6 @@ +[submodule "app/src/main/cpp/byedpi"] + path = app/src/main/cpp/byedpi + url = https://github.com/hufrea/byedpi +[submodule "app/src/main/jni/hev-socks5-tunnel"] + path = app/src/main/jni/hev-socks5-tunnel + url = https://github.com/heiher/hev-socks5-tunnel diff --git a/app/src/main/java/com/cherret/zaprett/Module.kt b/app/src/main/java/com/cherret/zaprett/Module.kt index 6e4c66e..1491b9a 100644 --- a/app/src/main/java/com/cherret/zaprett/Module.kt +++ b/app/src/main/java/com/cherret/zaprett/Module.kt @@ -200,7 +200,7 @@ fun getActiveStrategy(sharedPreferences: SharedPreferences): List { } fun enableList(path: String, sharedPreferences: SharedPreferences) { - if (sharedPreferences.getBoolean("use-module", false)) { + if (sharedPreferences.getBoolean("use_module", false)) { val props = Properties() val configFile = getConfigFile() try { @@ -264,7 +264,7 @@ fun enableStrategy(path: String, sharedPreferences: SharedPreferences) { } fun disableList(path: String, sharedPreferences: SharedPreferences) { - if (sharedPreferences.getBoolean("use-module", false)) { + if (sharedPreferences.getBoolean("use_module", false)) { val props = Properties() val configFile = getConfigFile() try { @@ -328,16 +328,4 @@ fun disableStrategy(path: String, sharedPreferences: SharedPreferences) { else { sharedPreferences.edit { remove("active_strategy") } } -} - -fun getModuleVersion(callback: (String) -> Unit) { - Shell.cmd("zaprett module-ver").submit { result -> - if (result.out.isNotEmpty()) callback(result.out.first()) else "undefined" - } -} - -fun getBinVersion(callback: (String) -> Unit) { - Shell.cmd("zaprett bin-ver").submit { result -> - if (result.out.isNotEmpty()) callback(result.out.first()) else "undefined" - } } \ No newline at end of file diff --git a/app/src/main/java/com/cherret/zaprett/ui/screen/HomeScreen.kt b/app/src/main/java/com/cherret/zaprett/ui/screen/HomeScreen.kt index 5941fe4..d990258 100644 --- a/app/src/main/java/com/cherret/zaprett/ui/screen/HomeScreen.kt +++ b/app/src/main/java/com/cherret/zaprett/ui/screen/HomeScreen.kt @@ -18,6 +18,8 @@ import androidx.compose.foundation.layout.height import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.size import androidx.compose.foundation.layout.width +import androidx.compose.foundation.rememberScrollState +import androidx.compose.foundation.verticalScroll import androidx.compose.material.icons.Icons import androidx.compose.material.icons.filled.Build import androidx.compose.material.icons.filled.Dangerous @@ -114,7 +116,9 @@ fun HomeScreen(viewModel: HomeViewModel = viewModel(), vpnLauncher: ActivityResu }, snackbarHost = { SnackbarHost(snackbarHostState) }, content = { paddingValues -> - Column(modifier = Modifier.padding(paddingValues)) { + Column(modifier = Modifier + .padding(paddingValues) + .verticalScroll(rememberScrollState())) { ServiceStatusCard(viewModel, cardText, snackbarHostState, scope) UpdateCard(updateAvailable) { viewModel.showUpdateDialog() } if (showUpdateDialog) { diff --git a/app/src/main/java/com/cherret/zaprett/ui/viewmodel/HomeViewModel.kt b/app/src/main/java/com/cherret/zaprett/ui/viewmodel/HomeViewModel.kt index 1a5e94d..2910b62 100644 --- a/app/src/main/java/com/cherret/zaprett/ui/viewmodel/HomeViewModel.kt +++ b/app/src/main/java/com/cherret/zaprett/ui/viewmodel/HomeViewModel.kt @@ -41,7 +41,7 @@ class HomeViewModel(application: Application) : AndroidViewModel(application) { var nfqwsVer = mutableStateOf(context.getString(R.string.unknown_text)) private set - var byedpiVer = mutableStateOf(context.getString(R.string.unknown_text)) + var byedpiVer = mutableStateOf("0.17.1") private set var serviceMode = mutableIntStateOf(R.string.service_mode_ciadpi) @@ -201,4 +201,12 @@ class HomeViewModel(application: Application) : AndroidViewModel(application) { installApk(context, uri) } } + + fun parseArgs(ip: String, port: String, lines: List): Array { + val regex = Regex("""--?\S+(?:=(?:[^"'\s]+|"[^"]*"|'[^']*'))?|[^\s]+""") + val parsedArgs = lines + .flatMap { line -> regex.findAll(line).map { it.value } } + return arrayOf("ciadpi", "--ip", ip, "--port", port) + parsedArgs + } + } \ No newline at end of file diff --git a/app/src/main/jni/hev-socks5-tunnel b/app/src/main/jni/hev-socks5-tunnel new file mode 160000 index 0000000..4dc0684 --- /dev/null +++ b/app/src/main/jni/hev-socks5-tunnel @@ -0,0 +1 @@ +Subproject commit 4dc068409c48bc024d4fcf54eb00f3a31d92d583 diff --git a/app/src/main/res/values-ru/strings.xml b/app/src/main/res/values-ru/strings.xml index 67e8f08..0ccb309 100644 --- a/app/src/main/res/values-ru/strings.xml +++ b/app/src/main/res/values-ru/strings.xml @@ -72,7 +72,7 @@ Остановка… Версия модуля Версия nfqws - Версия ciadpi 0.17.1 + Версия ciadpi неизвестно Режим работы Не доступно diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 5d5125f..48118bc 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -73,7 +73,7 @@ Stopping… Module version nfqws version - ciadpi version 0.17.1 + ciadpi version unknown Service mode nfqws diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 9f94b53..fbcd7ae 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -25,7 +25,6 @@ androidx-ui-tooling-preview = { group = "androidx.compose.ui", name = "ui-toolin androidx-ui-test-manifest = { group = "androidx.compose.ui", name = "ui-test-manifest" } androidx-ui-test-junit4 = { group = "androidx.compose.ui", name = "ui-test-junit4" } androidx-material3 = { group = "androidx.compose.material3", name = "material3" } -androidx-lifecycle-service = { group = "androidx.lifecycle", name = "lifecycle-service", version.ref = "lifecycleService" } [plugins] android-application = { id = "com.android.application", version.ref = "agp" }