AdvancedPrivacy/app/build.gradle

190 lines
5.4 KiB
Groovy
Raw Permalink Normal View History

2024-01-29 17:15:17 +01:00
/*
* Copyright (C) 2023 MURENA SAS
* Copyright (C) 2022 E FOUNDATION
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
plugins {
id 'com.android.application'
id 'kotlin-android'
id 'kotlin-kapt'
id 'androidx.navigation.safeargs.kotlin'
}
def getSentryDsn = { ->
def sentryDsnEnv = System.getenv("SENTRY_DSN")
if (sentryDsnEnv != null) {
return sentryDsnEnv
}
Properties properties = new Properties()
def propertiesFile = project.rootProject.file('local.properties')
if (propertiesFile.exists()) {
properties.load(propertiesFile.newDataInputStream())
}
return properties.getProperty('SENTRY_DSN')
}
android {
compileSdkVersion buildConfig.compileSdk
defaultConfig {
applicationId "foundation.e.advancedprivacy"
minSdkVersion buildConfig.minSdk
targetSdkVersion buildConfig.targetSdk
versionCode buildConfig.version.code
versionName buildConfig.version.name
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
manifestPlaceholders = [
persistent: "false",
mainActivityIntentFilterCategory: "android.intent.category.LAUNCHER"
]
resValue("string", "mapbox_key", MAPBOX_KEY)
buildConfigField("String", "SENTRY_DSN", "\"${getSentryDsn()}\"")
}
signingConfigs {
debug {
storeFile rootProject.file(".sign/debug.keystore")
storePassword "android"
keyAlias "androiddebugkey"
keyPassword "android"
}
// We use test platform keys to sign /e/OS specific debug flavour.
eDebug {
storeFile rootProject.file(".sign/platform.jks")
storePassword "android"
keyAlias "platform"
keyPassword "android"
}
}
// We define here the OS flavor e, specific for the /e/ OS version, and google, for any
// android device. The e or google prefix is then used in resources, dependencies, ... as
// expected by the android gradle plugin.
flavorDimensions 'os'
productFlavors {
eos {
dimension 'os'
minSdkVersion 29
targetSdkVersion 32
signingConfig signingConfigs.eDebug
}
standalone {
dimension 'os'
applicationIdSuffix '.standalone'
minSdkVersion 26
targetSdkVersion 31
manifestPlaceholders = [
persistent: "false",
mainActivityIntentFilterCategory: "android.intent.category.LAUNCHER"
]
signingConfig signingConfigs.debug
}
}
buildTypes {
debug {
signingConfig null // Set signing config to null as we use signingConfig per variant.
}
release {
manifestPlaceholders = [
persistent: "true",
mainActivityIntentFilterCategory: "android.intent.category.INFO"
]
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
}
/**
* Sets the output name of the variant outputs and also it setup signingConfig based on the product flavor.
*/
applicationVariants.all { variant ->
variant.outputs.all { output ->
outputFileName = "Advanced_Privacy-${variant.versionName}-${variant.getFlavorName()}-${variant.buildType.name}.apk"
}
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_17
targetCompatibility JavaVersion.VERSION_17
}
buildFeatures {
dataBinding true
viewBinding true
}
lintOptions {
disable 'MissingTranslation'
}
namespace 'foundation.e.advancedprivacy'
}
dependencies {
implementation project(':core')
standaloneImplementation project(':permissionsstandalone')
eosImplementation project(':permissionseos')
implementation project(':fakelocation')
eosImplementation files('libs/lineage-sdk.jar')
implementation project(':trackers')
implementation project(':ipscrambling')
eosImplementation project(':trackersserviceeos')
standaloneImplementation project(':trackersservicestandalone')
implementation (
libs.androidx.core.ktx,
libs.androidx.appcompat,
libs.androidx.fragment.ktx,
libs.androidx.lifecycle.runtime,
libs.androidx.lifecycle.viewmodel,
libs.androidx.navigation.fragment,
libs.androidx.navigation.ui,
libs.androidx.viewpager2,
libs.bundles.koin,
libs.eos.elib,
libs.eos.telemetry,
libs.google.material,
libs.maplibre,
libs.mpandroidcharts,
libs.timber
)
debugImplementation libs.leakcanary
testImplementation libs.junit
}
static def log(Object val) {
println("[GradleRepository]: " + val)
}