From 726a37d5d6fde2570981519eb27c68b98bb0d057 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kuba=20Szczodrzy=C5=84ski?= Date: Sat, 27 Mar 2021 14:33:10 +0100 Subject: [PATCH] [UI] Add build details dialog. --- .../edziennik/utils/managers/BuildManager.kt | 40 +++++++++++++++++-- app/src/main/res/values/strings.xml | 13 ++++++ 2 files changed, 50 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/pl/szczodrzynski/edziennik/utils/managers/BuildManager.kt b/app/src/main/java/pl/szczodrzynski/edziennik/utils/managers/BuildManager.kt index a05a9491..1b8c2453 100644 --- a/app/src/main/java/pl/szczodrzynski/edziennik/utils/managers/BuildManager.kt +++ b/app/src/main/java/pl/szczodrzynski/edziennik/utils/managers/BuildManager.kt @@ -4,10 +4,10 @@ package pl.szczodrzynski.edziennik.utils.managers -import pl.szczodrzynski.edziennik.App -import pl.szczodrzynski.edziennik.BuildConfig +import androidx.appcompat.app.AppCompatActivity +import com.google.android.material.dialog.MaterialAlertDialogBuilder +import pl.szczodrzynski.edziennik.* import pl.szczodrzynski.edziennik.data.api.szkolny.interceptor.Signing -import pl.szczodrzynski.edziennik.md5 class BuildManager(val app: App) { @@ -51,4 +51,38 @@ class BuildManager(val app: App) { "Unofficial\n" + BuildConfig.VERSION_BASE else -> null } + + fun showVersionDialog(activity: AppCompatActivity) { + val yes = activity.getString(R.string.yes) + val no = activity.getString(R.string.no) + + val fields = mapOf( + R.string.build_version to BuildConfig.VERSION_BASE, + R.string.build_official to if (isOfficial) yes else no, + R.string.build_platform to when { + isPlayRelease -> activity.getString(R.string.build_platform_play) + isApkRelease -> activity.getString(R.string.build_platform_apk) + else -> activity.getString(R.string.build_platform_unofficial) + }, + R.string.build_branch to gitBranch, + R.string.build_commit to gitHash?.substring(0, 8), + R.string.build_dirty to if (gitUnstaged?.isEmpty() == true) + "-" + else + "\t" + gitUnstaged?.join("\n\t"), + R.string.build_tag to gitTag, + R.string.build_rev_count to gitRevCount, + R.string.build_remote to gitRemotes?.join("\n") + ) + + val message = fields.map { (key, value) -> + activity.getString(key) + ":\n" + value + }.join("\n\n") + + MaterialAlertDialogBuilder(activity) + .setTitle(R.string.build_details) + .setMessage(message) + .setPositiveButton(R.string.ok, null) + .show() + } } diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 0ea45e49..08c76e90 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -1387,4 +1387,17 @@ {cmd-android-studio} Wersja deweloperska \??? Szkoda, opinie innych pomagają mi rozwijać aplikację. + Wersja aplikacji + Wydanie oficjalne + Dystrybucja + Google Play + .APK + Nieoficjalnie (.APK) + Gałąź Git + Identyfikator rewizji + Niezapisane zmiany + Ostatni tag + Rewizje od ostatniego tagu + Repozytorium zdalne + Informacje o kompilacji