From 6b08074a70ba0590a61c4472d332a46141fe8f78 Mon Sep 17 00:00:00 2001 From: Koitharu Date: Thu, 19 Jan 2023 19:52:00 +0200 Subject: [PATCH] Fix changelog formatting --- .../core/github/AppUpdateRepository.kt | 6 +++++ .../kotatsu/settings/about/AppUpdateDialog.kt | 9 ++++---- .../kotatsu/settings/tools/ToolsFragment.kt | 14 +---------- app/src/main/res/layout/layout_app_update.xml | 23 +++---------------- 4 files changed, 15 insertions(+), 37 deletions(-) diff --git a/app/src/main/java/org/koitharu/kotatsu/core/github/AppUpdateRepository.kt b/app/src/main/java/org/koitharu/kotatsu/core/github/AppUpdateRepository.kt index 7b935f4ac..24d28bb68 100644 --- a/app/src/main/java/org/koitharu/kotatsu/core/github/AppUpdateRepository.kt +++ b/app/src/main/java/org/koitharu/kotatsu/core/github/AppUpdateRepository.kt @@ -80,6 +80,12 @@ class AppUpdateRepository @Inject constructor( return BuildConfig.DEBUG || getCertificateSHA1Fingerprint() == CERT_SHA1 } + suspend fun getCurrentVersionChangelog(): String? { + val currentVersion = VersionId(BuildConfig.VERSION_NAME) + val available = getAvailableVersions() + return available.find { x -> x.versionId == currentVersion }?.description + } + @Suppress("DEPRECATION") @SuppressLint("PackageManagerGetSignatures") private fun getCertificateSHA1Fingerprint(): String? = runCatching { diff --git a/app/src/main/java/org/koitharu/kotatsu/settings/about/AppUpdateDialog.kt b/app/src/main/java/org/koitharu/kotatsu/settings/about/AppUpdateDialog.kt index 94116493a..0043a5ab2 100644 --- a/app/src/main/java/org/koitharu/kotatsu/settings/about/AppUpdateDialog.kt +++ b/app/src/main/java/org/koitharu/kotatsu/settings/about/AppUpdateDialog.kt @@ -3,30 +3,31 @@ package org.koitharu.kotatsu.settings.about import android.content.Context import android.content.Intent import androidx.core.net.toUri -import com.google.android.material.R as materialR +import androidx.core.text.buildSpannedString import com.google.android.material.dialog.MaterialAlertDialogBuilder import io.noties.markwon.Markwon import org.koitharu.kotatsu.R import org.koitharu.kotatsu.core.github.AppVersion import org.koitharu.kotatsu.utils.FileSize +import com.google.android.material.R as materialR class AppUpdateDialog(private val context: Context) { fun show(version: AppVersion) { - val message = buildString { + val message = buildSpannedString { append(context.getString(R.string.new_version_s, version.name)) appendLine() append(context.getString(R.string.size_s, FileSize.BYTES.format(context, version.apkSize))) appendLine() appendLine() - append(version.description) + append(Markwon.create(context).toMarkdown(version.description)) } MaterialAlertDialogBuilder( context, materialR.style.ThemeOverlay_Material3_MaterialAlertDialog_Centered, ) .setTitle(R.string.app_update_available) - .setMessage(Markwon.create(context).toMarkdown(message)) + .setMessage(message) .setIcon(R.drawable.ic_app_update) .setPositiveButton(R.string.download) { _, _ -> val intent = Intent(Intent.ACTION_VIEW, version.apkUrl.toUri()) diff --git a/app/src/main/java/org/koitharu/kotatsu/settings/tools/ToolsFragment.kt b/app/src/main/java/org/koitharu/kotatsu/settings/tools/ToolsFragment.kt index 5c9dc2719..bd8b17e43 100644 --- a/app/src/main/java/org/koitharu/kotatsu/settings/tools/ToolsFragment.kt +++ b/app/src/main/java/org/koitharu/kotatsu/settings/tools/ToolsFragment.kt @@ -18,7 +18,6 @@ import androidx.core.widget.TextViewCompat import androidx.fragment.app.viewModels import com.google.android.material.color.MaterialColors import dagger.hilt.android.AndroidEntryPoint -import io.noties.markwon.Markwon import org.koitharu.kotatsu.R import org.koitharu.kotatsu.base.ui.BaseFragment import org.koitharu.kotatsu.base.ui.widgets.SegmentedBarView @@ -48,7 +47,6 @@ class ToolsFragment : super.onViewCreated(view, savedInstanceState) binding.buttonSettings.setOnClickListener(this) binding.buttonDownloads.setOnClickListener(this) - binding.cardUpdate.root.setOnClickListener(this) binding.cardUpdate.buttonChangelog.setOnClickListener(this) binding.cardUpdate.buttonDownload.setOnClickListener(this) binding.switchIncognito.setOnCheckedChangeListener(this) @@ -72,12 +70,10 @@ class ToolsFragment : startActivity(Intent.createChooser(intent, getString(R.string.open_in_browser))) } - R.id.card_update -> { + R.id.button_changelog -> { val version = viewModel.appUpdate.value ?: return AppUpdateDialog(v.context).show(version) } - - R.id.button_changelog -> showChangelog() } } @@ -97,7 +93,6 @@ class ToolsFragment : return } binding.cardUpdate.textSecondary.text = getString(R.string.new_version_s, version.name) - binding.cardUpdate.textChangelog.text = Markwon.create(requireActivity()).toMarkdown(version.description) binding.cardUpdate.root.isVisible = true } @@ -146,13 +141,6 @@ class ToolsFragment : return MaterialColors.harmonize(color, backgroundColor) } - private fun showChangelog() { - TransitionManager.beginDelayedTransition(binding.cardUpdate.root) - binding.cardUpdate.buttonChangelog.isVisible = false - binding.cardUpdate.textSecondary.isVisible = true - binding.cardUpdate.textChangelog.isVisible = true - } - companion object { fun newInstance() = ToolsFragment() diff --git a/app/src/main/res/layout/layout_app_update.xml b/app/src/main/res/layout/layout_app_update.xml index 536c83d82..02701ea39 100644 --- a/app/src/main/res/layout/layout_app_update.xml +++ b/app/src/main/res/layout/layout_app_update.xml @@ -2,7 +2,6 @@ - - + app:layout_constraintTop_toBottomOf="@id/textPrimary" />