Skip to content

Commit 56fd9df

Browse files
committed
dev check update
1 parent 7736548 commit 56fd9df

7 files changed

Lines changed: 223 additions & 143 deletions

File tree

app/src/main/java/io/nekohasekai/sagernet/SagerNet.kt

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,8 @@ import go.Seq
2020
import io.nekohasekai.sagernet.bg.SagerConnection
2121
import io.nekohasekai.sagernet.database.DataStore
2222
import io.nekohasekai.sagernet.ktx.Logs
23+
import io.nekohasekai.sagernet.ktx.isOss
24+
import io.nekohasekai.sagernet.ktx.isPreview
2325
import io.nekohasekai.sagernet.ktx.runOnDefaultDispatcher
2426
import io.nekohasekai.sagernet.ui.MainActivity
2527
import io.nekohasekai.sagernet.utils.*
@@ -194,6 +196,18 @@ class SagerNet : Application(),
194196

195197
var underlyingNetwork: Network? = null
196198

199+
var appVersionNameForDisplay = lazy {
200+
var n = BuildConfig.VERSION_NAME
201+
if (isPreview) {
202+
n += " " + BuildConfig.PRE_VERSION_NAME
203+
} else if (!isOss) {
204+
n += " ${BuildConfig.FLAVOR}"
205+
}
206+
if (BuildConfig.DEBUG) {
207+
n += " DEBUG"
208+
}
209+
n
210+
}
197211
}
198212

199213
}

app/src/main/java/io/nekohasekai/sagernet/ui/AboutFragment.kt

Lines changed: 185 additions & 110 deletions
Large diffs are not rendered by default.

