From f707ed2eddedce2a42845f5c77ac22c6a9c4db34 Mon Sep 17 00:00:00 2001 From: Jays2Kings Date: Tue, 19 Apr 2022 22:31:09 -0400 Subject: [PATCH] Show parsed Markdown for new version info Co-Authored-By: arkon <4098258+arkon@users.noreply.github.com> --- app/build.gradle.kts | 1 + .../tachiyomi/ui/setting/AboutController.kt | 16 +++++++++++++++- 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 76ca225a33..263624f7ad 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -223,6 +223,7 @@ dependencies { implementation("com.nononsenseapps:filepicker:2.5.2") implementation("com.nightlynexus.viewstatepageradapter:viewstatepageradapter:1.1.0") implementation("com.github.mthli:Slice:v1.2") + implementation("io.noties.markwon:core:4.6.2") implementation("com.github.chrisbanes:PhotoView:2.3.0") implementation("com.github.tachiyomiorg:DirectionalViewPager:1.0.0") diff --git a/app/src/main/java/eu/kanade/tachiyomi/ui/setting/AboutController.kt b/app/src/main/java/eu/kanade/tachiyomi/ui/setting/AboutController.kt index 71864709fb..304da1e291 100644 --- a/app/src/main/java/eu/kanade/tachiyomi/ui/setting/AboutController.kt +++ b/app/src/main/java/eu/kanade/tachiyomi/ui/setting/AboutController.kt @@ -4,6 +4,9 @@ import android.app.Dialog import android.content.Intent import android.os.Build import android.os.Bundle +import android.text.method.LinkMovementMethod +import android.view.View +import android.widget.TextView import androidx.core.net.toUri import androidx.preference.PreferenceScreen import com.google.android.gms.oss.licenses.OssLicensesMenuActivity @@ -21,6 +24,7 @@ import eu.kanade.tachiyomi.util.system.isOnline import eu.kanade.tachiyomi.util.system.materialAlertDialog import eu.kanade.tachiyomi.util.system.toast import eu.kanade.tachiyomi.util.view.openInBrowser +import io.noties.markwon.Markwon import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.launch import kotlinx.coroutines.withContext @@ -210,6 +214,10 @@ class AboutController : SettingsController() { ) override fun onCreateDialog(savedViewState: Bundle?): Dialog { + val releaseBody = (args.getString(BODY_KEY) ?: "") + .replace("""---(\R|.)*Checksums(\R|.)*""".toRegex(), "") + val info = Markwon.create(activity!!).toMarkdown(releaseBody) + val isOnA12 = Build.VERSION.SDK_INT >= Build.VERSION_CODES.S val isBeta = args.getBoolean(IS_BETA, false) return activity!!.materialAlertDialog() @@ -220,7 +228,7 @@ class AboutController : SettingsController() { R.string.new_version_available } ) - .setMessage(args.getString(BODY_KEY) ?: "") + .setMessage(info) .setPositiveButton(if (isOnA12) R.string.update else R.string.download) { _, _ -> val appContext = applicationContext if (appContext != null) { @@ -233,6 +241,12 @@ class AboutController : SettingsController() { .create() } + override fun onAttach(view: View) { + super.onAttach(view) + (dialog?.findViewById(android.R.id.message) as? TextView)?.movementMethod = + LinkMovementMethod.getInstance() + } + companion object { const val BODY_KEY = "NewUpdateDialogController.body" const val URL_KEY = "NewUpdateDialogController.key"