From 6979ff52c20c17f4fc066e11c06ffaafbb59334f Mon Sep 17 00:00:00 2001 From: T8RIN Date: Wed, 19 Feb 2025 19:42:51 +0300 Subject: [PATCH] Improve debug version --- .../core/crash/CrashActivity.kt | 3 ++- .../core/ui/utils/helper/ActivityUtils.kt | 19 ++++++++++--- .../presentation/EasterEggContent.kt | 3 ++- .../presentation/components/MainTopAppBar.kt | 27 +++++++++++++------ .../components/SearchableBottomBar.kt | 3 ++- .../CurrentVersionCodeSettingItem.kt | 3 ++- 6 files changed, 42 insertions(+), 16 deletions(-) diff --git a/core/crash/src/main/java/ru/tech/imageresizershrinker/core/crash/CrashActivity.kt b/core/crash/src/main/java/ru/tech/imageresizershrinker/core/crash/CrashActivity.kt index a656b67c1..3c57b4161 100644 --- a/core/crash/src/main/java/ru/tech/imageresizershrinker/core/crash/CrashActivity.kt +++ b/core/crash/src/main/java/ru/tech/imageresizershrinker/core/crash/CrashActivity.kt @@ -81,6 +81,7 @@ import ru.tech.imageresizershrinker.core.ui.theme.ImageToolboxThemeSurface import ru.tech.imageresizershrinker.core.ui.theme.White import ru.tech.imageresizershrinker.core.ui.theme.outlineVariant import ru.tech.imageresizershrinker.core.ui.utils.helper.AppActivityClass +import ru.tech.imageresizershrinker.core.ui.utils.helper.AppVersion import ru.tech.imageresizershrinker.core.ui.utils.provider.ImageToolboxCompositionLocals import ru.tech.imageresizershrinker.core.ui.utils.provider.LocalScreenSize import ru.tech.imageresizershrinker.core.ui.utils.provider.rememberLocalEssentials @@ -104,7 +105,7 @@ class CrashActivity : CrashHandler() { val title = "[Bug] App Crash: $exName" val deviceInfo = - "Device: ${Build.MODEL} (${Build.BRAND} - ${Build.DEVICE}), SDK: ${Build.VERSION.SDK_INT} (${Build.VERSION.RELEASE}), App: ${BuildConfig.VERSION_NAME} (${BuildConfig.VERSION_CODE})\n\n" + "Device: ${Build.MODEL} (${Build.BRAND} - ${Build.DEVICE}), SDK: ${Build.VERSION.SDK_INT} (${Build.VERSION.RELEASE}), App: $AppVersion (${BuildConfig.VERSION_CODE})\n\n" val body = "$deviceInfo$ex" setContentWithWindowSizeClass { diff --git a/core/ui/src/main/kotlin/ru/tech/imageresizershrinker/core/ui/utils/helper/ActivityUtils.kt b/core/ui/src/main/kotlin/ru/tech/imageresizershrinker/core/ui/utils/helper/ActivityUtils.kt index f518bc9aa..4b8a4c984 100644 --- a/core/ui/src/main/kotlin/ru/tech/imageresizershrinker/core/ui/utils/helper/ActivityUtils.kt +++ b/core/ui/src/main/kotlin/ru/tech/imageresizershrinker/core/ui/utils/helper/ActivityUtils.kt @@ -37,10 +37,21 @@ val AppVersionPreRelease: String by lazy { .split("-") .takeIf { it.size > 1 } ?.drop(1)?.first() - ?.takeWhile { it.isLetter() } - ?.uppercase()?.takeIf { it.isNotEmpty() }?.let { - " $it" - } ?: "" + ?.takeWhile { it.isLetter() } ?: "" +} + +@Suppress("KotlinConstantConditions") +val AppVersionPreReleaseFlavored: String by lazy { + if (BuildConfig.FLAVOR == "market") { + AppVersionPreRelease + } else { + "${BuildConfig.FLAVOR} $AppVersionPreRelease" + }.uppercase() +} + +@Suppress("KotlinConstantConditions") +val AppVersion: String by lazy { + BuildConfig.VERSION_NAME + if (BuildConfig.FLAVOR == "foss") "-foss" else "" } const val ColorSchemeName = "scheme" \ No newline at end of file diff --git a/feature/easter-egg/src/main/java/ru/tech/imageresizershrinker/feature/easter_egg/presentation/EasterEggContent.kt b/feature/easter-egg/src/main/java/ru/tech/imageresizershrinker/feature/easter_egg/presentation/EasterEggContent.kt index 959d29625..83aedd391 100644 --- a/feature/easter-egg/src/main/java/ru/tech/imageresizershrinker/feature/easter_egg/presentation/EasterEggContent.kt +++ b/feature/easter-egg/src/main/java/ru/tech/imageresizershrinker/feature/easter_egg/presentation/EasterEggContent.kt @@ -72,6 +72,7 @@ import ru.tech.imageresizershrinker.core.resources.R import ru.tech.imageresizershrinker.core.resources.emoji.Emoji import ru.tech.imageresizershrinker.core.ui.shapes.MaterialStarShape import ru.tech.imageresizershrinker.core.ui.utils.confetti.LocalConfettiHostState +import ru.tech.imageresizershrinker.core.ui.utils.helper.AppVersion import ru.tech.imageresizershrinker.core.ui.utils.navigation.Screen import ru.tech.imageresizershrinker.core.ui.widget.enhanced.EnhancedIconButton import ru.tech.imageresizershrinker.core.ui.widget.enhanced.EnhancedTopAppBar @@ -264,7 +265,7 @@ fun EasterEggContent( maxLines = 1 ) AutoSizeText( - text = "${BuildConfig.VERSION_NAME}${if (BuildConfig.FLAVOR == "foss") "-foss" else ""}\n(${BuildConfig.VERSION_CODE})", + text = "$AppVersion\n(${BuildConfig.VERSION_CODE})", style = LocalTextStyle.current.copy( fontSize = 12.sp, fontWeight = FontWeight.Normal, diff --git a/feature/main/src/main/java/ru/tech/imageresizershrinker/feature/main/presentation/components/MainTopAppBar.kt b/feature/main/src/main/java/ru/tech/imageresizershrinker/feature/main/presentation/components/MainTopAppBar.kt index 296abef8a..880db9fe5 100644 --- a/feature/main/src/main/java/ru/tech/imageresizershrinker/feature/main/presentation/components/MainTopAppBar.kt +++ b/feature/main/src/main/java/ru/tech/imageresizershrinker/feature/main/presentation/components/MainTopAppBar.kt @@ -29,6 +29,7 @@ import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.Spacer import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.height +import androidx.compose.foundation.layout.offset import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.size import androidx.compose.foundation.layout.width @@ -43,9 +44,11 @@ import androidx.compose.foundation.verticalScroll import androidx.compose.material.icons.Icons import androidx.compose.material.icons.rounded.PushPin import androidx.compose.material.icons.rounded.Settings +import androidx.compose.material.icons.twotone.BugReport import androidx.compose.material3.Badge import androidx.compose.material3.DrawerState import androidx.compose.material3.Icon +import androidx.compose.material3.LocalTextStyle import androidx.compose.material3.MaterialTheme import androidx.compose.material3.Text import androidx.compose.material3.TopAppBarScrollBehavior @@ -63,6 +66,7 @@ import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.Color import androidx.compose.ui.graphics.toArgb import androidx.compose.ui.platform.LocalContext +import androidx.compose.ui.platform.LocalDensity import androidx.compose.ui.platform.LocalLayoutDirection import androidx.compose.ui.res.stringResource import androidx.compose.ui.unit.LayoutDirection @@ -74,7 +78,7 @@ import ru.tech.imageresizershrinker.core.resources.icons.AppShortcut import ru.tech.imageresizershrinker.core.settings.presentation.model.isFirstLaunch import ru.tech.imageresizershrinker.core.settings.presentation.provider.LocalSettingsState import ru.tech.imageresizershrinker.core.ui.theme.toColor -import ru.tech.imageresizershrinker.core.ui.utils.helper.AppVersionPreRelease +import ru.tech.imageresizershrinker.core.ui.utils.helper.AppVersionPreReleaseFlavored import ru.tech.imageresizershrinker.core.ui.utils.helper.ContextUtils.canPinShortcuts import ru.tech.imageresizershrinker.core.ui.utils.helper.ProvidesValue import ru.tech.imageresizershrinker.core.ui.utils.navigation.Screen @@ -112,13 +116,7 @@ internal fun MainTopAppBar( title = { LocalLayoutDirection.ProvidesValue(LayoutDirection.Ltr) { val badgeText = remember { - "${Screen.FEATURES_COUNT}".plus( - if (BuildConfig.FLAVOR == "market") { - AppVersionPreRelease - } else { - " ${BuildConfig.FLAVOR.uppercase()} $AppVersionPreRelease" - } - ) + "${Screen.FEATURES_COUNT} $AppVersionPreReleaseFlavored" } Row( @@ -128,6 +126,19 @@ internal fun MainTopAppBar( AnimatedContent(settingsState.mainScreenTitle) { title -> Text(title) } + if (BuildConfig.DEBUG) { + Icon( + imageVector = Icons.TwoTone.BugReport, + contentDescription = null, + modifier = Modifier + .offset(x = 2.dp) + .size( + with(LocalDensity.current) { + LocalTextStyle.current.fontSize.toDp() * 1.05f + } + ) + ) + } Badge( content = { Text(badgeText) diff --git a/feature/main/src/main/java/ru/tech/imageresizershrinker/feature/main/presentation/components/SearchableBottomBar.kt b/feature/main/src/main/java/ru/tech/imageresizershrinker/feature/main/presentation/components/SearchableBottomBar.kt index 7f8108ca3..d21fe8dcc 100644 --- a/feature/main/src/main/java/ru/tech/imageresizershrinker/feature/main/presentation/components/SearchableBottomBar.kt +++ b/feature/main/src/main/java/ru/tech/imageresizershrinker/feature/main/presentation/components/SearchableBottomBar.kt @@ -54,6 +54,7 @@ import ru.tech.imageresizershrinker.core.resources.R import ru.tech.imageresizershrinker.core.resources.icons.Github import ru.tech.imageresizershrinker.core.resources.icons.GooglePlay import ru.tech.imageresizershrinker.core.ui.theme.outlineVariant +import ru.tech.imageresizershrinker.core.ui.utils.helper.AppVersion import ru.tech.imageresizershrinker.core.ui.utils.helper.ContextUtils.isInstalledFromPlayStore import ru.tech.imageresizershrinker.core.ui.widget.enhanced.EnhancedButton import ru.tech.imageresizershrinker.core.ui.widget.enhanced.EnhancedFloatingActionButton @@ -89,7 +90,7 @@ internal fun SearchableBottomBar( onClick = onTryGetUpdate ) { Text( - stringResource(R.string.version) + " ${BuildConfig.VERSION_NAME} (${BuildConfig.VERSION_CODE})" + stringResource(R.string.version) + " $AppVersion (${BuildConfig.VERSION_CODE})" ) } } else { diff --git a/feature/settings/src/main/java/ru/tech/imageresizershrinker/feature/settings/presentation/components/CurrentVersionCodeSettingItem.kt b/feature/settings/src/main/java/ru/tech/imageresizershrinker/feature/settings/presentation/components/CurrentVersionCodeSettingItem.kt index 2caf2f9c9..8444ac447 100644 --- a/feature/settings/src/main/java/ru/tech/imageresizershrinker/feature/settings/presentation/components/CurrentVersionCodeSettingItem.kt +++ b/feature/settings/src/main/java/ru/tech/imageresizershrinker/feature/settings/presentation/components/CurrentVersionCodeSettingItem.kt @@ -41,6 +41,7 @@ import ru.tech.imageresizershrinker.core.settings.presentation.provider.LocalSet import ru.tech.imageresizershrinker.core.ui.shapes.MaterialStarShape import ru.tech.imageresizershrinker.core.ui.theme.blend import ru.tech.imageresizershrinker.core.ui.theme.outlineVariant +import ru.tech.imageresizershrinker.core.ui.utils.helper.AppVersion import ru.tech.imageresizershrinker.core.ui.widget.modifier.ContainerShapeDefaults import ru.tech.imageresizershrinker.core.ui.widget.modifier.container import ru.tech.imageresizershrinker.core.ui.widget.modifier.pulsate @@ -64,7 +65,7 @@ fun CurrentVersionCodeSettingItem( .then(modifier), title = stringResource(R.string.version), subtitle = remember { - "${BuildConfig.VERSION_NAME}${if (BuildConfig.FLAVOR == "foss") "-foss" else ""} (${BuildConfig.VERSION_CODE})" + "$AppVersion (${BuildConfig.VERSION_CODE})" }, startIcon = Icons.Outlined.Verified, endContent = {