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" />
+ app:layout_constraintTop_toBottomOf="@id/textSecondary" />
+ app:layout_constraintTop_toBottomOf="@id/textSecondary" />