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