Skip to content

Commit

Permalink
perf: 优化关于页面
Browse files Browse the repository at this point in the history
  • Loading branch information
lisonge committed Jan 17, 2024
1 parent 3d20fc7 commit 01545a7
Show file tree
Hide file tree
Showing 4 changed files with 148 additions and 26 deletions.
34 changes: 26 additions & 8 deletions app/build.gradle.kts
Original file line number Diff line number Diff line change
@@ -1,6 +1,22 @@
import com.android.build.gradle.internal.cxx.json.jsonStringOf
import java.text.SimpleDateFormat
import java.util.Locale
import java.io.ByteArrayOutputStream

fun String.runCommand(currentWorkingDir: File = file("./")): String {
val byteOut = ByteArrayOutputStream()
project.exec {
workingDir = currentWorkingDir
commandLine = this@runCommand.split("\\s".toRegex())
standardOutput = byteOut
}
return String(byteOut.toByteArray()).trim()
}

val gitCommitId = try {
"git rev-parse HEAD".runCommand()
} catch (e: Exception) {
e.printStackTrace()
null
}

plugins {
alias(libs.plugins.android.application)
Expand Down Expand Up @@ -33,16 +49,13 @@ android {
val nowTime = System.currentTimeMillis()
buildConfigField("Long", "BUILD_TIME", jsonStringOf(nowTime) + "L")
buildConfigField(
"String", "BUILD_DATE", jsonStringOf(
SimpleDateFormat(
"yyyy-MM-dd HH:mm:ss ZZ", Locale.SIMPLIFIED_CHINESE
).format(nowTime)
)
"String",
"GIT_COMMIT_ID",
jsonStringOf(gitCommitId)
)
buildConfigField(
"String", "GKD_BUGLY_APP_ID", jsonStringOf(project.properties["GKD_BUGLY_APP_ID"])
)

resourceConfigurations.addAll(listOf("zh", "en"))
ndk {
// noinspection ChromeOsAbiSupport
Expand Down Expand Up @@ -80,6 +93,11 @@ android {
)
}
debug {
versionNameSuffix = if (gitCommitId != null) {
"-${gitCommitId.substring(0, 8)}"
} else {
"-unknown"
}
applicationIdSuffix = ".debug"
resValue("string", "app_name", "GKD-debug")
}
Expand Down
2 changes: 2 additions & 0 deletions app/src/main/kotlin/li/songe/gkd/App.kt
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ import kotlinx.coroutines.MainScope
import li.songe.gkd.data.DeviceInfo
import li.songe.gkd.debug.clearHttpSubs
import li.songe.gkd.notif.initChannel
import li.songe.gkd.util.GIT_COMMIT_URL
import li.songe.gkd.util.initAppState
import li.songe.gkd.util.initFolder
import li.songe.gkd.util.initStore
Expand Down Expand Up @@ -65,6 +66,7 @@ class App : Application() {
setConsoleSwitch(BuildConfig.DEBUG)
saveDays = 7
}
LogUtils.d("GIT_COMMIT_URL: $GIT_COMMIT_URL")

initFolder()
appScope.launchTry(Dispatchers.IO) {
Expand Down
129 changes: 111 additions & 18 deletions app/src/main/kotlin/li/songe/gkd/ui/AboutPage.kt
Original file line number Diff line number Diff line change
Expand Up @@ -3,12 +3,14 @@ package li.songe.gkd.ui
import android.content.Intent
import android.net.Uri
import androidx.compose.foundation.clickable
import androidx.compose.foundation.layout.Arrangement
import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.Row
import androidx.compose.foundation.layout.Spacer
import androidx.compose.foundation.layout.fillMaxWidth
import androidx.compose.foundation.layout.height
import androidx.compose.foundation.layout.padding
import androidx.compose.material.icons.Icons
import androidx.compose.material.icons.filled.ArrowBack
import androidx.compose.material3.Divider
import androidx.compose.material3.Icon
import androidx.compose.material3.IconButton
import androidx.compose.material3.MaterialTheme
Expand All @@ -19,13 +21,16 @@ import androidx.compose.runtime.Composable
import androidx.compose.ui.Modifier
import androidx.compose.ui.platform.LocalContext
import androidx.compose.ui.unit.dp
import androidx.compose.ui.unit.sp
import com.ramcosta.composedestinations.annotation.Destination
import com.ramcosta.composedestinations.annotation.RootNavGraph
import li.songe.gkd.BuildConfig
import li.songe.gkd.appScope
import li.songe.gkd.util.GIT_COMMIT_URL
import li.songe.gkd.util.LocalNavController
import li.songe.gkd.util.ProfileTransitions
import li.songe.gkd.util.REPOSITORY_URL
import li.songe.gkd.util.format
import li.songe.gkd.util.launchTry

@RootNavGraph
Expand All @@ -47,31 +52,119 @@ fun AboutPage() {
}, title = { Text(text = "关于") }, actions = {})
}, content = { contentPadding ->
Column(
Modifier
.padding(contentPadding)
.padding(10.dp),
verticalArrangement = Arrangement.spacedBy(10.dp)
modifier = Modifier
.fillMaxWidth()
.padding(contentPadding),
) {
Row {
Text(text = "开源地址: ")
Text(text = REPOSITORY_URL,
Column(modifier = Modifier
.clickable {
appScope.launchTry {
// ActivityNotFoundException
// https://bugly.qq.com/v2/crash-reporting/crashes/d0ce46b353/117002?pid=1
context.startActivity(
Intent(
Intent.ACTION_VIEW, Uri.parse(REPOSITORY_URL)
)
)
}
}
.fillMaxWidth()
.padding(10.dp)) {
Text(
text = "开源地址", fontSize = 18.sp
)
Spacer(modifier = Modifier.height(2.dp))
Text(
text = REPOSITORY_URL,
fontSize = 14.sp,
color = MaterialTheme.colorScheme.primary,
modifier = Modifier.clickable {
)
}
Divider()
Column(
modifier = Modifier
.fillMaxWidth()
.padding(10.dp)
) {
Text(
text = "版本代码", fontSize = 18.sp
)
Spacer(modifier = Modifier.height(2.dp))
Text(
text = BuildConfig.VERSION_CODE.toString(),
fontSize = 14.sp,
)
}
Divider()
Column(
modifier = Modifier
.fillMaxWidth()
.padding(10.dp)
) {
Text(
text = "版本名称", fontSize = 18.sp
)
Spacer(modifier = Modifier.height(2.dp))
Text(
text = BuildConfig.VERSION_NAME,
fontSize = 14.sp,
)
}
@Suppress("SENSELESS_COMPARISON") if (GIT_COMMIT_URL != null && BuildConfig.GIT_COMMIT_ID != null) {
Divider()
Column(modifier = Modifier
.clickable {
appScope.launchTry {
// ActivityNotFoundException
// https://bugly.qq.com/v2/crash-reporting/crashes/d0ce46b353/117002?pid=1
context.startActivity(
Intent(
Intent.ACTION_VIEW, Uri.parse(REPOSITORY_URL)
Intent.ACTION_VIEW, Uri.parse(GIT_COMMIT_URL)
)
)
}
})
}
.fillMaxWidth()
.padding(10.dp)) {
Text(
text = "代码记录", fontSize = 18.sp
)
Spacer(modifier = Modifier.height(2.dp))
Text(
text = BuildConfig.GIT_COMMIT_ID,
fontSize = 14.sp,
color = MaterialTheme.colorScheme.primary,
)
}
}
Divider()
Column(
modifier = Modifier
.fillMaxWidth()
.padding(10.dp)
) {
Text(
text = "构建时间", fontSize = 18.sp
)
Spacer(modifier = Modifier.height(2.dp))
Text(
text = BuildConfig.BUILD_TIME.format("yyyy-MM-dd HH:mm:ss ZZ"),
fontSize = 14.sp,
)
}
Divider()
Column(
modifier = Modifier
.fillMaxWidth()
.padding(10.dp)
) {
Text(
text = "构建类型", fontSize = 18.sp
)
Spacer(modifier = Modifier.height(2.dp))
Text(
text = BuildConfig.BUILD_TYPE,
fontSize = 14.sp,
)
}
Text(text = "版本代码: " + BuildConfig.VERSION_CODE)
Text(text = "版本名称: " + BuildConfig.VERSION_NAME)
Text(text = "构建时间: " + BuildConfig.BUILD_DATE)
Text(text = "构建类型: " + BuildConfig.BUILD_TYPE)
}
})

Expand Down
9 changes: 9 additions & 0 deletions app/src/main/kotlin/li/songe/gkd/util/Constants.kt
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
package li.songe.gkd.util

import li.songe.gkd.BuildConfig

const val VOLUME_CHANGED_ACTION = "android.media.VOLUME_CHANGED_ACTION"

const val FILE_UPLOAD_URL = "https://u.gkd.li/"
Expand All @@ -14,6 +16,13 @@ const val SERVER_SCRIPT_URL =

const val REPOSITORY_URL = "https://github.com/gkd-kit/gkd"

@Suppress("SENSELESS_COMPARISON")
val GIT_COMMIT_URL = if (BuildConfig.GIT_COMMIT_ID != null) {
"https://github.com/gkd-kit/gkd/commit/${BuildConfig.GIT_COMMIT_ID}"
} else {
null
}

val safeRemoteBaseUrls = arrayOf(
"https://registry.npmmirror.com/@gkd-kit/",
"https://cdn.jsdelivr.net/npm/@gkd-kit/",
Expand Down

0 comments on commit 01545a7

Please sign in to comment.