Fix changelog formatting

This commit is contained in:
Koitharu
2023-01-19 19:52:00 +02:00
parent 9cb5971182
commit 6b08074a70
4 changed files with 15 additions and 37 deletions

View File

@@ -80,6 +80,12 @@ class AppUpdateRepository @Inject constructor(
return BuildConfig.DEBUG || getCertificateSHA1Fingerprint() == CERT_SHA1 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") @Suppress("DEPRECATION")
@SuppressLint("PackageManagerGetSignatures") @SuppressLint("PackageManagerGetSignatures")
private fun getCertificateSHA1Fingerprint(): String? = runCatching { private fun getCertificateSHA1Fingerprint(): String? = runCatching {

View File

@@ -3,30 +3,31 @@ package org.koitharu.kotatsu.settings.about
import android.content.Context import android.content.Context
import android.content.Intent import android.content.Intent
import androidx.core.net.toUri 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 com.google.android.material.dialog.MaterialAlertDialogBuilder
import io.noties.markwon.Markwon import io.noties.markwon.Markwon
import org.koitharu.kotatsu.R import org.koitharu.kotatsu.R
import org.koitharu.kotatsu.core.github.AppVersion import org.koitharu.kotatsu.core.github.AppVersion
import org.koitharu.kotatsu.utils.FileSize import org.koitharu.kotatsu.utils.FileSize
import com.google.android.material.R as materialR
class AppUpdateDialog(private val context: Context) { class AppUpdateDialog(private val context: Context) {
fun show(version: AppVersion) { fun show(version: AppVersion) {
val message = buildString { val message = buildSpannedString {
append(context.getString(R.string.new_version_s, version.name)) append(context.getString(R.string.new_version_s, version.name))
appendLine() appendLine()
append(context.getString(R.string.size_s, FileSize.BYTES.format(context, version.apkSize))) append(context.getString(R.string.size_s, FileSize.BYTES.format(context, version.apkSize)))
appendLine() appendLine()
appendLine() appendLine()
append(version.description) append(Markwon.create(context).toMarkdown(version.description))
} }
MaterialAlertDialogBuilder( MaterialAlertDialogBuilder(
context, context,
materialR.style.ThemeOverlay_Material3_MaterialAlertDialog_Centered, materialR.style.ThemeOverlay_Material3_MaterialAlertDialog_Centered,
) )
.setTitle(R.string.app_update_available) .setTitle(R.string.app_update_available)
.setMessage(Markwon.create(context).toMarkdown(message)) .setMessage(message)
.setIcon(R.drawable.ic_app_update) .setIcon(R.drawable.ic_app_update)
.setPositiveButton(R.string.download) { _, _ -> .setPositiveButton(R.string.download) { _, _ ->
val intent = Intent(Intent.ACTION_VIEW, version.apkUrl.toUri()) val intent = Intent(Intent.ACTION_VIEW, version.apkUrl.toUri())

View File

@@ -18,7 +18,6 @@ import androidx.core.widget.TextViewCompat
import androidx.fragment.app.viewModels import androidx.fragment.app.viewModels
import com.google.android.material.color.MaterialColors import com.google.android.material.color.MaterialColors
import dagger.hilt.android.AndroidEntryPoint import dagger.hilt.android.AndroidEntryPoint
import io.noties.markwon.Markwon
import org.koitharu.kotatsu.R import org.koitharu.kotatsu.R
import org.koitharu.kotatsu.base.ui.BaseFragment import org.koitharu.kotatsu.base.ui.BaseFragment
import org.koitharu.kotatsu.base.ui.widgets.SegmentedBarView import org.koitharu.kotatsu.base.ui.widgets.SegmentedBarView
@@ -48,7 +47,6 @@ class ToolsFragment :
super.onViewCreated(view, savedInstanceState) super.onViewCreated(view, savedInstanceState)
binding.buttonSettings.setOnClickListener(this) binding.buttonSettings.setOnClickListener(this)
binding.buttonDownloads.setOnClickListener(this) binding.buttonDownloads.setOnClickListener(this)
binding.cardUpdate.root.setOnClickListener(this)
binding.cardUpdate.buttonChangelog.setOnClickListener(this) binding.cardUpdate.buttonChangelog.setOnClickListener(this)
binding.cardUpdate.buttonDownload.setOnClickListener(this) binding.cardUpdate.buttonDownload.setOnClickListener(this)
binding.switchIncognito.setOnCheckedChangeListener(this) binding.switchIncognito.setOnCheckedChangeListener(this)
@@ -72,12 +70,10 @@ class ToolsFragment :
startActivity(Intent.createChooser(intent, getString(R.string.open_in_browser))) startActivity(Intent.createChooser(intent, getString(R.string.open_in_browser)))
} }
R.id.card_update -> { R.id.button_changelog -> {
val version = viewModel.appUpdate.value ?: return val version = viewModel.appUpdate.value ?: return
AppUpdateDialog(v.context).show(version) AppUpdateDialog(v.context).show(version)
} }
R.id.button_changelog -> showChangelog()
} }
} }
@@ -97,7 +93,6 @@ class ToolsFragment :
return return
} }
binding.cardUpdate.textSecondary.text = getString(R.string.new_version_s, version.name) 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 binding.cardUpdate.root.isVisible = true
} }
@@ -146,13 +141,6 @@ class ToolsFragment :
return MaterialColors.harmonize(color, backgroundColor) 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 { companion object {
fun newInstance() = ToolsFragment() fun newInstance() = ToolsFragment()

View File

@@ -2,7 +2,6 @@
<com.google.android.material.card.MaterialCardView <com.google.android.material.card.MaterialCardView
xmlns:android="http://schemas.android.com/apk/res/android" xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/card_update" android:id="@+id/card_update"
style="@style/Widget.Material3.CardView.Filled" style="@style/Widget.Material3.CardView.Filled"
android:layout_width="match_parent" android:layout_width="match_parent"
@@ -30,25 +29,9 @@
android:layout_marginTop="@dimen/margin_small" android:layout_marginTop="@dimen/margin_small"
android:text="@string/new_version_s" android:text="@string/new_version_s"
android:textAppearance="?attr/textAppearanceBodyMedium" android:textAppearance="?attr/textAppearanceBodyMedium"
android:visibility="gone"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent" app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/textPrimary" app:layout_constraintTop_toBottomOf="@id/textPrimary" />
tools:visibility="visible" />
<TextView
android:id="@+id/textChangelog"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/margin_small"
android:fontFamily="monospace"
android:textAppearance="?attr/textAppearanceBodyMedium"
android:visibility="gone"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/textSecondary"
tools:text="- Fixes\n- Improvements"
tools:visibility="visible" />
<Button <Button
android:id="@+id/button_changelog" android:id="@+id/button_changelog"
@@ -59,7 +42,7 @@
android:layout_marginEnd="12dp" android:layout_marginEnd="12dp"
android:text="@string/details" android:text="@string/details"
app:layout_constraintEnd_toStartOf="@id/button_download" app:layout_constraintEnd_toStartOf="@id/button_download"
app:layout_constraintTop_toBottomOf="@id/textChangelog" /> app:layout_constraintTop_toBottomOf="@id/textSecondary" />
<Button <Button
android:id="@+id/button_download" android:id="@+id/button_download"
@@ -69,7 +52,7 @@
android:layout_marginTop="12dp" android:layout_marginTop="12dp"
android:text="@string/download" android:text="@string/download"
app:layout_constraintEnd_toEndOf="parent" app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@id/textChangelog" /> app:layout_constraintTop_toBottomOf="@id/textSecondary" />
</androidx.constraintlayout.widget.ConstraintLayout> </androidx.constraintlayout.widget.ConstraintLayout>