deps: update dependencies

This commit is contained in:
Miuzarte
2026-04-15 15:41:10 +08:00
parent b752ca4799
commit 6ae425681a
8 changed files with 58 additions and 27 deletions

View File

@@ -170,8 +170,6 @@ jobs:
download_base_url="https://github.com/${GITHUB_REPOSITORY}/releases/download/${GITHUB_REF_NAME}" download_base_url="https://github.com/${GITHUB_REPOSITORY}/releases/download/${GITHUB_REF_NAME}"
{ {
echo "建议优先下载具有稳定签名的 **release** 构建"
echo
echo "| 架构 | 构建类型 | 文件 | SHA256 | 大小 |" echo "| 架构 | 构建类型 | 文件 | SHA256 | 大小 |"
echo "| --- | --- | --- | --- | --- |" echo "| --- | --- | --- | --- | --- |"

View File

@@ -1,3 +1,5 @@
import java.util.Properties
plugins { plugins {
alias(libs.plugins.android.application) alias(libs.plugins.android.application)
alias(libs.plugins.compose.compiler) alias(libs.plugins.compose.compiler)
@@ -18,16 +20,28 @@ android {
signingConfigs { signingConfigs {
create("release") { create("release") {
val releaseStoreFile = System.getenv("RELEASE_STORE_FILE") val envFile = rootProject.file(".env")
val releaseStorePassword = System.getenv("RELEASE_STORE_PASSWORD") val envProps = Properties()
val releaseKeyAlias = System.getenv("RELEASE_KEY_ALIAS") if (envFile.exists())
val releaseKeyPassword = System.getenv("RELEASE_KEY_PASSWORD") envFile.inputStream().use { envProps.load(it) }
fun getValue(key: String): String? {
var value = (
envProps.getProperty(key)?.trim()?.takeIf { it.isNotEmpty() }
?: System.getenv(key)?.trim()?.takeIf { it.isNotEmpty() }
)
?.trim('"', '\'')
if (value != null && value.startsWith("~"))
value = System.getProperty("user.home") + value.substring(1)
return value
}
val releaseStoreFile = getValue("RELEASE_STORE_FILE")
if (!releaseStoreFile.isNullOrBlank()) { if (!releaseStoreFile.isNullOrBlank()) {
storeFile = file(releaseStoreFile) storeFile = file(releaseStoreFile)
storePassword = releaseStorePassword storePassword = getValue("RELEASE_STORE_PASSWORD")
keyAlias = releaseKeyAlias keyAlias = getValue("RELEASE_KEY_ALIAS")
keyPassword = releaseKeyPassword keyPassword = getValue("RELEASE_KEY_PASSWORD")
enableV1Signing = true enableV1Signing = true
enableV2Signing = true enableV2Signing = true
enableV3Signing = true enableV3Signing = true
@@ -39,7 +53,7 @@ android {
defaultConfig { defaultConfig {
applicationId = "io.github.miuzarte.scrcpyforandroid" applicationId = "io.github.miuzarte.scrcpyforandroid"
minSdk = 26 minSdk = 26
targetSdk = 36 targetSdk = 37
versionCode = 13 versionCode = 13
versionName = "0.1.7" versionName = "0.1.7"
@@ -93,8 +107,8 @@ android {
} }
} }
buildToolsVersion = "36.0.0" buildToolsVersion = "37.0.0"
ndkVersion = "28.2.13676358" ndkVersion = "29.0.14206865"
} }
dependencies { dependencies {
@@ -115,12 +129,12 @@ dependencies {
implementation(libs.miuix.icons) implementation(libs.miuix.icons)
implementation(libs.miuix.navigation3.ui) implementation(libs.miuix.navigation3.ui)
implementation(libs.backdrop) implementation(libs.backdrop)
implementation("io.github.vvb2060.ndk:boringssl:20250114") implementation(libs.boringssl)
implementation("org.lsposed.libcxx:libcxx:27.0.12077973") implementation(libs.libcxx)
implementation("org.bouncycastle:bcpkix-jdk18on:1.80") implementation(libs.bcpkix.jdk18on)
implementation("org.conscrypt:conscrypt-android:2.5.2") implementation(libs.conscrypt.android)
implementation("sh.calvin.reorderable:reorderable:3.0.0") implementation(libs.reorderable)
implementation("androidx.datastore:datastore-preferences:1.2.1") implementation(libs.androidx.datastore.preferences)
implementation(libs.androidx.compose.runtime) implementation(libs.androidx.compose.runtime)
implementation(libs.androidx.biometric) implementation(libs.androidx.biometric)
implementation(libs.androidx.security.crypto) implementation(libs.androidx.security.crypto)

View File

@@ -19,6 +19,6 @@ class ExampleInstrumentedTest {
fun useAppContext() { fun useAppContext() {
// Context of the app under test. // Context of the app under test.
val appContext = InstrumentationRegistry.getInstrumentation().targetContext val appContext = InstrumentationRegistry.getInstrumentation().targetContext
assertEquals("io.github.miuzarte.scrcpyforandroid", appContext.packageName) assertEquals(BuildConfig.APPLICATION_ID, appContext.packageName)
} }
} }

View File

@@ -1,5 +1,6 @@
package io.github.miuzarte.scrcpyforandroid.nativecore package io.github.miuzarte.scrcpyforandroid.nativecore
import android.annotation.SuppressLint
import android.content.Context import android.content.Context
import android.net.nsd.NsdManager import android.net.nsd.NsdManager
import android.net.nsd.NsdServiceInfo import android.net.nsd.NsdServiceInfo
@@ -72,6 +73,8 @@ internal object AdbMdnsDiscoverer {
Log.w(TAG, "stop discovery failed: $serviceType, error=$errorCode") Log.w(TAG, "stop discovery failed: $serviceType, error=$errorCode")
} }
@Suppress("DEPRECATION")
@SuppressLint("NewApi")
override fun onServiceFound(serviceInfo: NsdServiceInfo) { override fun onServiceFound(serviceInfo: NsdServiceInfo) {
if (discoveryFinished.get()) return if (discoveryFinished.get()) return
Log.v(TAG, "service found: ${serviceInfo.serviceName}") Log.v(TAG, "service found: ${serviceInfo.serviceName}")
@@ -82,7 +85,7 @@ internal object AdbMdnsDiscoverer {
override fun onServiceResolved(serviceInfo: NsdServiceInfo) { override fun onServiceResolved(serviceInfo: NsdServiceInfo) {
if (discoveryFinished.get()) return if (discoveryFinished.get()) return
val hostAddress = serviceInfo.host?.hostAddress ?: return val hostAddress = serviceInfo.hostAddresses[0].hostAddress ?: return
if (hostAddress.isBlank()) return if (hostAddress.isBlank()) return
if (!includeLanDevices) { if (!includeLanDevices) {

View File

@@ -73,6 +73,7 @@ import top.yukonga.miuix.kmp.preference.ArrowPreference
import top.yukonga.miuix.kmp.shapes.SmoothRoundedCornerShape import top.yukonga.miuix.kmp.shapes.SmoothRoundedCornerShape
import top.yukonga.miuix.kmp.theme.MiuixTheme.colorScheme import top.yukonga.miuix.kmp.theme.MiuixTheme.colorScheme
import top.yukonga.miuix.kmp.theme.MiuixTheme.textStyles import top.yukonga.miuix.kmp.theme.MiuixTheme.textStyles
import java.util.Locale.getDefault
@Composable @Composable
internal fun AboutScreen() { internal fun AboutScreen() {
@@ -269,7 +270,8 @@ private fun AboutContent(
) )
} }
Text( Text(
text = "v${BuildConfig.VERSION_NAME} (${BuildConfig.VERSION_CODE})", text = "v${BuildConfig.VERSION_NAME} (${BuildConfig.VERSION_CODE})" +
" · ${BuildConfig.BUILD_TYPE.uppercase(getDefault())} BUILD",
modifier = Modifier modifier = Modifier
.fillMaxWidth() .fillMaxWidth()
.graphicsLayer { .graphicsLayer {

View File

@@ -13,6 +13,7 @@ import java.security.GeneralSecurityException
import java.security.KeyStoreException import java.security.KeyStoreException
import java.util.UUID import java.util.UUID
@Suppress("DEPRECATION")
object PasswordRepository { object PasswordRepository {
private const val PREFS_NAME = "LockscreenPasswords" private const val PREFS_NAME = "LockscreenPasswords"
private const val KEY_ORDER = "__order" private const val KEY_ORDER = "__order"

View File

@@ -5,6 +5,7 @@ import android.content.BroadcastReceiver
import android.content.Context import android.content.Context
import android.content.Intent import android.content.Intent
import android.content.IntentFilter import android.content.IntentFilter
import io.github.miuzarte.scrcpyforandroid.BuildConfig
import kotlinx.coroutines.runBlocking import kotlinx.coroutines.runBlocking
// not working in MIUI // not working in MIUI
@@ -28,7 +29,7 @@ class PictureInPictureActionReceiver : BroadcastReceiver() {
companion object { companion object {
const val ACTION_STOP_SCRCPY = const val ACTION_STOP_SCRCPY =
"io.github.miuzarte.scrcpyforandroid.action.STOP_SCRCPY_FROM_PIP" "${BuildConfig.APPLICATION_ID}.action.STOP_SCRCPY_FROM_PIP"
private const val REQUEST_CODE_STOP_SCRCPY = 1 private const val REQUEST_CODE_STOP_SCRCPY = 1
fun createIntentFilter(): IntentFilter = IntentFilter(ACTION_STOP_SCRCPY) fun createIntentFilter(): IntentFilter = IntentFilter(ACTION_STOP_SCRCPY)

View File

@@ -1,24 +1,31 @@
[versions] [versions]
agp = "9.1.0" agp = "9.1.1"
bcpkixJdk18on = "1.83"
boringssl = "20251124"
conscryptAndroid = "2.5.3"
datastorePreferences = "1.2.1"
kotlin = "2.3.20" kotlin = "2.3.20"
coreKtx = "1.18.0" coreKtx = "1.18.0"
libcxx = "29.0.14206865"
lifecycleRuntimeKtx = "2.10.0" lifecycleRuntimeKtx = "2.10.0"
activityCompose = "1.13.0" activityCompose = "1.13.0"
composeBom = "2026.03.00" composeBom = "2026.03.01"
androidxNavigation3 = "1.1.0-beta01" androidxNavigation3 = "1.1.0"
junit = "4.13.2" junit = "4.13.2"
androidxJunit = "1.3.0" androidxJunit = "1.3.0"
espressoCore = "3.7.0" espressoCore = "3.7.0"
miuix = "0.9.0" miuix = "0.9.0"
backdrop = "1.0.6" backdrop = "1.0.6"
material = "1.13.0" material = "1.13.0"
runtime = "1.10.5" reorderable = "3.0.0"
runtime = "1.10.6"
androidxCorePip = "1.0.0-alpha02" androidxCorePip = "1.0.0-alpha02"
androidxBiometric = "1.4.0-alpha04" androidxBiometric = "1.4.0-alpha06"
androidxSecurityCrypto = "1.1.0" androidxSecurityCrypto = "1.1.0"
[libraries] [libraries]
androidx-core-ktx = { group = "androidx.core", name = "core-ktx", version.ref = "coreKtx" } androidx-core-ktx = { group = "androidx.core", name = "core-ktx", version.ref = "coreKtx" }
androidx-datastore-preferences = { module = "androidx.datastore:datastore-preferences", version.ref = "datastorePreferences" }
androidx-lifecycle-runtime-ktx = { group = "androidx.lifecycle", name = "lifecycle-runtime-ktx", version.ref = "lifecycleRuntimeKtx" } androidx-lifecycle-runtime-ktx = { group = "androidx.lifecycle", name = "lifecycle-runtime-ktx", version.ref = "lifecycleRuntimeKtx" }
androidx-activity-compose = { group = "androidx.activity", name = "activity-compose", version.ref = "activityCompose" } androidx-activity-compose = { group = "androidx.activity", name = "activity-compose", version.ref = "activityCompose" }
androidx-compose-bom = { group = "androidx.compose", name = "compose-bom", version.ref = "composeBom" } androidx-compose-bom = { group = "androidx.compose", name = "compose-bom", version.ref = "composeBom" }
@@ -30,9 +37,13 @@ androidx-compose-ui-test-junit4 = { group = "androidx.compose.ui", name = "ui-te
androidx-compose-material3 = { group = "androidx.compose.material3", name = "material3" } androidx-compose-material3 = { group = "androidx.compose.material3", name = "material3" }
androidx-compose-material-icons-extended = { group = "androidx.compose.material", name = "material-icons-extended" } androidx-compose-material-icons-extended = { group = "androidx.compose.material", name = "material-icons-extended" }
androidx-navigation3-runtime = { group = "androidx.navigation3", name = "navigation3-runtime-android", version.ref = "androidxNavigation3" } androidx-navigation3-runtime = { group = "androidx.navigation3", name = "navigation3-runtime-android", version.ref = "androidxNavigation3" }
bcpkix-jdk18on = { module = "org.bouncycastle:bcpkix-jdk18on", version.ref = "bcpkixJdk18on" }
boringssl = { module = "io.github.vvb2060.ndk:boringssl", version.ref = "boringssl" }
conscrypt-android = { module = "org.conscrypt:conscrypt-android", version.ref = "conscryptAndroid" }
junit = { group = "junit", name = "junit", version.ref = "junit" } junit = { group = "junit", name = "junit", version.ref = "junit" }
androidx-junit = { group = "androidx.test.ext", name = "junit", version.ref = "androidxJunit" } androidx-junit = { group = "androidx.test.ext", name = "junit", version.ref = "androidxJunit" }
androidx-espresso-core = { group = "androidx.test.espresso", name = "espresso-core", version.ref = "espressoCore" } androidx-espresso-core = { group = "androidx.test.espresso", name = "espresso-core", version.ref = "espressoCore" }
libcxx = { module = "org.lsposed.libcxx:libcxx", version.ref = "libcxx" }
material = { group = "com.google.android.material", name = "material", version.ref = "material" } material = { group = "com.google.android.material", name = "material", version.ref = "material" }
miuix-ui = { group = "top.yukonga.miuix.kmp", name = "miuix-ui", version.ref = "miuix" } miuix-ui = { group = "top.yukonga.miuix.kmp", name = "miuix-ui", version.ref = "miuix" }
miuix-blur = { group = "top.yukonga.miuix.kmp", name = "miuix-blur", version.ref = "miuix" } miuix-blur = { group = "top.yukonga.miuix.kmp", name = "miuix-blur", version.ref = "miuix" }
@@ -44,6 +55,7 @@ androidx-compose-runtime = { group = "androidx.compose.runtime", name = "runtime
androidx-core-pip = { group = "androidx.core", name = "core-pip", version.ref = "androidxCorePip" } androidx-core-pip = { group = "androidx.core", name = "core-pip", version.ref = "androidxCorePip" }
androidx-biometric = { group = "androidx.biometric", name = "biometric", version.ref = "androidxBiometric" } androidx-biometric = { group = "androidx.biometric", name = "biometric", version.ref = "androidxBiometric" }
androidx-security-crypto = { group = "androidx.security", name = "security-crypto-ktx", version.ref = "androidxSecurityCrypto" } androidx-security-crypto = { group = "androidx.security", name = "security-crypto-ktx", version.ref = "androidxSecurityCrypto" }
reorderable = { module = "sh.calvin.reorderable:reorderable", version.ref = "reorderable" }
[plugins] [plugins]
android-application = { id = "com.android.application", version.ref = "agp" } android-application = { id = "com.android.application", version.ref = "agp" }