summaryrefslogtreecommitdiff
path: root/app/build.gradle
blob: 63b197e48e83d5b8beea620254f048d613c23c8e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
plugins {
    id 'com.android.application'
    id 'kotlin-android'
    id 'kotlin-kapt'
}

android {
    compileSdkVersion buildConfig.compileSdk

    defaultConfig {
        applicationId "foundation.e.privacycentralapp"
        minSdkVersion buildConfig.minSdk
        targetSdkVersion buildConfig.targetSdk
        versionCode buildConfig.version.code
        versionName buildConfig.version.fullName

        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"

        resValue("string", "mapbox_key", MAPBOX_KEY)
    }

    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 {
        e {
            applicationIdSuffix '.e'
            dimension 'os'
        }
        google {
            applicationIdSuffix '.google'
            dimension 'os'
        }
    }

    buildTypes {
        debug {
            signingConfig null  // Set signing config to null as we use signingConfig per variant.
        }
        release {
            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 ->
        if (variant.buildType.name == "debug") {
            variant.outputs.all { output ->
                outputFileName = "PrivacyCentral-${output.name}-${variant.versionName}.apk"
            }
            if (variant.getFlavorName() == "e") {
                variant.mergedFlavor.signingConfig = signingConfigs.eDebug
            } else {
                variant.mergedFlavor.signingConfig = signingConfigs.debug
            }
        }
    }

    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }

    aaptOptions {
        additionalParameters '-I', 'app/libs/e-ui-sdk-1.0.1-q.jar'
    }

    buildFeatures {
        dataBinding true
    }
}

dependencies {
    compileOnly files('libs/e-ui-sdk-1.0.1-q.jar')
    implementation files('libs/lineage-sdk.jar')
    implementation files('libs/trackerfilter.aar')
    //implementation project(":privacymodulesapi")

    // include the google specific version of the modules, just for the google flavor
    googleImplementation project(":privacymodulesgoogle")
    // include the e specific version of the modules, just for the e flavor
    eImplementation project(":privacymodulese")

    implementation 'foundation.e:privacymodule.api:0.3.1'
    implementation 'foundation.e:privacymodule.tor:0.1.0'

    implementation 'com.github.PhilJay:MPAndroidChart:v3.1.0'

    implementation project(":flow-mvi")
    implementation Libs.Kotlin.stdlib
    implementation Libs.AndroidX.coreKtx
    implementation Libs.AndroidX.Fragment.fragmentKtx
    implementation 'androidx.appcompat:appcompat:1.2.0'
    implementation Libs.AndroidX.Lifecycle.runtime
    implementation Libs.AndroidX.Lifecycle.viewmodel

    implementation Libs.MapBox.sdk
    implementation 'com.google.android.material:material:1.4.0-beta01'

    testImplementation 'junit:junit:4.+'
    androidTestImplementation 'androidx.test.ext:junit:1.1.2'
    androidTestImplementation 'androidx.test.espresso:espresso-core:3.3.0'
}

static def log(Object val) {
    println("[GradleRepository]: " + val)
}