mirror of
https://github.com/mihonapp/mihon.git
synced 2025-06-04 00:14:14 +02:00
Change foss variant application id suffix to '.foss' and more (#1831)
- Remove `BuildConfig.PREVIEW` - Rename `BuildConfig.INCLUDE_ANALYTICS` -> `BuildConfig.ANALYTICS_INCLUDED` - Rename `BuildConfig.INCLUDE_UPDATER` -> `BuildConfig.UPDATER_ENABLED` - Rename build property `with-analytics` -> `include-analytics` - Rename build property `with-updater` -> `enable-updater` - Add build property to disable code shrink - Add build property to include dependency info in apk/app bundle
This commit is contained in:
parent
85d168ed5e
commit
0893609ad2
2
.github/workflows/build_push.yml
vendored
2
.github/workflows/build_push.yml
vendored
@ -32,7 +32,7 @@ jobs:
|
||||
run: ./gradlew spotlessCheck
|
||||
|
||||
- name: Build app
|
||||
run: ./gradlew assembleRelease -Pwith-analytics -Pwith-updater
|
||||
run: ./gradlew assembleRelease -Pinclude-analytics -Penable-updater
|
||||
|
||||
- name: Run unit tests
|
||||
run: ./gradlew testReleaseUnitTest
|
||||
|
@ -10,10 +10,17 @@ plugins {
|
||||
alias(libs.plugins.aboutLibraries)
|
||||
}
|
||||
|
||||
val includeAnalytics = project.hasProperty("with-analytics")
|
||||
val includeUpdater = project.hasProperty("with-updater")
|
||||
class ConfigClass {
|
||||
val includeAnalytics: Boolean = project.hasProperty("include-analytics")
|
||||
val enableUpdater: Boolean = project.hasProperty("enable-updater")
|
||||
val enableCodeShrink: Boolean = !project.hasProperty("disable-code-shrink")
|
||||
val includeDependencyInfo: Boolean = project.hasProperty("include-dependency-info")
|
||||
}
|
||||
|
||||
if (includeAnalytics) {
|
||||
@Suppress("PropertyName")
|
||||
val Config = ConfigClass()
|
||||
|
||||
if (Config.includeAnalytics) {
|
||||
pluginManager.apply {
|
||||
apply(libs.plugins.google.services.get().pluginId)
|
||||
apply(libs.plugins.firebase.crashlytics.get().pluginId)
|
||||
@ -34,9 +41,8 @@ android {
|
||||
buildConfigField("String", "COMMIT_COUNT", "\"${getCommitCount()}\"")
|
||||
buildConfigField("String", "COMMIT_SHA", "\"${getGitSha()}\"")
|
||||
buildConfigField("String", "BUILD_TIME", "\"${getBuildTime()}\"")
|
||||
buildConfigField("boolean", "INCLUDE_ANALYTICS", "$includeAnalytics")
|
||||
buildConfigField("boolean", "INCLUDE_UPDATER", "$includeUpdater")
|
||||
buildConfigField("boolean", "PREVIEW", "false")
|
||||
buildConfigField("boolean", "ANALYTICS_INCLUDED", "${Config.includeAnalytics}")
|
||||
buildConfigField("boolean", "UPDATER_ENABLED", "${Config.enableUpdater}")
|
||||
|
||||
testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
|
||||
}
|
||||
@ -48,17 +54,20 @@ android {
|
||||
isPseudoLocalesEnabled = true
|
||||
}
|
||||
val release by getting {
|
||||
isMinifyEnabled = true
|
||||
isShrinkResources = true
|
||||
isMinifyEnabled = Config.enableCodeShrink
|
||||
isShrinkResources = Config.enableCodeShrink
|
||||
|
||||
proguardFiles("proguard-android-optimize.txt", "proguard-rules.pro")
|
||||
}
|
||||
|
||||
val commonMatchingFallbacks = listOf(release.name)
|
||||
|
||||
create("foss") {
|
||||
initWith(release)
|
||||
|
||||
applicationIdSuffix = ".t-foss"
|
||||
applicationIdSuffix = ".foss"
|
||||
|
||||
matchingFallbacks.add(release.name)
|
||||
matchingFallbacks.addAll(commonMatchingFallbacks)
|
||||
}
|
||||
create("preview") {
|
||||
initWith(release)
|
||||
@ -68,9 +77,7 @@ android {
|
||||
versionNameSuffix = debug.versionNameSuffix
|
||||
signingConfig = debug.signingConfig
|
||||
|
||||
matchingFallbacks.add(release.name)
|
||||
|
||||
buildConfigField("boolean", "PREVIEW", "true")
|
||||
matchingFallbacks.addAll(commonMatchingFallbacks)
|
||||
}
|
||||
create("benchmark") {
|
||||
initWith(release)
|
||||
@ -82,12 +89,12 @@ android {
|
||||
|
||||
signingConfig = debug.signingConfig
|
||||
|
||||
matchingFallbacks.add(release.name)
|
||||
matchingFallbacks.addAll(commonMatchingFallbacks)
|
||||
}
|
||||
}
|
||||
|
||||
sourceSets {
|
||||
val analyticsDir = if (includeAnalytics) "analytics-firebase" else "analytics-firebase-noop"
|
||||
val analyticsDir = if (Config.includeAnalytics) "analytics-firebase" else "analytics-firebase-noop"
|
||||
getByName("main").kotlin.srcDirs("src/$analyticsDir/kotlin")
|
||||
getByName("preview").res.srcDirs("src/debug/res")
|
||||
getByName("benchmark").res.srcDirs("src/debug/res")
|
||||
@ -131,7 +138,8 @@ android {
|
||||
}
|
||||
|
||||
dependenciesInfo {
|
||||
includeInApk = false
|
||||
includeInApk = Config.includeDependencyInfo
|
||||
includeInBundle = Config.includeDependencyInfo
|
||||
}
|
||||
|
||||
buildFeatures {
|
||||
@ -273,7 +281,7 @@ dependencies {
|
||||
implementation(libs.logcat)
|
||||
|
||||
// Crash reports/analytics
|
||||
if (includeAnalytics) {
|
||||
if (Config.includeAnalytics) {
|
||||
implementation(platform(libs.firebase.bom))
|
||||
implementation(libs.firebase.analytics)
|
||||
implementation(libs.firebase.crashlytics)
|
||||
|
@ -35,7 +35,9 @@ import eu.kanade.tachiyomi.ui.more.NewUpdateScreen
|
||||
import eu.kanade.tachiyomi.util.CrashLogUtil
|
||||
import eu.kanade.tachiyomi.util.lang.toDateTimestampString
|
||||
import eu.kanade.tachiyomi.util.system.copyToClipboard
|
||||
import eu.kanade.tachiyomi.util.system.isPreviewBuildType
|
||||
import eu.kanade.tachiyomi.util.system.toast
|
||||
import eu.kanade.tachiyomi.util.system.updaterEnabled
|
||||
import kotlinx.coroutines.launch
|
||||
import logcat.LogPriority
|
||||
import tachiyomi.core.common.util.lang.withIOContext
|
||||
@ -97,7 +99,7 @@ object AboutScreen : Screen() {
|
||||
)
|
||||
}
|
||||
|
||||
if (BuildConfig.INCLUDE_UPDATER) {
|
||||
if (updaterEnabled) {
|
||||
item {
|
||||
TextPreferenceWidget(
|
||||
title = stringResource(MR.strings.check_for_updates),
|
||||
@ -245,7 +247,7 @@ object AboutScreen : Screen() {
|
||||
}
|
||||
}
|
||||
}
|
||||
BuildConfig.PREVIEW -> {
|
||||
isPreviewBuildType -> {
|
||||
"Beta r${BuildConfig.COMMIT_COUNT}".let {
|
||||
if (withBuildDate) {
|
||||
"$it (${BuildConfig.COMMIT_SHA}, ${getFormattedBuildTime()})"
|
||||
|
@ -2,6 +2,7 @@ package eu.kanade.tachiyomi.data.updater
|
||||
|
||||
import android.content.Context
|
||||
import eu.kanade.tachiyomi.BuildConfig
|
||||
import eu.kanade.tachiyomi.util.system.isPreviewBuildType
|
||||
import tachiyomi.core.common.util.lang.withIOContext
|
||||
import tachiyomi.domain.release.interactor.GetApplicationRelease
|
||||
import uy.kohesive.injekt.injectLazy
|
||||
@ -19,7 +20,7 @@ class AppUpdateChecker {
|
||||
return withIOContext {
|
||||
val result = getApplicationRelease.await(
|
||||
GetApplicationRelease.Arguments(
|
||||
BuildConfig.PREVIEW,
|
||||
isPreviewBuildType,
|
||||
BuildConfig.COMMIT_COUNT.toInt(),
|
||||
BuildConfig.VERSION_NAME,
|
||||
GITHUB_REPO,
|
||||
@ -38,7 +39,7 @@ class AppUpdateChecker {
|
||||
}
|
||||
|
||||
val GITHUB_REPO: String by lazy {
|
||||
if (BuildConfig.PREVIEW) {
|
||||
if (isPreviewBuildType) {
|
||||
"mihonapp/mihon-preview"
|
||||
} else {
|
||||
"mihonapp/mihon"
|
||||
@ -46,7 +47,7 @@ val GITHUB_REPO: String by lazy {
|
||||
}
|
||||
|
||||
val RELEASE_TAG: String by lazy {
|
||||
if (BuildConfig.PREVIEW) {
|
||||
if (isPreviewBuildType) {
|
||||
"r${BuildConfig.COMMIT_COUNT}"
|
||||
} else {
|
||||
"v${BuildConfig.VERSION_NAME}"
|
||||
|
@ -81,6 +81,7 @@ import eu.kanade.tachiyomi.ui.more.OnboardingScreen
|
||||
import eu.kanade.tachiyomi.util.system.dpToPx
|
||||
import eu.kanade.tachiyomi.util.system.isNavigationBarNeedsScrim
|
||||
import eu.kanade.tachiyomi.util.system.openInBrowser
|
||||
import eu.kanade.tachiyomi.util.system.updaterEnabled
|
||||
import eu.kanade.tachiyomi.util.view.setComposeContent
|
||||
import kotlinx.coroutines.channels.awaitClose
|
||||
import kotlinx.coroutines.flow.callbackFlow
|
||||
@ -303,7 +304,7 @@ class MainActivity : BaseActivity() {
|
||||
|
||||
// App updates
|
||||
LaunchedEffect(Unit) {
|
||||
if (BuildConfig.INCLUDE_UPDATER) {
|
||||
if (updaterEnabled) {
|
||||
try {
|
||||
val result = AppUpdateChecker().checkForUpdate(context)
|
||||
if (result is GetApplicationRelease.Result.NewUpdate) {
|
||||
|
@ -5,7 +5,10 @@ package eu.kanade.tachiyomi.util.system
|
||||
import eu.kanade.tachiyomi.BuildConfig
|
||||
|
||||
val analyticsIncluded: Boolean
|
||||
inline get() = BuildConfig.INCLUDE_ANALYTICS
|
||||
inline get() = BuildConfig.ANALYTICS_INCLUDED
|
||||
|
||||
val updaterEnabled: Boolean
|
||||
inline get() = BuildConfig.UPDATER_ENABLED
|
||||
|
||||
val isDebugBuildType: Boolean
|
||||
inline get() = BuildConfig.BUILD_TYPE == "debug"
|
||||
|
Loading…
x
Reference in New Issue
Block a user