185 lines
5.3 KiB
Groovy
185 lines
5.3 KiB
Groovy
|
/*
|
||
|
* Copyright (C) 2023 MURENA SAS
|
||
|
* Copyright (C) 2022 - 2024 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'
|
||
|
signingConfig signingConfigs.eDebug
|
||
|
}
|
||
|
standalone {
|
||
|
dimension 'os'
|
||
|
applicationIdSuffix '.standalone'
|
||
|
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')
|
||
|
|
||
|
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.datastore.preferences,
|
||
|
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)
|
||
|
}
|