关于界面更新日志 #250

This commit is contained in:
HapeLee
2025-11-09 02:47:15 +08:00
parent aec19ab5a8
commit 9977c6385d
@@ -8,6 +8,7 @@ import android.view.MenuItem
import androidx.annotation.StringRes import androidx.annotation.StringRes
import androidx.core.net.toUri import androidx.core.net.toUri
import androidx.lifecycle.lifecycleScope import androidx.lifecycle.lifecycleScope
import io.legado.app.BuildConfig
import io.legado.app.R import io.legado.app.R
import io.legado.app.base.BaseActivity import io.legado.app.base.BaseActivity
import io.legado.app.constant.AppConst.appInfo import io.legado.app.constant.AppConst.appInfo
@@ -15,8 +16,10 @@ import io.legado.app.constant.AppLog
import io.legado.app.databinding.ActivityAboutBinding import io.legado.app.databinding.ActivityAboutBinding
import io.legado.app.help.CrashHandler import io.legado.app.help.CrashHandler
import io.legado.app.help.config.AppConfig import io.legado.app.help.config.AppConfig
import io.legado.app.help.config.LocalConfig
import io.legado.app.help.coroutine.Coroutine import io.legado.app.help.coroutine.Coroutine
import io.legado.app.help.update.AppUpdate import io.legado.app.help.update.AppUpdate
import io.legado.app.help.update.AppUpdateGitHub
import io.legado.app.ui.widget.dialog.TextDialog import io.legado.app.ui.widget.dialog.TextDialog
import io.legado.app.ui.widget.dialog.WaitDialog import io.legado.app.ui.widget.dialog.WaitDialog
import io.legado.app.utils.FileDoc import io.legado.app.utils.FileDoc
@@ -34,9 +37,14 @@ import io.legado.app.utils.share
import io.legado.app.utils.showDialogFragment import io.legado.app.utils.showDialogFragment
import io.legado.app.utils.toastOnUi import io.legado.app.utils.toastOnUi
import io.legado.app.utils.viewbindingdelegate.viewBinding import io.legado.app.utils.viewbindingdelegate.viewBinding
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.delay import kotlinx.coroutines.delay
import kotlinx.coroutines.launch
import kotlinx.coroutines.withContext
import splitties.init.appCtx import splitties.init.appCtx
import java.io.File import java.io.File
import kotlin.coroutines.resume
import kotlin.coroutines.suspendCoroutine
class AboutActivity : BaseActivity<ActivityAboutBinding>() { class AboutActivity : BaseActivity<ActivityAboutBinding>() {
@@ -70,7 +78,9 @@ class AboutActivity : BaseActivity<ActivityAboutBinding>() {
} }
binding.llUpdateLog.setOnClickListener { binding.llUpdateLog.setOnClickListener {
showMdFile(getString(R.string.update_log), "updateLog.md") lifecycleScope.launch {
upVersion()
}
} }
binding.llPrivacyPolicy.setOnClickListener { binding.llPrivacyPolicy.setOnClickListener {
@@ -113,6 +123,33 @@ class AboutActivity : BaseActivity<ActivityAboutBinding>() {
return super.onCompatOptionsItemSelected(item) return super.onCompatOptionsItemSelected(item)
} }
private suspend fun upVersion() {
try {
val info = withContext(Dispatchers.IO) {
AppUpdateGitHub.getReleaseByTag(BuildConfig.VERSION_NAME)
}
withContext(Dispatchers.Main) {
val dialog = if (info != null) {
UpdateDialog(info, UpdateDialog.Mode.VIEW_LOG)
} else {
val fallback = String(assets.open("updateLog.md").readBytes())
TextDialog(getString(R.string.update_log), fallback, TextDialog.Mode.MD)
}
showDialogFragment(dialog)
}
} catch (e: Exception) {
e.printStackTrace()
val fallback = String(assets.open("updateLog.md").readBytes())
val dialog = TextDialog(getString(R.string.update_log), fallback, TextDialog.Mode.MD)
withContext(Dispatchers.Main) {
showDialogFragment(dialog)
}
}
}
private fun showMdFile(title: String, fileName: String) { private fun showMdFile(title: String, fileName: String) {
val mdText = String(this.assets.open(fileName).readBytes()) val mdText = String(this.assets.open(fileName).readBytes())
showDialogFragment(TextDialog(title, mdText, TextDialog.Mode.MD)) showDialogFragment(TextDialog(title, mdText, TextDialog.Mode.MD))