Skip to content

Commit 16128ff

Browse files
committed
refactor: adjust third party library summary display
1 parent 9ea36ab commit 16128ff

File tree

2 files changed

+25
-28
lines changed

2 files changed

+25
-28
lines changed

app/src/main/java/com/osfans/trime/ui/fragments/AboutFragment.kt

+7-28
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,8 @@ import com.osfans.trime.data.opencc.OpenCCDictManager
1616
import com.osfans.trime.ui.components.PaddingPreferenceFragment
1717
import com.osfans.trime.ui.main.MainViewModel
1818
import com.osfans.trime.util.Const
19+
import com.osfans.trime.util.optionalPreference
20+
import com.osfans.trime.util.thirdPartySummary
1921
import splitties.systemservices.clipboardManager
2022

2123
class AboutFragment : PaddingPreferenceFragment() {
@@ -41,28 +43,11 @@ class AboutFragment : PaddingPreferenceFragment() {
4143
true
4244
}
4345
}
44-
get<Preference>("about__librime_version")?.apply {
45-
val version = Rime.getLibrimeVersion()
46-
summary = version
47-
intent = intent?.let {
48-
Intent(
49-
Intent.ACTION_VIEW,
50-
Uri.withAppendedPath(it.data, "commits/$version"),
51-
)
52-
}
53-
}
54-
get<Preference>("about__opencc_version").apply {
55-
val version = OpenCCDictManager.getOpenCCVersion()
56-
summary = version
57-
intent = intent?.let {
58-
Intent(
59-
Intent.ACTION_VIEW,
60-
Uri.withAppendedPath(it.data, "commits/$version"),
61-
)
62-
}
63-
}
64-
get<Preference>("pref_trime_custom_qq")
65-
?.hidden()
46+
get<Preference>("about__librime_version")
47+
?.thirdPartySummary(Rime.getLibrimeVersion())
48+
get<Preference>("about__opencc_version")
49+
?.thirdPartySummary(OpenCCDictManager.getOpenCCVersion())
50+
get<Preference>("pref_trime_custom_qq")?.optionalPreference()
6651
get<Preference>("about__open_source_licenses")?.apply {
6752
setOnPreferenceClickListener {
6853
findNavController().navigate(R.id.action_aboutFragment_to_licenseFragment)
@@ -76,10 +61,4 @@ class AboutFragment : PaddingPreferenceFragment() {
7661
super.onResume()
7762
viewModel.setToolbarTitle(getString(R.string.pref_about))
7863
}
79-
80-
private fun Preference.hidden() {
81-
if (this.summary?.isBlank() == true || this.intent?.data == null) {
82-
this.isVisible = false
83-
}
84-
}
8564
}

app/src/main/java/com/osfans/trime/util/Utils.kt

+18
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,13 @@ package com.osfans.trime.util
33
import android.app.Activity
44
import android.content.Context
55
import android.graphics.Color
6+
import android.net.Uri
67
import android.os.Build
78
import android.os.Bundle
89
import androidx.core.view.ViewCompat
910
import androidx.core.view.WindowCompat
1011
import androidx.core.view.WindowInsetsCompat
12+
import androidx.preference.Preference
1113
import androidx.recyclerview.widget.RecyclerView
1214
import com.blankj.utilcode.util.ToastUtils
1315
import com.osfans.trime.R
@@ -94,3 +96,19 @@ inline fun <reified T : Serializable> Bundle.serializable(key: String): T? {
9496
getSerializable(key) as? T
9597
}
9698
}
99+
100+
fun Preference.thirdPartySummary(versionCode: String) {
101+
summary = versionCode
102+
intent?.let {
103+
val commitHash = if (versionCode.contains("-g")) {
104+
versionCode.replace("^(.*-g)([0-9a-f]+)(.*)$".toRegex(), "$2")
105+
} else {
106+
versionCode.replace("^([^-]*)(-.*)$".toRegex(), "$1")
107+
}
108+
it.data = Uri.withAppendedPath(it.data, "commits/$commitHash")
109+
}
110+
}
111+
112+
fun Preference.optionalPreference() {
113+
isVisible = summary.isNullOrBlank() || intent?.data == null
114+
}

0 commit comments

Comments
 (0)