/*
* 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 .
*/
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_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
buildFeatures {
dataBinding true
viewBinding true
}
lintOptions {
disable 'MissingTranslation'
}
}
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.eos.elib,
libs.androidx.core.ktx,
libs.androidx.appcompat,
libs.androidx.fragment.ktx,
libs.androidx.lifecycle.runtime,
libs.androidx.lifecycle.viewmodel,
libs.androidx.viewpager2,
libs.bundles.koin,
libs.google.material,
libs.androidx.navigation.fragment,
libs.androidx.navigation.ui,
libs.maplibre,
libs.mpandroidcharts,
libs.eos.telemetry,
libs.timber
)
debugImplementation libs.leakcanary
testImplementation libs.junit
}
static def log(Object val) {
println("[GradleRepository]: " + val)
}
uC:zDF9ψbY>ti\N('J`l\3~!˔
ޚuH:d2>667`)uQ<u#ʘgn%T
*czhB
+0/$3SU 8dE4y5:L,mގ6Hs6A]+6?YPa_a"<w_53zmաv1JyɔslQho&G=^A&/WW"+ێ֓/ܢzEثZSU3ӲOnmOѷ2i\ǮV`7{O?߅%wM]jn?nHNɾnjU}@/x{Znށen/R~ggSvw@^=ՓԈ9~(`eM~.Q{;7pӏcf)Vp#z! !5lt?@^ {W3Ǿu!6
7r
!_Z
}}_a!/0`wsRD᭤7Aܕ!hWϊdZ+tph14Ȋڭ:|ҟ;pj[-(w:PSnTOzNNŒZZ6hfW@XW=HCw|
:w_e7m!KenO?}^<{6GATLaha$,
Ve0$~s:2U|wV䥲5ιJ+nK|)6ז8
Ѧh<ک)Ή颠ßuYfہvѐR)i(m>}f>걱:摫Tl$Z(Rb#^[6' cM;λ] BﭿM;ݹaooo1~?Ɲg>q [%݁_hw7A77
+ofuOg|kMYE@Q8{ĵh$J2-$I6Mhܣ[,;jN,r>Q\n{b&Ie|i,&tm
mz֦ꭼĩ'g@q/"ڶzh{7֞7m/=ՙ~3/(hϭOu{~Ϗ#w88/=b,3ނ}aNԍ #v$hƞIk[a^68cCf2od`ݺ5CHJeAb/AJj/kO"K\b7$Ĩn=_gcyo۳N랣??&W_ݹwhҺOS+6AlFrokakOJZ"pPӶ):-n+ F|T=Ǔ-vb)ޏmQ:rig