关于界面更新日志 #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.core.net.toUri
import androidx.lifecycle.lifecycleScope
import io.legado.app.BuildConfig
import io.legado.app.R
import io.legado.app.base.BaseActivity
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.help.CrashHandler
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.update.AppUpdate
import io.legado.app.help.update.AppUpdateGitHub
import io.legado.app.ui.widget.dialog.TextDialog
import io.legado.app.ui.widget.dialog.WaitDialog
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.toastOnUi
import io.legado.app.utils.viewbindingdelegate.viewBinding
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.delay
import kotlinx.coroutines.launch
import kotlinx.coroutines.withContext
import splitties.init.appCtx
import java.io.File
import kotlin.coroutines.resume
import kotlin.coroutines.suspendCoroutine
class AboutActivity : BaseActivity<ActivityAboutBinding>() {
@@ -70,7 +78,9 @@ class AboutActivity : BaseActivity<ActivityAboutBinding>() {
}
binding.llUpdateLog.setOnClickListener {
showMdFile(getString(R.string.update_log), "updateLog.md")
lifecycleScope.launch {
upVersion()
}
}
binding.llPrivacyPolicy.setOnClickListener {
@@ -113,6 +123,33 @@ class AboutActivity : BaseActivity<ActivityAboutBinding>() {
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) {
val mdText = String(this.assets.open(fileName).readBytes())
showDialogFragment(TextDialog(title, mdText, TextDialog.Mode.MD))