/* * 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_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) }