deps: update dependencies
This commit is contained in:
2
.github/workflows/android.yml
vendored
2
.github/workflows/android.yml
vendored
@@ -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 "| --- | --- | --- | --- | --- |"
|
||||||
|
|
||||||
|
|||||||
@@ -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)
|
||||||
|
|||||||
@@ -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)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -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) {
|
||||||
|
|||||||
@@ -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 {
|
||||||
|
|||||||
@@ -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"
|
||||||
|
|||||||
@@ -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)
|
||||||
|
|||||||
@@ -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" }
|
||||||
|
|||||||
Reference in New Issue
Block a user