app/src/main/java/io/nekohasekai/sagernet/utils/CrashHandler.kt

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import android.os.Build
66
import android.util.Log
77
import com.jakewharton.processphoenix.ProcessPhoenix
88
import io.nekohasekai.sagernet.BuildConfig
9+
import io.nekohasekai.sagernet.SagerNet
910
import io.nekohasekai.sagernet.database.preference.PublicDatabase
1011
import io.nekohasekai.sagernet.ktx.Logs
1112
import io.nekohasekai.sagernet.ktx.app
@@ -61,7 +62,7 @@ object CrashHandler : Thread.UncaughtExceptionHandler {
6162

6263
fun buildReportHeader(): String {
6364
var report = ""
64-
report += "NekoBox for Andoird ${BuildConfig.VERSION_NAME} (${BuildConfig.VERSION_CODE}) ${BuildConfig.FLAVOR.uppercase()}\n"
65+
report += "NekoBox for Android ${SagerNet.appVersionNameForDisplay} (${BuildConfig.VERSION_CODE})\n"
6566
report += "Date: ${getCurrentMilliSecondUTCTimeStamp()}\n\n"
6667
report += "OS_VERSION: ${getSystemPropertyWithAndroidAPI("os.version")}\n"
6768
report += "SDK_INT: ${Build.VERSION.SDK_INT}\n"
@@ -102,7 +103,7 @@ object CrashHandler : Thread.UncaughtExceptionHandler {
102103
report += "\n"
103104
report += pair.key + ": " + pair.toString()
104105
}
105-
}catch (e: Exception) {
106+
} catch (e: Exception) {
106107
report += "Export settings failed: " + formatThrowable(e)
107108
}
108109

@@ -136,7 +137,8 @@ object CrashHandler : Thread.UncaughtExceptionHandler {
136137
if (matcher.matches()) {
137138
key = matcher.group(1)
138139
value = matcher.group(2)
139-
if (key != null && value != null && !key.isEmpty() && !value.isEmpty()) systemProperties[key] = value
140+
if (key != null && value != null && !key.isEmpty() && !value.isEmpty()) systemProperties[key] =
141+
value
140142
}
141143
}
142144
bufferedReader.close()

app/src/main/res/values-zh-rCN/strings.xml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -488,4 +488,9 @@
488488
<string name="wake_reset_connections">当设备从睡眠状态唤醒时重置出站连接</string>
489489
<string name="preview_version">预览版</string>
490490
<string name="preview_version_hint">本应用为预览版,可能存在诸多问题。若您不愿参与测试,请前往GitHub下载正式发布版本!</string>
491+
<string name="check_update_preview">检查预览版更新</string>
492+
<string name="check_update_release">检查正式版</string>
493+
<string name="update_dialog_title">发现新版本</string>
494+
<string name="update_dialog_message">当前版本:%1$s\n可升级版本:%2$s\n是否前往下载?</string>
495+
<string name="check_update_no">检查成功,但没有更新。</string>
491496
</resources>

app/src/main/res/values/strings.xml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -568,4 +568,9 @@
568568
<string name="wake_reset_connections">Reset outbound connections when device wake from sleep</string>
569569
<string name="preview_version">Preview version</string>
570570
<string name="preview_version_hint">This application is a preview version and may contain many problems. If you do not want to test it, please go to GitHub to download the Release version!</string>
571+
<string name="check_update_preview">Check for preview version updates</string>
572+
<string name="check_update_release">Check for release version updates</string>
573+
<string name="update_dialog_title">New version available</string>
574+
<string name="update_dialog_message">Current version: %1$s\nAvailable version: %2$s\nDo you want to download it?</string>
575+
<string name="check_update_no">Check successful, but no updates.</string>
571576
</resources>

buildSrc/src/main/kotlin/Helpers.kt

Lines changed: 8 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -14,33 +14,6 @@ private val Project.android get() = extensions.getByName<ApplicationExtension>("
1414

1515
private lateinit var metadata: Properties
1616
private lateinit var localProperties: Properties
17-
private lateinit var flavor: String
18-
19-
fun Project.requireFlavor(): String {
20-
if (::flavor.isInitialized) return flavor
21-
if (gradle.startParameter.taskNames.isNotEmpty()) {
22-
val taskName = gradle.startParameter.taskNames[0]
23-
when {
24-
taskName.contains("assemble") -> {
25-
flavor = taskName.substringAfter("assemble")
26-
return flavor
27-
}
28-
29-
taskName.contains("install") -> {
30-
flavor = taskName.substringAfter("install")
31-
return flavor
32-
}
33-
34-
taskName.contains("bundle") -> {
35-
flavor = taskName.substringAfter("bundle")
36-
return flavor
37-
}
38-
}
39-
}
40-
41-
flavor = ""
42-
return flavor
43-
}
4417

4518
fun Project.requireMetadata(): Properties {
4619
if (!::metadata.isInitialized) {
@@ -156,8 +129,6 @@ fun Project.setupAppCommon() {
156129
keyPassword = pwd
157130
}
158131
}
159-
} else if (requireFlavor().contains("(Oss|Expert|Play)Release".toRegex())) {
160-
exitProcess(0)
161132
}
162133
buildTypes {
163134
val key = signingConfigs.findByName("release")
@@ -178,6 +149,7 @@ fun Project.setupApp() {
178149
applicationId = pkgName
179150
versionCode = verCode
180151
versionName = verName
152+
buildConfigField("String", "PRE_VERSION_NAME", "\"\"")
181153
}
182154
}
183155
setupAppCommon()
@@ -209,7 +181,13 @@ fun Project.setupApp() {
209181
create("oss")
210182
create("fdroid")
211183
create("play")
212-
create("preview")
184+
create("preview") {
185+
buildConfigField(
186+
"String",
187+
"PRE_VERSION_NAME",
188+
"\"${requireMetadata().getProperty("PRE_VERSION_NAME")}\""
189+
)
190+
}
213191
}
214192

215193
applicationVariants.all {

nb4a.properties

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
11
PACKAGE_NAME=moe.nb4a
22
VERSION_NAME=1.3.9
3+
PRE_VERSION_NAME=pre-1.4.0-20250902-1
34
VERSION_CODE=43

0 commit comments

Comments
 (0)